@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.
Files changed (1083) hide show
  1. package/package.json +1 -1
  2. package/src/libs/element/src/index.d.ts +0 -92
  3. package/src/libs/element/src/index.js +0 -576
  4. package/src/libs/element/src/lib/dashboard-kit/dashboard.d.ts +0 -345
  5. package/src/libs/element/src/lib/dashboard-kit/dashboard.js +0 -594
  6. package/src/libs/element/src/lib/dashboard-kit/grid-binder.d.ts +0 -277
  7. package/src/libs/element/src/lib/dashboard-kit/grid-binder.js +0 -1636
  8. package/src/libs/element/src/lib/dashboard-kit/grid-mapping.d.ts +0 -141
  9. package/src/libs/element/src/lib/dashboard-kit/grid-mapping.js +0 -176
  10. package/src/libs/element/src/lib/dashboard-kit/index.d.ts +0 -5
  11. package/src/libs/element/src/lib/dashboard-kit/index.js +0 -33
  12. package/src/libs/element/src/lib/dashboard-kit/styles.d.ts +0 -25
  13. package/src/libs/element/src/lib/dashboard-kit/styles.js +0 -209
  14. package/src/libs/element/src/lib/dashboard-kit/widgets.d.ts +0 -112
  15. package/src/libs/element/src/lib/dashboard-kit/widgets.js +0 -389
  16. package/src/libs/element/src/lib/diagram-kit/card.d.ts +0 -75
  17. package/src/libs/element/src/lib/diagram-kit/card.js +0 -209
  18. package/src/libs/element/src/lib/diagram-kit/editing.d.ts +0 -58
  19. package/src/libs/element/src/lib/diagram-kit/editing.js +0 -453
  20. package/src/libs/element/src/lib/diagram-kit/er.d.ts +0 -73
  21. package/src/libs/element/src/lib/diagram-kit/er.js +0 -163
  22. package/src/libs/element/src/lib/diagram-kit/handles.d.ts +0 -181
  23. package/src/libs/element/src/lib/diagram-kit/handles.js +0 -325
  24. package/src/libs/element/src/lib/diagram-kit/index.d.ts +0 -10
  25. package/src/libs/element/src/lib/diagram-kit/index.js +0 -55
  26. package/src/libs/element/src/lib/diagram-kit/join-guidance.d.ts +0 -116
  27. package/src/libs/element/src/lib/diagram-kit/join-guidance.js +0 -331
  28. package/src/libs/element/src/lib/diagram-kit/rows.d.ts +0 -53
  29. package/src/libs/element/src/lib/diagram-kit/rows.js +0 -147
  30. package/src/libs/element/src/lib/diagram-kit/styles.d.ts +0 -18
  31. package/src/libs/element/src/lib/diagram-kit/styles.js +0 -122
  32. package/src/libs/element/src/lib/diagram-kit/uml.d.ts +0 -59
  33. package/src/libs/element/src/lib/diagram-kit/uml.js +0 -138
  34. package/src/libs/element/src/lib/diagram-kit/update.d.ts +0 -133
  35. package/src/libs/element/src/lib/diagram-kit/update.js +0 -251
  36. package/src/libs/element/src/lib/grafloria-flow-element.d.ts +0 -48
  37. package/src/libs/element/src/lib/grafloria-flow-element.js +0 -271
  38. package/src/libs/element/src/lib/grafloria.d.ts +0 -72
  39. package/src/libs/element/src/lib/grafloria.js +0 -74
  40. package/src/libs/element/src/lib/load.d.ts +0 -72
  41. package/src/libs/element/src/lib/load.js +0 -255
  42. package/src/libs/element/src/lib/node-type-registry.d.ts +0 -39
  43. package/src/libs/element/src/lib/node-type-registry.js +0 -50
  44. package/src/libs/element/src/lib/stencil-kit/builders.d.ts +0 -45
  45. package/src/libs/element/src/lib/stencil-kit/builders.js +0 -24
  46. package/src/libs/element/src/lib/stencil-kit/card-builders.d.ts +0 -2
  47. package/src/libs/element/src/lib/stencil-kit/card-builders.js +0 -108
  48. package/src/libs/element/src/lib/stencil-kit/index.d.ts +0 -7
  49. package/src/libs/element/src/lib/stencil-kit/index.js +0 -19
  50. package/src/libs/element/src/lib/stencil-kit/palette.d.ts +0 -93
  51. package/src/libs/element/src/lib/stencil-kit/palette.js +0 -430
  52. package/src/libs/element/src/lib/stencil-kit/shape-data.d.ts +0 -28
  53. package/src/libs/element/src/lib/stencil-kit/shape-data.js +0 -540
  54. package/src/libs/element/src/lib/stencil-kit/styles.d.ts +0 -2
  55. package/src/libs/element/src/lib/stencil-kit/styles.js +0 -129
  56. package/src/libs/engine/src/adapters/component-adapter.interface.d.ts +0 -302
  57. package/src/libs/engine/src/adapters/component-adapter.interface.js +0 -84
  58. package/src/libs/engine/src/adapters/index.d.ts +0 -7
  59. package/src/libs/engine/src/adapters/index.js +0 -11
  60. package/src/libs/engine/src/clipboard/ClipboardManager.d.ts +0 -81
  61. package/src/libs/engine/src/clipboard/ClipboardManager.js +0 -108
  62. package/src/libs/engine/src/clipboard/index.d.ts +0 -1
  63. package/src/libs/engine/src/clipboard/index.js +0 -6
  64. package/src/libs/engine/src/collab/apply-op.d.ts +0 -42
  65. package/src/libs/engine/src/collab/apply-op.js +0 -939
  66. package/src/libs/engine/src/collab/capture.d.ts +0 -147
  67. package/src/libs/engine/src/collab/capture.js +0 -510
  68. package/src/libs/engine/src/collab/index.d.ts +0 -12
  69. package/src/libs/engine/src/collab/index.js +0 -84
  70. package/src/libs/engine/src/collab/integrity.d.ts +0 -178
  71. package/src/libs/engine/src/collab/integrity.js +0 -438
  72. package/src/libs/engine/src/collab/lww.d.ts +0 -47
  73. package/src/libs/engine/src/collab/lww.js +0 -188
  74. package/src/libs/engine/src/collab/op-log.d.ts +0 -50
  75. package/src/libs/engine/src/collab/op-log.js +0 -167
  76. package/src/libs/engine/src/collab/op.d.ts +0 -120
  77. package/src/libs/engine/src/collab/op.js +0 -118
  78. package/src/libs/engine/src/collab/replica.d.ts +0 -188
  79. package/src/libs/engine/src/collab/replica.js +0 -526
  80. package/src/libs/engine/src/collab/undo.d.ts +0 -106
  81. package/src/libs/engine/src/collab/undo.js +0 -388
  82. package/src/libs/engine/src/commands/Command.d.ts +0 -66
  83. package/src/libs/engine/src/commands/Command.js +0 -64
  84. package/src/libs/engine/src/commands/CommandManager.d.ts +0 -161
  85. package/src/libs/engine/src/commands/CommandManager.js +0 -417
  86. package/src/libs/engine/src/commands/basic/AddGroupCommand.d.ts +0 -13
  87. package/src/libs/engine/src/commands/basic/AddGroupCommand.js +0 -50
  88. package/src/libs/engine/src/commands/basic/AddLinkCommand.d.ts +0 -13
  89. package/src/libs/engine/src/commands/basic/AddLinkCommand.js +0 -50
  90. package/src/libs/engine/src/commands/basic/AddNodeCommand.d.ts +0 -13
  91. package/src/libs/engine/src/commands/basic/AddNodeCommand.js +0 -65
  92. package/src/libs/engine/src/commands/basic/AddToGroupCommand.d.ts +0 -12
  93. package/src/libs/engine/src/commands/basic/AddToGroupCommand.js +0 -73
  94. package/src/libs/engine/src/commands/basic/AlignCommands.d.ts +0 -42
  95. package/src/libs/engine/src/commands/basic/AlignCommands.js +0 -138
  96. package/src/libs/engine/src/commands/basic/CollapseGroupCommand.d.ts +0 -14
  97. package/src/libs/engine/src/commands/basic/CollapseGroupCommand.js +0 -70
  98. package/src/libs/engine/src/commands/basic/CopyCommand.d.ts +0 -29
  99. package/src/libs/engine/src/commands/basic/CopyCommand.js +0 -131
  100. package/src/libs/engine/src/commands/basic/CutCommand.d.ts +0 -49
  101. package/src/libs/engine/src/commands/basic/CutCommand.js +0 -68
  102. package/src/libs/engine/src/commands/basic/DeleteSelectionCommand.d.ts +0 -58
  103. package/src/libs/engine/src/commands/basic/DeleteSelectionCommand.js +0 -309
  104. package/src/libs/engine/src/commands/basic/DuplicateCommand.d.ts +0 -31
  105. package/src/libs/engine/src/commands/basic/DuplicateCommand.js +0 -232
  106. package/src/libs/engine/src/commands/basic/ExpandGroupCommand.d.ts +0 -12
  107. package/src/libs/engine/src/commands/basic/ExpandGroupCommand.js +0 -69
  108. package/src/libs/engine/src/commands/basic/MoveGroupCommand.d.ts +0 -46
  109. package/src/libs/engine/src/commands/basic/MoveGroupCommand.js +0 -77
  110. package/src/libs/engine/src/commands/basic/MoveNodeCommand.d.ts +0 -30
  111. package/src/libs/engine/src/commands/basic/MoveNodeCommand.js +0 -87
  112. package/src/libs/engine/src/commands/basic/NodeZOrderCommands.d.ts +0 -39
  113. package/src/libs/engine/src/commands/basic/NodeZOrderCommands.js +0 -120
  114. package/src/libs/engine/src/commands/basic/PasteCommand.d.ts +0 -33
  115. package/src/libs/engine/src/commands/basic/PasteCommand.js +0 -228
  116. package/src/libs/engine/src/commands/basic/PortCommands.d.ts +0 -22
  117. package/src/libs/engine/src/commands/basic/PortCommands.js +0 -85
  118. package/src/libs/engine/src/commands/basic/ReconnectLinkCommand.d.ts +0 -15
  119. package/src/libs/engine/src/commands/basic/ReconnectLinkCommand.js +0 -59
  120. package/src/libs/engine/src/commands/basic/RemoveFromGroupCommand.d.ts +0 -12
  121. package/src/libs/engine/src/commands/basic/RemoveFromGroupCommand.js +0 -64
  122. package/src/libs/engine/src/commands/basic/RemoveGroupCommand.d.ts +0 -12
  123. package/src/libs/engine/src/commands/basic/RemoveGroupCommand.js +0 -56
  124. package/src/libs/engine/src/commands/basic/RemoveLinkCommand.d.ts +0 -12
  125. package/src/libs/engine/src/commands/basic/RemoveLinkCommand.js +0 -57
  126. package/src/libs/engine/src/commands/basic/RemoveNodeCommand.d.ts +0 -23
  127. package/src/libs/engine/src/commands/basic/RemoveNodeCommand.js +0 -108
  128. package/src/libs/engine/src/commands/basic/ResizeNodeCommand.d.ts +0 -16
  129. package/src/libs/engine/src/commands/basic/ResizeNodeCommand.js +0 -81
  130. package/src/libs/engine/src/commands/basic/RotateNodeCommand.d.ts +0 -37
  131. package/src/libs/engine/src/commands/basic/RotateNodeCommand.js +0 -88
  132. package/src/libs/engine/src/commands/basic/SetFlexItemCommand.d.ts +0 -14
  133. package/src/libs/engine/src/commands/basic/SetFlexItemCommand.js +0 -74
  134. package/src/libs/engine/src/commands/basic/SetGridItemCommand.d.ts +0 -14
  135. package/src/libs/engine/src/commands/basic/SetGridItemCommand.js +0 -74
  136. package/src/libs/engine/src/commands/basic/SetLayoutCommand.d.ts +0 -16
  137. package/src/libs/engine/src/commands/basic/SetLayoutCommand.js +0 -80
  138. package/src/libs/engine/src/commands/basic/SetLinkDisplayLabelCommand.d.ts +0 -28
  139. package/src/libs/engine/src/commands/basic/SetLinkDisplayLabelCommand.js +0 -83
  140. package/src/libs/engine/src/commands/basic/SetLinkLabelCommand.d.ts +0 -24
  141. package/src/libs/engine/src/commands/basic/SetLinkLabelCommand.js +0 -81
  142. package/src/libs/engine/src/commands/basic/SetLinkLabelsCommand.d.ts +0 -14
  143. package/src/libs/engine/src/commands/basic/SetLinkLabelsCommand.js +0 -75
  144. package/src/libs/engine/src/commands/basic/SetLinkPathTypeCommand.d.ts +0 -14
  145. package/src/libs/engine/src/commands/basic/SetLinkPathTypeCommand.js +0 -77
  146. package/src/libs/engine/src/commands/basic/SetLinkPointsCommand.d.ts +0 -32
  147. package/src/libs/engine/src/commands/basic/SetLinkPointsCommand.js +0 -87
  148. package/src/libs/engine/src/commands/basic/SetNodeDataCommand.d.ts +0 -14
  149. package/src/libs/engine/src/commands/basic/SetNodeDataCommand.js +0 -93
  150. package/src/libs/engine/src/commands/basic/SetNodeLabelCommand.d.ts +0 -26
  151. package/src/libs/engine/src/commands/basic/SetNodeLabelCommand.js +0 -81
  152. package/src/libs/engine/src/commands/basic/SetNodeShapeConfigCommand.d.ts +0 -14
  153. package/src/libs/engine/src/commands/basic/SetNodeShapeConfigCommand.js +0 -69
  154. package/src/libs/engine/src/commands/basic/SetNodeStyleCommand.d.ts +0 -15
  155. package/src/libs/engine/src/commands/basic/SetNodeStyleCommand.js +0 -88
  156. package/src/libs/engine/src/commands/basic/SetParentCommand.d.ts +0 -13
  157. package/src/libs/engine/src/commands/basic/SetParentCommand.js +0 -109
  158. package/src/libs/engine/src/commands/basic/SetStrokePointsCommand.d.ts +0 -34
  159. package/src/libs/engine/src/commands/basic/SetStrokePointsCommand.js +0 -86
  160. package/src/libs/engine/src/commands/basic/StrokeLifecycleCommands.d.ts +0 -31
  161. package/src/libs/engine/src/commands/basic/StrokeLifecycleCommands.js +0 -88
  162. package/src/libs/engine/src/commands/basic/UpdateLinkStyleCommand.d.ts +0 -15
  163. package/src/libs/engine/src/commands/basic/UpdateLinkStyleCommand.js +0 -72
  164. package/src/libs/engine/src/commands/basic/index.d.ts +0 -41
  165. package/src/libs/engine/src/commands/basic/index.js +0 -52
  166. package/src/libs/engine/src/commands/basic/remapNodePortIds.d.ts +0 -23
  167. package/src/libs/engine/src/commands/basic/remapNodePortIds.js +0 -46
  168. package/src/libs/engine/src/commands/basic/resolveLinkNodeIds.d.ts +0 -31
  169. package/src/libs/engine/src/commands/basic/resolveLinkNodeIds.js +0 -49
  170. package/src/libs/engine/src/commands/composite/BatchCommand.d.ts +0 -19
  171. package/src/libs/engine/src/commands/composite/BatchCommand.js +0 -61
  172. package/src/libs/engine/src/commands/composite/MacroCommand.d.ts +0 -35
  173. package/src/libs/engine/src/commands/composite/MacroCommand.js +0 -87
  174. package/src/libs/engine/src/commands/composite/index.d.ts +0 -2
  175. package/src/libs/engine/src/commands/composite/index.js +0 -7
  176. package/src/libs/engine/src/commands/index.d.ts +0 -4
  177. package/src/libs/engine/src/commands/index.js +0 -9
  178. package/src/libs/engine/src/comments/comment-store.d.ts +0 -238
  179. package/src/libs/engine/src/comments/comment-store.js +0 -538
  180. package/src/libs/engine/src/comments/index.d.ts +0 -4
  181. package/src/libs/engine/src/comments/index.js +0 -31
  182. package/src/libs/engine/src/comments/mentions.d.ts +0 -52
  183. package/src/libs/engine/src/comments/mentions.js +0 -94
  184. package/src/libs/engine/src/comments/read-state.d.ts +0 -37
  185. package/src/libs/engine/src/comments/read-state.js +0 -105
  186. package/src/libs/engine/src/comments/types.d.ts +0 -154
  187. package/src/libs/engine/src/comments/types.js +0 -107
  188. package/src/libs/engine/src/config/InteractionConfig.d.ts +0 -330
  189. package/src/libs/engine/src/config/InteractionConfig.js +0 -154
  190. package/src/libs/engine/src/config/index.d.ts +0 -1
  191. package/src/libs/engine/src/config/index.js +0 -6
  192. package/src/libs/engine/src/dsl/DSL.d.ts +0 -197
  193. package/src/libs/engine/src/dsl/DSL.js +0 -564
  194. package/src/libs/engine/src/dsl/advanced/StyleParser.d.ts +0 -75
  195. package/src/libs/engine/src/dsl/advanced/StyleParser.js +0 -166
  196. package/src/libs/engine/src/dsl/advanced/TemplateParser.d.ts +0 -88
  197. package/src/libs/engine/src/dsl/advanced/TemplateParser.js +0 -226
  198. package/src/libs/engine/src/dsl/advanced/index.d.ts +0 -9
  199. package/src/libs/engine/src/dsl/advanced/index.js +0 -13
  200. package/src/libs/engine/src/dsl/detector/LayoutDetector.d.ts +0 -80
  201. package/src/libs/engine/src/dsl/detector/LayoutDetector.js +0 -333
  202. package/src/libs/engine/src/dsl/extended/BPMNGenerator.d.ts +0 -38
  203. package/src/libs/engine/src/dsl/extended/BPMNGenerator.js +0 -90
  204. package/src/libs/engine/src/dsl/extended/BPMNParser.d.ts +0 -83
  205. package/src/libs/engine/src/dsl/extended/BPMNParser.js +0 -198
  206. package/src/libs/engine/src/dsl/extended/ERDGenerator.d.ts +0 -38
  207. package/src/libs/engine/src/dsl/extended/ERDGenerator.js +0 -126
  208. package/src/libs/engine/src/dsl/extended/ERDParser.d.ts +0 -81
  209. package/src/libs/engine/src/dsl/extended/ERDParser.js +0 -161
  210. package/src/libs/engine/src/dsl/extended/ERDTransformer.d.ts +0 -43
  211. package/src/libs/engine/src/dsl/extended/ERDTransformer.js +0 -105
  212. package/src/libs/engine/src/dsl/extended/UMLGenerator.d.ts +0 -42
  213. package/src/libs/engine/src/dsl/extended/UMLGenerator.js +0 -157
  214. package/src/libs/engine/src/dsl/extended/UMLParser.d.ts +0 -99
  215. package/src/libs/engine/src/dsl/extended/UMLParser.js +0 -200
  216. package/src/libs/engine/src/dsl/extended/index.d.ts +0 -13
  217. package/src/libs/engine/src/dsl/extended/index.js +0 -27
  218. package/src/libs/engine/src/dsl/generator/DSLFormatter.d.ts +0 -87
  219. package/src/libs/engine/src/dsl/generator/DSLFormatter.js +0 -261
  220. package/src/libs/engine/src/dsl/generator/DSLGenerator.d.ts +0 -96
  221. package/src/libs/engine/src/dsl/generator/DSLGenerator.js +0 -328
  222. package/src/libs/engine/src/dsl/generator/DiagramAnalyzer.d.ts +0 -111
  223. package/src/libs/engine/src/dsl/generator/DiagramAnalyzer.js +0 -361
  224. package/src/libs/engine/src/dsl/index.d.ts +0 -35
  225. package/src/libs/engine/src/dsl/index.js +0 -64
  226. package/src/libs/engine/src/dsl/lexer/Lexer.d.ts +0 -117
  227. package/src/libs/engine/src/dsl/lexer/Lexer.js +0 -521
  228. package/src/libs/engine/src/dsl/mermaid/MermaidClass.d.ts +0 -136
  229. package/src/libs/engine/src/dsl/mermaid/MermaidClass.js +0 -429
  230. package/src/libs/engine/src/dsl/mermaid/MermaidER.d.ts +0 -118
  231. package/src/libs/engine/src/dsl/mermaid/MermaidER.js +0 -338
  232. package/src/libs/engine/src/dsl/mermaid/MermaidState.d.ts +0 -89
  233. package/src/libs/engine/src/dsl/mermaid/MermaidState.js +0 -613
  234. package/src/libs/engine/src/dsl/mermaid/index.d.ts +0 -10
  235. package/src/libs/engine/src/dsl/mermaid/index.js +0 -33
  236. package/src/libs/engine/src/dsl/mermaid/layout.d.ts +0 -70
  237. package/src/libs/engine/src/dsl/mermaid/layout.js +0 -162
  238. package/src/libs/engine/src/dsl/mermaid/lines.d.ts +0 -25
  239. package/src/libs/engine/src/dsl/mermaid/lines.js +0 -74
  240. package/src/libs/engine/src/dsl/parser/Parser.d.ts +0 -131
  241. package/src/libs/engine/src/dsl/parser/Parser.js +0 -725
  242. package/src/libs/engine/src/dsl/sync/BidirectionalSync.d.ts +0 -154
  243. package/src/libs/engine/src/dsl/sync/BidirectionalSync.js +0 -389
  244. package/src/libs/engine/src/dsl/sync/IntegratedSyncManager.d.ts +0 -128
  245. package/src/libs/engine/src/dsl/sync/IntegratedSyncManager.js +0 -244
  246. package/src/libs/engine/src/dsl/sync/LayoutApplicator.d.ts +0 -140
  247. package/src/libs/engine/src/dsl/sync/LayoutApplicator.js +0 -271
  248. package/src/libs/engine/src/dsl/sync/SyncStateManager.d.ts +0 -145
  249. package/src/libs/engine/src/dsl/sync/SyncStateManager.js +0 -253
  250. package/src/libs/engine/src/dsl/sync/index.d.ts +0 -13
  251. package/src/libs/engine/src/dsl/sync/index.js +0 -21
  252. package/src/libs/engine/src/dsl/transformer/ASTTransformer.d.ts +0 -150
  253. package/src/libs/engine/src/dsl/transformer/ASTTransformer.js +0 -605
  254. package/src/libs/engine/src/dsl/types/ASTNode.d.ts +0 -159
  255. package/src/libs/engine/src/dsl/types/ASTNode.js +0 -31
  256. package/src/libs/engine/src/dsl/types/Token.d.ts +0 -79
  257. package/src/libs/engine/src/dsl/types/Token.js +0 -84
  258. package/src/libs/engine/src/engine/DiagramEngine.d.ts +0 -917
  259. package/src/libs/engine/src/engine/DiagramEngine.js +0 -2190
  260. package/src/libs/engine/src/engine/DiagramMode.d.ts +0 -51
  261. package/src/libs/engine/src/engine/DiagramMode.js +0 -53
  262. package/src/libs/engine/src/engine/DiagramModeTypes.d.ts +0 -73
  263. package/src/libs/engine/src/engine/DiagramModeTypes.js +0 -4
  264. package/src/libs/engine/src/engine/ModeManager.d.ts +0 -155
  265. package/src/libs/engine/src/engine/ModeManager.js +0 -387
  266. package/src/libs/engine/src/engine/index.d.ts +0 -2
  267. package/src/libs/engine/src/engine/index.js +0 -7
  268. package/src/libs/engine/src/events/EventBus.d.ts +0 -106
  269. package/src/libs/engine/src/events/EventBus.js +0 -226
  270. package/src/libs/engine/src/events/index.d.ts +0 -1
  271. package/src/libs/engine/src/events/index.js +0 -6
  272. package/src/libs/engine/src/index.d.ts +0 -43
  273. package/src/libs/engine/src/index.js +0 -142
  274. package/src/libs/engine/src/interaction/GroupCollapseService.d.ts +0 -53
  275. package/src/libs/engine/src/interaction/GroupCollapseService.js +0 -274
  276. package/src/libs/engine/src/interaction/GroupMembershipService.d.ts +0 -107
  277. package/src/libs/engine/src/interaction/GroupMembershipService.js +0 -245
  278. package/src/libs/engine/src/interaction/SemanticMembershipService.d.ts +0 -28
  279. package/src/libs/engine/src/interaction/SemanticMembershipService.js +0 -168
  280. package/src/libs/engine/src/interaction/SwimlaneService.d.ts +0 -62
  281. package/src/libs/engine/src/interaction/SwimlaneService.js +0 -180
  282. package/src/libs/engine/src/interaction/index.d.ts +0 -4
  283. package/src/libs/engine/src/interaction/index.js +0 -9
  284. package/src/libs/engine/src/interop/drawio/importDrawio.d.ts +0 -52
  285. package/src/libs/engine/src/interop/drawio/importDrawio.js +0 -940
  286. package/src/libs/engine/src/interop/drawio/index.d.ts +0 -1
  287. package/src/libs/engine/src/interop/drawio/index.js +0 -12
  288. package/src/libs/engine/src/interop/drawio/xml.d.ts +0 -26
  289. package/src/libs/engine/src/interop/drawio/xml.js +0 -213
  290. package/src/libs/engine/src/layout/CompoundLayoutService.d.ts +0 -121
  291. package/src/libs/engine/src/layout/CompoundLayoutService.js +0 -616
  292. package/src/libs/engine/src/layout/ILayoutAlgorithm.d.ts +0 -120
  293. package/src/libs/engine/src/layout/ILayoutAlgorithm.js +0 -88
  294. package/src/libs/engine/src/layout/LayoutManager.d.ts +0 -155
  295. package/src/libs/engine/src/layout/LayoutManager.js +0 -640
  296. package/src/libs/engine/src/layout/SmartSpacingCalculator.d.ts +0 -62
  297. package/src/libs/engine/src/layout/SmartSpacingCalculator.js +0 -134
  298. package/src/libs/engine/src/layout/ViewportTransform.d.ts +0 -55
  299. package/src/libs/engine/src/layout/ViewportTransform.js +0 -118
  300. package/src/libs/engine/src/layout/algorithms/ForceDirectedLayoutAlgorithm.d.ts +0 -34
  301. package/src/libs/engine/src/layout/algorithms/ForceDirectedLayoutAlgorithm.js +0 -317
  302. package/src/libs/engine/src/layout/algorithms/GridLayoutAlgorithm.d.ts +0 -56
  303. package/src/libs/engine/src/layout/algorithms/GridLayoutAlgorithm.js +0 -223
  304. package/src/libs/engine/src/layout/algorithms/HierarchicalLayoutAlgorithm.d.ts +0 -60
  305. package/src/libs/engine/src/layout/algorithms/HierarchicalLayoutAlgorithm.js +0 -307
  306. package/src/libs/engine/src/layout/algorithms/HybridLayoutAlgorithm.d.ts +0 -62
  307. package/src/libs/engine/src/layout/algorithms/HybridLayoutAlgorithm.js +0 -324
  308. package/src/libs/engine/src/layout/community-layout-adapter.d.ts +0 -107
  309. package/src/libs/engine/src/layout/community-layout-adapter.js +0 -486
  310. package/src/libs/engine/src/layout/component-packing.d.ts +0 -98
  311. package/src/libs/engine/src/layout/component-packing.js +0 -307
  312. package/src/libs/engine/src/layout/dagre-layout-adapter.d.ts +0 -122
  313. package/src/libs/engine/src/layout/dagre-layout-adapter.js +0 -697
  314. package/src/libs/engine/src/layout/edge-bundling.interface.d.ts +0 -159
  315. package/src/libs/engine/src/layout/edge-bundling.interface.js +0 -379
  316. package/src/libs/engine/src/layout/elk-layout-adapter.d.ts +0 -121
  317. package/src/libs/engine/src/layout/elk-layout-adapter.js +0 -586
  318. package/src/libs/engine/src/layout/elk-loader.d.ts +0 -1
  319. package/src/libs/engine/src/layout/elk-loader.js +0 -24
  320. package/src/libs/engine/src/layout/force-layout-adapter.d.ts +0 -167
  321. package/src/libs/engine/src/layout/force-layout-adapter.js +0 -790
  322. package/src/libs/engine/src/layout/grid-pack/grid-pack-engine.d.ts +0 -323
  323. package/src/libs/engine/src/layout/grid-pack/grid-pack-engine.js +0 -685
  324. package/src/libs/engine/src/layout/incremental/mental-map.d.ts +0 -98
  325. package/src/libs/engine/src/layout/incremental/mental-map.js +0 -221
  326. package/src/libs/engine/src/layout/incremental-layout.interface.d.ts +0 -145
  327. package/src/libs/engine/src/layout/incremental-layout.interface.js +0 -300
  328. package/src/libs/engine/src/layout/index.d.ts +0 -83
  329. package/src/libs/engine/src/layout/index.js +0 -116
  330. package/src/libs/engine/src/layout/layout-adapter.interface.d.ts +0 -185
  331. package/src/libs/engine/src/layout/layout-adapter.interface.js +0 -10
  332. package/src/libs/engine/src/layout/layout-auto-select.d.ts +0 -160
  333. package/src/libs/engine/src/layout/layout-auto-select.js +0 -621
  334. package/src/libs/engine/src/layout/layout-constraints.interface.d.ts +0 -117
  335. package/src/libs/engine/src/layout/layout-constraints.interface.js +0 -138
  336. package/src/libs/engine/src/layout/layout-graph.d.ts +0 -70
  337. package/src/libs/engine/src/layout/layout-graph.js +0 -119
  338. package/src/libs/engine/src/layout/layout-history.d.ts +0 -147
  339. package/src/libs/engine/src/layout/layout-history.js +0 -258
  340. package/src/libs/engine/src/layout/layout-host.d.ts +0 -172
  341. package/src/libs/engine/src/layout/layout-host.js +0 -523
  342. package/src/libs/engine/src/layout/layout-presets.d.ts +0 -91
  343. package/src/libs/engine/src/layout/layout-presets.js +0 -333
  344. package/src/libs/engine/src/layout/layout-quality-extended.d.ts +0 -66
  345. package/src/libs/engine/src/layout/layout-quality-extended.js +0 -246
  346. package/src/libs/engine/src/layout/layout-quality-metrics.d.ts +0 -127
  347. package/src/libs/engine/src/layout/layout-quality-metrics.js +0 -466
  348. package/src/libs/engine/src/layout/layout-registry.d.ts +0 -309
  349. package/src/libs/engine/src/layout/layout-registry.js +0 -414
  350. package/src/libs/engine/src/layout/layout.service.d.ts +0 -100
  351. package/src/libs/engine/src/layout/layout.service.js +0 -216
  352. package/src/libs/engine/src/layout/overlap-removal.d.ts +0 -20
  353. package/src/libs/engine/src/layout/overlap-removal.js +0 -117
  354. package/src/libs/engine/src/layout/port-aware-layout.interface.d.ts +0 -232
  355. package/src/libs/engine/src/layout/port-aware-layout.interface.js +0 -413
  356. package/src/libs/engine/src/layout/port-label-bridge.d.ts +0 -77
  357. package/src/libs/engine/src/layout/port-label-bridge.js +0 -250
  358. package/src/libs/engine/src/layout/portfolio-layouts.d.ts +0 -53
  359. package/src/libs/engine/src/layout/portfolio-layouts.js +0 -388
  360. package/src/libs/engine/src/layout/rng.d.ts +0 -34
  361. package/src/libs/engine/src/layout/rng.js +0 -71
  362. package/src/libs/engine/src/layout/spectral-layout-adapter.d.ts +0 -72
  363. package/src/libs/engine/src/layout/spectral-layout-adapter.js +0 -379
  364. package/src/libs/engine/src/layout/steppable-layout.d.ts +0 -40
  365. package/src/libs/engine/src/layout/steppable-layout.js +0 -34
  366. package/src/libs/engine/src/layout/subgraph-layout.interface.d.ts +0 -269
  367. package/src/libs/engine/src/layout/subgraph-layout.interface.js +0 -452
  368. package/src/libs/engine/src/layout/sugiyama/layered-layout.d.ts +0 -9
  369. package/src/libs/engine/src/layout/sugiyama/layered-layout.js +0 -83
  370. package/src/libs/engine/src/layout/sugiyama/sugiyama.d.ts +0 -91
  371. package/src/libs/engine/src/layout/sugiyama/sugiyama.js +0 -797
  372. package/src/libs/engine/src/layout/tree-layout.d.ts +0 -43
  373. package/src/libs/engine/src/layout/tree-layout.js +0 -426
  374. package/src/libs/engine/src/layout/types.d.ts +0 -263
  375. package/src/libs/engine/src/layout/types.js +0 -6
  376. package/src/libs/engine/src/lib/performance/mobile-performance.service.d.ts +0 -43
  377. package/src/libs/engine/src/lib/performance/mobile-performance.service.js +0 -95
  378. package/src/libs/engine/src/models/DiagramEntity.d.ts +0 -174
  379. package/src/libs/engine/src/models/DiagramEntity.js +0 -366
  380. package/src/libs/engine/src/models/DiagramModel.d.ts +0 -960
  381. package/src/libs/engine/src/models/DiagramModel.js +0 -2416
  382. package/src/libs/engine/src/models/GroupModel.d.ts +0 -573
  383. package/src/libs/engine/src/models/GroupModel.js +0 -1373
  384. package/src/libs/engine/src/models/LinkModel.d.ts +0 -395
  385. package/src/libs/engine/src/models/LinkModel.js +0 -1045
  386. package/src/libs/engine/src/models/NodeModel.d.ts +0 -666
  387. package/src/libs/engine/src/models/NodeModel.js +0 -1512
  388. package/src/libs/engine/src/models/PortModel.d.ts +0 -292
  389. package/src/libs/engine/src/models/PortModel.js +0 -637
  390. package/src/libs/engine/src/models/StrokeModel.d.ts +0 -160
  391. package/src/libs/engine/src/models/StrokeModel.js +0 -387
  392. package/src/libs/engine/src/models/index.d.ts +0 -7
  393. package/src/libs/engine/src/models/index.js +0 -12
  394. package/src/libs/engine/src/models/readonly-lock.d.ts +0 -108
  395. package/src/libs/engine/src/models/readonly-lock.js +0 -125
  396. package/src/libs/engine/src/performance/LRUCache.d.ts +0 -78
  397. package/src/libs/engine/src/performance/LRUCache.js +0 -179
  398. package/src/libs/engine/src/performance/PerformanceMonitor.d.ts +0 -47
  399. package/src/libs/engine/src/performance/PerformanceMonitor.js +0 -112
  400. package/src/libs/engine/src/performance/SpatialIndex.d.ts +0 -157
  401. package/src/libs/engine/src/performance/SpatialIndex.js +0 -306
  402. package/src/libs/engine/src/performance/index.d.ts +0 -2
  403. package/src/libs/engine/src/performance/index.js +0 -7
  404. package/src/libs/engine/src/plugins/PluginManager.d.ts +0 -95
  405. package/src/libs/engine/src/plugins/PluginManager.js +0 -388
  406. package/src/libs/engine/src/plugins/index.d.ts +0 -1
  407. package/src/libs/engine/src/plugins/index.js +0 -6
  408. package/src/libs/engine/src/ports/connection-rules.d.ts +0 -32
  409. package/src/libs/engine/src/ports/connection-rules.js +0 -131
  410. package/src/libs/engine/src/ports/dynamic-ports.d.ts +0 -27
  411. package/src/libs/engine/src/ports/dynamic-ports.js +0 -135
  412. package/src/libs/engine/src/ports/index.d.ts +0 -5
  413. package/src/libs/engine/src/ports/index.js +0 -16
  414. package/src/libs/engine/src/ports/port-groups.d.ts +0 -43
  415. package/src/libs/engine/src/ports/port-groups.js +0 -185
  416. package/src/libs/engine/src/ports/port-type-registry.d.ts +0 -34
  417. package/src/libs/engine/src/ports/port-type-registry.js +0 -87
  418. package/src/libs/engine/src/ports/port-types.d.ts +0 -266
  419. package/src/libs/engine/src/ports/port-types.js +0 -30
  420. package/src/libs/engine/src/rendering/HtmlTemplateRenderer.d.ts +0 -136
  421. package/src/libs/engine/src/rendering/HtmlTemplateRenderer.js +0 -292
  422. package/src/libs/engine/src/rendering/LemonadeJSRenderer.d.ts +0 -160
  423. package/src/libs/engine/src/rendering/LemonadeJSRenderer.js +0 -362
  424. package/src/libs/engine/src/rendering/index.d.ts +0 -2
  425. package/src/libs/engine/src/rendering/index.js +0 -7
  426. package/src/libs/engine/src/routing/LiveReroutingEngine.d.ts +0 -75
  427. package/src/libs/engine/src/routing/LiveReroutingEngine.js +0 -173
  428. package/src/libs/engine/src/routing/ObstacleIndex.d.ts +0 -42
  429. package/src/libs/engine/src/routing/ObstacleIndex.js +0 -215
  430. package/src/libs/engine/src/routing/ObstacleMap.d.ts +0 -68
  431. package/src/libs/engine/src/routing/ObstacleMap.js +0 -312
  432. package/src/libs/engine/src/routing/ObstacleMapBuilder.d.ts +0 -28
  433. package/src/libs/engine/src/routing/ObstacleMapBuilder.js +0 -76
  434. package/src/libs/engine/src/routing/PathSimplifier.d.ts +0 -119
  435. package/src/libs/engine/src/routing/PathSimplifier.js +0 -224
  436. package/src/libs/engine/src/routing/RoutingEngine.d.ts +0 -118
  437. package/src/libs/engine/src/routing/RoutingEngine.js +0 -546
  438. package/src/libs/engine/src/routing/algorithms/AStarRouter.d.ts +0 -90
  439. package/src/libs/engine/src/routing/algorithms/AStarRouter.js +0 -331
  440. package/src/libs/engine/src/routing/algorithms/DijkstraRouter.d.ts +0 -74
  441. package/src/libs/engine/src/routing/algorithms/DijkstraRouter.js +0 -297
  442. package/src/libs/engine/src/routing/algorithms/ElkRouter.d.ts +0 -34
  443. package/src/libs/engine/src/routing/algorithms/ElkRouter.js +0 -210
  444. package/src/libs/engine/src/routing/algorithms/ManhattanRouter.d.ts +0 -18
  445. package/src/libs/engine/src/routing/algorithms/ManhattanRouter.js +0 -224
  446. package/src/libs/engine/src/routing/algorithms/OrthogonalRouter.d.ts +0 -173
  447. package/src/libs/engine/src/routing/algorithms/OrthogonalRouter.js +0 -1092
  448. package/src/libs/engine/src/routing/algorithms/StraightRouter.d.ts +0 -8
  449. package/src/libs/engine/src/routing/algorithms/StraightRouter.js +0 -53
  450. package/src/libs/engine/src/routing/algorithms/VisibilityGraphRouter.d.ts +0 -59
  451. package/src/libs/engine/src/routing/algorithms/VisibilityGraphRouter.js +0 -258
  452. package/src/libs/engine/src/routing/global/GlobalRouteSolver.d.ts +0 -64
  453. package/src/libs/engine/src/routing/global/GlobalRouteSolver.js +0 -334
  454. package/src/libs/engine/src/routing/global/solver-host.d.ts +0 -65
  455. package/src/libs/engine/src/routing/global/solver-host.js +0 -87
  456. package/src/libs/engine/src/routing/index.d.ts +0 -15
  457. package/src/libs/engine/src/routing/index.js +0 -20
  458. package/src/libs/engine/src/routing/types.d.ts +0 -161
  459. package/src/libs/engine/src/routing/types.js +0 -4
  460. package/src/libs/engine/src/selection/SelectionManager.d.ts +0 -161
  461. package/src/libs/engine/src/selection/SelectionManager.js +0 -483
  462. package/src/libs/engine/src/selection/index.d.ts +0 -1
  463. package/src/libs/engine/src/selection/index.js +0 -6
  464. package/src/libs/engine/src/serialization/DiagramMigrations.d.ts +0 -41
  465. package/src/libs/engine/src/serialization/DiagramMigrations.js +0 -124
  466. package/src/libs/engine/src/serialization/DiagramValidator.d.ts +0 -20
  467. package/src/libs/engine/src/serialization/DiagramValidator.js +0 -136
  468. package/src/libs/engine/src/serialization/DocumentEnvelope.d.ts +0 -53
  469. package/src/libs/engine/src/serialization/DocumentEnvelope.js +0 -111
  470. package/src/libs/engine/src/serialization/Incremental.d.ts +0 -77
  471. package/src/libs/engine/src/serialization/Incremental.js +0 -227
  472. package/src/libs/engine/src/serialization/Serializer.d.ts +0 -29
  473. package/src/libs/engine/src/serialization/Serializer.js +0 -45
  474. package/src/libs/engine/src/serialization/Subgraph.d.ts +0 -51
  475. package/src/libs/engine/src/serialization/Subgraph.js +0 -172
  476. package/src/libs/engine/src/serialization/TextFormat.d.ts +0 -71
  477. package/src/libs/engine/src/serialization/TextFormat.js +0 -261
  478. package/src/libs/engine/src/state/ConnectionStateManager.d.ts +0 -178
  479. package/src/libs/engine/src/state/ConnectionStateManager.js +0 -319
  480. package/src/libs/engine/src/state/DiagramStore.d.ts +0 -134
  481. package/src/libs/engine/src/state/DiagramStore.js +0 -372
  482. package/src/libs/engine/src/state/index.d.ts +0 -2
  483. package/src/libs/engine/src/state/index.js +0 -7
  484. package/src/libs/engine/src/sync/awareness.d.ts +0 -91
  485. package/src/libs/engine/src/sync/awareness.js +0 -221
  486. package/src/libs/engine/src/sync/batcher.d.ts +0 -84
  487. package/src/libs/engine/src/sync/batcher.js +0 -0
  488. package/src/libs/engine/src/sync/causal-buffer.d.ts +0 -81
  489. package/src/libs/engine/src/sync/causal-buffer.js +0 -199
  490. package/src/libs/engine/src/sync/index.d.ts +0 -20
  491. package/src/libs/engine/src/sync/index.js +0 -41
  492. package/src/libs/engine/src/sync/protocol.d.ts +0 -74
  493. package/src/libs/engine/src/sync/protocol.js +0 -39
  494. package/src/libs/engine/src/sync/sync-adapter.d.ts +0 -243
  495. package/src/libs/engine/src/sync/sync-adapter.js +0 -524
  496. package/src/libs/engine/src/sync/transport.d.ts +0 -30
  497. package/src/libs/engine/src/sync/transport.js +0 -28
  498. package/src/libs/engine/src/sync/transports/broadcast-channel.d.ts +0 -39
  499. package/src/libs/engine/src/sync/transports/broadcast-channel.js +0 -117
  500. package/src/libs/engine/src/sync/transports/memory.d.ts +0 -38
  501. package/src/libs/engine/src/sync/transports/memory.js +0 -111
  502. package/src/libs/engine/src/sync/transports/unreliable.d.ts +0 -59
  503. package/src/libs/engine/src/sync/transports/unreliable.js +0 -153
  504. package/src/libs/engine/src/sync/transports/websocket.d.ts +0 -60
  505. package/src/libs/engine/src/sync/transports/websocket.js +0 -210
  506. package/src/libs/engine/src/sync/version-vector.d.ts +0 -47
  507. package/src/libs/engine/src/sync/version-vector.js +0 -218
  508. package/src/libs/engine/src/template-library/common-templates.d.ts +0 -46
  509. package/src/libs/engine/src/template-library/common-templates.js +0 -395
  510. package/src/libs/engine/src/template-library/data-viz-templates.d.ts +0 -52
  511. package/src/libs/engine/src/template-library/data-viz-templates.js +0 -471
  512. package/src/libs/engine/src/template-library/erd-templates.d.ts +0 -71
  513. package/src/libs/engine/src/template-library/erd-templates.js +0 -773
  514. package/src/libs/engine/src/template-library/index.d.ts +0 -141
  515. package/src/libs/engine/src/template-library/index.js +0 -271
  516. package/src/libs/engine/src/template-library/integration.d.ts +0 -80
  517. package/src/libs/engine/src/template-library/integration.js +0 -141
  518. package/src/libs/engine/src/template-library/workflow-templates.d.ts +0 -52
  519. package/src/libs/engine/src/template-library/workflow-templates.js +0 -438
  520. package/src/libs/engine/src/templates/NodeFactory.d.ts +0 -118
  521. package/src/libs/engine/src/templates/NodeFactory.js +0 -436
  522. package/src/libs/engine/src/templates/NodeTemplate.d.ts +0 -342
  523. package/src/libs/engine/src/templates/NodeTemplate.js +0 -13
  524. package/src/libs/engine/src/templates/TemplateLoader.d.ts +0 -46
  525. package/src/libs/engine/src/templates/TemplateLoader.js +0 -114
  526. package/src/libs/engine/src/templates/TemplateRegistry.d.ts +0 -70
  527. package/src/libs/engine/src/templates/TemplateRegistry.js +0 -128
  528. package/src/libs/engine/src/templates/generated/bpmn/bpmn-business-rule-task.template.d.ts +0 -11
  529. package/src/libs/engine/src/templates/generated/bpmn/bpmn-business-rule-task.template.js +0 -123
  530. package/src/libs/engine/src/templates/generated/bpmn/bpmn-end-event.template.d.ts +0 -11
  531. package/src/libs/engine/src/templates/generated/bpmn/bpmn-end-event.template.js +0 -123
  532. package/src/libs/engine/src/templates/generated/bpmn/bpmn-error-event.template.d.ts +0 -11
  533. package/src/libs/engine/src/templates/generated/bpmn/bpmn-error-event.template.js +0 -123
  534. package/src/libs/engine/src/templates/generated/bpmn/bpmn-exclusive-gateway.template.d.ts +0 -11
  535. package/src/libs/engine/src/templates/generated/bpmn/bpmn-exclusive-gateway.template.js +0 -124
  536. package/src/libs/engine/src/templates/generated/bpmn/bpmn-inclusive-gateway.template.d.ts +0 -11
  537. package/src/libs/engine/src/templates/generated/bpmn/bpmn-inclusive-gateway.template.js +0 -123
  538. package/src/libs/engine/src/templates/generated/bpmn/bpmn-intermediate-event.template.d.ts +0 -11
  539. package/src/libs/engine/src/templates/generated/bpmn/bpmn-intermediate-event.template.js +0 -124
  540. package/src/libs/engine/src/templates/generated/bpmn/bpmn-manual-task.template.d.ts +0 -11
  541. package/src/libs/engine/src/templates/generated/bpmn/bpmn-manual-task.template.js +0 -123
  542. package/src/libs/engine/src/templates/generated/bpmn/bpmn-message-event.template.d.ts +0 -11
  543. package/src/libs/engine/src/templates/generated/bpmn/bpmn-message-event.template.js +0 -122
  544. package/src/libs/engine/src/templates/generated/bpmn/bpmn-parallel-gateway.template.d.ts +0 -11
  545. package/src/libs/engine/src/templates/generated/bpmn/bpmn-parallel-gateway.template.js +0 -125
  546. package/src/libs/engine/src/templates/generated/bpmn/bpmn-script-task.template.d.ts +0 -11
  547. package/src/libs/engine/src/templates/generated/bpmn/bpmn-script-task.template.js +0 -123
  548. package/src/libs/engine/src/templates/generated/bpmn/bpmn-service-task.template.d.ts +0 -11
  549. package/src/libs/engine/src/templates/generated/bpmn/bpmn-service-task.template.js +0 -123
  550. package/src/libs/engine/src/templates/generated/bpmn/bpmn-start-event.template.d.ts +0 -11
  551. package/src/libs/engine/src/templates/generated/bpmn/bpmn-start-event.template.js +0 -123
  552. package/src/libs/engine/src/templates/generated/bpmn/bpmn-task.template.d.ts +0 -11
  553. package/src/libs/engine/src/templates/generated/bpmn/bpmn-task.template.js +0 -152
  554. package/src/libs/engine/src/templates/generated/bpmn/bpmn-timer-event.template.d.ts +0 -11
  555. package/src/libs/engine/src/templates/generated/bpmn/bpmn-timer-event.template.js +0 -123
  556. package/src/libs/engine/src/templates/generated/bpmn/bpmn-user-task.template.d.ts +0 -11
  557. package/src/libs/engine/src/templates/generated/bpmn/bpmn-user-task.template.js +0 -123
  558. package/src/libs/engine/src/templates/generated/bpmn/index.d.ts +0 -15
  559. package/src/libs/engine/src/templates/generated/bpmn/index.js +0 -34
  560. package/src/libs/engine/src/templates/generated/erd/erd-associative-entity.template.d.ts +0 -11
  561. package/src/libs/engine/src/templates/generated/erd/erd-associative-entity.template.js +0 -152
  562. package/src/libs/engine/src/templates/generated/erd/erd-attribute.template.d.ts +0 -11
  563. package/src/libs/engine/src/templates/generated/erd/erd-attribute.template.js +0 -122
  564. package/src/libs/engine/src/templates/generated/erd/erd-bridge-entity.template.d.ts +0 -11
  565. package/src/libs/engine/src/templates/generated/erd/erd-bridge-entity.template.js +0 -151
  566. package/src/libs/engine/src/templates/generated/erd/erd-composite-attribute.template.d.ts +0 -11
  567. package/src/libs/engine/src/templates/generated/erd/erd-composite-attribute.template.js +0 -122
  568. package/src/libs/engine/src/templates/generated/erd/erd-derived-attribute.template.d.ts +0 -11
  569. package/src/libs/engine/src/templates/generated/erd/erd-derived-attribute.template.js +0 -122
  570. package/src/libs/engine/src/templates/generated/erd/erd-discriminator.template.d.ts +0 -11
  571. package/src/libs/engine/src/templates/generated/erd/erd-discriminator.template.js +0 -123
  572. package/src/libs/engine/src/templates/generated/erd/erd-entity.template.d.ts +0 -11
  573. package/src/libs/engine/src/templates/generated/erd/erd-entity.template.js +0 -149
  574. package/src/libs/engine/src/templates/generated/erd/erd-isa.template.d.ts +0 -11
  575. package/src/libs/engine/src/templates/generated/erd/erd-isa.template.js +0 -123
  576. package/src/libs/engine/src/templates/generated/erd/erd-key-attribute.template.d.ts +0 -11
  577. package/src/libs/engine/src/templates/generated/erd/erd-key-attribute.template.js +0 -122
  578. package/src/libs/engine/src/templates/generated/erd/erd-multivalued-attribute.template.d.ts +0 -11
  579. package/src/libs/engine/src/templates/generated/erd/erd-multivalued-attribute.template.js +0 -122
  580. package/src/libs/engine/src/templates/generated/erd/erd-optional-attribute.template.d.ts +0 -11
  581. package/src/libs/engine/src/templates/generated/erd/erd-optional-attribute.template.js +0 -122
  582. package/src/libs/engine/src/templates/generated/erd/erd-partial-key.template.d.ts +0 -11
  583. package/src/libs/engine/src/templates/generated/erd/erd-partial-key.template.js +0 -123
  584. package/src/libs/engine/src/templates/generated/erd/erd-relationship.template.d.ts +0 -11
  585. package/src/libs/engine/src/templates/generated/erd/erd-relationship.template.js +0 -121
  586. package/src/libs/engine/src/templates/generated/erd/erd-subtype.template.d.ts +0 -11
  587. package/src/libs/engine/src/templates/generated/erd/erd-subtype.template.js +0 -123
  588. package/src/libs/engine/src/templates/generated/erd/erd-supertype.template.d.ts +0 -11
  589. package/src/libs/engine/src/templates/generated/erd/erd-supertype.template.js +0 -123
  590. package/src/libs/engine/src/templates/generated/erd/erd-table.template.d.ts +0 -11
  591. package/src/libs/engine/src/templates/generated/erd/erd-table.template.js +0 -123
  592. package/src/libs/engine/src/templates/generated/erd/erd-view.template.d.ts +0 -11
  593. package/src/libs/engine/src/templates/generated/erd/erd-view.template.js +0 -123
  594. package/src/libs/engine/src/templates/generated/erd/erd-weak-entity.template.d.ts +0 -11
  595. package/src/libs/engine/src/templates/generated/erd/erd-weak-entity.template.js +0 -149
  596. package/src/libs/engine/src/templates/generated/erd/erd-weak-relationship.template.d.ts +0 -11
  597. package/src/libs/engine/src/templates/generated/erd/erd-weak-relationship.template.js +0 -122
  598. package/src/libs/engine/src/templates/generated/erd/index.d.ts +0 -19
  599. package/src/libs/engine/src/templates/generated/erd/index.js +0 -42
  600. package/src/libs/engine/src/templates/generated/flowchart/flowchart-connector.template.d.ts +0 -11
  601. package/src/libs/engine/src/templates/generated/flowchart/flowchart-connector.template.js +0 -123
  602. package/src/libs/engine/src/templates/generated/flowchart/flowchart-data.template.d.ts +0 -11
  603. package/src/libs/engine/src/templates/generated/flowchart/flowchart-data.template.js +0 -123
  604. package/src/libs/engine/src/templates/generated/flowchart/flowchart-decision.template.d.ts +0 -11
  605. package/src/libs/engine/src/templates/generated/flowchart/flowchart-decision.template.js +0 -123
  606. package/src/libs/engine/src/templates/generated/flowchart/flowchart-delay.template.d.ts +0 -11
  607. package/src/libs/engine/src/templates/generated/flowchart/flowchart-delay.template.js +0 -124
  608. package/src/libs/engine/src/templates/generated/flowchart/flowchart-display.template.d.ts +0 -11
  609. package/src/libs/engine/src/templates/generated/flowchart/flowchart-display.template.js +0 -124
  610. package/src/libs/engine/src/templates/generated/flowchart/flowchart-document.template.d.ts +0 -11
  611. package/src/libs/engine/src/templates/generated/flowchart/flowchart-document.template.js +0 -123
  612. package/src/libs/engine/src/templates/generated/flowchart/flowchart-manual-input.template.d.ts +0 -11
  613. package/src/libs/engine/src/templates/generated/flowchart/flowchart-manual-input.template.js +0 -123
  614. package/src/libs/engine/src/templates/generated/flowchart/flowchart-manual-operation.template.d.ts +0 -11
  615. package/src/libs/engine/src/templates/generated/flowchart/flowchart-manual-operation.template.js +0 -122
  616. package/src/libs/engine/src/templates/generated/flowchart/flowchart-merge.template.d.ts +0 -11
  617. package/src/libs/engine/src/templates/generated/flowchart/flowchart-merge.template.js +0 -122
  618. package/src/libs/engine/src/templates/generated/flowchart/flowchart-or.template.d.ts +0 -11
  619. package/src/libs/engine/src/templates/generated/flowchart/flowchart-or.template.js +0 -123
  620. package/src/libs/engine/src/templates/generated/flowchart/flowchart-predefined-process.template.d.ts +0 -11
  621. package/src/libs/engine/src/templates/generated/flowchart/flowchart-predefined-process.template.js +0 -123
  622. package/src/libs/engine/src/templates/generated/flowchart/flowchart-preparation.template.d.ts +0 -11
  623. package/src/libs/engine/src/templates/generated/flowchart/flowchart-preparation.template.js +0 -123
  624. package/src/libs/engine/src/templates/generated/flowchart/flowchart-process.template.d.ts +0 -11
  625. package/src/libs/engine/src/templates/generated/flowchart/flowchart-process.template.js +0 -122
  626. package/src/libs/engine/src/templates/generated/flowchart/flowchart-stored-data.template.d.ts +0 -11
  627. package/src/libs/engine/src/templates/generated/flowchart/flowchart-stored-data.template.js +0 -123
  628. package/src/libs/engine/src/templates/generated/flowchart/flowchart-summing-junction.template.d.ts +0 -11
  629. package/src/libs/engine/src/templates/generated/flowchart/flowchart-summing-junction.template.js +0 -124
  630. package/src/libs/engine/src/templates/generated/flowchart/flowchart-terminal.template.d.ts +0 -11
  631. package/src/libs/engine/src/templates/generated/flowchart/flowchart-terminal.template.js +0 -124
  632. package/src/libs/engine/src/templates/generated/flowchart/index.d.ts +0 -16
  633. package/src/libs/engine/src/templates/generated/flowchart/index.js +0 -36
  634. package/src/libs/engine/src/templates/generated/index.d.ts +0 -9
  635. package/src/libs/engine/src/templates/generated/index.js +0 -13
  636. package/src/libs/engine/src/templates/generated/register.d.ts +0 -23
  637. package/src/libs/engine/src/templates/generated/register.js +0 -31
  638. package/src/libs/engine/src/templates/generated/uml/index.d.ts +0 -30
  639. package/src/libs/engine/src/templates/generated/uml/index.js +0 -64
  640. package/src/libs/engine/src/templates/generated/uml/uml-abstract-class.template.d.ts +0 -11
  641. package/src/libs/engine/src/templates/generated/uml/uml-abstract-class.template.js +0 -204
  642. package/src/libs/engine/src/templates/generated/uml/uml-activation.template.d.ts +0 -11
  643. package/src/libs/engine/src/templates/generated/uml/uml-activation.template.js +0 -124
  644. package/src/libs/engine/src/templates/generated/uml/uml-activity-partition.template.d.ts +0 -11
  645. package/src/libs/engine/src/templates/generated/uml/uml-activity-partition.template.js +0 -124
  646. package/src/libs/engine/src/templates/generated/uml/uml-activity.template.d.ts +0 -11
  647. package/src/libs/engine/src/templates/generated/uml/uml-activity.template.js +0 -123
  648. package/src/libs/engine/src/templates/generated/uml/uml-actor.template.d.ts +0 -11
  649. package/src/libs/engine/src/templates/generated/uml/uml-actor.template.js +0 -123
  650. package/src/libs/engine/src/templates/generated/uml/uml-class.template.d.ts +0 -11
  651. package/src/libs/engine/src/templates/generated/uml/uml-class.template.js +0 -204
  652. package/src/libs/engine/src/templates/generated/uml/uml-collaboration.template.d.ts +0 -11
  653. package/src/libs/engine/src/templates/generated/uml/uml-collaboration.template.js +0 -122
  654. package/src/libs/engine/src/templates/generated/uml/uml-component.template.d.ts +0 -11
  655. package/src/libs/engine/src/templates/generated/uml/uml-component.template.js +0 -122
  656. package/src/libs/engine/src/templates/generated/uml/uml-datatype.template.d.ts +0 -11
  657. package/src/libs/engine/src/templates/generated/uml/uml-datatype.template.js +0 -204
  658. package/src/libs/engine/src/templates/generated/uml/uml-decision.template.d.ts +0 -11
  659. package/src/libs/engine/src/templates/generated/uml/uml-decision.template.js +0 -124
  660. package/src/libs/engine/src/templates/generated/uml/uml-enum.template.d.ts +0 -11
  661. package/src/libs/engine/src/templates/generated/uml/uml-enum.template.js +0 -204
  662. package/src/libs/engine/src/templates/generated/uml/uml-final-node.template.d.ts +0 -11
  663. package/src/libs/engine/src/templates/generated/uml/uml-final-node.template.js +0 -124
  664. package/src/libs/engine/src/templates/generated/uml/uml-final-state.template.d.ts +0 -11
  665. package/src/libs/engine/src/templates/generated/uml/uml-final-state.template.js +0 -124
  666. package/src/libs/engine/src/templates/generated/uml/uml-fork.template.d.ts +0 -11
  667. package/src/libs/engine/src/templates/generated/uml/uml-fork.template.js +0 -125
  668. package/src/libs/engine/src/templates/generated/uml/uml-initial-node.template.d.ts +0 -11
  669. package/src/libs/engine/src/templates/generated/uml/uml-initial-node.template.js +0 -123
  670. package/src/libs/engine/src/templates/generated/uml/uml-initial-state.template.d.ts +0 -11
  671. package/src/libs/engine/src/templates/generated/uml/uml-initial-state.template.js +0 -123
  672. package/src/libs/engine/src/templates/generated/uml/uml-interface.template.d.ts +0 -11
  673. package/src/libs/engine/src/templates/generated/uml/uml-interface.template.js +0 -204
  674. package/src/libs/engine/src/templates/generated/uml/uml-join.template.d.ts +0 -11
  675. package/src/libs/engine/src/templates/generated/uml/uml-join.template.js +0 -125
  676. package/src/libs/engine/src/templates/generated/uml/uml-lifeline.template.d.ts +0 -11
  677. package/src/libs/engine/src/templates/generated/uml/uml-lifeline.template.js +0 -123
  678. package/src/libs/engine/src/templates/generated/uml/uml-merge.template.d.ts +0 -11
  679. package/src/libs/engine/src/templates/generated/uml/uml-merge.template.js +0 -122
  680. package/src/libs/engine/src/templates/generated/uml/uml-node.template.d.ts +0 -11
  681. package/src/libs/engine/src/templates/generated/uml/uml-node.template.js +0 -122
  682. package/src/libs/engine/src/templates/generated/uml/uml-note.template.d.ts +0 -11
  683. package/src/libs/engine/src/templates/generated/uml/uml-note.template.js +0 -123
  684. package/src/libs/engine/src/templates/generated/uml/uml-object.template.d.ts +0 -11
  685. package/src/libs/engine/src/templates/generated/uml/uml-object.template.js +0 -204
  686. package/src/libs/engine/src/templates/generated/uml/uml-package.template.d.ts +0 -11
  687. package/src/libs/engine/src/templates/generated/uml/uml-package.template.js +0 -123
  688. package/src/libs/engine/src/templates/generated/uml/uml-part.template.d.ts +0 -11
  689. package/src/libs/engine/src/templates/generated/uml/uml-part.template.js +0 -122
  690. package/src/libs/engine/src/templates/generated/uml/uml-port.template.d.ts +0 -11
  691. package/src/libs/engine/src/templates/generated/uml/uml-port.template.js +0 -123
  692. package/src/libs/engine/src/templates/generated/uml/uml-primitive-type.template.d.ts +0 -11
  693. package/src/libs/engine/src/templates/generated/uml/uml-primitive-type.template.js +0 -204
  694. package/src/libs/engine/src/templates/generated/uml/uml-signal.template.d.ts +0 -11
  695. package/src/libs/engine/src/templates/generated/uml/uml-signal.template.js +0 -123
  696. package/src/libs/engine/src/templates/generated/uml/uml-state.template.d.ts +0 -11
  697. package/src/libs/engine/src/templates/generated/uml/uml-state.template.js +0 -123
  698. package/src/libs/engine/src/templates/generated/uml/uml-use-case.template.d.ts +0 -11
  699. package/src/libs/engine/src/templates/generated/uml/uml-use-case.template.js +0 -122
  700. package/src/libs/engine/src/templates/index.d.ts +0 -12
  701. package/src/libs/engine/src/templates/index.js +0 -27
  702. package/src/libs/engine/src/templates/stencils.d.ts +0 -45
  703. package/src/libs/engine/src/templates/stencils.js +0 -85
  704. package/src/libs/engine/src/types/domain/bpmn.d.ts +0 -25
  705. package/src/libs/engine/src/types/domain/bpmn.js +0 -313
  706. package/src/libs/engine/src/types/domain/erd.d.ts +0 -29
  707. package/src/libs/engine/src/types/domain/erd.js +0 -394
  708. package/src/libs/engine/src/types/domain/flowchart.d.ts +0 -26
  709. package/src/libs/engine/src/types/domain/flowchart.js +0 -434
  710. package/src/libs/engine/src/types/domain/index.d.ts +0 -4
  711. package/src/libs/engine/src/types/domain/index.js +0 -9
  712. package/src/libs/engine/src/types/domain/uml.d.ts +0 -40
  713. package/src/libs/engine/src/types/domain/uml.js +0 -758
  714. package/src/libs/engine/src/types/event.types.d.ts +0 -142
  715. package/src/libs/engine/src/types/event.types.js +0 -96
  716. package/src/libs/engine/src/types/geometry.types.d.ts +0 -84
  717. package/src/libs/engine/src/types/geometry.types.js +0 -16
  718. package/src/libs/engine/src/types/index.d.ts +0 -7
  719. package/src/libs/engine/src/types/index.js +0 -14
  720. package/src/libs/engine/src/types/layout.types.d.ts +0 -148
  721. package/src/libs/engine/src/types/layout.types.js +0 -28
  722. package/src/libs/engine/src/types/model.types.d.ts +0 -378
  723. package/src/libs/engine/src/types/model.types.js +0 -4
  724. package/src/libs/engine/src/types/performance.types.d.ts +0 -109
  725. package/src/libs/engine/src/types/performance.types.js +0 -122
  726. package/src/libs/engine/src/types/plugin.types.d.ts +0 -30
  727. package/src/libs/engine/src/types/plugin.types.js +0 -4
  728. package/src/libs/engine/src/utils/deep-clone.d.ts +0 -9
  729. package/src/libs/engine/src/utils/deep-clone.js +0 -123
  730. package/src/libs/engine/src/utils/geometry.d.ts +0 -45
  731. package/src/libs/engine/src/utils/geometry.js +0 -241
  732. package/src/libs/engine/src/utils/id.d.ts +0 -22
  733. package/src/libs/engine/src/utils/id.js +0 -44
  734. package/src/libs/engine/src/utils/index.d.ts +0 -3
  735. package/src/libs/engine/src/utils/index.js +0 -8
  736. package/src/libs/engine/src/utils/transform.d.ts +0 -84
  737. package/src/libs/engine/src/utils/transform.js +0 -200
  738. package/src/libs/engine/src/validation/ConnectionGroupValidator.d.ts +0 -22
  739. package/src/libs/engine/src/validation/ConnectionGroupValidator.js +0 -56
  740. package/src/libs/engine/src/validation/TypeRegistry.d.ts +0 -179
  741. package/src/libs/engine/src/validation/TypeRegistry.js +0 -358
  742. package/src/libs/engine/src/validation/ValidationEngine.d.ts +0 -79
  743. package/src/libs/engine/src/validation/ValidationEngine.js +0 -1150
  744. package/src/libs/engine/src/validation/index.d.ts +0 -3
  745. package/src/libs/engine/src/validation/index.js +0 -8
  746. package/src/libs/renderer/src/a11y/diagram-outline.d.ts +0 -93
  747. package/src/libs/renderer/src/a11y/diagram-outline.js +0 -0
  748. package/src/libs/renderer/src/a11y/focus-containment.d.ts +0 -90
  749. package/src/libs/renderer/src/a11y/focus-containment.js +0 -173
  750. package/src/libs/renderer/src/a11y/graph-topology.d.ts +0 -70
  751. package/src/libs/renderer/src/a11y/graph-topology.js +0 -0
  752. package/src/libs/renderer/src/a11y/index.d.ts +0 -26
  753. package/src/libs/renderer/src/a11y/index.js +0 -30
  754. package/src/libs/renderer/src/a11y/live-region.d.ts +0 -83
  755. package/src/libs/renderer/src/a11y/live-region.js +0 -170
  756. package/src/libs/renderer/src/a11y/outline-view.d.ts +0 -62
  757. package/src/libs/renderer/src/a11y/outline-view.js +0 -158
  758. package/src/libs/renderer/src/a11y/reduced-motion.d.ts +0 -48
  759. package/src/libs/renderer/src/a11y/reduced-motion.js +0 -223
  760. package/src/libs/renderer/src/a11y/semantics.d.ts +0 -76
  761. package/src/libs/renderer/src/a11y/semantics.js +0 -229
  762. package/src/libs/renderer/src/canvas/canvas-context.d.ts +0 -167
  763. package/src/libs/renderer/src/canvas/canvas-context.js +0 -267
  764. package/src/libs/renderer/src/canvas/canvas-renderer.d.ts +0 -194
  765. package/src/libs/renderer/src/canvas/canvas-renderer.js +0 -600
  766. package/src/libs/renderer/src/canvas/dirty-region.d.ts +0 -56
  767. package/src/libs/renderer/src/canvas/dirty-region.js +0 -171
  768. package/src/libs/renderer/src/canvas/index.d.ts +0 -16
  769. package/src/libs/renderer/src/canvas/index.js +0 -79
  770. package/src/libs/renderer/src/canvas/path-geometry.d.ts +0 -112
  771. package/src/libs/renderer/src/canvas/path-geometry.js +0 -673
  772. package/src/libs/renderer/src/canvas/render-backend.d.ts +0 -133
  773. package/src/libs/renderer/src/canvas/render-backend.js +0 -339
  774. package/src/libs/renderer/src/canvas/style-resolution.d.ts +0 -101
  775. package/src/libs/renderer/src/canvas/style-resolution.js +0 -466
  776. package/src/libs/renderer/src/canvas/tier-policy.d.ts +0 -33
  777. package/src/libs/renderer/src/canvas/tier-policy.js +0 -89
  778. package/src/libs/renderer/src/canvas/vnode-painter.d.ts +0 -154
  779. package/src/libs/renderer/src/canvas/vnode-painter.js +0 -649
  780. package/src/libs/renderer/src/comments/comment-overlay.d.ts +0 -56
  781. package/src/libs/renderer/src/comments/comment-overlay.js +0 -127
  782. package/src/libs/renderer/src/comments/comment-panel.d.ts +0 -45
  783. package/src/libs/renderer/src/comments/comment-panel.js +0 -287
  784. package/src/libs/renderer/src/comments/comment-pins.d.ts +0 -34
  785. package/src/libs/renderer/src/comments/comment-pins.js +0 -227
  786. package/src/libs/renderer/src/comments/index.d.ts +0 -3
  787. package/src/libs/renderer/src/comments/index.js +0 -17
  788. package/src/libs/renderer/src/export/assets.d.ts +0 -96
  789. package/src/libs/renderer/src/export/assets.js +0 -350
  790. package/src/libs/renderer/src/export/batch.d.ts +0 -49
  791. package/src/libs/renderer/src/export/batch.js +0 -95
  792. package/src/libs/renderer/src/export/bounds.d.ts +0 -81
  793. package/src/libs/renderer/src/export/bounds.js +0 -367
  794. package/src/libs/renderer/src/export/capture-host.d.ts +0 -39
  795. package/src/libs/renderer/src/export/capture-host.js +0 -1259
  796. package/src/libs/renderer/src/export/custom-nodes.d.ts +0 -88
  797. package/src/libs/renderer/src/export/custom-nodes.js +0 -237
  798. package/src/libs/renderer/src/export/index.d.ts +0 -14
  799. package/src/libs/renderer/src/export/index.js +0 -30
  800. package/src/libs/renderer/src/export/node-raster.d.ts +0 -60
  801. package/src/libs/renderer/src/export/node-raster.js +0 -161
  802. package/src/libs/renderer/src/export/pagination.d.ts +0 -116
  803. package/src/libs/renderer/src/export/pagination.js +0 -245
  804. package/src/libs/renderer/src/export/pdf/flate.d.ts +0 -13
  805. package/src/libs/renderer/src/export/pdf/flate.js +0 -287
  806. package/src/libs/renderer/src/export/pdf/index.d.ts +0 -4
  807. package/src/libs/renderer/src/export/pdf/index.js +0 -15
  808. package/src/libs/renderer/src/export/pdf/pdf-export.d.ts +0 -64
  809. package/src/libs/renderer/src/export/pdf/pdf-export.js +0 -1076
  810. package/src/libs/renderer/src/export/pdf/pdf-path.d.ts +0 -17
  811. package/src/libs/renderer/src/export/pdf/pdf-path.js +0 -85
  812. package/src/libs/renderer/src/export/pdf/pdf-primitives.d.ts +0 -115
  813. package/src/libs/renderer/src/export/pdf/pdf-primitives.js +0 -338
  814. package/src/libs/renderer/src/export/pdf/png.d.ts +0 -25
  815. package/src/libs/renderer/src/export/pdf/png.js +0 -596
  816. package/src/libs/renderer/src/export/raster.d.ts +0 -42
  817. package/src/libs/renderer/src/export/raster.js +0 -126
  818. package/src/libs/renderer/src/export/round-trip.d.ts +0 -83
  819. package/src/libs/renderer/src/export/round-trip.js +0 -432
  820. package/src/libs/renderer/src/export/scope.d.ts +0 -16
  821. package/src/libs/renderer/src/export/scope.js +0 -69
  822. package/src/libs/renderer/src/export/style-flattener.d.ts +0 -23
  823. package/src/libs/renderer/src/export/style-flattener.js +0 -144
  824. package/src/libs/renderer/src/export/svg-export.d.ts +0 -123
  825. package/src/libs/renderer/src/export/svg-export.js +0 -178
  826. package/src/libs/renderer/src/export/vnode-serializer.d.ts +0 -75
  827. package/src/libs/renderer/src/export/vnode-serializer.js +0 -344
  828. package/src/libs/renderer/src/ext/capabilities.d.ts +0 -178
  829. package/src/libs/renderer/src/ext/capabilities.js +0 -22
  830. package/src/libs/renderer/src/ext/capability-factory.d.ts +0 -44
  831. package/src/libs/renderer/src/ext/capability-factory.js +0 -194
  832. package/src/libs/renderer/src/ext/components/attach.d.ts +0 -66
  833. package/src/libs/renderer/src/ext/components/attach.js +0 -112
  834. package/src/libs/renderer/src/ext/components/background.d.ts +0 -84
  835. package/src/libs/renderer/src/ext/components/background.js +0 -202
  836. package/src/libs/renderer/src/ext/components/controls.d.ts +0 -49
  837. package/src/libs/renderer/src/ext/components/controls.js +0 -144
  838. package/src/libs/renderer/src/ext/components/minimap.d.ts +0 -78
  839. package/src/libs/renderer/src/ext/components/minimap.js +0 -326
  840. package/src/libs/renderer/src/ext/diagram-registry.d.ts +0 -109
  841. package/src/libs/renderer/src/ext/diagram-registry.js +0 -303
  842. package/src/libs/renderer/src/ext/disposable.d.ts +0 -51
  843. package/src/libs/renderer/src/ext/disposable.js +0 -104
  844. package/src/libs/renderer/src/ext/extension-host.d.ts +0 -144
  845. package/src/libs/renderer/src/ext/extension-host.js +0 -272
  846. package/src/libs/renderer/src/ext/index.d.ts +0 -62
  847. package/src/libs/renderer/src/ext/index.js +0 -91
  848. package/src/libs/renderer/src/ext/link-pipeline.d.ts +0 -195
  849. package/src/libs/renderer/src/ext/link-pipeline.js +0 -431
  850. package/src/libs/renderer/src/ext/manifest.d.ts +0 -73
  851. package/src/libs/renderer/src/ext/manifest.js +0 -149
  852. package/src/libs/renderer/src/ext/node-component.d.ts +0 -114
  853. package/src/libs/renderer/src/ext/node-component.js +0 -290
  854. package/src/libs/renderer/src/ext/plugins-loader.d.ts +0 -1
  855. package/src/libs/renderer/src/ext/plugins-loader.js +0 -18
  856. package/src/libs/renderer/src/ext/portal.d.ts +0 -129
  857. package/src/libs/renderer/src/ext/portal.js +0 -267
  858. package/src/libs/renderer/src/ext/public-api.d.ts +0 -101
  859. package/src/libs/renderer/src/ext/public-api.js +0 -201
  860. package/src/libs/renderer/src/ext/registry-scope.d.ts +0 -93
  861. package/src/libs/renderer/src/ext/registry-scope.js +0 -142
  862. package/src/libs/renderer/src/ext/tools.d.ts +0 -164
  863. package/src/libs/renderer/src/ext/tools.js +0 -170
  864. package/src/libs/renderer/src/index.d.ts +0 -34
  865. package/src/libs/renderer/src/index.js +0 -108
  866. package/src/libs/renderer/src/instance/create-diagram.d.ts +0 -385
  867. package/src/libs/renderer/src/instance/create-diagram.js +0 -1150
  868. package/src/libs/renderer/src/instance/diagram-instance.d.ts +0 -48
  869. package/src/libs/renderer/src/instance/diagram-instance.js +0 -51
  870. package/src/libs/renderer/src/instance/dom-event-binder.d.ts +0 -394
  871. package/src/libs/renderer/src/instance/dom-event-binder.js +0 -2104
  872. package/src/libs/renderer/src/instance/index.d.ts +0 -5
  873. package/src/libs/renderer/src/instance/index.js +0 -13
  874. package/src/libs/renderer/src/instance/layers.d.ts +0 -31
  875. package/src/libs/renderer/src/instance/layers.js +0 -43
  876. package/src/libs/renderer/src/instance/model-input.d.ts +0 -229
  877. package/src/libs/renderer/src/instance/model-input.js +0 -325
  878. package/src/libs/renderer/src/instance/render-scheduler.d.ts +0 -79
  879. package/src/libs/renderer/src/instance/render-scheduler.js +0 -96
  880. package/src/libs/renderer/src/instance/wheel-scroll-yield.d.ts +0 -38
  881. package/src/libs/renderer/src/instance/wheel-scroll-yield.js +0 -118
  882. package/src/libs/renderer/src/interaction/ControlPointEditor.d.ts +0 -160
  883. package/src/libs/renderer/src/interaction/ControlPointEditor.js +0 -360
  884. package/src/libs/renderer/src/interaction/WaypointEditor.d.ts +0 -133
  885. package/src/libs/renderer/src/interaction/WaypointEditor.js +0 -263
  886. package/src/libs/renderer/src/interaction/highlighters.d.ts +0 -88
  887. package/src/libs/renderer/src/interaction/highlighters.js +0 -212
  888. package/src/libs/renderer/src/interaction/in-place-editor.d.ts +0 -63
  889. package/src/libs/renderer/src/interaction/in-place-editor.js +0 -141
  890. package/src/libs/renderer/src/interaction/index.d.ts +0 -11
  891. package/src/libs/renderer/src/interaction/index.js +0 -29
  892. package/src/libs/renderer/src/interaction/ink-overlay.d.ts +0 -53
  893. package/src/libs/renderer/src/interaction/ink-overlay.js +0 -154
  894. package/src/libs/renderer/src/interaction/interaction-controller.d.ts +0 -555
  895. package/src/libs/renderer/src/interaction/interaction-controller.js +0 -1733
  896. package/src/libs/renderer/src/interaction/keyboard-navigation.d.ts +0 -223
  897. package/src/libs/renderer/src/interaction/keyboard-navigation.js +0 -885
  898. package/src/libs/renderer/src/interaction/selection-tools.d.ts +0 -343
  899. package/src/libs/renderer/src/interaction/selection-tools.js +0 -918
  900. package/src/libs/renderer/src/interaction/snapping.d.ts +0 -210
  901. package/src/libs/renderer/src/interaction/snapping.js +0 -569
  902. package/src/libs/renderer/src/interaction/touch-gestures.d.ts +0 -160
  903. package/src/libs/renderer/src/interaction/touch-gestures.js +0 -549
  904. package/src/libs/renderer/src/interaction/whiteboard-tools.d.ts +0 -171
  905. package/src/libs/renderer/src/interaction/whiteboard-tools.js +0 -476
  906. package/src/libs/renderer/src/lazy/host-culling.d.ts +0 -116
  907. package/src/libs/renderer/src/lazy/host-culling.js +0 -135
  908. package/src/libs/renderer/src/lazy/index.d.ts +0 -7
  909. package/src/libs/renderer/src/lazy/index.js +0 -28
  910. package/src/libs/renderer/src/lazy/progressive-mounter.d.ts +0 -80
  911. package/src/libs/renderer/src/lazy/progressive-mounter.js +0 -264
  912. package/src/libs/renderer/src/lazy/types.d.ts +0 -43
  913. package/src/libs/renderer/src/lazy/types.js +0 -14
  914. package/src/libs/renderer/src/lazy/view-lifecycle.d.ts +0 -97
  915. package/src/libs/renderer/src/lazy/view-lifecycle.js +0 -221
  916. package/src/libs/renderer/src/perf/index.d.ts +0 -2
  917. package/src/libs/renderer/src/perf/index.js +0 -7
  918. package/src/libs/renderer/src/perf/perf-hud.d.ts +0 -46
  919. package/src/libs/renderer/src/perf/perf-hud.js +0 -105
  920. package/src/libs/renderer/src/perf/quality-governor.d.ts +0 -77
  921. package/src/libs/renderer/src/perf/quality-governor.js +0 -154
  922. package/src/libs/renderer/src/platform/index.d.ts +0 -1
  923. package/src/libs/renderer/src/platform/index.js +0 -5
  924. package/src/libs/renderer/src/platform/platform.d.ts +0 -34
  925. package/src/libs/renderer/src/platform/platform.js +0 -64
  926. package/src/libs/renderer/src/presence/bind-presence.d.ts +0 -51
  927. package/src/libs/renderer/src/presence/bind-presence.js +0 -144
  928. package/src/libs/renderer/src/presence/index.d.ts +0 -4
  929. package/src/libs/renderer/src/presence/index.js +0 -18
  930. package/src/libs/renderer/src/presence/presence-overlay.d.ts +0 -121
  931. package/src/libs/renderer/src/presence/presence-overlay.js +0 -465
  932. package/src/libs/renderer/src/presentation/index.d.ts +0 -3
  933. package/src/libs/renderer/src/presentation/index.js +0 -14
  934. package/src/libs/renderer/src/presentation/presentation.d.ts +0 -94
  935. package/src/libs/renderer/src/presentation/presentation.js +0 -158
  936. package/src/libs/renderer/src/presentation/viewport-channel.d.ts +0 -78
  937. package/src/libs/renderer/src/presentation/viewport-channel.js +0 -86
  938. package/src/libs/renderer/src/services/animation-lifecycle.d.ts +0 -153
  939. package/src/libs/renderer/src/services/animation-lifecycle.js +0 -326
  940. package/src/libs/renderer/src/services/animation-performance.service.d.ts +0 -191
  941. package/src/libs/renderer/src/services/animation-performance.service.js +0 -371
  942. package/src/libs/renderer/src/services/animation-sequencer.d.ts +0 -226
  943. package/src/libs/renderer/src/services/animation-sequencer.js +0 -379
  944. package/src/libs/renderer/src/services/animation.service.d.ts +0 -182
  945. package/src/libs/renderer/src/services/animation.service.js +0 -858
  946. package/src/libs/renderer/src/services/custom-animation-registry.d.ts +0 -182
  947. package/src/libs/renderer/src/services/custom-animation-registry.js +0 -361
  948. package/src/libs/renderer/src/ssr/index.d.ts +0 -1
  949. package/src/libs/renderer/src/ssr/index.js +0 -6
  950. package/src/libs/renderer/src/ssr/render-to-static.d.ts +0 -91
  951. package/src/libs/renderer/src/ssr/render-to-static.js +0 -81
  952. package/src/libs/renderer/src/svg/ArrowRenderer.d.ts +0 -159
  953. package/src/libs/renderer/src/svg/ArrowRenderer.js +0 -723
  954. package/src/libs/renderer/src/svg/JumpPointDetector.d.ts +0 -79
  955. package/src/libs/renderer/src/svg/JumpPointDetector.js +0 -176
  956. package/src/libs/renderer/src/svg/JumpPointRenderer.d.ts +0 -59
  957. package/src/libs/renderer/src/svg/JumpPointRenderer.js +0 -309
  958. package/src/libs/renderer/src/svg/LabelRenderer.d.ts +0 -76
  959. package/src/libs/renderer/src/svg/LabelRenderer.js +0 -273
  960. package/src/libs/renderer/src/svg/auto-size.d.ts +0 -76
  961. package/src/libs/renderer/src/svg/auto-size.js +0 -142
  962. package/src/libs/renderer/src/svg/channel-nudging.d.ts +0 -34
  963. package/src/libs/renderer/src/svg/channel-nudging.js +0 -226
  964. package/src/libs/renderer/src/svg/edge-optimizer.d.ts +0 -228
  965. package/src/libs/renderer/src/svg/edge-optimizer.js +0 -606
  966. package/src/libs/renderer/src/svg/edge-templates.d.ts +0 -152
  967. package/src/libs/renderer/src/svg/edge-templates.js +0 -233
  968. package/src/libs/renderer/src/svg/html-node.d.ts +0 -50
  969. package/src/libs/renderer/src/svg/html-node.js +0 -214
  970. package/src/libs/renderer/src/svg/index.d.ts +0 -25
  971. package/src/libs/renderer/src/svg/index.js +0 -32
  972. package/src/libs/renderer/src/svg/link-fanout.d.ts +0 -127
  973. package/src/libs/renderer/src/svg/link-fanout.js +0 -333
  974. package/src/libs/renderer/src/svg/link-hit-test.d.ts +0 -142
  975. package/src/libs/renderer/src/svg/link-hit-test.js +0 -182
  976. package/src/libs/renderer/src/svg/motion-tracker.d.ts +0 -18
  977. package/src/libs/renderer/src/svg/motion-tracker.js +0 -71
  978. package/src/libs/renderer/src/svg/node-sizing.d.ts +0 -51
  979. package/src/libs/renderer/src/svg/node-sizing.js +0 -65
  980. package/src/libs/renderer/src/svg/node-toolbar.d.ts +0 -30
  981. package/src/libs/renderer/src/svg/node-toolbar.js +0 -45
  982. package/src/libs/renderer/src/svg/notation-shapes.d.ts +0 -2
  983. package/src/libs/renderer/src/svg/notation-shapes.js +0 -126
  984. package/src/libs/renderer/src/svg/paint-servers.d.ts +0 -49
  985. package/src/libs/renderer/src/svg/paint-servers.js +0 -225
  986. package/src/libs/renderer/src/svg/panel.d.ts +0 -115
  987. package/src/libs/renderer/src/svg/panel.js +0 -353
  988. package/src/libs/renderer/src/svg/path-outline.d.ts +0 -35
  989. package/src/libs/renderer/src/svg/path-outline.js +0 -134
  990. package/src/libs/renderer/src/svg/port-glyph.d.ts +0 -27
  991. package/src/libs/renderer/src/svg/port-glyph.js +0 -97
  992. package/src/libs/renderer/src/svg/port-label.d.ts +0 -74
  993. package/src/libs/renderer/src/svg/port-label.js +0 -201
  994. package/src/libs/renderer/src/svg/port-layout.d.ts +0 -50
  995. package/src/libs/renderer/src/svg/port-layout.js +0 -212
  996. package/src/libs/renderer/src/svg/port-positioning.d.ts +0 -33
  997. package/src/libs/renderer/src/svg/port-positioning.js +0 -101
  998. package/src/libs/renderer/src/svg/port-spots.d.ts +0 -69
  999. package/src/libs/renderer/src/svg/port-spots.js +0 -154
  1000. package/src/libs/renderer/src/svg/route-memo.d.ts +0 -63
  1001. package/src/libs/renderer/src/svg/route-memo.js +0 -206
  1002. package/src/libs/renderer/src/svg/route-solver-bridge.d.ts +0 -48
  1003. package/src/libs/renderer/src/svg/route-solver-bridge.js +0 -151
  1004. package/src/libs/renderer/src/svg/shape-registry.d.ts +0 -189
  1005. package/src/libs/renderer/src/svg/shape-registry.js +0 -1104
  1006. package/src/libs/renderer/src/svg/stroke-layer.d.ts +0 -36
  1007. package/src/libs/renderer/src/svg/stroke-layer.js +0 -183
  1008. package/src/libs/renderer/src/svg/svg-renderer.d.ts +0 -1737
  1009. package/src/libs/renderer/src/svg/svg-renderer.js +0 -7772
  1010. package/src/libs/renderer/src/svg/text-block.d.ts +0 -54
  1011. package/src/libs/renderer/src/svg/text-block.js +0 -171
  1012. package/src/libs/renderer/src/themes/color-mode.d.ts +0 -81
  1013. package/src/libs/renderer/src/themes/color-mode.js +0 -158
  1014. package/src/libs/renderer/src/themes/contrast.d.ts +0 -67
  1015. package/src/libs/renderer/src/themes/contrast.js +0 -215
  1016. package/src/libs/renderer/src/themes/default-dark-theme.d.ts +0 -6
  1017. package/src/libs/renderer/src/themes/default-dark-theme.js +0 -126
  1018. package/src/libs/renderer/src/themes/default-light-theme.d.ts +0 -6
  1019. package/src/libs/renderer/src/themes/default-light-theme.js +0 -168
  1020. package/src/libs/renderer/src/themes/default-theme-set.d.ts +0 -10
  1021. package/src/libs/renderer/src/themes/default-theme-set.js +0 -25
  1022. package/src/libs/renderer/src/themes/high-contrast-theme.d.ts +0 -5
  1023. package/src/libs/renderer/src/themes/high-contrast-theme.js +0 -170
  1024. package/src/libs/renderer/src/themes/index.d.ts +0 -22
  1025. package/src/libs/renderer/src/themes/index.js +0 -93
  1026. package/src/libs/renderer/src/themes/style-cascade.d.ts +0 -23
  1027. package/src/libs/renderer/src/themes/style-cascade.js +0 -194
  1028. package/src/libs/renderer/src/themes/style-registry.d.ts +0 -40
  1029. package/src/libs/renderer/src/themes/style-registry.js +0 -129
  1030. package/src/libs/renderer/src/themes/theme-a11y.d.ts +0 -65
  1031. package/src/libs/renderer/src/themes/theme-a11y.js +0 -256
  1032. package/src/libs/renderer/src/themes/theme-css.d.ts +0 -30
  1033. package/src/libs/renderer/src/themes/theme-css.js +0 -304
  1034. package/src/libs/renderer/src/themes/theme-ref.d.ts +0 -63
  1035. package/src/libs/renderer/src/themes/theme-ref.js +0 -206
  1036. package/src/libs/renderer/src/themes/theme-vars.d.ts +0 -49
  1037. package/src/libs/renderer/src/themes/theme-vars.js +0 -112
  1038. package/src/libs/renderer/src/themes/token-bridge.d.ts +0 -62
  1039. package/src/libs/renderer/src/themes/token-bridge.js +0 -354
  1040. package/src/libs/renderer/src/types/geometry.types.d.ts +0 -10
  1041. package/src/libs/renderer/src/types/geometry.types.js +0 -3
  1042. package/src/libs/renderer/src/types/index.d.ts +0 -5
  1043. package/src/libs/renderer/src/types/index.js +0 -14
  1044. package/src/libs/renderer/src/types/property-schema/conditions.d.ts +0 -96
  1045. package/src/libs/renderer/src/types/property-schema/conditions.js +0 -8
  1046. package/src/libs/renderer/src/types/property-schema/editor-types.d.ts +0 -310
  1047. package/src/libs/renderer/src/types/property-schema/editor-types.js +0 -8
  1048. package/src/libs/renderer/src/types/property-schema/groups.d.ts +0 -58
  1049. package/src/libs/renderer/src/types/property-schema/groups.js +0 -8
  1050. package/src/libs/renderer/src/types/property-schema/index.d.ts +0 -101
  1051. package/src/libs/renderer/src/types/property-schema/index.js +0 -98
  1052. package/src/libs/renderer/src/types/property-schema/property-definition.d.ts +0 -117
  1053. package/src/libs/renderer/src/types/property-schema/property-definition.js +0 -8
  1054. package/src/libs/renderer/src/types/property-schema/schema.d.ts +0 -108
  1055. package/src/libs/renderer/src/types/property-schema/schema.js +0 -8
  1056. package/src/libs/renderer/src/types/property-schema/validation.d.ts +0 -181
  1057. package/src/libs/renderer/src/types/property-schema/validation.js +0 -8
  1058. package/src/libs/renderer/src/types/renderer.interface.d.ts +0 -623
  1059. package/src/libs/renderer/src/types/renderer.interface.js +0 -3
  1060. package/src/libs/renderer/src/types/theme.types.d.ts +0 -305
  1061. package/src/libs/renderer/src/types/theme.types.js +0 -3
  1062. package/src/libs/renderer/src/types/vnode.types.d.ts +0 -139
  1063. package/src/libs/renderer/src/types/vnode.types.js +0 -3
  1064. package/src/libs/renderer/src/utils/animation-presets.d.ts +0 -310
  1065. package/src/libs/renderer/src/utils/animation-presets.js +0 -406
  1066. package/src/libs/renderer/src/utils/animation-priority.d.ts +0 -118
  1067. package/src/libs/renderer/src/utils/animation-priority.js +0 -258
  1068. package/src/libs/renderer/src/utils/animation-utils.d.ts +0 -159
  1069. package/src/libs/renderer/src/utils/animation-utils.js +0 -323
  1070. package/src/libs/renderer/src/utils/lru-cache.d.ts +0 -34
  1071. package/src/libs/renderer/src/utils/lru-cache.js +0 -72
  1072. package/src/libs/renderer/src/viewport/index.d.ts +0 -1
  1073. package/src/libs/renderer/src/viewport/index.js +0 -6
  1074. package/src/libs/renderer/src/viewport/viewport-controller.d.ts +0 -198
  1075. package/src/libs/renderer/src/viewport/viewport-controller.js +0 -315
  1076. package/src/libs/renderer/src/vnode/container-id-generator.d.ts +0 -94
  1077. package/src/libs/renderer/src/vnode/container-id-generator.js +0 -110
  1078. package/src/libs/renderer/src/vnode/foreign-object.d.ts +0 -157
  1079. package/src/libs/renderer/src/vnode/foreign-object.js +0 -167
  1080. package/src/libs/renderer/src/vnode/index.d.ts +0 -56
  1081. package/src/libs/renderer/src/vnode/index.js +0 -78
  1082. package/src/libs/renderer/src/vnode/patch.d.ts +0 -189
  1083. package/src/libs/renderer/src/vnode/patch.js +0 -564
