@grafloria/element 0.3.17 → 0.3.19
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/jest.config.ts +16 -0
- package/package.json +2 -2
- package/project.json +44 -0
- package/src/front-door-probe.spec.ts +173 -0
- package/src/index.d.ts +2 -1
- package/src/index.js +11 -2
- package/src/index.js.map +1 -1
- package/src/index.ts +804 -0
- package/src/lib/dashboard-kit/dashboard.js.map +1 -1
- package/src/lib/dashboard-kit/dashboard.spec.ts +821 -0
- package/src/lib/dashboard-kit/dashboard.ts +906 -0
- package/src/lib/dashboard-kit/grid-binder.js +16 -15
- package/src/lib/dashboard-kit/grid-binder.js.map +1 -1
- package/src/lib/dashboard-kit/grid-binder.ts +1976 -0
- package/src/lib/dashboard-kit/grid-mapping.js.map +1 -1
- package/src/lib/dashboard-kit/grid-mapping.spec.ts +308 -0
- package/src/lib/dashboard-kit/grid-mapping.ts +283 -0
- package/src/lib/dashboard-kit/index.js.map +1 -1
- package/src/lib/dashboard-kit/index.ts +56 -0
- package/src/lib/dashboard-kit/styles.js +9 -3
- package/src/lib/dashboard-kit/styles.js.map +1 -1
- package/src/lib/dashboard-kit/styles.ts +206 -0
- package/src/lib/dashboard-kit/widgets.js.map +1 -1
- package/src/lib/dashboard-kit/widgets.spec.ts +239 -0
- package/src/lib/dashboard-kit/widgets.ts +484 -0
- package/src/lib/diagram-kit/card.js.map +1 -1
- package/src/lib/diagram-kit/card.ts +219 -0
- package/src/lib/diagram-kit/diagram-kit.spec.ts +465 -0
- package/src/lib/diagram-kit/editing.js +45 -54
- package/src/lib/diagram-kit/editing.js.map +1 -1
- package/src/lib/diagram-kit/editing.spec.ts +172 -0
- package/src/lib/diagram-kit/editing.ts +493 -0
- package/src/lib/diagram-kit/er.js.map +1 -1
- package/src/lib/diagram-kit/er.ts +246 -0
- package/src/lib/diagram-kit/handles.js.map +1 -1
- package/src/lib/diagram-kit/handles.spec.ts +224 -0
- package/src/lib/diagram-kit/handles.ts +375 -0
- package/src/lib/diagram-kit/index.d.ts +1 -0
- package/src/lib/diagram-kit/index.js +11 -1
- package/src/lib/diagram-kit/index.js.map +1 -1
- package/src/lib/diagram-kit/index.ts +66 -0
- package/src/lib/diagram-kit/join-guidance.d.ts +116 -0
- package/src/lib/diagram-kit/join-guidance.js +331 -0
- package/src/lib/diagram-kit/join-guidance.js.map +1 -0
- package/src/lib/diagram-kit/join-guidance.spec.ts +241 -0
- package/src/lib/diagram-kit/join-guidance.ts +390 -0
- package/src/lib/diagram-kit/rows.js.map +1 -1
- package/src/lib/diagram-kit/rows.ts +174 -0
- package/src/lib/diagram-kit/styles.js.map +1 -1
- package/src/lib/diagram-kit/styles.ts +118 -0
- package/src/lib/diagram-kit/uml.js.map +1 -1
- package/src/lib/diagram-kit/uml.ts +213 -0
- package/src/lib/diagram-kit/update.js.map +1 -1
- package/src/lib/diagram-kit/update.spec.ts +208 -0
- package/src/lib/diagram-kit/update.ts +324 -0
- package/src/lib/grafloria-flow-element.js.map +1 -1
- package/src/lib/grafloria-flow-element.spec.ts +290 -0
- package/src/lib/grafloria-flow-element.ts +298 -0
- package/src/lib/grafloria.js.map +1 -1
- package/src/lib/grafloria.ts +151 -0
- package/src/lib/load.js.map +1 -1
- package/src/lib/load.spec.ts +565 -0
- package/src/lib/load.ts +359 -0
- package/src/lib/node-type-registry.js.map +1 -1
- package/src/lib/node-type-registry.ts +76 -0
- package/src/lib/stencil-kit/builders.js.map +1 -1
- package/src/lib/stencil-kit/builders.ts +58 -0
- package/src/lib/stencil-kit/card-builders.js.map +1 -1
- package/src/lib/stencil-kit/card-builders.ts +113 -0
- package/src/lib/stencil-kit/index.js.map +1 -1
- package/src/lib/stencil-kit/index.ts +17 -0
- package/src/lib/stencil-kit/palette.js +60 -6
- package/src/lib/stencil-kit/palette.js.map +1 -1
- package/src/lib/stencil-kit/palette.ts +482 -0
- 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/shape-data.js.map +1 -1
- package/src/lib/stencil-kit/shape-data.spec.ts +470 -0
- package/src/lib/stencil-kit/shape-data.ts +680 -0
- package/src/lib/stencil-kit/styles.js +15 -0
- package/src/lib/stencil-kit/styles.js.map +1 -1
- package/src/lib/stencil-kit/styles.ts +126 -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/index.js.map +1 -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/dashboard.js.map +1 -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-binder.js.map +1 -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/grid-mapping.js.map +1 -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/index.js.map +1 -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/styles.js.map +1 -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/dashboard-kit/widgets.js.map +1 -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/card.js.map +1 -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/editing.js.map +1 -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/er.js.map +1 -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/handles.js.map +1 -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/index.js.map +1 -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/join-guidance.js.map +1 -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/rows.js.map +1 -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/styles.js.map +1 -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/uml.js.map +1 -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/diagram-kit/update.js.map +1 -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-flow-element.js.map +1 -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/grafloria.js.map +1 -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/load.js.map +1 -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/node-type-registry.js.map +1 -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/builders.js.map +1 -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/card-builders.js.map +1 -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/index.js.map +1 -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/palette.js.map +1 -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/shape-data.js.map +1 -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/element/src/lib/stencil-kit/styles.js.map +1 -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/component-adapter.interface.js.map +1 -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/adapters/index.js.map +1 -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/ClipboardManager.js.map +1 -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/clipboard/index.js.map +1 -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/apply-op.js.map +1 -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/capture.js.map +1 -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/index.js.map +1 -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/integrity.js.map +1 -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/lww.js.map +1 -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-log.js.map +1 -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/op.js.map +1 -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/replica.js.map +1 -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/collab/undo.js.map +1 -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/Command.js.map +1 -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/CommandManager.js.map +1 -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/AddGroupCommand.js.map +1 -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/AddLinkCommand.js.map +1 -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/AddNodeCommand.js.map +1 -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/AddToGroupCommand.js.map +1 -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/AlignCommands.js.map +1 -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/CollapseGroupCommand.js.map +1 -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/CopyCommand.js.map +1 -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/CutCommand.js.map +1 -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/DeleteSelectionCommand.js.map +1 -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/DuplicateCommand.js.map +1 -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/ExpandGroupCommand.js.map +1 -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/MoveGroupCommand.js.map +1 -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/MoveNodeCommand.js.map +1 -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/NodeZOrderCommands.js.map +1 -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/PasteCommand.js.map +1 -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/PortCommands.js.map +1 -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/ReconnectLinkCommand.js.map +1 -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/RemoveFromGroupCommand.js.map +1 -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/RemoveGroupCommand.js.map +1 -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/RemoveLinkCommand.js.map +1 -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/RemoveNodeCommand.js.map +1 -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/ResizeNodeCommand.js.map +1 -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/RotateNodeCommand.js.map +1 -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/SetFlexItemCommand.js.map +1 -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/SetGridItemCommand.js.map +1 -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/SetLayoutCommand.js.map +1 -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/SetLinkDisplayLabelCommand.js.map +1 -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/SetLinkLabelCommand.js.map +1 -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/SetLinkLabelsCommand.js.map +1 -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/SetLinkPathTypeCommand.js.map +1 -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/SetLinkPointsCommand.js.map +1 -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/SetNodeDataCommand.js.map +1 -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/SetNodeLabelCommand.js.map +1 -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/SetNodeShapeConfigCommand.js.map +1 -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/SetNodeStyleCommand.js.map +1 -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/SetParentCommand.js.map +1 -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/SetStrokePointsCommand.js.map +1 -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/StrokeLifecycleCommands.js.map +1 -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/UpdateLinkStyleCommand.js.map +1 -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/index.js.map +1 -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/remapNodePortIds.js.map +1 -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/basic/resolveLinkNodeIds.js.map +1 -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/BatchCommand.js.map +1 -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/MacroCommand.js.map +1 -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/composite/index.js.map +1 -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/commands/index.js.map +1 -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/comment-store.js.map +1 -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/index.js.map +1 -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/mentions.js.map +1 -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/read-state.js.map +1 -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/comments/types.js.map +1 -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/InteractionConfig.js.map +1 -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/config/index.js.map +1 -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/DSL.js.map +1 -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/StyleParser.js.map +1 -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/TemplateParser.js.map +1 -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/advanced/index.js.map +1 -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/detector/LayoutDetector.js.map +1 -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/BPMNGenerator.js.map +1 -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/BPMNParser.js.map +1 -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/ERDGenerator.js.map +1 -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/ERDParser.js.map +1 -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/ERDTransformer.js.map +1 -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/UMLGenerator.js.map +1 -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/UMLParser.js.map +1 -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/extended/index.js.map +1 -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/DSLFormatter.js.map +1 -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/DSLGenerator.js.map +1 -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/generator/DiagramAnalyzer.js.map +1 -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/index.js.map +1 -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/lexer/Lexer.js.map +1 -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/MermaidClass.js.map +1 -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/MermaidER.js.map +1 -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/MermaidState.js.map +1 -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/index.js.map +1 -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/layout.js.map +1 -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/mermaid/lines.js.map +1 -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/parser/Parser.js.map +1 -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/BidirectionalSync.js.map +1 -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/IntegratedSyncManager.js.map +1 -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/LayoutApplicator.js.map +1 -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/SyncStateManager.js.map +1 -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/sync/index.js.map +1 -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/transformer/ASTTransformer.js.map +1 -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/ASTNode.js.map +1 -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/dsl/types/Token.js.map +1 -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/DiagramEngine.js.map +1 -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/DiagramMode.js.map +1 -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/DiagramModeTypes.js.map +1 -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/ModeManager.js.map +1 -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/engine/index.js.map +1 -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/EventBus.js.map +1 -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/events/index.js.map +1 -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/index.js.map +1 -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/GroupCollapseService.js.map +1 -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/GroupMembershipService.js.map +1 -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/SemanticMembershipService.js.map +1 -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/SwimlaneService.js.map +1 -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/interaction/index.js.map +1 -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/importDrawio.js.map +1 -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/index.js.map +1 -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/interop/drawio/xml.js.map +1 -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/CompoundLayoutService.js.map +1 -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/ILayoutAlgorithm.js.map +1 -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/LayoutManager.js.map +1 -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/SmartSpacingCalculator.js.map +1 -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/ViewportTransform.js.map +1 -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/ForceDirectedLayoutAlgorithm.js.map +1 -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/GridLayoutAlgorithm.js.map +1 -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/HierarchicalLayoutAlgorithm.js.map +1 -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/algorithms/HybridLayoutAlgorithm.js.map +1 -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/community-layout-adapter.js.map +1 -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/component-packing.js.map +1 -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/dagre-layout-adapter.js.map +1 -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/edge-bundling.interface.js.map +1 -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-layout-adapter.js.map +1 -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/elk-loader.js.map +1 -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/force-layout-adapter.js.map +1 -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/grid-pack/grid-pack-engine.js.map +1 -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/mental-map.js.map +1 -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/incremental-layout.interface.js.map +1 -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/index.js.map +1 -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-adapter.interface.js.map +1 -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-auto-select.js.map +1 -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-constraints.interface.js.map +1 -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-graph.js.map +1 -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-history.js.map +1 -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-host.js.map +1 -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-presets.js.map +1 -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-extended.js.map +1 -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-quality-metrics.js.map +1 -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-registry.js.map +1 -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/layout.service.js.map +1 -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/overlap-removal.js.map +1 -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-aware-layout.interface.js.map +1 -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/port-label-bridge.js.map +1 -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/portfolio-layouts.js.map +1 -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/rng.js.map +1 -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/spectral-layout-adapter.js.map +1 -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/steppable-layout.js.map +1 -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/subgraph-layout.interface.js.map +1 -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/layered-layout.js.map +1 -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/sugiyama/sugiyama.js.map +1 -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/tree-layout.js.map +1 -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/layout/types.js.map +1 -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/lib/performance/mobile-performance.service.js.map +1 -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/DiagramEntity.js.map +1 -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/DiagramModel.js.map +1 -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/GroupModel.js.map +1 -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/LinkModel.js.map +1 -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/NodeModel.js.map +1 -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/PortModel.js.map +1 -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/StrokeModel.js.map +1 -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/index.js.map +1 -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/models/readonly-lock.js.map +1 -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/LRUCache.js.map +1 -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/PerformanceMonitor.js.map +1 -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/SpatialIndex.js.map +1 -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/performance/index.js.map +1 -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/PluginManager.js.map +1 -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/plugins/index.js.map +1 -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/connection-rules.js.map +1 -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/dynamic-ports.js.map +1 -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/index.js.map +1 -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-groups.js.map +1 -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-type-registry.js.map +1 -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/ports/port-types.js.map +1 -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/HtmlTemplateRenderer.js.map +1 -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/LemonadeJSRenderer.js.map +1 -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/rendering/index.js.map +1 -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/LiveReroutingEngine.js.map +1 -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/ObstacleIndex.js.map +1 -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/ObstacleMap.js.map +1 -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/ObstacleMapBuilder.js.map +1 -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/PathSimplifier.js.map +1 -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/RoutingEngine.js.map +1 -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/AStarRouter.js.map +1 -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/DijkstraRouter.js.map +1 -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/ElkRouter.js.map +1 -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/ManhattanRouter.js.map +1 -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/OrthogonalRouter.js.map +1 -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/StraightRouter.js.map +1 -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/algorithms/VisibilityGraphRouter.js.map +1 -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/GlobalRouteSolver.js.map +1 -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/global/solver-host.js.map +1 -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/index.js.map +1 -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/routing/types.js.map +1 -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/SelectionManager.js.map +1 -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/selection/index.js.map +1 -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/DiagramMigrations.js.map +1 -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/DiagramValidator.js.map +1 -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/DocumentEnvelope.js.map +1 -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/Incremental.js.map +1 -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/Serializer.js.map +1 -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/Subgraph.js.map +1 -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/serialization/TextFormat.js.map +1 -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/ConnectionStateManager.js.map +1 -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/DiagramStore.js.map +1 -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/state/index.js.map +1 -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/awareness.js.map +1 -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/batcher.js.map +1 -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/causal-buffer.js.map +1 -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/index.js.map +1 -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/protocol.js.map +1 -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/sync-adapter.js.map +1 -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/transport.js.map +1 -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/broadcast-channel.js.map +1 -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/memory.js.map +1 -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/unreliable.js.map +1 -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/transports/websocket.js.map +1 -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/sync/version-vector.js.map +1 -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/common-templates.js.map +1 -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/data-viz-templates.js.map +1 -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/erd-templates.js.map +1 -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/index.js.map +1 -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/integration.js.map +1 -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/template-library/workflow-templates.js.map +1 -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/NodeFactory.js.map +1 -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/NodeTemplate.js.map +1 -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/TemplateLoader.js.map +1 -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/TemplateRegistry.js.map +1 -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-business-rule-task.template.js.map +1 -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-end-event.template.js.map +1 -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-error-event.template.js.map +1 -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-exclusive-gateway.template.js.map +1 -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-inclusive-gateway.template.js.map +1 -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-intermediate-event.template.js.map +1 -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-manual-task.template.js.map +1 -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-message-event.template.js.map +1 -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-parallel-gateway.template.js.map +1 -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-script-task.template.js.map +1 -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-service-task.template.js.map +1 -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-start-event.template.js.map +1 -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-task.template.js.map +1 -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-timer-event.template.js.map +1 -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/bpmn-user-task.template.js.map +1 -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/bpmn/index.js.map +1 -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-associative-entity.template.js.map +1 -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-attribute.template.js.map +1 -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-bridge-entity.template.js.map +1 -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-composite-attribute.template.js.map +1 -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-derived-attribute.template.js.map +1 -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-discriminator.template.js.map +1 -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-entity.template.js.map +1 -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-isa.template.js.map +1 -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-key-attribute.template.js.map +1 -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-multivalued-attribute.template.js.map +1 -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-optional-attribute.template.js.map +1 -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-partial-key.template.js.map +1 -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-relationship.template.js.map +1 -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-subtype.template.js.map +1 -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-supertype.template.js.map +1 -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-table.template.js.map +1 -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-view.template.js.map +1 -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-entity.template.js.map +1 -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/erd-weak-relationship.template.js.map +1 -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/erd/index.js.map +1 -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-connector.template.js.map +1 -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-data.template.js.map +1 -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-decision.template.js.map +1 -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-delay.template.js.map +1 -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-display.template.js.map +1 -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-document.template.js.map +1 -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-input.template.js.map +1 -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-manual-operation.template.js.map +1 -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-merge.template.js.map +1 -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-or.template.js.map +1 -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-predefined-process.template.js.map +1 -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-preparation.template.js.map +1 -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-process.template.js.map +1 -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-stored-data.template.js.map +1 -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-summing-junction.template.js.map +1 -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/flowchart-terminal.template.js.map +1 -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/flowchart/index.js.map +1 -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/index.js.map +1 -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/register.js.map +1 -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/index.js.map +1 -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-abstract-class.template.js.map +1 -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-activation.template.js.map +1 -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-partition.template.js.map +1 -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-activity.template.js.map +1 -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-actor.template.js.map +1 -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-class.template.js.map +1 -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-collaboration.template.js.map +1 -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-component.template.js.map +1 -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-datatype.template.js.map +1 -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-decision.template.js.map +1 -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-enum.template.js.map +1 -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-node.template.js.map +1 -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-final-state.template.js.map +1 -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-fork.template.js.map +1 -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-node.template.js.map +1 -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-initial-state.template.js.map +1 -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-interface.template.js.map +1 -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-join.template.js.map +1 -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-lifeline.template.js.map +1 -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-merge.template.js.map +1 -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-node.template.js.map +1 -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-note.template.js.map +1 -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-object.template.js.map +1 -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-package.template.js.map +1 -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-part.template.js.map +1 -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-port.template.js.map +1 -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-primitive-type.template.js.map +1 -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-signal.template.js.map +1 -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-state.template.js.map +1 -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/generated/uml/uml-use-case.template.js.map +1 -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/index.js.map +1 -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/templates/stencils.js.map +1 -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/bpmn.js.map +1 -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/erd.js.map +1 -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/flowchart.js.map +1 -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/index.js.map +1 -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/domain/uml.js.map +1 -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/event.types.js.map +1 -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/geometry.types.js.map +1 -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/index.js.map +1 -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/layout.types.js.map +1 -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/model.types.js.map +1 -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/performance.types.js.map +1 -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/types/plugin.types.js.map +1 -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/deep-clone.js.map +1 -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/geometry.js.map +1 -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/id.js.map +1 -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/index.js.map +1 -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/utils/transform.js.map +1 -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/ConnectionGroupValidator.js.map +1 -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/TypeRegistry.js.map +1 -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/ValidationEngine.js.map +1 -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/engine/src/validation/index.js.map +1 -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/diagram-outline.js.map +1 -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/focus-containment.js.map +1 -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/graph-topology.js.map +1 -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/index.js.map +1 -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/live-region.js.map +1 -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/outline-view.js.map +1 -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/reduced-motion.js.map +1 -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/a11y/semantics.js.map +1 -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-context.js.map +1 -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/canvas-renderer.js.map +1 -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/dirty-region.js.map +1 -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/index.js.map +1 -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/path-geometry.js.map +1 -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/render-backend.js.map +1 -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/style-resolution.js.map +1 -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/tier-policy.js.map +1 -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/canvas/vnode-painter.js.map +1 -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-overlay.js.map +1 -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-panel.js.map +1 -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/comment-pins.js.map +1 -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/comments/index.js.map +1 -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/assets.js.map +1 -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/batch.js.map +1 -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/bounds.js.map +1 -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/capture-host.js.map +1 -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/custom-nodes.js.map +1 -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/index.js.map +1 -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/node-raster.js.map +1 -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/pagination.js.map +1 -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/flate.js.map +1 -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/index.js.map +1 -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-export.js.map +1 -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-path.js.map +1 -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/pdf-primitives.js.map +1 -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/pdf/png.js.map +1 -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/raster.js.map +1 -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/round-trip.js.map +1 -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/scope.js.map +1 -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/style-flattener.js.map +1 -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/svg-export.js.map +1 -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/export/vnode-serializer.js.map +1 -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/capabilities.js.map +1 -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/capability-factory.js.map +1 -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/attach.js.map +1 -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/background.js.map +1 -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/controls.js.map +1 -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/components/minimap.js.map +1 -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/diagram-registry.js.map +1 -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/disposable.js.map +1 -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/extension-host.js.map +1 -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/index.js.map +1 -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/link-pipeline.js.map +1 -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/manifest.js.map +1 -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/node-component.js.map +1 -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/plugins-loader.js.map +1 -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/portal.js.map +1 -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/public-api.js.map +1 -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/registry-scope.js.map +1 -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/ext/tools.js.map +1 -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/index.js.map +1 -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/create-diagram.js.map +1 -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/diagram-instance.js.map +1 -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/dom-event-binder.js.map +1 -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/index.js.map +1 -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/layers.js.map +1 -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/model-input.js.map +1 -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/render-scheduler.js.map +1 -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/instance/wheel-scroll-yield.js.map +1 -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/ControlPointEditor.js.map +1 -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/WaypointEditor.js.map +1 -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/highlighters.js.map +1 -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/in-place-editor.js.map +1 -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/index.js.map +1 -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/ink-overlay.js.map +1 -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/interaction-controller.js.map +1 -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/keyboard-navigation.js.map +1 -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/selection-tools.js.map +1 -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/snapping.js.map +1 -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/touch-gestures.js.map +1 -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/interaction/whiteboard-tools.js.map +1 -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/host-culling.js.map +1 -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/index.js.map +1 -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/progressive-mounter.js.map +1 -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/types.js.map +1 -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/lazy/view-lifecycle.js.map +1 -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/index.js.map +1 -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/perf-hud.js.map +1 -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/perf/quality-governor.js.map +1 -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/index.js.map +1 -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/platform/platform.js.map +1 -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/bind-presence.js.map +1 -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/index.js.map +1 -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/presence/presence-overlay.js.map +1 -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/index.js.map +1 -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/presentation.js.map +1 -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/presentation/viewport-channel.js.map +1 -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-lifecycle.js.map +1 -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-performance.service.js.map +1 -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-sequencer.js.map +1 -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/animation.service.js.map +1 -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/services/custom-animation-registry.js.map +1 -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/index.js.map +1 -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/ssr/render-to-static.js.map +1 -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/ArrowRenderer.js.map +1 -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/JumpPointDetector.js.map +1 -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/JumpPointRenderer.js.map +1 -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/LabelRenderer.js.map +1 -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/auto-size.js.map +1 -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/channel-nudging.js.map +1 -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-optimizer.js.map +1 -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/edge-templates.js.map +1 -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/html-node.js.map +1 -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/index.js.map +1 -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-fanout.js.map +1 -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/link-hit-test.js.map +1 -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/motion-tracker.js.map +1 -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-sizing.js.map +1 -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/node-toolbar.js.map +1 -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/notation-shapes.js.map +1 -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/paint-servers.js.map +1 -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/panel.js.map +1 -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/path-outline.js.map +1 -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-glyph.js.map +1 -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-label.js.map +1 -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-layout.js.map +1 -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-positioning.js.map +1 -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/port-spots.js.map +1 -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-memo.js.map +1 -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/route-solver-bridge.js.map +1 -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/shape-registry.js.map +1 -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/stroke-layer.js.map +1 -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/svg-renderer.js.map +1 -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/svg/text-block.js.map +1 -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/color-mode.js.map +1 -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/contrast.js.map +1 -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-dark-theme.js.map +1 -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-light-theme.js.map +1 -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/default-theme-set.js.map +1 -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/high-contrast-theme.js.map +1 -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/index.js.map +1 -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-cascade.js.map +1 -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/style-registry.js.map +1 -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-a11y.js.map +1 -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-css.js.map +1 -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-ref.js.map +1 -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/theme-vars.js.map +1 -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/themes/token-bridge.js.map +1 -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/geometry.types.js.map +1 -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/index.js.map +1 -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/conditions.js.map +1 -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/editor-types.js.map +1 -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/groups.js.map +1 -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/index.js.map +1 -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/property-definition.js.map +1 -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/schema.js.map +1 -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/property-schema/validation.js.map +1 -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/renderer.interface.js.map +1 -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/theme.types.js.map +1 -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/types/vnode.types.js.map +1 -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-presets.js.map +1 -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-priority.js.map +1 -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/animation-utils.js.map +1 -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/utils/lru-cache.js.map +1 -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/index.js.map +1 -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/viewport/viewport-controller.js.map +1 -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/container-id-generator.js.map +1 -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/foreign-object.js.map +1 -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/index.js.map +1 -0
- package/src/libs/renderer/src/vnode/patch.d.ts +189 -0
- package/src/libs/renderer/src/vnode/patch.js +564 -0
- package/src/libs/renderer/src/vnode/patch.js.map +1 -0
- package/src/reachability.spec.ts +173 -0
- package/tsconfig.esm.json +9 -0
- package/tsconfig.json +24 -0
- package/tsconfig.lib.json +10 -0
- package/tsconfig.spec.json +14 -0
|
@@ -0,0 +1,1737 @@
|
|
|
1
|
+
import type { DiagramEngine, LODLevel } from '@grafloria/engine';
|
|
2
|
+
import { type GovernorState } from '../perf/quality-governor';
|
|
3
|
+
import { type RouteSolverStats } from './route-solver-bridge';
|
|
4
|
+
import type { IRenderer, PerformanceMetrics, SVGRendererConfig, VNode, Theme, Rectangle, RendererCapabilities, ExportFormat, ExportOptions } from '../types';
|
|
5
|
+
import { type SvgExportResult } from '../export/svg-export';
|
|
6
|
+
import { type PdfExportResult } from '../export/pdf/pdf-export';
|
|
7
|
+
import { type Page, type PaginationOptions } from '../export/pagination';
|
|
8
|
+
/** One paginated tile: its grid position, its world window, and the SVG for it. */
|
|
9
|
+
export interface PagedSvgResult {
|
|
10
|
+
pages: Array<Page & {
|
|
11
|
+
svg: string;
|
|
12
|
+
}>;
|
|
13
|
+
columns: number;
|
|
14
|
+
rows: number;
|
|
15
|
+
warnings: string[];
|
|
16
|
+
}
|
|
17
|
+
import { type ColorMode, type ThemeSet, type TokenBridge } from '../themes';
|
|
18
|
+
import type { ViewLifecycle } from '../lazy/view-lifecycle';
|
|
19
|
+
import type { CommentSource } from '../comments/comment-overlay';
|
|
20
|
+
import type { EntityKind as LazyEntityKind } from '../lazy/types';
|
|
21
|
+
import { DiagramRegistry } from '../ext/diagram-registry';
|
|
22
|
+
import { AnimationService } from '../services/animation.service';
|
|
23
|
+
/**
|
|
24
|
+
* Id of the SHARED stylesheet: the theme-independent, `var(--grafloria-*)`-based
|
|
25
|
+
* rules. Identical for every renderer on the page, so it is injected once and
|
|
26
|
+
* deduped by this id — instances only own their tiny variable block.
|
|
27
|
+
*/
|
|
28
|
+
export declare const GRAFLORIA_BASE_STYLE_ID = "grafloria-renderer-styles";
|
|
29
|
+
/** Prefix of a renderer's own `<style>` element id (one per instance). */
|
|
30
|
+
export declare const GRAFLORIA_INSTANCE_STYLE_PREFIX = "grafloria-renderer-theme-";
|
|
31
|
+
/**
|
|
32
|
+
* Prefix of a renderer's OVERRIDE `<style>` element — the design-token bridge and
|
|
33
|
+
* the accessibility media queries (Wave 4, Card "token bridge + a11y theming").
|
|
34
|
+
*
|
|
35
|
+
* A SEPARATE element from the theme block, and always inserted after it, because
|
|
36
|
+
* the cascade inside the variables is the whole mechanism:
|
|
37
|
+
* theme values < host design tokens < prefers-contrast < forced-colors
|
|
38
|
+
* Same selector, same specificity — so only SOURCE ORDER decides, and source
|
|
39
|
+
* order is only guaranteed if we own it.
|
|
40
|
+
*/
|
|
41
|
+
export declare const GRAFLORIA_INSTANCE_OVERRIDE_PREFIX = "grafloria-renderer-overrides-";
|
|
42
|
+
export declare function fitFontSize(text: string, maxWidth: number, base: number): number;
|
|
43
|
+
export declare class SVGRenderer implements IRenderer {
|
|
44
|
+
private engine;
|
|
45
|
+
readonly mode: "svg";
|
|
46
|
+
/**
|
|
47
|
+
* What this renderer can actually do — so callers can ask instead of assuming.
|
|
48
|
+
* `supportsExport` is now TRUE (see `export()` below); hit-testing and text
|
|
49
|
+
* measurement still are not implemented here, and saying so is the point.
|
|
50
|
+
*/
|
|
51
|
+
readonly capabilities: RendererCapabilities;
|
|
52
|
+
/**
|
|
53
|
+
* This renderer's scope. Stamped on the root `<svg>` as
|
|
54
|
+
* `data-grafloria-instance` and used to scope BOTH the injected variable block
|
|
55
|
+
* and this instance's `<style>` element id — so two diagrams with different
|
|
56
|
+
* themes on one page no longer clobber each other's stylesheet.
|
|
57
|
+
*/
|
|
58
|
+
private readonly instanceId;
|
|
59
|
+
/** Unsubscribe from the named-style registry (see the constructor). */
|
|
60
|
+
private unsubscribeStyleRegistry?;
|
|
61
|
+
/**
|
|
62
|
+
* World-space margin added around the viewport when querying the engine's link
|
|
63
|
+
* SpatialIndex (see expandForLinkCulling). Covers routed detours that have not
|
|
64
|
+
* been written back into `link.points` yet — an orthogonal detour around a node
|
|
65
|
+
* stays well inside this, and the cost of an over-wide query is only a few
|
|
66
|
+
* extra VNodes.
|
|
67
|
+
*/
|
|
68
|
+
private static readonly LINK_CULL_MARGIN;
|
|
69
|
+
private theme;
|
|
70
|
+
private config;
|
|
71
|
+
private vnodeCache;
|
|
72
|
+
private styleElement?;
|
|
73
|
+
private disposed;
|
|
74
|
+
/** Watches the OS media queries. Only created when `colorMode` is configured. */
|
|
75
|
+
private colorModeController?;
|
|
76
|
+
/** The host design system's tokens, mapped onto ours. */
|
|
77
|
+
private tokenBridge?;
|
|
78
|
+
/** `<style>` holding the bridge + the a11y media queries (after the theme block). */
|
|
79
|
+
private overrideElement?;
|
|
80
|
+
/**
|
|
81
|
+
* Entities whose LAST rendered VNode froze a theme value into itself, and which
|
|
82
|
+
* therefore cannot be re-themed by rewriting a CSS variable.
|
|
83
|
+
*
|
|
84
|
+
* This is the ledger that makes the hot-swap honest. In CSS mode most of the
|
|
85
|
+
* theme is painted by the stylesheet through `var(--grafloria-*)`, so rebinding the
|
|
86
|
+
* variables re-themes those elements with no VNode work at all. But three
|
|
87
|
+
* things are still resolved to LITERALS in the emitted VNode:
|
|
88
|
+
*
|
|
89
|
+
* - the STATE layer (a selected node carries the theme's selection colours),
|
|
90
|
+
* - `theme.nodes[type]` / `theme.links[type]` type-defaults,
|
|
91
|
+
* - a `themeRef` on a property that is emitted as an SVG PRESENTATION
|
|
92
|
+
* ATTRIBUTE (arrowheads, `rx`, node `opacity`) — attributes cannot hold
|
|
93
|
+
* `var()`, so those must be baked.
|
|
94
|
+
*
|
|
95
|
+
* Rather than guess, the style computation RECORDS which entities that happened
|
|
96
|
+
* to. A theme swap then dirties exactly those and nothing else: a diagram with
|
|
97
|
+
* nothing selected and no bound attributes re-themes with zero restyled VNodes,
|
|
98
|
+
* and the ones that do need it are found, not assumed.
|
|
99
|
+
*/
|
|
100
|
+
private themeBoundNodes;
|
|
101
|
+
private themeBoundLinks;
|
|
102
|
+
private containerIds;
|
|
103
|
+
private foreignObjectNodes;
|
|
104
|
+
private arrowRenderer;
|
|
105
|
+
private labelRenderer;
|
|
106
|
+
private jumpPointDetector;
|
|
107
|
+
private jumpPointRenderer;
|
|
108
|
+
private waypointEditor;
|
|
109
|
+
private controlPointEditor;
|
|
110
|
+
private animationService;
|
|
111
|
+
private a11yFocus;
|
|
112
|
+
/**
|
|
113
|
+
* wave9/comments (card 6): where the comment pins come from, or null for a canvas with
|
|
114
|
+
* no comment system attached — in which case NO layer is built and NO query is made, so
|
|
115
|
+
* an idle 10k-node frame is exactly as cheap as it was before this card existed.
|
|
116
|
+
*/
|
|
117
|
+
private commentSource;
|
|
118
|
+
/** The root VNode of the last frame we actually built (null ⇒ nothing to reuse). */
|
|
119
|
+
private lastFrameRoot;
|
|
120
|
+
/** View + interaction signature of that frame (null ⇒ that frame was not cacheable). */
|
|
121
|
+
private lastFrameSig;
|
|
122
|
+
/** Mutation epoch AFTER that frame was built (render() itself dirties links). */
|
|
123
|
+
private lastFrameEpoch;
|
|
124
|
+
/** Set by anything whose effect on the picture the epoch cannot see. */
|
|
125
|
+
private frameInvalidated;
|
|
126
|
+
/** Monotone count of invalidateFrame() calls — a HOST's idle-skip keys on this. */
|
|
127
|
+
private invalidationEpoch;
|
|
128
|
+
/**
|
|
129
|
+
* Did the frame being built move any link's FINAL geometry? If so it has not
|
|
130
|
+
* reached a fixed point and must not arm the gate.
|
|
131
|
+
*
|
|
132
|
+
* `render()` is not quite a pure function, and this is the one place it shows.
|
|
133
|
+
* The link cull query (`getVisibleLinks`) runs BEFORE the routing pre-pass, so
|
|
134
|
+
* a frame that re-routes a link writes its new geometry into the spatial index
|
|
135
|
+
* only AFTER that frame has already decided what to draw. The next frame
|
|
136
|
+
* therefore culls against a different index and can legitimately produce a
|
|
137
|
+
* different picture from identical model + view — which is precisely the
|
|
138
|
+
* two-frame settle the culling suite documents ("the link's cull box is the
|
|
139
|
+
* union of its LIVE endpoints and its last routed points, so for ONE frame it
|
|
140
|
+
* still spans the old route").
|
|
141
|
+
*
|
|
142
|
+
* Skipping that second frame leaves a link that should have been culled in the
|
|
143
|
+
* tree forever. So the gate closes only on a frame that changed nothing — a
|
|
144
|
+
* genuine fixed point — and geometry settles in the same two frames it always
|
|
145
|
+
* did.
|
|
146
|
+
*
|
|
147
|
+
* Set ONLY by markLinksWhoseFrameChanged, which is the only pass that sees a
|
|
148
|
+
* link's final geometry (three separate writers rewrite it during a frame; an
|
|
149
|
+
* intermediate difference is not a change). See the note there.
|
|
150
|
+
*/
|
|
151
|
+
private frameChangedGeometry;
|
|
152
|
+
/** Frames served straight from `lastFrameRoot`. A quiet canvas should be all of them. */
|
|
153
|
+
private framesSkipped;
|
|
154
|
+
/** Frames actually built. */
|
|
155
|
+
private framesBuilt;
|
|
156
|
+
private frameRoutes;
|
|
157
|
+
/** The gate between "culling says it is on screen" and "build its view". */
|
|
158
|
+
private viewLifecycle;
|
|
159
|
+
/** What the gate held back on the last frame — the progressive mounter's work queue. */
|
|
160
|
+
private deferredThisFrame;
|
|
161
|
+
private frameObstacleCache;
|
|
162
|
+
private routeMemo;
|
|
163
|
+
/** Set true to force the next frame to re-route everything (first frame, config changes). */
|
|
164
|
+
private routeMemoDirty;
|
|
165
|
+
/**
|
|
166
|
+
* resize-ux: the tool-layer geometry for the PAINTED resize handles. Same
|
|
167
|
+
* class and same resize-only configuration as the DomEventBinder's controller
|
|
168
|
+
* (halo/rotate/remove/link tools off — those belong to richer host
|
|
169
|
+
* renderers), so the corner dots and edge lines this renderer draws are the
|
|
170
|
+
* exact geometry the binder's press ladder hit-tests. Before this the default
|
|
171
|
+
* renderer hit-tested eight handles it never painted (live audit,
|
|
172
|
+
* nodes/node-resize-gesture.html).
|
|
173
|
+
*/
|
|
174
|
+
private readonly resizeTools;
|
|
175
|
+
private motionTracker;
|
|
176
|
+
/**
|
|
177
|
+
* Links whose route THIS frame was computed under motion suppression. Volatile:
|
|
178
|
+
* never stored in the route memo — the settle frame has the same endpoints,
|
|
179
|
+
* hence the same route key, and a cached suppressed chord would be served
|
|
180
|
+
* straight back instead of the real detour. Cleared per frame.
|
|
181
|
+
*/
|
|
182
|
+
private frameVolatileRoutes;
|
|
183
|
+
/** One pending settle-epoch bump at a time (see the end of render()). */
|
|
184
|
+
private motionSettleQueued;
|
|
185
|
+
/** Per-frame static/moving obstacle partition, keyed on the frame's node-array identity. */
|
|
186
|
+
private frameMotionPartition;
|
|
187
|
+
/**
|
|
188
|
+
* Wave 8 — Card 7. Watches frame time and biases the LOD tier down when this
|
|
189
|
+
* machine cannot afford what the zoom asked for. `null` when disabled, in which
|
|
190
|
+
* case the tier is exactly what the zoom says and rendering is deterministic —
|
|
191
|
+
* which is what screenshot tests and print need.
|
|
192
|
+
*/
|
|
193
|
+
private governor;
|
|
194
|
+
private solverBridge;
|
|
195
|
+
/**
|
|
196
|
+
* Monotonic id of "the world the obstacles describe". Bumped whenever a node
|
|
197
|
+
* rect or the group state changes. This is what lets an ASYNC solver answer be
|
|
198
|
+
* matched to the world it was computed for — and discarded if that world is
|
|
199
|
+
* gone. Without it, a solve that lands one frame late paints links through
|
|
200
|
+
* nodes that have since moved.
|
|
201
|
+
*/
|
|
202
|
+
private worldVersion;
|
|
203
|
+
private frameSpreadLanes;
|
|
204
|
+
private edgeOptimizer;
|
|
205
|
+
private pathSimplifier;
|
|
206
|
+
private frameJumps;
|
|
207
|
+
private frameLabelOffsets;
|
|
208
|
+
private frameSeparation;
|
|
209
|
+
private frameLinkSigs;
|
|
210
|
+
/** Unsubscribe from the edge-template registry (Card 5). */
|
|
211
|
+
private unsubscribeEdgeTemplates?;
|
|
212
|
+
/** Wave 6 — Card 2/0: cache invalidation for the link pipeline + shape registry. */
|
|
213
|
+
private unsubscribeLinkPipeline?;
|
|
214
|
+
private unsubscribeShapeRegistry?;
|
|
215
|
+
private frameDefs;
|
|
216
|
+
private frameLod;
|
|
217
|
+
private frameZoom;
|
|
218
|
+
private lodCache;
|
|
219
|
+
private lodCacheTier;
|
|
220
|
+
private lastRenderTime;
|
|
221
|
+
private lastNodeCount;
|
|
222
|
+
private lastLinkCount;
|
|
223
|
+
private renderTimestamp;
|
|
224
|
+
private frameCount;
|
|
225
|
+
private fps;
|
|
226
|
+
/** Handle of the 1 Hz FPS sampler — cleared in dispose() (see startFPSTracking). */
|
|
227
|
+
private fpsInterval?;
|
|
228
|
+
/**
|
|
229
|
+
* THIS DIAGRAM'S contribution tables — shapes, named styles, link/label
|
|
230
|
+
* templates, markers, and the link pipeline it registered for itself.
|
|
231
|
+
*
|
|
232
|
+
* Empty until something contributes, and an empty scope is treated as no scope
|
|
233
|
+
* at all, so a renderer nobody extended costs exactly what it always did.
|
|
234
|
+
*/
|
|
235
|
+
private readonly registryScope;
|
|
236
|
+
private readonly registryFacade;
|
|
237
|
+
/**
|
|
238
|
+
* Register shapes / styles / markers / link-pipeline stages for THIS renderer
|
|
239
|
+
* alone. The module-level `registerShape()` & friends remain the process-wide
|
|
240
|
+
* registry, and this one shadows it — see `ext/diagram-registry.ts`.
|
|
241
|
+
*/
|
|
242
|
+
getRegistry(): DiagramRegistry;
|
|
243
|
+
constructor(engine: DiagramEngine, config?: SVGRendererConfig, theme?: Theme);
|
|
244
|
+
/**
|
|
245
|
+
* Render diagram to VNode tree.
|
|
246
|
+
*
|
|
247
|
+
* THE REGISTRY SCOPE IS ACTIVATED HERE, around the whole pass, and this is the
|
|
248
|
+
* only place it needs to be for the picture to be right. Every contribution
|
|
249
|
+
* registry the frame consults — shapes, named styles, link/label templates,
|
|
250
|
+
* markers, anchors, connection points, connectors — resolves this diagram's
|
|
251
|
+
* own table first and the process-global one second, including from the read
|
|
252
|
+
* sites that are pure free functions three frames down (`shapeStrategy` in
|
|
253
|
+
* port-layout, `resolveNodeStyle` in the style cascade) and could not have been
|
|
254
|
+
* handed an instance without rewriting their signatures. See
|
|
255
|
+
* `ext/registry-scope.ts`.
|
|
256
|
+
*
|
|
257
|
+
* A diagram that contributed nothing activates nothing, so the single-diagram
|
|
258
|
+
* path is byte-identical to what it was.
|
|
259
|
+
*/
|
|
260
|
+
render(viewport: Rectangle, zoom: number): VNode;
|
|
261
|
+
private renderInScope;
|
|
262
|
+
/**
|
|
263
|
+
* The tier actually rendered last frame, and the governor's reasoning for it.
|
|
264
|
+
*
|
|
265
|
+
* Exposed because an invisible governor is indistinguishable from a bug: if the
|
|
266
|
+
* picture silently simplifies, the only honest thing to do is be able to say WHY.
|
|
267
|
+
* The perf HUD reads this; so can an application that wants to tell the user "this
|
|
268
|
+
* diagram is being drawn at reduced detail to stay responsive".
|
|
269
|
+
*/
|
|
270
|
+
getQualityState(): {
|
|
271
|
+
tier: LODLevel;
|
|
272
|
+
governor?: GovernorState;
|
|
273
|
+
};
|
|
274
|
+
/**
|
|
275
|
+
* Tier names richest → poorest, which is the order the governor's bias walks.
|
|
276
|
+
*
|
|
277
|
+
* Derived from the diagram's LIVE config rather than a hard-coded triple, because
|
|
278
|
+
* `registerLODTier`/`setLODConfig` are public API — a governor that walked a
|
|
279
|
+
* stale list would step a custom tier into one that no longer exists.
|
|
280
|
+
*/
|
|
281
|
+
private lodTierNames;
|
|
282
|
+
/**
|
|
283
|
+
* wave8/dirty — everything a frame depends on that is NOT model state.
|
|
284
|
+
*
|
|
285
|
+
* Returns `null` for a frame that must never be reused: a live connection or
|
|
286
|
+
* reconnection drag paints a preview out of INTERACTION state, which no dirty
|
|
287
|
+
* flag and no epoch tracks. Rather than try to hash a drag (and get it subtly
|
|
288
|
+
* wrong once, which is a stuck ghost line on screen), we simply declare those
|
|
289
|
+
* frames uncacheable. They are, by definition, frames in which the user is
|
|
290
|
+
* moving the mouse — there was nothing to skip anyway.
|
|
291
|
+
*/
|
|
292
|
+
private frameSignature;
|
|
293
|
+
/**
|
|
294
|
+
* Drop the cached frame. Call from anything whose effect on the picture the
|
|
295
|
+
* mutation epoch cannot see — a topology event, a style/theme invalidation, a
|
|
296
|
+
* registry swap. Cheap and idempotent: the cost of calling it when you did not
|
|
297
|
+
* need to is one rebuilt frame; the cost of NOT calling it when you did is a
|
|
298
|
+
* stale picture, so when in doubt, call it.
|
|
299
|
+
*/
|
|
300
|
+
invalidateFrame(): void;
|
|
301
|
+
/**
|
|
302
|
+
* How many times this renderer has been told "the picture you have is no longer
|
|
303
|
+
* the picture you would draw".
|
|
304
|
+
*
|
|
305
|
+
* A HOST'S idle-skip must consult this, not just the model's mutation epoch.
|
|
306
|
+
* The two are not the same, and the gap between them is a real bug: when the
|
|
307
|
+
* off-thread route solver answers, the MODEL has not changed — the epoch does
|
|
308
|
+
* not move — but the renderer's own answer about it has improved. A scheduler
|
|
309
|
+
* keyed only on the model would drop that repaint before `render()` was ever
|
|
310
|
+
* called, and the refined routes would never reach the screen. The renderer's
|
|
311
|
+
* internal gate cannot save you there; it never gets asked.
|
|
312
|
+
*
|
|
313
|
+
* So: model epoch says "did the world change", this says "did MY picture of it
|
|
314
|
+
* change". Skip a frame only when both say no.
|
|
315
|
+
*/
|
|
316
|
+
getInvalidationEpoch(): number;
|
|
317
|
+
/**
|
|
318
|
+
* wave8/dirty — the incrementality is only real if these move. `framesSkipped`
|
|
319
|
+
* counts frames served from the previous root (zero DOM work); `framesBuilt`
|
|
320
|
+
* counts frames actually walked. An idle canvas should build ONE.
|
|
321
|
+
*/
|
|
322
|
+
getFrameStats(): {
|
|
323
|
+
built: number;
|
|
324
|
+
skipped: number;
|
|
325
|
+
};
|
|
326
|
+
/**
|
|
327
|
+
* Get current theme
|
|
328
|
+
*/
|
|
329
|
+
getTheme(): Theme;
|
|
330
|
+
/**
|
|
331
|
+
* Set theme and update rendering
|
|
332
|
+
*/
|
|
333
|
+
setTheme(theme: Theme): void;
|
|
334
|
+
/**
|
|
335
|
+
* THE HOT-SWAP. Re-theme by rewriting this instance's `--grafloria-*` variables.
|
|
336
|
+
*
|
|
337
|
+
* In CSS mode every value the built-in stylesheet paints resolves through those
|
|
338
|
+
* variables, and every `themeRef`-bound property that lands in an inline CSS
|
|
339
|
+
* style string is emitted as `var(--grafloria-…)`. So for all of them, *this one
|
|
340
|
+
* string write IS the re-theme*: no VNode is rebuilt, no element is touched,
|
|
341
|
+
* the browser simply recomputes.
|
|
342
|
+
*
|
|
343
|
+
* What it cannot cover, it does not pretend to: the entities recorded in
|
|
344
|
+
* `themeBoundNodes` / `themeBoundLinks` (see the field docs) baked a theme
|
|
345
|
+
* literal into their VNode, so they — and only they — are marked dirty and
|
|
346
|
+
* re-resolve on the next frame. An idle diagram re-themes with zero restyles;
|
|
347
|
+
* a diagram with three selected nodes restyles three nodes.
|
|
348
|
+
*
|
|
349
|
+
* Programmatic (Canvas) mode has no stylesheet at all, so there is nothing to
|
|
350
|
+
* rebind and the full invalidation is the only correct answer.
|
|
351
|
+
*/
|
|
352
|
+
applyThemeVariables(theme: Theme): void;
|
|
353
|
+
/** The colorMode in force, or undefined when the host never asked for one. */
|
|
354
|
+
getColorMode(): ColorMode | undefined;
|
|
355
|
+
/**
|
|
356
|
+
* Switch colour mode at runtime. `'system'` starts following the OS; the other
|
|
357
|
+
* two pin it. Creates the media-query subscription on first use, so a host can
|
|
358
|
+
* opt in after construction.
|
|
359
|
+
*/
|
|
360
|
+
setColorMode(mode: ColorMode, themes?: ThemeSet): void;
|
|
361
|
+
/**
|
|
362
|
+
* Point this diagram's variables at the host design system's tokens
|
|
363
|
+
* (`shadcnBridge()`, `muiBridge()`, `tailwindBridge()`, or a hand-written map).
|
|
364
|
+
* `null` removes the bridge.
|
|
365
|
+
*
|
|
366
|
+
* Pure CSS: the values are the host's own `var(--…)` expressions, so when the
|
|
367
|
+
* host app flips ITS theme, this diagram follows with no code at all — and no
|
|
368
|
+
* VNode is rebuilt here either, for exactly the reason the hot-swap works.
|
|
369
|
+
*/
|
|
370
|
+
setTokenBridge(bridge: TokenBridge | null | undefined): void;
|
|
371
|
+
/** The bridge currently applied, if any. */
|
|
372
|
+
getTokenBridge(): TokenBridge | undefined;
|
|
373
|
+
/**
|
|
374
|
+
* This renderer's instance id (`grafloria-3`). It is the value of the
|
|
375
|
+
* `data-grafloria-instance` attribute on the root `<svg>`, the scope of this
|
|
376
|
+
* diagram's CSS variables, and the suffix of its `<style>` element id.
|
|
377
|
+
*/
|
|
378
|
+
getInstanceId(): string;
|
|
379
|
+
/** Id of the `<style>` element holding THIS renderer's theme variables. */
|
|
380
|
+
getStyleElementId(): string;
|
|
381
|
+
/** Id of the `<style>` element holding THIS renderer's bridge + a11y overrides. */
|
|
382
|
+
getOverrideElementId(): string;
|
|
383
|
+
/**
|
|
384
|
+
* The complete stylesheet this renderer would inject into `<head>`: the shared
|
|
385
|
+
* theme-independent rules, the animation rules, and THIS instance's
|
|
386
|
+
* `--grafloria-*` variable block.
|
|
387
|
+
*
|
|
388
|
+
* Needed by the SSR path (Card 6). In CSS mode the theme lives entirely in CSS
|
|
389
|
+
* variables, so the emitted SVG is theme-INDEPENDENT — which is exactly what
|
|
390
|
+
* makes hydration cheap, but it also means a server-rendered diagram is
|
|
391
|
+
* unstyled until some stylesheet arrives. `renderToStaticSVG()` returns this
|
|
392
|
+
* string so the server can ship it in a `<style>` tag; the client renderer then
|
|
393
|
+
* re-injects byte-identical content under the same ids, so hydration is still a
|
|
394
|
+
* no-op visually.
|
|
395
|
+
*/
|
|
396
|
+
getStyleSheet(): string;
|
|
397
|
+
/**
|
|
398
|
+
* Put this diagram's scope on a host element.
|
|
399
|
+
*
|
|
400
|
+
* The root `<svg>` carries it automatically, and `foreignObject` content
|
|
401
|
+
* inherits from it (it lives inside the SVG). Nodes rendered on an HTML LAYER
|
|
402
|
+
* (`metadata.useHTMLLayer`) do NOT — they are siblings of the SVG. Call this
|
|
403
|
+
* with the element that wraps BOTH layers (the canvas host) so those nodes
|
|
404
|
+
* inherit the `--grafloria-*` variables and match the scoped rules too.
|
|
405
|
+
*/
|
|
406
|
+
applyInstanceScope(element: Element | null | undefined): void;
|
|
407
|
+
/**
|
|
408
|
+
* The instance-scope prop for a root VNode. Emitted in CSS mode only:
|
|
409
|
+
* programmatic mode injects no stylesheet, so scoping it would make its
|
|
410
|
+
* elements match ANOTHER instance's shared rules with no variables defined.
|
|
411
|
+
*/
|
|
412
|
+
private instanceScopeProps;
|
|
413
|
+
/**
|
|
414
|
+
* Drop cached VNodes and mark every entity dirty. Anything that changes how a
|
|
415
|
+
* style RESOLVES (theme swap, named-style (re)definition) must call this,
|
|
416
|
+
* because the cascade is resolved into the emitted VNode.
|
|
417
|
+
*/
|
|
418
|
+
private invalidateStyles;
|
|
419
|
+
/**
|
|
420
|
+
* The SURGICAL counterpart of `invalidateStyles`, used by the colorMode
|
|
421
|
+
* hot-swap: dirty ONLY the entities that baked a theme literal into their last
|
|
422
|
+
* VNode. Everything else re-themes through the rebound CSS variables, untouched.
|
|
423
|
+
*
|
|
424
|
+
* Cache entries are dropped by id rather than by clearing the whole cache, so a
|
|
425
|
+
* clean node's VNode survives — that is the point; a cleared cache would mean
|
|
426
|
+
* rebuilding the very frames we set out not to rebuild.
|
|
427
|
+
*/
|
|
428
|
+
private invalidateThemeBoundStyles;
|
|
429
|
+
/** Cache keys are `<kind>-<id>-<lod>`; an entity owns one entry per LOD tier. */
|
|
430
|
+
private dropCacheEntries;
|
|
431
|
+
/**
|
|
432
|
+
* Install the freeze / lazy-mount gate.
|
|
433
|
+
*
|
|
434
|
+
* With no lifecycle installed the renderer behaves exactly as it always has —
|
|
435
|
+
* every entity culling admits gets a view, on the frame it is admitted. That is
|
|
436
|
+
* the default, and it stays the default: laziness is something a host asks for.
|
|
437
|
+
*/
|
|
438
|
+
setViewLifecycle(lifecycle: ViewLifecycle | null): void;
|
|
439
|
+
getViewLifecycle(): ViewLifecycle | null;
|
|
440
|
+
/**
|
|
441
|
+
* What culling admitted on the last frame and the gate held back.
|
|
442
|
+
*
|
|
443
|
+
* This is the progressive mounter's work queue, and it comes from the renderer
|
|
444
|
+
* rather than being recomputed by the mounter because the viewport→viewBox→cull
|
|
445
|
+
* maths (zoom, link margin) lives here and must not be reimplemented anywhere it
|
|
446
|
+
* could drift.
|
|
447
|
+
*/
|
|
448
|
+
getDeferredEntities(): ReadonlyArray<readonly [LazyEntityKind, string]>;
|
|
449
|
+
/**
|
|
450
|
+
* Subtract from what culling admitted: frozen entities, and — during a
|
|
451
|
+
* progressive mount — everything the mount has not reached yet.
|
|
452
|
+
*/
|
|
453
|
+
private applyMountGate;
|
|
454
|
+
/**
|
|
455
|
+
* How many entities the NEXT theme swap would have to restyle. Zero means the
|
|
456
|
+
* swap is a pure variable rebind. Exposed because "no restyle of every VNode"
|
|
457
|
+
* is a claim that should be measurable, not taken on trust — the tests assert
|
|
458
|
+
* on it, and so can a host.
|
|
459
|
+
*/
|
|
460
|
+
getThemeBoundEntityCount(): number;
|
|
461
|
+
/** Node properties this renderer emits through an inline CSS `style` string. */
|
|
462
|
+
private static readonly NODE_VAR_SAFE;
|
|
463
|
+
/** Link properties this renderer emits through an inline CSS `style` string. */
|
|
464
|
+
private static readonly LINK_VAR_SAFE;
|
|
465
|
+
/**
|
|
466
|
+
* Replace every `themeRef(...)` in a resolved style with something the DOM can
|
|
467
|
+
* paint, and report whether doing so froze a theme literal into the VNode.
|
|
468
|
+
*
|
|
469
|
+
* TWO emissions, and the difference is not cosmetic:
|
|
470
|
+
*
|
|
471
|
+
* `var(--grafloria-…, literal)` — when the property's value ends up inside an
|
|
472
|
+
* inline CSS `style` string. Re-theming is then just rebinding the
|
|
473
|
+
* variable, so the element never needs to be rebuilt.
|
|
474
|
+
*
|
|
475
|
+
* the LITERAL — everywhere else. SVG PRESENTATION ATTRIBUTES cannot hold
|
|
476
|
+
* `var()` (`fill="var(--x)"` is simply invalid and the shape paints
|
|
477
|
+
* black), and programmatic/Canvas mode has no CSS at all. The entity is
|
|
478
|
+
* recorded as theme-bound so the next theme swap re-resolves it.
|
|
479
|
+
*
|
|
480
|
+
* `varSafe` is therefore not a preference — it is the exact set of properties
|
|
481
|
+
* this renderer is known to emit through a style string. Adding a property to
|
|
482
|
+
* it without also routing its emission through `style` would paint black.
|
|
483
|
+
*/
|
|
484
|
+
private materializeThemeRefs;
|
|
485
|
+
/**
|
|
486
|
+
* A paint value safe to put in an SVG PRESENTATION ATTRIBUTE.
|
|
487
|
+
*
|
|
488
|
+
* `var(--x)` is not: the attribute is invalid, the browser ignores it, and the
|
|
489
|
+
* element falls back to whatever the stylesheet says (or black). Everything
|
|
490
|
+
* else — a literal, a `url(#gradient)` paint-server reference — is fine.
|
|
491
|
+
*/
|
|
492
|
+
private attributeSafePaint;
|
|
493
|
+
/** Did a theme LAYER (state / type-default) contribute a literal to this node? */
|
|
494
|
+
private drawsThemeLiteral;
|
|
495
|
+
private linkDrawsThemeLiteral;
|
|
496
|
+
/** `theme.nodes[type]` / `theme.links[type]` — `default` is the BASE layer, not a type. */
|
|
497
|
+
private hasTypeDefaults;
|
|
498
|
+
/**
|
|
499
|
+
* A link's stroke and stroke-width as LITERALS — never a `var()` string.
|
|
500
|
+
*
|
|
501
|
+
* Needed by the two consumers that cannot take a CSS variable:
|
|
502
|
+
* - the ARROWHEAD, which paints through presentation attributes;
|
|
503
|
+
* - the hit-area width, which does ARITHMETIC on the stroke width
|
|
504
|
+
* (`Number('var(--x)') + 8` is NaN, and a NaN-wide hit area is unclickable).
|
|
505
|
+
*/
|
|
506
|
+
private linkPaintLiterals;
|
|
507
|
+
/**
|
|
508
|
+
* Get performance metrics
|
|
509
|
+
*/
|
|
510
|
+
getPerformanceMetrics(): PerformanceMetrics;
|
|
511
|
+
/**
|
|
512
|
+
* Export the diagram.
|
|
513
|
+
*
|
|
514
|
+
* - `'svg'` → a STANDALONE, styles-inlined SVG document. Pure, deterministic,
|
|
515
|
+
* and DOM-free: it runs in plain Node (an SSR pass, a thumbnail worker).
|
|
516
|
+
* - `'png' | 'jpeg' | 'webp'` → a `data:` URL. Needs an SVG rasterizer: a
|
|
517
|
+
* canvas one is used automatically in a browser/worker; in bare Node you must
|
|
518
|
+
* pass `options.rasterBackend` (and you get a clear error if you don't).
|
|
519
|
+
*
|
|
520
|
+
* Defaults to the whole diagram (content bounds + 20px), not the current
|
|
521
|
+
* viewport — a thumbnail of the visible slice is rarely what anyone means.
|
|
522
|
+
*/
|
|
523
|
+
export(format?: ExportFormat, options?: ExportOptions): Promise<string>;
|
|
524
|
+
/**
|
|
525
|
+
* The document envelope to embed — the ENGINE's own, so the artifact carries exactly
|
|
526
|
+
* the format the engine already round-trips losslessly and checksums.
|
|
527
|
+
*
|
|
528
|
+
* `createdAt` is the one field that would otherwise make an export non-deterministic,
|
|
529
|
+
* so a caller who needs byte-identical output passes it in.
|
|
530
|
+
*/
|
|
531
|
+
private modelEnvelope;
|
|
532
|
+
/**
|
|
533
|
+
* The synchronous, fully headless SVG path — what `export('svg')` returns, plus
|
|
534
|
+
* the fidelity `warnings` (foreignObject, unresolved theme vars) that the
|
|
535
|
+
* string-only `IRenderer.export` signature has nowhere to put.
|
|
536
|
+
*/
|
|
537
|
+
exportSvgString(options?: ExportOptions): SvgExportResult;
|
|
538
|
+
/**
|
|
539
|
+
* A TRUE VECTOR PDF: paths stay paths and text stays text, so it is selectable,
|
|
540
|
+
* searchable and scales without pixelation.
|
|
541
|
+
*
|
|
542
|
+
* Painted straight from the VNode tree — the same tree the screen gets — so there is no
|
|
543
|
+
* SVG→DOM→PDF round trip and no second rendering path. See `export/pdf/` for the
|
|
544
|
+
* dependency decision (we do NOT use svg2pdf.js + jsPDF, and why) and for the honest
|
|
545
|
+
* list of what a base-14-font PDF cannot do.
|
|
546
|
+
*/
|
|
547
|
+
exportPdf(options?: ExportOptions): PdfExportResult;
|
|
548
|
+
/**
|
|
549
|
+
* Slice the diagram into pages (Card 5).
|
|
550
|
+
*
|
|
551
|
+
* Returns one standalone SVG per page — a tile grid you can print, or lay out as a poster.
|
|
552
|
+
* Breaks are snapped so they do not cut a node in half; see `export/pagination.ts`.
|
|
553
|
+
*/
|
|
554
|
+
exportPages(pagination: PaginationOptions, options?: ExportOptions): PagedSvgResult;
|
|
555
|
+
/**
|
|
556
|
+
* A multi-page PDF of a diagram too big for one sheet.
|
|
557
|
+
*
|
|
558
|
+
* The paginator supplies the page grid; the PDF writer honours each page's `clip`, so a
|
|
559
|
+
* break pulled back to spare a node leaves white space rather than half a box.
|
|
560
|
+
*/
|
|
561
|
+
exportPaginatedPdf(pagination: PaginationOptions, options?: ExportOptions): PdfExportResult;
|
|
562
|
+
/**
|
|
563
|
+
* Every EXTERNAL image URL the exported tree will reference — a panel node's
|
|
564
|
+
* avatar/logo/icon (`<image href="https://…">` painted by the renderer itself), or
|
|
565
|
+
* any registered shape that emits one. Widget (HTML-layer) captures are NOT in this
|
|
566
|
+
* tree; their URLs are collected from the captures by the instance layer.
|
|
567
|
+
*
|
|
568
|
+
* This is the LOOK-BEFORE-YOU-EXPORT half of the async image pass: `await export(…)`
|
|
569
|
+
* calls this first, fetches the URLs through the tiers, and hands the resolved map
|
|
570
|
+
* back down as {@link ExportOptions.resolvedAssets} for the pure sync substitution.
|
|
571
|
+
* The tree is enumerated from the SAME `render()` the export will serialize (VNode
|
|
572
|
+
* caching makes the second call cheap), so what is collected and what is substituted
|
|
573
|
+
* cannot drift. Synchronous and network-free.
|
|
574
|
+
*/
|
|
575
|
+
collectExportImageUrls(options?: ExportOptions): string[];
|
|
576
|
+
/**
|
|
577
|
+
* The ids currently selected — what `scope: 'selection'` exports.
|
|
578
|
+
*
|
|
579
|
+
* Selection is MODEL state (`node.state.selected`, `link.state === 'selected'`),
|
|
580
|
+
* which is the same place the renderer reads it from to paint the selection
|
|
581
|
+
* colours. There is no separate selection registry to consult.
|
|
582
|
+
*/
|
|
583
|
+
private selectedIds;
|
|
584
|
+
/**
|
|
585
|
+
* The world rectangle that contains the whole diagram, padded.
|
|
586
|
+
*
|
|
587
|
+
* Nodes' bounding boxes plus any routed link points (a link can bulge outside
|
|
588
|
+
* its endpoints' union). An empty diagram exports a small, still-valid square
|
|
589
|
+
* rather than a zero-area document a rasterizer would reject.
|
|
590
|
+
*/
|
|
591
|
+
private contentViewport;
|
|
592
|
+
/**
|
|
593
|
+
* Dispose renderer and clean up resources
|
|
594
|
+
*/
|
|
595
|
+
/**
|
|
596
|
+
* Wave 8 — Card 6: how many links this frame actually had to route, and how
|
|
597
|
+
* many were served from the previous frame.
|
|
598
|
+
*
|
|
599
|
+
* Public because a cache that silently stops hitting is indistinguishable from
|
|
600
|
+
* no cache at all — it just gets slow again, and nothing says so. Tests assert
|
|
601
|
+
* on this; the benchmark harness prints it.
|
|
602
|
+
*/
|
|
603
|
+
getRoutingStats(): {
|
|
604
|
+
routed: number;
|
|
605
|
+
reused: number;
|
|
606
|
+
cached: number;
|
|
607
|
+
};
|
|
608
|
+
dispose(): void;
|
|
609
|
+
/**
|
|
610
|
+
* Render links layer
|
|
611
|
+
* FIXED: Sort links so selected/highlighted links render on top
|
|
612
|
+
*/
|
|
613
|
+
private renderLinksLayer;
|
|
614
|
+
/**
|
|
615
|
+
* Everything that determines a link's route, as a string.
|
|
616
|
+
*
|
|
617
|
+
* If two frames produce the same key then `computeAutoRoute` — a pure function
|
|
618
|
+
* of these inputs and the obstacle set — would produce the same polyline, so we
|
|
619
|
+
* serve the old one. Which means: anything computeAutoRoute reads MUST be in
|
|
620
|
+
* here, or the cache serves a stale route. The obstacle set is the single input
|
|
621
|
+
* deliberately left out (it is the whole diagram); it is handled instead by
|
|
622
|
+
* invalidateStaleRoutes(), which evicts on obstacle MOTION.
|
|
623
|
+
*
|
|
624
|
+
* Endpoints are quantised to 1/100 unit. They are derived from node positions
|
|
625
|
+
* and port layouts in floating point, and an endpoint that is unchanged in
|
|
626
|
+
* every way that matters can still differ in the last mantissa bit; keying on
|
|
627
|
+
* the raw float would miss forever and quietly hand back the O(scene)
|
|
628
|
+
* behaviour this card exists to delete — a cache that never hits looks exactly
|
|
629
|
+
* like no cache at all, and says nothing while it does it.
|
|
630
|
+
*/
|
|
631
|
+
private routeKey;
|
|
632
|
+
/** The source node's box — the extra input a self-loop's route depends on. */
|
|
633
|
+
private selfLoopBoxKey;
|
|
634
|
+
/**
|
|
635
|
+
* Forget the routes that the world just invalidated — and ONLY those.
|
|
636
|
+
*
|
|
637
|
+
* A link needs re-routing if one of its endpoint nodes moved (the route key
|
|
638
|
+
* catches that by itself, because the endpoints ARE the key) OR if some OTHER
|
|
639
|
+
* node moved into or out of the corridor it runs through. The second case is
|
|
640
|
+
* the one that matters and the one that is easy to miss: the link did not
|
|
641
|
+
* change, its own nodes did not change, and yet a wall just appeared across
|
|
642
|
+
* its path. "Re-route the links whose endpoints moved" is fast and wrong.
|
|
643
|
+
*
|
|
644
|
+
* So: diff the node rects against last frame; every node that moved, resized,
|
|
645
|
+
* appeared or vanished contributes both the rect it VACATED and the rect it now
|
|
646
|
+
* OCCUPIES; ask the engine's link spatial index — which is keyed on each link's
|
|
647
|
+
* routed bounding box, because syncLinkPoints refreshes it — which links run
|
|
648
|
+
* through those regions once the routing clearance is added; evict exactly them.
|
|
649
|
+
*/
|
|
650
|
+
private invalidateStaleRoutes;
|
|
651
|
+
/**
|
|
652
|
+
* Wave 8 — Card 6: drive the global penalty-field solver, and adopt its answer
|
|
653
|
+
* when (and only when) it describes the world we are actually drawing.
|
|
654
|
+
*
|
|
655
|
+
* Order of events across frames, which is the whole design:
|
|
656
|
+
*
|
|
657
|
+
* frame N — the sync router paints correct routes; we hand the solver this
|
|
658
|
+
* world (edges + obstacles + version) and carry on. Nothing waits.
|
|
659
|
+
* frame N+k — the solve lands. If the world is still version N, its routes are
|
|
660
|
+
* adopted and `onRoutesRefined` asks the host for a re-render. If
|
|
661
|
+
* the world has MOVED, the answer is dropped on the floor: it was
|
|
662
|
+
* computed against obstacles that are not there any more, and
|
|
663
|
+
* painting it would run links through nodes.
|
|
664
|
+
*
|
|
665
|
+
* So a link's geometry is always either "correct, one-at-a-time" or "correct,
|
|
666
|
+
* globally optimised" — never "optimised for a diagram that no longer exists".
|
|
667
|
+
*/
|
|
668
|
+
private applyGlobalSolver;
|
|
669
|
+
/** Wave 8 — Card 6: what the off-thread solver has been doing. */
|
|
670
|
+
getRouteSolverStats(): RouteSolverStats | null;
|
|
671
|
+
/**
|
|
672
|
+
* A fingerprint of the obstacle facts that are NOT node rectangles: which
|
|
673
|
+
* groups are collapsed, and where their blocks sit. Node motion is tracked
|
|
674
|
+
* precisely; this only has to notice that GROUP state moved.
|
|
675
|
+
*/
|
|
676
|
+
private obstacleEpoch;
|
|
677
|
+
/**
|
|
678
|
+
* Wave 5 — Card 4: separate corridor-sharing segments of DIFFERENT links onto
|
|
679
|
+
* parallel lanes. Only orthogonal-geometry links participate (a diagonal
|
|
680
|
+
* smooth line has no corridor to share); only interior segments move; a
|
|
681
|
+
* member whose slide would shrink or reverse an adjacent segment pins its
|
|
682
|
+
* lane, and an unsatisfiable corridor is skipped whole.
|
|
683
|
+
*/
|
|
684
|
+
private applyChannelNudging;
|
|
685
|
+
/**
|
|
686
|
+
* Group every link in the diagram by the (unordered) node pair it connects and
|
|
687
|
+
* hand each member of a multi-link group its lane offset.
|
|
688
|
+
*
|
|
689
|
+
* UNORDERED pairs: A→B and B→A are one visual bundle. Ordering them separately
|
|
690
|
+
* would give each a group of one, an offset of 0, and put both back on the same
|
|
691
|
+
* centre line — which is the bug this card exists to kill.
|
|
692
|
+
*
|
|
693
|
+
* A pair with exactly ONE link gets offset 0 and is therefore untouched, which
|
|
694
|
+
* is what keeps every existing diagram pixel-identical.
|
|
695
|
+
*/
|
|
696
|
+
private computeParallelSeparation;
|
|
697
|
+
/**
|
|
698
|
+
* The unit normal a link's bundle fans along.
|
|
699
|
+
*
|
|
700
|
+
* Derived from the bundle's CANONICAL node order (lower id → higher id), NOT
|
|
701
|
+
* from this link's own source → target. Otherwise the two halves of a
|
|
702
|
+
* bidirectional pair compute opposite normals, their opposite lane offsets
|
|
703
|
+
* cancel, and both links land back on top of each other.
|
|
704
|
+
*/
|
|
705
|
+
private bundleNormalFor;
|
|
706
|
+
/**
|
|
707
|
+
* Route a self-loop (source node === target node) as a loop away from the node.
|
|
708
|
+
*
|
|
709
|
+
* Never goes near the routing engine: the routers exclude a link's own nodes
|
|
710
|
+
* from their obstacle set, so a "route" from a node back to itself came out as
|
|
711
|
+
* a degenerate stub buried in the node body. The loop is built geometrically
|
|
712
|
+
* instead, as a polyline, which the existing path emitters then draw in the
|
|
713
|
+
* link's own idiom (rounded rectangle for `orthogonal`, a spline for `smooth`,
|
|
714
|
+
* a hard polygon for `direct`).
|
|
715
|
+
*/
|
|
716
|
+
private computeSelfLoopRoute;
|
|
717
|
+
/**
|
|
718
|
+
* Which self-loop this is on its node (0 = the first). Stable across frames
|
|
719
|
+
* because it reads the diagram's own link order.
|
|
720
|
+
*/
|
|
721
|
+
private selfLoopIndex;
|
|
722
|
+
/**
|
|
723
|
+
* Feed the whole diagram to the edge optimizer and cache what it decided for
|
|
724
|
+
* this frame.
|
|
725
|
+
*
|
|
726
|
+
* ALL links go in, not just the visible ones: a link scrolled off the left edge
|
|
727
|
+
* still crosses the one you can see, and its label still occupies space. Only
|
|
728
|
+
* VISIBLE links have been re-routed this frame — the rest carry the points they
|
|
729
|
+
* last had, exactly as the old per-link scan read them.
|
|
730
|
+
*/
|
|
731
|
+
private runEdgeOptimizer;
|
|
732
|
+
/**
|
|
733
|
+
* The jump config for a link, or undefined when it draws no jumps.
|
|
734
|
+
*
|
|
735
|
+
* Same gate the per-link scan applied: enabled, non-zero size, at least two
|
|
736
|
+
* points, and NOT a 2-point curve (a chord-based jump would both misplace the
|
|
737
|
+
* arc and destroy the bezier).
|
|
738
|
+
*/
|
|
739
|
+
private jumpConfigFor;
|
|
740
|
+
/** The link's labels, described for the optimizer (anchor, box, path normal). */
|
|
741
|
+
private optimizerLabelsFor;
|
|
742
|
+
/**
|
|
743
|
+
* Mark a link dirty when anything OUTSIDE the link changed the way it renders.
|
|
744
|
+
*
|
|
745
|
+
* `renderLink` serves a cached VNode for any link that is not dirty — but a
|
|
746
|
+
* link's drawing depends on its routed points (which change when a NODE moves),
|
|
747
|
+
* on the crossings other links make with it, and on where the optimizer put its
|
|
748
|
+
* labels. None of those mark the link dirty. Comparing a per-frame signature
|
|
749
|
+
* closes that hole; it also fixes the pre-existing version of this bug, where a
|
|
750
|
+
* cached link kept drawing yesterday's jump arcs.
|
|
751
|
+
*/
|
|
752
|
+
private markLinksWhoseFrameChanged;
|
|
753
|
+
/**
|
|
754
|
+
* Card 7 — auto-size every opted-in node before culling/rendering. Uses the
|
|
755
|
+
* theme's label font size for measurement so the reserved box matches the text
|
|
756
|
+
* the label engine will actually lay out, and feeds each node its composite
|
|
757
|
+
* panel reserve (Card 5 header band / image / badge row) so the shape grows to
|
|
758
|
+
* fit the WHOLE body, not just the label.
|
|
759
|
+
*/
|
|
760
|
+
private autoSizeNodes;
|
|
761
|
+
/**
|
|
762
|
+
* The extra content space a node's composite panel (Card 5) reserves around
|
|
763
|
+
* its label, so auto-sizing (Card 7) grows the shape to fit the WHOLE body.
|
|
764
|
+
* Returns undefined for a plain (label-only) node.
|
|
765
|
+
*/
|
|
766
|
+
private panelReserve;
|
|
767
|
+
/**
|
|
768
|
+
* Card 5 — the composite panel overlay for a node (header band, image/icon
|
|
769
|
+
* slots, badges, ERD/UML rows). Built through the framework-agnostic `panel`
|
|
770
|
+
* module and themed from the active theme; text goes out via `textContent`
|
|
771
|
+
* and image hrefs are sanitized (see panel.ts). Empty for a plain node.
|
|
772
|
+
*/
|
|
773
|
+
private renderPanelOverlay;
|
|
774
|
+
/**
|
|
775
|
+
* Card 4 — the HTML / foreignObject body for a node (sanitized rich content
|
|
776
|
+
* sized to node.size). Empty for a non-HTML node. The FO is keyed by a content
|
|
777
|
+
* hash so a data change replaces the opaque subtree while hover/selection
|
|
778
|
+
* leaves it intact (see html-node.ts).
|
|
779
|
+
*/
|
|
780
|
+
private renderHtmlBody;
|
|
781
|
+
/**
|
|
782
|
+
* Render nodes layer
|
|
783
|
+
*/
|
|
784
|
+
private renderNodesLayer;
|
|
785
|
+
/**
|
|
786
|
+
* Phase 2: Render connection preview layer
|
|
787
|
+
*/
|
|
788
|
+
private renderConnectionPreviewLayer;
|
|
789
|
+
/**
|
|
790
|
+
* Phase 2: Render connection preview line
|
|
791
|
+
*/
|
|
792
|
+
private renderConnectionPreview;
|
|
793
|
+
/**
|
|
794
|
+
* Wave 2 (Edges & links): render the endpoint-reconnection ghost link.
|
|
795
|
+
*
|
|
796
|
+
* Draws a dashed preview from the STATIONARY endpoint of the link (the one
|
|
797
|
+
* not being dragged) to the cursor, using the same RoutingEngine the real
|
|
798
|
+
* connection preview uses so the ghost matches the link's routing algorithm.
|
|
799
|
+
* Colour reflects drop validity (success vs default link colour).
|
|
800
|
+
*/
|
|
801
|
+
/**
|
|
802
|
+
* wave15/helper-lines: the live snap guides a node drag publishes
|
|
803
|
+
* (engine.getSnapGuides) as dashed overlay lines; spacing segments carry
|
|
804
|
+
* their gap label at the midpoint. Null (no layer at all) when idle, so a
|
|
805
|
+
* diagram that never snaps pays nothing.
|
|
806
|
+
*/
|
|
807
|
+
private renderSnapGuidesLayer;
|
|
808
|
+
/**
|
|
809
|
+
* The proximity-connect proposal wire: a dashed line between the two port
|
|
810
|
+
* anchors a drop would link. Port anchors resolve through the SAME helpers
|
|
811
|
+
* the port glyphs render with (getPortPositionForShape + getWorldPosition),
|
|
812
|
+
* so the wire lands exactly on the highlighted glyphs.
|
|
813
|
+
*/
|
|
814
|
+
private renderProximityPreview;
|
|
815
|
+
private renderReconnectionPreview;
|
|
816
|
+
/**
|
|
817
|
+
* Phase 2: Generate connection preview path
|
|
818
|
+
* Supports straight, bezier, step (orthogonal) routing
|
|
819
|
+
*/
|
|
820
|
+
private generateConnectionPreviewPath;
|
|
821
|
+
/**
|
|
822
|
+
* Render single node
|
|
823
|
+
*/
|
|
824
|
+
/**
|
|
825
|
+
* wave2/rendering: single LOD feature gate. Reads the active diagram's
|
|
826
|
+
* declarative LODConfig (`diagram.shouldRender`) instead of hardcoding
|
|
827
|
+
* `lod === 'high'` / `lod !== 'low'` here, so custom tiers Just Work.
|
|
828
|
+
* Returns false when there is no diagram (nothing to render anyway).
|
|
829
|
+
*/
|
|
830
|
+
private lodAllows;
|
|
831
|
+
/**
|
|
832
|
+
* The node group's transform.
|
|
833
|
+
*
|
|
834
|
+
* wave4/interaction BUGFIX: `node.rotation` was DEAD in the renderer. The model
|
|
835
|
+
* had it (`setRotation`, `rotate`, it is serialized, and the hierarchy maths in
|
|
836
|
+
* `NodeModel.getGlobalPosition` factors it in), the canvas even branched on it
|
|
837
|
+
* (`hasTransformsInHierarchy`), but the SVG output only ever emitted
|
|
838
|
+
* `translate(x, y)` — so a rotated node rendered unrotated and the rotate tool
|
|
839
|
+
* would have had nothing to show. Rotation is about the box CENTRE, which is
|
|
840
|
+
* the convention `applyResizeToNode` (selection-tools) inverts when it resizes
|
|
841
|
+
* a rotated node.
|
|
842
|
+
*/
|
|
843
|
+
private nodeTransform;
|
|
844
|
+
/** Accessible name of a node: its label, else "<type> node". */
|
|
845
|
+
private nodeAccessibleName;
|
|
846
|
+
/**
|
|
847
|
+
* The ARIA props for a node group.
|
|
848
|
+
*
|
|
849
|
+
* FIXED HERE (a real, shipped WCAG 4.1.2 / axe `aria-allowed-attr` violation):
|
|
850
|
+
* every node used to emit `role="group" aria-selected="…"`. `aria-selected` is
|
|
851
|
+
* only valid on gridcell/option/row/tab/columnheader/rowheader/treeitem — NOT
|
|
852
|
+
* on `group`. So every node in every diagram carried an invalid ARIA attribute,
|
|
853
|
+
* and axe flags it on sight. The node is a graphic, so it takes the W3C Graphics
|
|
854
|
+
* role; selection now rides in the accessible NAME (which is what a screen
|
|
855
|
+
* reader actually reads out) and in `data-selected` for tooling. The place
|
|
856
|
+
* `aria-selected` is genuinely valid — `role="treeitem"` — is the outline
|
|
857
|
+
* mirror, and that is exactly where the outline view puts it.
|
|
858
|
+
*/
|
|
859
|
+
private nodeAriaProps;
|
|
860
|
+
/**
|
|
861
|
+
* The ARIA props for a link group.
|
|
862
|
+
*
|
|
863
|
+
* THE headline gap of this wave: before it, `renderLink` emitted NO ARIA at
|
|
864
|
+
* all. Every edge in every diagram was invisible to a screen reader, so the
|
|
865
|
+
* graph read as a bag of disconnected shapes — the one thing a diagram exists
|
|
866
|
+
* to communicate (what connects to what) was the one thing AT users could not
|
|
867
|
+
* get.
|
|
868
|
+
*/
|
|
869
|
+
private linkAriaProps;
|
|
870
|
+
/**
|
|
871
|
+
* ROVING TABINDEX (card 1). The canvas is ONE tab stop; arrow keys — not Tab —
|
|
872
|
+
* move within it. So exactly one element in the whole diagram carries
|
|
873
|
+
* `tabindex=0` at any moment (the focused one), and every other focusable
|
|
874
|
+
* element carries `-1`. Tab therefore enters the diagram once and leaves it
|
|
875
|
+
* once, which is what a composite widget is supposed to do; without this, a
|
|
876
|
+
* 200-node diagram is a 200-stop tab trap.
|
|
877
|
+
*/
|
|
878
|
+
private rovingTabIndexProps;
|
|
879
|
+
/**
|
|
880
|
+
* Tell the renderer which entity the keyboard controller has focused, so the
|
|
881
|
+
* next frame emits `tabindex=0` on it (and `-1` on everything else).
|
|
882
|
+
*
|
|
883
|
+
* Marks only the OLD and NEW focus targets dirty — moving focus must not
|
|
884
|
+
* invalidate the whole diagram.
|
|
885
|
+
*/
|
|
886
|
+
setAccessibleFocus(target: {
|
|
887
|
+
type: 'node' | 'link' | 'comment';
|
|
888
|
+
id: string;
|
|
889
|
+
} | null): void;
|
|
890
|
+
getAccessibleFocus(): {
|
|
891
|
+
type: 'node' | 'link' | 'comment';
|
|
892
|
+
id: string;
|
|
893
|
+
} | null;
|
|
894
|
+
/**
|
|
895
|
+
* wave9/comments (Card 6): attach (or detach) the source of comment pins.
|
|
896
|
+
*
|
|
897
|
+
* Installing a source CHANGES THE PICTURE while moving nothing the frame gate watches —
|
|
898
|
+
* not the model epoch, not the viewport. Without the explicit invalidation the gate would
|
|
899
|
+
* keep serving back the last frame, which has no pins in it, forever. This is the trap
|
|
900
|
+
* this wave was warned about, and it is one line.
|
|
901
|
+
*/
|
|
902
|
+
setCommentSource(source: CommentSource | null): void;
|
|
903
|
+
getCommentSource(): CommentSource | null;
|
|
904
|
+
/**
|
|
905
|
+
* The comment pin layer for this frame, or null when nothing is attached.
|
|
906
|
+
*
|
|
907
|
+
* Culled against the same world rect the nodes are, so a diagram with 4,000 comments
|
|
908
|
+
* costs what the ones ON SCREEN cost. Drawn in WORLD coordinates inside the viewBox, so
|
|
909
|
+
* pan and zoom carry the pins with the diagram without a line of code.
|
|
910
|
+
*/
|
|
911
|
+
private renderCommentsLayer;
|
|
912
|
+
/**
|
|
913
|
+
* wave12/group-visuals — the group FRAMES.
|
|
914
|
+
*
|
|
915
|
+
* One frame per group: a rounded `<rect>` at the group's outer bounds, a label
|
|
916
|
+
* band carrying its `name`, and — when collapsed — a visibly distinct treatment
|
|
917
|
+
* (dashed, opaque, marked `data-collapsed`). Returns null when the diagram has
|
|
918
|
+
* no groups, so a group-free canvas pays a single array read and the children[]
|
|
919
|
+
* positional contract is untouched (see the children assembly in `render`).
|
|
920
|
+
*
|
|
921
|
+
* PURE / READ-ONLY. It only reads group geometry (`getOuterBounds`) — it never
|
|
922
|
+
* mutates the model, so it cannot dirty an idle frame and disarm the frame gate.
|
|
923
|
+
*
|
|
924
|
+
* PAINT ORDER. Groups are sorted parent-behind-child (nesting depth first, then
|
|
925
|
+
* `zIndex`, then insertion order) so a nested sub-group draws ON TOP of the
|
|
926
|
+
* parent that contains it — otherwise the parent's fill would bury the child.
|
|
927
|
+
*
|
|
928
|
+
* CULLING. A linear intersect against the visible rect, matching how strokes are
|
|
929
|
+
* culled: groups number in the tens, so a spatial index would be theatre.
|
|
930
|
+
*/
|
|
931
|
+
private renderGroupsLayer;
|
|
932
|
+
/** One group's frame + label band, themed and accessible. */
|
|
933
|
+
private renderGroupFrame;
|
|
934
|
+
/** The canvas's own semantics. */
|
|
935
|
+
private rootAriaProps;
|
|
936
|
+
/**
|
|
937
|
+
* NON-COLOUR STATUS ENCODING — WCAG 1.4.1 (Use of Colour).
|
|
938
|
+
*
|
|
939
|
+
* The audit question, answered honestly: our states WERE largely colour-only.
|
|
940
|
+
* - `selected` already had a dashed outline → a genuine shape cue. Fine.
|
|
941
|
+
* - `highlighted` was a fill/stroke SWAP and nothing else. Colour-only.
|
|
942
|
+
* - `error` was a fill/stroke SWAP and nothing else. Colour-only.
|
|
943
|
+
*
|
|
944
|
+
* A user with deuteranopia, or anyone on a monochrome display, could not tell
|
|
945
|
+
* an errored node from a highlighted one from a normal one. This is the exact
|
|
946
|
+
* failure most diagram engines quietly ship.
|
|
947
|
+
*
|
|
948
|
+
* So both now carry a REDUNDANT, non-colour cue:
|
|
949
|
+
* - error → a corner badge with a "!" glyph, plus a dense dashed ring;
|
|
950
|
+
* - highlighted → a distinct dashed emphasis ring (a different dash rhythm
|
|
951
|
+
* from selection's, so the two never read as the same thing).
|
|
952
|
+
*
|
|
953
|
+
* The badges are `aria-hidden` — the state is already in the accessible name,
|
|
954
|
+
* and announcing it twice is its own accessibility bug.
|
|
955
|
+
*/
|
|
956
|
+
private renderStateAffordances;
|
|
957
|
+
/**
|
|
958
|
+
* The same 1.4.1 fix for LINKS, which were worse: a selected link and a
|
|
959
|
+
* highlighted link differed from a default one by stroke COLOUR and nothing
|
|
960
|
+
* else — no dash, no width, no shape. On a greyscale display all three edges
|
|
961
|
+
* are identical.
|
|
962
|
+
*
|
|
963
|
+
* The cue is a "casing" — a wider, semi-transparent halo drawn UNDER the real
|
|
964
|
+
* path. It reads as a shape change (the edge visibly thickens) at any colour
|
|
965
|
+
* perception, and because it is an additive sibling it does not perturb the
|
|
966
|
+
* path geometry that the routing/label/toolbar code all depend on.
|
|
967
|
+
*/
|
|
968
|
+
private renderLinkStateAffordances;
|
|
969
|
+
private renderNode;
|
|
970
|
+
/**
|
|
971
|
+
* Every VNode-cache key an entity currently occupies — one per LOD tier it
|
|
972
|
+
* has been rendered at since its last change.
|
|
973
|
+
*
|
|
974
|
+
* A SINGLE dirty flag guards a PER-LOD cache: rebuilding one tier's entry
|
|
975
|
+
* and calling markClean() left every OTHER tier's cached entry stale, so a
|
|
976
|
+
* layout that moved geometry resurfaced its PRE-layout picture on the next
|
|
977
|
+
* zoom/fitView LOD flip (live report: "click force then dagre — the diagram
|
|
978
|
+
* is destroyed"; the painted edges were the previous layout's routes).
|
|
979
|
+
* Evicting the entity's whole key set on the dirty rebuild is what makes
|
|
980
|
+
* markClean() safe again — and it tracks keys rather than hard-coding the
|
|
981
|
+
* tier vocabulary, so custom governor tiers stay covered.
|
|
982
|
+
*/
|
|
983
|
+
private entityCacheKeys;
|
|
984
|
+
private cacheEntityVNode;
|
|
985
|
+
/**
|
|
986
|
+
* Check if a node should use foreignObject rendering
|
|
987
|
+
* Nodes can indicate they want foreignObject by setting metadata.useForeignObject = true
|
|
988
|
+
*/
|
|
989
|
+
private shouldUseForeignObject;
|
|
990
|
+
/**
|
|
991
|
+
* Render a node using foreignObject for component embedding
|
|
992
|
+
*/
|
|
993
|
+
private renderNodeWithForeignObject;
|
|
994
|
+
/**
|
|
995
|
+
* Get container ID for a node (if it uses foreignObject)
|
|
996
|
+
*/
|
|
997
|
+
getContainerId(nodeId: string): string | undefined;
|
|
998
|
+
/**
|
|
999
|
+
* Check if a node uses foreignObject rendering
|
|
1000
|
+
*/
|
|
1001
|
+
isUsingForeignObject(nodeId: string): boolean;
|
|
1002
|
+
/**
|
|
1003
|
+
* Phase 2: Render ports for a node
|
|
1004
|
+
*
|
|
1005
|
+
* Wave 6 (Card 1): also resolves LABEL COLLISIONS, which is why the labels
|
|
1006
|
+
* cannot be built inside `renderPort` — nudging a crowded label needs to see
|
|
1007
|
+
* its neighbours, and a single port can't.
|
|
1008
|
+
*/
|
|
1009
|
+
private renderPorts;
|
|
1010
|
+
/**
|
|
1011
|
+
* Wave 6 (Card 1): the port labels for one node, with collision-aware nudging.
|
|
1012
|
+
*
|
|
1013
|
+
* Labels are resolved per SIDE, because that is the axis they actually crowd
|
|
1014
|
+
* on: a column of inputs down the left edge whose labels overlap vertically.
|
|
1015
|
+
* Ports with no label cost nothing — a node with no labelled ports returns an
|
|
1016
|
+
* empty array and emits not a single extra VNode.
|
|
1017
|
+
*/
|
|
1018
|
+
private renderPortLabels;
|
|
1019
|
+
/**
|
|
1020
|
+
* Phase 3: Render single port
|
|
1021
|
+
* Updated to support template system port rendering configuration
|
|
1022
|
+
* CRITICAL FIX: Added pointer-events and proper z-index to ensure ports are clickable
|
|
1023
|
+
*/
|
|
1024
|
+
private renderPort;
|
|
1025
|
+
/**
|
|
1026
|
+
* Wave 6 (Card 6): this port's role in the CURRENT connection drag.
|
|
1027
|
+
*
|
|
1028
|
+
* Reads the drag state's `invalidTargetPorts` — the map the connection manager
|
|
1029
|
+
* now populates with a REASON per rejected port. Before wave 6 there was no
|
|
1030
|
+
* such map, `validTargetPorts` was never filled either, and the renderer had
|
|
1031
|
+
* literally no way to tell a legal target from an illegal one.
|
|
1032
|
+
*/
|
|
1033
|
+
private portDragState;
|
|
1034
|
+
/**
|
|
1035
|
+
* Get port position relative to node's local coordinate system
|
|
1036
|
+
* Used for rendering ports inside node groups that are already transformed
|
|
1037
|
+
*/
|
|
1038
|
+
private getPortRelativePosition;
|
|
1039
|
+
/**
|
|
1040
|
+
* Phase 3: Determine if port should be rendered based on visibility strategy
|
|
1041
|
+
* Updated to support template system configuration
|
|
1042
|
+
* CRITICAL FIX: Added comprehensive debugging and proper string comparison
|
|
1043
|
+
*/
|
|
1044
|
+
private shouldRenderPort;
|
|
1045
|
+
private shouldRenderPortByMode;
|
|
1046
|
+
/**
|
|
1047
|
+
* Phase 2: Get port color based on type
|
|
1048
|
+
*
|
|
1049
|
+
* Wave 6 (Card 7): a port that declares a `dataType` wears THAT type's colour,
|
|
1050
|
+
* if one was registered. Colour-by-type is the affordance that makes a typed
|
|
1051
|
+
* graph readable at a glance — you can see that a `number` output will not
|
|
1052
|
+
* mate with a `string` input before you even start the drag. Falls straight
|
|
1053
|
+
* back to the direction colours, so an untyped port is unchanged.
|
|
1054
|
+
*/
|
|
1055
|
+
private getPortColor;
|
|
1056
|
+
/**
|
|
1057
|
+
* Phase 3.1: Render node shape based on shape configuration
|
|
1058
|
+
* Supports: rect, circle, ellipse, diamond, hexagon
|
|
1059
|
+
*/
|
|
1060
|
+
/**
|
|
1061
|
+
* Node label engine: render the node's label as a shape-fitted text block.
|
|
1062
|
+
*
|
|
1063
|
+
* - maxWidth = the shape's inner-rect width (getInnerRect); the diamond /
|
|
1064
|
+
* ellipse / triangle … inset it so text stays inside the silhouette.
|
|
1065
|
+
* - maxLines = floor(innerHeight / lineHeight); overflow collapses to '…'.
|
|
1066
|
+
* - a per-node <clipPath> sized to the exact inner rect is the hard backstop
|
|
1067
|
+
* that guarantees glyphs never escape the shape even if the width estimate
|
|
1068
|
+
* is off (it uses the naive length*fontSize*0.6 heuristic — see text-block).
|
|
1069
|
+
*
|
|
1070
|
+
* Returns [clipPath, text]; both are children of the node's translated <g>,
|
|
1071
|
+
* so the clip rect and the text share the node-local coordinate space.
|
|
1072
|
+
*/
|
|
1073
|
+
private renderNodeLabel;
|
|
1074
|
+
/** Gap between a silhouette's bottom edge and its below-label (px). */
|
|
1075
|
+
private static readonly BELOW_LABEL_GAP;
|
|
1076
|
+
/**
|
|
1077
|
+
* Paint a node's caption BELOW its silhouette (`metadata.labelPlacement:
|
|
1078
|
+
* 'below'`). The label is centred under the node, wraps at a width a little
|
|
1079
|
+
* wider than the shape (a 36px event circle should not force one-character
|
|
1080
|
+
* lines), is NEVER clipped and NEVER shrunk below the theme size — outside
|
|
1081
|
+
* the silhouette there is room, so legibility wins. The text block's top edge
|
|
1082
|
+
* sits {@link BELOW_LABEL_GAP} px under the node's height, so it can never
|
|
1083
|
+
* straddle the silhouette edge.
|
|
1084
|
+
*/
|
|
1085
|
+
private renderNodeLabelBelow;
|
|
1086
|
+
private renderNodeShape;
|
|
1087
|
+
/**
|
|
1088
|
+
* Phase 3.1: Render selection highlight matching node shape
|
|
1089
|
+
*/
|
|
1090
|
+
private renderSelectionHighlight;
|
|
1091
|
+
/**
|
|
1092
|
+
* resize-ux: the PAINTED resize affordances — React Flow NodeResizer parity.
|
|
1093
|
+
*
|
|
1094
|
+
* When exactly one resizable, unlocked node is selected (the same conditions
|
|
1095
|
+
* under which SelectionToolsController emits resize handles — this method
|
|
1096
|
+
* paints whatever that controller computes, nothing of its own), draw:
|
|
1097
|
+
*
|
|
1098
|
+
* - 4 EDGE LINES along the node's border (the side handles' bands: grab the
|
|
1099
|
+
* border anywhere and that edge follows), each with its axis cursor;
|
|
1100
|
+
* - 4 CORNER DOTS (white squares, primary border) with their diagonal
|
|
1101
|
+
* cursors, drawn AFTER the lines so a dot wins its own pixels — the same
|
|
1102
|
+
* priority the hit ladder gives it.
|
|
1103
|
+
*
|
|
1104
|
+
* All sizes are divided by zoom, so the affordances hold a constant SCREEN
|
|
1105
|
+
* size at any zoom (RF's autoScale). That is also why this layer is rebuilt
|
|
1106
|
+
* every frame and never enters the vnode cache: a cached node group would
|
|
1107
|
+
* keep the sizing of whatever zoom it was built at.
|
|
1108
|
+
*
|
|
1109
|
+
* Painted as a ROOT overlay (not inside the node group) so it renders above
|
|
1110
|
+
* the node's ports, and rotation comes from the layer's own geometry —
|
|
1111
|
+
* `computeLayer` rotates every handle with the node.
|
|
1112
|
+
*/
|
|
1113
|
+
private renderResizeToolsLayer;
|
|
1114
|
+
/**
|
|
1115
|
+
* Phase 3.1: Render shadow matching node shape
|
|
1116
|
+
*/
|
|
1117
|
+
private renderShadow;
|
|
1118
|
+
/**
|
|
1119
|
+
* Get link endpoints (source and target port positions in world coordinates)
|
|
1120
|
+
* CRITICAL FIX: Use the same getPortPositionForShape() as port rendering to ensure alignment
|
|
1121
|
+
*/
|
|
1122
|
+
private getLinkEndpoints;
|
|
1123
|
+
/**
|
|
1124
|
+
* Wave 6 (ports, Card 5): resolve where `link` attaches to `port`, and which way
|
|
1125
|
+
* it travels there.
|
|
1126
|
+
*
|
|
1127
|
+
* Two effects compose:
|
|
1128
|
+
* * the port's `fromSpot`/`toSpot` moves the attachment onto a named point of
|
|
1129
|
+
* the GLYPH (its corner, its far edge) and can aim the link somewhere other
|
|
1130
|
+
* than the port's outward normal;
|
|
1131
|
+
* * `spread` fans the links SHARING this port along the port's edge, so five
|
|
1132
|
+
* links into one input arrive as five strokes instead of one overdrawn pile.
|
|
1133
|
+
*
|
|
1134
|
+
* With neither configured this returns the port's plain anchor point and its
|
|
1135
|
+
* side — the exact pre-wave-6 endpoint, to the bit. A port with a single link
|
|
1136
|
+
* never moves even WITH spread enabled (a one-lane spread has offset 0).
|
|
1137
|
+
*/
|
|
1138
|
+
private portAttachment;
|
|
1139
|
+
/**
|
|
1140
|
+
* The lane offset of every link sharing `port`, memoised for the frame.
|
|
1141
|
+
*
|
|
1142
|
+
* Lanes are keyed on the OTHER endpoint's port id so the fan is stable: adding
|
|
1143
|
+
* an unrelated link, or reloading the diagram, must not reshuffle the strokes
|
|
1144
|
+
* a user is already looking at.
|
|
1145
|
+
*/
|
|
1146
|
+
private portSpreadLanes;
|
|
1147
|
+
/**
|
|
1148
|
+
* Map LinkModel pathType to RoutingAlgorithm
|
|
1149
|
+
*/
|
|
1150
|
+
private mapPathTypeToAlgorithm;
|
|
1151
|
+
/**
|
|
1152
|
+
* Wave 5 (Edge routing) — Card 0. The routing algorithm for a link: its
|
|
1153
|
+
* explicit `router` when set, else the legacy pathType derivation. This is
|
|
1154
|
+
* the seam that finally makes the registered obstacle routers REACHABLE —
|
|
1155
|
+
* mapPathTypeToAlgorithm could only ever produce straight/orthogonal, so
|
|
1156
|
+
* a-star/dijkstra/visibility-graph were registered but unaddressable.
|
|
1157
|
+
*/
|
|
1158
|
+
private routerForLink;
|
|
1159
|
+
/**
|
|
1160
|
+
* Wave 6: validate a router NAME against the live RoutingEngine registry.
|
|
1161
|
+
* Unknown names — and the async-only 'elk' — degrade to 'orthogonal' instead
|
|
1162
|
+
* of throwing out of the render loop. A diagram with one bad router name must
|
|
1163
|
+
* still draw; it must not blank the canvas.
|
|
1164
|
+
*/
|
|
1165
|
+
private resolveRouterName;
|
|
1166
|
+
/**
|
|
1167
|
+
* Card 0: does this link's ROUTER produce orthogonal (axis-aligned) geometry?
|
|
1168
|
+
* The waypoint editor, arrow-angle maths and parallel-lane fan-out all branch
|
|
1169
|
+
* on "is this an elbow route" — which is a property of the router, not of the
|
|
1170
|
+
* pathType shorthand (an explicit manhattan/avoid router routes in elbows even
|
|
1171
|
+
* when the legacy pathType says 'smooth').
|
|
1172
|
+
*/
|
|
1173
|
+
private isOrthogonalRouting;
|
|
1174
|
+
/**
|
|
1175
|
+
* Wave 6 — Card 2. If this link names a REGISTERED connector, let it draw the
|
|
1176
|
+
* whole path; otherwise return null and the built-in branches run untouched.
|
|
1177
|
+
*
|
|
1178
|
+
* ONE implementation, called from BOTH places a link's `d` is produced (the
|
|
1179
|
+
* auto-routed branch via `convertRoutedPathToSVG`, and the manual-waypoint
|
|
1180
|
+
* branch via `generatePathData`) — so a custom connector cannot work on one
|
|
1181
|
+
* kind of link and silently not the other.
|
|
1182
|
+
*
|
|
1183
|
+
* The four BUILT-IN connector names never reach the registry: they are the
|
|
1184
|
+
* renderer's own branches and stay exactly as they were.
|
|
1185
|
+
*/
|
|
1186
|
+
private customConnectorPath;
|
|
1187
|
+
/**
|
|
1188
|
+
* Card 0: the CONNECTOR expressed in the renderer's legacy vocabulary, so the
|
|
1189
|
+
* existing rendering branches (which all read a pathType-shaped string) apply
|
|
1190
|
+
* unchanged: 'rounded' rides the orthogonal branch (that IS the rounded-corner
|
|
1191
|
+
* code path), 'straight' rides direct. A link with no explicit connector
|
|
1192
|
+
* renders byte-identically to before.
|
|
1193
|
+
*/
|
|
1194
|
+
private renderPathType;
|
|
1195
|
+
/**
|
|
1196
|
+
* wave8/culling — Card 4. The path type to EMIT at this tier.
|
|
1197
|
+
*
|
|
1198
|
+
* Below the `link-detail` tier a curve is drawn as its polyline. A cubic needs
|
|
1199
|
+
* control points computed per segment and emits a `C` command per bend; at a
|
|
1200
|
+
* zoom where the whole edge is a few dozen pixels the curve and its chord are
|
|
1201
|
+
* the same handful of pixels, so the arithmetic buys nothing.
|
|
1202
|
+
*
|
|
1203
|
+
* Orthogonal stays orthogonal — its right angles are its MEANING (a flowchart
|
|
1204
|
+
* that goes diagonal at low zoom has changed what it says, not how finely it
|
|
1205
|
+
* says it), and the orthogonal emitter is a cheap `L` walk anyway.
|
|
1206
|
+
*/
|
|
1207
|
+
private pathTypeForLOD;
|
|
1208
|
+
/**
|
|
1209
|
+
* wave8/culling — Card 4. The polyline to DRAW at this tier.
|
|
1210
|
+
*
|
|
1211
|
+
* Below the `link-detail` tier the path is run through the engine's
|
|
1212
|
+
* `PathSimplifier` (Douglas–Peucker) with a tolerance of one SCREEN pixel —
|
|
1213
|
+
* `1 / zoom` world units, so the tolerance tightens as you zoom in and the
|
|
1214
|
+
* simplification silently retires itself. A bend the user cannot resolve is a
|
|
1215
|
+
* `L` command, a VNode diff and a DOM attribute for nothing.
|
|
1216
|
+
*
|
|
1217
|
+
* The DRAWN path only. `link.points` keeps the true geometry (see the call
|
|
1218
|
+
* site) — hit-testing, link bounds and the spatial index must not be told a
|
|
1219
|
+
* simplification is the truth.
|
|
1220
|
+
*
|
|
1221
|
+
* A route that is already 2 points (which is what `computeCoarseRoute` emits,
|
|
1222
|
+
* so: the common far-zoom case) short-circuits without allocating.
|
|
1223
|
+
*/
|
|
1224
|
+
private pathForLOD;
|
|
1225
|
+
/**
|
|
1226
|
+
* Calculate distance between two points
|
|
1227
|
+
*/
|
|
1228
|
+
private distance;
|
|
1229
|
+
/**
|
|
1230
|
+
* Generate SVG path segment with rounded bend
|
|
1231
|
+
* Based on React Flow's getBend function from smoothstep-edge.ts
|
|
1232
|
+
*/
|
|
1233
|
+
private getBend;
|
|
1234
|
+
/**
|
|
1235
|
+
* Convert orthogonal path to SVG with rounded corners
|
|
1236
|
+
* Implements React Flow's smoothstep edge rendering
|
|
1237
|
+
*/
|
|
1238
|
+
private convertOrthogonalPathWithBends;
|
|
1239
|
+
/** Built-in bend radius per path type (React Flow's smoothstep default = 5). */
|
|
1240
|
+
private defaultCornerRadius;
|
|
1241
|
+
/**
|
|
1242
|
+
* The bend radius a link asks for. Unset (or non-finite/negative) → the
|
|
1243
|
+
* built-in default for its path type, so untouched links render byte-identical
|
|
1244
|
+
* to before this knob existed. `getBend` clamps every corner to half the
|
|
1245
|
+
* shorter adjacent segment, so any radius is geometrically safe.
|
|
1246
|
+
*/
|
|
1247
|
+
private resolveCornerRadius;
|
|
1248
|
+
/**
|
|
1249
|
+
* Smooth/bezier control-point offset, honouring `style.curvature` (a
|
|
1250
|
+
* multiplier of the endpoint distance; default 0.5 = the legacy factor).
|
|
1251
|
+
* The historical 100px cap scales with the multiplier so curvature 0.5 is
|
|
1252
|
+
* exactly the old `Math.min(distance / 2, 100)`.
|
|
1253
|
+
*/
|
|
1254
|
+
private controlDistanceFor;
|
|
1255
|
+
/** The 2-point smooth/bezier control arms — one implementation for the drawn
|
|
1256
|
+
* path AND the hit polyline. */
|
|
1257
|
+
private smoothControlPoints;
|
|
1258
|
+
/**
|
|
1259
|
+
* The polyline the INTERACTION layer should measure — the PAINTED geometry,
|
|
1260
|
+
* flattened.
|
|
1261
|
+
*
|
|
1262
|
+
* `link.points` used to hold the ROUTE (for a 2-point smooth link: the bare
|
|
1263
|
+
* chord) while the drawn path is a direction-aware cubic that bows up to
|
|
1264
|
+
* ~25 world units away from it. Every consumer of `link.points` — the body
|
|
1265
|
+
* hit test, hover, label anchors, waypoint-insertion t, the edge toolbar's
|
|
1266
|
+
* midpoint — was measuring a line the user cannot see: on dagre-tree's
|
|
1267
|
+
* fan-out edges only ~12-20% of the painted length accepted a click, with
|
|
1268
|
+
* a dead band at the apex wider than the stroke itself (live report:
|
|
1269
|
+
* "not always so easy to select the line on all its points"; investigator-
|
|
1270
|
+
* quantified). Flattening at 16 steps per cubic mirrors the Canvas
|
|
1271
|
+
* backend's own pick flattening (path-geometry.flattenPath), which already
|
|
1272
|
+
* measured the painted commands — the two backends now agree by
|
|
1273
|
+
* construction.
|
|
1274
|
+
*/
|
|
1275
|
+
/**
|
|
1276
|
+
* Sync `link.points` from a ROUTE via the painted geometry, not the raw
|
|
1277
|
+
* polyline. Every sync site must go through here: the routing pre-pass
|
|
1278
|
+
* re-syncs every routed link EVERY frame, so a flatten done only in
|
|
1279
|
+
* renderLink is overwritten right back to the chord on the next frame —
|
|
1280
|
+
* which is exactly the bug this exists to prevent (smooth 2-point links
|
|
1281
|
+
* bow ~25px off their chord; hit-testing, hover, labels, toolbars and
|
|
1282
|
+
* bounds all measure link.points).
|
|
1283
|
+
*/
|
|
1284
|
+
private syncPaintedLinkPoints;
|
|
1285
|
+
private paintedHitPolyline;
|
|
1286
|
+
/**
|
|
1287
|
+
* Convert RoutedPath to SVG path string
|
|
1288
|
+
*
|
|
1289
|
+
* Wave 3: `style` carries the link's per-link path-shape knobs (cornerRadius,
|
|
1290
|
+
* curvature). Omitted by the connection/reconnection previews, which have no
|
|
1291
|
+
* link style yet — they keep the built-in defaults.
|
|
1292
|
+
*/
|
|
1293
|
+
private convertRoutedPathToSVG;
|
|
1294
|
+
/**
|
|
1295
|
+
* Render single link (Option 2: Enhanced with arrows and labels)
|
|
1296
|
+
*/
|
|
1297
|
+
private renderLink;
|
|
1298
|
+
/**
|
|
1299
|
+
* Wave 4 (Edges & links) — Card 5: run this link's registered template, if it
|
|
1300
|
+
* named one. Returns null when the link has no template, when the name is not
|
|
1301
|
+
* registered, or when the template opted out by returning null — in every one
|
|
1302
|
+
* of those cases the link falls back to the built-in rendering rather than
|
|
1303
|
+
* vanishing.
|
|
1304
|
+
*/
|
|
1305
|
+
private renderLinkTemplate;
|
|
1306
|
+
/**
|
|
1307
|
+
* Assemble the per-frame `<defs>` VNode from the registered paint servers.
|
|
1308
|
+
* Empty (`<defs/>`) when nothing needed a paint server this frame.
|
|
1309
|
+
*/
|
|
1310
|
+
private buildDefsNode;
|
|
1311
|
+
/**
|
|
1312
|
+
* Resolve a fill/stroke value to something an SVG `fill`/`stroke` accepts.
|
|
1313
|
+
* A colour string passes through unchanged; a gradient/pattern SPEC OBJECT is
|
|
1314
|
+
* registered as a deduped `<defs>` entry and returned as `url(#grafloria-def-…)`.
|
|
1315
|
+
*/
|
|
1316
|
+
private resolvePaint;
|
|
1317
|
+
private resolveFill;
|
|
1318
|
+
private resolveStroke;
|
|
1319
|
+
/**
|
|
1320
|
+
* Resolve a `style.shadow` value to a `filter` attribute. The legacy boolean
|
|
1321
|
+
* is ignored here (its always-on drop-shadow VNode is unchanged); a Shadow
|
|
1322
|
+
* SPEC OBJECT registers a deduped `<filter>` and returns `url(#grafloria-def-…)`.
|
|
1323
|
+
*/
|
|
1324
|
+
private resolveShadowFilter;
|
|
1325
|
+
/**
|
|
1326
|
+
* A node/link whose RESOLVED style references a paint server must NOT be
|
|
1327
|
+
* served from (or written to) the vnode cache: the cached VNode carries the
|
|
1328
|
+
* url(#…) reference, but the matching `<defs>` entry is only registered while
|
|
1329
|
+
* the style is (re)computed — a cache hit would skip that and orphan the ref.
|
|
1330
|
+
*
|
|
1331
|
+
* RESOLVED, not raw: a gradient/pattern/shadow can now also arrive from a
|
|
1332
|
+
* named style or a theme type-default, not just from the entity's own style.
|
|
1333
|
+
*/
|
|
1334
|
+
private nodeUsesPaintServer;
|
|
1335
|
+
private linkUsesPaintServer;
|
|
1336
|
+
/**
|
|
1337
|
+
* wave8/culling — Card 4. Whether THIS frame emits paint servers at all.
|
|
1338
|
+
*
|
|
1339
|
+
* THE INVARIANT: when this is false, NOTHING registers a `<defs>` entry —
|
|
1340
|
+
* `resolvePaint` returns a flat colour and `resolveShadowFilter` returns
|
|
1341
|
+
* undefined. They are the only two producers. So no VNode built this frame can
|
|
1342
|
+
* hold a `url(#…)`, and the cache-bypass that exists purely to keep such a ref
|
|
1343
|
+
* from being orphaned has nothing left to protect — which is precisely what
|
|
1344
|
+
* lets a gradient-heavy scene use the VNode cache at far zoom instead of
|
|
1345
|
+
* rebuilding every gradient node from scratch on every frame.
|
|
1346
|
+
*
|
|
1347
|
+
* Both producers must stay gated on THIS predicate. Gate one and not the other
|
|
1348
|
+
* and you get the original bug back: a cached VNode pointing at a def that was
|
|
1349
|
+
* never emitted.
|
|
1350
|
+
*/
|
|
1351
|
+
private paintServersActive;
|
|
1352
|
+
/**
|
|
1353
|
+
* The cascade's answer for a node, with every `themeRef` turned into something
|
|
1354
|
+
* paintable and the entity's theme-boundness recorded.
|
|
1355
|
+
*
|
|
1356
|
+
* A node is theme-BOUND (i.e. a theme swap must restyle it) when it froze a
|
|
1357
|
+
* theme literal into its VNode. Three sources, all detected here rather than
|
|
1358
|
+
* assumed:
|
|
1359
|
+
* - `theme.nodes[type]` supplied a type-default,
|
|
1360
|
+
* - the STATE layer painted it (selected/highlighted/hovered/disabled/error),
|
|
1361
|
+
* - a `themeRef` had to be baked to a literal (see materializeThemeRefs).
|
|
1362
|
+
*/
|
|
1363
|
+
private resolvedNodeStyle;
|
|
1364
|
+
private resolvedLinkStyle;
|
|
1365
|
+
/**
|
|
1366
|
+
* Compute node styles for CSS mode
|
|
1367
|
+
*/
|
|
1368
|
+
private computeNodeStylesCSS;
|
|
1369
|
+
/**
|
|
1370
|
+
* Compute node styles for programmatic mode
|
|
1371
|
+
*/
|
|
1372
|
+
private computeNodeStylesProgrammatic;
|
|
1373
|
+
/**
|
|
1374
|
+
* Compute link styles for CSS mode
|
|
1375
|
+
*/
|
|
1376
|
+
private computeLinkStylesCSS;
|
|
1377
|
+
/**
|
|
1378
|
+
* Compute link styles for programmatic mode
|
|
1379
|
+
*/
|
|
1380
|
+
private computeLinkStylesProgrammatic;
|
|
1381
|
+
/**
|
|
1382
|
+
* Generate SVG path data from points and segments
|
|
1383
|
+
* Supports both straight lines and bezier curves
|
|
1384
|
+
*
|
|
1385
|
+
* Wave 3: takes the link's `style` so a MANUAL-WAYPOINT path honours the same
|
|
1386
|
+
* per-link cornerRadius as an auto-routed one (the two path-emitting branches
|
|
1387
|
+
* of renderLink must not disagree about a link's corners).
|
|
1388
|
+
*/
|
|
1389
|
+
private generatePathData;
|
|
1390
|
+
/**
|
|
1391
|
+
* Grow the viewport before asking the engine which links intersect it.
|
|
1392
|
+
*
|
|
1393
|
+
* The link SpatialIndex is indexed on the link's straight-line endpoints plus
|
|
1394
|
+
* whatever route was last written back to `link.points`. A link that has never
|
|
1395
|
+
* been drawn (or that was re-routed around a new obstacle this very frame) can
|
|
1396
|
+
* bulge OUTSIDE that box: the detour lives in this renderer's per-frame
|
|
1397
|
+
* `frameRoutes` map and only lands in `link.points` once the link renders.
|
|
1398
|
+
*
|
|
1399
|
+
* Padding the query region by a margin makes the query a superset, so a link
|
|
1400
|
+
* whose detour swings into view is never culled a frame too early. Culling a
|
|
1401
|
+
* little too little costs a handful of VNodes; culling too much makes edges
|
|
1402
|
+
* blink out of existence.
|
|
1403
|
+
*/
|
|
1404
|
+
private expandForLinkCulling;
|
|
1405
|
+
/**
|
|
1406
|
+
* Create empty diagram VNode
|
|
1407
|
+
*/
|
|
1408
|
+
private createEmptyDiagram;
|
|
1409
|
+
/**
|
|
1410
|
+
* Inject this renderer's CSS.
|
|
1411
|
+
*
|
|
1412
|
+
* TWO stylesheets, deliberately:
|
|
1413
|
+
* 1. the SHARED rules (`generateBaseStyleSheet()` + the animation CSS) —
|
|
1414
|
+
* theme-INDEPENDENT, written in `var(--grafloria-*)`, injected once per
|
|
1415
|
+
* document and deduped by `GRAFLORIA_BASE_STYLE_ID`;
|
|
1416
|
+
* 2. this instance's VARIABLE BLOCK — `[data-grafloria-instance="grafloria-3"] { … }`
|
|
1417
|
+
* in a `<style>` element whose id carries the instance id.
|
|
1418
|
+
*
|
|
1419
|
+
* That split is the fix: the old scheme keyed the element by THEME NAME and
|
|
1420
|
+
* re-emitted every rule with hex literals, so a second diagram with a second
|
|
1421
|
+
* theme repainted the first one, and disposing either renderer could remove
|
|
1422
|
+
* the other's stylesheet.
|
|
1423
|
+
*/
|
|
1424
|
+
private injectThemeCSS;
|
|
1425
|
+
/**
|
|
1426
|
+
* This instance's OVERRIDE block: the host's design tokens, then the
|
|
1427
|
+
* accessibility media queries. Always present in CSS mode — even with no
|
|
1428
|
+
* bridge, because `prefers-contrast` and `forced-colors` are the FLOOR every
|
|
1429
|
+
* diagram gets, not an opt-in.
|
|
1430
|
+
*/
|
|
1431
|
+
private injectOverrideCSS;
|
|
1432
|
+
/**
|
|
1433
|
+
* Inject the shared, theme-independent rules once per document. Every
|
|
1434
|
+
* renderer feeds the same rules from its own variable block.
|
|
1435
|
+
*/
|
|
1436
|
+
private ensureBaseStyleSheet;
|
|
1437
|
+
/** Drop the shared rules once the LAST instance's variable block is gone. */
|
|
1438
|
+
private releaseBaseStyleSheet;
|
|
1439
|
+
/**
|
|
1440
|
+
* This renderer's theme CSS: the VARIABLE BLOCK, and nothing else.
|
|
1441
|
+
*
|
|
1442
|
+
* The rules that consume these variables are theme-independent and live in
|
|
1443
|
+
* the shared stylesheet (theme-css.ts). This block is the ONLY place a
|
|
1444
|
+
* theme's values are written, and it is scoped to this diagram's root — which
|
|
1445
|
+
* is what lets two diagrams with different themes coexist on one page.
|
|
1446
|
+
*/
|
|
1447
|
+
private generateThemeCSS;
|
|
1448
|
+
/**
|
|
1449
|
+
* The animation service — global animation enable/speed, reduced-motion and
|
|
1450
|
+
* battery-saver policy. Public because these are HOST decisions: the service
|
|
1451
|
+
* existed with a full config surface and no accessor, so nothing outside
|
|
1452
|
+
* this class could e.g. opt out of the battery auto-toggle
|
|
1453
|
+
* (`respectBatteryStatus: false`) — a laptop under 20% silently killed every
|
|
1454
|
+
* edge animation with no way back.
|
|
1455
|
+
*/
|
|
1456
|
+
getAnimationService(): AnimationService;
|
|
1457
|
+
/**
|
|
1458
|
+
* Generate animation CSS
|
|
1459
|
+
* Phase 1: Includes edge animations, node border animations, and status animations
|
|
1460
|
+
*/
|
|
1461
|
+
private generateAnimationCSS;
|
|
1462
|
+
/**
|
|
1463
|
+
* Subscribe to engine events
|
|
1464
|
+
*/
|
|
1465
|
+
private subscribeToEngineEvents;
|
|
1466
|
+
/**
|
|
1467
|
+
* Start FPS tracking
|
|
1468
|
+
*/
|
|
1469
|
+
private startFPSTracking;
|
|
1470
|
+
/**
|
|
1471
|
+
* Estimate memory usage
|
|
1472
|
+
*/
|
|
1473
|
+
private estimateMemoryUsage;
|
|
1474
|
+
/**
|
|
1475
|
+
* Calculate intersection point between a line segment and a rectangle
|
|
1476
|
+
* Used to position arrows at node boundaries instead of port centers
|
|
1477
|
+
*/
|
|
1478
|
+
private calculateLineRectIntersection;
|
|
1479
|
+
/**
|
|
1480
|
+
* Calculate the tangent angle at the end of a bezier curve
|
|
1481
|
+
* For a cubic bezier curve, the tangent at t=1 (endpoint) is determined by
|
|
1482
|
+
* the direction from the second control point (cp2) to the endpoint
|
|
1483
|
+
*
|
|
1484
|
+
* @param cp2 Second control point of the bezier curve
|
|
1485
|
+
* @param endpoint End point of the bezier curve
|
|
1486
|
+
* @returns Angle in degrees
|
|
1487
|
+
*/
|
|
1488
|
+
private calculateBezierEndTangent;
|
|
1489
|
+
/**
|
|
1490
|
+
* Get perpendicular angle from port side
|
|
1491
|
+
* Used for orthogonal routing to ensure arrows are perpendicular to node edges
|
|
1492
|
+
*
|
|
1493
|
+
* @param portSide Port side ('left' | 'right' | 'top' | 'bottom')
|
|
1494
|
+
* @returns Angle in degrees pointing away from the node
|
|
1495
|
+
*/
|
|
1496
|
+
private getPerpendicularAngleFromPortSide;
|
|
1497
|
+
/**
|
|
1498
|
+
* Calculate arrow direction based on routing algorithm and path geometry
|
|
1499
|
+
* Implements research-based best practices for each algorithm type
|
|
1500
|
+
*
|
|
1501
|
+
* @param algorithm Routing algorithm used
|
|
1502
|
+
* @param pathType Path type (bezier, smooth, straight, etc.)
|
|
1503
|
+
* @param points Path points
|
|
1504
|
+
* @param portSide Port side for orthogonal routing (optional)
|
|
1505
|
+
* @returns Angle in degrees
|
|
1506
|
+
*/
|
|
1507
|
+
private calculateArrowDirection;
|
|
1508
|
+
/**
|
|
1509
|
+
* Calculate arrow position and angle for a link endpoint
|
|
1510
|
+
* Handles both source and target ends with algorithm-aware direction calculation
|
|
1511
|
+
*
|
|
1512
|
+
* @param link Link model
|
|
1513
|
+
* @param points Path points
|
|
1514
|
+
* @param isTarget True for target end, false for source end
|
|
1515
|
+
* @param arrowLength Length of arrow in pixels
|
|
1516
|
+
* @returns Object with position and angle
|
|
1517
|
+
*/
|
|
1518
|
+
private calculateArrowPositionAndAngle;
|
|
1519
|
+
/**
|
|
1520
|
+
* HIGH-PERFORMANCE: Create simple orthogonal segment between two points
|
|
1521
|
+
* Uses 3-point path: start -> corner -> end
|
|
1522
|
+
* Much faster than calling routing engine
|
|
1523
|
+
*/
|
|
1524
|
+
private createOrthogonalSegment;
|
|
1525
|
+
/**
|
|
1526
|
+
* Wave 3 (Edges & links) — "jumps win over an oversized corner radius".
|
|
1527
|
+
*
|
|
1528
|
+
* buildPathWithJumps derives each segment's legal cut window from the corner
|
|
1529
|
+
* bends: `lo = bendPrev + 1`, `hi = segLen - bendNext - 1`. A big per-link
|
|
1530
|
+
* cornerRadius eats that window from both ends, so a jump-carrying segment
|
|
1531
|
+
* could silently lose its jump (`hi - lo < 3`).
|
|
1532
|
+
*
|
|
1533
|
+
* So: on segments that actually host a crossing, cap the radius at the value
|
|
1534
|
+
* that still leaves a full `size`-wide window —
|
|
1535
|
+
* bendPrev + bendNext <= 2R ⇒ R <= (segLen - 2 - reserves - size) / 2
|
|
1536
|
+
* — and NEVER tighten below the built-in default. Consequences:
|
|
1537
|
+
* • a link at (or below) the default radius is bit-for-bit unchanged;
|
|
1538
|
+
* • a large radius degrades toward the default only as far as the jumps
|
|
1539
|
+
* need, instead of dropping arcs;
|
|
1540
|
+
* • a segment too short for any jump at the DEFAULT radius keeps today's
|
|
1541
|
+
* behaviour (the `hi - lo < 3` guard drops that one cut).
|
|
1542
|
+
*/
|
|
1543
|
+
private cornerRadiusForJumps;
|
|
1544
|
+
/**
|
|
1545
|
+
* Build the link path from its polyline with jump geometry inserted.
|
|
1546
|
+
*
|
|
1547
|
+
* Works on the SAME point array the detector indexed (never re-parses the
|
|
1548
|
+
* rendered path string, whose rounded corners would shift segment indices).
|
|
1549
|
+
* Cuts ±size/2 around each crossing so the rendered jump is exactly `size`
|
|
1550
|
+
* wide, merges overlapping cuts, keeps cuts clear of corner bends, and uses
|
|
1551
|
+
* a constant sweep so every arc on a link bulges to the same side of travel.
|
|
1552
|
+
*/
|
|
1553
|
+
private buildPathWithJumps;
|
|
1554
|
+
/**
|
|
1555
|
+
* Manual waypoints are an explicit editor action (flagged via metadata by the
|
|
1556
|
+
* interaction layer), never inferred from point count — auto-routed
|
|
1557
|
+
* orthogonal paths also have >2 points.
|
|
1558
|
+
*/
|
|
1559
|
+
private linkHasManualWaypoints;
|
|
1560
|
+
/**
|
|
1561
|
+
* Keep link.points in sync with the rendered route on every frame so hit
|
|
1562
|
+
* testing and jump-point detection see current geometry. Direct assignment
|
|
1563
|
+
* (no setPoints) to avoid emitting link:changed and re-render loops.
|
|
1564
|
+
*
|
|
1565
|
+
* That silence is also why we re-index the link by hand: the diagram's link
|
|
1566
|
+
* SpatialIndex — which now drives viewport culling — only hears about geometry
|
|
1567
|
+
* through events, so without this its grid cells would still describe the route
|
|
1568
|
+
* the link had when it was added, and a detoured link could be culled.
|
|
1569
|
+
*/
|
|
1570
|
+
private syncLinkPoints;
|
|
1571
|
+
/**
|
|
1572
|
+
* Compute the auto route for a link.
|
|
1573
|
+
*
|
|
1574
|
+
* pathType determines the base routing algorithm ('orthogonal' → orthogonal
|
|
1575
|
+
* router; direct/smooth/bezier → straight router). If a straight route would
|
|
1576
|
+
* cross the link's own nodes (inverted geometry) or any obstacle, it falls
|
|
1577
|
+
* back to the orthogonal router, which respects port directions and A*
|
|
1578
|
+
* obstacle avoidance — links must never run through node bodies.
|
|
1579
|
+
*/
|
|
1580
|
+
/**
|
|
1581
|
+
* Wave 5 — Card 6: the group facts a route needs. Pure derivation from the
|
|
1582
|
+
* diagram's group state; feature-tolerant (a diagram with no groups pays one
|
|
1583
|
+
* empty array read).
|
|
1584
|
+
*/
|
|
1585
|
+
private collectGroupRouting;
|
|
1586
|
+
/**
|
|
1587
|
+
* Wave 8 — Card 6: the frame's obstacle arrays, built ONCE.
|
|
1588
|
+
*
|
|
1589
|
+
* `computeAutoRoute` used to rebuild these per link: `getNodes()`, a filter, a
|
|
1590
|
+
* map — O(nodes) allocations for every link it routed, every frame. On the 10k
|
|
1591
|
+
* benchmark that is 10,000 objects × ~700 visible links = 7 million throwaway
|
|
1592
|
+
* rects per frame, before any routing happened at all.
|
|
1593
|
+
*
|
|
1594
|
+
* Two arrays, because the router needs two different sets:
|
|
1595
|
+
* `routing` — what a link routes AGAINST (minus collapsed-away members);
|
|
1596
|
+
* `all` — every node, used by the own-node penetration fallback.
|
|
1597
|
+
*
|
|
1598
|
+
* The ARRAY IDENTITY matters as much as the contents: `RoutingEngine` memoises
|
|
1599
|
+
* its merged obstacle set and spatial index on it, so handing every link the
|
|
1600
|
+
* same array is what collapses N index builds into one.
|
|
1601
|
+
*
|
|
1602
|
+
* NOTE ON THE SOURCE/TARGET EXCLUSION — read before "fixing" this. The old
|
|
1603
|
+
* per-link build filtered the link's own two nodes out of the obstacle array.
|
|
1604
|
+
* That filter never did anything: `RoutingEngine.route()` unions the request's
|
|
1605
|
+
* obstacles with its GLOBAL obstacle map, and `DiagramEngine` registers every
|
|
1606
|
+
* node in that map, so both endpoint nodes came straight back in. Dropping the
|
|
1607
|
+
* filter is therefore behaviour-preserving (the union is identical), which is
|
|
1608
|
+
* why the 225-assertion line harness does not move.
|
|
1609
|
+
*
|
|
1610
|
+
* It is also a LATENT BUG, and a big one: because a link's own endpoints are
|
|
1611
|
+
* obstacles, the straight port-to-port path "collides" for essentially every
|
|
1612
|
+
* link, so essentially every link falls through to A* obstacle avoidance —
|
|
1613
|
+
* measured at 72/72 links on the benchmark scene. Making the exclusion real
|
|
1614
|
+
* would move routes across the whole product and is a routing-semantics
|
|
1615
|
+
* decision, not a performance one. Left as found, and now documented.
|
|
1616
|
+
*/
|
|
1617
|
+
private frameObstacles;
|
|
1618
|
+
/**
|
|
1619
|
+
* The obstacle array this link routes against — the frame's shared array in
|
|
1620
|
+
* the overwhelming majority of cases.
|
|
1621
|
+
*
|
|
1622
|
+
* The one link that cannot use it is a PROXY LINK whose endpoint IS a collapsed
|
|
1623
|
+
* group: that link must not treat its own group block as a wall. Rare enough
|
|
1624
|
+
* to pay for a private array, and the group-block exclusion (unlike the node
|
|
1625
|
+
* one above) is worth preserving because a block is not necessarily in the
|
|
1626
|
+
* engine's global map.
|
|
1627
|
+
*/
|
|
1628
|
+
private obstaclesForLink;
|
|
1629
|
+
/**
|
|
1630
|
+
* Card 4. The route for this link AT THIS TIER: the real one when the tier
|
|
1631
|
+
* renders `routing`, a direct polyline when it does not.
|
|
1632
|
+
*
|
|
1633
|
+
* The single door both the pre-pass and `renderLink`'s fallback go through, so
|
|
1634
|
+
* the two can never disagree about which geometry a frame is drawing. Note that
|
|
1635
|
+
* the pre-pass memoises AROUND this call and keys on `routingAllowed` — see
|
|
1636
|
+
* `routeKey`: the two routers are indistinguishable by their inputs alone.
|
|
1637
|
+
*/
|
|
1638
|
+
private routeForLOD;
|
|
1639
|
+
/**
|
|
1640
|
+
* The far-zoom route: a straight line from port to port. O(1).
|
|
1641
|
+
*
|
|
1642
|
+
* `computeAutoRoute` builds an obstacle rectangle for EVERY node in the diagram
|
|
1643
|
+
* for EVERY link, then searches against them — O(nodes) per edge, O(nodes x
|
|
1644
|
+
* edges) per frame. Measured on the Wave-8 benchmark that is 96% of a 1k frame
|
|
1645
|
+
* and 99% of a 5k one, and it is the whole of the 63-second 10k zoom-out.
|
|
1646
|
+
*
|
|
1647
|
+
* What it buys is a route that dodges node bodies. At the tiers this runs at,
|
|
1648
|
+
* a node body is a smudge and the dodge is sub-pixel — so we do not buy it.
|
|
1649
|
+
*
|
|
1650
|
+
* SELF-LOOPS still loop. `computeSelfLoopRoute` never touches the routing
|
|
1651
|
+
* engine (it is pure geometry, O(1) in the obstacle count), and a self-loop
|
|
1652
|
+
* flattened to a straight line degenerates into a stub inside its own node —
|
|
1653
|
+
* i.e. it would visually DISAPPEAR, which is a correctness loss, not a
|
|
1654
|
+
* fidelity one. Cheap work that keeps an edge visible is work worth doing.
|
|
1655
|
+
*/
|
|
1656
|
+
private computeCoarseRoute;
|
|
1657
|
+
private computeAutoRoute;
|
|
1658
|
+
/**
|
|
1659
|
+
* Shortest way OUT of whatever node bodies cover the point (used when a
|
|
1660
|
+
* port is buried inside the peer node because the two bodies overlap).
|
|
1661
|
+
* Marches the four axis rays and returns the nearest point that is outside
|
|
1662
|
+
* every covering body, with a small clearance.
|
|
1663
|
+
*/
|
|
1664
|
+
private shortestEscape;
|
|
1665
|
+
private frameSmartSides;
|
|
1666
|
+
/**
|
|
1667
|
+
* Point on the node's VISIBLE outline for a floating smart attachment:
|
|
1668
|
+
* the given side at the given cross-axis coordinate (world). Rects use the
|
|
1669
|
+
* bounding-box edge; ellipse/circle project analytically and hexagon/diamond
|
|
1670
|
+
* intersect the outline polygon, so the line never hovers off the drawn shape.
|
|
1671
|
+
*/
|
|
1672
|
+
private shapeEdgePoint;
|
|
1673
|
+
/**
|
|
1674
|
+
* The VISIBLE port on the given side closest to the ideal attachment point,
|
|
1675
|
+
* or null when the node shows no ports there (visibility resolves through
|
|
1676
|
+
* port config → node metadata → the global interaction strategy; only
|
|
1677
|
+
* 'always' counts — hover-revealed ports must not flip attachment mid-drag).
|
|
1678
|
+
*/
|
|
1679
|
+
private nearestVisiblePort;
|
|
1680
|
+
/**
|
|
1681
|
+
* The nearest port on a side regardless of visibility — the 'port-facing'
|
|
1682
|
+
* strategy's anchor source. Visibility must not steer ATTACHMENT: ports are
|
|
1683
|
+
* the node's connection anatomy whether or not their glyphs are drawn, and an
|
|
1684
|
+
* endpoint that jumps when a hover reveals them is worse than either state.
|
|
1685
|
+
*/
|
|
1686
|
+
private nearestPortOnSide;
|
|
1687
|
+
/**
|
|
1688
|
+
* The link's own endpoint nodes (resolved via cached ids or port search).
|
|
1689
|
+
*/
|
|
1690
|
+
private linkOwnNodes;
|
|
1691
|
+
/**
|
|
1692
|
+
* Smooth cubic spline (Catmull-Rom) through every route point — used so a
|
|
1693
|
+
* smooth/bezier link keeps its curved identity on multi-point detours
|
|
1694
|
+
* instead of visually turning into an orthogonal link.
|
|
1695
|
+
*/
|
|
1696
|
+
private catmullRomPath;
|
|
1697
|
+
/**
|
|
1698
|
+
* Sample the Catmull-Rom spline into a polyline (for penetration checks —
|
|
1699
|
+
* the spline can overshoot corners beyond the route's own points).
|
|
1700
|
+
*/
|
|
1701
|
+
private sampleCatmullRom;
|
|
1702
|
+
/**
|
|
1703
|
+
* Total length of the polyline that lies inside the given node bodies
|
|
1704
|
+
* (rects inset by 1px so port-touch on the border doesn't count).
|
|
1705
|
+
*/
|
|
1706
|
+
private penetrationLength;
|
|
1707
|
+
/**
|
|
1708
|
+
* Make an "orthogonal" route strictly orthogonal:
|
|
1709
|
+
* 1. absorb near-miss elbows into the exact endpoint axes (grid-snapped
|
|
1710
|
+
* elbows sit up to gridSize/2 off the port, producing slanted stubs),
|
|
1711
|
+
* 2. split any remaining diagonal segment with a corner point,
|
|
1712
|
+
* 3. merge collinear runs, which also removes out-and-back retraces.
|
|
1713
|
+
*/
|
|
1714
|
+
private rectifyOrthogonalRoute;
|
|
1715
|
+
/**
|
|
1716
|
+
* True if any polyline segment passes through a node body. Node rects are
|
|
1717
|
+
* inset by 1px so a path legitimately touching the border at a port doesn't
|
|
1718
|
+
* count as a crossing.
|
|
1719
|
+
*/
|
|
1720
|
+
/**
|
|
1721
|
+
* Motion-stable routing: split the frame's obstacle nodes into the ones at
|
|
1722
|
+
* rest and the ones mid-animation. Memoised on the node ARRAY's identity —
|
|
1723
|
+
* `frameObstacles` hands every link the same array within a frame, so the
|
|
1724
|
+
* partition is computed once per frame, not once per link.
|
|
1725
|
+
*/
|
|
1726
|
+
private motionPartition;
|
|
1727
|
+
private routeCrossesNodes;
|
|
1728
|
+
/**
|
|
1729
|
+
* Segment/rect intersection via Liang-Barsky clipping.
|
|
1730
|
+
*/
|
|
1731
|
+
private segmentIntersectsRect;
|
|
1732
|
+
/**
|
|
1733
|
+
* Liang-Barsky segment/rect clip — returns the parametric interval of the
|
|
1734
|
+
* segment that lies inside the rect, or null if it misses entirely.
|
|
1735
|
+
*/
|
|
1736
|
+
private segmentRectClip;
|
|
1737
|
+
}
|