@grafloria/element 0.3.20 → 0.3.21
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 +1 -1
- 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,1076 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// Vector PDF (Card 4) — a TRUE vector PDF with selectable, searchable text.
|
|
3
|
-
//
|
|
4
|
-
// THE DEPENDENCY DECISION (the card asks for it explicitly)
|
|
5
|
-
// ---------------------------------------------------------
|
|
6
|
-
// The named pipeline is svg2pdf.js + jsPDF. We do NOT use it, for three reasons that all
|
|
7
|
-
// point the same way:
|
|
8
|
-
//
|
|
9
|
-
// 1. svg2pdf.js NEEDS A DOM. It walks a live `SVGElement`, and leans on `getBBox()` and
|
|
10
|
-
// `getComputedStyle()` — browser layout APIs. jsdom does not implement `getBBox` (it
|
|
11
|
-
// returns zeros), so in Node it does not merely need a shim, it silently produces an
|
|
12
|
-
// EMPTY PDF. Adopting it would therefore break the two things this module is FOR:
|
|
13
|
-
// the DOM-free guarantee (a node-environment test pins it) and the headless-server
|
|
14
|
-
// story that is Card 6's whole differentiator.
|
|
15
|
-
// 2. It is ~450KB (jsPDF ~350 + svg2pdf ~100) shipped to every browser consumer, to
|
|
16
|
-
// re-derive a picture we already hold in a clean, fully-resolved VNode tree.
|
|
17
|
-
// 3. Its input would be our SVG STRING — so we would serialize a tree to XML, hand it to
|
|
18
|
-
// a library to re-parse into a DOM, and have it walk that DOM. We already have the
|
|
19
|
-
// tree, already flattened (every `var(--…)` resolved into a concrete value). Painting
|
|
20
|
-
// straight from it is both less code and strictly more faithful.
|
|
21
|
-
//
|
|
22
|
-
// So the PDF is written directly. This is not "faking it" — the output is a real vector
|
|
23
|
-
// PDF: paths are paths, and text is text (`BT`/`Tj`), so it is selectable and searchable
|
|
24
|
-
// in any reader, and it scales without pixelation.
|
|
25
|
-
//
|
|
26
|
-
// WHAT IT COSTS — stated plainly, because these are real limits:
|
|
27
|
-
// • FONTS are the PDF base-14 (Helvetica/Times/Courier). Those are built into every
|
|
28
|
-
// reader, so text needs no embedded font program — but the diagram's actual face
|
|
29
|
-
// (Inter, system-ui) is NOT one of them, so a PDF renders in the nearest standard
|
|
30
|
-
// family. Embedding the real face would need a font parser + subsetter.
|
|
31
|
-
// • TEXT OUTSIDE WinAnsi (Arabic, CJK, emoji) cannot be written with a standard font.
|
|
32
|
-
// Those characters are replaced with '?' and reported in `warnings` — loudly, because
|
|
33
|
-
// a silently-mangled label is worse than a missing one.
|
|
34
|
-
// • GRADIENT FILLS are REAL: linear → /ShadingType 2, radial → /ShadingType 3, painted
|
|
35
|
-
// as `sh` clipped to the shape (see the shading section for why not a pattern fill).
|
|
36
|
-
// Stop OPACITY is real too: a luminosity soft mask (a DeviceGray transparency-group
|
|
37
|
-
// form painting the alpha ramp, wired through /ExtGState /SMask). Gradient-filled
|
|
38
|
-
// TEXT is real: text rendering mode 7 turns the glyphs into the clip and the shading
|
|
39
|
-
// paints through. What still flattens to the first stop, with a warning: gradient
|
|
40
|
-
// STROKES — a shading through a stroke needs either the stroke outline as a clip
|
|
41
|
-
// (PDF cannot build one) or a shading pattern whose /Matrix lives in page space,
|
|
42
|
-
// i.e. exactly the accumulated-CTM bookkeeping the sh approach exists to avoid.
|
|
43
|
-
// • IMAGES embed as real XObjects for data: PNGs — RGBA's alpha splits into an /SMask,
|
|
44
|
-
// interlaced (Adam7) PNGs are de-interlaced, 16-bit samples downsample to their high
|
|
45
|
-
// byte (< 0.4% error) — and JPEGs (DCTDecode passthrough), including CMYK: the Adobe
|
|
46
|
-
// APP14 convention stores inverted ink values, undone via /Decode. Still refused,
|
|
47
|
-
// loudly: external URLs (fetching would make the export impure) and sub-8-bit PNGs.
|
|
48
|
-
// RGBA re-compression is stored-block (see flate.ts): raw-size streams, correct
|
|
49
|
-
// pixels.
|
|
50
|
-
// • ELEMENT clip-paths (clip-path="url(#…)" with userSpaceOnUse shapes) clip for real
|
|
51
|
-
// via W n. clipPathUnits="objectBoundingBox" warns and paints unclipped.
|
|
52
|
-
// • BLURRED elements (the node drop shadow) are DROPPED. PDF has no gaussian blur, and
|
|
53
|
-
// drawing the shadow un-blurred would put a hard black slab behind every node — far
|
|
54
|
-
// worse than no shadow.
|
|
55
|
-
// • foreignObject cannot be represented at all.
|
|
56
|
-
//
|
|
57
|
-
// Everything here is pure and deterministic: same tree ⇒ same bytes.
|
|
58
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
59
|
-
exports.exportPdf = exportPdf;
|
|
60
|
-
const pdf_primitives_1 = require("./pdf-primitives");
|
|
61
|
-
const pdf_path_1 = require("./pdf-path");
|
|
62
|
-
const png_1 = require("./png");
|
|
63
|
-
const bounds_1 = require("../bounds");
|
|
64
|
-
// The shared geometry module — see pdf-path.ts.
|
|
65
|
-
const path_geometry_1 = require("../../canvas/path-geometry");
|
|
66
|
-
const style_flattener_1 = require("../style-flattener");
|
|
67
|
-
const patch_1 = require("../../vnode/patch");
|
|
68
|
-
const default_light_theme_1 = require("../../themes/default-light-theme");
|
|
69
|
-
function resolveMargins(margin) {
|
|
70
|
-
if (typeof margin === 'number')
|
|
71
|
-
return { top: margin, right: margin, bottom: margin, left: margin };
|
|
72
|
-
if (margin)
|
|
73
|
-
return margin;
|
|
74
|
-
return { top: 36, right: 36, bottom: 36, left: 36 };
|
|
75
|
-
}
|
|
76
|
-
class ContentStream {
|
|
77
|
-
constructor() {
|
|
78
|
-
this.ops = [];
|
|
79
|
-
this.state = { fill: null, stroke: null, lineWidth: null, dash: null, alpha: null, font: null };
|
|
80
|
-
/** ExtGState names for the alphas we used: PDF puts constant alpha in a resource dict. */
|
|
81
|
-
this.alphas = new Set();
|
|
82
|
-
this.fonts = new Set();
|
|
83
|
-
}
|
|
84
|
-
push(op) {
|
|
85
|
-
this.ops.push(op);
|
|
86
|
-
}
|
|
87
|
-
save() {
|
|
88
|
-
this.ops.push('q');
|
|
89
|
-
}
|
|
90
|
-
restore() {
|
|
91
|
-
this.ops.push('Q');
|
|
92
|
-
// A `Q` rolls the graphics state back to whatever it was at the matching `q`, and we
|
|
93
|
-
// do not track that — so forget our cache rather than skip an op we still need.
|
|
94
|
-
this.state = { fill: null, stroke: null, lineWidth: null, dash: null, alpha: null, font: null };
|
|
95
|
-
}
|
|
96
|
-
setFill(rgb) {
|
|
97
|
-
const op = `${(0, pdf_primitives_1.num)(rgb.r)} ${(0, pdf_primitives_1.num)(rgb.g)} ${(0, pdf_primitives_1.num)(rgb.b)} rg`;
|
|
98
|
-
if (this.state.fill === op)
|
|
99
|
-
return;
|
|
100
|
-
this.state.fill = op;
|
|
101
|
-
this.ops.push(op);
|
|
102
|
-
}
|
|
103
|
-
setStroke(rgb) {
|
|
104
|
-
const op = `${(0, pdf_primitives_1.num)(rgb.r)} ${(0, pdf_primitives_1.num)(rgb.g)} ${(0, pdf_primitives_1.num)(rgb.b)} RG`;
|
|
105
|
-
if (this.state.stroke === op)
|
|
106
|
-
return;
|
|
107
|
-
this.state.stroke = op;
|
|
108
|
-
this.ops.push(op);
|
|
109
|
-
}
|
|
110
|
-
setLineWidth(width) {
|
|
111
|
-
if (this.state.lineWidth === width)
|
|
112
|
-
return;
|
|
113
|
-
this.state.lineWidth = width;
|
|
114
|
-
this.ops.push(`${(0, pdf_primitives_1.num)(width)} w`);
|
|
115
|
-
}
|
|
116
|
-
setDash(dash) {
|
|
117
|
-
const op = dash ? `[${dash}] 0 d` : '[] 0 d';
|
|
118
|
-
if (this.state.dash === op)
|
|
119
|
-
return;
|
|
120
|
-
this.state.dash = op;
|
|
121
|
-
this.ops.push(op);
|
|
122
|
-
}
|
|
123
|
-
setAlpha(alpha) {
|
|
124
|
-
const rounded = Number(alpha.toFixed(3));
|
|
125
|
-
if (this.state.alpha === rounded)
|
|
126
|
-
return;
|
|
127
|
-
this.state.alpha = rounded;
|
|
128
|
-
this.alphas.add(rounded);
|
|
129
|
-
this.ops.push(`/GS${alphaName(rounded)} gs`);
|
|
130
|
-
}
|
|
131
|
-
setFont(font, size) {
|
|
132
|
-
const op = `/F${fontIndex(font)} ${(0, pdf_primitives_1.num)(size)} Tf`;
|
|
133
|
-
if (this.state.font === op)
|
|
134
|
-
return;
|
|
135
|
-
this.state.font = op;
|
|
136
|
-
this.fonts.add(font);
|
|
137
|
-
this.ops.push(op);
|
|
138
|
-
}
|
|
139
|
-
concat(m) {
|
|
140
|
-
this.ops.push(`${(0, pdf_primitives_1.num)(m.a)} ${(0, pdf_primitives_1.num)(m.b)} ${(0, pdf_primitives_1.num)(m.c)} ${(0, pdf_primitives_1.num)(m.d)} ${(0, pdf_primitives_1.num)(m.e)} ${(0, pdf_primitives_1.num)(m.f)} cm`);
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
const BASE_FONTS = [
|
|
144
|
-
'Helvetica',
|
|
145
|
-
'Helvetica-Bold',
|
|
146
|
-
'Helvetica-Oblique',
|
|
147
|
-
'Helvetica-BoldOblique',
|
|
148
|
-
'Times-Roman',
|
|
149
|
-
'Times-Bold',
|
|
150
|
-
'Times-Italic',
|
|
151
|
-
'Times-BoldItalic',
|
|
152
|
-
'Courier',
|
|
153
|
-
'Courier-Bold',
|
|
154
|
-
];
|
|
155
|
-
const fontIndex = (font) => BASE_FONTS.indexOf(font) + 1;
|
|
156
|
-
const alphaName = (alpha) => String(Math.round(alpha * 1000));
|
|
157
|
-
/** Elements that draw nothing and whose children are references. */
|
|
158
|
-
const NON_PAINTING = new Set([
|
|
159
|
-
'defs', 'title', 'desc', 'metadata', 'linearGradient', 'radialGradient',
|
|
160
|
-
'stop', 'filter', 'marker', 'clipPath', 'mask', 'pattern', 'style',
|
|
161
|
-
]);
|
|
162
|
-
function nn(value, fallback = 0) {
|
|
163
|
-
const n = Number(value);
|
|
164
|
-
return Number.isFinite(n) ? n : fallback;
|
|
165
|
-
}
|
|
166
|
-
/**
|
|
167
|
-
* Export a rendered VNode tree as a vector PDF.
|
|
168
|
-
*/
|
|
169
|
-
function exportPdf(root, options = {}) {
|
|
170
|
-
var _a, _b, _c, _d, _e;
|
|
171
|
-
const warnings = [];
|
|
172
|
-
const margins = resolveMargins(options.margin);
|
|
173
|
-
const page = (0, pdf_primitives_1.pageDimensions)((_a = options.pageSize) !== null && _a !== void 0 ? _a : 'a4', (_b = options.orientation) !== null && _b !== void 0 ? _b : 'landscape');
|
|
174
|
-
// The world rectangle(s) to draw. One page unless the paginator supplied a grid.
|
|
175
|
-
const content = (_c = options.viewBox) !== null && _c !== void 0 ? _c : (() => {
|
|
176
|
-
var _a;
|
|
177
|
-
const bounds = (0, bounds_1.vnodeBounds)(root);
|
|
178
|
-
const pad = (_a = options.padding) !== null && _a !== void 0 ? _a : 20;
|
|
179
|
-
if (!bounds)
|
|
180
|
-
return { x: 0, y: 0, width: 100, height: 100 };
|
|
181
|
-
return { x: bounds.x - pad, y: bounds.y - pad, width: bounds.width + pad * 2, height: bounds.height + pad * 2 };
|
|
182
|
-
})();
|
|
183
|
-
// Normalise: a bare Rectangle means "paint the whole window".
|
|
184
|
-
const pages = (((_d = options.pages) === null || _d === void 0 ? void 0 : _d.length) ? options.pages : [content]).map(page => {
|
|
185
|
-
var _a;
|
|
186
|
-
const rect = 'rect' in page ? page.rect : page;
|
|
187
|
-
const clip = 'rect' in page ? ((_a = page.clip) !== null && _a !== void 0 ? _a : rect) : page;
|
|
188
|
-
return { rect, clip };
|
|
189
|
-
});
|
|
190
|
-
// Gradients / patterns / clip paths are resolved by id from <defs> — collect first.
|
|
191
|
-
const defs = collectDefs(root);
|
|
192
|
-
// The stylesheet, flattened — the same resolver the SVG exporter uses.
|
|
193
|
-
const classStyles = (0, style_flattener_1.createClassStyleResolver)((_e = options.theme) !== null && _e !== void 0 ? _e : default_light_theme_1.LIGHT_THEME, warnings);
|
|
194
|
-
const ctx = {
|
|
195
|
-
defs,
|
|
196
|
-
shadings: new ShadingRegistry(),
|
|
197
|
-
softMasks: new SoftMaskRegistry(),
|
|
198
|
-
images: new ImageRegistry(),
|
|
199
|
-
warnings,
|
|
200
|
-
classStyles,
|
|
201
|
-
};
|
|
202
|
-
const writer = new pdf_primitives_1.PdfWriter();
|
|
203
|
-
const catalogId = writer.allocate();
|
|
204
|
-
const pagesId = writer.allocate();
|
|
205
|
-
const pageIds = [];
|
|
206
|
-
const contentIds = [];
|
|
207
|
-
const streams = [];
|
|
208
|
-
for (let i = 0; i < pages.length; i++) {
|
|
209
|
-
pageIds.push(writer.allocate());
|
|
210
|
-
contentIds.push(writer.allocate());
|
|
211
|
-
}
|
|
212
|
-
const boxWidth = page.width - margins.left - margins.right;
|
|
213
|
-
const boxHeight = page.height - margins.top - margins.bottom;
|
|
214
|
-
pages.forEach(({ rect, clip }, index) => {
|
|
215
|
-
const stream = new ContentStream();
|
|
216
|
-
streams.push(stream);
|
|
217
|
-
// Fit the world rectangle into the page's content box, preserving aspect, centred.
|
|
218
|
-
const scale = Math.min(boxWidth / rect.width, boxHeight / rect.height);
|
|
219
|
-
const drawWidth = rect.width * scale;
|
|
220
|
-
const drawHeight = rect.height * scale;
|
|
221
|
-
const offsetX = margins.left + (boxWidth - drawWidth) / 2;
|
|
222
|
-
const offsetY = margins.bottom + (boxHeight - drawHeight) / 2;
|
|
223
|
-
if (options.backgroundColor) {
|
|
224
|
-
const bg = (0, pdf_primitives_1.parsePdfColor)(options.backgroundColor);
|
|
225
|
-
if (bg) {
|
|
226
|
-
stream.save();
|
|
227
|
-
stream.setFill(bg);
|
|
228
|
-
stream.push(`0 0 ${(0, pdf_primitives_1.num)(page.width)} ${(0, pdf_primitives_1.num)(page.height)} re`);
|
|
229
|
-
stream.push('f');
|
|
230
|
-
stream.restore();
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
stream.save();
|
|
234
|
-
// PDF's origin is BOTTOM-left with y up; SVG's is TOP-left with y down. This one
|
|
235
|
-
// matrix does the flip, the fit, and the world offset in a single CTM — so every
|
|
236
|
-
// coordinate below is written in the SVG's own space and lands in the right place.
|
|
237
|
-
// x_pdf = offsetX + (x_svg - rect.x) * scale
|
|
238
|
-
// y_pdf = offsetY + drawHeight - (y_svg - rect.y) * scale
|
|
239
|
-
const ctm = {
|
|
240
|
-
a: scale,
|
|
241
|
-
b: 0,
|
|
242
|
-
c: 0,
|
|
243
|
-
d: -scale,
|
|
244
|
-
e: offsetX - rect.x * scale,
|
|
245
|
-
f: offsetY + drawHeight + rect.y * scale,
|
|
246
|
-
};
|
|
247
|
-
stream.concat(ctm);
|
|
248
|
-
// Clip to what this page actually PAINTS. That is `clip`, not `rect`: when the
|
|
249
|
-
// paginator pulled a break back to spare a node, the clip is narrower than the window,
|
|
250
|
-
// and the page shows white space instead of a sliced-in-half box.
|
|
251
|
-
stream.push(`${(0, pdf_primitives_1.num)(clip.x)} ${(0, pdf_primitives_1.num)(clip.y)} ${(0, pdf_primitives_1.num)(clip.width)} ${(0, pdf_primitives_1.num)(clip.height)} re`);
|
|
252
|
-
stream.push('W n');
|
|
253
|
-
paint(root, stream, ctx);
|
|
254
|
-
stream.restore();
|
|
255
|
-
if (options.pageNumbers && pages.length > 0) {
|
|
256
|
-
paintPageNumber(stream, index + 1, pages.length, page, margins);
|
|
257
|
-
}
|
|
258
|
-
});
|
|
259
|
-
// ---- assemble the document ------------------------------------------------
|
|
260
|
-
const usedFonts = new Set();
|
|
261
|
-
const usedAlphas = new Set();
|
|
262
|
-
for (const stream of streams) {
|
|
263
|
-
stream.fonts.forEach(f => usedFonts.add(f));
|
|
264
|
-
stream.alphas.forEach(a => usedAlphas.add(a));
|
|
265
|
-
}
|
|
266
|
-
const fontIds = new Map();
|
|
267
|
-
for (const font of BASE_FONTS) {
|
|
268
|
-
if (usedFonts.has(font))
|
|
269
|
-
fontIds.set(font, writer.allocate());
|
|
270
|
-
}
|
|
271
|
-
const fontResources = [...fontIds.entries()]
|
|
272
|
-
.map(([font, id]) => `/F${fontIndex(font)} ${id} 0 R`)
|
|
273
|
-
.join(' ');
|
|
274
|
-
// Constant alpha lives in an ExtGState, not in an operator — /ca fill, /CA stroke.
|
|
275
|
-
const alphaResources = [...usedAlphas]
|
|
276
|
-
.sort((a, b) => a - b)
|
|
277
|
-
.map(alpha => `/GS${alphaName(alpha)} << /Type /ExtGState /ca ${(0, pdf_primitives_1.num)(alpha)} /CA ${(0, pdf_primitives_1.num)(alpha)} >>`)
|
|
278
|
-
.join(' ');
|
|
279
|
-
// Image XObjects: one stream object per distinct image, plus its /SMask stream when the
|
|
280
|
-
// source PNG carried alpha. Wiring the SMask by reference is the whole point — an alpha
|
|
281
|
-
// plane that exists but is not named in the image dict renders opaque, silently.
|
|
282
|
-
const imageEntries = ctx.images.entries();
|
|
283
|
-
const imageRefs = [];
|
|
284
|
-
for (const { name, image } of imageEntries) {
|
|
285
|
-
let smaskRef = '';
|
|
286
|
-
if (image.smask) {
|
|
287
|
-
const smaskId = writer.allocate();
|
|
288
|
-
writer.setStream(smaskId, `/Type /XObject /Subtype /Image /Width ${image.width} /Height ${image.height} ` +
|
|
289
|
-
`/ColorSpace /DeviceGray /BitsPerComponent ${image.smask.bitsPerComponent} /Filter /FlateDecode`, Array.from(image.smask.data));
|
|
290
|
-
smaskRef = ` /SMask ${smaskId} 0 R`;
|
|
291
|
-
}
|
|
292
|
-
const imageId = writer.allocate();
|
|
293
|
-
const decodeParms = image.decodeParms ? ` /DecodeParms ${image.decodeParms}` : '';
|
|
294
|
-
// /Decode is how an Adobe-inverted CMYK JPEG comes out the right colours — dropping
|
|
295
|
-
// it here renders every such image inverted (red → cyan) with no other symptom.
|
|
296
|
-
const decode = image.decode ? ` /Decode ${image.decode}` : '';
|
|
297
|
-
writer.setStream(imageId, `/Type /XObject /Subtype /Image /Width ${image.width} /Height ${image.height} ` +
|
|
298
|
-
`/ColorSpace ${image.colorSpace} /BitsPerComponent ${image.bitsPerComponent} ` +
|
|
299
|
-
`/Filter ${image.filter}${decodeParms}${decode}${smaskRef}`, Array.from(image.data));
|
|
300
|
-
imageRefs.push(`/${name} ${imageId} 0 R`);
|
|
301
|
-
}
|
|
302
|
-
const shadingResources = ctx.shadings
|
|
303
|
-
.entries()
|
|
304
|
-
.map(([name, dict]) => `/${name} ${dict}`)
|
|
305
|
-
.join(' ');
|
|
306
|
-
// Luminosity soft masks: a Form XObject painting the alpha ramp in DeviceGray, and an
|
|
307
|
-
// ExtGState pointing at it. The /Transparency group's /CS MUST be DeviceGray — an RGB
|
|
308
|
-
// group's luminosity is a different function of the ramp, and the mask silently warps.
|
|
309
|
-
const softMaskResources = ctx.softMasks
|
|
310
|
-
.entries()
|
|
311
|
-
.map(mask => {
|
|
312
|
-
const formId = writer.allocate();
|
|
313
|
-
writer.setStream(formId, `/Type /XObject /Subtype /Form /BBox [${mask.bbox}] ` +
|
|
314
|
-
`/Group << /S /Transparency /CS /DeviceGray >> ` +
|
|
315
|
-
`/Resources << /Shading << /G0 ${mask.shading} >> >>`, (0, pdf_primitives_1.latin1Bytes)('/G0 sh'));
|
|
316
|
-
return `/${mask.name} << /Type /ExtGState /SMask << /S /Luminosity /G ${formId} 0 R >> >>`;
|
|
317
|
-
})
|
|
318
|
-
.join(' ');
|
|
319
|
-
const resources = `<< /Font << ${fontResources} >> ` +
|
|
320
|
-
`/ExtGState << ${alphaResources}${softMaskResources ? ` ${softMaskResources}` : ''} >> ` +
|
|
321
|
-
(shadingResources ? `/Shading << ${shadingResources} >> ` : '') +
|
|
322
|
-
(imageRefs.length ? `/XObject << ${imageRefs.join(' ')} >> ` : '') +
|
|
323
|
-
`/ProcSet [/PDF /Text${imageRefs.length ? ' /ImageB /ImageC /ImageI' : ''}] >>`;
|
|
324
|
-
streams.forEach((stream, index) => {
|
|
325
|
-
writer.set(pageIds[index], `<< /Type /Page /Parent ${pagesId} 0 R ` +
|
|
326
|
-
`/MediaBox [0 0 ${(0, pdf_primitives_1.num)(page.width)} ${(0, pdf_primitives_1.num)(page.height)}] ` +
|
|
327
|
-
`/Resources ${resources} ` +
|
|
328
|
-
`/Contents ${contentIds[index]} 0 R >>`);
|
|
329
|
-
writer.setStream(contentIds[index], '', (0, pdf_primitives_1.latin1Bytes)(stream.ops.join('\n')));
|
|
330
|
-
});
|
|
331
|
-
for (const [font, id] of fontIds) {
|
|
332
|
-
writer.set(id, `<< /Type /Font /Subtype /Type1 /BaseFont /${font} /Encoding /WinAnsiEncoding >>`);
|
|
333
|
-
}
|
|
334
|
-
writer.set(pagesId, `<< /Type /Pages /Kids [${pageIds.map(id => `${id} 0 R`).join(' ')}] /Count ${pageIds.length} >>`);
|
|
335
|
-
const infoId = buildInfo(writer, options.metadata);
|
|
336
|
-
writer.set(catalogId, `<< /Type /Catalog /Pages ${pagesId} 0 R >>`);
|
|
337
|
-
return { pdf: writer.build(catalogId, infoId), pageCount: pages.length, warnings: dedupe(warnings) };
|
|
338
|
-
}
|
|
339
|
-
function buildInfo(writer, metadata) {
|
|
340
|
-
if (!metadata)
|
|
341
|
-
return null;
|
|
342
|
-
const entries = [];
|
|
343
|
-
const add = (key, value) => {
|
|
344
|
-
if (value)
|
|
345
|
-
entries.push(`/${key} ${(0, pdf_primitives_1.pdfString)((0, pdf_primitives_1.encodeWinAnsi)(value).bytes)}`);
|
|
346
|
-
};
|
|
347
|
-
add('Title', metadata.title);
|
|
348
|
-
add('Author', metadata.author);
|
|
349
|
-
add('Subject', metadata.subject);
|
|
350
|
-
add('Keywords', metadata.keywords);
|
|
351
|
-
entries.push('/Producer (Grafloria)');
|
|
352
|
-
if (metadata.creationDate)
|
|
353
|
-
add('CreationDate', toPdfDate(metadata.creationDate));
|
|
354
|
-
const id = writer.allocate();
|
|
355
|
-
writer.set(id, `<< ${entries.join(' ')} >>`);
|
|
356
|
-
return id;
|
|
357
|
-
}
|
|
358
|
-
/** ISO-8601 → PDF's own `D:YYYYMMDDHHmmSS` date literal. */
|
|
359
|
-
function toPdfDate(iso) {
|
|
360
|
-
const date = new Date(iso);
|
|
361
|
-
if (Number.isNaN(date.getTime()))
|
|
362
|
-
return iso;
|
|
363
|
-
const pad = (n) => String(n).padStart(2, '0');
|
|
364
|
-
return (`D:${date.getUTCFullYear()}${pad(date.getUTCMonth() + 1)}${pad(date.getUTCDate())}` +
|
|
365
|
-
`${pad(date.getUTCHours())}${pad(date.getUTCMinutes())}${pad(date.getUTCSeconds())}Z`);
|
|
366
|
-
}
|
|
367
|
-
/**
|
|
368
|
-
* THE ELEMENT'S REAL PAINT — the CSS cascade, resolved.
|
|
369
|
-
*
|
|
370
|
-
* This is not optional decoration. In CSS mode (the live default) a node's fill and a
|
|
371
|
-
* link's stroke are NOT on the element: they come from the injected stylesheet, and the
|
|
372
|
-
* VNode carries only `class="diagram-node"`. Painting the raw props would therefore give
|
|
373
|
-
* every link no stroke and every node no fill — i.e. a nearly BLANK PDF. (It did. That is
|
|
374
|
-
* how this was found.)
|
|
375
|
-
*
|
|
376
|
-
* So the same flattener the SVG exporter uses is applied here, in the same CSS priority
|
|
377
|
-
* order — presentation attribute < author rule < inline style — and keys are normalised
|
|
378
|
-
* through `attrNameForProp`, the mapping SHARED with the DOM patcher. Sharing it is what
|
|
379
|
-
* stops a `strokeWidth` prop and a `stroke-width` rule from both surviving and the wrong
|
|
380
|
-
* one winning.
|
|
381
|
-
*/
|
|
382
|
-
function resolved(vnode, ctx) {
|
|
383
|
-
var _a;
|
|
384
|
-
const props = (_a = vnode.props) !== null && _a !== void 0 ? _a : {};
|
|
385
|
-
const out = {};
|
|
386
|
-
// (1) presentation attributes — the lowest layer
|
|
387
|
-
for (const key of Object.keys(props)) {
|
|
388
|
-
const value = props[key];
|
|
389
|
-
if (value === null || value === undefined || typeof value === 'function')
|
|
390
|
-
continue;
|
|
391
|
-
if (key === 'style' || key === 'className' || key === 'textContent' || key === 'innerHTML')
|
|
392
|
-
continue;
|
|
393
|
-
out[(0, patch_1.attrNameForProp)(key)] = String(value);
|
|
394
|
-
}
|
|
395
|
-
// (2) the stylesheet — an author rule BEATS a presentation attribute
|
|
396
|
-
const className = props['className'];
|
|
397
|
-
if (typeof className === 'string' && className.trim() !== '') {
|
|
398
|
-
Object.assign(out, ctx.classStyles(className.trim().split(/\s+/)));
|
|
399
|
-
}
|
|
400
|
-
// (3) the element's own inline style — the cascade's winner
|
|
401
|
-
const style = (0, patch_1.serializeStyle)(props['style']);
|
|
402
|
-
if (style) {
|
|
403
|
-
for (const declaration of style.split(';')) {
|
|
404
|
-
const colon = declaration.indexOf(':');
|
|
405
|
-
if (colon < 0)
|
|
406
|
-
continue;
|
|
407
|
-
const prop = declaration.slice(0, colon).trim();
|
|
408
|
-
const value = declaration.slice(colon + 1).trim();
|
|
409
|
-
if (prop && value)
|
|
410
|
-
out[prop] = value;
|
|
411
|
-
}
|
|
412
|
-
}
|
|
413
|
-
return out;
|
|
414
|
-
}
|
|
415
|
-
/** Both prop spellings occur: the capture emits `stop-color`, hand-built trees `stopColor`. */
|
|
416
|
-
function stopProp(vnode, kebab, camel) {
|
|
417
|
-
var _a, _b, _c;
|
|
418
|
-
return (_b = (_a = vnode.props) === null || _a === void 0 ? void 0 : _a[kebab]) !== null && _b !== void 0 ? _b : (_c = vnode.props) === null || _c === void 0 ? void 0 : _c[camel];
|
|
419
|
-
}
|
|
420
|
-
function parseStops(vnode) {
|
|
421
|
-
var _a, _b;
|
|
422
|
-
const stops = [];
|
|
423
|
-
for (const child of (_a = vnode.children) !== null && _a !== void 0 ? _a : []) {
|
|
424
|
-
if (!child || typeof child !== 'object' || child.type !== 'stop')
|
|
425
|
-
continue;
|
|
426
|
-
const colorValue = stopProp(child, 'stop-color', 'stopColor');
|
|
427
|
-
const color = (0, pdf_primitives_1.parsePdfColor)(colorValue);
|
|
428
|
-
if (!color)
|
|
429
|
-
continue;
|
|
430
|
-
// Offsets arrive as numbers, "0.5" or "50%".
|
|
431
|
-
const rawOffset = (_b = child.props) === null || _b === void 0 ? void 0 : _b['offset'];
|
|
432
|
-
let offset = 0;
|
|
433
|
-
if (typeof rawOffset === 'number')
|
|
434
|
-
offset = rawOffset;
|
|
435
|
-
else if (typeof rawOffset === 'string') {
|
|
436
|
-
const pct = rawOffset.trim().endsWith('%');
|
|
437
|
-
const parsed = Number.parseFloat(rawOffset);
|
|
438
|
-
offset = Number.isFinite(parsed) ? (pct ? parsed / 100 : parsed) : 0;
|
|
439
|
-
}
|
|
440
|
-
const stopOpacity = nn(stopProp(child, 'stop-opacity', 'stopOpacity'), 1);
|
|
441
|
-
stops.push({
|
|
442
|
-
offset: Math.max(0, Math.min(1, offset)),
|
|
443
|
-
color,
|
|
444
|
-
alpha: stopOpacity * (0, pdf_primitives_1.parseColorAlpha)(colorValue),
|
|
445
|
-
});
|
|
446
|
-
}
|
|
447
|
-
// PDF stitching wants monotonic domains; SVG clamps out-of-order offsets the same way.
|
|
448
|
-
for (let i = 1; i < stops.length; i++)
|
|
449
|
-
stops[i].offset = Math.max(stops[i].offset, stops[i - 1].offset);
|
|
450
|
-
return stops;
|
|
451
|
-
}
|
|
452
|
-
/** Every def the painter can resolve by id, in one walk. */
|
|
453
|
-
function collectDefs(root) {
|
|
454
|
-
const defs = { gradients: new Map(), patterns: new Map(), clipPaths: new Map() };
|
|
455
|
-
const walk = (vnode) => {
|
|
456
|
-
var _a, _b, _c;
|
|
457
|
-
if (!vnode || typeof vnode !== 'object')
|
|
458
|
-
return;
|
|
459
|
-
const id = (_a = vnode.props) === null || _a === void 0 ? void 0 : _a['id'];
|
|
460
|
-
if ((vnode.type === 'linearGradient' || vnode.type === 'radialGradient') && typeof id === 'string') {
|
|
461
|
-
const props = (_b = vnode.props) !== null && _b !== void 0 ? _b : {};
|
|
462
|
-
const stops = parseStops(vnode);
|
|
463
|
-
if (stops.length > 0) {
|
|
464
|
-
defs.gradients.set(id, {
|
|
465
|
-
kind: vnode.type === 'linearGradient' ? 'linear' : 'radial',
|
|
466
|
-
objectBoundingBox: props['gradientUnits'] !== 'userSpaceOnUse',
|
|
467
|
-
coords: vnode.type === 'linearGradient'
|
|
468
|
-
? { x1: nn(props['x1'], 0), y1: nn(props['y1'], 0), x2: nn(props['x2'], 1), y2: nn(props['y2'], 0) }
|
|
469
|
-
: { cx: nn(props['cx'], 0.5), cy: nn(props['cy'], 0.5), r: nn(props['r'], 0.5) },
|
|
470
|
-
stops,
|
|
471
|
-
});
|
|
472
|
-
}
|
|
473
|
-
}
|
|
474
|
-
else if (vnode.type === 'pattern' && typeof id === 'string') {
|
|
475
|
-
defs.patterns.set(id, vnode);
|
|
476
|
-
}
|
|
477
|
-
else if (vnode.type === 'clipPath' && typeof id === 'string') {
|
|
478
|
-
defs.clipPaths.set(id, vnode);
|
|
479
|
-
}
|
|
480
|
-
for (const child of (_c = vnode.children) !== null && _c !== void 0 ? _c : [])
|
|
481
|
-
walk(child);
|
|
482
|
-
};
|
|
483
|
-
walk(root);
|
|
484
|
-
return defs;
|
|
485
|
-
}
|
|
486
|
-
// ---------------------------------------------------------------------------
|
|
487
|
-
// Document-level resources the painter accumulates while painting.
|
|
488
|
-
// ---------------------------------------------------------------------------
|
|
489
|
-
/** Shadings, deduped by their full dict (same gradient + same geometry = one resource). */
|
|
490
|
-
class ShadingRegistry {
|
|
491
|
-
constructor() {
|
|
492
|
-
this.byDict = new Map();
|
|
493
|
-
}
|
|
494
|
-
nameFor(dict) {
|
|
495
|
-
const existing = this.byDict.get(dict);
|
|
496
|
-
if (existing)
|
|
497
|
-
return existing;
|
|
498
|
-
const name = `Sh${this.byDict.size + 1}`;
|
|
499
|
-
this.byDict.set(dict, name);
|
|
500
|
-
return name;
|
|
501
|
-
}
|
|
502
|
-
entries() {
|
|
503
|
-
return [...this.byDict.entries()].map(([dict, name]) => [name, dict]);
|
|
504
|
-
}
|
|
505
|
-
get size() {
|
|
506
|
-
return this.byDict.size;
|
|
507
|
-
}
|
|
508
|
-
}
|
|
509
|
-
/**
|
|
510
|
-
* Luminosity soft masks — one per distinct (gray alpha-ramp shading, bbox) pair.
|
|
511
|
-
*
|
|
512
|
-
* Each entry becomes a Form XObject painting the alpha ramp as a DEVICEGRAY shading
|
|
513
|
-
* (stop alpha 1 → white, 0 → black) inside a /Transparency group, plus an ExtGState
|
|
514
|
-
* whose /SMask /Luminosity points at it. `gs` that state and every later paint is
|
|
515
|
-
* multiplied by the mask — which is exactly SVG's per-stop opacity.
|
|
516
|
-
*/
|
|
517
|
-
class SoftMaskRegistry {
|
|
518
|
-
constructor() {
|
|
519
|
-
this.byKey = new Map();
|
|
520
|
-
}
|
|
521
|
-
nameFor(shading, bbox) {
|
|
522
|
-
const key = `${bbox}|${shading}`;
|
|
523
|
-
const existing = this.byKey.get(key);
|
|
524
|
-
if (existing)
|
|
525
|
-
return existing.name;
|
|
526
|
-
const name = `GSM${this.byKey.size + 1}`;
|
|
527
|
-
this.byKey.set(key, { name, shading, bbox });
|
|
528
|
-
return name;
|
|
529
|
-
}
|
|
530
|
-
entries() {
|
|
531
|
-
return [...this.byKey.values()];
|
|
532
|
-
}
|
|
533
|
-
}
|
|
534
|
-
/** Images, deduped by href — one XObject however many times a data URL is drawn. */
|
|
535
|
-
class ImageRegistry {
|
|
536
|
-
constructor() {
|
|
537
|
-
/** null = decode failed (already warned) — remembered so one bad image warns once. */
|
|
538
|
-
this.byHref = new Map();
|
|
539
|
-
this.count = 0;
|
|
540
|
-
}
|
|
541
|
-
resolve(href, warn) {
|
|
542
|
-
const cached = this.byHref.get(href);
|
|
543
|
-
if (cached !== undefined)
|
|
544
|
-
return cached;
|
|
545
|
-
const image = (0, png_1.decodeDataUrlImage)(href, warn);
|
|
546
|
-
const entry = image ? { name: `Im${++this.count}`, image } : null;
|
|
547
|
-
this.byHref.set(href, entry);
|
|
548
|
-
return entry;
|
|
549
|
-
}
|
|
550
|
-
entries() {
|
|
551
|
-
return [...this.byHref.values()].filter((e) => e !== null);
|
|
552
|
-
}
|
|
553
|
-
}
|
|
554
|
-
/**
|
|
555
|
-
* Walk the tree, painting into the content stream.
|
|
556
|
-
*
|
|
557
|
-
* There is no parent-matrix parameter here on purpose: PDF's CTM is STATEFUL, and `q`/`Q`
|
|
558
|
-
* are a real stack. So a group's transform is pushed with `cm` and popped with `Q`, and
|
|
559
|
-
* the composition happens in the PDF itself — exactly as it does in SVG. Threading an
|
|
560
|
-
* accumulated matrix through as well would apply every transform twice.
|
|
561
|
-
*/
|
|
562
|
-
function paint(vnode, stream, ctx) {
|
|
563
|
-
var _a;
|
|
564
|
-
if (!vnode || typeof vnode !== 'object' || typeof vnode.type !== 'string')
|
|
565
|
-
return;
|
|
566
|
-
if (NON_PAINTING.has(vnode.type))
|
|
567
|
-
return;
|
|
568
|
-
// The CASCADE, resolved — see `resolved()`. Everything below reads from this map, never
|
|
569
|
-
// from the raw props, because in CSS mode the raw props carry no paint at all.
|
|
570
|
-
const style = resolved(vnode, ctx);
|
|
571
|
-
if (style['display'] === 'none')
|
|
572
|
-
return;
|
|
573
|
-
if (vnode.type === 'foreignObject') {
|
|
574
|
-
ctx.warnings.push('foreignObject cannot be represented in PDF (it is HTML, and PDF has no HTML) — omitted. ' +
|
|
575
|
-
'Nodes rendered as HTML components will be missing from the PDF.');
|
|
576
|
-
return;
|
|
577
|
-
}
|
|
578
|
-
// A blur is a filter, and PDF has no filters. Dropping the element beats drawing the
|
|
579
|
-
// node shadow as a hard black slab.
|
|
580
|
-
const filter = style['filter'];
|
|
581
|
-
if (typeof filter === 'string' && /blur\(|url\(#grafloria-blur/.test(filter)) {
|
|
582
|
-
ctx.warnings.push('blurred elements (the node drop shadow) are omitted — PDF has no gaussian blur');
|
|
583
|
-
return;
|
|
584
|
-
}
|
|
585
|
-
const local = (0, path_geometry_1.parseTransform)(style['transform']);
|
|
586
|
-
const hasTransform = !isIdentity(local);
|
|
587
|
-
// An element's clip path rides INSIDE its own transform: SVG applies the transform to
|
|
588
|
-
// element and clip alike (they move together), so the clip ops are emitted after `cm`.
|
|
589
|
-
const clip = resolveClip(style['clip-path'], ctx);
|
|
590
|
-
if (clip === 'hide')
|
|
591
|
-
return; // an EMPTY clipPath clips everything away — SVG semantics
|
|
592
|
-
const scoped = hasTransform || clip !== null;
|
|
593
|
-
if (scoped)
|
|
594
|
-
stream.save();
|
|
595
|
-
if (hasTransform)
|
|
596
|
-
stream.concat(local);
|
|
597
|
-
if (clip) {
|
|
598
|
-
for (const op of clip)
|
|
599
|
-
stream.push(op);
|
|
600
|
-
stream.push('W n');
|
|
601
|
-
}
|
|
602
|
-
drawElement(vnode, style, stream, ctx);
|
|
603
|
-
for (const child of (_a = vnode.children) !== null && _a !== void 0 ? _a : []) {
|
|
604
|
-
if (child && typeof child === 'object')
|
|
605
|
-
paint(child, stream, ctx);
|
|
606
|
-
}
|
|
607
|
-
if (scoped)
|
|
608
|
-
stream.restore();
|
|
609
|
-
}
|
|
610
|
-
/**
|
|
611
|
-
* `clip-path: url(#…)` → the clip's PDF path ops, or null for "paint unclipped", or
|
|
612
|
-
* 'hide' when the clip resolves to nothing (SVG: an empty clip path renders nothing).
|
|
613
|
-
*
|
|
614
|
-
* Multiple clip shapes concatenate into ONE path before a single `W n` — nonzero winding
|
|
615
|
-
* over same-direction subpaths is their union, which is SVG's multi-child semantics.
|
|
616
|
-
* Every refusal (missing def, objectBoundingBox units) WARNS and paints unclipped:
|
|
617
|
-
* bleeding content is a visible flaw, silently vanished content is a lost diagram.
|
|
618
|
-
*/
|
|
619
|
-
function resolveClip(value, ctx) {
|
|
620
|
-
var _a, _b, _c;
|
|
621
|
-
if (typeof value !== 'string')
|
|
622
|
-
return null;
|
|
623
|
-
const ref = /^url\(#([^)]+)\)$/.exec(value.trim());
|
|
624
|
-
if (!ref)
|
|
625
|
-
return value.trim() === 'none' ? null : null;
|
|
626
|
-
const def = ctx.defs.clipPaths.get(ref[1]);
|
|
627
|
-
if (!def) {
|
|
628
|
-
ctx.warnings.push(`a clip-path references "#${ref[1]}", which is not in the tree — the content is painted UNCLIPPED`);
|
|
629
|
-
return null;
|
|
630
|
-
}
|
|
631
|
-
if (((_a = def.props) === null || _a === void 0 ? void 0 : _a['clipPathUnits']) === 'objectBoundingBox') {
|
|
632
|
-
ctx.warnings.push('a clipPath with clipPathUnits="objectBoundingBox" is not supported — the content is painted UNCLIPPED');
|
|
633
|
-
return null;
|
|
634
|
-
}
|
|
635
|
-
const ops = [];
|
|
636
|
-
for (const child of (_b = def.children) !== null && _b !== void 0 ? _b : []) {
|
|
637
|
-
if (!child || typeof child !== 'object')
|
|
638
|
-
continue;
|
|
639
|
-
const childOps = geometryOps(child, resolved(child, ctx));
|
|
640
|
-
if (childOps)
|
|
641
|
-
ops.push(...childOps);
|
|
642
|
-
if ((_c = child.props) === null || _c === void 0 ? void 0 : _c['transform']) {
|
|
643
|
-
ctx.warnings.push('a transform on a clipPath child is ignored — the untransformed shape clips');
|
|
644
|
-
}
|
|
645
|
-
}
|
|
646
|
-
return ops.length > 0 ? ops : 'hide';
|
|
647
|
-
}
|
|
648
|
-
function isIdentity(m) {
|
|
649
|
-
return m.a === 1 && m.b === 0 && m.c === 0 && m.d === 1 && m.e === 0 && m.f === 0;
|
|
650
|
-
}
|
|
651
|
-
/** A `url(#…)` reference's target id, or null. */
|
|
652
|
-
function urlRefId(value) {
|
|
653
|
-
if (typeof value !== 'string')
|
|
654
|
-
return null;
|
|
655
|
-
const ref = /^url\(#([^)]+)\)$/.exec(value.trim());
|
|
656
|
-
return ref ? ref[1] : null;
|
|
657
|
-
}
|
|
658
|
-
/**
|
|
659
|
-
* Resolve a paint value to a FLAT colour, degrading paint servers with a warning.
|
|
660
|
-
*
|
|
661
|
-
* This is the fallback path only: gradient FILLS on shapes render as real shadings and
|
|
662
|
-
* never come through here. What does: gradient strokes, gradient-filled text, and
|
|
663
|
-
* patterns — each flattened to its most honest stand-in colour, each warned with the
|
|
664
|
-
* caller's own reason (`why`), so the fidelity report says exactly what degraded.
|
|
665
|
-
*/
|
|
666
|
-
function flattenedPaint(value, ctx, why) {
|
|
667
|
-
var _a, _b;
|
|
668
|
-
const id = urlRefId(value);
|
|
669
|
-
if (id === null)
|
|
670
|
-
return (0, pdf_primitives_1.parsePdfColor)(value);
|
|
671
|
-
const gradient = ctx.defs.gradients.get(id);
|
|
672
|
-
if (gradient) {
|
|
673
|
-
ctx.warnings.push(why);
|
|
674
|
-
return gradient.stops[0].color;
|
|
675
|
-
}
|
|
676
|
-
const pattern = ctx.defs.patterns.get(id);
|
|
677
|
-
if (pattern) {
|
|
678
|
-
// The most honest stand-in for a pattern is the field its marks sit on — its
|
|
679
|
-
// background rect's fill, when it has one.
|
|
680
|
-
ctx.warnings.push('a pattern paint was flattened to its background colour — PDF tiling patterns are not implemented');
|
|
681
|
-
for (const child of (_a = pattern.children) !== null && _a !== void 0 ? _a : []) {
|
|
682
|
-
const color = (0, pdf_primitives_1.parsePdfColor)((_b = child === null || child === void 0 ? void 0 : child.props) === null || _b === void 0 ? void 0 : _b['fill']);
|
|
683
|
-
if ((child === null || child === void 0 ? void 0 : child.type) === 'rect' && color)
|
|
684
|
-
return color;
|
|
685
|
-
}
|
|
686
|
-
return null;
|
|
687
|
-
}
|
|
688
|
-
ctx.warnings.push(`a paint references "url(#${id})", which is not in the tree — not painted`);
|
|
689
|
-
return null;
|
|
690
|
-
}
|
|
691
|
-
const COLOR_CHANNELS = s => [s.color.r, s.color.g, s.color.b];
|
|
692
|
-
/** Stop alpha as DeviceGray luminosity: 1 → white (keep), 0 → black (mask away). */
|
|
693
|
-
const ALPHA_CHANNELS = s => [s.alpha];
|
|
694
|
-
/** Type 2 (exponential) function between two stops — PDF's native two-value ramp. */
|
|
695
|
-
function rampFunction(from, to, channels) {
|
|
696
|
-
const c = (s) => `[${channels(s).map(pdf_primitives_1.num).join(' ')}]`;
|
|
697
|
-
return `<< /FunctionType 2 /Domain [0 1] /C0 ${c(from)} /C1 ${c(to)} /N 1 >>`;
|
|
698
|
-
}
|
|
699
|
-
/** 2 stops → one Type 2; more → a Type 3 stitching of Type 2 ramps at the stop offsets. */
|
|
700
|
-
function shadingFunction(stops, channels) {
|
|
701
|
-
// Pad the domain: SVG pads before the first and after the last stop with their colours.
|
|
702
|
-
const padded = [...stops];
|
|
703
|
-
if (padded[0].offset > 0)
|
|
704
|
-
padded.unshift(Object.assign(Object.assign({}, padded[0]), { offset: 0 }));
|
|
705
|
-
if (padded[padded.length - 1].offset < 1)
|
|
706
|
-
padded.push(Object.assign(Object.assign({}, padded[padded.length - 1]), { offset: 1 }));
|
|
707
|
-
if (padded.length === 1)
|
|
708
|
-
padded.push(Object.assign(Object.assign({}, padded[0]), { offset: 1 }));
|
|
709
|
-
if (padded.length === 2)
|
|
710
|
-
return rampFunction(padded[0], padded[1], channels);
|
|
711
|
-
// /Bounds must ascend strictly inside (0,1) — two stops at one offset (a hard colour
|
|
712
|
-
// break) become an epsilon-wide ramp, which is what it looks like at any zoom.
|
|
713
|
-
const bounds = [];
|
|
714
|
-
let previous = 0;
|
|
715
|
-
for (let i = 1; i < padded.length - 1; i++) {
|
|
716
|
-
const bound = Math.min(Math.max(padded[i].offset, previous + 0.0001), 0.9999);
|
|
717
|
-
bounds.push(bound);
|
|
718
|
-
previous = bound;
|
|
719
|
-
}
|
|
720
|
-
const functions = [];
|
|
721
|
-
for (let i = 0; i < padded.length - 1; i++)
|
|
722
|
-
functions.push(rampFunction(padded[i], padded[i + 1], channels));
|
|
723
|
-
return (`<< /FunctionType 3 /Domain [0 1] /Functions [${functions.join(' ')}] ` +
|
|
724
|
-
`/Bounds [${bounds.map(pdf_primitives_1.num).join(' ')}] /Encode [${functions.map(() => '0 1').join(' ')}] >>`);
|
|
725
|
-
}
|
|
726
|
-
/**
|
|
727
|
-
* The shading dicts for a gradient as used by ONE element (objectBoundingBox coords
|
|
728
|
-
* depend on the element's box), or null when the box cannot be determined.
|
|
729
|
-
*/
|
|
730
|
-
function shadingDictFor(gradient, vnode, ctx) {
|
|
731
|
-
let geometry;
|
|
732
|
-
if (gradient.kind === 'linear') {
|
|
733
|
-
let { x1, y1, x2, y2 } = gradient.coords;
|
|
734
|
-
if (gradient.objectBoundingBox) {
|
|
735
|
-
const box = (0, bounds_1.vnodeBounds)(vnode);
|
|
736
|
-
if (!box)
|
|
737
|
-
return null;
|
|
738
|
-
x1 = box.x + x1 * box.width;
|
|
739
|
-
y1 = box.y + y1 * box.height;
|
|
740
|
-
x2 = box.x + x2 * box.width;
|
|
741
|
-
y2 = box.y + y2 * box.height;
|
|
742
|
-
}
|
|
743
|
-
geometry = `/ShadingType 2 /ColorSpace {CS} /Coords [${(0, pdf_primitives_1.num)(x1)} ${(0, pdf_primitives_1.num)(y1)} ${(0, pdf_primitives_1.num)(x2)} ${(0, pdf_primitives_1.num)(y2)}]`;
|
|
744
|
-
}
|
|
745
|
-
else {
|
|
746
|
-
let { cx, cy, r } = gradient.coords;
|
|
747
|
-
if (gradient.objectBoundingBox) {
|
|
748
|
-
const box = (0, bounds_1.vnodeBounds)(vnode);
|
|
749
|
-
if (!box)
|
|
750
|
-
return null;
|
|
751
|
-
cx = box.x + cx * box.width;
|
|
752
|
-
cy = box.y + cy * box.height;
|
|
753
|
-
// SVG's oBB radius against a non-square box is an ellipse (via gradientTransform);
|
|
754
|
-
// the normalised diagonal is the spec's own circle-equivalent and the honest circle.
|
|
755
|
-
r = r * (Math.hypot(box.width, box.height) / Math.SQRT2);
|
|
756
|
-
}
|
|
757
|
-
// PDF radial coords are [x0 y0 r0 x1 y1 r1]: inner circle (SVG's focal, radius 0) to
|
|
758
|
-
// the outer circle. The capture emits no focal point, so it sits at the centre.
|
|
759
|
-
geometry = `/ShadingType 3 /ColorSpace {CS} /Coords [${(0, pdf_primitives_1.num)(cx)} ${(0, pdf_primitives_1.num)(cy)} 0 ${(0, pdf_primitives_1.num)(cx)} ${(0, pdf_primitives_1.num)(cy)} ${(0, pdf_primitives_1.num)(r)}]`;
|
|
760
|
-
}
|
|
761
|
-
// /Extend [true true] = SVG's default spreadMethod="pad": both ends run on.
|
|
762
|
-
const dict = (cs, channels) => `<< ${geometry.replace('{CS}', cs)} /Function ${shadingFunction(gradient.stops, channels)} /Extend [true true] >>`;
|
|
763
|
-
const color = dict('/DeviceRGB', COLOR_CHANNELS);
|
|
764
|
-
// Translucent stops → a luminosity soft mask painting the SAME geometry as a gray
|
|
765
|
-
// alpha ramp. The mask form's /BBox must cover everything the colour shading can
|
|
766
|
-
// reach (the element, since the sh is clipped to it) — outside the BBox the mask's
|
|
767
|
-
// BLACK backdrop rules, i.e. alpha 0, so an under-sized box eats the element's edge.
|
|
768
|
-
if (gradient.stops.some(stop => stop.alpha < 1)) {
|
|
769
|
-
const box = (0, bounds_1.vnodeBounds)(vnode);
|
|
770
|
-
if (!box) {
|
|
771
|
-
ctx.warnings.push('a gradient with stop opacity is painted OPAQUE — its soft-mask form needs an element ' +
|
|
772
|
-
'bounding box that could not be determined');
|
|
773
|
-
return { color, mask: null };
|
|
774
|
-
}
|
|
775
|
-
const pad = 8; // anti-aliasing head-room; the shape clip bounds the real paint anyway
|
|
776
|
-
const bbox = `${(0, pdf_primitives_1.num)(box.x - pad)} ${(0, pdf_primitives_1.num)(box.y - pad)} ` +
|
|
777
|
-
`${(0, pdf_primitives_1.num)(box.x + box.width + pad)} ${(0, pdf_primitives_1.num)(box.y + box.height + pad)}`;
|
|
778
|
-
return { color, mask: { shading: dict('/DeviceGray', ALPHA_CHANNELS), bbox } };
|
|
779
|
-
}
|
|
780
|
-
return { color, mask: null };
|
|
781
|
-
}
|
|
782
|
-
function drawElement(vnode, style, stream, ctx) {
|
|
783
|
-
if (vnode.type === 'text') {
|
|
784
|
-
drawText(vnode, style, stream, ctx);
|
|
785
|
-
return;
|
|
786
|
-
}
|
|
787
|
-
if (vnode.type === 'image') {
|
|
788
|
-
drawImage(style, stream, ctx);
|
|
789
|
-
return;
|
|
790
|
-
}
|
|
791
|
-
const ops = geometryOps(vnode, style);
|
|
792
|
-
if (!ops || ops.length === 0)
|
|
793
|
-
return;
|
|
794
|
-
// A gradient FILL gets a real shading; everything else resolves to a flat colour.
|
|
795
|
-
const fillId = urlRefId(style['fill']);
|
|
796
|
-
const gradient = fillId ? ctx.defs.gradients.get(fillId) : undefined;
|
|
797
|
-
let shadingName = null;
|
|
798
|
-
let softMaskName = null;
|
|
799
|
-
let fill = null;
|
|
800
|
-
if (gradient) {
|
|
801
|
-
const shading = shadingDictFor(gradient, vnode, ctx);
|
|
802
|
-
if (shading) {
|
|
803
|
-
shadingName = ctx.shadings.nameFor(shading.color);
|
|
804
|
-
if (shading.mask)
|
|
805
|
-
softMaskName = ctx.softMasks.nameFor(shading.mask.shading, shading.mask.bbox);
|
|
806
|
-
}
|
|
807
|
-
else {
|
|
808
|
-
ctx.warnings.push('a gradient fill was flattened to its first stop — its objectBoundingBox coords need an ' +
|
|
809
|
-
'element bounding box that could not be determined');
|
|
810
|
-
fill = gradient.stops[0].color;
|
|
811
|
-
}
|
|
812
|
-
}
|
|
813
|
-
else {
|
|
814
|
-
// The gradient branch above is the only gradient path, so the `why` here can only
|
|
815
|
-
// ever fire for patterns / dangling refs, which carry their own messages.
|
|
816
|
-
fill = flattenedPaint(style['fill'], ctx, 'a gradient fill was flattened to its first stop');
|
|
817
|
-
}
|
|
818
|
-
const stroke = flattenedPaint(style['stroke'], ctx, 'a gradient STROKE was flattened to its first stop — painting a shading through a stroke ' +
|
|
819
|
-
'needs the stroke outline as a clipping path, which this exporter does not build');
|
|
820
|
-
// `1px` is a legal CSS width and `Number('1px')` is NaN — parseFloat, not Number.
|
|
821
|
-
const strokeWidth = len(style['stroke-width'], 1);
|
|
822
|
-
const willFill = fill !== null;
|
|
823
|
-
const willStroke = stroke !== null && strokeWidth > 0;
|
|
824
|
-
if (!shadingName && !willFill && !willStroke)
|
|
825
|
-
return;
|
|
826
|
-
const alpha = nn(style['opacity'], 1) *
|
|
827
|
-
nn(style['fill-opacity'], 1) *
|
|
828
|
-
(fill ? (0, pdf_primitives_1.parseColorAlpha)(style['fill']) : 1);
|
|
829
|
-
if (shadingName) {
|
|
830
|
-
// Clip to the shape, paint the shading, pop. The clip is why W n precedes sh.
|
|
831
|
-
// The soft-mask gs (stop opacity) comes FIRST: the mask form's coordinate space is
|
|
832
|
-
// fixed at gs time, and it must be the same current user space the sh paints in.
|
|
833
|
-
// The matching Q resets the SMask — nothing after this block stays masked.
|
|
834
|
-
stream.save();
|
|
835
|
-
if (softMaskName)
|
|
836
|
-
stream.push(`/${softMaskName} gs`);
|
|
837
|
-
if (alpha < 1)
|
|
838
|
-
stream.setAlpha(Math.max(0, alpha));
|
|
839
|
-
for (const op of ops)
|
|
840
|
-
stream.push(op);
|
|
841
|
-
stream.push('W n');
|
|
842
|
-
stream.push(`/${shadingName} sh`);
|
|
843
|
-
stream.restore();
|
|
844
|
-
if (willStroke) {
|
|
845
|
-
// Second pass: the shading consumed the path as its clip, so stroke a fresh one.
|
|
846
|
-
const strokeAlpha = nn(style['opacity'], 1);
|
|
847
|
-
stream.save();
|
|
848
|
-
if (strokeAlpha < 1)
|
|
849
|
-
stream.setAlpha(Math.max(0, strokeAlpha));
|
|
850
|
-
stream.setStroke(stroke);
|
|
851
|
-
stream.setLineWidth(strokeWidth);
|
|
852
|
-
stream.setDash(normaliseDash(style['stroke-dasharray']));
|
|
853
|
-
for (const op of ops)
|
|
854
|
-
stream.push(op);
|
|
855
|
-
stream.push('S');
|
|
856
|
-
stream.restore();
|
|
857
|
-
}
|
|
858
|
-
return;
|
|
859
|
-
}
|
|
860
|
-
stream.save();
|
|
861
|
-
if (alpha < 1)
|
|
862
|
-
stream.setAlpha(Math.max(0, alpha));
|
|
863
|
-
if (fill)
|
|
864
|
-
stream.setFill(fill);
|
|
865
|
-
if (stroke && willStroke) {
|
|
866
|
-
stream.setStroke(stroke);
|
|
867
|
-
stream.setLineWidth(strokeWidth);
|
|
868
|
-
stream.setDash(normaliseDash(style['stroke-dasharray']));
|
|
869
|
-
}
|
|
870
|
-
for (const op of ops)
|
|
871
|
-
stream.push(op);
|
|
872
|
-
// B = fill then stroke; f = fill; S = stroke.
|
|
873
|
-
stream.push(willFill && willStroke ? 'B' : willFill ? 'f' : 'S');
|
|
874
|
-
stream.restore();
|
|
875
|
-
}
|
|
876
|
-
/**
|
|
877
|
-
* An <image> → its XObject invocation: `q`, a placement `cm`, `Do`, `Q`.
|
|
878
|
-
*
|
|
879
|
-
* The placement matrix is [w 0 0 -h x y+h]: Do paints the unit square with (0,0) at the
|
|
880
|
-
* image's BOTTOM-left, while the page CTM is y-down SVG space — the -h re-flips so the
|
|
881
|
-
* top pixel row lands at y, not upside down at y+h.
|
|
882
|
-
*/
|
|
883
|
-
function drawImage(style, stream, ctx) {
|
|
884
|
-
var _a;
|
|
885
|
-
const href = (_a = style['href']) !== null && _a !== void 0 ? _a : style['xlink:href'];
|
|
886
|
-
if (typeof href !== 'string' || href.trim() === '')
|
|
887
|
-
return;
|
|
888
|
-
const entry = ctx.images.resolve(href, message => ctx.warnings.push(message));
|
|
889
|
-
if (!entry)
|
|
890
|
-
return; // refused and already warned (external URL, interlaced, corrupt…)
|
|
891
|
-
const width = len(style['width'], entry.image.width);
|
|
892
|
-
const height = len(style['height'], entry.image.height);
|
|
893
|
-
if (width <= 0 || height <= 0)
|
|
894
|
-
return;
|
|
895
|
-
const alpha = nn(style['opacity'], 1);
|
|
896
|
-
stream.save();
|
|
897
|
-
if (alpha < 1)
|
|
898
|
-
stream.setAlpha(Math.max(0, alpha));
|
|
899
|
-
stream.concat({ a: width, b: 0, c: 0, d: -height, e: len(style['x']), f: len(style['y']) + height });
|
|
900
|
-
stream.push(`/${entry.name} Do`);
|
|
901
|
-
stream.restore();
|
|
902
|
-
}
|
|
903
|
-
/**
|
|
904
|
-
* A CSS length → number. `parseFloat`, because the flattener emits real CSS values and
|
|
905
|
-
* `stroke-width: 1px` is one of them — `Number('1px')` is NaN, which would silently turn
|
|
906
|
-
* every themed stroke into width 0 (i.e. invisible links).
|
|
907
|
-
*/
|
|
908
|
-
function len(value, fallback = 0) {
|
|
909
|
-
if (typeof value === 'number')
|
|
910
|
-
return Number.isFinite(value) ? value : fallback;
|
|
911
|
-
if (typeof value !== 'string')
|
|
912
|
-
return fallback;
|
|
913
|
-
const parsed = Number.parseFloat(value);
|
|
914
|
-
return Number.isFinite(parsed) ? parsed : fallback;
|
|
915
|
-
}
|
|
916
|
-
/** `"5,5"` / `"5 5"` → `"5 5"` (PDF wants a space-separated array). */
|
|
917
|
-
function normaliseDash(value) {
|
|
918
|
-
if (typeof value !== 'string' || value.trim() === '' || value.trim() === 'none')
|
|
919
|
-
return null;
|
|
920
|
-
const parts = value
|
|
921
|
-
.split(/[\s,]+/)
|
|
922
|
-
.map(Number)
|
|
923
|
-
.filter(n => Number.isFinite(n) && n >= 0);
|
|
924
|
-
return parts.length ? parts.map(pdf_primitives_1.num).join(' ') : null;
|
|
925
|
-
}
|
|
926
|
-
function geometryOps(vnode, style) {
|
|
927
|
-
switch (vnode.type) {
|
|
928
|
-
case 'rect':
|
|
929
|
-
return (0, pdf_path_1.pdfRect)(len(style['x']), len(style['y']), len(style['width']), len(style['height']), len(style['rx']), len(style['ry']));
|
|
930
|
-
case 'circle': {
|
|
931
|
-
const r = len(style['r']);
|
|
932
|
-
return r > 0 ? (0, pdf_path_1.pdfCircle)(len(style['cx']), len(style['cy']), r) : null;
|
|
933
|
-
}
|
|
934
|
-
case 'ellipse':
|
|
935
|
-
return (0, pdf_path_1.pdfEllipse)(len(style['cx']), len(style['cy']), len(style['rx']), len(style['ry']));
|
|
936
|
-
case 'line':
|
|
937
|
-
return (0, pdf_path_1.pdfLine)(len(style['x1']), len(style['y1']), len(style['x2']), len(style['y2']));
|
|
938
|
-
case 'polygon':
|
|
939
|
-
case 'polyline':
|
|
940
|
-
return (0, pdf_path_1.pdfPoly)(style['points'], vnode.type === 'polygon');
|
|
941
|
-
case 'path': {
|
|
942
|
-
const d = style['d'];
|
|
943
|
-
return typeof d === 'string' && d.trim() !== '' ? (0, pdf_path_1.svgPathToPdf)(d) : null;
|
|
944
|
-
}
|
|
945
|
-
default:
|
|
946
|
-
return null; // g, svg, tspan: containers, no geometry of their own
|
|
947
|
-
}
|
|
948
|
-
}
|
|
949
|
-
function parsePoints(points) {
|
|
950
|
-
if (typeof points !== 'string')
|
|
951
|
-
return [];
|
|
952
|
-
const nums = points.trim().split(/[\s,]+/).map(Number).filter(n => Number.isFinite(n));
|
|
953
|
-
const out = [];
|
|
954
|
-
for (let i = 0; i + 1 < nums.length; i += 2)
|
|
955
|
-
out.push([nums[i], nums[i + 1]]);
|
|
956
|
-
return out;
|
|
957
|
-
}
|
|
958
|
-
/**
|
|
959
|
-
* Real PDF text: `BT … Tj … ET`. Selectable, searchable, copy-pasteable.
|
|
960
|
-
*
|
|
961
|
-
* The one fiddly bit is the TEXT MATRIX. The page CTM flips y (PDF is y-up, SVG is
|
|
962
|
-
* y-down), and text drawn under that flip would come out MIRRORED. So the text matrix
|
|
963
|
-
* un-flips locally — `1 0 0 -1 x y` — which puts the glyphs upright at the right place.
|
|
964
|
-
*/
|
|
965
|
-
function drawText(vnode, style, stream, ctx) {
|
|
966
|
-
var _a, _b, _c;
|
|
967
|
-
const content = textContentOf(vnode);
|
|
968
|
-
if (!content.trim())
|
|
969
|
-
return;
|
|
970
|
-
// `font-size: 14px` — parseFloat, not Number (see `len`).
|
|
971
|
-
const fontSize = len(style['font-size'], 12);
|
|
972
|
-
if (fontSize <= 0)
|
|
973
|
-
return;
|
|
974
|
-
const font = (0, pdf_primitives_1.pickBaseFont)(style['font-family'], style['font-weight'], style['font-style']);
|
|
975
|
-
const fillValue = (_a = style['fill']) !== null && _a !== void 0 ? _a : style['color'];
|
|
976
|
-
const anchor = String((_b = style['text-anchor']) !== null && _b !== void 0 ? _b : 'start');
|
|
977
|
-
const x = len(style['x']);
|
|
978
|
-
const y = len(style['y']);
|
|
979
|
-
const lines = content.split('\n');
|
|
980
|
-
const opacity = nn(style['opacity'], 1) * nn(style['fill-opacity'], 1);
|
|
981
|
-
// A gradient-filled text gets the REAL gradient: text rendering mode 7 adds the glyph
|
|
982
|
-
// outlines to the CLIP path at ET, and the shading is then painted through them —
|
|
983
|
-
// the same clipped-sh technique shapes use, with glyphs for geometry.
|
|
984
|
-
const gradientId = urlRefId(fillValue);
|
|
985
|
-
const gradient = gradientId ? ctx.defs.gradients.get(gradientId) : undefined;
|
|
986
|
-
const shading = gradient ? shadingDictFor(gradient, vnode, ctx) : null;
|
|
987
|
-
const emitLine = (line, index) => {
|
|
988
|
-
const encoded = (0, pdf_primitives_1.encodeWinAnsi)(line);
|
|
989
|
-
if (encoded.unsupported.length > 0) {
|
|
990
|
-
ctx.warnings.push(`text "${line}" contains characters the PDF base-14 fonts cannot encode ` +
|
|
991
|
-
`(${[...new Set(encoded.unsupported)].join('')}) — they are replaced with '?'. ` +
|
|
992
|
-
`Embedding a font that covers them would need a font subsetter, which this exporter does not have.`);
|
|
993
|
-
}
|
|
994
|
-
const width = (0, pdf_primitives_1.measureBaseFont)(font, line, fontSize);
|
|
995
|
-
const left = anchor === 'middle' ? x - width / 2 : anchor === 'end' ? x - width : x;
|
|
996
|
-
const lineY = y + index * fontSize;
|
|
997
|
-
// Un-flip: the page CTM has d = -scale, so without this the glyphs render upside down.
|
|
998
|
-
stream.push(`1 0 0 -1 ${(0, pdf_primitives_1.num)(left)} ${(0, pdf_primitives_1.num)(lineY)} Tm`);
|
|
999
|
-
stream.push(`${(0, pdf_primitives_1.pdfString)(encoded.bytes)} Tj`);
|
|
1000
|
-
};
|
|
1001
|
-
if (shading) {
|
|
1002
|
-
const shadingName = ctx.shadings.nameFor(shading.color);
|
|
1003
|
-
const softMaskName = shading.mask
|
|
1004
|
-
? ctx.softMasks.nameFor(shading.mask.shading, shading.mask.bbox)
|
|
1005
|
-
: null;
|
|
1006
|
-
stream.save();
|
|
1007
|
-
// Mask gs first — its coordinate space is fixed at gs time (see drawElement).
|
|
1008
|
-
if (softMaskName)
|
|
1009
|
-
stream.push(`/${softMaskName} gs`);
|
|
1010
|
-
if (opacity < 1)
|
|
1011
|
-
stream.setAlpha(Math.max(0, opacity));
|
|
1012
|
-
stream.setFont(font, fontSize);
|
|
1013
|
-
// ONE BT/ET for every line: each ET intersects the block's accumulated outlines with
|
|
1014
|
-
// the current clip, so per-line blocks would intersect line 1's clip with line 2's —
|
|
1015
|
-
// empty — and the gradient would paint nothing.
|
|
1016
|
-
stream.push('BT');
|
|
1017
|
-
stream.push('7 Tr'); // mode 7: add to clip, paint nothing
|
|
1018
|
-
lines.forEach(emitLine);
|
|
1019
|
-
stream.push('ET');
|
|
1020
|
-
stream.push(`/${shadingName} sh`);
|
|
1021
|
-
// Q restores both the clip and text mode 0 for whatever paints next.
|
|
1022
|
-
stream.restore();
|
|
1023
|
-
return;
|
|
1024
|
-
}
|
|
1025
|
-
// Reached with a gradient only when shadingDictFor failed (no bounding box for its
|
|
1026
|
-
// objectBoundingBox coords) — the honest degrade is first stop, said out loud.
|
|
1027
|
-
const fill = (_c = flattenedPaint(fillValue, ctx, 'a gradient fill on text was flattened to its first stop — its objectBoundingBox coords ' +
|
|
1028
|
-
'need an element bounding box that could not be determined')) !== null && _c !== void 0 ? _c : { r: 0, g: 0, b: 0 };
|
|
1029
|
-
stream.save();
|
|
1030
|
-
if (opacity < 1)
|
|
1031
|
-
stream.setAlpha(Math.max(0, opacity));
|
|
1032
|
-
stream.setFill(fill);
|
|
1033
|
-
stream.setFont(font, fontSize);
|
|
1034
|
-
lines.forEach((line, index) => {
|
|
1035
|
-
stream.push('BT');
|
|
1036
|
-
emitLine(line, index);
|
|
1037
|
-
stream.push('ET');
|
|
1038
|
-
});
|
|
1039
|
-
stream.restore();
|
|
1040
|
-
}
|
|
1041
|
-
function textContentOf(vnode) {
|
|
1042
|
-
var _a, _b;
|
|
1043
|
-
const own = (_a = vnode.props) === null || _a === void 0 ? void 0 : _a['textContent'];
|
|
1044
|
-
if (typeof own === 'string' && own !== '')
|
|
1045
|
-
return own;
|
|
1046
|
-
const lines = [];
|
|
1047
|
-
for (const child of (_b = vnode.children) !== null && _b !== void 0 ? _b : []) {
|
|
1048
|
-
if (typeof child === 'string') {
|
|
1049
|
-
lines.push(child);
|
|
1050
|
-
}
|
|
1051
|
-
else if (child && typeof child === 'object') {
|
|
1052
|
-
const nested = textContentOf(child);
|
|
1053
|
-
if (nested)
|
|
1054
|
-
lines.push(nested);
|
|
1055
|
-
}
|
|
1056
|
-
}
|
|
1057
|
-
return lines.join('\n');
|
|
1058
|
-
}
|
|
1059
|
-
/** "3 / 7", centred in the bottom margin. Drawn OUTSIDE the clipped content area. */
|
|
1060
|
-
function paintPageNumber(stream, page, total, size, margins) {
|
|
1061
|
-
const label = `${page} / ${total}`;
|
|
1062
|
-
const fontSize = 9;
|
|
1063
|
-
const width = (0, pdf_primitives_1.measureBaseFont)('Helvetica', label, fontSize);
|
|
1064
|
-
stream.save();
|
|
1065
|
-
stream.setFill({ r: 0.4, g: 0.4, b: 0.4 });
|
|
1066
|
-
stream.setFont('Helvetica', fontSize);
|
|
1067
|
-
stream.push('BT');
|
|
1068
|
-
stream.push(`${(0, pdf_primitives_1.num)((size.width - width) / 2)} ${(0, pdf_primitives_1.num)(Math.max(12, margins.bottom / 2))} Td`);
|
|
1069
|
-
stream.push(`${(0, pdf_primitives_1.pdfString)((0, pdf_primitives_1.encodeWinAnsi)(label).bytes)} Tj`);
|
|
1070
|
-
stream.push('ET');
|
|
1071
|
-
stream.restore();
|
|
1072
|
-
}
|
|
1073
|
-
function dedupe(warnings) {
|
|
1074
|
-
return [...new Set(warnings)];
|
|
1075
|
-
}
|
|
1076
|
-
//# sourceMappingURL=pdf-export.js.map
|