@grafloria/element 0.3.19 → 0.3.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{src/index.ts → esm/src/index.js} +60 -569
- package/esm/src/lib/dashboard-kit/dashboard.js +590 -0
- package/esm/src/lib/dashboard-kit/grid-binder.js +1633 -0
- package/esm/src/lib/dashboard-kit/grid-mapping.js +164 -0
- package/esm/src/lib/dashboard-kit/index.js +8 -0
- package/{src/lib/dashboard-kit/styles.ts → esm/src/lib/dashboard-kit/styles.js} +8 -9
- package/esm/src/lib/dashboard-kit/widgets.js +379 -0
- package/esm/src/lib/diagram-kit/card.js +199 -0
- package/esm/src/lib/diagram-kit/editing.js +448 -0
- package/esm/src/lib/diagram-kit/er.js +160 -0
- package/esm/src/lib/diagram-kit/handles.js +312 -0
- package/esm/src/lib/diagram-kit/index.js +15 -0
- package/esm/src/lib/diagram-kit/join-guidance.js +322 -0
- package/esm/src/lib/diagram-kit/rows.js +144 -0
- package/{src/lib/diagram-kit/styles.ts → esm/src/lib/diagram-kit/styles.js} +10 -10
- package/esm/src/lib/diagram-kit/uml.js +135 -0
- package/esm/src/lib/diagram-kit/update.js +244 -0
- package/esm/src/lib/grafloria-flow-element.js +266 -0
- package/esm/src/lib/grafloria.js +69 -0
- package/esm/src/lib/load.js +252 -0
- package/esm/src/lib/node-type-registry.js +42 -0
- package/esm/src/lib/stencil-kit/builders.js +18 -0
- package/esm/src/lib/stencil-kit/card-builders.js +105 -0
- package/esm/src/lib/stencil-kit/index.js +9 -0
- package/esm/src/lib/stencil-kit/palette.js +427 -0
- package/esm/src/lib/stencil-kit/shape-data.js +537 -0
- package/{src/lib/stencil-kit/styles.ts → esm/src/lib/stencil-kit/styles.js} +9 -9
- package/package.json +12 -3
- package/jest.config.ts +0 -16
- package/project.json +0 -44
- package/src/front-door-probe.spec.ts +0 -173
- package/src/index.js.map +0 -1
- package/src/lib/dashboard-kit/dashboard.js.map +0 -1
- package/src/lib/dashboard-kit/dashboard.spec.ts +0 -821
- package/src/lib/dashboard-kit/dashboard.ts +0 -906
- package/src/lib/dashboard-kit/grid-binder.js.map +0 -1
- package/src/lib/dashboard-kit/grid-binder.ts +0 -1976
- package/src/lib/dashboard-kit/grid-mapping.js.map +0 -1
- package/src/lib/dashboard-kit/grid-mapping.spec.ts +0 -308
- package/src/lib/dashboard-kit/grid-mapping.ts +0 -283
- package/src/lib/dashboard-kit/index.js.map +0 -1
- package/src/lib/dashboard-kit/index.ts +0 -56
- package/src/lib/dashboard-kit/styles.js.map +0 -1
- package/src/lib/dashboard-kit/widgets.js.map +0 -1
- package/src/lib/dashboard-kit/widgets.spec.ts +0 -239
- package/src/lib/dashboard-kit/widgets.ts +0 -484
- package/src/lib/diagram-kit/card.js.map +0 -1
- package/src/lib/diagram-kit/card.ts +0 -219
- package/src/lib/diagram-kit/diagram-kit.spec.ts +0 -465
- package/src/lib/diagram-kit/editing.js.map +0 -1
- package/src/lib/diagram-kit/editing.spec.ts +0 -172
- package/src/lib/diagram-kit/editing.ts +0 -493
- package/src/lib/diagram-kit/er.js.map +0 -1
- package/src/lib/diagram-kit/er.ts +0 -246
- package/src/lib/diagram-kit/handles.js.map +0 -1
- package/src/lib/diagram-kit/handles.spec.ts +0 -224
- package/src/lib/diagram-kit/handles.ts +0 -375
- package/src/lib/diagram-kit/index.js.map +0 -1
- package/src/lib/diagram-kit/index.ts +0 -66
- package/src/lib/diagram-kit/join-guidance.js.map +0 -1
- package/src/lib/diagram-kit/join-guidance.spec.ts +0 -241
- package/src/lib/diagram-kit/join-guidance.ts +0 -390
- package/src/lib/diagram-kit/rows.js.map +0 -1
- package/src/lib/diagram-kit/rows.ts +0 -174
- package/src/lib/diagram-kit/styles.js.map +0 -1
- package/src/lib/diagram-kit/uml.js.map +0 -1
- package/src/lib/diagram-kit/uml.ts +0 -213
- package/src/lib/diagram-kit/update.js.map +0 -1
- package/src/lib/diagram-kit/update.spec.ts +0 -208
- package/src/lib/diagram-kit/update.ts +0 -324
- package/src/lib/grafloria-flow-element.js.map +0 -1
- package/src/lib/grafloria-flow-element.spec.ts +0 -290
- package/src/lib/grafloria-flow-element.ts +0 -298
- package/src/lib/grafloria.js.map +0 -1
- package/src/lib/grafloria.ts +0 -151
- package/src/lib/load.js.map +0 -1
- package/src/lib/load.spec.ts +0 -565
- package/src/lib/load.ts +0 -359
- package/src/lib/node-type-registry.js.map +0 -1
- package/src/lib/node-type-registry.ts +0 -76
- package/src/lib/stencil-kit/builders.js.map +0 -1
- package/src/lib/stencil-kit/builders.ts +0 -58
- package/src/lib/stencil-kit/card-builders.js.map +0 -1
- package/src/lib/stencil-kit/card-builders.ts +0 -113
- package/src/lib/stencil-kit/index.js.map +0 -1
- package/src/lib/stencil-kit/index.ts +0 -17
- package/src/lib/stencil-kit/palette.js.map +0 -1
- package/src/lib/stencil-kit/palette.ts +0 -482
- package/src/lib/stencil-kit/shape-data.js.map +0 -1
- package/src/lib/stencil-kit/shape-data.spec.ts +0 -470
- package/src/lib/stencil-kit/shape-data.ts +0 -680
- package/src/lib/stencil-kit/styles.js.map +0 -1
- package/src/libs/element/src/index.js.map +0 -1
- package/src/libs/element/src/lib/dashboard-kit/dashboard.js.map +0 -1
- package/src/libs/element/src/lib/dashboard-kit/grid-binder.js.map +0 -1
- package/src/libs/element/src/lib/dashboard-kit/grid-mapping.js.map +0 -1
- package/src/libs/element/src/lib/dashboard-kit/index.js.map +0 -1
- package/src/libs/element/src/lib/dashboard-kit/styles.js.map +0 -1
- package/src/libs/element/src/lib/dashboard-kit/widgets.js.map +0 -1
- package/src/libs/element/src/lib/diagram-kit/card.js.map +0 -1
- package/src/libs/element/src/lib/diagram-kit/editing.js.map +0 -1
- package/src/libs/element/src/lib/diagram-kit/er.js.map +0 -1
- package/src/libs/element/src/lib/diagram-kit/handles.js.map +0 -1
- package/src/libs/element/src/lib/diagram-kit/index.js.map +0 -1
- package/src/libs/element/src/lib/diagram-kit/join-guidance.js.map +0 -1
- package/src/libs/element/src/lib/diagram-kit/rows.js.map +0 -1
- package/src/libs/element/src/lib/diagram-kit/styles.js.map +0 -1
- package/src/libs/element/src/lib/diagram-kit/uml.js.map +0 -1
- package/src/libs/element/src/lib/diagram-kit/update.js.map +0 -1
- package/src/libs/element/src/lib/grafloria-flow-element.js.map +0 -1
- package/src/libs/element/src/lib/grafloria.js.map +0 -1
- package/src/libs/element/src/lib/load.js.map +0 -1
- package/src/libs/element/src/lib/node-type-registry.js.map +0 -1
- package/src/libs/element/src/lib/stencil-kit/builders.js.map +0 -1
- package/src/libs/element/src/lib/stencil-kit/card-builders.js.map +0 -1
- package/src/libs/element/src/lib/stencil-kit/index.js.map +0 -1
- package/src/libs/element/src/lib/stencil-kit/palette.js.map +0 -1
- package/src/libs/element/src/lib/stencil-kit/shape-data.js.map +0 -1
- package/src/libs/element/src/lib/stencil-kit/styles.js.map +0 -1
- package/src/libs/engine/src/adapters/component-adapter.interface.js.map +0 -1
- package/src/libs/engine/src/adapters/index.js.map +0 -1
- package/src/libs/engine/src/clipboard/ClipboardManager.js.map +0 -1
- package/src/libs/engine/src/clipboard/index.js.map +0 -1
- package/src/libs/engine/src/collab/apply-op.js.map +0 -1
- package/src/libs/engine/src/collab/capture.js.map +0 -1
- package/src/libs/engine/src/collab/index.js.map +0 -1
- package/src/libs/engine/src/collab/integrity.js.map +0 -1
- package/src/libs/engine/src/collab/lww.js.map +0 -1
- package/src/libs/engine/src/collab/op-log.js.map +0 -1
- package/src/libs/engine/src/collab/op.js.map +0 -1
- package/src/libs/engine/src/collab/replica.js.map +0 -1
- package/src/libs/engine/src/collab/undo.js.map +0 -1
- package/src/libs/engine/src/commands/Command.js.map +0 -1
- package/src/libs/engine/src/commands/CommandManager.js.map +0 -1
- package/src/libs/engine/src/commands/basic/AddGroupCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/AddLinkCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/AddNodeCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/AddToGroupCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/AlignCommands.js.map +0 -1
- package/src/libs/engine/src/commands/basic/CollapseGroupCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/CopyCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/CutCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/DeleteSelectionCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/DuplicateCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/ExpandGroupCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/MoveGroupCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/MoveNodeCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/NodeZOrderCommands.js.map +0 -1
- package/src/libs/engine/src/commands/basic/PasteCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/PortCommands.js.map +0 -1
- package/src/libs/engine/src/commands/basic/ReconnectLinkCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/RemoveFromGroupCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/RemoveGroupCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/RemoveLinkCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/RemoveNodeCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/ResizeNodeCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/RotateNodeCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/SetFlexItemCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/SetGridItemCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/SetLayoutCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/SetLinkDisplayLabelCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/SetLinkLabelCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/SetLinkLabelsCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/SetLinkPathTypeCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/SetLinkPointsCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/SetNodeDataCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/SetNodeLabelCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/SetNodeShapeConfigCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/SetNodeStyleCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/SetParentCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/SetStrokePointsCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/StrokeLifecycleCommands.js.map +0 -1
- package/src/libs/engine/src/commands/basic/UpdateLinkStyleCommand.js.map +0 -1
- package/src/libs/engine/src/commands/basic/index.js.map +0 -1
- package/src/libs/engine/src/commands/basic/remapNodePortIds.js.map +0 -1
- package/src/libs/engine/src/commands/basic/resolveLinkNodeIds.js.map +0 -1
- package/src/libs/engine/src/commands/composite/BatchCommand.js.map +0 -1
- package/src/libs/engine/src/commands/composite/MacroCommand.js.map +0 -1
- package/src/libs/engine/src/commands/composite/index.js.map +0 -1
- package/src/libs/engine/src/commands/index.js.map +0 -1
- package/src/libs/engine/src/comments/comment-store.js.map +0 -1
- package/src/libs/engine/src/comments/index.js.map +0 -1
- package/src/libs/engine/src/comments/mentions.js.map +0 -1
- package/src/libs/engine/src/comments/read-state.js.map +0 -1
- package/src/libs/engine/src/comments/types.js.map +0 -1
- package/src/libs/engine/src/config/InteractionConfig.js.map +0 -1
- package/src/libs/engine/src/config/index.js.map +0 -1
- package/src/libs/engine/src/dsl/DSL.js.map +0 -1
- package/src/libs/engine/src/dsl/advanced/StyleParser.js.map +0 -1
- package/src/libs/engine/src/dsl/advanced/TemplateParser.js.map +0 -1
- package/src/libs/engine/src/dsl/advanced/index.js.map +0 -1
- package/src/libs/engine/src/dsl/detector/LayoutDetector.js.map +0 -1
- package/src/libs/engine/src/dsl/extended/BPMNGenerator.js.map +0 -1
- package/src/libs/engine/src/dsl/extended/BPMNParser.js.map +0 -1
- package/src/libs/engine/src/dsl/extended/ERDGenerator.js.map +0 -1
- package/src/libs/engine/src/dsl/extended/ERDParser.js.map +0 -1
- package/src/libs/engine/src/dsl/extended/ERDTransformer.js.map +0 -1
- package/src/libs/engine/src/dsl/extended/UMLGenerator.js.map +0 -1
- package/src/libs/engine/src/dsl/extended/UMLParser.js.map +0 -1
- package/src/libs/engine/src/dsl/extended/index.js.map +0 -1
- package/src/libs/engine/src/dsl/generator/DSLFormatter.js.map +0 -1
- package/src/libs/engine/src/dsl/generator/DSLGenerator.js.map +0 -1
- package/src/libs/engine/src/dsl/generator/DiagramAnalyzer.js.map +0 -1
- package/src/libs/engine/src/dsl/index.js.map +0 -1
- package/src/libs/engine/src/dsl/lexer/Lexer.js.map +0 -1
- package/src/libs/engine/src/dsl/mermaid/MermaidClass.js.map +0 -1
- package/src/libs/engine/src/dsl/mermaid/MermaidER.js.map +0 -1
- package/src/libs/engine/src/dsl/mermaid/MermaidState.js.map +0 -1
- package/src/libs/engine/src/dsl/mermaid/index.js.map +0 -1
- package/src/libs/engine/src/dsl/mermaid/layout.js.map +0 -1
- package/src/libs/engine/src/dsl/mermaid/lines.js.map +0 -1
- package/src/libs/engine/src/dsl/parser/Parser.js.map +0 -1
- package/src/libs/engine/src/dsl/sync/BidirectionalSync.js.map +0 -1
- package/src/libs/engine/src/dsl/sync/IntegratedSyncManager.js.map +0 -1
- package/src/libs/engine/src/dsl/sync/LayoutApplicator.js.map +0 -1
- package/src/libs/engine/src/dsl/sync/SyncStateManager.js.map +0 -1
- package/src/libs/engine/src/dsl/sync/index.js.map +0 -1
- package/src/libs/engine/src/dsl/transformer/ASTTransformer.js.map +0 -1
- package/src/libs/engine/src/dsl/types/ASTNode.js.map +0 -1
- package/src/libs/engine/src/dsl/types/Token.js.map +0 -1
- package/src/libs/engine/src/engine/DiagramEngine.js.map +0 -1
- package/src/libs/engine/src/engine/DiagramMode.js.map +0 -1
- package/src/libs/engine/src/engine/DiagramModeTypes.js.map +0 -1
- package/src/libs/engine/src/engine/ModeManager.js.map +0 -1
- package/src/libs/engine/src/engine/index.js.map +0 -1
- package/src/libs/engine/src/events/EventBus.js.map +0 -1
- package/src/libs/engine/src/events/index.js.map +0 -1
- package/src/libs/engine/src/index.js.map +0 -1
- package/src/libs/engine/src/interaction/GroupCollapseService.js.map +0 -1
- package/src/libs/engine/src/interaction/GroupMembershipService.js.map +0 -1
- package/src/libs/engine/src/interaction/SemanticMembershipService.js.map +0 -1
- package/src/libs/engine/src/interaction/SwimlaneService.js.map +0 -1
- package/src/libs/engine/src/interaction/index.js.map +0 -1
- package/src/libs/engine/src/interop/drawio/importDrawio.js.map +0 -1
- package/src/libs/engine/src/interop/drawio/index.js.map +0 -1
- package/src/libs/engine/src/interop/drawio/xml.js.map +0 -1
- package/src/libs/engine/src/layout/CompoundLayoutService.js.map +0 -1
- package/src/libs/engine/src/layout/ILayoutAlgorithm.js.map +0 -1
- package/src/libs/engine/src/layout/LayoutManager.js.map +0 -1
- package/src/libs/engine/src/layout/SmartSpacingCalculator.js.map +0 -1
- package/src/libs/engine/src/layout/ViewportTransform.js.map +0 -1
- package/src/libs/engine/src/layout/algorithms/ForceDirectedLayoutAlgorithm.js.map +0 -1
- package/src/libs/engine/src/layout/algorithms/GridLayoutAlgorithm.js.map +0 -1
- package/src/libs/engine/src/layout/algorithms/HierarchicalLayoutAlgorithm.js.map +0 -1
- package/src/libs/engine/src/layout/algorithms/HybridLayoutAlgorithm.js.map +0 -1
- package/src/libs/engine/src/layout/community-layout-adapter.js.map +0 -1
- package/src/libs/engine/src/layout/component-packing.js.map +0 -1
- package/src/libs/engine/src/layout/dagre-layout-adapter.js.map +0 -1
- package/src/libs/engine/src/layout/edge-bundling.interface.js.map +0 -1
- package/src/libs/engine/src/layout/elk-layout-adapter.js.map +0 -1
- package/src/libs/engine/src/layout/elk-loader.js.map +0 -1
- package/src/libs/engine/src/layout/force-layout-adapter.js.map +0 -1
- package/src/libs/engine/src/layout/grid-pack/grid-pack-engine.js.map +0 -1
- package/src/libs/engine/src/layout/incremental/mental-map.js.map +0 -1
- package/src/libs/engine/src/layout/incremental-layout.interface.js.map +0 -1
- package/src/libs/engine/src/layout/index.js.map +0 -1
- package/src/libs/engine/src/layout/layout-adapter.interface.js.map +0 -1
- package/src/libs/engine/src/layout/layout-auto-select.js.map +0 -1
- package/src/libs/engine/src/layout/layout-constraints.interface.js.map +0 -1
- package/src/libs/engine/src/layout/layout-graph.js.map +0 -1
- package/src/libs/engine/src/layout/layout-history.js.map +0 -1
- package/src/libs/engine/src/layout/layout-host.js.map +0 -1
- package/src/libs/engine/src/layout/layout-presets.js.map +0 -1
- package/src/libs/engine/src/layout/layout-quality-extended.js.map +0 -1
- package/src/libs/engine/src/layout/layout-quality-metrics.js.map +0 -1
- package/src/libs/engine/src/layout/layout-registry.js.map +0 -1
- package/src/libs/engine/src/layout/layout.service.js.map +0 -1
- package/src/libs/engine/src/layout/overlap-removal.js.map +0 -1
- package/src/libs/engine/src/layout/port-aware-layout.interface.js.map +0 -1
- package/src/libs/engine/src/layout/port-label-bridge.js.map +0 -1
- package/src/libs/engine/src/layout/portfolio-layouts.js.map +0 -1
- package/src/libs/engine/src/layout/rng.js.map +0 -1
- package/src/libs/engine/src/layout/spectral-layout-adapter.js.map +0 -1
- package/src/libs/engine/src/layout/steppable-layout.js.map +0 -1
- package/src/libs/engine/src/layout/subgraph-layout.interface.js.map +0 -1
- package/src/libs/engine/src/layout/sugiyama/layered-layout.js.map +0 -1
- package/src/libs/engine/src/layout/sugiyama/sugiyama.js.map +0 -1
- package/src/libs/engine/src/layout/tree-layout.js.map +0 -1
- package/src/libs/engine/src/layout/types.js.map +0 -1
- package/src/libs/engine/src/lib/performance/mobile-performance.service.js.map +0 -1
- package/src/libs/engine/src/models/DiagramEntity.js.map +0 -1
- package/src/libs/engine/src/models/DiagramModel.js.map +0 -1
- package/src/libs/engine/src/models/GroupModel.js.map +0 -1
- package/src/libs/engine/src/models/LinkModel.js.map +0 -1
- package/src/libs/engine/src/models/NodeModel.js.map +0 -1
- package/src/libs/engine/src/models/PortModel.js.map +0 -1
- package/src/libs/engine/src/models/StrokeModel.js.map +0 -1
- package/src/libs/engine/src/models/index.js.map +0 -1
- package/src/libs/engine/src/models/readonly-lock.js.map +0 -1
- package/src/libs/engine/src/performance/LRUCache.js.map +0 -1
- package/src/libs/engine/src/performance/PerformanceMonitor.js.map +0 -1
- package/src/libs/engine/src/performance/SpatialIndex.js.map +0 -1
- package/src/libs/engine/src/performance/index.js.map +0 -1
- package/src/libs/engine/src/plugins/PluginManager.js.map +0 -1
- package/src/libs/engine/src/plugins/index.js.map +0 -1
- package/src/libs/engine/src/ports/connection-rules.js.map +0 -1
- package/src/libs/engine/src/ports/dynamic-ports.js.map +0 -1
- package/src/libs/engine/src/ports/index.js.map +0 -1
- package/src/libs/engine/src/ports/port-groups.js.map +0 -1
- package/src/libs/engine/src/ports/port-type-registry.js.map +0 -1
- package/src/libs/engine/src/ports/port-types.js.map +0 -1
- package/src/libs/engine/src/rendering/HtmlTemplateRenderer.js.map +0 -1
- package/src/libs/engine/src/rendering/LemonadeJSRenderer.js.map +0 -1
- package/src/libs/engine/src/rendering/index.js.map +0 -1
- package/src/libs/engine/src/routing/LiveReroutingEngine.js.map +0 -1
- package/src/libs/engine/src/routing/ObstacleIndex.js.map +0 -1
- package/src/libs/engine/src/routing/ObstacleMap.js.map +0 -1
- package/src/libs/engine/src/routing/ObstacleMapBuilder.js.map +0 -1
- package/src/libs/engine/src/routing/PathSimplifier.js.map +0 -1
- package/src/libs/engine/src/routing/RoutingEngine.js.map +0 -1
- package/src/libs/engine/src/routing/algorithms/AStarRouter.js.map +0 -1
- package/src/libs/engine/src/routing/algorithms/DijkstraRouter.js.map +0 -1
- package/src/libs/engine/src/routing/algorithms/ElkRouter.js.map +0 -1
- package/src/libs/engine/src/routing/algorithms/ManhattanRouter.js.map +0 -1
- package/src/libs/engine/src/routing/algorithms/OrthogonalRouter.js.map +0 -1
- package/src/libs/engine/src/routing/algorithms/StraightRouter.js.map +0 -1
- package/src/libs/engine/src/routing/algorithms/VisibilityGraphRouter.js.map +0 -1
- package/src/libs/engine/src/routing/global/GlobalRouteSolver.js.map +0 -1
- package/src/libs/engine/src/routing/global/solver-host.js.map +0 -1
- package/src/libs/engine/src/routing/index.js.map +0 -1
- package/src/libs/engine/src/routing/types.js.map +0 -1
- package/src/libs/engine/src/selection/SelectionManager.js.map +0 -1
- package/src/libs/engine/src/selection/index.js.map +0 -1
- package/src/libs/engine/src/serialization/DiagramMigrations.js.map +0 -1
- package/src/libs/engine/src/serialization/DiagramValidator.js.map +0 -1
- package/src/libs/engine/src/serialization/DocumentEnvelope.js.map +0 -1
- package/src/libs/engine/src/serialization/Incremental.js.map +0 -1
- package/src/libs/engine/src/serialization/Serializer.js.map +0 -1
- package/src/libs/engine/src/serialization/Subgraph.js.map +0 -1
- package/src/libs/engine/src/serialization/TextFormat.js.map +0 -1
- package/src/libs/engine/src/state/ConnectionStateManager.js.map +0 -1
- package/src/libs/engine/src/state/DiagramStore.js.map +0 -1
- package/src/libs/engine/src/state/index.js.map +0 -1
- package/src/libs/engine/src/sync/awareness.js.map +0 -1
- package/src/libs/engine/src/sync/batcher.js.map +0 -1
- package/src/libs/engine/src/sync/causal-buffer.js.map +0 -1
- package/src/libs/engine/src/sync/index.js.map +0 -1
- package/src/libs/engine/src/sync/protocol.js.map +0 -1
- package/src/libs/engine/src/sync/sync-adapter.js.map +0 -1
- package/src/libs/engine/src/sync/transport.js.map +0 -1
- package/src/libs/engine/src/sync/transports/broadcast-channel.js.map +0 -1
- package/src/libs/engine/src/sync/transports/memory.js.map +0 -1
- package/src/libs/engine/src/sync/transports/unreliable.js.map +0 -1
- package/src/libs/engine/src/sync/transports/websocket.js.map +0 -1
- package/src/libs/engine/src/sync/version-vector.js.map +0 -1
- package/src/libs/engine/src/template-library/common-templates.js.map +0 -1
- package/src/libs/engine/src/template-library/data-viz-templates.js.map +0 -1
- package/src/libs/engine/src/template-library/erd-templates.js.map +0 -1
- package/src/libs/engine/src/template-library/index.js.map +0 -1
- package/src/libs/engine/src/template-library/integration.js.map +0 -1
- package/src/libs/engine/src/template-library/workflow-templates.js.map +0 -1
- package/src/libs/engine/src/templates/NodeFactory.js.map +0 -1
- package/src/libs/engine/src/templates/NodeTemplate.js.map +0 -1
- package/src/libs/engine/src/templates/TemplateLoader.js.map +0 -1
- package/src/libs/engine/src/templates/TemplateRegistry.js.map +0 -1
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-business-rule-task.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-end-event.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-error-event.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-exclusive-gateway.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-inclusive-gateway.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-intermediate-event.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-manual-task.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-message-event.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-parallel-gateway.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-script-task.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-service-task.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-start-event.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-task.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-timer-event.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-user-task.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/bpmn/index.js.map +0 -1
- package/src/libs/engine/src/templates/generated/erd/erd-associative-entity.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/erd/erd-attribute.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/erd/erd-bridge-entity.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/erd/erd-composite-attribute.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/erd/erd-derived-attribute.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/erd/erd-discriminator.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/erd/erd-entity.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/erd/erd-isa.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/erd/erd-key-attribute.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/erd/erd-multivalued-attribute.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/erd/erd-optional-attribute.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/erd/erd-partial-key.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/erd/erd-relationship.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/erd/erd-subtype.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/erd/erd-supertype.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/erd/erd-table.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/erd/erd-view.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/erd/erd-weak-entity.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/erd/erd-weak-relationship.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/erd/index.js.map +0 -1
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-connector.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-data.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-decision.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-delay.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-display.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-document.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-manual-input.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-manual-operation.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-merge.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-or.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-predefined-process.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-preparation.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-process.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-stored-data.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-summing-junction.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-terminal.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/flowchart/index.js.map +0 -1
- package/src/libs/engine/src/templates/generated/index.js.map +0 -1
- package/src/libs/engine/src/templates/generated/register.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/index.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-abstract-class.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-activation.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-activity-partition.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-activity.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-actor.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-class.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-collaboration.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-component.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-datatype.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-decision.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-enum.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-final-node.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-final-state.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-fork.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-initial-node.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-initial-state.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-interface.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-join.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-lifeline.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-merge.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-node.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-note.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-object.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-package.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-part.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-port.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-primitive-type.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-signal.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-state.template.js.map +0 -1
- package/src/libs/engine/src/templates/generated/uml/uml-use-case.template.js.map +0 -1
- package/src/libs/engine/src/templates/index.js.map +0 -1
- package/src/libs/engine/src/templates/stencils.js.map +0 -1
- package/src/libs/engine/src/types/domain/bpmn.js.map +0 -1
- package/src/libs/engine/src/types/domain/erd.js.map +0 -1
- package/src/libs/engine/src/types/domain/flowchart.js.map +0 -1
- package/src/libs/engine/src/types/domain/index.js.map +0 -1
- package/src/libs/engine/src/types/domain/uml.js.map +0 -1
- package/src/libs/engine/src/types/event.types.js.map +0 -1
- package/src/libs/engine/src/types/geometry.types.js.map +0 -1
- package/src/libs/engine/src/types/index.js.map +0 -1
- package/src/libs/engine/src/types/layout.types.js.map +0 -1
- package/src/libs/engine/src/types/model.types.js.map +0 -1
- package/src/libs/engine/src/types/performance.types.js.map +0 -1
- package/src/libs/engine/src/types/plugin.types.js.map +0 -1
- package/src/libs/engine/src/utils/deep-clone.js.map +0 -1
- package/src/libs/engine/src/utils/geometry.js.map +0 -1
- package/src/libs/engine/src/utils/id.js.map +0 -1
- package/src/libs/engine/src/utils/index.js.map +0 -1
- package/src/libs/engine/src/utils/transform.js.map +0 -1
- package/src/libs/engine/src/validation/ConnectionGroupValidator.js.map +0 -1
- package/src/libs/engine/src/validation/TypeRegistry.js.map +0 -1
- package/src/libs/engine/src/validation/ValidationEngine.js.map +0 -1
- package/src/libs/engine/src/validation/index.js.map +0 -1
- package/src/libs/renderer/src/a11y/diagram-outline.js.map +0 -1
- package/src/libs/renderer/src/a11y/focus-containment.js.map +0 -1
- package/src/libs/renderer/src/a11y/graph-topology.js.map +0 -1
- package/src/libs/renderer/src/a11y/index.js.map +0 -1
- package/src/libs/renderer/src/a11y/live-region.js.map +0 -1
- package/src/libs/renderer/src/a11y/outline-view.js.map +0 -1
- package/src/libs/renderer/src/a11y/reduced-motion.js.map +0 -1
- package/src/libs/renderer/src/a11y/semantics.js.map +0 -1
- package/src/libs/renderer/src/canvas/canvas-context.js.map +0 -1
- package/src/libs/renderer/src/canvas/canvas-renderer.js.map +0 -1
- package/src/libs/renderer/src/canvas/dirty-region.js.map +0 -1
- package/src/libs/renderer/src/canvas/index.js.map +0 -1
- package/src/libs/renderer/src/canvas/path-geometry.js.map +0 -1
- package/src/libs/renderer/src/canvas/render-backend.js.map +0 -1
- package/src/libs/renderer/src/canvas/style-resolution.js.map +0 -1
- package/src/libs/renderer/src/canvas/tier-policy.js.map +0 -1
- package/src/libs/renderer/src/canvas/vnode-painter.js.map +0 -1
- package/src/libs/renderer/src/comments/comment-overlay.js.map +0 -1
- package/src/libs/renderer/src/comments/comment-panel.js.map +0 -1
- package/src/libs/renderer/src/comments/comment-pins.js.map +0 -1
- package/src/libs/renderer/src/comments/index.js.map +0 -1
- package/src/libs/renderer/src/export/assets.js.map +0 -1
- package/src/libs/renderer/src/export/batch.js.map +0 -1
- package/src/libs/renderer/src/export/bounds.js.map +0 -1
- package/src/libs/renderer/src/export/capture-host.js.map +0 -1
- package/src/libs/renderer/src/export/custom-nodes.js.map +0 -1
- package/src/libs/renderer/src/export/index.js.map +0 -1
- package/src/libs/renderer/src/export/node-raster.js.map +0 -1
- package/src/libs/renderer/src/export/pagination.js.map +0 -1
- package/src/libs/renderer/src/export/pdf/flate.js.map +0 -1
- package/src/libs/renderer/src/export/pdf/index.js.map +0 -1
- package/src/libs/renderer/src/export/pdf/pdf-export.js.map +0 -1
- package/src/libs/renderer/src/export/pdf/pdf-path.js.map +0 -1
- package/src/libs/renderer/src/export/pdf/pdf-primitives.js.map +0 -1
- package/src/libs/renderer/src/export/pdf/png.js.map +0 -1
- package/src/libs/renderer/src/export/raster.js.map +0 -1
- package/src/libs/renderer/src/export/round-trip.js.map +0 -1
- package/src/libs/renderer/src/export/scope.js.map +0 -1
- package/src/libs/renderer/src/export/style-flattener.js.map +0 -1
- package/src/libs/renderer/src/export/svg-export.js.map +0 -1
- package/src/libs/renderer/src/export/vnode-serializer.js.map +0 -1
- package/src/libs/renderer/src/ext/capabilities.js.map +0 -1
- package/src/libs/renderer/src/ext/capability-factory.js.map +0 -1
- package/src/libs/renderer/src/ext/components/attach.js.map +0 -1
- package/src/libs/renderer/src/ext/components/background.js.map +0 -1
- package/src/libs/renderer/src/ext/components/controls.js.map +0 -1
- package/src/libs/renderer/src/ext/components/minimap.js.map +0 -1
- package/src/libs/renderer/src/ext/diagram-registry.js.map +0 -1
- package/src/libs/renderer/src/ext/disposable.js.map +0 -1
- package/src/libs/renderer/src/ext/extension-host.js.map +0 -1
- package/src/libs/renderer/src/ext/index.js.map +0 -1
- package/src/libs/renderer/src/ext/link-pipeline.js.map +0 -1
- package/src/libs/renderer/src/ext/manifest.js.map +0 -1
- package/src/libs/renderer/src/ext/node-component.js.map +0 -1
- package/src/libs/renderer/src/ext/plugins-loader.js.map +0 -1
- package/src/libs/renderer/src/ext/portal.js.map +0 -1
- package/src/libs/renderer/src/ext/public-api.js.map +0 -1
- package/src/libs/renderer/src/ext/registry-scope.js.map +0 -1
- package/src/libs/renderer/src/ext/tools.js.map +0 -1
- package/src/libs/renderer/src/index.js.map +0 -1
- package/src/libs/renderer/src/instance/create-diagram.js.map +0 -1
- package/src/libs/renderer/src/instance/diagram-instance.js.map +0 -1
- package/src/libs/renderer/src/instance/dom-event-binder.js.map +0 -1
- package/src/libs/renderer/src/instance/index.js.map +0 -1
- package/src/libs/renderer/src/instance/layers.js.map +0 -1
- package/src/libs/renderer/src/instance/model-input.js.map +0 -1
- package/src/libs/renderer/src/instance/render-scheduler.js.map +0 -1
- package/src/libs/renderer/src/instance/wheel-scroll-yield.js.map +0 -1
- package/src/libs/renderer/src/interaction/ControlPointEditor.js.map +0 -1
- package/src/libs/renderer/src/interaction/WaypointEditor.js.map +0 -1
- package/src/libs/renderer/src/interaction/highlighters.js.map +0 -1
- package/src/libs/renderer/src/interaction/in-place-editor.js.map +0 -1
- package/src/libs/renderer/src/interaction/index.js.map +0 -1
- package/src/libs/renderer/src/interaction/ink-overlay.js.map +0 -1
- package/src/libs/renderer/src/interaction/interaction-controller.js.map +0 -1
- package/src/libs/renderer/src/interaction/keyboard-navigation.js.map +0 -1
- package/src/libs/renderer/src/interaction/selection-tools.js.map +0 -1
- package/src/libs/renderer/src/interaction/snapping.js.map +0 -1
- package/src/libs/renderer/src/interaction/touch-gestures.js.map +0 -1
- package/src/libs/renderer/src/interaction/whiteboard-tools.js.map +0 -1
- package/src/libs/renderer/src/lazy/host-culling.js.map +0 -1
- package/src/libs/renderer/src/lazy/index.js.map +0 -1
- package/src/libs/renderer/src/lazy/progressive-mounter.js.map +0 -1
- package/src/libs/renderer/src/lazy/types.js.map +0 -1
- package/src/libs/renderer/src/lazy/view-lifecycle.js.map +0 -1
- package/src/libs/renderer/src/perf/index.js.map +0 -1
- package/src/libs/renderer/src/perf/perf-hud.js.map +0 -1
- package/src/libs/renderer/src/perf/quality-governor.js.map +0 -1
- package/src/libs/renderer/src/platform/index.js.map +0 -1
- package/src/libs/renderer/src/platform/platform.js.map +0 -1
- package/src/libs/renderer/src/presence/bind-presence.js.map +0 -1
- package/src/libs/renderer/src/presence/index.js.map +0 -1
- package/src/libs/renderer/src/presence/presence-overlay.js.map +0 -1
- package/src/libs/renderer/src/presentation/index.js.map +0 -1
- package/src/libs/renderer/src/presentation/presentation.js.map +0 -1
- package/src/libs/renderer/src/presentation/viewport-channel.js.map +0 -1
- package/src/libs/renderer/src/services/animation-lifecycle.js.map +0 -1
- package/src/libs/renderer/src/services/animation-performance.service.js.map +0 -1
- package/src/libs/renderer/src/services/animation-sequencer.js.map +0 -1
- package/src/libs/renderer/src/services/animation.service.js.map +0 -1
- package/src/libs/renderer/src/services/custom-animation-registry.js.map +0 -1
- package/src/libs/renderer/src/ssr/index.js.map +0 -1
- package/src/libs/renderer/src/ssr/render-to-static.js.map +0 -1
- package/src/libs/renderer/src/svg/ArrowRenderer.js.map +0 -1
- package/src/libs/renderer/src/svg/JumpPointDetector.js.map +0 -1
- package/src/libs/renderer/src/svg/JumpPointRenderer.js.map +0 -1
- package/src/libs/renderer/src/svg/LabelRenderer.js.map +0 -1
- package/src/libs/renderer/src/svg/auto-size.js.map +0 -1
- package/src/libs/renderer/src/svg/channel-nudging.js.map +0 -1
- package/src/libs/renderer/src/svg/edge-optimizer.js.map +0 -1
- package/src/libs/renderer/src/svg/edge-templates.js.map +0 -1
- package/src/libs/renderer/src/svg/html-node.js.map +0 -1
- package/src/libs/renderer/src/svg/index.js.map +0 -1
- package/src/libs/renderer/src/svg/link-fanout.js.map +0 -1
- package/src/libs/renderer/src/svg/link-hit-test.js.map +0 -1
- package/src/libs/renderer/src/svg/motion-tracker.js.map +0 -1
- package/src/libs/renderer/src/svg/node-sizing.js.map +0 -1
- package/src/libs/renderer/src/svg/node-toolbar.js.map +0 -1
- package/src/libs/renderer/src/svg/notation-shapes.js.map +0 -1
- package/src/libs/renderer/src/svg/paint-servers.js.map +0 -1
- package/src/libs/renderer/src/svg/panel.js.map +0 -1
- package/src/libs/renderer/src/svg/path-outline.js.map +0 -1
- package/src/libs/renderer/src/svg/port-glyph.js.map +0 -1
- package/src/libs/renderer/src/svg/port-label.js.map +0 -1
- package/src/libs/renderer/src/svg/port-layout.js.map +0 -1
- package/src/libs/renderer/src/svg/port-positioning.js.map +0 -1
- package/src/libs/renderer/src/svg/port-spots.js.map +0 -1
- package/src/libs/renderer/src/svg/route-memo.js.map +0 -1
- package/src/libs/renderer/src/svg/route-solver-bridge.js.map +0 -1
- package/src/libs/renderer/src/svg/shape-registry.js.map +0 -1
- package/src/libs/renderer/src/svg/stroke-layer.js.map +0 -1
- package/src/libs/renderer/src/svg/svg-renderer.js.map +0 -1
- package/src/libs/renderer/src/svg/text-block.js.map +0 -1
- package/src/libs/renderer/src/themes/color-mode.js.map +0 -1
- package/src/libs/renderer/src/themes/contrast.js.map +0 -1
- package/src/libs/renderer/src/themes/default-dark-theme.js.map +0 -1
- package/src/libs/renderer/src/themes/default-light-theme.js.map +0 -1
- package/src/libs/renderer/src/themes/default-theme-set.js.map +0 -1
- package/src/libs/renderer/src/themes/high-contrast-theme.js.map +0 -1
- package/src/libs/renderer/src/themes/index.js.map +0 -1
- package/src/libs/renderer/src/themes/style-cascade.js.map +0 -1
- package/src/libs/renderer/src/themes/style-registry.js.map +0 -1
- package/src/libs/renderer/src/themes/theme-a11y.js.map +0 -1
- package/src/libs/renderer/src/themes/theme-css.js.map +0 -1
- package/src/libs/renderer/src/themes/theme-ref.js.map +0 -1
- package/src/libs/renderer/src/themes/theme-vars.js.map +0 -1
- package/src/libs/renderer/src/themes/token-bridge.js.map +0 -1
- package/src/libs/renderer/src/types/geometry.types.js.map +0 -1
- package/src/libs/renderer/src/types/index.js.map +0 -1
- package/src/libs/renderer/src/types/property-schema/conditions.js.map +0 -1
- package/src/libs/renderer/src/types/property-schema/editor-types.js.map +0 -1
- package/src/libs/renderer/src/types/property-schema/groups.js.map +0 -1
- package/src/libs/renderer/src/types/property-schema/index.js.map +0 -1
- package/src/libs/renderer/src/types/property-schema/property-definition.js.map +0 -1
- package/src/libs/renderer/src/types/property-schema/schema.js.map +0 -1
- package/src/libs/renderer/src/types/property-schema/validation.js.map +0 -1
- package/src/libs/renderer/src/types/renderer.interface.js.map +0 -1
- package/src/libs/renderer/src/types/theme.types.js.map +0 -1
- package/src/libs/renderer/src/types/vnode.types.js.map +0 -1
- package/src/libs/renderer/src/utils/animation-presets.js.map +0 -1
- package/src/libs/renderer/src/utils/animation-priority.js.map +0 -1
- package/src/libs/renderer/src/utils/animation-utils.js.map +0 -1
- package/src/libs/renderer/src/utils/lru-cache.js.map +0 -1
- package/src/libs/renderer/src/viewport/index.js.map +0 -1
- package/src/libs/renderer/src/viewport/viewport-controller.js.map +0 -1
- package/src/libs/renderer/src/vnode/container-id-generator.js.map +0 -1
- package/src/libs/renderer/src/vnode/foreign-object.js.map +0 -1
- package/src/libs/renderer/src/vnode/index.js.map +0 -1
- package/src/libs/renderer/src/vnode/patch.js.map +0 -1
- package/src/reachability.spec.ts +0 -173
- package/tsconfig.esm.json +0 -9
- package/tsconfig.json +0 -24
- package/tsconfig.lib.json +0 -10
- package/tsconfig.spec.json +0 -14
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Join guidance — live "which column should I join to?" scoring + tinting for
|
|
3
|
+
* kit table cards, the feature a visual query builder is actually about.
|
|
4
|
+
*
|
|
5
|
+
* Ported verbatim from a production BI tool's Query Studio (the scoring is ~55
|
|
6
|
+
* pure lines there too). While a connection drag is in progress, every column
|
|
7
|
+
* on every OTHER table is scored against the drag's source column and its card
|
|
8
|
+
* row is tinted by tier:
|
|
9
|
+
*
|
|
10
|
+
* score 3 — PK↔FK naming convention: `orders.customer_id` ↔ `customers.id`
|
|
11
|
+
* (`<singular(table)>_id` on one end, `id` on the other), or exact
|
|
12
|
+
* FK column-name equality across tables;
|
|
13
|
+
* score 2 — a PK flag on one end and an FK flag on the other;
|
|
14
|
+
* score 1 — same column name, or both names end in "id";
|
|
15
|
+
* score 0 — same table, or nothing.
|
|
16
|
+
*
|
|
17
|
+
* Tiers: the single best candidate scoring >= 2 is `top` (gold, "★ BEST"),
|
|
18
|
+
* every other >= 2 is `good` (green), 1 is `ok` (blue), 0 is `none` (dimmed).
|
|
19
|
+
* The SOURCE table is never tinted, and every tint clears when the drag ends —
|
|
20
|
+
* complete, cancelled or escaped.
|
|
21
|
+
*
|
|
22
|
+
* Split the same way the rest of the kit is:
|
|
23
|
+
* - `scoreMatch` / `matchTier` / `assignTiers` / `singularize` are PURE
|
|
24
|
+
* (unit-specced in the element suite);
|
|
25
|
+
* - `bindJoinGuidance(api)` is the runtime: it listens to the engine's own
|
|
26
|
+
* connection lifecycle events (`connection:start` / `:complete` /
|
|
27
|
+
* `:cancel`) and paints tier classes onto the kit's `.axk-row` elements.
|
|
28
|
+
*
|
|
29
|
+
* Row tints go on as DOM classes — the renderer's foreignObject subtrees are
|
|
30
|
+
* patch-opaque, so classes survive the per-frame VNode patch. Port tints go in
|
|
31
|
+
* as a generated per-drag <style> element keyed by `data-port-id`: port glyphs
|
|
32
|
+
* ARE re-patched every frame, so a class added to the SVG element would be
|
|
33
|
+
* wiped mid-drag, while a stylesheet wins the cascade and survives.
|
|
34
|
+
*/
|
|
35
|
+
/** Naive English singular — enough for schema names (orders, categories, statuses). */
|
|
36
|
+
export function singularize(word) {
|
|
37
|
+
const w = word.toLowerCase();
|
|
38
|
+
if (w.endsWith('ies') && w.length > 3)
|
|
39
|
+
return w.slice(0, -3) + 'y';
|
|
40
|
+
if (/(?:ses|xes|zes|ches|shes)$/.test(w))
|
|
41
|
+
return w.slice(0, -2);
|
|
42
|
+
if (w.endsWith('s') && !w.endsWith('ss'))
|
|
43
|
+
return w.slice(0, -1);
|
|
44
|
+
return w;
|
|
45
|
+
}
|
|
46
|
+
/** The PK↔FK naming convention: `a` is `<singular(b.table)>_id` and `b` is `id`. */
|
|
47
|
+
function conventionMatch(a, b) {
|
|
48
|
+
return (a.column.name.toLowerCase() === `${singularize(b.table)}_id` &&
|
|
49
|
+
b.column.name.toLowerCase() === 'id');
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Score a candidate join between two columns. Pure; the exact production
|
|
53
|
+
* logic. Higher is better; 0 means "no reason to join these".
|
|
54
|
+
*/
|
|
55
|
+
export function scoreMatch(a, b) {
|
|
56
|
+
if (!a || !b || a.table === b.table)
|
|
57
|
+
return 0;
|
|
58
|
+
const an = a.column.name.toLowerCase();
|
|
59
|
+
const bn = b.column.name.toLowerCase();
|
|
60
|
+
// 3 — the naming convention (either direction), or exact FK-name equality.
|
|
61
|
+
if (conventionMatch(a, b) || conventionMatch(b, a))
|
|
62
|
+
return 3;
|
|
63
|
+
if (an === bn && an.endsWith('_id') && (a.column.fk === true || b.column.fk === true))
|
|
64
|
+
return 3;
|
|
65
|
+
// 2 — PK flag on one end, FK flag on the other.
|
|
66
|
+
if ((a.column.pk === true && b.column.fk === true) || (a.column.fk === true && b.column.pk === true))
|
|
67
|
+
return 2;
|
|
68
|
+
// 1 — same name, or both look like identifiers.
|
|
69
|
+
if (an === bn)
|
|
70
|
+
return 1;
|
|
71
|
+
if (an.endsWith('id') && bn.endsWith('id'))
|
|
72
|
+
return 1;
|
|
73
|
+
return 0;
|
|
74
|
+
}
|
|
75
|
+
/** Per-score tier (rank-free half; `assignTiers` promotes the single best to `top`). */
|
|
76
|
+
export function matchTier(score) {
|
|
77
|
+
if (score >= 2)
|
|
78
|
+
return 'good';
|
|
79
|
+
if (score >= 1)
|
|
80
|
+
return 'ok';
|
|
81
|
+
return 'none';
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Tier every candidate score at once: the FIRST candidate holding the maximum
|
|
85
|
+
* score is `top` when that maximum is >= 2 — exactly one gold row per drag.
|
|
86
|
+
*/
|
|
87
|
+
export function assignTiers(scores) {
|
|
88
|
+
const max = scores.reduce((m, s) => (s > m ? s : m), 0);
|
|
89
|
+
let topIndex = -1;
|
|
90
|
+
if (max >= 2)
|
|
91
|
+
topIndex = scores.indexOf(max);
|
|
92
|
+
return scores.map((s, i) => (i === topIndex ? 'top' : matchTier(s)));
|
|
93
|
+
}
|
|
94
|
+
// ---------------------------------------------------------------------------
|
|
95
|
+
// Runtime binding
|
|
96
|
+
// ---------------------------------------------------------------------------
|
|
97
|
+
const TIER_CLASS = {
|
|
98
|
+
top: 'axk-match-top',
|
|
99
|
+
good: 'axk-match-good',
|
|
100
|
+
ok: 'axk-match-ok',
|
|
101
|
+
none: 'axk-match-none',
|
|
102
|
+
};
|
|
103
|
+
const CHIP_CLASS = 'axk-match-chip';
|
|
104
|
+
const PORT_STYLE_ID = 'grafloria-join-guidance-ports';
|
|
105
|
+
export const JOIN_GUIDANCE_STYLE_ID = 'grafloria-join-guidance-styles';
|
|
106
|
+
/** The tier tints — the production palette, verbatim. */
|
|
107
|
+
const GUIDANCE_CSS = `
|
|
108
|
+
.axk-row.axk-match-top { background: #fffbeb;
|
|
109
|
+
box-shadow: inset 4px 0 0 #f59e0b, inset 0 0 0 1px #fcd34d; }
|
|
110
|
+
.axk-row.axk-match-top .axk-col { font-weight: 800; color: #92600a; }
|
|
111
|
+
.axk-row.axk-match-good { background: #dcfce7; box-shadow: inset 4px 0 0 #16a34a; }
|
|
112
|
+
.axk-row.axk-match-good .axk-col { font-weight: 700; color: #14532d; }
|
|
113
|
+
.axk-row.axk-match-ok { background: #dbeafe; box-shadow: inset 4px 0 0 #2563eb; }
|
|
114
|
+
.axk-row.axk-match-none { opacity: .4; }
|
|
115
|
+
.${CHIP_CLASS} { font-size: 9px; font-weight: 800; text-transform: uppercase;
|
|
116
|
+
background: #f59e0b; color: #4a2e05; border-radius: 4px; padding: 1px 4px;
|
|
117
|
+
margin-left: 4px; flex: 0 0 auto; letter-spacing: .3px; }
|
|
118
|
+
`;
|
|
119
|
+
/** Inject the guidance tint stylesheet once. Safe to call repeatedly / in SSR. */
|
|
120
|
+
export function ensureJoinGuidanceStyles(doc = typeof document !== 'undefined' ? document : undefined) {
|
|
121
|
+
if (!doc)
|
|
122
|
+
return;
|
|
123
|
+
if (doc.getElementById(JOIN_GUIDANCE_STYLE_ID))
|
|
124
|
+
return;
|
|
125
|
+
const style = doc.createElement('style');
|
|
126
|
+
style.id = JOIN_GUIDANCE_STYLE_ID;
|
|
127
|
+
style.textContent = GUIDANCE_CSS;
|
|
128
|
+
doc.head.appendChild(style);
|
|
129
|
+
}
|
|
130
|
+
const esc = (value) => typeof CSS !== 'undefined' && CSS.escape ? CSS.escape(value) : value.replace(/"/g, '\\"');
|
|
131
|
+
/** The production port glows: gold 4px, green 3px, blue 2px; `none` recedes. */
|
|
132
|
+
function defaultPortCss(tier, selector) {
|
|
133
|
+
switch (tier) {
|
|
134
|
+
case 'top':
|
|
135
|
+
return `${selector} { fill: #f59e0b !important; stroke: #f59e0b !important; filter: drop-shadow(0 0 4px rgba(245,158,11,.4)) drop-shadow(0 0 2px rgba(245,158,11,.4)); }`;
|
|
136
|
+
case 'good':
|
|
137
|
+
return `${selector} { fill: #16a34a !important; stroke: #16a34a !important; filter: drop-shadow(0 0 3px rgba(22,163,74,.35)); }`;
|
|
138
|
+
case 'ok':
|
|
139
|
+
return `${selector} { fill: #2563eb !important; stroke: #2563eb !important; filter: drop-shadow(0 0 2px rgba(37,99,235,.3)); }`;
|
|
140
|
+
default:
|
|
141
|
+
return '';
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Bind live join guidance to a diagram instance. Listens to the engine's
|
|
146
|
+
* connection lifecycle; while a drag is live, every kit-card row on every
|
|
147
|
+
* other table wears its tier class (and the best one its "★ BEST" chip), and
|
|
148
|
+
* the matching port glyphs glow via a generated stylesheet. Everything clears
|
|
149
|
+
* when the drag ends, however it ends.
|
|
150
|
+
*/
|
|
151
|
+
export function bindJoinGuidance(api, options = {}) {
|
|
152
|
+
var _a, _b, _c, _d, _e;
|
|
153
|
+
ensureJoinGuidanceStyles(api.container.ownerDocument);
|
|
154
|
+
const chipText = (_a = options.chipText) !== null && _a !== void 0 ? _a : '★ BEST';
|
|
155
|
+
const portCss = (_b = options.portCss) !== null && _b !== void 0 ? _b : defaultPortCss;
|
|
156
|
+
const kitOf = (node) => {
|
|
157
|
+
var _a;
|
|
158
|
+
const raw = (_a = node === null || node === void 0 ? void 0 : node.getMetadata) === null || _a === void 0 ? void 0 : _a.call(node, 'kitEntity');
|
|
159
|
+
return raw && typeof raw === 'object' ? raw : null;
|
|
160
|
+
};
|
|
161
|
+
const defaultResolve = (portId, nodeId) => {
|
|
162
|
+
var _a, _b;
|
|
163
|
+
const model = api.getModel();
|
|
164
|
+
const nodes = nodeId
|
|
165
|
+
? [model.getNode(nodeId)].filter((n) => !!n)
|
|
166
|
+
: ((_b = (_a = model.getNodes) === null || _a === void 0 ? void 0 : _a.call(model)) !== null && _b !== void 0 ? _b : []).filter((n) => { var _a; return !!((_a = n.getPort) === null || _a === void 0 ? void 0 : _a.call(n, portId)); });
|
|
167
|
+
for (const node of nodes) {
|
|
168
|
+
const kit = kitOf(node);
|
|
169
|
+
if (!(kit === null || kit === void 0 ? void 0 : kit.columns))
|
|
170
|
+
continue;
|
|
171
|
+
for (const column of kit.columns) {
|
|
172
|
+
if (portId === `${node.id}.${column.name}-in` ||
|
|
173
|
+
portId === `${node.id}.${column.name}-out` ||
|
|
174
|
+
portId.startsWith(`${node.id}__${column.name}__`)) {
|
|
175
|
+
return { nodeId: node.id, column: column.name };
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
return null;
|
|
180
|
+
};
|
|
181
|
+
const resolvePort = (_c = options.resolvePort) !== null && _c !== void 0 ? _c : defaultResolve;
|
|
182
|
+
const active = new Map();
|
|
183
|
+
let portStyle = null;
|
|
184
|
+
const rowsOf = (nodeId) => {
|
|
185
|
+
const group = api.container.querySelector(`[data-node-id="${esc(nodeId)}"]`);
|
|
186
|
+
return group ? Array.from(group.querySelectorAll('.axk-row')) : [];
|
|
187
|
+
};
|
|
188
|
+
const clear = () => {
|
|
189
|
+
for (const cls of Object.values(TIER_CLASS)) {
|
|
190
|
+
for (const el of Array.from(api.container.querySelectorAll(`.${cls}`)))
|
|
191
|
+
el.classList.remove(cls);
|
|
192
|
+
}
|
|
193
|
+
for (const chip of Array.from(api.container.querySelectorAll(`.${CHIP_CLASS}`)))
|
|
194
|
+
chip.remove();
|
|
195
|
+
portStyle === null || portStyle === void 0 ? void 0 : portStyle.remove();
|
|
196
|
+
portStyle = null;
|
|
197
|
+
active.clear();
|
|
198
|
+
};
|
|
199
|
+
const portsForColumn = (node, column) => {
|
|
200
|
+
var _a, _b;
|
|
201
|
+
const ports = (_b = (_a = node.getPorts) === null || _a === void 0 ? void 0 : _a.call(node)) !== null && _b !== void 0 ? _b : [];
|
|
202
|
+
return ports
|
|
203
|
+
.map((p) => p.id)
|
|
204
|
+
.filter((id) => id === `${node.id}.${column}-in` ||
|
|
205
|
+
id === `${node.id}.${column}-out` ||
|
|
206
|
+
id.startsWith(`${node.id}__${column}__`));
|
|
207
|
+
};
|
|
208
|
+
const onStart = (data) => {
|
|
209
|
+
var _a, _b, _c;
|
|
210
|
+
clear();
|
|
211
|
+
const payload = data;
|
|
212
|
+
const sourcePort = payload === null || payload === void 0 ? void 0 : payload.sourcePort;
|
|
213
|
+
if (!sourcePort)
|
|
214
|
+
return;
|
|
215
|
+
const source = resolvePort(sourcePort.id, sourcePort.nodeId);
|
|
216
|
+
if (!source)
|
|
217
|
+
return;
|
|
218
|
+
const model = api.getModel();
|
|
219
|
+
const sourceNode = model.getNode(source.nodeId);
|
|
220
|
+
const sourceKit = kitOf(sourceNode);
|
|
221
|
+
const sourceColumn = (_a = sourceKit === null || sourceKit === void 0 ? void 0 : sourceKit.columns) === null || _a === void 0 ? void 0 : _a.find((c) => c.name === source.column);
|
|
222
|
+
if (!sourceColumn)
|
|
223
|
+
return;
|
|
224
|
+
const sourceEnd = { table: source.nodeId, column: sourceColumn };
|
|
225
|
+
// Every column of every OTHER kit table is a candidate, in node order.
|
|
226
|
+
const candidates = [];
|
|
227
|
+
for (const node of (_c = (_b = model.getNodes) === null || _b === void 0 ? void 0 : _b.call(model)) !== null && _c !== void 0 ? _c : []) {
|
|
228
|
+
if (node.id === source.nodeId)
|
|
229
|
+
continue; // the source table is NEVER tinted
|
|
230
|
+
const kit = kitOf(node);
|
|
231
|
+
if (!(kit === null || kit === void 0 ? void 0 : kit.columns))
|
|
232
|
+
continue;
|
|
233
|
+
kit.columns.forEach((column, rowIndex) => candidates.push({ node, rowIndex, column }));
|
|
234
|
+
}
|
|
235
|
+
if (candidates.length === 0)
|
|
236
|
+
return;
|
|
237
|
+
// The VALIDATOR outranks the score. A column can be the best textual
|
|
238
|
+
// match and still be un-connectable (its table pair already joined, or a
|
|
239
|
+
// custom validator refuses it) — the engine records those as
|
|
240
|
+
// invalidTargetPorts at drag start, and the renderer paints them red on
|
|
241
|
+
// hover. Tinting the same port gold would be the guidance lying about a
|
|
242
|
+
// target the drop will refuse (caught by the demo gate: the seeded
|
|
243
|
+
// customers⋈orders pair made customers.id both '★ BEST' and invalid).
|
|
244
|
+
const invalid = (() => {
|
|
245
|
+
var _a, _b, _c, _d, _e;
|
|
246
|
+
try {
|
|
247
|
+
const engine = (_a = api.getEngine) === null || _a === void 0 ? void 0 : _a.call(api);
|
|
248
|
+
const map = (_e = (_d = (_c = (_b = engine === null || engine === void 0 ? void 0 : engine.getConnectionStateManager) === null || _b === void 0 ? void 0 : _b.call(engine)) === null || _c === void 0 ? void 0 : _c.getState) === null || _d === void 0 ? void 0 : _d.call(_c)) === null || _e === void 0 ? void 0 : _e.invalidTargetPorts;
|
|
249
|
+
return new Set(map ? [...map.keys()] : []);
|
|
250
|
+
}
|
|
251
|
+
catch (_f) {
|
|
252
|
+
return new Set();
|
|
253
|
+
}
|
|
254
|
+
})();
|
|
255
|
+
const scores = candidates.map((c) => {
|
|
256
|
+
var _a, _b, _c;
|
|
257
|
+
const targetIn = `${c.node.id}.${c.column.name}-in`;
|
|
258
|
+
if (invalid.has(targetIn))
|
|
259
|
+
return 0;
|
|
260
|
+
const port = ((_c = (_b = (_a = c.node).getPort) === null || _b === void 0 ? void 0 : _b.call(_a, targetIn)) !== null && _c !== void 0 ? _c : null);
|
|
261
|
+
if ((port === null || port === void 0 ? void 0 : port.id) && invalid.has(port.id))
|
|
262
|
+
return 0;
|
|
263
|
+
return scoreMatch(sourceEnd, { table: c.node.id, column: c.column });
|
|
264
|
+
});
|
|
265
|
+
const tiers = assignTiers(scores);
|
|
266
|
+
const cssRules = [];
|
|
267
|
+
candidates.forEach((candidate, i) => {
|
|
268
|
+
var _a;
|
|
269
|
+
const tier = tiers[i];
|
|
270
|
+
const byRow = (_a = active.get(candidate.node.id)) !== null && _a !== void 0 ? _a : new Map();
|
|
271
|
+
byRow.set(candidate.rowIndex, tier);
|
|
272
|
+
active.set(candidate.node.id, byRow);
|
|
273
|
+
const row = rowsOf(candidate.node.id)[candidate.rowIndex];
|
|
274
|
+
if (row) {
|
|
275
|
+
row.classList.add(TIER_CLASS[tier]);
|
|
276
|
+
if (tier === 'top') {
|
|
277
|
+
const chip = api.container.ownerDocument.createElement('span');
|
|
278
|
+
chip.className = CHIP_CLASS;
|
|
279
|
+
chip.textContent = chipText;
|
|
280
|
+
row.appendChild(chip);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
if (tier !== 'none') {
|
|
284
|
+
for (const portId of portsForColumn(candidate.node, candidate.column.name)) {
|
|
285
|
+
const rule = portCss(tier, `[data-port-id="${esc(portId)}"]`);
|
|
286
|
+
if (rule)
|
|
287
|
+
cssRules.push(rule);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
});
|
|
291
|
+
if (cssRules.length > 0) {
|
|
292
|
+
portStyle = api.container.ownerDocument.createElement('style');
|
|
293
|
+
portStyle.id = PORT_STYLE_ID;
|
|
294
|
+
portStyle.textContent = cssRules.join('\n');
|
|
295
|
+
api.container.ownerDocument.head.appendChild(portStyle);
|
|
296
|
+
}
|
|
297
|
+
};
|
|
298
|
+
const bus = (_e = (_d = api.getEngine) === null || _d === void 0 ? void 0 : _d.call(api)) === null || _e === void 0 ? void 0 : _e.eventBus;
|
|
299
|
+
const offs = [];
|
|
300
|
+
if (bus) {
|
|
301
|
+
offs.push(bus.on('connection:start', onStart));
|
|
302
|
+
offs.push(bus.on('connection:complete', clear));
|
|
303
|
+
offs.push(bus.on('connection:cancel', clear));
|
|
304
|
+
// The event-type constant spells it 'cancelled'; the state manager emits
|
|
305
|
+
// 'cancel'. Subscribe to both so a future spelling fix cannot leave tints on.
|
|
306
|
+
offs.push(bus.on('connection:cancelled', clear));
|
|
307
|
+
}
|
|
308
|
+
return {
|
|
309
|
+
activeTiers: () => {
|
|
310
|
+
const copy = new Map();
|
|
311
|
+
for (const [nodeId, byRow] of active)
|
|
312
|
+
copy.set(nodeId, new Map(byRow));
|
|
313
|
+
return copy;
|
|
314
|
+
},
|
|
315
|
+
dispose: () => {
|
|
316
|
+
for (const off of offs)
|
|
317
|
+
off();
|
|
318
|
+
clear();
|
|
319
|
+
},
|
|
320
|
+
};
|
|
321
|
+
}
|
|
322
|
+
//# sourceMappingURL=join-guidance.js.map
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Row interactions — "select a column / field" on kit cards (P1 of the
|
|
3
|
+
* ER/UML editing track).
|
|
4
|
+
*
|
|
5
|
+
* Kit cards are `interactive: true` (their rows are real DOM targets — the
|
|
6
|
+
* binder's node click/drag resolution is geometric, so dragging and selecting
|
|
7
|
+
* the TABLE keeps working; proven live before this was built). This module is
|
|
8
|
+
* the runtime the kit's `finalize(api)` binds once per diagram:
|
|
9
|
+
*
|
|
10
|
+
* - click a row → it becomes THE selected row (one per diagram), painted with
|
|
11
|
+
* `.axk-row-selected`; click again or click anywhere else → deselected;
|
|
12
|
+
* - every row click dispatches `axk:row-click` on the container, and every
|
|
13
|
+
* selection CHANGE dispatches `axk:row-select` — both bubbling
|
|
14
|
+
* CustomEvents, matching the element package's "DOM events out" contract;
|
|
15
|
+
* - the selected row survives card re-renders: the renderer keys the
|
|
16
|
+
* foreignObject by content hash, so an html edit swaps the subtree and
|
|
17
|
+
* drops the class — a MutationObserver re-applies it by (nodeId, rowIndex);
|
|
18
|
+
* - selection is EPHEMERAL view state, exactly like node selection: never
|
|
19
|
+
* serialized, never in the op log, not undoable.
|
|
20
|
+
*
|
|
21
|
+
* Row identity: `rowIndex` is the position among the card's rows (ER columns,
|
|
22
|
+
* or UML members across both compartments); `name` resolves from the spec the
|
|
23
|
+
* kit stored in node metadata (`kitEntity` / `kitClass`), falling back to the
|
|
24
|
+
* row's text.
|
|
25
|
+
*/
|
|
26
|
+
const ROW_SELECTOR = '.axk-row, .axk-member';
|
|
27
|
+
const SELECTED_CLASS = 'axk-row-selected';
|
|
28
|
+
/** One binding per container — rebinding disposes the previous one. */
|
|
29
|
+
const bindings = new WeakMap();
|
|
30
|
+
function rowsOfNode(container, nodeId) {
|
|
31
|
+
const esc = (window.CSS && CSS.escape) ? CSS.escape(nodeId) : nodeId.replace(/"/g, '\\"');
|
|
32
|
+
const group = container.querySelector(`[data-node-id="${esc}"]`);
|
|
33
|
+
return group ? Array.from(group.querySelectorAll(ROW_SELECTOR)) : [];
|
|
34
|
+
}
|
|
35
|
+
function resolveRef(container, api, rowEl) {
|
|
36
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
|
|
37
|
+
const group = rowEl.closest('[data-node-id]');
|
|
38
|
+
if (!group)
|
|
39
|
+
return null;
|
|
40
|
+
const nodeId = group.getAttribute('data-node-id');
|
|
41
|
+
const rows = Array.from(group.querySelectorAll(ROW_SELECTOR));
|
|
42
|
+
const rowIndex = rows.indexOf(rowEl);
|
|
43
|
+
if (rowIndex === -1)
|
|
44
|
+
return null;
|
|
45
|
+
const kind = rowEl.classList.contains('axk-member') ? 'uml' : 'er';
|
|
46
|
+
const node = (_c = (_a = api.getModel) === null || _a === void 0 ? void 0 : (_b = _a.call(api)).getNode) === null || _c === void 0 ? void 0 : _c.call(_b, nodeId);
|
|
47
|
+
const meta = (key) => { var _a; return (_a = node === null || node === void 0 ? void 0 : node.getMetadata) === null || _a === void 0 ? void 0 : _a.call(node, key); };
|
|
48
|
+
if (kind === 'er') {
|
|
49
|
+
const entity = meta('kitEntity');
|
|
50
|
+
const name = (_h = (_f = (_e = (_d = entity === null || entity === void 0 ? void 0 : entity.columns) === null || _d === void 0 ? void 0 : _d[rowIndex]) === null || _e === void 0 ? void 0 : _e.name) !== null && _f !== void 0 ? _f : (_g = rowEl.querySelector('.axk-col')) === null || _g === void 0 ? void 0 : _g.textContent) !== null && _h !== void 0 ? _h : undefined;
|
|
51
|
+
return { nodeId, rowIndex, name: name !== null && name !== void 0 ? name : undefined, kind };
|
|
52
|
+
}
|
|
53
|
+
const cls = meta('kitClass');
|
|
54
|
+
const attrCount = (_k = (_j = cls === null || cls === void 0 ? void 0 : cls.attributes) === null || _j === void 0 ? void 0 : _j.length) !== null && _k !== void 0 ? _k : countFirstCompartment(rowEl);
|
|
55
|
+
const section = rowIndex < attrCount ? 'attributes' : 'methods';
|
|
56
|
+
const name = (_q = (_o = (section === 'attributes' ? (_l = cls === null || cls === void 0 ? void 0 : cls.attributes) === null || _l === void 0 ? void 0 : _l[rowIndex] : (_m = cls === null || cls === void 0 ? void 0 : cls.methods) === null || _m === void 0 ? void 0 : _m[rowIndex - attrCount])) !== null && _o !== void 0 ? _o : (_p = rowEl.textContent) === null || _p === void 0 ? void 0 : _p.trim()) !== null && _q !== void 0 ? _q : undefined;
|
|
57
|
+
return { nodeId, rowIndex, name, kind, section };
|
|
58
|
+
}
|
|
59
|
+
/** Without spec metadata, the first compartment's member count splits sections. */
|
|
60
|
+
function countFirstCompartment(rowEl) {
|
|
61
|
+
const card = rowEl.closest('.axk-uml');
|
|
62
|
+
const firstComp = card === null || card === void 0 ? void 0 : card.querySelector('.axk-uml-comp');
|
|
63
|
+
return firstComp ? firstComp.querySelectorAll('.axk-member').length : Number.MAX_SAFE_INTEGER;
|
|
64
|
+
}
|
|
65
|
+
export function bindRowInteractions(api) {
|
|
66
|
+
var _a;
|
|
67
|
+
const container = api.container;
|
|
68
|
+
(_a = bindings.get(container)) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
69
|
+
let selected = null;
|
|
70
|
+
const paint = () => {
|
|
71
|
+
var _a;
|
|
72
|
+
for (const el of Array.from(container.querySelectorAll(`.${SELECTED_CLASS}`))) {
|
|
73
|
+
el.classList.remove(SELECTED_CLASS);
|
|
74
|
+
}
|
|
75
|
+
if (selected)
|
|
76
|
+
(_a = rowsOfNode(container, selected.nodeId)[selected.rowIndex]) === null || _a === void 0 ? void 0 : _a.classList.add(SELECTED_CLASS);
|
|
77
|
+
};
|
|
78
|
+
const emitSelect = () => {
|
|
79
|
+
container.dispatchEvent(new CustomEvent('axk:row-select', { bubbles: true, detail: { selected } }));
|
|
80
|
+
};
|
|
81
|
+
const setSelected = (next) => {
|
|
82
|
+
const same = (next === null && selected === null) ||
|
|
83
|
+
(next !== null && selected !== null && next.nodeId === selected.nodeId && next.rowIndex === selected.rowIndex);
|
|
84
|
+
if (same)
|
|
85
|
+
return;
|
|
86
|
+
selected = next;
|
|
87
|
+
paint();
|
|
88
|
+
emitSelect();
|
|
89
|
+
};
|
|
90
|
+
const onClick = (event) => {
|
|
91
|
+
var _a;
|
|
92
|
+
const target = event.target instanceof Element ? event.target : null;
|
|
93
|
+
const rowEl = (_a = target === null || target === void 0 ? void 0 : target.closest) === null || _a === void 0 ? void 0 : _a.call(target, ROW_SELECTOR);
|
|
94
|
+
if (!rowEl || !container.contains(rowEl)) {
|
|
95
|
+
setSelected(null);
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
const ref = resolveRef(container, api, rowEl);
|
|
99
|
+
if (!ref)
|
|
100
|
+
return;
|
|
101
|
+
container.dispatchEvent(new CustomEvent('axk:row-click', { bubbles: true, detail: Object.assign({}, ref) }));
|
|
102
|
+
const isReclick = selected && selected.nodeId === ref.nodeId && selected.rowIndex === ref.rowIndex;
|
|
103
|
+
setSelected(isReclick ? null : ref);
|
|
104
|
+
};
|
|
105
|
+
// Card re-renders replace the foreignObject subtree (content-hash keyed) and
|
|
106
|
+
// lose the class — re-apply whenever the selected row's paint went missing.
|
|
107
|
+
const observer = new MutationObserver(() => {
|
|
108
|
+
if (!selected)
|
|
109
|
+
return;
|
|
110
|
+
const el = rowsOfNode(container, selected.nodeId)[selected.rowIndex];
|
|
111
|
+
if (el && !el.classList.contains(SELECTED_CLASS))
|
|
112
|
+
paint();
|
|
113
|
+
else if (!el) {
|
|
114
|
+
// The row (or its node) is gone — the selection dies with it.
|
|
115
|
+
setSelected(null);
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
container.addEventListener('click', onClick);
|
|
119
|
+
observer.observe(container, { childList: true, subtree: true });
|
|
120
|
+
const handle = {
|
|
121
|
+
getSelected: () => (selected ? Object.assign({}, selected) : null),
|
|
122
|
+
select: (ref) => {
|
|
123
|
+
if (ref === null) {
|
|
124
|
+
setSelected(null);
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
const el = rowsOfNode(container, ref.nodeId)[ref.rowIndex];
|
|
128
|
+
if (!el)
|
|
129
|
+
return;
|
|
130
|
+
const resolved = resolveRef(container, api, el);
|
|
131
|
+
if (resolved)
|
|
132
|
+
setSelected(resolved);
|
|
133
|
+
},
|
|
134
|
+
dispose: () => {
|
|
135
|
+
container.removeEventListener('click', onClick);
|
|
136
|
+
observer.disconnect();
|
|
137
|
+
if (bindings.get(container) === handle)
|
|
138
|
+
bindings.delete(container);
|
|
139
|
+
},
|
|
140
|
+
};
|
|
141
|
+
bindings.set(container, handle);
|
|
142
|
+
return handle;
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=rows.js.map
|
|
@@ -13,9 +13,7 @@
|
|
|
13
13
|
* OUTSIDE the node) reads as a second floating box around a bordered card —
|
|
14
14
|
* the kit hides it and rings the card itself instead.
|
|
15
15
|
*/
|
|
16
|
-
|
|
17
16
|
export const DIAGRAM_KIT_STYLE_ID = 'grafloria-diagram-kit-styles';
|
|
18
|
-
|
|
19
17
|
const CSS = `
|
|
20
18
|
/* ===== ER entity (table) cards ===== */
|
|
21
19
|
.axk-entity { font: 12px/1.5 system-ui, sans-serif; border: 1px solid #64748b;
|
|
@@ -106,13 +104,15 @@ g.node-group[data-selected="true"]:has(.axk-uml) rect.diagram-node {
|
|
|
106
104
|
.axk-member { color: #e2e8f0; }
|
|
107
105
|
}
|
|
108
106
|
`;
|
|
109
|
-
|
|
110
107
|
/** Inject the kit stylesheet once. Safe to call repeatedly and in SSR. */
|
|
111
|
-
export function ensureDiagramKitStyles(doc
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
108
|
+
export function ensureDiagramKitStyles(doc = typeof document !== 'undefined' ? document : undefined) {
|
|
109
|
+
if (!doc)
|
|
110
|
+
return;
|
|
111
|
+
if (doc.getElementById(DIAGRAM_KIT_STYLE_ID))
|
|
112
|
+
return;
|
|
113
|
+
const style = doc.createElement('style');
|
|
114
|
+
style.id = DIAGRAM_KIT_STYLE_ID;
|
|
115
|
+
style.textContent = CSS;
|
|
116
|
+
doc.head.appendChild(style);
|
|
118
117
|
}
|
|
118
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UML class-diagram kit — typed builders for the full relationship vocabulary.
|
|
3
|
+
*
|
|
4
|
+
* The packaged form of demos/diagrams/class-uml.html + uml-relationships.html:
|
|
5
|
+
* three-compartment class cards («stereotype», name, attributes, methods) and
|
|
6
|
+
* every standard relationship with its real notation:
|
|
7
|
+
*
|
|
8
|
+
* inheritance ── solid, hollow triangle at the parent
|
|
9
|
+
* realization ┄┄ dashed, hollow triangle at the interface
|
|
10
|
+
* association ── plain line (multiplicity chips optional)
|
|
11
|
+
* directed-association ── open arrow at the target
|
|
12
|
+
* aggregation ── hollow diamond at the whole (source)
|
|
13
|
+
* composition ── FILLED diamond at the whole (source)
|
|
14
|
+
* dependency ┄┄ dashed, open arrow («uses»)
|
|
15
|
+
*
|
|
16
|
+
* ```ts
|
|
17
|
+
* const spec = umlDiagram({
|
|
18
|
+
* classes: [{ id: 'Shape', abstract: true, attributes: ['# x: float'], methods: ['+ area(): float'] }],
|
|
19
|
+
* relationships: [{ from: 'Circle', to: 'Shape', kind: 'inheritance' }],
|
|
20
|
+
* });
|
|
21
|
+
* const api = render(spec, container);
|
|
22
|
+
* spec.finalize(api); // attaches multiplicity chips (needs the live model)
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
import { ensureDiagramKitStyles } from './styles';
|
|
26
|
+
import { bindRowInteractions } from './rows';
|
|
27
|
+
import { classCardContent, classAutoHeight } from './card';
|
|
28
|
+
import { bindCardEditing } from './editing';
|
|
29
|
+
const DEFAULT_WIDTH = 200;
|
|
30
|
+
const STROKE = '#475569';
|
|
31
|
+
const DASH = '6,4';
|
|
32
|
+
/**
|
|
33
|
+
* The notation table. Every kind sets arrowHead EXPLICITLY — a plain line must
|
|
34
|
+
* carry `arrowHead: none`, or the renderer paints its default arrow (the
|
|
35
|
+
* stray-arrowhead bug the demos hit live).
|
|
36
|
+
*/
|
|
37
|
+
function edgeStyleFor(kind) {
|
|
38
|
+
const none = { type: 'none', size: 0, filled: false };
|
|
39
|
+
switch (kind) {
|
|
40
|
+
case 'inheritance':
|
|
41
|
+
return { stroke: STROKE, strokeWidth: 1.5, arrowHead: { type: 'generalization', size: 16, filled: false }, arrowTail: none };
|
|
42
|
+
case 'realization':
|
|
43
|
+
return { stroke: STROKE, strokeWidth: 1.5, strokeDasharray: DASH, arrowHead: { type: 'generalization', size: 16, filled: false }, arrowTail: none };
|
|
44
|
+
case 'association':
|
|
45
|
+
return { stroke: STROKE, strokeWidth: 1.5, arrowHead: none, arrowTail: none };
|
|
46
|
+
case 'directed-association':
|
|
47
|
+
return { stroke: STROKE, strokeWidth: 1.5, arrowHead: { type: 'open-arrow', size: 12, filled: false }, arrowTail: none };
|
|
48
|
+
case 'aggregation':
|
|
49
|
+
return { stroke: STROKE, strokeWidth: 1.5, arrowHead: none, arrowTail: { type: 'hollow-diamond', size: 14, filled: false } };
|
|
50
|
+
case 'composition':
|
|
51
|
+
return { stroke: STROKE, strokeWidth: 1.5, arrowHead: none, arrowTail: { type: 'filled-diamond', size: 14, filled: true } };
|
|
52
|
+
case 'dependency':
|
|
53
|
+
return { stroke: STROKE, strokeWidth: 1.5, strokeDasharray: DASH, arrowHead: { type: 'open-arrow', size: 12, filled: false }, arrowTail: none };
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/** Multiplicity chip, positioned near an edge end. */
|
|
57
|
+
const chip = (text, slot) => ({
|
|
58
|
+
text,
|
|
59
|
+
slot,
|
|
60
|
+
offset: { x: 0, y: -7 },
|
|
61
|
+
style: { fontSize: 11, fontWeight: '600', color: '#0f172a', background: '#ffffffdd', padding: 1, borderRadius: 2 },
|
|
62
|
+
});
|
|
63
|
+
/**
|
|
64
|
+
* Build a render() spec for a UML class diagram. Call `spec.finalize(api)`
|
|
65
|
+
* after render() — multiplicity chips are positioned labels, which only the
|
|
66
|
+
* live model's `link.addLabel` can express.
|
|
67
|
+
*/
|
|
68
|
+
export function umlDiagram(options) {
|
|
69
|
+
var _a;
|
|
70
|
+
ensureDiagramKitStyles();
|
|
71
|
+
const editable = options.editable === true;
|
|
72
|
+
const nodes = options.classes.map((cls, i) => {
|
|
73
|
+
var _a, _b;
|
|
74
|
+
return {
|
|
75
|
+
id: cls.id,
|
|
76
|
+
position: (_a = cls.position) !== null && _a !== void 0 ? _a : { x: 80 + (i % 3) * 320, y: 60 + Math.floor(i / 3) * 260 },
|
|
77
|
+
size: { width: (_b = cls.width) !== null && _b !== void 0 ? _b : DEFAULT_WIDTH, height: classAutoHeight(cls, editable) },
|
|
78
|
+
// interactive: members are real DOM targets (hover, row selection, inline
|
|
79
|
+
// editing); node drag/select stay geometric in the binder.
|
|
80
|
+
metadata: Object.assign({ html: { content: classCardContent(cls, editable), interactive: true }, kitClass: cls, kitEditable: editable }, (options.rowSelection === false ? { kitRowSelection: false } : {})),
|
|
81
|
+
shape: { type: 'rect', fill: 'none', stroke: 'none' },
|
|
82
|
+
style: { fill: 'transparent', stroke: 'transparent', strokeWidth: 0 },
|
|
83
|
+
};
|
|
84
|
+
});
|
|
85
|
+
const rels = (_a = options.relationships) !== null && _a !== void 0 ? _a : [];
|
|
86
|
+
const edges = rels.map((rel, i) => {
|
|
87
|
+
var _a, _b;
|
|
88
|
+
return (Object.assign(Object.assign(Object.assign({ id: (_a = rel.id) !== null && _a !== void 0 ? _a : `uml-rel-${i + 1}`, source: rel.from, target: rel.to, label: rel.label, type: 'orthogonal' }, (rel.fromSide ? { sourceHandle: rel.fromSide } : {})), (rel.toSide ? { targetHandle: rel.toSide } : {})), { style: edgeStyleFor((_b = rel.kind) !== null && _b !== void 0 ? _b : 'association') }));
|
|
89
|
+
});
|
|
90
|
+
// finalize is idempotent per api: render() auto-runs it, and a demo may also
|
|
91
|
+
// call it — chips must not be added twice.
|
|
92
|
+
const finalized = new WeakSet();
|
|
93
|
+
const finalize = (api) => {
|
|
94
|
+
var _a, _b, _c, _d, _e, _f;
|
|
95
|
+
const a0 = api;
|
|
96
|
+
// Own card ring only — suppress the node resize handles on the live model
|
|
97
|
+
// (the render-input path does not honour a spec-level `behavior`).
|
|
98
|
+
const m0 = (_a = a0 === null || a0 === void 0 ? void 0 : a0.getModel) === null || _a === void 0 ? void 0 : _a.call(a0);
|
|
99
|
+
if (m0)
|
|
100
|
+
for (const cls of options.classes)
|
|
101
|
+
(_d = (_c = (_b = m0.getNode) === null || _b === void 0 ? void 0 : _b.call(m0, cls.id)) === null || _c === void 0 ? void 0 : _c.setBehavior) === null || _d === void 0 ? void 0 : _d.call(_c, { resizable: false });
|
|
102
|
+
if (options.rowSelection !== false) {
|
|
103
|
+
const a = api;
|
|
104
|
+
// bindRowInteractions disposes any prior binding for the container, so it
|
|
105
|
+
// is safe to run twice.
|
|
106
|
+
if (a === null || a === void 0 ? void 0 : a.container)
|
|
107
|
+
bindRowInteractions(a);
|
|
108
|
+
}
|
|
109
|
+
if (editable && (a0 === null || a0 === void 0 ? void 0 : a0.container))
|
|
110
|
+
bindCardEditing(a0);
|
|
111
|
+
if (api && typeof api === 'object') {
|
|
112
|
+
if (finalized.has(api))
|
|
113
|
+
return;
|
|
114
|
+
finalized.add(api);
|
|
115
|
+
}
|
|
116
|
+
const model = (_e = api === null || api === void 0 ? void 0 : api.getModel) === null || _e === void 0 ? void 0 : _e.call(api);
|
|
117
|
+
if (!model)
|
|
118
|
+
return;
|
|
119
|
+
let added = false;
|
|
120
|
+
rels.forEach((rel, i) => {
|
|
121
|
+
if (!rel.multiplicity)
|
|
122
|
+
return;
|
|
123
|
+
const link = model.getLink(edges[i].id);
|
|
124
|
+
if (!link)
|
|
125
|
+
return;
|
|
126
|
+
link.addLabel(chip(rel.multiplicity[0], 'start'));
|
|
127
|
+
link.addLabel(chip(rel.multiplicity[1], 'end'));
|
|
128
|
+
added = true;
|
|
129
|
+
});
|
|
130
|
+
if (added)
|
|
131
|
+
(_f = api === null || api === void 0 ? void 0 : api.renderNow) === null || _f === void 0 ? void 0 : _f.call(api);
|
|
132
|
+
};
|
|
133
|
+
return { nodes, edges, finalize };
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=uml.js.map
|