@grafloria/element 0.3.20 → 0.3.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/src/libs/element/src/index.d.ts +0 -92
- package/src/libs/element/src/index.js +0 -576
- package/src/libs/element/src/lib/dashboard-kit/dashboard.d.ts +0 -345
- package/src/libs/element/src/lib/dashboard-kit/dashboard.js +0 -594
- package/src/libs/element/src/lib/dashboard-kit/grid-binder.d.ts +0 -277
- package/src/libs/element/src/lib/dashboard-kit/grid-binder.js +0 -1636
- package/src/libs/element/src/lib/dashboard-kit/grid-mapping.d.ts +0 -141
- package/src/libs/element/src/lib/dashboard-kit/grid-mapping.js +0 -176
- package/src/libs/element/src/lib/dashboard-kit/index.d.ts +0 -5
- package/src/libs/element/src/lib/dashboard-kit/index.js +0 -33
- package/src/libs/element/src/lib/dashboard-kit/styles.d.ts +0 -25
- package/src/libs/element/src/lib/dashboard-kit/styles.js +0 -209
- package/src/libs/element/src/lib/dashboard-kit/widgets.d.ts +0 -112
- package/src/libs/element/src/lib/dashboard-kit/widgets.js +0 -389
- package/src/libs/element/src/lib/diagram-kit/card.d.ts +0 -75
- package/src/libs/element/src/lib/diagram-kit/card.js +0 -209
- package/src/libs/element/src/lib/diagram-kit/editing.d.ts +0 -58
- package/src/libs/element/src/lib/diagram-kit/editing.js +0 -453
- package/src/libs/element/src/lib/diagram-kit/er.d.ts +0 -73
- package/src/libs/element/src/lib/diagram-kit/er.js +0 -163
- package/src/libs/element/src/lib/diagram-kit/handles.d.ts +0 -181
- package/src/libs/element/src/lib/diagram-kit/handles.js +0 -325
- package/src/libs/element/src/lib/diagram-kit/index.d.ts +0 -10
- package/src/libs/element/src/lib/diagram-kit/index.js +0 -55
- package/src/libs/element/src/lib/diagram-kit/join-guidance.d.ts +0 -116
- package/src/libs/element/src/lib/diagram-kit/join-guidance.js +0 -331
- package/src/libs/element/src/lib/diagram-kit/rows.d.ts +0 -53
- package/src/libs/element/src/lib/diagram-kit/rows.js +0 -147
- package/src/libs/element/src/lib/diagram-kit/styles.d.ts +0 -18
- package/src/libs/element/src/lib/diagram-kit/styles.js +0 -122
- package/src/libs/element/src/lib/diagram-kit/uml.d.ts +0 -59
- package/src/libs/element/src/lib/diagram-kit/uml.js +0 -138
- package/src/libs/element/src/lib/diagram-kit/update.d.ts +0 -133
- package/src/libs/element/src/lib/diagram-kit/update.js +0 -251
- package/src/libs/element/src/lib/grafloria-flow-element.d.ts +0 -48
- package/src/libs/element/src/lib/grafloria-flow-element.js +0 -271
- package/src/libs/element/src/lib/grafloria.d.ts +0 -72
- package/src/libs/element/src/lib/grafloria.js +0 -74
- package/src/libs/element/src/lib/load.d.ts +0 -72
- package/src/libs/element/src/lib/load.js +0 -255
- package/src/libs/element/src/lib/node-type-registry.d.ts +0 -39
- package/src/libs/element/src/lib/node-type-registry.js +0 -50
- package/src/libs/element/src/lib/stencil-kit/builders.d.ts +0 -45
- package/src/libs/element/src/lib/stencil-kit/builders.js +0 -24
- package/src/libs/element/src/lib/stencil-kit/card-builders.d.ts +0 -2
- package/src/libs/element/src/lib/stencil-kit/card-builders.js +0 -108
- package/src/libs/element/src/lib/stencil-kit/index.d.ts +0 -7
- package/src/libs/element/src/lib/stencil-kit/index.js +0 -19
- package/src/libs/element/src/lib/stencil-kit/palette.d.ts +0 -93
- package/src/libs/element/src/lib/stencil-kit/palette.js +0 -430
- package/src/libs/element/src/lib/stencil-kit/shape-data.d.ts +0 -28
- package/src/libs/element/src/lib/stencil-kit/shape-data.js +0 -540
- package/src/libs/element/src/lib/stencil-kit/styles.d.ts +0 -2
- package/src/libs/element/src/lib/stencil-kit/styles.js +0 -129
- package/src/libs/engine/src/adapters/component-adapter.interface.d.ts +0 -302
- package/src/libs/engine/src/adapters/component-adapter.interface.js +0 -84
- package/src/libs/engine/src/adapters/index.d.ts +0 -7
- package/src/libs/engine/src/adapters/index.js +0 -11
- package/src/libs/engine/src/clipboard/ClipboardManager.d.ts +0 -81
- package/src/libs/engine/src/clipboard/ClipboardManager.js +0 -108
- package/src/libs/engine/src/clipboard/index.d.ts +0 -1
- package/src/libs/engine/src/clipboard/index.js +0 -6
- package/src/libs/engine/src/collab/apply-op.d.ts +0 -42
- package/src/libs/engine/src/collab/apply-op.js +0 -939
- package/src/libs/engine/src/collab/capture.d.ts +0 -147
- package/src/libs/engine/src/collab/capture.js +0 -510
- package/src/libs/engine/src/collab/index.d.ts +0 -12
- package/src/libs/engine/src/collab/index.js +0 -84
- package/src/libs/engine/src/collab/integrity.d.ts +0 -178
- package/src/libs/engine/src/collab/integrity.js +0 -438
- package/src/libs/engine/src/collab/lww.d.ts +0 -47
- package/src/libs/engine/src/collab/lww.js +0 -188
- package/src/libs/engine/src/collab/op-log.d.ts +0 -50
- package/src/libs/engine/src/collab/op-log.js +0 -167
- package/src/libs/engine/src/collab/op.d.ts +0 -120
- package/src/libs/engine/src/collab/op.js +0 -118
- package/src/libs/engine/src/collab/replica.d.ts +0 -188
- package/src/libs/engine/src/collab/replica.js +0 -526
- package/src/libs/engine/src/collab/undo.d.ts +0 -106
- package/src/libs/engine/src/collab/undo.js +0 -388
- package/src/libs/engine/src/commands/Command.d.ts +0 -66
- package/src/libs/engine/src/commands/Command.js +0 -64
- package/src/libs/engine/src/commands/CommandManager.d.ts +0 -161
- package/src/libs/engine/src/commands/CommandManager.js +0 -417
- package/src/libs/engine/src/commands/basic/AddGroupCommand.d.ts +0 -13
- package/src/libs/engine/src/commands/basic/AddGroupCommand.js +0 -50
- package/src/libs/engine/src/commands/basic/AddLinkCommand.d.ts +0 -13
- package/src/libs/engine/src/commands/basic/AddLinkCommand.js +0 -50
- package/src/libs/engine/src/commands/basic/AddNodeCommand.d.ts +0 -13
- package/src/libs/engine/src/commands/basic/AddNodeCommand.js +0 -65
- package/src/libs/engine/src/commands/basic/AddToGroupCommand.d.ts +0 -12
- package/src/libs/engine/src/commands/basic/AddToGroupCommand.js +0 -73
- package/src/libs/engine/src/commands/basic/AlignCommands.d.ts +0 -42
- package/src/libs/engine/src/commands/basic/AlignCommands.js +0 -138
- package/src/libs/engine/src/commands/basic/CollapseGroupCommand.d.ts +0 -14
- package/src/libs/engine/src/commands/basic/CollapseGroupCommand.js +0 -70
- package/src/libs/engine/src/commands/basic/CopyCommand.d.ts +0 -29
- package/src/libs/engine/src/commands/basic/CopyCommand.js +0 -131
- package/src/libs/engine/src/commands/basic/CutCommand.d.ts +0 -49
- package/src/libs/engine/src/commands/basic/CutCommand.js +0 -68
- package/src/libs/engine/src/commands/basic/DeleteSelectionCommand.d.ts +0 -58
- package/src/libs/engine/src/commands/basic/DeleteSelectionCommand.js +0 -309
- package/src/libs/engine/src/commands/basic/DuplicateCommand.d.ts +0 -31
- package/src/libs/engine/src/commands/basic/DuplicateCommand.js +0 -232
- package/src/libs/engine/src/commands/basic/ExpandGroupCommand.d.ts +0 -12
- package/src/libs/engine/src/commands/basic/ExpandGroupCommand.js +0 -69
- package/src/libs/engine/src/commands/basic/MoveGroupCommand.d.ts +0 -46
- package/src/libs/engine/src/commands/basic/MoveGroupCommand.js +0 -77
- package/src/libs/engine/src/commands/basic/MoveNodeCommand.d.ts +0 -30
- package/src/libs/engine/src/commands/basic/MoveNodeCommand.js +0 -87
- package/src/libs/engine/src/commands/basic/NodeZOrderCommands.d.ts +0 -39
- package/src/libs/engine/src/commands/basic/NodeZOrderCommands.js +0 -120
- package/src/libs/engine/src/commands/basic/PasteCommand.d.ts +0 -33
- package/src/libs/engine/src/commands/basic/PasteCommand.js +0 -228
- package/src/libs/engine/src/commands/basic/PortCommands.d.ts +0 -22
- package/src/libs/engine/src/commands/basic/PortCommands.js +0 -85
- package/src/libs/engine/src/commands/basic/ReconnectLinkCommand.d.ts +0 -15
- package/src/libs/engine/src/commands/basic/ReconnectLinkCommand.js +0 -59
- package/src/libs/engine/src/commands/basic/RemoveFromGroupCommand.d.ts +0 -12
- package/src/libs/engine/src/commands/basic/RemoveFromGroupCommand.js +0 -64
- package/src/libs/engine/src/commands/basic/RemoveGroupCommand.d.ts +0 -12
- package/src/libs/engine/src/commands/basic/RemoveGroupCommand.js +0 -56
- package/src/libs/engine/src/commands/basic/RemoveLinkCommand.d.ts +0 -12
- package/src/libs/engine/src/commands/basic/RemoveLinkCommand.js +0 -57
- package/src/libs/engine/src/commands/basic/RemoveNodeCommand.d.ts +0 -23
- package/src/libs/engine/src/commands/basic/RemoveNodeCommand.js +0 -108
- package/src/libs/engine/src/commands/basic/ResizeNodeCommand.d.ts +0 -16
- package/src/libs/engine/src/commands/basic/ResizeNodeCommand.js +0 -81
- package/src/libs/engine/src/commands/basic/RotateNodeCommand.d.ts +0 -37
- package/src/libs/engine/src/commands/basic/RotateNodeCommand.js +0 -88
- package/src/libs/engine/src/commands/basic/SetFlexItemCommand.d.ts +0 -14
- package/src/libs/engine/src/commands/basic/SetFlexItemCommand.js +0 -74
- package/src/libs/engine/src/commands/basic/SetGridItemCommand.d.ts +0 -14
- package/src/libs/engine/src/commands/basic/SetGridItemCommand.js +0 -74
- package/src/libs/engine/src/commands/basic/SetLayoutCommand.d.ts +0 -16
- package/src/libs/engine/src/commands/basic/SetLayoutCommand.js +0 -80
- package/src/libs/engine/src/commands/basic/SetLinkDisplayLabelCommand.d.ts +0 -28
- package/src/libs/engine/src/commands/basic/SetLinkDisplayLabelCommand.js +0 -83
- package/src/libs/engine/src/commands/basic/SetLinkLabelCommand.d.ts +0 -24
- package/src/libs/engine/src/commands/basic/SetLinkLabelCommand.js +0 -81
- package/src/libs/engine/src/commands/basic/SetLinkLabelsCommand.d.ts +0 -14
- package/src/libs/engine/src/commands/basic/SetLinkLabelsCommand.js +0 -75
- package/src/libs/engine/src/commands/basic/SetLinkPathTypeCommand.d.ts +0 -14
- package/src/libs/engine/src/commands/basic/SetLinkPathTypeCommand.js +0 -77
- package/src/libs/engine/src/commands/basic/SetLinkPointsCommand.d.ts +0 -32
- package/src/libs/engine/src/commands/basic/SetLinkPointsCommand.js +0 -87
- package/src/libs/engine/src/commands/basic/SetNodeDataCommand.d.ts +0 -14
- package/src/libs/engine/src/commands/basic/SetNodeDataCommand.js +0 -93
- package/src/libs/engine/src/commands/basic/SetNodeLabelCommand.d.ts +0 -26
- package/src/libs/engine/src/commands/basic/SetNodeLabelCommand.js +0 -81
- package/src/libs/engine/src/commands/basic/SetNodeShapeConfigCommand.d.ts +0 -14
- package/src/libs/engine/src/commands/basic/SetNodeShapeConfigCommand.js +0 -69
- package/src/libs/engine/src/commands/basic/SetNodeStyleCommand.d.ts +0 -15
- package/src/libs/engine/src/commands/basic/SetNodeStyleCommand.js +0 -88
- package/src/libs/engine/src/commands/basic/SetParentCommand.d.ts +0 -13
- package/src/libs/engine/src/commands/basic/SetParentCommand.js +0 -109
- package/src/libs/engine/src/commands/basic/SetStrokePointsCommand.d.ts +0 -34
- package/src/libs/engine/src/commands/basic/SetStrokePointsCommand.js +0 -86
- package/src/libs/engine/src/commands/basic/StrokeLifecycleCommands.d.ts +0 -31
- package/src/libs/engine/src/commands/basic/StrokeLifecycleCommands.js +0 -88
- package/src/libs/engine/src/commands/basic/UpdateLinkStyleCommand.d.ts +0 -15
- package/src/libs/engine/src/commands/basic/UpdateLinkStyleCommand.js +0 -72
- package/src/libs/engine/src/commands/basic/index.d.ts +0 -41
- package/src/libs/engine/src/commands/basic/index.js +0 -52
- package/src/libs/engine/src/commands/basic/remapNodePortIds.d.ts +0 -23
- package/src/libs/engine/src/commands/basic/remapNodePortIds.js +0 -46
- package/src/libs/engine/src/commands/basic/resolveLinkNodeIds.d.ts +0 -31
- package/src/libs/engine/src/commands/basic/resolveLinkNodeIds.js +0 -49
- package/src/libs/engine/src/commands/composite/BatchCommand.d.ts +0 -19
- package/src/libs/engine/src/commands/composite/BatchCommand.js +0 -61
- package/src/libs/engine/src/commands/composite/MacroCommand.d.ts +0 -35
- package/src/libs/engine/src/commands/composite/MacroCommand.js +0 -87
- package/src/libs/engine/src/commands/composite/index.d.ts +0 -2
- package/src/libs/engine/src/commands/composite/index.js +0 -7
- package/src/libs/engine/src/commands/index.d.ts +0 -4
- package/src/libs/engine/src/commands/index.js +0 -9
- package/src/libs/engine/src/comments/comment-store.d.ts +0 -238
- package/src/libs/engine/src/comments/comment-store.js +0 -538
- package/src/libs/engine/src/comments/index.d.ts +0 -4
- package/src/libs/engine/src/comments/index.js +0 -31
- package/src/libs/engine/src/comments/mentions.d.ts +0 -52
- package/src/libs/engine/src/comments/mentions.js +0 -94
- package/src/libs/engine/src/comments/read-state.d.ts +0 -37
- package/src/libs/engine/src/comments/read-state.js +0 -105
- package/src/libs/engine/src/comments/types.d.ts +0 -154
- package/src/libs/engine/src/comments/types.js +0 -107
- package/src/libs/engine/src/config/InteractionConfig.d.ts +0 -330
- package/src/libs/engine/src/config/InteractionConfig.js +0 -154
- package/src/libs/engine/src/config/index.d.ts +0 -1
- package/src/libs/engine/src/config/index.js +0 -6
- package/src/libs/engine/src/dsl/DSL.d.ts +0 -197
- package/src/libs/engine/src/dsl/DSL.js +0 -564
- package/src/libs/engine/src/dsl/advanced/StyleParser.d.ts +0 -75
- package/src/libs/engine/src/dsl/advanced/StyleParser.js +0 -166
- package/src/libs/engine/src/dsl/advanced/TemplateParser.d.ts +0 -88
- package/src/libs/engine/src/dsl/advanced/TemplateParser.js +0 -226
- package/src/libs/engine/src/dsl/advanced/index.d.ts +0 -9
- package/src/libs/engine/src/dsl/advanced/index.js +0 -13
- package/src/libs/engine/src/dsl/detector/LayoutDetector.d.ts +0 -80
- package/src/libs/engine/src/dsl/detector/LayoutDetector.js +0 -333
- package/src/libs/engine/src/dsl/extended/BPMNGenerator.d.ts +0 -38
- package/src/libs/engine/src/dsl/extended/BPMNGenerator.js +0 -90
- package/src/libs/engine/src/dsl/extended/BPMNParser.d.ts +0 -83
- package/src/libs/engine/src/dsl/extended/BPMNParser.js +0 -198
- package/src/libs/engine/src/dsl/extended/ERDGenerator.d.ts +0 -38
- package/src/libs/engine/src/dsl/extended/ERDGenerator.js +0 -126
- package/src/libs/engine/src/dsl/extended/ERDParser.d.ts +0 -81
- package/src/libs/engine/src/dsl/extended/ERDParser.js +0 -161
- package/src/libs/engine/src/dsl/extended/ERDTransformer.d.ts +0 -43
- package/src/libs/engine/src/dsl/extended/ERDTransformer.js +0 -105
- package/src/libs/engine/src/dsl/extended/UMLGenerator.d.ts +0 -42
- package/src/libs/engine/src/dsl/extended/UMLGenerator.js +0 -157
- package/src/libs/engine/src/dsl/extended/UMLParser.d.ts +0 -99
- package/src/libs/engine/src/dsl/extended/UMLParser.js +0 -200
- package/src/libs/engine/src/dsl/extended/index.d.ts +0 -13
- package/src/libs/engine/src/dsl/extended/index.js +0 -27
- package/src/libs/engine/src/dsl/generator/DSLFormatter.d.ts +0 -87
- package/src/libs/engine/src/dsl/generator/DSLFormatter.js +0 -261
- package/src/libs/engine/src/dsl/generator/DSLGenerator.d.ts +0 -96
- package/src/libs/engine/src/dsl/generator/DSLGenerator.js +0 -328
- package/src/libs/engine/src/dsl/generator/DiagramAnalyzer.d.ts +0 -111
- package/src/libs/engine/src/dsl/generator/DiagramAnalyzer.js +0 -361
- package/src/libs/engine/src/dsl/index.d.ts +0 -35
- package/src/libs/engine/src/dsl/index.js +0 -64
- package/src/libs/engine/src/dsl/lexer/Lexer.d.ts +0 -117
- package/src/libs/engine/src/dsl/lexer/Lexer.js +0 -521
- package/src/libs/engine/src/dsl/mermaid/MermaidClass.d.ts +0 -136
- package/src/libs/engine/src/dsl/mermaid/MermaidClass.js +0 -429
- package/src/libs/engine/src/dsl/mermaid/MermaidER.d.ts +0 -118
- package/src/libs/engine/src/dsl/mermaid/MermaidER.js +0 -338
- package/src/libs/engine/src/dsl/mermaid/MermaidState.d.ts +0 -89
- package/src/libs/engine/src/dsl/mermaid/MermaidState.js +0 -613
- package/src/libs/engine/src/dsl/mermaid/index.d.ts +0 -10
- package/src/libs/engine/src/dsl/mermaid/index.js +0 -33
- package/src/libs/engine/src/dsl/mermaid/layout.d.ts +0 -70
- package/src/libs/engine/src/dsl/mermaid/layout.js +0 -162
- package/src/libs/engine/src/dsl/mermaid/lines.d.ts +0 -25
- package/src/libs/engine/src/dsl/mermaid/lines.js +0 -74
- package/src/libs/engine/src/dsl/parser/Parser.d.ts +0 -131
- package/src/libs/engine/src/dsl/parser/Parser.js +0 -725
- package/src/libs/engine/src/dsl/sync/BidirectionalSync.d.ts +0 -154
- package/src/libs/engine/src/dsl/sync/BidirectionalSync.js +0 -389
- package/src/libs/engine/src/dsl/sync/IntegratedSyncManager.d.ts +0 -128
- package/src/libs/engine/src/dsl/sync/IntegratedSyncManager.js +0 -244
- package/src/libs/engine/src/dsl/sync/LayoutApplicator.d.ts +0 -140
- package/src/libs/engine/src/dsl/sync/LayoutApplicator.js +0 -271
- package/src/libs/engine/src/dsl/sync/SyncStateManager.d.ts +0 -145
- package/src/libs/engine/src/dsl/sync/SyncStateManager.js +0 -253
- package/src/libs/engine/src/dsl/sync/index.d.ts +0 -13
- package/src/libs/engine/src/dsl/sync/index.js +0 -21
- package/src/libs/engine/src/dsl/transformer/ASTTransformer.d.ts +0 -150
- package/src/libs/engine/src/dsl/transformer/ASTTransformer.js +0 -605
- package/src/libs/engine/src/dsl/types/ASTNode.d.ts +0 -159
- package/src/libs/engine/src/dsl/types/ASTNode.js +0 -31
- package/src/libs/engine/src/dsl/types/Token.d.ts +0 -79
- package/src/libs/engine/src/dsl/types/Token.js +0 -84
- package/src/libs/engine/src/engine/DiagramEngine.d.ts +0 -917
- package/src/libs/engine/src/engine/DiagramEngine.js +0 -2190
- package/src/libs/engine/src/engine/DiagramMode.d.ts +0 -51
- package/src/libs/engine/src/engine/DiagramMode.js +0 -53
- package/src/libs/engine/src/engine/DiagramModeTypes.d.ts +0 -73
- package/src/libs/engine/src/engine/DiagramModeTypes.js +0 -4
- package/src/libs/engine/src/engine/ModeManager.d.ts +0 -155
- package/src/libs/engine/src/engine/ModeManager.js +0 -387
- package/src/libs/engine/src/engine/index.d.ts +0 -2
- package/src/libs/engine/src/engine/index.js +0 -7
- package/src/libs/engine/src/events/EventBus.d.ts +0 -106
- package/src/libs/engine/src/events/EventBus.js +0 -226
- package/src/libs/engine/src/events/index.d.ts +0 -1
- package/src/libs/engine/src/events/index.js +0 -6
- package/src/libs/engine/src/index.d.ts +0 -43
- package/src/libs/engine/src/index.js +0 -142
- package/src/libs/engine/src/interaction/GroupCollapseService.d.ts +0 -53
- package/src/libs/engine/src/interaction/GroupCollapseService.js +0 -274
- package/src/libs/engine/src/interaction/GroupMembershipService.d.ts +0 -107
- package/src/libs/engine/src/interaction/GroupMembershipService.js +0 -245
- package/src/libs/engine/src/interaction/SemanticMembershipService.d.ts +0 -28
- package/src/libs/engine/src/interaction/SemanticMembershipService.js +0 -168
- package/src/libs/engine/src/interaction/SwimlaneService.d.ts +0 -62
- package/src/libs/engine/src/interaction/SwimlaneService.js +0 -180
- package/src/libs/engine/src/interaction/index.d.ts +0 -4
- package/src/libs/engine/src/interaction/index.js +0 -9
- package/src/libs/engine/src/interop/drawio/importDrawio.d.ts +0 -52
- package/src/libs/engine/src/interop/drawio/importDrawio.js +0 -940
- package/src/libs/engine/src/interop/drawio/index.d.ts +0 -1
- package/src/libs/engine/src/interop/drawio/index.js +0 -12
- package/src/libs/engine/src/interop/drawio/xml.d.ts +0 -26
- package/src/libs/engine/src/interop/drawio/xml.js +0 -213
- package/src/libs/engine/src/layout/CompoundLayoutService.d.ts +0 -121
- package/src/libs/engine/src/layout/CompoundLayoutService.js +0 -616
- package/src/libs/engine/src/layout/ILayoutAlgorithm.d.ts +0 -120
- package/src/libs/engine/src/layout/ILayoutAlgorithm.js +0 -88
- package/src/libs/engine/src/layout/LayoutManager.d.ts +0 -155
- package/src/libs/engine/src/layout/LayoutManager.js +0 -640
- package/src/libs/engine/src/layout/SmartSpacingCalculator.d.ts +0 -62
- package/src/libs/engine/src/layout/SmartSpacingCalculator.js +0 -134
- package/src/libs/engine/src/layout/ViewportTransform.d.ts +0 -55
- package/src/libs/engine/src/layout/ViewportTransform.js +0 -118
- package/src/libs/engine/src/layout/algorithms/ForceDirectedLayoutAlgorithm.d.ts +0 -34
- package/src/libs/engine/src/layout/algorithms/ForceDirectedLayoutAlgorithm.js +0 -317
- package/src/libs/engine/src/layout/algorithms/GridLayoutAlgorithm.d.ts +0 -56
- package/src/libs/engine/src/layout/algorithms/GridLayoutAlgorithm.js +0 -223
- package/src/libs/engine/src/layout/algorithms/HierarchicalLayoutAlgorithm.d.ts +0 -60
- package/src/libs/engine/src/layout/algorithms/HierarchicalLayoutAlgorithm.js +0 -307
- package/src/libs/engine/src/layout/algorithms/HybridLayoutAlgorithm.d.ts +0 -62
- package/src/libs/engine/src/layout/algorithms/HybridLayoutAlgorithm.js +0 -324
- package/src/libs/engine/src/layout/community-layout-adapter.d.ts +0 -107
- package/src/libs/engine/src/layout/community-layout-adapter.js +0 -486
- package/src/libs/engine/src/layout/component-packing.d.ts +0 -98
- package/src/libs/engine/src/layout/component-packing.js +0 -307
- package/src/libs/engine/src/layout/dagre-layout-adapter.d.ts +0 -122
- package/src/libs/engine/src/layout/dagre-layout-adapter.js +0 -697
- package/src/libs/engine/src/layout/edge-bundling.interface.d.ts +0 -159
- package/src/libs/engine/src/layout/edge-bundling.interface.js +0 -379
- package/src/libs/engine/src/layout/elk-layout-adapter.d.ts +0 -121
- package/src/libs/engine/src/layout/elk-layout-adapter.js +0 -586
- package/src/libs/engine/src/layout/elk-loader.d.ts +0 -1
- package/src/libs/engine/src/layout/elk-loader.js +0 -24
- package/src/libs/engine/src/layout/force-layout-adapter.d.ts +0 -167
- package/src/libs/engine/src/layout/force-layout-adapter.js +0 -790
- package/src/libs/engine/src/layout/grid-pack/grid-pack-engine.d.ts +0 -323
- package/src/libs/engine/src/layout/grid-pack/grid-pack-engine.js +0 -685
- package/src/libs/engine/src/layout/incremental/mental-map.d.ts +0 -98
- package/src/libs/engine/src/layout/incremental/mental-map.js +0 -221
- package/src/libs/engine/src/layout/incremental-layout.interface.d.ts +0 -145
- package/src/libs/engine/src/layout/incremental-layout.interface.js +0 -300
- package/src/libs/engine/src/layout/index.d.ts +0 -83
- package/src/libs/engine/src/layout/index.js +0 -116
- package/src/libs/engine/src/layout/layout-adapter.interface.d.ts +0 -185
- package/src/libs/engine/src/layout/layout-adapter.interface.js +0 -10
- package/src/libs/engine/src/layout/layout-auto-select.d.ts +0 -160
- package/src/libs/engine/src/layout/layout-auto-select.js +0 -621
- package/src/libs/engine/src/layout/layout-constraints.interface.d.ts +0 -117
- package/src/libs/engine/src/layout/layout-constraints.interface.js +0 -138
- package/src/libs/engine/src/layout/layout-graph.d.ts +0 -70
- package/src/libs/engine/src/layout/layout-graph.js +0 -119
- package/src/libs/engine/src/layout/layout-history.d.ts +0 -147
- package/src/libs/engine/src/layout/layout-history.js +0 -258
- package/src/libs/engine/src/layout/layout-host.d.ts +0 -172
- package/src/libs/engine/src/layout/layout-host.js +0 -523
- package/src/libs/engine/src/layout/layout-presets.d.ts +0 -91
- package/src/libs/engine/src/layout/layout-presets.js +0 -333
- package/src/libs/engine/src/layout/layout-quality-extended.d.ts +0 -66
- package/src/libs/engine/src/layout/layout-quality-extended.js +0 -246
- package/src/libs/engine/src/layout/layout-quality-metrics.d.ts +0 -127
- package/src/libs/engine/src/layout/layout-quality-metrics.js +0 -466
- package/src/libs/engine/src/layout/layout-registry.d.ts +0 -309
- package/src/libs/engine/src/layout/layout-registry.js +0 -414
- package/src/libs/engine/src/layout/layout.service.d.ts +0 -100
- package/src/libs/engine/src/layout/layout.service.js +0 -216
- package/src/libs/engine/src/layout/overlap-removal.d.ts +0 -20
- package/src/libs/engine/src/layout/overlap-removal.js +0 -117
- package/src/libs/engine/src/layout/port-aware-layout.interface.d.ts +0 -232
- package/src/libs/engine/src/layout/port-aware-layout.interface.js +0 -413
- package/src/libs/engine/src/layout/port-label-bridge.d.ts +0 -77
- package/src/libs/engine/src/layout/port-label-bridge.js +0 -250
- package/src/libs/engine/src/layout/portfolio-layouts.d.ts +0 -53
- package/src/libs/engine/src/layout/portfolio-layouts.js +0 -388
- package/src/libs/engine/src/layout/rng.d.ts +0 -34
- package/src/libs/engine/src/layout/rng.js +0 -71
- package/src/libs/engine/src/layout/spectral-layout-adapter.d.ts +0 -72
- package/src/libs/engine/src/layout/spectral-layout-adapter.js +0 -379
- package/src/libs/engine/src/layout/steppable-layout.d.ts +0 -40
- package/src/libs/engine/src/layout/steppable-layout.js +0 -34
- package/src/libs/engine/src/layout/subgraph-layout.interface.d.ts +0 -269
- package/src/libs/engine/src/layout/subgraph-layout.interface.js +0 -452
- package/src/libs/engine/src/layout/sugiyama/layered-layout.d.ts +0 -9
- package/src/libs/engine/src/layout/sugiyama/layered-layout.js +0 -83
- package/src/libs/engine/src/layout/sugiyama/sugiyama.d.ts +0 -91
- package/src/libs/engine/src/layout/sugiyama/sugiyama.js +0 -797
- package/src/libs/engine/src/layout/tree-layout.d.ts +0 -43
- package/src/libs/engine/src/layout/tree-layout.js +0 -426
- package/src/libs/engine/src/layout/types.d.ts +0 -263
- package/src/libs/engine/src/layout/types.js +0 -6
- package/src/libs/engine/src/lib/performance/mobile-performance.service.d.ts +0 -43
- package/src/libs/engine/src/lib/performance/mobile-performance.service.js +0 -95
- package/src/libs/engine/src/models/DiagramEntity.d.ts +0 -174
- package/src/libs/engine/src/models/DiagramEntity.js +0 -366
- package/src/libs/engine/src/models/DiagramModel.d.ts +0 -960
- package/src/libs/engine/src/models/DiagramModel.js +0 -2416
- package/src/libs/engine/src/models/GroupModel.d.ts +0 -573
- package/src/libs/engine/src/models/GroupModel.js +0 -1373
- package/src/libs/engine/src/models/LinkModel.d.ts +0 -395
- package/src/libs/engine/src/models/LinkModel.js +0 -1045
- package/src/libs/engine/src/models/NodeModel.d.ts +0 -666
- package/src/libs/engine/src/models/NodeModel.js +0 -1512
- package/src/libs/engine/src/models/PortModel.d.ts +0 -292
- package/src/libs/engine/src/models/PortModel.js +0 -637
- package/src/libs/engine/src/models/StrokeModel.d.ts +0 -160
- package/src/libs/engine/src/models/StrokeModel.js +0 -387
- package/src/libs/engine/src/models/index.d.ts +0 -7
- package/src/libs/engine/src/models/index.js +0 -12
- package/src/libs/engine/src/models/readonly-lock.d.ts +0 -108
- package/src/libs/engine/src/models/readonly-lock.js +0 -125
- package/src/libs/engine/src/performance/LRUCache.d.ts +0 -78
- package/src/libs/engine/src/performance/LRUCache.js +0 -179
- package/src/libs/engine/src/performance/PerformanceMonitor.d.ts +0 -47
- package/src/libs/engine/src/performance/PerformanceMonitor.js +0 -112
- package/src/libs/engine/src/performance/SpatialIndex.d.ts +0 -157
- package/src/libs/engine/src/performance/SpatialIndex.js +0 -306
- package/src/libs/engine/src/performance/index.d.ts +0 -2
- package/src/libs/engine/src/performance/index.js +0 -7
- package/src/libs/engine/src/plugins/PluginManager.d.ts +0 -95
- package/src/libs/engine/src/plugins/PluginManager.js +0 -388
- package/src/libs/engine/src/plugins/index.d.ts +0 -1
- package/src/libs/engine/src/plugins/index.js +0 -6
- package/src/libs/engine/src/ports/connection-rules.d.ts +0 -32
- package/src/libs/engine/src/ports/connection-rules.js +0 -131
- package/src/libs/engine/src/ports/dynamic-ports.d.ts +0 -27
- package/src/libs/engine/src/ports/dynamic-ports.js +0 -135
- package/src/libs/engine/src/ports/index.d.ts +0 -5
- package/src/libs/engine/src/ports/index.js +0 -16
- package/src/libs/engine/src/ports/port-groups.d.ts +0 -43
- package/src/libs/engine/src/ports/port-groups.js +0 -185
- package/src/libs/engine/src/ports/port-type-registry.d.ts +0 -34
- package/src/libs/engine/src/ports/port-type-registry.js +0 -87
- package/src/libs/engine/src/ports/port-types.d.ts +0 -266
- package/src/libs/engine/src/ports/port-types.js +0 -30
- package/src/libs/engine/src/rendering/HtmlTemplateRenderer.d.ts +0 -136
- package/src/libs/engine/src/rendering/HtmlTemplateRenderer.js +0 -292
- package/src/libs/engine/src/rendering/LemonadeJSRenderer.d.ts +0 -160
- package/src/libs/engine/src/rendering/LemonadeJSRenderer.js +0 -362
- package/src/libs/engine/src/rendering/index.d.ts +0 -2
- package/src/libs/engine/src/rendering/index.js +0 -7
- package/src/libs/engine/src/routing/LiveReroutingEngine.d.ts +0 -75
- package/src/libs/engine/src/routing/LiveReroutingEngine.js +0 -173
- package/src/libs/engine/src/routing/ObstacleIndex.d.ts +0 -42
- package/src/libs/engine/src/routing/ObstacleIndex.js +0 -215
- package/src/libs/engine/src/routing/ObstacleMap.d.ts +0 -68
- package/src/libs/engine/src/routing/ObstacleMap.js +0 -312
- package/src/libs/engine/src/routing/ObstacleMapBuilder.d.ts +0 -28
- package/src/libs/engine/src/routing/ObstacleMapBuilder.js +0 -76
- package/src/libs/engine/src/routing/PathSimplifier.d.ts +0 -119
- package/src/libs/engine/src/routing/PathSimplifier.js +0 -224
- package/src/libs/engine/src/routing/RoutingEngine.d.ts +0 -118
- package/src/libs/engine/src/routing/RoutingEngine.js +0 -546
- package/src/libs/engine/src/routing/algorithms/AStarRouter.d.ts +0 -90
- package/src/libs/engine/src/routing/algorithms/AStarRouter.js +0 -331
- package/src/libs/engine/src/routing/algorithms/DijkstraRouter.d.ts +0 -74
- package/src/libs/engine/src/routing/algorithms/DijkstraRouter.js +0 -297
- package/src/libs/engine/src/routing/algorithms/ElkRouter.d.ts +0 -34
- package/src/libs/engine/src/routing/algorithms/ElkRouter.js +0 -210
- package/src/libs/engine/src/routing/algorithms/ManhattanRouter.d.ts +0 -18
- package/src/libs/engine/src/routing/algorithms/ManhattanRouter.js +0 -224
- package/src/libs/engine/src/routing/algorithms/OrthogonalRouter.d.ts +0 -173
- package/src/libs/engine/src/routing/algorithms/OrthogonalRouter.js +0 -1092
- package/src/libs/engine/src/routing/algorithms/StraightRouter.d.ts +0 -8
- package/src/libs/engine/src/routing/algorithms/StraightRouter.js +0 -53
- package/src/libs/engine/src/routing/algorithms/VisibilityGraphRouter.d.ts +0 -59
- package/src/libs/engine/src/routing/algorithms/VisibilityGraphRouter.js +0 -258
- package/src/libs/engine/src/routing/global/GlobalRouteSolver.d.ts +0 -64
- package/src/libs/engine/src/routing/global/GlobalRouteSolver.js +0 -334
- package/src/libs/engine/src/routing/global/solver-host.d.ts +0 -65
- package/src/libs/engine/src/routing/global/solver-host.js +0 -87
- package/src/libs/engine/src/routing/index.d.ts +0 -15
- package/src/libs/engine/src/routing/index.js +0 -20
- package/src/libs/engine/src/routing/types.d.ts +0 -161
- package/src/libs/engine/src/routing/types.js +0 -4
- package/src/libs/engine/src/selection/SelectionManager.d.ts +0 -161
- package/src/libs/engine/src/selection/SelectionManager.js +0 -483
- package/src/libs/engine/src/selection/index.d.ts +0 -1
- package/src/libs/engine/src/selection/index.js +0 -6
- package/src/libs/engine/src/serialization/DiagramMigrations.d.ts +0 -41
- package/src/libs/engine/src/serialization/DiagramMigrations.js +0 -124
- package/src/libs/engine/src/serialization/DiagramValidator.d.ts +0 -20
- package/src/libs/engine/src/serialization/DiagramValidator.js +0 -136
- package/src/libs/engine/src/serialization/DocumentEnvelope.d.ts +0 -53
- package/src/libs/engine/src/serialization/DocumentEnvelope.js +0 -111
- package/src/libs/engine/src/serialization/Incremental.d.ts +0 -77
- package/src/libs/engine/src/serialization/Incremental.js +0 -227
- package/src/libs/engine/src/serialization/Serializer.d.ts +0 -29
- package/src/libs/engine/src/serialization/Serializer.js +0 -45
- package/src/libs/engine/src/serialization/Subgraph.d.ts +0 -51
- package/src/libs/engine/src/serialization/Subgraph.js +0 -172
- package/src/libs/engine/src/serialization/TextFormat.d.ts +0 -71
- package/src/libs/engine/src/serialization/TextFormat.js +0 -261
- package/src/libs/engine/src/state/ConnectionStateManager.d.ts +0 -178
- package/src/libs/engine/src/state/ConnectionStateManager.js +0 -319
- package/src/libs/engine/src/state/DiagramStore.d.ts +0 -134
- package/src/libs/engine/src/state/DiagramStore.js +0 -372
- package/src/libs/engine/src/state/index.d.ts +0 -2
- package/src/libs/engine/src/state/index.js +0 -7
- package/src/libs/engine/src/sync/awareness.d.ts +0 -91
- package/src/libs/engine/src/sync/awareness.js +0 -221
- package/src/libs/engine/src/sync/batcher.d.ts +0 -84
- package/src/libs/engine/src/sync/batcher.js +0 -0
- package/src/libs/engine/src/sync/causal-buffer.d.ts +0 -81
- package/src/libs/engine/src/sync/causal-buffer.js +0 -199
- package/src/libs/engine/src/sync/index.d.ts +0 -20
- package/src/libs/engine/src/sync/index.js +0 -41
- package/src/libs/engine/src/sync/protocol.d.ts +0 -74
- package/src/libs/engine/src/sync/protocol.js +0 -39
- package/src/libs/engine/src/sync/sync-adapter.d.ts +0 -243
- package/src/libs/engine/src/sync/sync-adapter.js +0 -524
- package/src/libs/engine/src/sync/transport.d.ts +0 -30
- package/src/libs/engine/src/sync/transport.js +0 -28
- package/src/libs/engine/src/sync/transports/broadcast-channel.d.ts +0 -39
- package/src/libs/engine/src/sync/transports/broadcast-channel.js +0 -117
- package/src/libs/engine/src/sync/transports/memory.d.ts +0 -38
- package/src/libs/engine/src/sync/transports/memory.js +0 -111
- package/src/libs/engine/src/sync/transports/unreliable.d.ts +0 -59
- package/src/libs/engine/src/sync/transports/unreliable.js +0 -153
- package/src/libs/engine/src/sync/transports/websocket.d.ts +0 -60
- package/src/libs/engine/src/sync/transports/websocket.js +0 -210
- package/src/libs/engine/src/sync/version-vector.d.ts +0 -47
- package/src/libs/engine/src/sync/version-vector.js +0 -218
- package/src/libs/engine/src/template-library/common-templates.d.ts +0 -46
- package/src/libs/engine/src/template-library/common-templates.js +0 -395
- package/src/libs/engine/src/template-library/data-viz-templates.d.ts +0 -52
- package/src/libs/engine/src/template-library/data-viz-templates.js +0 -471
- package/src/libs/engine/src/template-library/erd-templates.d.ts +0 -71
- package/src/libs/engine/src/template-library/erd-templates.js +0 -773
- package/src/libs/engine/src/template-library/index.d.ts +0 -141
- package/src/libs/engine/src/template-library/index.js +0 -271
- package/src/libs/engine/src/template-library/integration.d.ts +0 -80
- package/src/libs/engine/src/template-library/integration.js +0 -141
- package/src/libs/engine/src/template-library/workflow-templates.d.ts +0 -52
- package/src/libs/engine/src/template-library/workflow-templates.js +0 -438
- package/src/libs/engine/src/templates/NodeFactory.d.ts +0 -118
- package/src/libs/engine/src/templates/NodeFactory.js +0 -436
- package/src/libs/engine/src/templates/NodeTemplate.d.ts +0 -342
- package/src/libs/engine/src/templates/NodeTemplate.js +0 -13
- package/src/libs/engine/src/templates/TemplateLoader.d.ts +0 -46
- package/src/libs/engine/src/templates/TemplateLoader.js +0 -114
- package/src/libs/engine/src/templates/TemplateRegistry.d.ts +0 -70
- package/src/libs/engine/src/templates/TemplateRegistry.js +0 -128
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-business-rule-task.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-business-rule-task.template.js +0 -123
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-end-event.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-end-event.template.js +0 -123
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-error-event.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-error-event.template.js +0 -123
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-exclusive-gateway.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-exclusive-gateway.template.js +0 -124
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-inclusive-gateway.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-inclusive-gateway.template.js +0 -123
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-intermediate-event.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-intermediate-event.template.js +0 -124
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-manual-task.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-manual-task.template.js +0 -123
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-message-event.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-message-event.template.js +0 -122
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-parallel-gateway.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-parallel-gateway.template.js +0 -125
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-script-task.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-script-task.template.js +0 -123
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-service-task.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-service-task.template.js +0 -123
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-start-event.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-start-event.template.js +0 -123
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-task.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-task.template.js +0 -152
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-timer-event.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-timer-event.template.js +0 -123
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-user-task.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/bpmn/bpmn-user-task.template.js +0 -123
- package/src/libs/engine/src/templates/generated/bpmn/index.d.ts +0 -15
- package/src/libs/engine/src/templates/generated/bpmn/index.js +0 -34
- package/src/libs/engine/src/templates/generated/erd/erd-associative-entity.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/erd/erd-associative-entity.template.js +0 -152
- package/src/libs/engine/src/templates/generated/erd/erd-attribute.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/erd/erd-attribute.template.js +0 -122
- package/src/libs/engine/src/templates/generated/erd/erd-bridge-entity.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/erd/erd-bridge-entity.template.js +0 -151
- package/src/libs/engine/src/templates/generated/erd/erd-composite-attribute.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/erd/erd-composite-attribute.template.js +0 -122
- package/src/libs/engine/src/templates/generated/erd/erd-derived-attribute.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/erd/erd-derived-attribute.template.js +0 -122
- package/src/libs/engine/src/templates/generated/erd/erd-discriminator.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/erd/erd-discriminator.template.js +0 -123
- package/src/libs/engine/src/templates/generated/erd/erd-entity.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/erd/erd-entity.template.js +0 -149
- package/src/libs/engine/src/templates/generated/erd/erd-isa.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/erd/erd-isa.template.js +0 -123
- package/src/libs/engine/src/templates/generated/erd/erd-key-attribute.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/erd/erd-key-attribute.template.js +0 -122
- package/src/libs/engine/src/templates/generated/erd/erd-multivalued-attribute.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/erd/erd-multivalued-attribute.template.js +0 -122
- package/src/libs/engine/src/templates/generated/erd/erd-optional-attribute.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/erd/erd-optional-attribute.template.js +0 -122
- package/src/libs/engine/src/templates/generated/erd/erd-partial-key.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/erd/erd-partial-key.template.js +0 -123
- package/src/libs/engine/src/templates/generated/erd/erd-relationship.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/erd/erd-relationship.template.js +0 -121
- package/src/libs/engine/src/templates/generated/erd/erd-subtype.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/erd/erd-subtype.template.js +0 -123
- package/src/libs/engine/src/templates/generated/erd/erd-supertype.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/erd/erd-supertype.template.js +0 -123
- package/src/libs/engine/src/templates/generated/erd/erd-table.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/erd/erd-table.template.js +0 -123
- package/src/libs/engine/src/templates/generated/erd/erd-view.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/erd/erd-view.template.js +0 -123
- package/src/libs/engine/src/templates/generated/erd/erd-weak-entity.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/erd/erd-weak-entity.template.js +0 -149
- package/src/libs/engine/src/templates/generated/erd/erd-weak-relationship.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/erd/erd-weak-relationship.template.js +0 -122
- package/src/libs/engine/src/templates/generated/erd/index.d.ts +0 -19
- package/src/libs/engine/src/templates/generated/erd/index.js +0 -42
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-connector.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-connector.template.js +0 -123
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-data.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-data.template.js +0 -123
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-decision.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-decision.template.js +0 -123
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-delay.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-delay.template.js +0 -124
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-display.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-display.template.js +0 -124
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-document.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-document.template.js +0 -123
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-manual-input.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-manual-input.template.js +0 -123
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-manual-operation.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-manual-operation.template.js +0 -122
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-merge.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-merge.template.js +0 -122
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-or.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-or.template.js +0 -123
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-predefined-process.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-predefined-process.template.js +0 -123
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-preparation.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-preparation.template.js +0 -123
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-process.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-process.template.js +0 -122
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-stored-data.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-stored-data.template.js +0 -123
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-summing-junction.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-summing-junction.template.js +0 -124
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-terminal.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/flowchart/flowchart-terminal.template.js +0 -124
- package/src/libs/engine/src/templates/generated/flowchart/index.d.ts +0 -16
- package/src/libs/engine/src/templates/generated/flowchart/index.js +0 -36
- package/src/libs/engine/src/templates/generated/index.d.ts +0 -9
- package/src/libs/engine/src/templates/generated/index.js +0 -13
- package/src/libs/engine/src/templates/generated/register.d.ts +0 -23
- package/src/libs/engine/src/templates/generated/register.js +0 -31
- package/src/libs/engine/src/templates/generated/uml/index.d.ts +0 -30
- package/src/libs/engine/src/templates/generated/uml/index.js +0 -64
- package/src/libs/engine/src/templates/generated/uml/uml-abstract-class.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-abstract-class.template.js +0 -204
- package/src/libs/engine/src/templates/generated/uml/uml-activation.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-activation.template.js +0 -124
- package/src/libs/engine/src/templates/generated/uml/uml-activity-partition.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-activity-partition.template.js +0 -124
- package/src/libs/engine/src/templates/generated/uml/uml-activity.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-activity.template.js +0 -123
- package/src/libs/engine/src/templates/generated/uml/uml-actor.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-actor.template.js +0 -123
- package/src/libs/engine/src/templates/generated/uml/uml-class.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-class.template.js +0 -204
- package/src/libs/engine/src/templates/generated/uml/uml-collaboration.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-collaboration.template.js +0 -122
- package/src/libs/engine/src/templates/generated/uml/uml-component.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-component.template.js +0 -122
- package/src/libs/engine/src/templates/generated/uml/uml-datatype.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-datatype.template.js +0 -204
- package/src/libs/engine/src/templates/generated/uml/uml-decision.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-decision.template.js +0 -124
- package/src/libs/engine/src/templates/generated/uml/uml-enum.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-enum.template.js +0 -204
- package/src/libs/engine/src/templates/generated/uml/uml-final-node.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-final-node.template.js +0 -124
- package/src/libs/engine/src/templates/generated/uml/uml-final-state.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-final-state.template.js +0 -124
- package/src/libs/engine/src/templates/generated/uml/uml-fork.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-fork.template.js +0 -125
- package/src/libs/engine/src/templates/generated/uml/uml-initial-node.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-initial-node.template.js +0 -123
- package/src/libs/engine/src/templates/generated/uml/uml-initial-state.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-initial-state.template.js +0 -123
- package/src/libs/engine/src/templates/generated/uml/uml-interface.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-interface.template.js +0 -204
- package/src/libs/engine/src/templates/generated/uml/uml-join.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-join.template.js +0 -125
- package/src/libs/engine/src/templates/generated/uml/uml-lifeline.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-lifeline.template.js +0 -123
- package/src/libs/engine/src/templates/generated/uml/uml-merge.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-merge.template.js +0 -122
- package/src/libs/engine/src/templates/generated/uml/uml-node.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-node.template.js +0 -122
- package/src/libs/engine/src/templates/generated/uml/uml-note.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-note.template.js +0 -123
- package/src/libs/engine/src/templates/generated/uml/uml-object.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-object.template.js +0 -204
- package/src/libs/engine/src/templates/generated/uml/uml-package.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-package.template.js +0 -123
- package/src/libs/engine/src/templates/generated/uml/uml-part.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-part.template.js +0 -122
- package/src/libs/engine/src/templates/generated/uml/uml-port.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-port.template.js +0 -123
- package/src/libs/engine/src/templates/generated/uml/uml-primitive-type.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-primitive-type.template.js +0 -204
- package/src/libs/engine/src/templates/generated/uml/uml-signal.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-signal.template.js +0 -123
- package/src/libs/engine/src/templates/generated/uml/uml-state.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-state.template.js +0 -123
- package/src/libs/engine/src/templates/generated/uml/uml-use-case.template.d.ts +0 -11
- package/src/libs/engine/src/templates/generated/uml/uml-use-case.template.js +0 -122
- package/src/libs/engine/src/templates/index.d.ts +0 -12
- package/src/libs/engine/src/templates/index.js +0 -27
- package/src/libs/engine/src/templates/stencils.d.ts +0 -45
- package/src/libs/engine/src/templates/stencils.js +0 -85
- package/src/libs/engine/src/types/domain/bpmn.d.ts +0 -25
- package/src/libs/engine/src/types/domain/bpmn.js +0 -313
- package/src/libs/engine/src/types/domain/erd.d.ts +0 -29
- package/src/libs/engine/src/types/domain/erd.js +0 -394
- package/src/libs/engine/src/types/domain/flowchart.d.ts +0 -26
- package/src/libs/engine/src/types/domain/flowchart.js +0 -434
- package/src/libs/engine/src/types/domain/index.d.ts +0 -4
- package/src/libs/engine/src/types/domain/index.js +0 -9
- package/src/libs/engine/src/types/domain/uml.d.ts +0 -40
- package/src/libs/engine/src/types/domain/uml.js +0 -758
- package/src/libs/engine/src/types/event.types.d.ts +0 -142
- package/src/libs/engine/src/types/event.types.js +0 -96
- package/src/libs/engine/src/types/geometry.types.d.ts +0 -84
- package/src/libs/engine/src/types/geometry.types.js +0 -16
- package/src/libs/engine/src/types/index.d.ts +0 -7
- package/src/libs/engine/src/types/index.js +0 -14
- package/src/libs/engine/src/types/layout.types.d.ts +0 -148
- package/src/libs/engine/src/types/layout.types.js +0 -28
- package/src/libs/engine/src/types/model.types.d.ts +0 -378
- package/src/libs/engine/src/types/model.types.js +0 -4
- package/src/libs/engine/src/types/performance.types.d.ts +0 -109
- package/src/libs/engine/src/types/performance.types.js +0 -122
- package/src/libs/engine/src/types/plugin.types.d.ts +0 -30
- package/src/libs/engine/src/types/plugin.types.js +0 -4
- package/src/libs/engine/src/utils/deep-clone.d.ts +0 -9
- package/src/libs/engine/src/utils/deep-clone.js +0 -123
- package/src/libs/engine/src/utils/geometry.d.ts +0 -45
- package/src/libs/engine/src/utils/geometry.js +0 -241
- package/src/libs/engine/src/utils/id.d.ts +0 -22
- package/src/libs/engine/src/utils/id.js +0 -44
- package/src/libs/engine/src/utils/index.d.ts +0 -3
- package/src/libs/engine/src/utils/index.js +0 -8
- package/src/libs/engine/src/utils/transform.d.ts +0 -84
- package/src/libs/engine/src/utils/transform.js +0 -200
- package/src/libs/engine/src/validation/ConnectionGroupValidator.d.ts +0 -22
- package/src/libs/engine/src/validation/ConnectionGroupValidator.js +0 -56
- package/src/libs/engine/src/validation/TypeRegistry.d.ts +0 -179
- package/src/libs/engine/src/validation/TypeRegistry.js +0 -358
- package/src/libs/engine/src/validation/ValidationEngine.d.ts +0 -79
- package/src/libs/engine/src/validation/ValidationEngine.js +0 -1150
- package/src/libs/engine/src/validation/index.d.ts +0 -3
- package/src/libs/engine/src/validation/index.js +0 -8
- package/src/libs/renderer/src/a11y/diagram-outline.d.ts +0 -93
- package/src/libs/renderer/src/a11y/diagram-outline.js +0 -0
- package/src/libs/renderer/src/a11y/focus-containment.d.ts +0 -90
- package/src/libs/renderer/src/a11y/focus-containment.js +0 -173
- package/src/libs/renderer/src/a11y/graph-topology.d.ts +0 -70
- package/src/libs/renderer/src/a11y/graph-topology.js +0 -0
- package/src/libs/renderer/src/a11y/index.d.ts +0 -26
- package/src/libs/renderer/src/a11y/index.js +0 -30
- package/src/libs/renderer/src/a11y/live-region.d.ts +0 -83
- package/src/libs/renderer/src/a11y/live-region.js +0 -170
- package/src/libs/renderer/src/a11y/outline-view.d.ts +0 -62
- package/src/libs/renderer/src/a11y/outline-view.js +0 -158
- package/src/libs/renderer/src/a11y/reduced-motion.d.ts +0 -48
- package/src/libs/renderer/src/a11y/reduced-motion.js +0 -223
- package/src/libs/renderer/src/a11y/semantics.d.ts +0 -76
- package/src/libs/renderer/src/a11y/semantics.js +0 -229
- package/src/libs/renderer/src/canvas/canvas-context.d.ts +0 -167
- package/src/libs/renderer/src/canvas/canvas-context.js +0 -267
- package/src/libs/renderer/src/canvas/canvas-renderer.d.ts +0 -194
- package/src/libs/renderer/src/canvas/canvas-renderer.js +0 -600
- package/src/libs/renderer/src/canvas/dirty-region.d.ts +0 -56
- package/src/libs/renderer/src/canvas/dirty-region.js +0 -171
- package/src/libs/renderer/src/canvas/index.d.ts +0 -16
- package/src/libs/renderer/src/canvas/index.js +0 -79
- package/src/libs/renderer/src/canvas/path-geometry.d.ts +0 -112
- package/src/libs/renderer/src/canvas/path-geometry.js +0 -673
- package/src/libs/renderer/src/canvas/render-backend.d.ts +0 -133
- package/src/libs/renderer/src/canvas/render-backend.js +0 -339
- package/src/libs/renderer/src/canvas/style-resolution.d.ts +0 -101
- package/src/libs/renderer/src/canvas/style-resolution.js +0 -466
- package/src/libs/renderer/src/canvas/tier-policy.d.ts +0 -33
- package/src/libs/renderer/src/canvas/tier-policy.js +0 -89
- package/src/libs/renderer/src/canvas/vnode-painter.d.ts +0 -154
- package/src/libs/renderer/src/canvas/vnode-painter.js +0 -649
- package/src/libs/renderer/src/comments/comment-overlay.d.ts +0 -56
- package/src/libs/renderer/src/comments/comment-overlay.js +0 -127
- package/src/libs/renderer/src/comments/comment-panel.d.ts +0 -45
- package/src/libs/renderer/src/comments/comment-panel.js +0 -287
- package/src/libs/renderer/src/comments/comment-pins.d.ts +0 -34
- package/src/libs/renderer/src/comments/comment-pins.js +0 -227
- package/src/libs/renderer/src/comments/index.d.ts +0 -3
- package/src/libs/renderer/src/comments/index.js +0 -17
- package/src/libs/renderer/src/export/assets.d.ts +0 -96
- package/src/libs/renderer/src/export/assets.js +0 -350
- package/src/libs/renderer/src/export/batch.d.ts +0 -49
- package/src/libs/renderer/src/export/batch.js +0 -95
- package/src/libs/renderer/src/export/bounds.d.ts +0 -81
- package/src/libs/renderer/src/export/bounds.js +0 -367
- package/src/libs/renderer/src/export/capture-host.d.ts +0 -39
- package/src/libs/renderer/src/export/capture-host.js +0 -1259
- package/src/libs/renderer/src/export/custom-nodes.d.ts +0 -88
- package/src/libs/renderer/src/export/custom-nodes.js +0 -237
- package/src/libs/renderer/src/export/index.d.ts +0 -14
- package/src/libs/renderer/src/export/index.js +0 -30
- package/src/libs/renderer/src/export/node-raster.d.ts +0 -60
- package/src/libs/renderer/src/export/node-raster.js +0 -161
- package/src/libs/renderer/src/export/pagination.d.ts +0 -116
- package/src/libs/renderer/src/export/pagination.js +0 -245
- package/src/libs/renderer/src/export/pdf/flate.d.ts +0 -13
- package/src/libs/renderer/src/export/pdf/flate.js +0 -287
- package/src/libs/renderer/src/export/pdf/index.d.ts +0 -4
- package/src/libs/renderer/src/export/pdf/index.js +0 -15
- package/src/libs/renderer/src/export/pdf/pdf-export.d.ts +0 -64
- package/src/libs/renderer/src/export/pdf/pdf-export.js +0 -1076
- package/src/libs/renderer/src/export/pdf/pdf-path.d.ts +0 -17
- package/src/libs/renderer/src/export/pdf/pdf-path.js +0 -85
- package/src/libs/renderer/src/export/pdf/pdf-primitives.d.ts +0 -115
- package/src/libs/renderer/src/export/pdf/pdf-primitives.js +0 -338
- package/src/libs/renderer/src/export/pdf/png.d.ts +0 -25
- package/src/libs/renderer/src/export/pdf/png.js +0 -596
- package/src/libs/renderer/src/export/raster.d.ts +0 -42
- package/src/libs/renderer/src/export/raster.js +0 -126
- package/src/libs/renderer/src/export/round-trip.d.ts +0 -83
- package/src/libs/renderer/src/export/round-trip.js +0 -432
- package/src/libs/renderer/src/export/scope.d.ts +0 -16
- package/src/libs/renderer/src/export/scope.js +0 -69
- package/src/libs/renderer/src/export/style-flattener.d.ts +0 -23
- package/src/libs/renderer/src/export/style-flattener.js +0 -144
- package/src/libs/renderer/src/export/svg-export.d.ts +0 -123
- package/src/libs/renderer/src/export/svg-export.js +0 -178
- package/src/libs/renderer/src/export/vnode-serializer.d.ts +0 -75
- package/src/libs/renderer/src/export/vnode-serializer.js +0 -344
- package/src/libs/renderer/src/ext/capabilities.d.ts +0 -178
- package/src/libs/renderer/src/ext/capabilities.js +0 -22
- package/src/libs/renderer/src/ext/capability-factory.d.ts +0 -44
- package/src/libs/renderer/src/ext/capability-factory.js +0 -194
- package/src/libs/renderer/src/ext/components/attach.d.ts +0 -66
- package/src/libs/renderer/src/ext/components/attach.js +0 -112
- package/src/libs/renderer/src/ext/components/background.d.ts +0 -84
- package/src/libs/renderer/src/ext/components/background.js +0 -202
- package/src/libs/renderer/src/ext/components/controls.d.ts +0 -49
- package/src/libs/renderer/src/ext/components/controls.js +0 -144
- package/src/libs/renderer/src/ext/components/minimap.d.ts +0 -78
- package/src/libs/renderer/src/ext/components/minimap.js +0 -326
- package/src/libs/renderer/src/ext/diagram-registry.d.ts +0 -109
- package/src/libs/renderer/src/ext/diagram-registry.js +0 -303
- package/src/libs/renderer/src/ext/disposable.d.ts +0 -51
- package/src/libs/renderer/src/ext/disposable.js +0 -104
- package/src/libs/renderer/src/ext/extension-host.d.ts +0 -144
- package/src/libs/renderer/src/ext/extension-host.js +0 -272
- package/src/libs/renderer/src/ext/index.d.ts +0 -62
- package/src/libs/renderer/src/ext/index.js +0 -91
- package/src/libs/renderer/src/ext/link-pipeline.d.ts +0 -195
- package/src/libs/renderer/src/ext/link-pipeline.js +0 -431
- package/src/libs/renderer/src/ext/manifest.d.ts +0 -73
- package/src/libs/renderer/src/ext/manifest.js +0 -149
- package/src/libs/renderer/src/ext/node-component.d.ts +0 -114
- package/src/libs/renderer/src/ext/node-component.js +0 -290
- package/src/libs/renderer/src/ext/plugins-loader.d.ts +0 -1
- package/src/libs/renderer/src/ext/plugins-loader.js +0 -18
- package/src/libs/renderer/src/ext/portal.d.ts +0 -129
- package/src/libs/renderer/src/ext/portal.js +0 -267
- package/src/libs/renderer/src/ext/public-api.d.ts +0 -101
- package/src/libs/renderer/src/ext/public-api.js +0 -201
- package/src/libs/renderer/src/ext/registry-scope.d.ts +0 -93
- package/src/libs/renderer/src/ext/registry-scope.js +0 -142
- package/src/libs/renderer/src/ext/tools.d.ts +0 -164
- package/src/libs/renderer/src/ext/tools.js +0 -170
- package/src/libs/renderer/src/index.d.ts +0 -34
- package/src/libs/renderer/src/index.js +0 -108
- package/src/libs/renderer/src/instance/create-diagram.d.ts +0 -385
- package/src/libs/renderer/src/instance/create-diagram.js +0 -1150
- package/src/libs/renderer/src/instance/diagram-instance.d.ts +0 -48
- package/src/libs/renderer/src/instance/diagram-instance.js +0 -51
- package/src/libs/renderer/src/instance/dom-event-binder.d.ts +0 -394
- package/src/libs/renderer/src/instance/dom-event-binder.js +0 -2104
- package/src/libs/renderer/src/instance/index.d.ts +0 -5
- package/src/libs/renderer/src/instance/index.js +0 -13
- package/src/libs/renderer/src/instance/layers.d.ts +0 -31
- package/src/libs/renderer/src/instance/layers.js +0 -43
- package/src/libs/renderer/src/instance/model-input.d.ts +0 -229
- package/src/libs/renderer/src/instance/model-input.js +0 -325
- package/src/libs/renderer/src/instance/render-scheduler.d.ts +0 -79
- package/src/libs/renderer/src/instance/render-scheduler.js +0 -96
- package/src/libs/renderer/src/instance/wheel-scroll-yield.d.ts +0 -38
- package/src/libs/renderer/src/instance/wheel-scroll-yield.js +0 -118
- package/src/libs/renderer/src/interaction/ControlPointEditor.d.ts +0 -160
- package/src/libs/renderer/src/interaction/ControlPointEditor.js +0 -360
- package/src/libs/renderer/src/interaction/WaypointEditor.d.ts +0 -133
- package/src/libs/renderer/src/interaction/WaypointEditor.js +0 -263
- package/src/libs/renderer/src/interaction/highlighters.d.ts +0 -88
- package/src/libs/renderer/src/interaction/highlighters.js +0 -212
- package/src/libs/renderer/src/interaction/in-place-editor.d.ts +0 -63
- package/src/libs/renderer/src/interaction/in-place-editor.js +0 -141
- package/src/libs/renderer/src/interaction/index.d.ts +0 -11
- package/src/libs/renderer/src/interaction/index.js +0 -29
- package/src/libs/renderer/src/interaction/ink-overlay.d.ts +0 -53
- package/src/libs/renderer/src/interaction/ink-overlay.js +0 -154
- package/src/libs/renderer/src/interaction/interaction-controller.d.ts +0 -555
- package/src/libs/renderer/src/interaction/interaction-controller.js +0 -1733
- package/src/libs/renderer/src/interaction/keyboard-navigation.d.ts +0 -223
- package/src/libs/renderer/src/interaction/keyboard-navigation.js +0 -885
- package/src/libs/renderer/src/interaction/selection-tools.d.ts +0 -343
- package/src/libs/renderer/src/interaction/selection-tools.js +0 -918
- package/src/libs/renderer/src/interaction/snapping.d.ts +0 -210
- package/src/libs/renderer/src/interaction/snapping.js +0 -569
- package/src/libs/renderer/src/interaction/touch-gestures.d.ts +0 -160
- package/src/libs/renderer/src/interaction/touch-gestures.js +0 -549
- package/src/libs/renderer/src/interaction/whiteboard-tools.d.ts +0 -171
- package/src/libs/renderer/src/interaction/whiteboard-tools.js +0 -476
- package/src/libs/renderer/src/lazy/host-culling.d.ts +0 -116
- package/src/libs/renderer/src/lazy/host-culling.js +0 -135
- package/src/libs/renderer/src/lazy/index.d.ts +0 -7
- package/src/libs/renderer/src/lazy/index.js +0 -28
- package/src/libs/renderer/src/lazy/progressive-mounter.d.ts +0 -80
- package/src/libs/renderer/src/lazy/progressive-mounter.js +0 -264
- package/src/libs/renderer/src/lazy/types.d.ts +0 -43
- package/src/libs/renderer/src/lazy/types.js +0 -14
- package/src/libs/renderer/src/lazy/view-lifecycle.d.ts +0 -97
- package/src/libs/renderer/src/lazy/view-lifecycle.js +0 -221
- package/src/libs/renderer/src/perf/index.d.ts +0 -2
- package/src/libs/renderer/src/perf/index.js +0 -7
- package/src/libs/renderer/src/perf/perf-hud.d.ts +0 -46
- package/src/libs/renderer/src/perf/perf-hud.js +0 -105
- package/src/libs/renderer/src/perf/quality-governor.d.ts +0 -77
- package/src/libs/renderer/src/perf/quality-governor.js +0 -154
- package/src/libs/renderer/src/platform/index.d.ts +0 -1
- package/src/libs/renderer/src/platform/index.js +0 -5
- package/src/libs/renderer/src/platform/platform.d.ts +0 -34
- package/src/libs/renderer/src/platform/platform.js +0 -64
- package/src/libs/renderer/src/presence/bind-presence.d.ts +0 -51
- package/src/libs/renderer/src/presence/bind-presence.js +0 -144
- package/src/libs/renderer/src/presence/index.d.ts +0 -4
- package/src/libs/renderer/src/presence/index.js +0 -18
- package/src/libs/renderer/src/presence/presence-overlay.d.ts +0 -121
- package/src/libs/renderer/src/presence/presence-overlay.js +0 -465
- package/src/libs/renderer/src/presentation/index.d.ts +0 -3
- package/src/libs/renderer/src/presentation/index.js +0 -14
- package/src/libs/renderer/src/presentation/presentation.d.ts +0 -94
- package/src/libs/renderer/src/presentation/presentation.js +0 -158
- package/src/libs/renderer/src/presentation/viewport-channel.d.ts +0 -78
- package/src/libs/renderer/src/presentation/viewport-channel.js +0 -86
- package/src/libs/renderer/src/services/animation-lifecycle.d.ts +0 -153
- package/src/libs/renderer/src/services/animation-lifecycle.js +0 -326
- package/src/libs/renderer/src/services/animation-performance.service.d.ts +0 -191
- package/src/libs/renderer/src/services/animation-performance.service.js +0 -371
- package/src/libs/renderer/src/services/animation-sequencer.d.ts +0 -226
- package/src/libs/renderer/src/services/animation-sequencer.js +0 -379
- package/src/libs/renderer/src/services/animation.service.d.ts +0 -182
- package/src/libs/renderer/src/services/animation.service.js +0 -858
- package/src/libs/renderer/src/services/custom-animation-registry.d.ts +0 -182
- package/src/libs/renderer/src/services/custom-animation-registry.js +0 -361
- package/src/libs/renderer/src/ssr/index.d.ts +0 -1
- package/src/libs/renderer/src/ssr/index.js +0 -6
- package/src/libs/renderer/src/ssr/render-to-static.d.ts +0 -91
- package/src/libs/renderer/src/ssr/render-to-static.js +0 -81
- package/src/libs/renderer/src/svg/ArrowRenderer.d.ts +0 -159
- package/src/libs/renderer/src/svg/ArrowRenderer.js +0 -723
- package/src/libs/renderer/src/svg/JumpPointDetector.d.ts +0 -79
- package/src/libs/renderer/src/svg/JumpPointDetector.js +0 -176
- package/src/libs/renderer/src/svg/JumpPointRenderer.d.ts +0 -59
- package/src/libs/renderer/src/svg/JumpPointRenderer.js +0 -309
- package/src/libs/renderer/src/svg/LabelRenderer.d.ts +0 -76
- package/src/libs/renderer/src/svg/LabelRenderer.js +0 -273
- package/src/libs/renderer/src/svg/auto-size.d.ts +0 -76
- package/src/libs/renderer/src/svg/auto-size.js +0 -142
- package/src/libs/renderer/src/svg/channel-nudging.d.ts +0 -34
- package/src/libs/renderer/src/svg/channel-nudging.js +0 -226
- package/src/libs/renderer/src/svg/edge-optimizer.d.ts +0 -228
- package/src/libs/renderer/src/svg/edge-optimizer.js +0 -606
- package/src/libs/renderer/src/svg/edge-templates.d.ts +0 -152
- package/src/libs/renderer/src/svg/edge-templates.js +0 -233
- package/src/libs/renderer/src/svg/html-node.d.ts +0 -50
- package/src/libs/renderer/src/svg/html-node.js +0 -214
- package/src/libs/renderer/src/svg/index.d.ts +0 -25
- package/src/libs/renderer/src/svg/index.js +0 -32
- package/src/libs/renderer/src/svg/link-fanout.d.ts +0 -127
- package/src/libs/renderer/src/svg/link-fanout.js +0 -333
- package/src/libs/renderer/src/svg/link-hit-test.d.ts +0 -142
- package/src/libs/renderer/src/svg/link-hit-test.js +0 -182
- package/src/libs/renderer/src/svg/motion-tracker.d.ts +0 -18
- package/src/libs/renderer/src/svg/motion-tracker.js +0 -71
- package/src/libs/renderer/src/svg/node-sizing.d.ts +0 -51
- package/src/libs/renderer/src/svg/node-sizing.js +0 -65
- package/src/libs/renderer/src/svg/node-toolbar.d.ts +0 -30
- package/src/libs/renderer/src/svg/node-toolbar.js +0 -45
- package/src/libs/renderer/src/svg/notation-shapes.d.ts +0 -2
- package/src/libs/renderer/src/svg/notation-shapes.js +0 -126
- package/src/libs/renderer/src/svg/paint-servers.d.ts +0 -49
- package/src/libs/renderer/src/svg/paint-servers.js +0 -225
- package/src/libs/renderer/src/svg/panel.d.ts +0 -115
- package/src/libs/renderer/src/svg/panel.js +0 -353
- package/src/libs/renderer/src/svg/path-outline.d.ts +0 -35
- package/src/libs/renderer/src/svg/path-outline.js +0 -134
- package/src/libs/renderer/src/svg/port-glyph.d.ts +0 -27
- package/src/libs/renderer/src/svg/port-glyph.js +0 -97
- package/src/libs/renderer/src/svg/port-label.d.ts +0 -74
- package/src/libs/renderer/src/svg/port-label.js +0 -201
- package/src/libs/renderer/src/svg/port-layout.d.ts +0 -50
- package/src/libs/renderer/src/svg/port-layout.js +0 -212
- package/src/libs/renderer/src/svg/port-positioning.d.ts +0 -33
- package/src/libs/renderer/src/svg/port-positioning.js +0 -101
- package/src/libs/renderer/src/svg/port-spots.d.ts +0 -69
- package/src/libs/renderer/src/svg/port-spots.js +0 -154
- package/src/libs/renderer/src/svg/route-memo.d.ts +0 -63
- package/src/libs/renderer/src/svg/route-memo.js +0 -206
- package/src/libs/renderer/src/svg/route-solver-bridge.d.ts +0 -48
- package/src/libs/renderer/src/svg/route-solver-bridge.js +0 -151
- package/src/libs/renderer/src/svg/shape-registry.d.ts +0 -189
- package/src/libs/renderer/src/svg/shape-registry.js +0 -1104
- package/src/libs/renderer/src/svg/stroke-layer.d.ts +0 -36
- package/src/libs/renderer/src/svg/stroke-layer.js +0 -183
- package/src/libs/renderer/src/svg/svg-renderer.d.ts +0 -1737
- package/src/libs/renderer/src/svg/svg-renderer.js +0 -7772
- package/src/libs/renderer/src/svg/text-block.d.ts +0 -54
- package/src/libs/renderer/src/svg/text-block.js +0 -171
- package/src/libs/renderer/src/themes/color-mode.d.ts +0 -81
- package/src/libs/renderer/src/themes/color-mode.js +0 -158
- package/src/libs/renderer/src/themes/contrast.d.ts +0 -67
- package/src/libs/renderer/src/themes/contrast.js +0 -215
- package/src/libs/renderer/src/themes/default-dark-theme.d.ts +0 -6
- package/src/libs/renderer/src/themes/default-dark-theme.js +0 -126
- package/src/libs/renderer/src/themes/default-light-theme.d.ts +0 -6
- package/src/libs/renderer/src/themes/default-light-theme.js +0 -168
- package/src/libs/renderer/src/themes/default-theme-set.d.ts +0 -10
- package/src/libs/renderer/src/themes/default-theme-set.js +0 -25
- package/src/libs/renderer/src/themes/high-contrast-theme.d.ts +0 -5
- package/src/libs/renderer/src/themes/high-contrast-theme.js +0 -170
- package/src/libs/renderer/src/themes/index.d.ts +0 -22
- package/src/libs/renderer/src/themes/index.js +0 -93
- package/src/libs/renderer/src/themes/style-cascade.d.ts +0 -23
- package/src/libs/renderer/src/themes/style-cascade.js +0 -194
- package/src/libs/renderer/src/themes/style-registry.d.ts +0 -40
- package/src/libs/renderer/src/themes/style-registry.js +0 -129
- package/src/libs/renderer/src/themes/theme-a11y.d.ts +0 -65
- package/src/libs/renderer/src/themes/theme-a11y.js +0 -256
- package/src/libs/renderer/src/themes/theme-css.d.ts +0 -30
- package/src/libs/renderer/src/themes/theme-css.js +0 -304
- package/src/libs/renderer/src/themes/theme-ref.d.ts +0 -63
- package/src/libs/renderer/src/themes/theme-ref.js +0 -206
- package/src/libs/renderer/src/themes/theme-vars.d.ts +0 -49
- package/src/libs/renderer/src/themes/theme-vars.js +0 -112
- package/src/libs/renderer/src/themes/token-bridge.d.ts +0 -62
- package/src/libs/renderer/src/themes/token-bridge.js +0 -354
- package/src/libs/renderer/src/types/geometry.types.d.ts +0 -10
- package/src/libs/renderer/src/types/geometry.types.js +0 -3
- package/src/libs/renderer/src/types/index.d.ts +0 -5
- package/src/libs/renderer/src/types/index.js +0 -14
- package/src/libs/renderer/src/types/property-schema/conditions.d.ts +0 -96
- package/src/libs/renderer/src/types/property-schema/conditions.js +0 -8
- package/src/libs/renderer/src/types/property-schema/editor-types.d.ts +0 -310
- package/src/libs/renderer/src/types/property-schema/editor-types.js +0 -8
- package/src/libs/renderer/src/types/property-schema/groups.d.ts +0 -58
- package/src/libs/renderer/src/types/property-schema/groups.js +0 -8
- package/src/libs/renderer/src/types/property-schema/index.d.ts +0 -101
- package/src/libs/renderer/src/types/property-schema/index.js +0 -98
- package/src/libs/renderer/src/types/property-schema/property-definition.d.ts +0 -117
- package/src/libs/renderer/src/types/property-schema/property-definition.js +0 -8
- package/src/libs/renderer/src/types/property-schema/schema.d.ts +0 -108
- package/src/libs/renderer/src/types/property-schema/schema.js +0 -8
- package/src/libs/renderer/src/types/property-schema/validation.d.ts +0 -181
- package/src/libs/renderer/src/types/property-schema/validation.js +0 -8
- package/src/libs/renderer/src/types/renderer.interface.d.ts +0 -623
- package/src/libs/renderer/src/types/renderer.interface.js +0 -3
- package/src/libs/renderer/src/types/theme.types.d.ts +0 -305
- package/src/libs/renderer/src/types/theme.types.js +0 -3
- package/src/libs/renderer/src/types/vnode.types.d.ts +0 -139
- package/src/libs/renderer/src/types/vnode.types.js +0 -3
- package/src/libs/renderer/src/utils/animation-presets.d.ts +0 -310
- package/src/libs/renderer/src/utils/animation-presets.js +0 -406
- package/src/libs/renderer/src/utils/animation-priority.d.ts +0 -118
- package/src/libs/renderer/src/utils/animation-priority.js +0 -258
- package/src/libs/renderer/src/utils/animation-utils.d.ts +0 -159
- package/src/libs/renderer/src/utils/animation-utils.js +0 -323
- package/src/libs/renderer/src/utils/lru-cache.d.ts +0 -34
- package/src/libs/renderer/src/utils/lru-cache.js +0 -72
- package/src/libs/renderer/src/viewport/index.d.ts +0 -1
- package/src/libs/renderer/src/viewport/index.js +0 -6
- package/src/libs/renderer/src/viewport/viewport-controller.d.ts +0 -198
- package/src/libs/renderer/src/viewport/viewport-controller.js +0 -315
- package/src/libs/renderer/src/vnode/container-id-generator.d.ts +0 -94
- package/src/libs/renderer/src/vnode/container-id-generator.js +0 -110
- package/src/libs/renderer/src/vnode/foreign-object.d.ts +0 -157
- package/src/libs/renderer/src/vnode/foreign-object.js +0 -167
- package/src/libs/renderer/src/vnode/index.d.ts +0 -56
- package/src/libs/renderer/src/vnode/index.js +0 -78
- package/src/libs/renderer/src/vnode/patch.d.ts +0 -189
- package/src/libs/renderer/src/vnode/patch.js +0 -564
|
@@ -1,1259 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// THE DOM BOUNDARY of custom-node export — the one file here that needs a browser.
|
|
3
|
-
//
|
|
4
|
-
// THE SPLIT, AND WHY
|
|
5
|
-
// ------------------
|
|
6
|
-
// `exportSvg` is pure, DOM-free and deterministic, and that is a guarantee worth more
|
|
7
|
-
// than the feature this file enables. So the DOM is not allowed to leak into it. The
|
|
8
|
-
// division is:
|
|
9
|
-
//
|
|
10
|
-
// capture-host.ts (HERE) reads live elements — getBoundingClientRect,
|
|
11
|
-
// getComputedStyle — and emits PLAIN DATA.
|
|
12
|
-
// custom-nodes.ts (pure) places that data into the export tree.
|
|
13
|
-
// svg-export.ts (pure) still takes only data; still runs in bare Node.
|
|
14
|
-
//
|
|
15
|
-
// Nothing in this module touches ambient `document` or `window`: every entry point
|
|
16
|
-
// takes the element it works on and reaches the window through `ownerDocument`. So
|
|
17
|
-
// importing it from an SSR bundle is harmless — it simply is never called there, and
|
|
18
|
-
// `exportSvg` keeps working with no capture at all.
|
|
19
|
-
//
|
|
20
|
-
// WHY TRANSCRIBE RATHER THAN SCREENSHOT
|
|
21
|
-
// -------------------------------------
|
|
22
|
-
// The tempting shortcut is `foreignObject` for everything: paste the host's HTML in
|
|
23
|
-
// and let the browser deal with it. But a `foreignObject` is dead weight in a PDF and
|
|
24
|
-
// in every standalone rasterizer — the export would look right in exactly one viewer
|
|
25
|
-
// and be blank in the places people actually send files.
|
|
26
|
-
//
|
|
27
|
-
// So this walks the host and transcribes what it finds into SVG primitives:
|
|
28
|
-
//
|
|
29
|
-
// inline <svg> LIFTED, element for element, with `var(--…)` resolved through
|
|
30
|
-
// getComputedStyle. A donut's arcs stay arcs. This is the common
|
|
31
|
-
// case for the dashboard kit and it is exact, not approximated.
|
|
32
|
-
// text emitted as <text> at its laid-out position, with the resolved
|
|
33
|
-
// font and fill. This is what makes a KPI's headline number — plain
|
|
34
|
-
// HTML, no SVG anywhere near it — survive the trip.
|
|
35
|
-
// boxes background fills and borders become <rect>/<line>, which is what
|
|
36
|
-
// draws widget cards and table rules.
|
|
37
|
-
//
|
|
38
|
-
// Beyond those three it now also transcribes the CSS paint a widget card is actually
|
|
39
|
-
// built from, REUSING the renderer's own paint-server model (`svg/paint-servers.ts`) so
|
|
40
|
-
// there is exactly one set of gradient/shadow VNode builders in the codebase:
|
|
41
|
-
//
|
|
42
|
-
// background gradient linear-/radial-gradient() → a `<linearGradient>` /
|
|
43
|
-
// `<radialGradient>` def (userSpaceOnUse, real pixel endpoints so
|
|
44
|
-
// the CSS angle is not distorted on a non-square box) that the box
|
|
45
|
-
// rect fills with via `url(#…)`.
|
|
46
|
-
// box-shadow → the `feDropShadow` filter def, applied to the box. Outer only;
|
|
47
|
-
// `inset` is skipped and reported.
|
|
48
|
-
// images <img> / background-image:url() → an `<image>`, inlined to a
|
|
49
|
-
// data: URI when the canvas is readable.
|
|
50
|
-
//
|
|
51
|
-
// The SAME VNode tree then feeds the SVG serializer, the PDF painter and `vnodeBounds`,
|
|
52
|
-
// all of which already understand these element types. The honest per-format story: SVG
|
|
53
|
-
// and resvg render them faithfully; PDF flattens a gradient to a solid stop (with a
|
|
54
|
-
// warning), omits the shadow blur (the box still draws), and CANNOT draw an image at all
|
|
55
|
-
// (no image XObject) — so an image is reported as a PDF fidelity risk here rather than
|
|
56
|
-
// vanishing silently.
|
|
57
|
-
//
|
|
58
|
-
// Two more things it transcribes:
|
|
59
|
-
//
|
|
60
|
-
// pseudo-elements `::before` / `::after` boxes, read via getComputedStyle(el, '::…').
|
|
61
|
-
// A pseudo has NO element to getBoundingClientRect(), so its box is
|
|
62
|
-
// DERIVED: explicit width/height + position offsets for an absolute
|
|
63
|
-
// pseudo; the origin's content start (border + padding in) for a
|
|
64
|
-
// static one. Quoted `content` strings go through the SAME text
|
|
65
|
-
// emission as real text nodes (so text-transform etc. hold);
|
|
66
|
-
// attr()/counter()/url() content is skipped and reported; a painted
|
|
67
|
-
// pseudo whose box cannot be derived is reported, never guessed.
|
|
68
|
-
// clipping `overflow: hidden|clip|auto|scroll` wraps the element's
|
|
69
|
-
// DESCENDANTS in a `<g clip-path="url(#…)">` whose `<clipPath>` is
|
|
70
|
-
// the (rounded) border box, so a chart or image inside a rounded
|
|
71
|
-
// card cannot bleed past the corners; CSS `clip-path` basic shapes
|
|
72
|
-
// (inset/circle/ellipse/polygon) wrap the element ITSELF the same
|
|
73
|
-
// way; path()/url() clip-paths are skipped and reported (content
|
|
74
|
-
// exports unclipped, not wrong). Nested clips compose as nested
|
|
75
|
-
// groups. SVG/resvg honour clipPath faithfully; the PDF painter does
|
|
76
|
-
// not yet apply clips, which is reported as a fidelity risk.
|
|
77
|
-
// Transforms remain out of scope and, when they carry paint we cannot see, degrade to
|
|
78
|
-
// the reported fidelity fallbacks.
|
|
79
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
80
|
-
exports.IMAGE_NOT_INLINED_WARNING = exports.IMAGE_PDF_WARNING = void 0;
|
|
81
|
-
exports.captureCustomNodeHost = captureCustomNodeHost;
|
|
82
|
-
exports.stripResolvedImageWarnings = stripResolvedImageWarnings;
|
|
83
|
-
const custom_nodes_1 = require("./custom-nodes");
|
|
84
|
-
const paint_servers_1 = require("../svg/paint-servers");
|
|
85
|
-
const ELEMENT_NODE = 1;
|
|
86
|
-
const TEXT_NODE = 3;
|
|
87
|
-
/** Presentation properties lifted off computed style when transcribing inline SVG. */
|
|
88
|
-
const SVG_PAINT_PROPS = [
|
|
89
|
-
['fill', 'fill'],
|
|
90
|
-
['fill-opacity', 'fillOpacity'],
|
|
91
|
-
['stroke', 'stroke'],
|
|
92
|
-
['stroke-width', 'strokeWidth'],
|
|
93
|
-
['stroke-opacity', 'strokeOpacity'],
|
|
94
|
-
['stroke-linecap', 'strokeLinecap'],
|
|
95
|
-
['stroke-linejoin', 'strokeLinejoin'],
|
|
96
|
-
['stroke-dasharray', 'strokeDasharray'],
|
|
97
|
-
['opacity', 'opacity'],
|
|
98
|
-
];
|
|
99
|
-
/**
|
|
100
|
-
* Text properties — applied ONLY to elements that can render glyphs. `getComputedStyle`
|
|
101
|
-
* happily reports a font for every `<path>` and `<line>` in the document, and writing
|
|
102
|
-
* those out would add a `font-family` to several hundred marks that can never draw a
|
|
103
|
-
* character. That is pure file weight.
|
|
104
|
-
*/
|
|
105
|
-
const SVG_TEXT_PROPS = [
|
|
106
|
-
['font-family', 'fontFamily'],
|
|
107
|
-
['font-size', 'fontSize'],
|
|
108
|
-
['font-weight', 'fontWeight'],
|
|
109
|
-
['letter-spacing', 'letterSpacing'],
|
|
110
|
-
['text-anchor', 'textAnchor'],
|
|
111
|
-
];
|
|
112
|
-
const TEXT_ELEMENTS = new Set(['text', 'tspan', 'textPath']);
|
|
113
|
-
/** Attributes that must NOT be copied verbatim — they are re-derived or meaningless here. */
|
|
114
|
-
const SKIP_ATTRS = new Set(['class', 'style', 'xmlns']);
|
|
115
|
-
/** Geometry-free SVG elements we never need to emit. */
|
|
116
|
-
const SVG_IGNORED = new Set(['title', 'desc', 'metadata', 'script', 'style']);
|
|
117
|
-
/**
|
|
118
|
-
* Capture ONE custom node's host into plain data.
|
|
119
|
-
*
|
|
120
|
-
* Never throws: an export must not be taken down by a host in a state we did not
|
|
121
|
-
* anticipate. A failed capture degrades to `fidelity: 'empty'`, which the pure layer
|
|
122
|
-
* turns into a marked box and a warning — the whole point being that a blank is never
|
|
123
|
-
* silent.
|
|
124
|
-
*/
|
|
125
|
-
function captureCustomNodeHost(id, rect, host, options = {}) {
|
|
126
|
-
var _a, _b, _c, _d;
|
|
127
|
-
try {
|
|
128
|
-
const el = host;
|
|
129
|
-
const win = (_a = el === null || el === void 0 ? void 0 : el.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;
|
|
130
|
-
if (!el || !win || typeof win.getComputedStyle !== 'function') {
|
|
131
|
-
return { id, rect, fidelity: 'empty' };
|
|
132
|
-
}
|
|
133
|
-
const hostRect = el.getBoundingClientRect();
|
|
134
|
-
// The html layer carries the camera as a CSS transform, so client rects come back
|
|
135
|
-
// multiplied by the zoom. `offsetWidth` is layout space and is not, so their ratio
|
|
136
|
-
// IS the zoom — no need to be told it.
|
|
137
|
-
const inferred = hostRect.width > 0 && host.offsetWidth
|
|
138
|
-
? hostRect.width / host.offsetWidth
|
|
139
|
-
: 1;
|
|
140
|
-
const scale = options.scale && options.scale > 0 ? options.scale : inferred > 0 ? inferred : 1;
|
|
141
|
-
const ctx = {
|
|
142
|
-
win,
|
|
143
|
-
originX: hostRect.left,
|
|
144
|
-
originY: hostRect.top,
|
|
145
|
-
scale,
|
|
146
|
-
out: [],
|
|
147
|
-
budget: (_b = options.maxElements) !== null && _b !== void 0 ? _b : 4000,
|
|
148
|
-
sawUncapturable: false,
|
|
149
|
-
warnings: [],
|
|
150
|
-
emittedDefs: new Set(),
|
|
151
|
-
// jsdom does not implement getComputedStyle(el, '::before') — it LOGS a
|
|
152
|
-
// not-implemented error (it does not throw) and returns the element's own style,
|
|
153
|
-
// once per call. Probing it per element would print hundreds of identical lines
|
|
154
|
-
// into every jsdom-hosted test run for a fact known up front: jsdom announces
|
|
155
|
-
// itself in the UA. Real browsers are untouched.
|
|
156
|
-
pseudoUnsupported: /jsdom/i.test((_d = (_c = win.navigator) === null || _c === void 0 ? void 0 : _c.userAgent) !== null && _d !== void 0 ? _d : ''),
|
|
157
|
-
};
|
|
158
|
-
walk(el, ctx, ctx.out);
|
|
159
|
-
if (ctx.out.length === 0)
|
|
160
|
-
return { id, rect, fidelity: 'empty' };
|
|
161
|
-
const warning = ctx.warnings.length ? dedupe(ctx.warnings).join(' ') : undefined;
|
|
162
|
-
return warning
|
|
163
|
-
? { id, rect, fidelity: 'vector', content: ctx.out, warning }
|
|
164
|
-
: { id, rect, fidelity: 'vector', content: ctx.out };
|
|
165
|
-
}
|
|
166
|
-
catch (_e) {
|
|
167
|
-
return { id, rect, fidelity: 'empty' };
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
/** Collapse repeated caveats — one gradient warning for a board of twelve is enough. */
|
|
171
|
-
function dedupe(values) {
|
|
172
|
-
return [...new Set(values)];
|
|
173
|
-
}
|
|
174
|
-
/** Client-space rect → host-local layout rect. */
|
|
175
|
-
function localRect(ctx, r) {
|
|
176
|
-
return {
|
|
177
|
-
x: (r.left - ctx.originX) / ctx.scale,
|
|
178
|
-
y: (r.top - ctx.originY) / ctx.scale,
|
|
179
|
-
width: r.width / ctx.scale,
|
|
180
|
-
height: r.height / ctx.scale,
|
|
181
|
-
};
|
|
182
|
-
}
|
|
183
|
-
function isTransparent(color) {
|
|
184
|
-
if (!color)
|
|
185
|
-
return true;
|
|
186
|
-
const c = color.trim().toLowerCase();
|
|
187
|
-
if (c === 'transparent' || c === 'none')
|
|
188
|
-
return true;
|
|
189
|
-
// rgba(…, 0) — a zero alpha paints nothing.
|
|
190
|
-
const m = /^rgba?\(([^)]+)\)$/.exec(c);
|
|
191
|
-
if (m) {
|
|
192
|
-
const parts = m[1].split(',').map(s => parseFloat(s.trim()));
|
|
193
|
-
if (parts.length === 4 && !(parts[3] > 0))
|
|
194
|
-
return true;
|
|
195
|
-
}
|
|
196
|
-
return false;
|
|
197
|
-
}
|
|
198
|
-
const px = (value) => {
|
|
199
|
-
const v = parseFloat(value);
|
|
200
|
-
return Number.isFinite(v) ? v : 0;
|
|
201
|
-
};
|
|
202
|
-
function walk(el, ctx, sink) {
|
|
203
|
-
var _a, _b, _c, _d, _e;
|
|
204
|
-
if (ctx.budget-- <= 0)
|
|
205
|
-
return;
|
|
206
|
-
const style = ctx.win.getComputedStyle(el);
|
|
207
|
-
if (style['display'] === 'none' || style['visibility'] === 'hidden')
|
|
208
|
-
return;
|
|
209
|
-
// Fully transparent chrome — the kit's hover-revealed resize handle is exactly this.
|
|
210
|
-
// It is not on screen, so it must not be in the file.
|
|
211
|
-
if (parseFloat((_a = style['opacity']) !== null && _a !== void 0 ? _a : '1') === 0)
|
|
212
|
-
return;
|
|
213
|
-
if (el.localName === 'svg' && el.namespaceURI !== 'http://www.w3.org/1999/xhtml') {
|
|
214
|
-
liftSvg(el, ctx, sink);
|
|
215
|
-
return; // lifted whole — never descend, the transcription owns the subtree
|
|
216
|
-
}
|
|
217
|
-
const rect = localRect(ctx, el.getBoundingClientRect());
|
|
218
|
-
const hasBox = rect.width > 0 && rect.height > 0;
|
|
219
|
-
// Clipping. CSS `clip-path` clips the element ITSELF (own background included);
|
|
220
|
-
// `overflow` clips only its DESCENDANTS. Each becomes a detached sink that is
|
|
221
|
-
// wrapped in a `<g clip-path="url(#…)">` at the end — IF anything painted into it,
|
|
222
|
-
// so an empty clip leaves neither a group nor a def behind. Nested clips compose
|
|
223
|
-
// naturally: an inner clipped element builds its own group inside the outer one.
|
|
224
|
-
const selfClip = hasBox ? clipPathShapeFor((_c = (_b = style['clip-path']) !== null && _b !== void 0 ? _b : style['clipPath']) !== null && _c !== void 0 ? _c : '', rect, ctx) : null;
|
|
225
|
-
const overflowClip = hasBox ? overflowClipFor(style, rect) : null;
|
|
226
|
-
const ownSink = selfClip ? [] : sink;
|
|
227
|
-
const childSink = overflowClip ? [] : ownSink;
|
|
228
|
-
if (hasBox) {
|
|
229
|
-
emitBox(style, rect, ctx, ownSink);
|
|
230
|
-
// An <img> paints its bitmap; that is its whole content and it has no children.
|
|
231
|
-
if (el.localName === 'img')
|
|
232
|
-
emitImage(el, rect, ctx, el.getAttribute('src'), ownSink);
|
|
233
|
-
}
|
|
234
|
-
// Does the origin have flow content of its own? A static ::after flows AFTER it,
|
|
235
|
-
// at a position this transcriber cannot measure — that case warns instead of guessing.
|
|
236
|
-
let hasFlowContent = false;
|
|
237
|
-
for (let i = 0; i < el.childNodes.length; i++) {
|
|
238
|
-
const child = el.childNodes[i];
|
|
239
|
-
if (child.nodeType === ELEMENT_NODE ||
|
|
240
|
-
(child.nodeType === TEXT_NODE && ((_d = child.nodeValue) !== null && _d !== void 0 ? _d : '').trim() !== '')) {
|
|
241
|
-
hasFlowContent = true;
|
|
242
|
-
break;
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
const beforeExists = hasBox ? emitPseudo(el, style, rect, '::before', ctx, childSink, false) : false;
|
|
246
|
-
for (let i = 0; i < el.childNodes.length; i++) {
|
|
247
|
-
const child = el.childNodes[i];
|
|
248
|
-
if (child.nodeType === ELEMENT_NODE) {
|
|
249
|
-
walk(child, ctx, childSink);
|
|
250
|
-
}
|
|
251
|
-
else if (child.nodeType === TEXT_NODE && ((_e = child.nodeValue) !== null && _e !== void 0 ? _e : '').trim() !== '') {
|
|
252
|
-
emitText(el, child, style, ctx, childSink);
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
if (hasBox)
|
|
256
|
-
emitPseudo(el, style, rect, '::after', ctx, childSink, hasFlowContent || beforeExists);
|
|
257
|
-
if (overflowClip && childSink.length > 0) {
|
|
258
|
-
pushDef(ctx, overflowClip.id, () => overflowClip.def);
|
|
259
|
-
ownSink.push({
|
|
260
|
-
type: 'g',
|
|
261
|
-
props: { 'clip-path': `url(#${overflowClip.id})` },
|
|
262
|
-
children: childSink,
|
|
263
|
-
});
|
|
264
|
-
}
|
|
265
|
-
if (selfClip && ownSink.length > 0) {
|
|
266
|
-
pushDef(ctx, selfClip.id, () => selfClip.def);
|
|
267
|
-
sink.push({
|
|
268
|
-
type: 'g',
|
|
269
|
-
props: { 'clip-path': `url(#${selfClip.id})` },
|
|
270
|
-
children: ownSink,
|
|
271
|
-
});
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
/**
|
|
275
|
-
* Background fill and borders → `<rect>` / `<line>`, pushed into `sink` (the display
|
|
276
|
-
* list of whatever clip scope the element lives in). Also used for a pseudo-element's
|
|
277
|
-
* derived box — the style record is then the PSEUDO's computed style, which is what
|
|
278
|
-
* makes gradients/shadows/borders on a `::before` ride the exact same code.
|
|
279
|
-
*/
|
|
280
|
-
function emitBox(style, rect, ctx, sink) {
|
|
281
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
282
|
-
const bg = (_b = (_a = style['background-color']) !== null && _a !== void 0 ? _a : style['backgroundColor']) !== null && _b !== void 0 ? _b : '';
|
|
283
|
-
const radius = px((_d = (_c = style['border-top-left-radius']) !== null && _c !== void 0 ? _c : style['borderTopLeftRadius']) !== null && _d !== void 0 ? _d : '0');
|
|
284
|
-
// A CSS `background-image` is either a gradient (→ paint-server fill) or a bitmap
|
|
285
|
-
// (→ an <image> behind the content). Its computed value keeps the layers we authored.
|
|
286
|
-
const bgImage = (_f = (_e = style['background-image']) !== null && _e !== void 0 ? _e : style['backgroundImage']) !== null && _f !== void 0 ? _f : '';
|
|
287
|
-
const gradientFill = gradientFillFor(bgImage, rect, ctx);
|
|
288
|
-
// The box's fill: a gradient wins over a flat colour (CSS paints the image over the
|
|
289
|
-
// colour), and either one is what a drop shadow is cast from.
|
|
290
|
-
const fill = gradientFill !== null && gradientFill !== void 0 ? gradientFill : (isTransparent(bg) ? undefined : bg);
|
|
291
|
-
const shadowRef = shadowFilterFor((_h = (_g = style['box-shadow']) !== null && _g !== void 0 ? _g : style['boxShadow']) !== null && _h !== void 0 ? _h : '', ctx);
|
|
292
|
-
if (fill !== undefined) {
|
|
293
|
-
sink.push({
|
|
294
|
-
type: 'rect',
|
|
295
|
-
props: Object.assign(Object.assign(Object.assign({ x: round(rect.x), y: round(rect.y), width: round(rect.width), height: round(rect.height) }, (radius > 0 ? { rx: round(radius) } : {})), { fill }), (shadowRef ? { filter: shadowRef } : {})),
|
|
296
|
-
children: [],
|
|
297
|
-
});
|
|
298
|
-
}
|
|
299
|
-
else if (shadowRef) {
|
|
300
|
-
// A shadow with nothing to cast it from: feDropShadow blurs the source graphic's
|
|
301
|
-
// alpha, and a box with no fill has none. Report rather than emit a shadow of nothing.
|
|
302
|
-
ctx.warnings.push('a box-shadow on a widget with no painted background was omitted.');
|
|
303
|
-
}
|
|
304
|
-
// A bitmap background sits behind the element's content — emitted here, before the
|
|
305
|
-
// children the walk descends into next.
|
|
306
|
-
emitBackgroundImage(bgImage, rect, ctx, sink);
|
|
307
|
-
// Borders. A uniform box gets one stroked rect; anything else (a table's row rule is
|
|
308
|
-
// a bottom border only) gets a line per painted side, which is the only way those
|
|
309
|
-
// survive at all.
|
|
310
|
-
const sides = ['top', 'right', 'bottom', 'left'].map(side => {
|
|
311
|
-
var _a, _b, _c;
|
|
312
|
-
return ({
|
|
313
|
-
side,
|
|
314
|
-
width: px((_a = style[`border-${side}-width`]) !== null && _a !== void 0 ? _a : ''),
|
|
315
|
-
color: (_b = style[`border-${side}-color`]) !== null && _b !== void 0 ? _b : '',
|
|
316
|
-
style: (_c = style[`border-${side}-style`]) !== null && _c !== void 0 ? _c : 'none',
|
|
317
|
-
});
|
|
318
|
-
});
|
|
319
|
-
const painted = sides.filter(s => s.width > 0 && s.style !== 'none' && !isTransparent(s.color));
|
|
320
|
-
if (painted.length === 0)
|
|
321
|
-
return;
|
|
322
|
-
const uniform = painted.length === 4 &&
|
|
323
|
-
painted.every(s => s.width === painted[0].width && s.color === painted[0].color);
|
|
324
|
-
if (uniform) {
|
|
325
|
-
const w = painted[0].width;
|
|
326
|
-
// A CSS border sits INSIDE the box; an SVG stroke straddles the path. Inset by half.
|
|
327
|
-
sink.push({
|
|
328
|
-
type: 'rect',
|
|
329
|
-
props: Object.assign(Object.assign({ x: round(rect.x + w / 2), y: round(rect.y + w / 2), width: round(Math.max(0, rect.width - w)), height: round(Math.max(0, rect.height - w)) }, (radius > 0 ? { rx: round(Math.max(0, radius - w / 2)) } : {})), { fill: 'none', stroke: painted[0].color, 'stroke-width': round(w) }),
|
|
330
|
-
children: [],
|
|
331
|
-
});
|
|
332
|
-
return;
|
|
333
|
-
}
|
|
334
|
-
for (const s of painted) {
|
|
335
|
-
const inset = s.width / 2;
|
|
336
|
-
const [x1, y1, x2, y2] = s.side === 'top'
|
|
337
|
-
? [rect.x, rect.y + inset, rect.x + rect.width, rect.y + inset]
|
|
338
|
-
: s.side === 'bottom'
|
|
339
|
-
? [rect.x, rect.y + rect.height - inset, rect.x + rect.width, rect.y + rect.height - inset]
|
|
340
|
-
: s.side === 'left'
|
|
341
|
-
? [rect.x + inset, rect.y, rect.x + inset, rect.y + rect.height]
|
|
342
|
-
: [rect.x + rect.width - inset, rect.y, rect.x + rect.width - inset, rect.y + rect.height];
|
|
343
|
-
sink.push({
|
|
344
|
-
type: 'line',
|
|
345
|
-
props: {
|
|
346
|
-
x1: round(x1),
|
|
347
|
-
y1: round(y1),
|
|
348
|
-
x2: round(x2),
|
|
349
|
-
y2: round(y2),
|
|
350
|
-
stroke: s.color,
|
|
351
|
-
'stroke-width': round(s.width),
|
|
352
|
-
},
|
|
353
|
-
children: [],
|
|
354
|
-
});
|
|
355
|
-
}
|
|
356
|
-
}
|
|
357
|
-
/**
|
|
358
|
-
* One run of text → `<text>`.
|
|
359
|
-
*
|
|
360
|
-
* The position comes from a Range over the text node, which is the TIGHT laid-out box
|
|
361
|
-
* — the parent's box would be the whole card for a title. SVG's `y` is the baseline
|
|
362
|
-
* and CSS gives us a line box, so the baseline is derived from the box centre and the
|
|
363
|
-
* font size; that is an approximation, but it is the same one every HTML→SVG
|
|
364
|
-
* transcriber makes and it is visually indistinguishable for single-line runs.
|
|
365
|
-
*/
|
|
366
|
-
function emitText(parent, textNode, style, ctx, sink) {
|
|
367
|
-
var _a, _b, _c;
|
|
368
|
-
const raw = ((_a = textNode.nodeValue) !== null && _a !== void 0 ? _a : '').replace(/\s+/g, ' ').trim();
|
|
369
|
-
if (raw === '')
|
|
370
|
-
return;
|
|
371
|
-
const doc = ((_b = parent.ownerDocument) !== null && _b !== void 0 ? _b : null);
|
|
372
|
-
let box = null;
|
|
373
|
-
try {
|
|
374
|
-
const range = (_c = doc === null || doc === void 0 ? void 0 : doc.createRange) === null || _c === void 0 ? void 0 : _c.call(doc);
|
|
375
|
-
if (range) {
|
|
376
|
-
range.selectNodeContents(textNode);
|
|
377
|
-
const r = range.getBoundingClientRect();
|
|
378
|
-
if (r && r.width >= 0 && r.height > 0)
|
|
379
|
-
box = r;
|
|
380
|
-
}
|
|
381
|
-
}
|
|
382
|
-
catch (_d) {
|
|
383
|
-
/* fall through to the parent's box */
|
|
384
|
-
}
|
|
385
|
-
if (!box)
|
|
386
|
-
box = parent.getBoundingClientRect();
|
|
387
|
-
const rect = localRect(ctx, box);
|
|
388
|
-
if (!(rect.height > 0))
|
|
389
|
-
return;
|
|
390
|
-
pushTextVNode(raw, rect, style, ctx, sink);
|
|
391
|
-
}
|
|
392
|
-
/**
|
|
393
|
-
* The one place a run of text becomes a `<text>` VNode. Real text nodes arrive here
|
|
394
|
-
* with their Range-measured box; pseudo-element `content` strings arrive with their
|
|
395
|
-
* DERIVED box — and because both go through this, text-transform, colour, tracking and
|
|
396
|
-
* the baseline approximation cannot drift between the two.
|
|
397
|
-
*/
|
|
398
|
-
function pushTextVNode(raw, rect, style, ctx, sink) {
|
|
399
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
400
|
-
const collapsed = raw.replace(/\s+/g, ' ').trim();
|
|
401
|
-
if (collapsed === '')
|
|
402
|
-
return;
|
|
403
|
-
// `text-transform` is applied by the RENDERER, not stored in the text node — the DOM
|
|
404
|
-
// still says "Total revenue" while the screen says "TOTAL REVENUE". Copying nodeValue
|
|
405
|
-
// verbatim is how an export comes out subtly but visibly wrong on every widget title.
|
|
406
|
-
const content = applyTextTransform(collapsed, (_a = style['text-transform']) !== null && _a !== void 0 ? _a : style['textTransform']);
|
|
407
|
-
const fontSize = px((_c = (_b = style['font-size']) !== null && _b !== void 0 ? _b : style['fontSize']) !== null && _c !== void 0 ? _c : '12') / 1;
|
|
408
|
-
const align = ((_e = (_d = style['text-align']) !== null && _d !== void 0 ? _d : style['textAlign']) !== null && _e !== void 0 ? _e : 'start').toLowerCase();
|
|
409
|
-
const anchor = align === 'center' ? 'middle' : align === 'right' || align === 'end' ? 'end' : 'start';
|
|
410
|
-
const x = anchor === 'middle' ? rect.x + rect.width / 2 : anchor === 'end' ? rect.x + rect.width : rect.x;
|
|
411
|
-
// Alphabetic baseline ≈ 0.36em below the centre of the line box for typical faces.
|
|
412
|
-
const y = rect.y + rect.height / 2 + fontSize * 0.36;
|
|
413
|
-
const color = (_f = style['color']) !== null && _f !== void 0 ? _f : '#000';
|
|
414
|
-
const tracking = px((_h = (_g = style['letter-spacing']) !== null && _g !== void 0 ? _g : style['letterSpacing']) !== null && _h !== void 0 ? _h : '');
|
|
415
|
-
sink.push({
|
|
416
|
-
type: 'text',
|
|
417
|
-
props: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ x: round(x), y: round(y) }, (anchor !== 'start' ? { 'text-anchor': anchor } : {})), { 'font-family': (_k = (_j = style['font-family']) !== null && _j !== void 0 ? _j : style['fontFamily']) !== null && _k !== void 0 ? _k : 'sans-serif', 'font-size': round(fontSize) }), (normalWeight(style) ? {} : { 'font-weight': (_l = style['font-weight']) !== null && _l !== void 0 ? _l : style['fontWeight'] })), (tracking ? { 'letter-spacing': round(tracking) } : {})), { fill: color, textContent: content }),
|
|
418
|
-
children: [],
|
|
419
|
-
});
|
|
420
|
-
}
|
|
421
|
-
/** What the renderer does to the text on the way to the screen. */
|
|
422
|
-
function applyTextTransform(text, transform) {
|
|
423
|
-
switch ((transform !== null && transform !== void 0 ? transform : '').toLowerCase()) {
|
|
424
|
-
case 'uppercase':
|
|
425
|
-
return text.toUpperCase();
|
|
426
|
-
case 'lowercase':
|
|
427
|
-
return text.toLowerCase();
|
|
428
|
-
case 'capitalize':
|
|
429
|
-
return text.replace(/(^|\s)(\S)/g, (_, lead, ch) => lead + ch.toUpperCase());
|
|
430
|
-
default:
|
|
431
|
-
return text;
|
|
432
|
-
}
|
|
433
|
-
}
|
|
434
|
-
function normalWeight(style) {
|
|
435
|
-
var _a, _b;
|
|
436
|
-
const w = String((_b = (_a = style['font-weight']) !== null && _a !== void 0 ? _a : style['fontWeight']) !== null && _b !== void 0 ? _b : '400');
|
|
437
|
-
return w === '400' || w === 'normal';
|
|
438
|
-
}
|
|
439
|
-
/**
|
|
440
|
-
* Lift an inline `<svg>` into the display list.
|
|
441
|
-
*
|
|
442
|
-
* This is the fidelity win: the kit draws every chart as inline SVG, so a donut's arcs,
|
|
443
|
-
* a bar's rects and a line's polylines come across as THEMSELVES — real vector, exact
|
|
444
|
-
* geometry, valid in a PDF. The two things that must happen on the way:
|
|
445
|
-
*
|
|
446
|
-
* 1. the viewBox fit is baked into a transform (see `viewBoxTransform`), because no
|
|
447
|
-
* target downstream of here implements nested-`<svg>` viewBox mapping;
|
|
448
|
-
* 2. every paint is read from COMPUTED style, which is what resolves the kit's
|
|
449
|
-
* `var(--axdb-grid)` / `var(--axdb-ink)` into literal colours. Copying attributes
|
|
450
|
-
* verbatim would carry `var(…)` into the file and break the export's standing
|
|
451
|
-
* "no unresolved custom properties" guarantee — the values would render black, or
|
|
452
|
-
* not at all, outside a browser.
|
|
453
|
-
*/
|
|
454
|
-
function liftSvg(el, ctx, sink) {
|
|
455
|
-
var _a;
|
|
456
|
-
const rect = localRect(ctx, el.getBoundingClientRect());
|
|
457
|
-
if (!(rect.width > 0) || !(rect.height > 0))
|
|
458
|
-
return;
|
|
459
|
-
const viewBox = parseViewBox(el.getAttribute('viewBox'));
|
|
460
|
-
const fit = viewBox
|
|
461
|
-
? (0, custom_nodes_1.viewBoxTransform)(viewBox, rect, (_a = el.getAttribute('preserveAspectRatio')) !== null && _a !== void 0 ? _a : 'xMidYMid meet')
|
|
462
|
-
: '';
|
|
463
|
-
const children = [];
|
|
464
|
-
for (let i = 0; i < el.childNodes.length; i++) {
|
|
465
|
-
const child = el.childNodes[i];
|
|
466
|
-
if (child.nodeType !== ELEMENT_NODE)
|
|
467
|
-
continue;
|
|
468
|
-
const vnode = transcribeSvgElement(child, ctx);
|
|
469
|
-
if (vnode)
|
|
470
|
-
children.push(vnode);
|
|
471
|
-
}
|
|
472
|
-
if (children.length === 0)
|
|
473
|
-
return;
|
|
474
|
-
const transform = [`translate(${round(rect.x)} ${round(rect.y)})`, fit].filter(Boolean).join(' ');
|
|
475
|
-
sink.push({
|
|
476
|
-
type: 'g',
|
|
477
|
-
props: { transform, className: 'grafloria-lifted-svg' },
|
|
478
|
-
children,
|
|
479
|
-
});
|
|
480
|
-
}
|
|
481
|
-
function parseViewBox(raw) {
|
|
482
|
-
if (!raw)
|
|
483
|
-
return null;
|
|
484
|
-
const parts = raw.trim().split(/[\s,]+/).map(Number);
|
|
485
|
-
if (parts.length !== 4 || !parts.every(Number.isFinite))
|
|
486
|
-
return null;
|
|
487
|
-
return { x: parts[0], y: parts[1], width: parts[2], height: parts[3] };
|
|
488
|
-
}
|
|
489
|
-
function transcribeSvgElement(el, ctx) {
|
|
490
|
-
var _a, _b, _c;
|
|
491
|
-
if (ctx.budget-- <= 0)
|
|
492
|
-
return null;
|
|
493
|
-
if (SVG_IGNORED.has(el.localName))
|
|
494
|
-
return null;
|
|
495
|
-
const style = ctx.win.getComputedStyle(el);
|
|
496
|
-
if (style['display'] === 'none' || style['visibility'] === 'hidden')
|
|
497
|
-
return null;
|
|
498
|
-
const props = {};
|
|
499
|
-
// Geometry and every other authored attribute, verbatim.
|
|
500
|
-
for (let i = 0; i < el.attributes.length; i++) {
|
|
501
|
-
const attr = el.attributes[i];
|
|
502
|
-
if (SKIP_ATTRS.has(attr.name))
|
|
503
|
-
continue;
|
|
504
|
-
props[attr.name] = attr.value;
|
|
505
|
-
}
|
|
506
|
-
// Paint, RESOLVED — this is what turns `var(--axdb-grid)` into a colour.
|
|
507
|
-
const wanted = TEXT_ELEMENTS.has(el.localName)
|
|
508
|
-
? [...SVG_PAINT_PROPS, ...SVG_TEXT_PROPS]
|
|
509
|
-
: SVG_PAINT_PROPS;
|
|
510
|
-
for (const [attr, prop] of wanted) {
|
|
511
|
-
const value = (_a = style[attr]) !== null && _a !== void 0 ? _a : style[prop];
|
|
512
|
-
if (value === undefined || value === '' || value === 'normal')
|
|
513
|
-
continue;
|
|
514
|
-
props[attr] = value;
|
|
515
|
-
}
|
|
516
|
-
const children = [];
|
|
517
|
-
let text;
|
|
518
|
-
for (let i = 0; i < el.childNodes.length; i++) {
|
|
519
|
-
const child = el.childNodes[i];
|
|
520
|
-
if (child.nodeType === ELEMENT_NODE) {
|
|
521
|
-
const vnode = transcribeSvgElement(child, ctx);
|
|
522
|
-
if (vnode)
|
|
523
|
-
children.push(vnode);
|
|
524
|
-
}
|
|
525
|
-
else if (child.nodeType === TEXT_NODE && ((_b = child.nodeValue) !== null && _b !== void 0 ? _b : '').trim() !== '') {
|
|
526
|
-
text = (text !== null && text !== void 0 ? text : '') + ((_c = child.nodeValue) !== null && _c !== void 0 ? _c : '');
|
|
527
|
-
}
|
|
528
|
-
}
|
|
529
|
-
if (text !== undefined && children.length === 0)
|
|
530
|
-
props['textContent'] = text;
|
|
531
|
-
return { type: el.localName, props, children };
|
|
532
|
-
}
|
|
533
|
-
// ---------------------------------------------------------------------------
|
|
534
|
-
// CSS paint transcription — gradients, shadows, images.
|
|
535
|
-
//
|
|
536
|
-
// These read COMPUTED style values (rgb()/rgba() colours, px lengths, resolved angles),
|
|
537
|
-
// so the parsing is deliberately narrow: it handles the forms a browser actually emits
|
|
538
|
-
// from getComputedStyle, not the full authoring grammar. Everything reuses the renderer's
|
|
539
|
-
// own paint-server VNode builders (`svg/paint-servers.ts`) so the def shapes live in one
|
|
540
|
-
// place. Def dedup is by the stable `paintDefId` hash: identical paint → one def.
|
|
541
|
-
// ---------------------------------------------------------------------------
|
|
542
|
-
/**
|
|
543
|
-
* The capture-time verdict on an external image, EXPORTED because the async export path
|
|
544
|
-
* revises it: `await export(…)` fetches external URLs (environment fetch, then
|
|
545
|
-
* `ExportOptions.assetFetcher`) and STRIPS this warning from any capture whose images it
|
|
546
|
-
* embedded — see `stripResolvedImageWarnings`. The synchronous entry points cannot fetch,
|
|
547
|
-
* so for them this text is the whole truth, and it names the way out.
|
|
548
|
-
*/
|
|
549
|
-
exports.IMAGE_PDF_WARNING = 'a widget image references an EXTERNAL URL — a synchronous export keeps the link (the ' +
|
|
550
|
-
'SVG renders online, but a PDF cannot fetch a URL, so it will be MISSING from a PDF ' +
|
|
551
|
-
'export). `await export(…)` embeds the image when its server allows CORS or when ' +
|
|
552
|
-
'ExportOptions.assetFetcher is supplied.';
|
|
553
|
-
/** Companion caveat from `resolveImageHref` — same lifecycle as {@link IMAGE_PDF_WARNING}. */
|
|
554
|
-
exports.IMAGE_NOT_INLINED_WARNING = 'an image could not be inlined (cross-origin or unloaded) — the export references it ' +
|
|
555
|
-
'externally and is not fully self-contained.';
|
|
556
|
-
/**
|
|
557
|
-
* Remove the two external-image caveats from a capture's warning — called by the async
|
|
558
|
-
* export AFTER it embedded every external image the capture held, at which point both
|
|
559
|
-
* sentences assert a problem that no longer exists (the same defect, mirrored, as
|
|
560
|
-
* staying silent about one that does). Returns undefined when nothing else remains.
|
|
561
|
-
*/
|
|
562
|
-
function stripResolvedImageWarnings(warning) {
|
|
563
|
-
if (!warning)
|
|
564
|
-
return warning;
|
|
565
|
-
const stripped = warning
|
|
566
|
-
.replace(exports.IMAGE_PDF_WARNING, '')
|
|
567
|
-
.replace(exports.IMAGE_NOT_INLINED_WARNING, '')
|
|
568
|
-
.replace(/\s+/g, ' ')
|
|
569
|
-
.trim();
|
|
570
|
-
return stripped === '' ? undefined : stripped;
|
|
571
|
-
}
|
|
572
|
-
/** Register a def VNode once per capture; identical defs (same id) collapse to one. */
|
|
573
|
-
function pushDef(ctx, id, build) {
|
|
574
|
-
if (ctx.emittedDefs.has(id))
|
|
575
|
-
return;
|
|
576
|
-
ctx.emittedDefs.add(id);
|
|
577
|
-
ctx.out.push(build());
|
|
578
|
-
}
|
|
579
|
-
/** Split on TOP-LEVEL commas only — commas inside `rgb(…)` / nested `()` are left alone. */
|
|
580
|
-
function splitTopLevel(value) {
|
|
581
|
-
const out = [];
|
|
582
|
-
let depth = 0;
|
|
583
|
-
let cur = '';
|
|
584
|
-
for (const ch of value) {
|
|
585
|
-
if (ch === '(')
|
|
586
|
-
depth++;
|
|
587
|
-
else if (ch === ')')
|
|
588
|
-
depth--;
|
|
589
|
-
if (ch === ',' && depth === 0) {
|
|
590
|
-
out.push(cur);
|
|
591
|
-
cur = '';
|
|
592
|
-
}
|
|
593
|
-
else {
|
|
594
|
-
cur += ch;
|
|
595
|
-
}
|
|
596
|
-
}
|
|
597
|
-
if (cur.trim() !== '')
|
|
598
|
-
out.push(cur);
|
|
599
|
-
return out.map(s => s.trim());
|
|
600
|
-
}
|
|
601
|
-
const COLOR_TOKEN = /(rgba?\([^)]*\)|hsla?\([^)]*\)|#[0-9a-fA-F]{3,8})/;
|
|
602
|
-
/** Does an argument carry a colour (→ a stop), or is it a direction/shape config? */
|
|
603
|
-
function looksLikeColor(arg) {
|
|
604
|
-
return COLOR_TOKEN.test(arg);
|
|
605
|
-
}
|
|
606
|
-
/** The one flat colour that best stands in — the fill a box wears when a gradient is present. */
|
|
607
|
-
function gradientFillFor(bgImage, rect, ctx) {
|
|
608
|
-
const grad = parseGradient(bgImage);
|
|
609
|
-
if (!grad)
|
|
610
|
-
return undefined;
|
|
611
|
-
for (const c of grad.caveats)
|
|
612
|
-
ctx.warnings.push(c);
|
|
613
|
-
if (grad.kind === 'linear') {
|
|
614
|
-
const e = linearEndpoints(grad.angle, rect);
|
|
615
|
-
const id = (0, paint_servers_1.paintDefId)(Object.assign(Object.assign({ k: 'l' }, e), { stops: grad.stops }));
|
|
616
|
-
pushDef(ctx, id, () => (0, paint_servers_1.buildLinearGradientUserSpace)(id, Object.assign(Object.assign({}, e), { stops: grad.stops })));
|
|
617
|
-
return `url(#${id})`;
|
|
618
|
-
}
|
|
619
|
-
const g = radialGeometry(grad, rect);
|
|
620
|
-
const id = (0, paint_servers_1.paintDefId)(Object.assign(Object.assign({ k: 'r' }, g), { stops: grad.stops }));
|
|
621
|
-
pushDef(ctx, id, () => (0, paint_servers_1.buildRadialGradientUserSpace)(id, Object.assign(Object.assign({}, g), { stops: grad.stops })));
|
|
622
|
-
return `url(#${id})`;
|
|
623
|
-
}
|
|
624
|
-
/** Parse a computed `background-image` gradient. Returns null for a bitmap or `none`. */
|
|
625
|
-
function parseGradient(bgImage) {
|
|
626
|
-
const raw = (bgImage !== null && bgImage !== void 0 ? bgImage : '').trim();
|
|
627
|
-
if (!raw || raw === 'none')
|
|
628
|
-
return null;
|
|
629
|
-
const layers = splitTopLevel(raw);
|
|
630
|
-
const caveats = [];
|
|
631
|
-
if (layers.length > 1)
|
|
632
|
-
caveats.push('only the first of multiple background-image layers was exported.');
|
|
633
|
-
const m = /^(repeating-)?(linear|radial)-gradient\(([\s\S]*)\)$/i.exec(layers[0]);
|
|
634
|
-
if (!m)
|
|
635
|
-
return null;
|
|
636
|
-
if (m[1])
|
|
637
|
-
caveats.push('a repeating gradient was exported as a single non-repeating gradient.');
|
|
638
|
-
const kind = m[2].toLowerCase();
|
|
639
|
-
const args = splitTopLevel(m[3]);
|
|
640
|
-
if (args.length === 0)
|
|
641
|
-
return null;
|
|
642
|
-
let angle = 180; // CSS default direction is `to bottom`
|
|
643
|
-
let center = null;
|
|
644
|
-
let stopArgs = args;
|
|
645
|
-
if (!looksLikeColor(args[0])) {
|
|
646
|
-
if (kind === 'linear')
|
|
647
|
-
angle = parseAngle(args[0]);
|
|
648
|
-
else
|
|
649
|
-
center = parseRadialCenter(args[0]);
|
|
650
|
-
stopArgs = args.slice(1);
|
|
651
|
-
}
|
|
652
|
-
const stops = parseStops(stopArgs);
|
|
653
|
-
if (stops.length < 2)
|
|
654
|
-
return null;
|
|
655
|
-
return { kind, angle, center, stops, caveats };
|
|
656
|
-
}
|
|
657
|
-
/** A CSS gradient angle/side → degrees (0=up, 90=right, clockwise). */
|
|
658
|
-
function parseAngle(token) {
|
|
659
|
-
const t = token.trim().toLowerCase();
|
|
660
|
-
const m = /^(-?[\d.]+)(deg|grad|rad|turn)?$/.exec(t);
|
|
661
|
-
if (m) {
|
|
662
|
-
const v = parseFloat(m[1]);
|
|
663
|
-
switch (m[2]) {
|
|
664
|
-
case 'rad':
|
|
665
|
-
return (v * 180) / Math.PI;
|
|
666
|
-
case 'grad':
|
|
667
|
-
return v * 0.9;
|
|
668
|
-
case 'turn':
|
|
669
|
-
return v * 360;
|
|
670
|
-
default:
|
|
671
|
-
return v;
|
|
672
|
-
}
|
|
673
|
-
}
|
|
674
|
-
if (t.startsWith('to ')) {
|
|
675
|
-
const sides = new Set(t.slice(3).trim().split(/\s+/));
|
|
676
|
-
const top = sides.has('top');
|
|
677
|
-
const bottom = sides.has('bottom');
|
|
678
|
-
const left = sides.has('left');
|
|
679
|
-
const right = sides.has('right');
|
|
680
|
-
// Corner directions are approximated by their 45° diagonal — exact CSS corner angles
|
|
681
|
-
// depend on the box aspect ratio, which is a refinement not worth its complexity here.
|
|
682
|
-
if (top && right)
|
|
683
|
-
return 45;
|
|
684
|
-
if (bottom && right)
|
|
685
|
-
return 135;
|
|
686
|
-
if (bottom && left)
|
|
687
|
-
return 225;
|
|
688
|
-
if (top && left)
|
|
689
|
-
return 315;
|
|
690
|
-
if (top)
|
|
691
|
-
return 0;
|
|
692
|
-
if (right)
|
|
693
|
-
return 90;
|
|
694
|
-
if (left)
|
|
695
|
-
return 270;
|
|
696
|
-
return 180; // bottom
|
|
697
|
-
}
|
|
698
|
-
return 180;
|
|
699
|
-
}
|
|
700
|
-
/** Endpoints for a linear gradient, in host-local pixel space (userSpaceOnUse). */
|
|
701
|
-
function linearEndpoints(angleDeg, rect) {
|
|
702
|
-
const th = (angleDeg * Math.PI) / 180;
|
|
703
|
-
const s = Math.sin(th);
|
|
704
|
-
const c = Math.cos(th);
|
|
705
|
-
const w = rect.width;
|
|
706
|
-
const h = rect.height;
|
|
707
|
-
const cx = rect.x + w / 2;
|
|
708
|
-
const cy = rect.y + h / 2;
|
|
709
|
-
// The gradient line runs through the centre and spans corner-to-corner.
|
|
710
|
-
const len = Math.abs(w * s) + Math.abs(h * c);
|
|
711
|
-
// y is DOWN in SVG, so the "to top" direction (θ=0) is (0,-1): end = centre + (s,-c)·len/2.
|
|
712
|
-
return {
|
|
713
|
-
x1: round(cx - (s * len) / 2),
|
|
714
|
-
y1: round(cy + (c * len) / 2),
|
|
715
|
-
x2: round(cx + (s * len) / 2),
|
|
716
|
-
y2: round(cy - (c * len) / 2),
|
|
717
|
-
};
|
|
718
|
-
}
|
|
719
|
-
/** Centre + radius for a radial gradient, host-local pixels. Default: centre, farthest-corner. */
|
|
720
|
-
function radialGeometry(grad, rect) {
|
|
721
|
-
var _a, _b, _c, _d;
|
|
722
|
-
const fx = (_b = (_a = grad.center) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : 0.5;
|
|
723
|
-
const fy = (_d = (_c = grad.center) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : 0.5;
|
|
724
|
-
const cx = rect.x + rect.width * fx;
|
|
725
|
-
const cy = rect.y + rect.height * fy;
|
|
726
|
-
// Default ending shape/size is farthest-corner: the max distance from the centre to any
|
|
727
|
-
// of the box's four corners.
|
|
728
|
-
const dx = Math.max(cx - rect.x, rect.x + rect.width - cx);
|
|
729
|
-
const dy = Math.max(cy - rect.y, rect.y + rect.height - cy);
|
|
730
|
-
return { cx: round(cx), cy: round(cy), r: round(Math.hypot(dx, dy)) };
|
|
731
|
-
}
|
|
732
|
-
/** `circle at 25% 75%` / `at center` → the centre as 0–1 fractions, or null for default. */
|
|
733
|
-
function parseRadialCenter(config) {
|
|
734
|
-
var _a, _b, _c;
|
|
735
|
-
const at = /\bat\s+(.+)$/i.exec(config.trim());
|
|
736
|
-
if (!at)
|
|
737
|
-
return null;
|
|
738
|
-
const parts = at[1].trim().split(/\s+/);
|
|
739
|
-
const axis = (token, horizontal) => {
|
|
740
|
-
const t = token.toLowerCase();
|
|
741
|
-
if (t === 'center')
|
|
742
|
-
return 0.5;
|
|
743
|
-
if (t === 'left')
|
|
744
|
-
return 0;
|
|
745
|
-
if (t === 'right')
|
|
746
|
-
return 1;
|
|
747
|
-
if (t === 'top')
|
|
748
|
-
return 0;
|
|
749
|
-
if (t === 'bottom')
|
|
750
|
-
return 1;
|
|
751
|
-
const pct = /^(-?[\d.]+)%$/.exec(t);
|
|
752
|
-
if (pct)
|
|
753
|
-
return parseFloat(pct[1]) / 100;
|
|
754
|
-
return horizontal ? 0.5 : 0.5;
|
|
755
|
-
};
|
|
756
|
-
const x = axis((_a = parts[0]) !== null && _a !== void 0 ? _a : 'center', true);
|
|
757
|
-
const y = axis((_c = (_b = parts[1]) !== null && _b !== void 0 ? _b : parts[0]) !== null && _c !== void 0 ? _c : 'center', false);
|
|
758
|
-
return { x, y };
|
|
759
|
-
}
|
|
760
|
-
/** Parse the colour-stop list, filling in unpositioned stops by even distribution. */
|
|
761
|
-
function parseStops(parts) {
|
|
762
|
-
const raw = parts.map(parseStop).filter((s) => s !== null);
|
|
763
|
-
if (raw.length === 0)
|
|
764
|
-
return [];
|
|
765
|
-
if (raw[0].offset == null)
|
|
766
|
-
raw[0].offset = 0;
|
|
767
|
-
if (raw[raw.length - 1].offset == null)
|
|
768
|
-
raw[raw.length - 1].offset = 1;
|
|
769
|
-
// Fill each run of unpositioned stops by interpolating between its anchored neighbours.
|
|
770
|
-
let i = 0;
|
|
771
|
-
while (i < raw.length) {
|
|
772
|
-
if (raw[i].offset != null) {
|
|
773
|
-
i++;
|
|
774
|
-
continue;
|
|
775
|
-
}
|
|
776
|
-
let j = i;
|
|
777
|
-
while (j < raw.length && raw[j].offset == null)
|
|
778
|
-
j++;
|
|
779
|
-
const prev = raw[i - 1].offset;
|
|
780
|
-
const next = raw[j].offset;
|
|
781
|
-
const gap = j - (i - 1);
|
|
782
|
-
for (let k = i; k < j; k++)
|
|
783
|
-
raw[k].offset = prev + ((next - prev) * (k - (i - 1))) / gap;
|
|
784
|
-
i = j;
|
|
785
|
-
}
|
|
786
|
-
return raw.map(s => (Object.assign({ offset: round(s.offset), color: s.color }, (s.opacity !== undefined ? { opacity: s.opacity } : {}))));
|
|
787
|
-
}
|
|
788
|
-
/** One `rgb(…) 40%` stop → colour + optional offset (fraction) + optional split-out alpha. */
|
|
789
|
-
function parseStop(part) {
|
|
790
|
-
const t = part.trim();
|
|
791
|
-
const cm = COLOR_TOKEN.exec(t);
|
|
792
|
-
if (!cm)
|
|
793
|
-
return null;
|
|
794
|
-
const rawColor = cm[0];
|
|
795
|
-
const rest = t.slice(0, cm.index) + t.slice(cm.index + rawColor.length);
|
|
796
|
-
const pm = /(-?[\d.]+)%/.exec(rest);
|
|
797
|
-
const offset = pm ? Math.max(0, Math.min(1, parseFloat(pm[1]) / 100)) : null;
|
|
798
|
-
return Object.assign(Object.assign({}, splitAlpha(rawColor)), { offset });
|
|
799
|
-
}
|
|
800
|
-
/** rgba(r,g,b,a<1) → { color: rgb(r,g,b), opacity: a }. Everything else passes through. */
|
|
801
|
-
function splitAlpha(color) {
|
|
802
|
-
const m = /^rgba\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*\)$/i.exec(color.trim());
|
|
803
|
-
if (m) {
|
|
804
|
-
const a = parseFloat(m[4]);
|
|
805
|
-
if (a < 1)
|
|
806
|
-
return { color: `rgb(${m[1]}, ${m[2]}, ${m[3]})`, opacity: a };
|
|
807
|
-
return { color: `rgb(${m[1]}, ${m[2]}, ${m[3]})` };
|
|
808
|
-
}
|
|
809
|
-
return { color };
|
|
810
|
-
}
|
|
811
|
-
// -- box-shadow --------------------------------------------------------------
|
|
812
|
-
/** Build the drop-shadow filter def for a box-shadow and return its `url(#…)` ref. */
|
|
813
|
-
function shadowFilterFor(boxShadow, ctx) {
|
|
814
|
-
const raw = (boxShadow !== null && boxShadow !== void 0 ? boxShadow : '').trim();
|
|
815
|
-
if (!raw || raw === 'none')
|
|
816
|
-
return undefined;
|
|
817
|
-
const shadows = splitTopLevel(raw);
|
|
818
|
-
const first = shadows[0];
|
|
819
|
-
if (/\binset\b/i.test(first)) {
|
|
820
|
-
ctx.warnings.push('an inset box-shadow was skipped — inset shadows are not exported.');
|
|
821
|
-
return undefined;
|
|
822
|
-
}
|
|
823
|
-
if (shadows.length > 1)
|
|
824
|
-
ctx.warnings.push('only the first of multiple box-shadows was exported.');
|
|
825
|
-
const shadow = parseShadow(first);
|
|
826
|
-
if (!shadow)
|
|
827
|
-
return undefined;
|
|
828
|
-
const id = (0, paint_servers_1.paintDefId)({ shadow });
|
|
829
|
-
pushDef(ctx, id, () => (0, paint_servers_1.buildShadowFilterVNode)(id, shadow));
|
|
830
|
-
return `url(#${id})`;
|
|
831
|
-
}
|
|
832
|
-
/** `rgba(…) 2px 4px 12px 0px` (computed form: colour first) → a Shadow spec, or null. */
|
|
833
|
-
function parseShadow(value) {
|
|
834
|
-
var _a;
|
|
835
|
-
const t = value.trim();
|
|
836
|
-
const cm = COLOR_TOKEN.exec(t);
|
|
837
|
-
const color = cm ? cm[0] : 'rgba(0, 0, 0, 0.35)';
|
|
838
|
-
const rest = cm ? t.slice(0, cm.index) + t.slice(cm.index + color.length) : t;
|
|
839
|
-
const nums = ((_a = rest.match(/-?[\d.]+px/g)) !== null && _a !== void 0 ? _a : []).map(v => parseFloat(v));
|
|
840
|
-
if (nums.length < 2)
|
|
841
|
-
return null;
|
|
842
|
-
const [offsetX, offsetY, blur = 0] = nums; // a 4th value is spread, which SVG has no analogue for
|
|
843
|
-
// CSS blur radius ≈ 2× the Gaussian std-deviation — halve it so the shadow is as soft as
|
|
844
|
-
// the browser paints it, matching the serializer's own `blur()` translation.
|
|
845
|
-
return { offsetX, offsetY, blur: round(blur / 2), color };
|
|
846
|
-
}
|
|
847
|
-
// -- images ------------------------------------------------------------------
|
|
848
|
-
/** `background-image: url("…")` → an `<image>` behind the element's content. */
|
|
849
|
-
function emitBackgroundImage(bgImage, rect, ctx, sink) {
|
|
850
|
-
const url = parseBgUrl(bgImage);
|
|
851
|
-
if (!url)
|
|
852
|
-
return;
|
|
853
|
-
emitImage(null, rect, ctx, url, sink);
|
|
854
|
-
}
|
|
855
|
-
/** The first `url(…)` in a computed `background-image`, unquoted, or null. */
|
|
856
|
-
function parseBgUrl(bgImage) {
|
|
857
|
-
const m = /url\(\s*(['"]?)([^'")]+)\1\s*\)/i.exec(bgImage !== null && bgImage !== void 0 ? bgImage : '');
|
|
858
|
-
return m ? m[2] : null;
|
|
859
|
-
}
|
|
860
|
-
/**
|
|
861
|
-
* Emit an `<image>` for an `<img>` (pass the element) or a CSS bitmap (pass null).
|
|
862
|
-
* Inlined to a data: URI when the pixels are readable, so the file stays self-contained;
|
|
863
|
-
* ALWAYS warned, because PDF cannot draw an image at all.
|
|
864
|
-
*/
|
|
865
|
-
function emitImage(el, rect, ctx, src, sink) {
|
|
866
|
-
if (!src)
|
|
867
|
-
return;
|
|
868
|
-
const href = resolveImageHref(el, src, ctx);
|
|
869
|
-
// Only an EXTERNAL image is a PDF risk now: the PDF writer embeds data: PNGs/JPEGs
|
|
870
|
-
// as image XObjects (b2854b0a1) and carries its own precise warnings for the forms
|
|
871
|
-
// it refuses (interlaced, 16-bit, CMYK…). An external URL it cannot fetch, so that
|
|
872
|
-
// half of the old blanket warning is the half that stays.
|
|
873
|
-
if (!href.startsWith('data:'))
|
|
874
|
-
ctx.warnings.push(exports.IMAGE_PDF_WARNING);
|
|
875
|
-
sink.push({
|
|
876
|
-
type: 'image',
|
|
877
|
-
props: {
|
|
878
|
-
x: round(rect.x),
|
|
879
|
-
y: round(rect.y),
|
|
880
|
-
width: round(rect.width),
|
|
881
|
-
height: round(rect.height),
|
|
882
|
-
href,
|
|
883
|
-
},
|
|
884
|
-
children: [],
|
|
885
|
-
});
|
|
886
|
-
}
|
|
887
|
-
/** A data: URI if we can read the bitmap; otherwise the original src (external, warned). */
|
|
888
|
-
function resolveImageHref(el, src, ctx) {
|
|
889
|
-
if (src.startsWith('data:'))
|
|
890
|
-
return src;
|
|
891
|
-
const inlined = el ? tryCanvasInline(el, ctx) : null;
|
|
892
|
-
if (inlined)
|
|
893
|
-
return inlined;
|
|
894
|
-
ctx.warnings.push(exports.IMAGE_NOT_INLINED_WARNING);
|
|
895
|
-
return src;
|
|
896
|
-
}
|
|
897
|
-
/** Read a loaded, same-origin `<img>` to a PNG data URI via a canvas. Null on any failure. */
|
|
898
|
-
function tryCanvasInline(el, ctx) {
|
|
899
|
-
var _a, _b;
|
|
900
|
-
try {
|
|
901
|
-
const doc = el.ownerDocument;
|
|
902
|
-
if (!doc || typeof doc.createElement !== 'function')
|
|
903
|
-
return null;
|
|
904
|
-
const img = el;
|
|
905
|
-
const nw = (_a = img.naturalWidth) !== null && _a !== void 0 ? _a : 0;
|
|
906
|
-
const nh = (_b = img.naturalHeight) !== null && _b !== void 0 ? _b : 0;
|
|
907
|
-
if (!nw || !nh)
|
|
908
|
-
return null;
|
|
909
|
-
const canvas = doc.createElement('canvas');
|
|
910
|
-
canvas.width = nw;
|
|
911
|
-
canvas.height = nh;
|
|
912
|
-
const context = canvas.getContext('2d');
|
|
913
|
-
if (!context)
|
|
914
|
-
return null;
|
|
915
|
-
context.drawImage(el, 0, 0);
|
|
916
|
-
return canvas.toDataURL('image/png');
|
|
917
|
-
}
|
|
918
|
-
catch (_c) {
|
|
919
|
-
ctx.warnings.push('an image could not be inlined (cross-origin or unloaded) — the export references it ' +
|
|
920
|
-
'externally and is not fully self-contained.');
|
|
921
|
-
return null;
|
|
922
|
-
}
|
|
923
|
-
}
|
|
924
|
-
// -- pseudo-elements ---------------------------------------------------------
|
|
925
|
-
//
|
|
926
|
-
// `getComputedStyle(el, '::before')` reports a pseudo's computed style, but a pseudo
|
|
927
|
-
// has NO element to getBoundingClientRect() — its box must be DERIVED:
|
|
928
|
-
//
|
|
929
|
-
// absolute/fixed left/top (or right/bottom + size) offsets against the origin's
|
|
930
|
-
// border box, plus computed width/height. This is the decorative-
|
|
931
|
-
// pseudo idiom and it derives exactly.
|
|
932
|
-
// static/relative a ::before flows at the origin's CONTENT start (border + padding
|
|
933
|
-
// in). A ::after only flows there when the origin has no other flow
|
|
934
|
-
// content — otherwise its position depends on layout this
|
|
935
|
-
// transcriber cannot measure, and it warns instead of guessing.
|
|
936
|
-
//
|
|
937
|
-
// Sizes: explicit px/% resolve; `auto` resolves for a TEXT pseudo (its line box is
|
|
938
|
-
// derived from its own font, the same approximation `emitText` makes), but a PAINTED
|
|
939
|
-
// box with auto size is underivable and is reported, never guessed.
|
|
940
|
-
/** A px/% length against a basis. Returns null for auto/keywords/unparsable. */
|
|
941
|
-
function resolveLen(token, basis) {
|
|
942
|
-
const t = (token !== null && token !== void 0 ? token : '').trim();
|
|
943
|
-
if (t === '')
|
|
944
|
-
return null;
|
|
945
|
-
const pct = /^(-?[\d.]+)%$/.exec(t);
|
|
946
|
-
if (pct)
|
|
947
|
-
return (parseFloat(pct[1]) / 100) * basis;
|
|
948
|
-
const abs = /^(-?[\d.]+)(?:px)?$/.exec(t);
|
|
949
|
-
if (abs)
|
|
950
|
-
return parseFloat(abs[1]);
|
|
951
|
-
return null;
|
|
952
|
-
}
|
|
953
|
-
/** Everything outside quoted strings — for detecting attr()/counter()/url() content. */
|
|
954
|
-
function stripQuoted(value) {
|
|
955
|
-
return value.replace(/"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*'/g, '');
|
|
956
|
-
}
|
|
957
|
-
/**
|
|
958
|
-
* A computed `content` value → the text it contributes. Quoted strings (and their
|
|
959
|
-
* concatenation) are transcribed; attr()/counter()/url() cannot be resolved from
|
|
960
|
-
* computed style alone and are skipped WITH a warning. The `/ "alt text"` clause is
|
|
961
|
-
* not rendered content and is cut.
|
|
962
|
-
*/
|
|
963
|
-
function parsePseudoContent(value, ctx) {
|
|
964
|
-
if (/(attr|counters?|url|image-set)\s*\(/i.test(stripQuoted(value))) {
|
|
965
|
-
ctx.warnings.push('a pseudo-element content value (attr()/counter()/url()) was skipped — only quoted ' +
|
|
966
|
-
'strings are transcribed.');
|
|
967
|
-
}
|
|
968
|
-
let out = '';
|
|
969
|
-
let quote = null;
|
|
970
|
-
for (let i = 0; i < value.length; i++) {
|
|
971
|
-
const ch = value[i];
|
|
972
|
-
if (quote) {
|
|
973
|
-
if (ch === quote)
|
|
974
|
-
quote = null;
|
|
975
|
-
else if (ch === '\\' && i + 1 < value.length)
|
|
976
|
-
out += value[++i];
|
|
977
|
-
else
|
|
978
|
-
out += ch;
|
|
979
|
-
}
|
|
980
|
-
else if (ch === '"' || ch === "'") {
|
|
981
|
-
quote = ch;
|
|
982
|
-
}
|
|
983
|
-
else if (ch === '/') {
|
|
984
|
-
break; // alt-text clause — never rendered
|
|
985
|
-
}
|
|
986
|
-
}
|
|
987
|
-
return out;
|
|
988
|
-
}
|
|
989
|
-
/** Does the pseudo's style paint a box at all (background or any visible border)? */
|
|
990
|
-
function pseudoPaintsBox(ps) {
|
|
991
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
992
|
-
if (!isTransparent((_b = (_a = ps['background-color']) !== null && _a !== void 0 ? _a : ps['backgroundColor']) !== null && _b !== void 0 ? _b : ''))
|
|
993
|
-
return true;
|
|
994
|
-
const bgi = ((_d = (_c = ps['background-image']) !== null && _c !== void 0 ? _c : ps['backgroundImage']) !== null && _d !== void 0 ? _d : '').trim();
|
|
995
|
-
if (bgi !== '' && bgi !== 'none')
|
|
996
|
-
return true;
|
|
997
|
-
for (const side of ['top', 'right', 'bottom', 'left']) {
|
|
998
|
-
if (px((_e = ps[`border-${side}-width`]) !== null && _e !== void 0 ? _e : '') > 0 &&
|
|
999
|
-
((_f = ps[`border-${side}-style`]) !== null && _f !== void 0 ? _f : 'none') !== 'none' &&
|
|
1000
|
-
!isTransparent((_g = ps[`border-${side}-color`]) !== null && _g !== void 0 ? _g : '')) {
|
|
1001
|
-
return true;
|
|
1002
|
-
}
|
|
1003
|
-
}
|
|
1004
|
-
return false;
|
|
1005
|
-
}
|
|
1006
|
-
/**
|
|
1007
|
-
* Transcribe one `::before` / `::after`. Returns whether the pseudo EXISTS (generated
|
|
1008
|
-
* a box per `content`), which the caller feeds into the ::after flow-position rule —
|
|
1009
|
-
* a ::before box is flow content the ::after would come after.
|
|
1010
|
-
*/
|
|
1011
|
-
function emitPseudo(el, originStyle, originRect, which, ctx, sink, precededByFlowContent) {
|
|
1012
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;
|
|
1013
|
-
if (ctx.pseudoUnsupported)
|
|
1014
|
-
return false;
|
|
1015
|
-
let ps;
|
|
1016
|
-
try {
|
|
1017
|
-
ps = ctx.win.getComputedStyle(el, which);
|
|
1018
|
-
}
|
|
1019
|
-
catch (_1) {
|
|
1020
|
-
ctx.pseudoUnsupported = true; // e.g. jsdom — learn it once, not once per element
|
|
1021
|
-
return false;
|
|
1022
|
-
}
|
|
1023
|
-
if (!ps)
|
|
1024
|
-
return false;
|
|
1025
|
-
const rawContent = ((_a = ps['content']) !== null && _a !== void 0 ? _a : '').trim();
|
|
1026
|
-
// `content: none | normal` (or nothing readable) → the pseudo generates NO box.
|
|
1027
|
-
if (rawContent === '' || rawContent === 'none' || rawContent === 'normal')
|
|
1028
|
-
return false;
|
|
1029
|
-
if (ps['display'] === 'none' || ps['visibility'] === 'hidden')
|
|
1030
|
-
return true;
|
|
1031
|
-
if (parseFloat((_b = ps['opacity']) !== null && _b !== void 0 ? _b : '1') === 0)
|
|
1032
|
-
return true;
|
|
1033
|
-
const text = parsePseudoContent(rawContent, ctx);
|
|
1034
|
-
const paintsBox = pseudoPaintsBox(ps);
|
|
1035
|
-
if (text === '' && !paintsBox)
|
|
1036
|
-
return true; // exists, but there is nothing to draw
|
|
1037
|
-
const w = resolveLen((_c = ps['width']) !== null && _c !== void 0 ? _c : '', originRect.width);
|
|
1038
|
-
const h = resolveLen((_d = ps['height']) !== null && _d !== void 0 ? _d : '', originRect.height);
|
|
1039
|
-
// The flow start of the origin's content box — where a static ::before sits.
|
|
1040
|
-
const flowX = originRect.x +
|
|
1041
|
-
px((_f = (_e = originStyle['border-left-width']) !== null && _e !== void 0 ? _e : originStyle['borderLeftWidth']) !== null && _f !== void 0 ? _f : '') +
|
|
1042
|
-
px((_h = (_g = originStyle['padding-left']) !== null && _g !== void 0 ? _g : originStyle['paddingLeft']) !== null && _h !== void 0 ? _h : '');
|
|
1043
|
-
const flowY = originRect.y +
|
|
1044
|
-
px((_k = (_j = originStyle['border-top-width']) !== null && _j !== void 0 ? _j : originStyle['borderTopWidth']) !== null && _k !== void 0 ? _k : '') +
|
|
1045
|
-
px((_m = (_l = originStyle['padding-top']) !== null && _l !== void 0 ? _l : originStyle['paddingTop']) !== null && _m !== void 0 ? _m : '');
|
|
1046
|
-
const pos = ((_o = ps['position']) !== null && _o !== void 0 ? _o : 'static').toLowerCase();
|
|
1047
|
-
let x;
|
|
1048
|
-
let y;
|
|
1049
|
-
if (pos === 'absolute' || pos === 'fixed') {
|
|
1050
|
-
// Containing block approximated by the origin box — the decorative-pseudo idiom
|
|
1051
|
-
// (`position: relative` origin, absolute pseudo) makes this exact.
|
|
1052
|
-
const left = resolveLen((_p = ps['left']) !== null && _p !== void 0 ? _p : '', originRect.width);
|
|
1053
|
-
const right = resolveLen((_q = ps['right']) !== null && _q !== void 0 ? _q : '', originRect.width);
|
|
1054
|
-
const top = resolveLen((_r = ps['top']) !== null && _r !== void 0 ? _r : '', originRect.height);
|
|
1055
|
-
const bottom = resolveLen((_s = ps['bottom']) !== null && _s !== void 0 ? _s : '', originRect.height);
|
|
1056
|
-
x =
|
|
1057
|
-
left !== null
|
|
1058
|
-
? originRect.x + left
|
|
1059
|
-
: right !== null && w !== null
|
|
1060
|
-
? originRect.x + originRect.width - right - w
|
|
1061
|
-
: left === null && right === null
|
|
1062
|
-
? flowX // no offsets → the static position
|
|
1063
|
-
: null;
|
|
1064
|
-
y =
|
|
1065
|
-
top !== null
|
|
1066
|
-
? originRect.y + top
|
|
1067
|
-
: bottom !== null && h !== null
|
|
1068
|
-
? originRect.y + originRect.height - bottom - h
|
|
1069
|
-
: top === null && bottom === null
|
|
1070
|
-
? flowY
|
|
1071
|
-
: null;
|
|
1072
|
-
}
|
|
1073
|
-
else {
|
|
1074
|
-
if (which === '::after' && precededByFlowContent) {
|
|
1075
|
-
ctx.warnings.push('a painted ::after pseudo-element flows after content this transcriber cannot ' +
|
|
1076
|
-
'measure — it was skipped.');
|
|
1077
|
-
return true;
|
|
1078
|
-
}
|
|
1079
|
-
x = flowX;
|
|
1080
|
-
y = flowY;
|
|
1081
|
-
if (pos === 'relative') {
|
|
1082
|
-
x += (_u = resolveLen((_t = ps['left']) !== null && _t !== void 0 ? _t : '', originRect.width)) !== null && _u !== void 0 ? _u : 0;
|
|
1083
|
-
y += (_w = resolveLen((_v = ps['top']) !== null && _v !== void 0 ? _v : '', originRect.height)) !== null && _w !== void 0 ? _w : 0;
|
|
1084
|
-
}
|
|
1085
|
-
}
|
|
1086
|
-
if (x === null || y === null) {
|
|
1087
|
-
ctx.warnings.push(`the position of a ${which} pseudo-element could not be derived — it was skipped.`);
|
|
1088
|
-
return true;
|
|
1089
|
-
}
|
|
1090
|
-
const box = w !== null && h !== null ? { x, y, width: w, height: h } : null;
|
|
1091
|
-
if (box && box.width > 0 && box.height > 0) {
|
|
1092
|
-
emitBox(ps, box, ctx, sink);
|
|
1093
|
-
}
|
|
1094
|
-
else if (paintsBox) {
|
|
1095
|
-
ctx.warnings.push(`a painted ${which} pseudo-element's box could not be derived (auto size) — its ` +
|
|
1096
|
-
'background/border was skipped.');
|
|
1097
|
-
}
|
|
1098
|
-
if (text !== '') {
|
|
1099
|
-
const fontSize = px((_y = (_x = ps['font-size']) !== null && _x !== void 0 ? _x : ps['fontSize']) !== null && _y !== void 0 ? _y : '12');
|
|
1100
|
-
const lineBox = (_0 = resolveLen((_z = ps['line-height']) !== null && _z !== void 0 ? _z : '', 0)) !== null && _0 !== void 0 ? _0 : fontSize * 1.2;
|
|
1101
|
-
const textRect = box !== null && box !== void 0 ? box : { x, y, width: w !== null && w !== void 0 ? w : 0, height: h !== null && h !== void 0 ? h : lineBox };
|
|
1102
|
-
pushTextVNode(text, textRect, ps, ctx, sink);
|
|
1103
|
-
}
|
|
1104
|
-
return true;
|
|
1105
|
-
}
|
|
1106
|
-
const OVERFLOW_CLIPPING = new Set(['hidden', 'clip', 'auto', 'scroll']);
|
|
1107
|
-
/** `overflow` that clips → the element's (rounded) border box as a clip shape. */
|
|
1108
|
-
function overflowClipFor(style, rect) {
|
|
1109
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
1110
|
-
const ox = (_c = (_b = (_a = style['overflow-x']) !== null && _a !== void 0 ? _a : style['overflowX']) !== null && _b !== void 0 ? _b : style['overflow']) !== null && _c !== void 0 ? _c : '';
|
|
1111
|
-
const oy = (_f = (_e = (_d = style['overflow-y']) !== null && _d !== void 0 ? _d : style['overflowY']) !== null && _e !== void 0 ? _e : style['overflow']) !== null && _f !== void 0 ? _f : '';
|
|
1112
|
-
if (!OVERFLOW_CLIPPING.has(ox) && !OVERFLOW_CLIPPING.has(oy))
|
|
1113
|
-
return null;
|
|
1114
|
-
const radius = px((_h = (_g = style['border-top-left-radius']) !== null && _g !== void 0 ? _g : style['borderTopLeftRadius']) !== null && _h !== void 0 ? _h : '0');
|
|
1115
|
-
return clipShapeDef('rect', Object.assign({ x: round(rect.x), y: round(rect.y), width: round(rect.width), height: round(rect.height) }, (radius > 0 ? { rx: round(radius) } : {})));
|
|
1116
|
-
}
|
|
1117
|
-
/** Wrap one shape in a stably-identified `<clipPath>` def (same shape → same id). */
|
|
1118
|
-
function clipShapeDef(type, props) {
|
|
1119
|
-
const id = (0, paint_servers_1.paintDefId)({ clip: type, props });
|
|
1120
|
-
return {
|
|
1121
|
-
id,
|
|
1122
|
-
def: { type: 'clipPath', props: { id }, children: [{ type, props, children: [] }] },
|
|
1123
|
-
};
|
|
1124
|
-
}
|
|
1125
|
-
/**
|
|
1126
|
-
* A computed CSS `clip-path` → a clip def, or null. inset()/circle()/ellipse()/
|
|
1127
|
-
* polygon() are transcribed; path()/url()/shape() cannot be expressed as one of the
|
|
1128
|
-
* def shapes and are skipped WITH a warning — the content exports unclipped, which is
|
|
1129
|
-
* a smaller lie than clipping it wrong.
|
|
1130
|
-
*/
|
|
1131
|
-
function clipPathShapeFor(value, rect, ctx) {
|
|
1132
|
-
const t = (value !== null && value !== void 0 ? value : '').trim();
|
|
1133
|
-
if (t === '' || t === 'none')
|
|
1134
|
-
return null;
|
|
1135
|
-
const m = /^(inset|circle|ellipse|polygon)\(([\s\S]*)\)(?:\s+([a-z-]+))?$/i.exec(t);
|
|
1136
|
-
if (!m) {
|
|
1137
|
-
ctx.warnings.push('an unsupported clip-path (path()/url()/reference-box form) was skipped — that ' +
|
|
1138
|
-
'content is exported UNCLIPPED.');
|
|
1139
|
-
return null;
|
|
1140
|
-
}
|
|
1141
|
-
if (m[3] && m[3].toLowerCase() !== 'border-box') {
|
|
1142
|
-
ctx.warnings.push(`a clip-path reference box "${m[3]}" was approximated as border-box.`);
|
|
1143
|
-
}
|
|
1144
|
-
const kind = m[1].toLowerCase();
|
|
1145
|
-
const args = m[2].trim();
|
|
1146
|
-
const shape = kind === 'inset'
|
|
1147
|
-
? insetShape(args, rect)
|
|
1148
|
-
: kind === 'circle'
|
|
1149
|
-
? circleShape(args, rect)
|
|
1150
|
-
: kind === 'ellipse'
|
|
1151
|
-
? ellipseShape(args, rect)
|
|
1152
|
-
: polygonShape(args, rect);
|
|
1153
|
-
if (!shape) {
|
|
1154
|
-
ctx.warnings.push(`a clip-path ${kind}() could not be parsed and was skipped — that content is exported UNCLIPPED.`);
|
|
1155
|
-
return null;
|
|
1156
|
-
}
|
|
1157
|
-
return clipShapeDef(shape.type, shape.props);
|
|
1158
|
-
}
|
|
1159
|
-
/** `inset(t r b l round radius)` → a (rounded) rect. Percentages resolve per axis. */
|
|
1160
|
-
function insetShape(args, rect) {
|
|
1161
|
-
var _a, _b, _c, _d, _e;
|
|
1162
|
-
const [offsetsPart, roundPart] = args.split(/\bround\b/i);
|
|
1163
|
-
const tokens = offsetsPart.trim().split(/\s+/).filter(Boolean);
|
|
1164
|
-
if (tokens.length < 1 || tokens.length > 4)
|
|
1165
|
-
return null;
|
|
1166
|
-
// CSS 1-to-4 expansion: t / t+lr / t+lr+b / t r b l.
|
|
1167
|
-
const o = [
|
|
1168
|
-
tokens[0],
|
|
1169
|
-
(_a = tokens[1]) !== null && _a !== void 0 ? _a : tokens[0],
|
|
1170
|
-
(_b = tokens[2]) !== null && _b !== void 0 ? _b : tokens[0],
|
|
1171
|
-
(_d = (_c = tokens[3]) !== null && _c !== void 0 ? _c : tokens[1]) !== null && _d !== void 0 ? _d : tokens[0],
|
|
1172
|
-
];
|
|
1173
|
-
const top = resolveLen(o[0], rect.height);
|
|
1174
|
-
const right = resolveLen(o[1], rect.width);
|
|
1175
|
-
const bottom = resolveLen(o[2], rect.height);
|
|
1176
|
-
const left = resolveLen(o[3], rect.width);
|
|
1177
|
-
if (top === null || right === null || bottom === null || left === null)
|
|
1178
|
-
return null;
|
|
1179
|
-
const width = rect.width - left - right;
|
|
1180
|
-
const height = rect.height - top - bottom;
|
|
1181
|
-
if (!(width > 0) || !(height > 0))
|
|
1182
|
-
return null;
|
|
1183
|
-
const radius = roundPart ? resolveLen((_e = roundPart.trim().split(/[\s/]+/)[0]) !== null && _e !== void 0 ? _e : '', rect.width) : null;
|
|
1184
|
-
return {
|
|
1185
|
-
type: 'rect',
|
|
1186
|
-
props: Object.assign({ x: round(rect.x + left), y: round(rect.y + top), width: round(width), height: round(height) }, (radius !== null && radius > 0 ? { rx: round(radius) } : {})),
|
|
1187
|
-
};
|
|
1188
|
-
}
|
|
1189
|
-
/** The centre a `… at <position>` clause resolves to, in host-local pixels. */
|
|
1190
|
-
function shapeCentre(args, rect) {
|
|
1191
|
-
var _a;
|
|
1192
|
-
const c = (_a = parseRadialCenter(args)) !== null && _a !== void 0 ? _a : { x: 0.5, y: 0.5 };
|
|
1193
|
-
return { cx: rect.x + rect.width * c.x, cy: rect.y + rect.height * c.y };
|
|
1194
|
-
}
|
|
1195
|
-
/** One radius token against one axis; `closest-`/`farthest-side` use the given distances. */
|
|
1196
|
-
function shapeRadius(token, basis, closest, farthest) {
|
|
1197
|
-
const t = (token !== null && token !== void 0 ? token : '').trim().toLowerCase();
|
|
1198
|
-
if (t === '' || t === 'closest-side')
|
|
1199
|
-
return closest;
|
|
1200
|
-
if (t === 'farthest-side')
|
|
1201
|
-
return farthest;
|
|
1202
|
-
return resolveLen(t, basis);
|
|
1203
|
-
}
|
|
1204
|
-
function circleShape(args, rect) {
|
|
1205
|
-
const { cx, cy } = shapeCentre(args, rect);
|
|
1206
|
-
const sides = [cx - rect.x, rect.x + rect.width - cx, cy - rect.y, rect.y + rect.height - cy];
|
|
1207
|
-
const rToken = args.split(/\bat\b/i)[0].trim();
|
|
1208
|
-
// A circle's percentage radius resolves against the reference-box diagonal / √2.
|
|
1209
|
-
const r = shapeRadius(rToken, Math.hypot(rect.width, rect.height) / Math.SQRT2, Math.min(...sides), Math.max(...sides));
|
|
1210
|
-
if (r === null || !(r > 0))
|
|
1211
|
-
return null;
|
|
1212
|
-
return { type: 'circle', props: { cx: round(cx), cy: round(cy), r: round(r) } };
|
|
1213
|
-
}
|
|
1214
|
-
function ellipseShape(args, rect) {
|
|
1215
|
-
var _a, _b, _c;
|
|
1216
|
-
const { cx, cy } = shapeCentre(args, rect);
|
|
1217
|
-
const tokens = args.split(/\bat\b/i)[0].trim().split(/\s+/).filter(Boolean);
|
|
1218
|
-
const rx = shapeRadius((_a = tokens[0]) !== null && _a !== void 0 ? _a : '', rect.width, Math.min(cx - rect.x, rect.x + rect.width - cx), Math.max(cx - rect.x, rect.x + rect.width - cx));
|
|
1219
|
-
const ry = shapeRadius((_c = (_b = tokens[1]) !== null && _b !== void 0 ? _b : tokens[0]) !== null && _c !== void 0 ? _c : '', rect.height, Math.min(cy - rect.y, rect.y + rect.height - cy), Math.max(cy - rect.y, rect.y + rect.height - cy));
|
|
1220
|
-
if (rx === null || ry === null || !(rx > 0) || !(ry > 0))
|
|
1221
|
-
return null;
|
|
1222
|
-
return {
|
|
1223
|
-
type: 'ellipse',
|
|
1224
|
-
props: { cx: round(cx), cy: round(cy), rx: round(rx), ry: round(ry) },
|
|
1225
|
-
};
|
|
1226
|
-
}
|
|
1227
|
-
function polygonShape(args, rect) {
|
|
1228
|
-
var _a;
|
|
1229
|
-
const parts = splitTopLevel(args);
|
|
1230
|
-
let start = 0;
|
|
1231
|
-
let evenodd = false;
|
|
1232
|
-
const first = ((_a = parts[0]) !== null && _a !== void 0 ? _a : '').trim().toLowerCase();
|
|
1233
|
-
if (first === 'evenodd' || first === 'nonzero') {
|
|
1234
|
-
evenodd = first === 'evenodd';
|
|
1235
|
-
start = 1;
|
|
1236
|
-
}
|
|
1237
|
-
const points = [];
|
|
1238
|
-
for (let i = start; i < parts.length; i++) {
|
|
1239
|
-
const pair = parts[i].trim().split(/\s+/);
|
|
1240
|
-
if (pair.length !== 2)
|
|
1241
|
-
return null;
|
|
1242
|
-
const vx = resolveLen(pair[0], rect.width);
|
|
1243
|
-
const vy = resolveLen(pair[1], rect.height);
|
|
1244
|
-
if (vx === null || vy === null)
|
|
1245
|
-
return null;
|
|
1246
|
-
points.push(`${round(rect.x + vx)},${round(rect.y + vy)}`);
|
|
1247
|
-
}
|
|
1248
|
-
if (points.length < 3)
|
|
1249
|
-
return null;
|
|
1250
|
-
return {
|
|
1251
|
-
type: 'polygon',
|
|
1252
|
-
props: Object.assign({ points: points.join(' ') }, (evenodd ? { 'clip-rule': 'evenodd' } : {})),
|
|
1253
|
-
};
|
|
1254
|
-
}
|
|
1255
|
-
/** 4dp is finer than any renderer resolves, and keeps the output byte-stable. */
|
|
1256
|
-
function round(value) {
|
|
1257
|
-
return Math.round(value * 1e4) / 1e4;
|
|
1258
|
-
}
|
|
1259
|
-
//# sourceMappingURL=capture-host.js.map
|