@@ -1,1373 +0,0 @@
1
- "use strict";
2
- // GroupModel - Entity for organizing nodes into groups (Phase 1.6c)
3
- // Layout configuration storage added in Phase 1.7
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.GroupModel = exports.DEFAULT_GROUP_HEADER_HEIGHT = exports.DEFAULT_GROUP_PADDING = void 0;
6
- const DiagramEntity_1 = require("./DiagramEntity");
7
- /**
8
- * Defaults for groups AUTHORED in code (constructor path). A fitted frame needs
9
- * breathing room and a title band or its label lands under the first member.
10
- * Loaded documents are exempt: restore assigns the stored values (padding
11
- * verbatim — possibly undefined, which getPadding() resolves to 0 — and
12
- * headerHeight number-or-0), so legacy geometry is byte-stable.
13
- */
14
- exports.DEFAULT_GROUP_PADDING = 16;
15
- exports.DEFAULT_GROUP_HEADER_HEIGHT = 24;
16
- class GroupModel extends DiagramEntity_1.DiagramEntity {
17
- constructor(config) {
18
- super(config.id);
19
- this.members = new Set();
20
- this.isCollapsed = false;
21
- // Phase 1.7: Layout configuration storage
22
- this.layoutType = 'none';
23
- // Position and size for layout calculations
24
- this.position = { x: 0, y: 0 };
25
- // Wave-2: transient drag-hover highlight state (not serialized).
26
- this.isHovered = false;
27
- this.headerHeight = exports.DEFAULT_GROUP_HEADER_HEIGHT;
28
- this.zIndex = 0;
29
- this.fitMode = 'exact';
30
- this.constrainChildren = false;
31
- // ---------------------------------------------------------------------------
32
- // A — PUSH-DRIVEN LAYOUT
33
- //
34
- // `applyLayout` has always been a real layout engine. It was just never CALLED:
35
- // it was pulled by hand, plus a one-shot on `addMember` behind an opt-IN metadata
36
- // flag. Resize a container, delete a widget, or grow a child, and nothing
37
- // reflowed. Everything below turns those three events into pushes, following the
38
- // precedent already set by `NodeModel.setPosition` (which propagates) and
39
- // `SwimlaneService.reflow` (the one place that already did this correctly).
40
- // ---------------------------------------------------------------------------
41
- /**
42
- * Re-entrancy guard. The cycle this closes is real and one hop long: layout
43
- * writes a child's size → the child notifies its containers → the container lays
44
- * out again → it writes the child's size… Held for the duration of one pass;
45
- * every push that arrives DURING a pass is dropped, because that pass is already
46
- * producing the answer the push would ask for.
47
- */
48
- this.layoutInFlight = false;
49
- this.name = config.name;
50
- }
51
- /**
52
- * Resolve the owning diagram, preferring an explicit argument and falling
53
- * back to the reference stashed in metadata by DiagramModel.addGroup.
54
- */
55
- resolveDiagram(diagram) {
56
- return diagram !== null && diagram !== void 0 ? diagram : this.metadata.get('diagram');
57
- }
58
- /**
59
- * Whether `candidateId` may legally join this group (Wave-2).
60
- * Rejects self-membership, ancestor cycles (adding an ancestor group as a
61
- * member would create a containment loop), and candidates failing the
62
- * per-group `memberValidation` predicate. Node candidates only run the
63
- * predicate check (nodes can't form group cycles).
64
- */
65
- canAddMember(candidateId, diagram) {
66
- if (candidateId === this.id) {
67
- return false;
68
- }
69
- const dm = this.resolveDiagram(diagram);
70
- const candidateGroup = dm === null || dm === void 0 ? void 0 : dm.getGroup(candidateId);
71
- // Cycle prevention: reject if the candidate is an ancestor of this group.
72
- if (candidateGroup && dm) {
73
- const ancestors = dm.getAncestors(this.id);
74
- if (ancestors.some((g) => g.id === candidateId)) {
75
- return false;
76
- }
77
- }
78
- // Wave-5 Card 7: capacity / WIP limit — reject an add that would push the
79
- // group past its limit. Already-present candidates never count (re-adds are
80
- // no-ops), so this only gates genuinely new members (incl. drops, which flow
81
- // through GroupMembershipService → canAddMember).
82
- if (this.capacity !== undefined &&
83
- !this.members.has(candidateId) &&
84
- this.members.size >= this.capacity) {
85
- return false;
86
- }
87
- // Per-group membership predicate.
88
- if (this.memberValidation && !this.memberValidation(candidateId, this)) {
89
- return false;
90
- }
91
- return true;
92
- }
93
- /**
94
- * Wave-5 Card 7: WIP state for the capacity limit. 'under' = room to spare,
95
- * 'full' = exactly at the limit (the visual warning threshold), 'over' = past
96
- * it (only reachable by lowering capacity below the current count). Returns
97
- * 'unlimited' when no capacity is set.
98
- */
99
- getWipState() {
100
- const count = this.members.size;
101
- if (this.capacity === undefined) {
102
- return { count, state: 'unlimited' };
103
- }
104
- const state = count > this.capacity ? 'over' : count >= this.capacity ? 'full' : 'under';
105
- return { count, capacity: this.capacity, state };
106
- }
107
- /** Wave-5 Card 7: true when at or beyond the capacity limit (warning state). */
108
- isOverCapacity() {
109
- const s = this.getWipState().state;
110
- return s === 'full' || s === 'over';
111
- }
112
- /** Set (or clear) the capacity / WIP limit, tracked for undo/diff. */
113
- setCapacity(capacity) {
114
- if (this.capacity === capacity) {
115
- return;
116
- }
117
- const old = this.capacity;
118
- this.capacity = capacity;
119
- this.trackChange('capacity', old, capacity);
120
- this.emitter.emit('capacity:changed', this.getWipState());
121
- }
122
- /**
123
- * Add member to group.
124
- *
125
- * When the member is itself a group, this establishes containment by setting
126
- * the child's `parentGroupId` (detaching it from any previous parent), which
127
- * keeps the nesting tree consistent for getAncestors/getDescendants. Members
128
- * that would create a cycle or fail `memberValidation` are rejected (no-op).
129
- */
130
- addMember(entityId, diagram) {
131
- if (this.members.has(entityId)) {
132
- return;
133
- }
134
- const dm = this.resolveDiagram(diagram);
135
- // Guard cycles + validation (no-op on rejection to preserve void contract).
136
- if (!this.canAddMember(entityId, dm)) {
137
- return;
138
- }
139
- this.members.add(entityId);
140
- // Group member => maintain the containment back-pointer.
141
- const childGroup = dm === null || dm === void 0 ? void 0 : dm.getGroup(entityId);
142
- if (childGroup) {
143
- this.linkChildGroup(childGroup, dm);
144
- }
145
- this.trackChange('members', null, entityId);
146
- this.emitter.emit('member:added', entityId);
147
- // PUSH (A): a container that declares a layout reflows when its membership
148
- // changes. This used to require an explicit `autoLayout` metadata flag, which
149
- // meant the default behaviour of a layout container was "do nothing".
150
- this.requestLayout(dm);
151
- }
152
- /**
153
- * Remove member from group. When the member is a group whose parent is this
154
- * group, its `parentGroupId` back-pointer is cleared so the nesting tree
155
- * stays consistent.
156
- */
157
- removeMember(entityId, diagram) {
158
- if (this.members.has(entityId)) {
159
- this.members.delete(entityId);
160
- const dm = this.resolveDiagram(diagram);
161
- const childGroup = dm === null || dm === void 0 ? void 0 : dm.getGroup(entityId);
162
- if (childGroup && childGroup.parentGroupId === this.id) {
163
- childGroup.clearParentGroupId();
164
- }
165
- this.trackChange('members', entityId, null);
166
- this.emitter.emit('member:removed', entityId);
167
- // PUSH (A): the survivors close the gap. Deleting a dashboard widget and
168
- // leaving a hole is the single most obvious symptom of a pull-only layout.
169
- this.requestLayout(dm);
170
- return true;
171
- }
172
- return false;
173
- }
174
- /**
175
- * Make `child` a nested group of this group: detach from previous parent's
176
- * members and point `parentGroupId` here. Uses protected access allowed
177
- * between GroupModel instances.
178
- */
179
- linkChildGroup(child, diagram) {
180
- if (child.parentGroupId === this.id) {
181
- return;
182
- }
183
- // Detach from a previous parent so its members set stays consistent.
184
- //
185
- // THROUGH THE FUNNEL. `trackChange` is the single channel every mutation in this
186
- // engine is observed on — dirty tracking, versioning, and (wave 9) the collab capture
187
- // layer that turns edits into ops. This detach mutates a THIRD group's Set and used
188
- // to do it SILENTLY, so re-parenting a nested group never reached any peer: the old
189
- // parent kept the child in `members` forever on every machine but the author's, and
190
- // the two documents disagreed with nothing anywhere reporting a problem. Mirrors
191
- // removeMember's own three lines exactly — a half-mirror is the next bug.
192
- if (child.parentGroupId) {
193
- const oldParent = diagram.getGroup(child.parentGroupId);
194
- if (oldParent === null || oldParent === void 0 ? void 0 : oldParent.members.delete(child.id)) {
195
- oldParent.trackChange('members', child.id, null);
196
- oldParent.emitter.emit('member:removed', child.id);
197
- oldParent.requestLayout(diagram);
198
- }
199
- }
200
- const old = child.parentGroupId;
201
- child.parentGroupId = this.id;
202
- child.trackChange('parentGroupId', old, this.id);
203
- child.emitter.emit('parent:changed', { oldParentId: old, newParentId: this.id });
204
- }
205
- /**
206
- * Clear this group's parent back-pointer (used when detached from a parent).
207
- */
208
- clearParentGroupId() {
209
- if (this.parentGroupId === undefined) {
210
- return;
211
- }
212
- const old = this.parentGroupId;
213
- this.parentGroupId = undefined;
214
- this.trackChange('parentGroupId', old, undefined);
215
- this.emitter.emit('parent:changed', { oldParentId: old, newParentId: undefined });
216
- }
217
- /**
218
- * Reparent this group under `newParentId` (or detach when undefined),
219
- * keeping both the `parentGroupId` pointer and the parents' `members` sets
220
- * consistent. Rejects cycles (a group cannot be nested under one of its own
221
- * descendants) and returns false without mutating anything.
222
- */
223
- setParent(newParentId, diagram) {
224
- const dm = this.resolveDiagram(diagram);
225
- if (newParentId !== undefined) {
226
- if (newParentId === this.id) {
227
- return false;
228
- }
229
- // Cycle prevention: the new parent must not live inside this subtree.
230
- if (dm && dm.getDescendants(this.id).some((g) => g.id === newParentId)) {
231
- return false;
232
- }
233
- // Honour the target group's own membership predicate.
234
- const newParent = dm === null || dm === void 0 ? void 0 : dm.getGroup(newParentId);
235
- if (newParent && !newParent.canAddMember(this.id, dm)) {
236
- return false;
237
- }
238
- }
239
- const oldParentId = this.parentGroupId;
240
- if (oldParentId === newParentId) {
241
- return true;
242
- }
243
- // Detach from old parent's members — THROUGH THE FUNNEL, see linkChildGroup. These
244
- // two writes touch a group that is neither `this` nor the caller, and mutating a
245
- // model this engine is watching without telling it is how an edit becomes invisible
246
- // to undo, to dirty tracking and to every peer in the session at once.
247
- if (dm && oldParentId) {
248
- const oldParent = dm.getGroup(oldParentId);
249
- if (oldParent === null || oldParent === void 0 ? void 0 : oldParent.members.delete(this.id)) {
250
- oldParent.trackChange('members', this.id, null);
251
- oldParent.emitter.emit('member:removed', this.id);
252
- oldParent.requestLayout(dm);
253
- }
254
- }
255
- this.parentGroupId = newParentId;
256
- this.trackChange('parentGroupId', oldParentId, newParentId);
257
- this.emitter.emit('parent:changed', { oldParentId, newParentId });
258
- // Attach to new parent's members (kept in sync with parentGroupId).
259
- if (dm && newParentId) {
260
- const newParent = dm.getGroup(newParentId);
261
- if (newParent && !newParent.members.has(this.id)) {
262
- newParent.members.add(this.id);
263
- newParent.trackChange('members', null, this.id);
264
- newParent.emitter.emit('member:added', this.id);
265
- newParent.requestLayout(dm);
266
- }
267
- }
268
- return true;
269
- }
270
- /**
271
- * Set transient drag-hover highlight state and notify listeners (Wave-2).
272
- * Renderers/canvas can subscribe to 'hover:changed' to outline a drop target.
273
- */
274
- setHovered(hovered) {
275
- if (this.isHovered !== hovered) {
276
- this.isHovered = hovered;
277
- this.emitter.emit('hover:changed', hovered);
278
- }
279
- }
280
- /**
281
- * Expand the group
282
- */
283
- expand() {
284
- if (this.isCollapsed) {
285
- this.isCollapsed = false;
286
- this.trackChange('isCollapsed', true, false);
287
- this.emitter.emit('expanded');
288
- }
289
- }
290
- /**
291
- * Collapse the group
292
- */
293
- collapse() {
294
- if (!this.isCollapsed) {
295
- this.isCollapsed = true;
296
- this.trackChange('isCollapsed', false, true);
297
- this.emitter.emit('collapsed');
298
- }
299
- }
300
- /**
301
- * Wave-5 Card 4: set (or clear) the reversible collapse snapshot. Tracked as a
302
- * change so the incremental diff-capture serializes it and undo/redo see it.
303
- */
304
- setCollapsedState(state) {
305
- const old = this.collapsedState;
306
- this.collapsedState = state;
307
- this.trackChange('collapsedState', old, state);
308
- }
309
- setLayout(type, config) {
310
- const oldType = this.layoutType;
311
- const oldConfig = this.layoutConfig;
312
- this.layoutType = type;
313
- this.layoutConfig = config;
314
- this.version++;
315
- this.trackChange('layoutType', oldType, type);
316
- this.trackChange('layoutConfig', oldConfig, config);
317
- this.emitter.emit('layout:changed', { type, config });
318
- }
319
- /**
320
- * Clear layout configuration (Phase 1.7)
321
- */
322
- clearLayout() {
323
- const oldType = this.layoutType;
324
- const oldConfig = this.layoutConfig;
325
- this.layoutType = 'none';
326
- this.layoutConfig = undefined;
327
- this.version++;
328
- this.trackChange('layoutType', oldType, 'none');
329
- this.trackChange('layoutConfig', oldConfig, undefined);
330
- this.emitter.emit('layout:cleared');
331
- }
332
- /**
333
- * Get layout configuration (Phase 1.7)
334
- */
335
- getLayout() {
336
- return {
337
- type: this.layoutType,
338
- config: this.layoutConfig,
339
- };
340
- }
341
- /**
342
- * Check if group has layout configured (Phase 1.7)
343
- */
344
- hasLayout() {
345
- return this.layoutType !== 'none' && this.layoutConfig !== undefined;
346
- }
347
- /**
348
- * Get layout as flexbox config (Phase 1.7)
349
- * @throws Error if layout is not flexbox
350
- */
351
- getFlexboxLayout() {
352
- if (this.layoutType !== 'flexbox') {
353
- throw new Error(`Group ${this.id} does not have flexbox layout`);
354
- }
355
- return this.layoutConfig;
356
- }
357
- /**
358
- * Get layout as grid config (Phase 1.7)
359
- * @throws Error if layout is not grid
360
- */
361
- getGridLayout() {
362
- if (this.layoutType !== 'grid') {
363
- throw new Error(`Group ${this.id} does not have grid layout`);
364
- }
365
- return this.layoutConfig;
366
- }
367
- /**
368
- * Calculate bounds from member nodes using global bounds
369
- */
370
- calculateBounds(diagram) {
371
- const nodes = Array.from(this.members)
372
- .map(id => diagram.getNode(id))
373
- .filter(n => n !== undefined);
374
- if (nodes.length === 0) {
375
- this.bounds = undefined;
376
- return;
377
- }
378
- // Use global bounds (accounts for transforms)
379
- let minX = Infinity;
380
- let minY = Infinity;
381
- let maxX = -Infinity;
382
- let maxY = -Infinity;
383
- for (const node of nodes) {
384
- const bounds = node.getGlobalBounds();
385
- minX = Math.min(minX, bounds.left);
386
- minY = Math.min(minY, bounds.top);
387
- maxX = Math.max(maxX, bounds.right);
388
- maxY = Math.max(maxY, bounds.bottom);
389
- }
390
- this.bounds = {
391
- x: minX,
392
- y: minY,
393
- width: maxX - minX,
394
- height: maxY - minY
395
- };
396
- }
397
- // ---------------------------------------------------------------------------
398
- // Wave-5 Card 3 — Subflow geometry: auto-fit, extent clamping & z-order
399
- // ---------------------------------------------------------------------------
400
- /**
401
- * Resolve {@link padding} to a full four-sided rectangle. `undefined` (the
402
- * author never said) resolves to {@link DEFAULT_GROUP_PADDING}; an explicit
403
- * value — including the 0 that loaders pin for legacy documents — is taken
404
- * as written.
405
- */
406
- getPadding() {
407
- var _a, _b, _c, _d;
408
- const p = this.padding;
409
- if (p === undefined) {
410
- return {
411
- top: exports.DEFAULT_GROUP_PADDING,
412
- right: exports.DEFAULT_GROUP_PADDING,
413
- bottom: exports.DEFAULT_GROUP_PADDING,
414
- left: exports.DEFAULT_GROUP_PADDING,
415
- };
416
- }
417
- if (typeof p === 'number') {
418
- return { top: p, right: p, bottom: p, left: p };
419
- }
420
- return {
421
- top: (_a = p.top) !== null && _a !== void 0 ? _a : 0,
422
- right: (_b = p.right) !== null && _b !== void 0 ? _b : 0,
423
- bottom: (_c = p.bottom) !== null && _c !== void 0 ? _c : 0,
424
- left: (_d = p.left) !== null && _d !== void 0 ? _d : 0,
425
- };
426
- }
427
- /**
428
- * The group's outer frame rectangle in world coordinates. Prefers explicit
429
- * geometry (position + size) and falls back to the derived member `bounds`,
430
- * matching how GroupMembershipService hit-tests a group.
431
- */
432
- getOuterBounds() {
433
- if (this.size) {
434
- return {
435
- x: this.position.x,
436
- y: this.position.y,
437
- width: this.size.width,
438
- height: this.size.height,
439
- };
440
- }
441
- if (this.bounds) {
442
- return Object.assign({}, this.bounds);
443
- }
444
- return { x: this.position.x, y: this.position.y, width: 0, height: 0 };
445
- }
446
- /**
447
- * The rectangle members must stay inside: the outer frame minus padding and
448
- * minus the header band (which is reserved at the top). Never returns a
449
- * negative width/height.
450
- */
451
- getInnerBounds() {
452
- const outer = this.getOuterBounds();
453
- const pad = this.getPadding();
454
- const x = outer.x + pad.left;
455
- const y = outer.y + pad.top + this.headerHeight;
456
- const width = Math.max(0, outer.width - pad.left - pad.right);
457
- const height = Math.max(0, outer.height - pad.top - pad.bottom - this.headerHeight);
458
- return { x, y, width, height };
459
- }
460
- /**
461
- * Auto-fit the group frame to its members' bounding box plus padding and the
462
- * header band. This is the real consumer of `padding`/`headerHeight` that
463
- * `calculateBounds` (a tight, padding-free box) never was.
464
- *
465
- * Member groups contribute their own OUTER frame (so a parent fits around a
466
- * nested group's full extent, not just its raw member points). With
467
- * `deepRecursive`, descendant groups are fitted first (deepest first) so the
468
- * parent fits around already-fitted children.
469
- *
470
- * The computed content rectangle is reconciled with the current frame per the
471
- * effective fit mode (grow-only / shrink-only / exact) and written to both
472
- * `position`/`size` (authoritative geometry) and `bounds` (hit-test rect).
473
- * No-op with no positioned members (nothing to fit around).
474
- */
475
- fitToContents(diagram, options) {
476
- var _a;
477
- const dm = this.resolveDiagram(diagram);
478
- if (!dm) {
479
- return;
480
- }
481
- if (options === null || options === void 0 ? void 0 : options.deepRecursive) {
482
- // Deepest-first so each parent fits around already-fitted children.
483
- const descendants = dm
484
- .getDescendants(this.id)
485
- .sort((a, b) => dm.getDepth(b.id) - dm.getDepth(a.id));
486
- for (const child of descendants) {
487
- child.fitToContents(dm, { mode: options.mode });
488
- }
489
- }
490
- const content = this.computeMemberExtent(dm);
491
- if (!content) {
492
- return;
493
- }
494
- const pad = this.getPadding();
495
- const fitted = {
496
- x: content.x - pad.left,
497
- y: content.y - pad.top - this.headerHeight,
498
- width: content.width + pad.left + pad.right,
499
- height: content.height + pad.top + pad.bottom + this.headerHeight,
500
- };
501
- const mode = (_a = options === null || options === void 0 ? void 0 : options.mode) !== null && _a !== void 0 ? _a : this.fitMode;
502
- const target = this.reconcileFit(fitted, mode);
503
- this.setFrame(target);
504
- }
505
- /**
506
- * Bounding box (world coords) of this group's members. Nodes contribute their
507
- * global bounds; member groups contribute their outer frame. Returns
508
- * undefined when nothing is positioned.
509
- */
510
- computeMemberExtent(diagram) {
511
- let minX = Infinity;
512
- let minY = Infinity;
513
- let maxX = -Infinity;
514
- let maxY = -Infinity;
515
- let count = 0;
516
- for (const id of this.members) {
517
- const node = diagram.getNode(id);
518
- if (node) {
519
- const b = node.getGlobalBounds();
520
- minX = Math.min(minX, b.left);
521
- minY = Math.min(minY, b.top);
522
- maxX = Math.max(maxX, b.right);
523
- maxY = Math.max(maxY, b.bottom);
524
- count++;
525
- continue;
526
- }
527
- const child = diagram.getGroup(id);
528
- if (child) {
529
- const r = child.getOuterBounds();
530
- if (r.width > 0 || r.height > 0) {
531
- minX = Math.min(minX, r.x);
532
- minY = Math.min(minY, r.y);
533
- maxX = Math.max(maxX, r.x + r.width);
534
- maxY = Math.max(maxY, r.y + r.height);
535
- count++;
536
- }
537
- }
538
- }
539
- if (count === 0) {
540
- return undefined;
541
- }
542
- return { x: minX, y: minY, width: maxX - minX, height: maxY - minY };
543
- }
544
- /** Apply a fit mode to reconcile a freshly computed rect with the current frame. */
545
- reconcileFit(fitted, mode) {
546
- if (mode === 'exact' || !this.size) {
547
- return fitted;
548
- }
549
- const current = this.getOuterBounds();
550
- if (mode === 'grow-only') {
551
- // Union: expand to contain content, never shrink.
552
- const x = Math.min(current.x, fitted.x);
553
- const y = Math.min(current.y, fitted.y);
554
- const right = Math.max(current.x + current.width, fitted.x + fitted.width);
555
- const bottom = Math.max(current.y + current.height, fitted.y + fitted.height);
556
- return { x, y, width: right - x, height: bottom - y };
557
- }
558
- // shrink-only: never grow beyond the current frame — clamp the fitted rect
559
- // inside it (but still snap smaller when content is smaller).
560
- const x = Math.max(current.x, fitted.x);
561
- const y = Math.max(current.y, fitted.y);
562
- const right = Math.min(current.x + current.width, fitted.x + fitted.width);
563
- const bottom = Math.min(current.y + current.height, fitted.y + fitted.height);
564
- return {
565
- x,
566
- y,
567
- width: Math.max(0, right - x),
568
- height: Math.max(0, bottom - y),
569
- };
570
- }
571
- /**
572
- * Write a world rectangle into the group's authoritative geometry
573
- * (position + size) and the derived hit-test `bounds`, keeping the existing
574
- * `depth` when present. Tracks a single 'bounds' change for undo/diff.
575
- */
576
- setFrame(rect) {
577
- var _a, _b;
578
- const oldBounds = this.bounds;
579
- this.position = { x: rect.x, y: rect.y };
580
- this.size = {
581
- width: rect.width,
582
- height: rect.height,
583
- depth: (_b = (_a = this.size) === null || _a === void 0 ? void 0 : _a.depth) !== null && _b !== void 0 ? _b : 0,
584
- };
585
- this.bounds = { x: rect.x, y: rect.y, width: rect.width, height: rect.height };
586
- this.trackChange('bounds', oldBounds, this.bounds);
587
- this.emitter.emit('bounds:changed', this.bounds);
588
- // PUSH (A): the frame IS the layout's coordinate system and available width.
589
- // Resizing or moving a container without reflowing its children is how you
590
- // get a 12-column dashboard whose columns stop matching its own edges.
591
- this.requestLayout();
592
- }
593
- /**
594
- * Clamp a member node so it stays fully inside the group's inner extent.
595
- * No-op unless `constrainChildren` is set and the node is a direct member.
596
- * Returns true when the node was actually moved. Absolute-coordinate model:
597
- * this adjusts the node's world position directly.
598
- */
599
- clampChildToExtent(nodeId, diagram) {
600
- if (!this.constrainChildren || !this.members.has(nodeId)) {
601
- return false;
602
- }
603
- const dm = this.resolveDiagram(diagram);
604
- const node = dm === null || dm === void 0 ? void 0 : dm.getNode(nodeId);
605
- if (!node) {
606
- return false;
607
- }
608
- const inner = this.getInnerBounds();
609
- if (inner.width <= 0 || inner.height <= 0) {
610
- return false;
611
- }
612
- const b = node.getGlobalBounds();
613
- const w = b.right - b.left;
614
- const h = b.bottom - b.top;
615
- // Largest top-left that still fits; clamp within [inner.x, inner.right - w].
616
- const maxX = Math.max(inner.x, inner.x + inner.width - w);
617
- const maxY = Math.max(inner.y, inner.y + inner.height - h);
618
- const clampedLeft = Math.min(Math.max(b.left, inner.x), maxX);
619
- const clampedTop = Math.min(Math.max(b.top, inner.y), maxY);
620
- const dx = clampedLeft - b.left;
621
- const dy = clampedTop - b.top;
622
- if (dx === 0 && dy === 0) {
623
- return false;
624
- }
625
- node.setPosition(node.position.x + dx, node.position.y + dy);
626
- return true;
627
- }
628
- /**
629
- * Wave-5 Card 4: restore raw geometry (position + optional size + bounds)
630
- * captured before a collapse. Unlike setFrame this permits size === undefined
631
- * so a group that had no explicit frame is restored to exactly that.
632
- */
633
- restoreGeometry(geo) {
634
- const oldBounds = this.bounds;
635
- this.position = { x: geo.position.x, y: geo.position.y };
636
- this.size = geo.size ? Object.assign({}, geo.size) : undefined;
637
- this.bounds = geo.bounds ? Object.assign({}, geo.bounds) : undefined;
638
- this.trackChange('bounds', oldBounds, this.bounds);
639
- this.emitter.emit('bounds:changed', this.bounds);
640
- }
641
- /** Set the group's stacking index (lower renders further back). */
642
- setZIndex(z) {
643
- if (this.zIndex === z) {
644
- return;
645
- }
646
- const old = this.zIndex;
647
- this.zIndex = z;
648
- this.trackChange('zIndex', old, z);
649
- this.emitter.emit('zindex:changed', z);
650
- }
651
- /**
652
- * Bring this group in front of every other group (highest zIndex + 1).
653
- * Minimal z-order API — the renderer honors zIndex ordering.
654
- */
655
- bringToFront(diagram) {
656
- const dm = this.resolveDiagram(diagram);
657
- if (!dm) {
658
- this.setZIndex(this.zIndex + 1);
659
- return;
660
- }
661
- const max = Math.max(0, ...dm.getGroups().map((g) => g.zIndex));
662
- this.setZIndex(max + 1);
663
- }
664
- /** Send this group behind every other group (lowest zIndex - 1). */
665
- sendToBack(diagram) {
666
- const dm = this.resolveDiagram(diagram);
667
- if (!dm) {
668
- this.setZIndex(this.zIndex - 1);
669
- return;
670
- }
671
- const min = Math.min(0, ...dm.getGroups().map((g) => g.zIndex));
672
- this.setZIndex(min - 1);
673
- }
674
- /**
675
- * Is push-driven reflow active for this container?
676
- *
677
- * DEFAULT ON for any group that declares a layout — a container that says
678
- * "I am a 12-column grid" and then lets its children drift is not a layout
679
- * container. `metadata('autoLayout')` survives as the explicit override:
680
- * set it to `false` to freeze the children (useful while dragging, or for a
681
- * container whose positions are authored by hand). Setting it to `true`
682
- * remains valid and is now simply the default.
683
- */
684
- isAutoLayoutEnabled() {
685
- if (this.getMetadata('autoLayout') === false) {
686
- return false;
687
- }
688
- return this.hasLayout();
689
- }
690
- /**
691
- * THE push entry point: "something changed, reflow if you are supposed to."
692
- * Distinct from {@link applyLayout}, which is the unconditional PULL — an
693
- * explicit `applyLayout()` still works on an opted-out container.
694
- */
695
- requestLayout(diagram) {
696
- if (!this.isAutoLayoutEnabled()) {
697
- return;
698
- }
699
- this.applyLayout(diagram);
700
- }
701
- /**
702
- * Apply layout to member nodes (Phase 1.7+)
703
- * Positions child nodes based on flex or grid layout configuration
704
- */
705
- applyLayout(diagram) {
706
- if (!this.hasLayout() || this.layoutInFlight) {
707
- return;
708
- }
709
- // Get diagram from metadata if not provided
710
- const diagramToUse = diagram || this.metadata.get('diagram');
711
- if (!diagramToUse) {
712
- console.warn(`Cannot apply layout to group ${this.id}: diagram not available`);
713
- return;
714
- }
715
- // Get member entities (nodes and groups)
716
- const entities = [];
717
- for (const id of this.members) {
718
- const node = diagramToUse.getNode(id);
719
- if (node) {
720
- entities.push(node);
721
- }
722
- else {
723
- const group = diagramToUse.getGroup(id);
724
- if (group) {
725
- entities.push(group);
726
- }
727
- }
728
- }
729
- if (entities.length === 0) {
730
- return;
731
- }
732
- this.layoutInFlight = true;
733
- try {
734
- if (this.layoutType === 'flexbox') {
735
- this.applyFlexboxLayout(entities);
736
- }
737
- else if (this.layoutType === 'grid') {
738
- this.applyGridLayout(entities);
739
- }
740
- }
741
- finally {
742
- this.layoutInFlight = false;
743
- }
744
- }
745
- // ---------------------------------------------------------------------------
746
- // Entity writers — the ONLY places a layout pass touches a child's geometry
747
- // ---------------------------------------------------------------------------
748
- /**
749
- * D — auto-layout SKIPS LOCKED MEMBERS.
750
- *
751
- * A locked member keeps both its position and its size, but still consumes its
752
- * slot in the flow (callers advance the cursor by the child's CURRENT size), so
753
- * the container never stacks another widget on top of a pinned one. This is the
754
- * precedent `LayoutManager` already set for graph layouts — it restores locked
755
- * node positions after every run — and it is what "pin this tile" means to
756
- * someone building a dashboard.
757
- */
758
- isPinned(entity) {
759
- var _a;
760
- return ((_a = entity.state) === null || _a === void 0 ? void 0 : _a.locked) === true;
761
- }
762
- /**
763
- * Move a member. Nodes go through `setPosition` (tracked + propagating);
764
- * member GROUPS go through `setFrame` when they have a frame, which is what
765
- * cascades the reflow down into a nested container's own children.
766
- */
767
- placeEntity(entity, x, y) {
768
- if (this.isPinned(entity)) {
769
- return;
770
- }
771
- if ('setPosition' in entity && typeof entity.setPosition === 'function') {
772
- entity.setPosition(x, y);
773
- return;
774
- }
775
- const group = entity;
776
- if (group.size) {
777
- group.setFrame({ x, y, width: group.size.width, height: group.size.height });
778
- return;
779
- }
780
- group.position = { x, y };
781
- group.requestLayout();
782
- }
783
- /**
784
- * Resize a member along one or both axes. `undefined` leaves that axis alone.
785
- * Nodes go through `setSize` so the write is tracked and honours the per-node
786
- * lock; member groups go through `setFrame` so their own children follow.
787
- */
788
- resizeEntity(entity, width, height) {
789
- if (this.isPinned(entity) || !entity.size) {
790
- return;
791
- }
792
- const w = width !== null && width !== void 0 ? width : entity.size.width;
793
- const h = height !== null && height !== void 0 ? height : entity.size.height;
794
- if (w === entity.size.width && h === entity.size.height) {
795
- return;
796
- }
797
- if ('setSize' in entity && typeof entity.setSize === 'function') {
798
- entity.setSize(w, h, entity.size.depth);
799
- return;
800
- }
801
- const group = entity;
802
- group.setFrame({ x: group.position.x, y: group.position.y, width: w, height: h });
803
- }
804
- /**
805
- * B — the per-item flex config, finally read. `order` is a stable sort key
806
- * (equal orders keep membership order), exactly like CSS.
807
- */
808
- orderFlexEntities(entities) {
809
- const anyOrdered = entities.some((e) => { var _a; return ((_a = this.flexItemOf(e)) === null || _a === void 0 ? void 0 : _a.order) !== undefined; });
810
- if (!anyOrdered) {
811
- return entities;
812
- }
813
- return entities
814
- .map((entity, i) => ({ entity, i }))
815
- .sort((a, b) => {
816
- var _a, _b, _c, _d;
817
- const oa = (_b = (_a = this.flexItemOf(a.entity)) === null || _a === void 0 ? void 0 : _a.order) !== null && _b !== void 0 ? _b : 0;
818
- const ob = (_d = (_c = this.flexItemOf(b.entity)) === null || _c === void 0 ? void 0 : _c.order) !== null && _d !== void 0 ? _d : 0;
819
- return oa !== ob ? oa - ob : a.i - b.i;
820
- })
821
- .map((e) => e.entity);
822
- }
823
- /** FlexItemConfig of a member, if it is a node that carries one. */
824
- flexItemOf(entity) {
825
- const node = entity;
826
- return typeof node.getFlexItem === 'function' ? node.getFlexItem() : undefined;
827
- }
828
- /** GridItemConfig of a member, if it is a node that carries one. */
829
- gridItemOf(entity) {
830
- const node = entity;
831
- return typeof node.getGridItem === 'function' ? node.getGridItem() : undefined;
832
- }
833
- /**
834
- * Apply flexbox layout to entities (nodes or groups).
835
- *
836
- * B — a real single-pass flex algorithm, written axis-agnostically so `row` and
837
- * `column` share one code path: line breaking (`wrap`), `flexGrow` distribution,
838
- * `justifyContent` on the main axis, and `alignItems`/`alignSelf` (including
839
- * `stretch`) on the cross axis. Previously only `justifyContent: 'center'` and
840
- * `alignItems: 'center'` existed and `wrap` was unread.
841
- *
842
- * The Bootstrap-style `columns` path is untouched and still takes priority for
843
- * row containers — see {@link applyColumnBasedLayout}.
844
- */
845
- applyFlexboxLayout(entities) {
846
- var _a, _b, _c;
847
- const config = this.getFlexboxLayout();
848
- const padding = this.normalizePadding(config.padding);
849
- const isColumn = config.direction === 'column' || config.direction === 'column-reverse';
850
- const isReverse = config.direction.endsWith('-reverse');
851
- // PRESERVED QUIRK: the main-axis gap reads `gap.row` for BOTH directions when
852
- // gap is an object. Every asserted pixel in the existing specs was produced by
853
- // that reading; the cross-axis (line) gap is new and picks the correct member.
854
- const mainGap = typeof config.gap === 'number' ? config.gap : config.gap.row;
855
- const crossGap = typeof config.gap === 'number' ? config.gap : isColumn ? config.gap.column : config.gap.row;
856
- const ordered = this.orderFlexEntities(entities);
857
- const directed = isReverse ? ordered.slice().reverse() : ordered;
858
- const startX = this.position.x + padding.left;
859
- const startY = this.position.y + padding.top;
860
- // Bootstrap 12-column path (rows only), unchanged.
861
- if (!isColumn && config.columns !== undefined && config.columns > 0 && this.size) {
862
- this.applyColumnBasedLayout(directed, config, padding, startX, startY);
863
- return;
864
- }
865
- const contentWidth = this.size ? this.size.width - padding.left - padding.right : undefined;
866
- const contentHeight = this.size ? this.size.height - padding.top - padding.bottom : undefined;
867
- const mainAvail = isColumn ? contentHeight : contentWidth;
868
- const crossAvail = isColumn ? contentWidth : contentHeight;
869
- const mainOf = (e) => { var _a, _b, _c; return (_c = (isColumn ? (_a = e.size) === null || _a === void 0 ? void 0 : _a.height : (_b = e.size) === null || _b === void 0 ? void 0 : _b.width)) !== null && _c !== void 0 ? _c : (isColumn ? 50 : 100); };
870
- const crossOf = (e) => { var _a, _b, _c; return (_c = (isColumn ? (_a = e.size) === null || _a === void 0 ? void 0 : _a.width : (_b = e.size) === null || _b === void 0 ? void 0 : _b.height)) !== null && _c !== void 0 ? _c : (isColumn ? 100 : 50); };
871
- // ---- 1. Line breaking (`wrap`) -----------------------------------------
872
- // Without a container extent there is no overflow to detect, so an unsized
873
- // container is always single-line regardless of `wrap` — which is exactly the
874
- // behaviour every pre-existing spec was written against.
875
- const wraps = config.wrap !== 'nowrap' && mainAvail !== undefined;
876
- const lines = [];
877
- if (!wraps) {
878
- lines.push(directed);
879
- }
880
- else {
881
- let line = [];
882
- let used = 0;
883
- for (const entity of directed) {
884
- const size = mainOf(entity);
885
- const next = line.length === 0 ? size : used + mainGap + size;
886
- if (line.length > 0 && next > mainAvail) {
887
- lines.push(line);
888
- line = [entity];
889
- used = size;
890
- }
891
- else {
892
- line.push(entity);
893
- used = next;
894
- }
895
- }
896
- if (line.length > 0) {
897
- lines.push(line);
898
- }
899
- }
900
- if (config.wrap === 'wrap-reverse') {
901
- lines.reverse();
902
- }
903
- // ---- 2. Per-line: grow, justify, align ----------------------------------
904
- let crossCursor = isColumn ? startX : startY;
905
- for (const line of lines) {
906
- // flexGrow — distribute leftover main-axis space by factor.
907
- if (mainAvail !== undefined) {
908
- const totalGrow = line.reduce((s, e) => { var _a, _b; return s + ((_b = (_a = this.flexItemOf(e)) === null || _a === void 0 ? void 0 : _a.flexGrow) !== null && _b !== void 0 ? _b : 0); }, 0);
909
- if (totalGrow > 0) {
910
- const used = line.reduce((s, e) => s + mainOf(e), 0) + mainGap * Math.max(0, line.length - 1);
911
- const free = mainAvail - used;
912
- if (free > 0) {
913
- for (const entity of line) {
914
- const grow = (_b = (_a = this.flexItemOf(entity)) === null || _a === void 0 ? void 0 : _a.flexGrow) !== null && _b !== void 0 ? _b : 0;
915
- if (grow <= 0)
916
- continue;
917
- const target = mainOf(entity) + (free * grow) / totalGrow;
918
- this.resizeEntity(entity, isColumn ? undefined : target, isColumn ? target : undefined);
919
- }
920
- }
921
- }
922
- }
923
- // The line's cross extent. A SINGLE line in a sized container fills the
924
- // container's content box (that is what makes `center`/`end`/`stretch`
925
- // measure against the container, as the legacy centering code did); wrapped
926
- // lines measure against their own tallest item, as CSS does.
927
- const lineCross = lines.length === 1 && crossAvail !== undefined
928
- ? crossAvail
929
- : line.reduce((m, e) => Math.max(m, crossOf(e)), 0);
930
- // justifyContent — main-axis offset + inter-item spacing.
931
- const usedMain = line.reduce((s, e) => s + mainOf(e), 0) + mainGap * Math.max(0, line.length - 1);
932
- const free = mainAvail !== undefined ? mainAvail - usedMain : 0;
933
- const { offset, spacing } = this.resolveJustify(config.justifyContent, mainAvail !== undefined ? free : 0, line.length);
934
- let mainCursor = (isColumn ? startY : startX) + offset;
935
- for (const entity of line) {
936
- const align = (_c = this.flexItemOf(entity)) === null || _c === void 0 ? void 0 : _c.alignSelf;
937
- const effectiveAlign = align === undefined || align === 'auto' ? config.alignItems : align;
938
- if (effectiveAlign === 'stretch') {
939
- this.resizeEntity(entity, isColumn ? lineCross : undefined, isColumn ? undefined : lineCross);
940
- }
941
- const crossOffset = this.resolveAlign(effectiveAlign, lineCross, crossOf(entity));
942
- const cross = crossCursor + crossOffset;
943
- this.placeEntity(entity, isColumn ? cross : mainCursor, isColumn ? mainCursor : cross);
944
- mainCursor += mainOf(entity) + mainGap + spacing;
945
- }
946
- crossCursor += lineCross + crossGap;
947
- }
948
- }
949
- /**
950
- * Main-axis distribution for one flex line: how far the first item is pushed in,
951
- * and how much EXTRA space goes between consecutive items (on top of `gap`).
952
- * `start` (and anything unrecognised) is the identity, so a container with no
953
- * size — where `free` is passed as 0 — always lays out from the content origin.
954
- */
955
- resolveJustify(justify, free, count) {
956
- if (free <= 0 || count === 0) {
957
- return { offset: 0, spacing: 0 };
958
- }
959
- switch (justify) {
960
- case 'center':
961
- return { offset: free / 2, spacing: 0 };
962
- case 'end':
963
- return { offset: free, spacing: 0 };
964
- case 'space-between':
965
- return count === 1
966
- ? { offset: 0, spacing: 0 }
967
- : { offset: 0, spacing: free / (count - 1) };
968
- case 'space-around': {
969
- const unit = free / count;
970
- return { offset: unit / 2, spacing: unit };
971
- }
972
- case 'space-evenly': {
973
- const unit = free / (count + 1);
974
- return { offset: unit, spacing: unit };
975
- }
976
- default:
977
- return { offset: 0, spacing: 0 };
978
- }
979
- }
980
- /**
981
- * Cross-axis offset of one item inside its line. `stretch` has already resized
982
- * the item by the time this runs, so it lands at the line start like `start`.
983
- * `baseline` degrades to `start`: this model has no text baselines to align to,
984
- * and quietly inventing one would be worse than saying so.
985
- */
986
- resolveAlign(align, lineCross, itemCross) {
987
- switch (align) {
988
- case 'center':
989
- return (lineCross - itemCross) / 2;
990
- case 'end':
991
- return lineCross - itemCross;
992
- default:
993
- return 0;
994
- }
995
- }
996
- /**
997
- * Apply column-based layout (like Bootstrap 12-column grid)
998
- */
999
- applyColumnBasedLayout(entities, config, padding, startX, startY) {
1000
- var _a, _b, _c;
1001
- if (!this.size || !config.columns)
1002
- return;
1003
- const totalColumns = config.columns;
1004
- const gap = typeof config.gap === 'number' ? config.gap : config.gap.column || 0;
1005
- // Available width for content (excluding padding)
1006
- const availableWidth = this.size.width - padding.left - padding.right;
1007
- // Calculate column width (including gaps)
1008
- const totalGaps = (totalColumns - 1) * gap;
1009
- const columnWidth = (availableWidth - totalGaps) / totalColumns;
1010
- let currentX = startX;
1011
- let currentY = startY;
1012
- let currentColumn = 0;
1013
- let currentRowHeight = 0; // Track max height in current row
1014
- const rowEntities = []; // Track entities in current row
1015
- for (const entity of entities) {
1016
- // Get column span from metadata (default = 1)
1017
- const columnSpan = entity.getMetadata('columnSpan') || 1;
1018
- const clampedSpan = Math.min(columnSpan, totalColumns);
1019
- // Check if entity fits in current row
1020
- if (currentColumn + clampedSpan > totalColumns) {
1021
- // Move to next row
1022
- currentColumn = 0;
1023
- currentX = startX;
1024
- currentY += currentRowHeight + gap;
1025
- currentRowHeight = 0;
1026
- rowEntities.length = 0; // Clear row entities
1027
- }
1028
- // Calculate entity width based on column span
1029
- const entityWidth = columnWidth * clampedSpan + gap * (clampedSpan - 1);
1030
- // Update entity size to match column width. Routed through resizeEntity /
1031
- // placeEntity so the write is tracked, honours the per-node lock (D), and
1032
- // cascades into a member group's own children (A).
1033
- this.resizeEntity(entity, entityWidth);
1034
- this.placeEntity(entity, currentX, currentY);
1035
- // Track row height (max height in this row). A PINNED member keeps its own
1036
- // size, so the cursor advances by what it actually occupies.
1037
- const occupiedWidth = this.isPinned(entity) ? (_b = (_a = entity.size) === null || _a === void 0 ? void 0 : _a.width) !== null && _b !== void 0 ? _b : entityWidth : entityWidth;
1038
- const entityHeight = ((_c = entity.size) === null || _c === void 0 ? void 0 : _c.height) || 100;
1039
- currentRowHeight = Math.max(currentRowHeight, entityHeight);
1040
- rowEntities.push(entity);
1041
- // Move to next column position
1042
- currentX += occupiedWidth + gap;
1043
- currentColumn += clampedSpan;
1044
- }
1045
- }
1046
- /**
1047
- * Apply grid layout to entities (nodes or groups).
1048
- *
1049
- * B — placement now comes from each item's {@link GridItemConfig} (explicit
1050
- * `columnStart`/`rowStart` lines and `columnEnd`/`rowEnd` spans), not from the
1051
- * member's ARRAY INDEX. Items with no explicit placement auto-flow into the
1052
- * first cell no explicit item has claimed, in `autoFlow` order. Tracks are
1053
- * uniform: derived from the container's content box when it has one, and from
1054
- * the widest/tallest member otherwise (which is what the old per-entity
1055
- * arithmetic already produced for the equal-sized children it was written for).
1056
- */
1057
- applyGridLayout(entities) {
1058
- var _a, _b;
1059
- const config = this.getGridLayout();
1060
- const columns = Math.max(1, this.parseGridColumns(config.templateColumns));
1061
- const columnGap = config.columnGap || 0;
1062
- const rowGap = config.rowGap || 0;
1063
- const padding = this.normalizePadding(config.padding);
1064
- const startX = this.position.x + padding.left;
1065
- const startY = this.position.y + padding.top;
1066
- // `templateRows` bounds a column-flow grid's row axis (CSS: column flow grows
1067
- // COLUMNS, so the rows have to be finite). With none declared, fall back to
1068
- // "as many rows as there are members", which can never force a wrap.
1069
- const templateRowCount = config.templateRows ? this.parseGridColumns(config.templateRows) : 0;
1070
- const rowLimit = templateRowCount > 0 ? templateRowCount : Math.max(1, entities.length);
1071
- const placements = this.resolveGridPlacements(entities, columns, config.autoFlow, rowLimit);
1072
- // Track sizes.
1073
- const rowCount = placements.reduce((m, p) => Math.max(m, p.row + p.rowSpan), 1);
1074
- const contentWidth = this.size ? this.size.width - padding.left - padding.right : undefined;
1075
- const contentHeight = this.size ? this.size.height - padding.top - padding.bottom : undefined;
1076
- const rowTracks = Math.max(rowCount, templateRowCount || 0, 1);
1077
- const columnWidth = contentWidth !== undefined
1078
- ? (contentWidth - columnGap * (columns - 1)) / columns
1079
- : entities.reduce((m, e) => { var _a, _b; return Math.max(m, (_b = (_a = e.size) === null || _a === void 0 ? void 0 : _a.width) !== null && _b !== void 0 ? _b : 0); }, 0) || 100;
1080
- const rowHeight = contentHeight !== undefined
1081
- ? (contentHeight - rowGap * (rowTracks - 1)) / rowTracks
1082
- : entities.reduce((m, e) => { var _a, _b; return Math.max(m, (_b = (_a = e.size) === null || _a === void 0 ? void 0 : _a.height) !== null && _b !== void 0 ? _b : 0); }, 0) || 100;
1083
- for (const { entity, row, column, rowSpan, columnSpan } of placements) {
1084
- const x = startX + column * (columnWidth + columnGap);
1085
- const y = startY + row * (rowHeight + rowGap);
1086
- // Cell-filling is OPT-IN. CSS defaults `justify-items`/`align-items` to
1087
- // stretch, but this engine's grid never resized anything, and silently
1088
- // starting to would re-geometry every existing grid container. Ask for it.
1089
- const item = this.gridItemOf(entity);
1090
- const justify = (_a = item === null || item === void 0 ? void 0 : item.justifySelf) !== null && _a !== void 0 ? _a : config.justifyItems;
1091
- const alignSelf = (_b = item === null || item === void 0 ? void 0 : item.alignSelf) !== null && _b !== void 0 ? _b : config.alignItems;
1092
- const stretchW = justify === 'stretch';
1093
- const stretchH = alignSelf === 'stretch';
1094
- if (stretchW || stretchH) {
1095
- this.resizeEntity(entity, stretchW ? columnWidth * columnSpan + columnGap * (columnSpan - 1) : undefined, stretchH ? rowHeight * rowSpan + rowGap * (rowSpan - 1) : undefined);
1096
- }
1097
- this.placeEntity(entity, x, y);
1098
- }
1099
- }
1100
- /**
1101
- * Resolve every member to a 0-based grid cell + span.
1102
- *
1103
- * Two passes, because explicit placement must WIN: pass 1 reserves the cells
1104
- * claimed by items with a `GridItemConfig` line (or a `gridColumn`/`gridRow`
1105
- * metadata fallback); pass 2 flows the rest into the first cell still free.
1106
- * Without the reservation an auto item would happily land under a pinned one —
1107
- * which is precisely the bug "placement by array index" always had.
1108
- */
1109
- resolveGridPlacements(entities, columns, autoFlow, rowLimit) {
1110
- var _a, _b;
1111
- const occupied = new Set();
1112
- const key = (r, c) => `${r}:${c}`;
1113
- const occupy = (p) => {
1114
- for (let r = p.row; r < p.row + p.rowSpan; r++) {
1115
- for (let c = p.column; c < p.column + p.columnSpan; c++) {
1116
- occupied.add(key(r, c));
1117
- }
1118
- }
1119
- };
1120
- const fits = (row, column, rowSpan, columnSpan) => {
1121
- if (column + columnSpan > columns)
1122
- return false;
1123
- for (let r = row; r < row + rowSpan; r++) {
1124
- for (let c = column; c < column + columnSpan; c++) {
1125
- if (occupied.has(key(r, c)))
1126
- return false;
1127
- }
1128
- }
1129
- return true;
1130
- };
1131
- const line = (v) => typeof v === 'number' && v >= 1 ? v - 1 : undefined; // CSS lines are 1-based
1132
- const specs = entities.map((entity) => {
1133
- var _a, _b;
1134
- const item = this.gridItemOf(entity);
1135
- const column = (_a = line(item === null || item === void 0 ? void 0 : item.columnStart)) !== null && _a !== void 0 ? _a : line(entity.getMetadata('gridColumn'));
1136
- const row = (_b = line(item === null || item === void 0 ? void 0 : item.rowStart)) !== null && _b !== void 0 ? _b : line(entity.getMetadata('gridRow'));
1137
- // Span: the CSS end-line form first, then the `columnSpan`/`rowSpan`
1138
- // metadata the Bootstrap path already uses (kept working on purpose).
1139
- const endCol = line(item === null || item === void 0 ? void 0 : item.columnEnd);
1140
- const endRow = line(item === null || item === void 0 ? void 0 : item.rowEnd);
1141
- const columnSpan = Math.max(1, Math.min(columns, endCol !== undefined && column !== undefined
1142
- ? endCol - column
1143
- : entity.getMetadata('columnSpan') || 1));
1144
- const rowSpan = Math.max(1, endRow !== undefined && row !== undefined
1145
- ? endRow - row
1146
- : entity.getMetadata('rowSpan') || 1);
1147
- return { entity, row, column, rowSpan, columnSpan };
1148
- });
1149
- const placements = [];
1150
- // Pass 1 — explicit placements reserve their cells.
1151
- for (const spec of specs) {
1152
- if (spec.row === undefined || spec.column === undefined)
1153
- continue;
1154
- const p = {
1155
- entity: spec.entity,
1156
- row: spec.row,
1157
- column: Math.min(spec.column, Math.max(0, columns - spec.columnSpan)),
1158
- rowSpan: spec.rowSpan,
1159
- columnSpan: spec.columnSpan,
1160
- };
1161
- occupy(p);
1162
- placements.push(p);
1163
- }
1164
- // Pass 2 — auto-flow the rest into the first cell pass 1 left free.
1165
- //
1166
- // `row` flow scans row-major (across, then down); `column` flow scans
1167
- // column-major (down `rowLimit` rows, then across). The row axis is
1168
- // unbounded in row flow, so the scan is capped rather than trusted.
1169
- const columnFirst = autoFlow === 'column';
1170
- const maxScan = (entities.length + 2) * (columns + 2);
1171
- for (const spec of specs) {
1172
- if (spec.row !== undefined && spec.column !== undefined)
1173
- continue;
1174
- let row = (_a = spec.row) !== null && _a !== void 0 ? _a : 0;
1175
- let column = (_b = spec.column) !== null && _b !== void 0 ? _b : 0;
1176
- if (spec.column !== undefined) {
1177
- // Column pinned by the author: walk DOWN that column for a free row.
1178
- while (!fits(row, column, spec.rowSpan, spec.columnSpan) && row < maxScan)
1179
- row++;
1180
- }
1181
- else if (spec.row !== undefined) {
1182
- // Row pinned: walk ACROSS that row.
1183
- while (!fits(row, column, spec.rowSpan, spec.columnSpan) && column < columns)
1184
- column++;
1185
- if (column >= columns)
1186
- column = 0;
1187
- }
1188
- else if (columnFirst) {
1189
- let scanned = 0;
1190
- while (!fits(row, column, spec.rowSpan, spec.columnSpan) && scanned++ < maxScan) {
1191
- row++;
1192
- if (row + spec.rowSpan > rowLimit) {
1193
- row = 0;
1194
- column++;
1195
- }
1196
- }
1197
- }
1198
- else {
1199
- let scanned = 0;
1200
- while (!fits(row, column, spec.rowSpan, spec.columnSpan) && scanned++ < maxScan) {
1201
- column++;
1202
- if (column + spec.columnSpan > columns) {
1203
- column = 0;
1204
- row++;
1205
- }
1206
- }
1207
- }
1208
- const p = {
1209
- entity: spec.entity,
1210
- row,
1211
- column: Math.min(column, Math.max(0, columns - spec.columnSpan)),
1212
- rowSpan: spec.rowSpan,
1213
- columnSpan: spec.columnSpan,
1214
- };
1215
- occupy(p);
1216
- placements.push(p);
1217
- }
1218
- return placements;
1219
- }
1220
- /**
1221
- * Normalize padding to all four sides
1222
- */
1223
- normalizePadding(padding) {
1224
- if (padding === undefined) {
1225
- return { top: 0, right: 0, bottom: 0, left: 0 };
1226
- }
1227
- if (typeof padding === 'number') {
1228
- return { top: padding, right: padding, bottom: padding, left: padding };
1229
- }
1230
- return padding;
1231
- }
1232
- /**
1233
- * Parse grid template columns to get column count
1234
- */
1235
- parseGridColumns(templateColumns) {
1236
- // Simple parser - count space-separated values
1237
- // Example: "1fr 1fr 1fr" = 3 columns, "repeat(3, 1fr)" = 3 columns
1238
- const repeatMatch = templateColumns.match(/repeat\((\d+),/);
1239
- if (repeatMatch) {
1240
- return parseInt(repeatMatch[1], 10);
1241
- }
1242
- return templateColumns.split(' ').length;
1243
- }
1244
- /**
1245
- * Serialize to JSON
1246
- */
1247
- serialize() {
1248
- var _a;
1249
- // The 'diagram' metadata key is RUNTIME wiring (a live DiagramModel
1250
- // back-reference stashed by DiagramModel.addGroup/installGroup). It must
1251
- // never reach the payload: serializing it embeds the entire live model
1252
- // into the JSON (circular reference — JSON.stringify throws). The install
1253
- // path re-stashes it on load.
1254
- const metadata = Object.fromEntries(Array.from(this.metadata).filter(([key]) => key !== 'diagram'));
1255
- return {
1256
- id: this.id,
1257
- uuid: this.uuid,
1258
- type: 'group',
1259
- version: this.version,
1260
- metadata,
1261
- name: this.name,
1262
- members: Array.from(this.members),
1263
- isCollapsed: this.isCollapsed,
1264
- bounds: this.bounds,
1265
- layoutType: this.layoutType, // Phase 1.7
1266
- layoutConfig: this.layoutConfig, // Phase 1.7
1267
- // Group geometry: round-trip position (always present) and size (optional)
1268
- // so layout/placement survives save/load.
1269
- position: { x: this.position.x, y: this.position.y },
1270
- size: this.size
1271
- ? { width: this.size.width, height: this.size.height, depth: this.size.depth }
1272
- : undefined,
1273
- // Wave-2: containment tree pointer (undefined for top-level groups).
1274
- parentGroupId: this.parentGroupId,
1275
- // Wave-5 Card 3: padding is RESOLVED at save time — a document must mean
1276
- // what it meant, so an authored group pins today's default into the file
1277
- // (a future default change can never re-geometry it). headerHeight 0 is
1278
- // still omitted: loaders pin the absent key back to 0, which keeps legacy
1279
- // documents byte-stable through load→save.
1280
- padding: (_a = this.padding) !== null && _a !== void 0 ? _a : exports.DEFAULT_GROUP_PADDING,
1281
- headerHeight: this.headerHeight !== 0 ? this.headerHeight : undefined,
1282
- zIndex: this.zIndex !== 0 ? this.zIndex : undefined,
1283
- fitMode: this.fitMode !== 'exact' ? this.fitMode : undefined,
1284
- constrainChildren: this.constrainChildren ? true : undefined,
1285
- // Wave-5 Card 4: present only while collapsed.
1286
- collapsedState: this.collapsedState,
1287
- // Wave-5 Card 5: per-group compound-layout intent (present only when set).
1288
- subgraphLayout: this.subgraphLayout,
1289
- // Wave-5 Card 6: swimlane/pool band config (present only on pools & lanes).
1290
- laneConfig: this.laneConfig,
1291
- // Wave-5 Card 7: declarative auto-membership rule + capacity/WIP limit.
1292
- membershipRule: this.membershipRule,
1293
- capacity: this.capacity,
1294
- };
1295
- }
1296
- /**
1297
- * Deserialize from JSON
1298
- */
1299
- static fromJSON(data) {
1300
- var _a;
1301
- const group = new GroupModel({ id: data.id, name: data.name });
1302
- group.members = new Set(data.members);
1303
- group.isCollapsed = data.isCollapsed;
1304
- group.bounds = data.bounds;
1305
- // Wave-2: restore containment tree pointer.
1306
- if (data.parentGroupId !== undefined) {
1307
- group.parentGroupId = data.parentGroupId;
1308
- }
1309
- // Restore group geometry (position/size). Position defaults to origin when
1310
- // absent so older serialized payloads keep working.
1311
- if (data.position) {
1312
- group.position = { x: data.position.x, y: data.position.y };
1313
- }
1314
- if (data.size) {
1315
- group.size = {
1316
- width: data.size.width,
1317
- height: data.size.height,
1318
- depth: data.size.depth,
1319
- };
1320
- }
1321
- // Phase 1.7: Restore layout configuration
1322
- if (data.layoutType) {
1323
- group.layoutType = data.layoutType;
1324
- }
1325
- if (data.layoutConfig) {
1326
- group.layoutConfig = data.layoutConfig;
1327
- }
1328
- // Wave-5 Card 3: restore subflow geometry. Absent keys PIN TO 0 — they were
1329
- // written by an engine whose values were 0, and a loaded document must mean
1330
- // what it meant when saved. Leaving padding `undefined` here would let
1331
- // getPadding() resolve it to the authored default and silently re-geometry
1332
- // every legacy fit.
1333
- group.padding = (_a = data.padding) !== null && _a !== void 0 ? _a : 0;
1334
- group.headerHeight = typeof data.headerHeight === 'number' ? data.headerHeight : 0;
1335
- if (typeof data.zIndex === 'number') {
1336
- group.zIndex = data.zIndex;
1337
- }
1338
- if (data.fitMode) {
1339
- group.fitMode = data.fitMode;
1340
- }
1341
- if (data.constrainChildren !== undefined) {
1342
- group.constrainChildren = data.constrainChildren;
1343
- }
1344
- // Wave-5 Card 4: restore collapse snapshot (only present while collapsed).
1345
- if (data.collapsedState) {
1346
- group.collapsedState = data.collapsedState;
1347
- }
1348
- // Wave-5 Card 5: restore per-group compound-layout intent.
1349
- if (data.subgraphLayout) {
1350
- group.subgraphLayout = data.subgraphLayout;
1351
- }
1352
- // Wave-5 Card 6: restore swimlane/pool band config.
1353
- if (data.laneConfig) {
1354
- group.laneConfig = data.laneConfig;
1355
- }
1356
- // Wave-5 Card 7: restore declarative membership rule + capacity/WIP limit.
1357
- if (data.membershipRule) {
1358
- group.membershipRule = data.membershipRule;
1359
- }
1360
- if (typeof data.capacity === 'number') {
1361
- group.capacity = data.capacity;
1362
- }
1363
- // Restore metadata
1364
- for (const [key, value] of Object.entries(data.metadata)) {
1365
- group.metadata.set(key, value);
1366
- }
1367
- // Last: restore persisted identity (uuid) and mutation counter (version).
1368
- group.restoreIdentity(data);
1369
- return group;
1370
- }
1371
- }
1372
- exports.GroupModel = GroupModel;
1373
- //# sourceMappingURL=GroupModel.js.map