@grafloria/element 0.3.18 → 0.3.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1148) hide show
  1. package/esm/src/index.js +295 -0
  2. package/esm/src/lib/dashboard-kit/dashboard.js +590 -0
  3. package/esm/src/lib/dashboard-kit/grid-binder.js +1633 -0
  4. package/esm/src/lib/dashboard-kit/grid-mapping.js +164 -0
  5. package/esm/src/lib/dashboard-kit/index.js +8 -0
  6. package/esm/src/lib/dashboard-kit/styles.js +205 -0
  7. package/esm/src/lib/dashboard-kit/widgets.js +379 -0
  8. package/esm/src/lib/diagram-kit/card.js +199 -0
  9. package/esm/src/lib/diagram-kit/editing.js +448 -0
  10. package/esm/src/lib/diagram-kit/er.js +160 -0
  11. package/esm/src/lib/diagram-kit/handles.js +312 -0
  12. package/esm/src/lib/diagram-kit/index.js +15 -0
  13. package/esm/src/lib/diagram-kit/join-guidance.js +322 -0
  14. package/esm/src/lib/diagram-kit/rows.js +144 -0
  15. package/esm/src/lib/diagram-kit/styles.js +118 -0
  16. package/esm/src/lib/diagram-kit/uml.js +135 -0
  17. package/esm/src/lib/diagram-kit/update.js +244 -0
  18. package/esm/src/lib/grafloria-flow-element.js +266 -0
  19. package/esm/src/lib/grafloria.js +69 -0
  20. package/esm/src/lib/load.js +252 -0
  21. package/esm/src/lib/node-type-registry.js +42 -0
  22. package/esm/src/lib/stencil-kit/builders.js +18 -0
  23. package/esm/src/lib/stencil-kit/card-builders.js +105 -0
  24. package/esm/src/lib/stencil-kit/index.js +9 -0
  25. package/esm/src/lib/stencil-kit/palette.js +427 -0
  26. package/esm/src/lib/stencil-kit/shape-data.js +537 -0
  27. package/esm/src/lib/stencil-kit/styles.js +126 -0
  28. package/package.json +13 -4
  29. package/src/index.d.ts +2 -1
  30. package/src/index.js +11 -2
  31. package/src/lib/dashboard-kit/grid-binder.js +16 -15
  32. package/src/lib/dashboard-kit/styles.js +9 -3
  33. package/src/lib/diagram-kit/index.d.ts +1 -0
  34. package/src/lib/diagram-kit/index.js +11 -1
  35. package/src/lib/diagram-kit/join-guidance.d.ts +116 -0
  36. package/src/lib/diagram-kit/join-guidance.js +331 -0
  37. package/src/lib/stencil-kit/palette.js +60 -6
  38. package/src/lib/stencil-kit/shape-data.d.ts +3 -2
  39. package/src/lib/stencil-kit/shape-data.js +323 -31
  40. package/src/lib/stencil-kit/styles.js +15 -0
  41. package/src/libs/element/src/index.d.ts +92 -0
  42. package/src/libs/element/src/index.js +576 -0
  43. package/src/libs/element/src/lib/dashboard-kit/dashboard.d.ts +345 -0
  44. package/src/libs/element/src/lib/dashboard-kit/dashboard.js +594 -0
  45. package/src/libs/element/src/lib/dashboard-kit/grid-binder.d.ts +277 -0
  46. package/src/libs/element/src/lib/dashboard-kit/grid-binder.js +1636 -0
  47. package/src/libs/element/src/lib/dashboard-kit/grid-mapping.d.ts +141 -0
  48. package/src/libs/element/src/lib/dashboard-kit/grid-mapping.js +176 -0
  49. package/src/libs/element/src/lib/dashboard-kit/index.d.ts +5 -0
  50. package/src/libs/element/src/lib/dashboard-kit/index.js +33 -0
  51. package/src/libs/element/src/lib/dashboard-kit/styles.d.ts +25 -0
  52. package/src/libs/element/src/lib/dashboard-kit/styles.js +209 -0
  53. package/src/libs/element/src/lib/dashboard-kit/widgets.d.ts +112 -0
  54. package/src/libs/element/src/lib/dashboard-kit/widgets.js +389 -0
  55. package/src/libs/element/src/lib/diagram-kit/card.d.ts +75 -0
  56. package/src/libs/element/src/lib/diagram-kit/card.js +209 -0
  57. package/src/libs/element/src/lib/diagram-kit/editing.d.ts +58 -0
  58. package/src/libs/element/src/lib/diagram-kit/editing.js +453 -0
  59. package/src/libs/element/src/lib/diagram-kit/er.d.ts +73 -0
  60. package/src/libs/element/src/lib/diagram-kit/er.js +163 -0
  61. package/src/libs/element/src/lib/diagram-kit/handles.d.ts +181 -0
  62. package/src/libs/element/src/lib/diagram-kit/handles.js +325 -0
  63. package/src/libs/element/src/lib/diagram-kit/index.d.ts +10 -0
  64. package/src/libs/element/src/lib/diagram-kit/index.js +55 -0
  65. package/src/libs/element/src/lib/diagram-kit/join-guidance.d.ts +116 -0
  66. package/src/libs/element/src/lib/diagram-kit/join-guidance.js +331 -0
  67. package/src/libs/element/src/lib/diagram-kit/rows.d.ts +53 -0
  68. package/src/libs/element/src/lib/diagram-kit/rows.js +147 -0
  69. package/src/libs/element/src/lib/diagram-kit/styles.d.ts +18 -0
  70. package/src/libs/element/src/lib/diagram-kit/styles.js +122 -0
  71. package/src/libs/element/src/lib/diagram-kit/uml.d.ts +59 -0
  72. package/src/libs/element/src/lib/diagram-kit/uml.js +138 -0
  73. package/src/libs/element/src/lib/diagram-kit/update.d.ts +133 -0
  74. package/src/libs/element/src/lib/diagram-kit/update.js +251 -0
  75. package/src/libs/element/src/lib/grafloria-flow-element.d.ts +48 -0
  76. package/src/libs/element/src/lib/grafloria-flow-element.js +271 -0
  77. package/src/libs/element/src/lib/grafloria.d.ts +72 -0
  78. package/src/libs/element/src/lib/grafloria.js +74 -0
  79. package/src/libs/element/src/lib/load.d.ts +72 -0
  80. package/src/libs/element/src/lib/load.js +255 -0
  81. package/src/libs/element/src/lib/node-type-registry.d.ts +39 -0
  82. package/src/libs/element/src/lib/node-type-registry.js +50 -0
  83. package/src/libs/element/src/lib/stencil-kit/builders.d.ts +45 -0
  84. package/src/libs/element/src/lib/stencil-kit/builders.js +24 -0
  85. package/src/libs/element/src/lib/stencil-kit/card-builders.d.ts +2 -0
  86. package/src/libs/element/src/lib/stencil-kit/card-builders.js +108 -0
  87. package/src/libs/element/src/lib/stencil-kit/index.d.ts +7 -0
  88. package/src/libs/element/src/lib/stencil-kit/index.js +19 -0
  89. package/src/libs/element/src/lib/stencil-kit/palette.d.ts +93 -0
  90. package/src/libs/element/src/lib/stencil-kit/palette.js +430 -0
  91. package/src/libs/element/src/lib/stencil-kit/shape-data.d.ts +28 -0
  92. package/src/libs/element/src/lib/stencil-kit/shape-data.js +540 -0
  93. package/src/libs/element/src/lib/stencil-kit/styles.d.ts +2 -0
  94. package/src/libs/element/src/lib/stencil-kit/styles.js +129 -0
  95. package/src/libs/engine/src/adapters/component-adapter.interface.d.ts +302 -0
  96. package/src/libs/engine/src/adapters/component-adapter.interface.js +84 -0
  97. package/src/libs/engine/src/adapters/index.d.ts +7 -0
  98. package/src/libs/engine/src/adapters/index.js +11 -0
  99. package/src/libs/engine/src/clipboard/ClipboardManager.d.ts +81 -0
  100. package/src/libs/engine/src/clipboard/ClipboardManager.js +108 -0
  101. package/src/libs/engine/src/clipboard/index.d.ts +1 -0
  102. package/src/libs/engine/src/clipboard/index.js +6 -0
  103. package/src/libs/engine/src/collab/apply-op.d.ts +42 -0
  104. package/src/libs/engine/src/collab/apply-op.js +939 -0
  105. package/src/libs/engine/src/collab/capture.d.ts +147 -0
  106. package/src/libs/engine/src/collab/capture.js +510 -0
  107. package/src/libs/engine/src/collab/index.d.ts +12 -0
  108. package/src/libs/engine/src/collab/index.js +84 -0
  109. package/src/libs/engine/src/collab/integrity.d.ts +178 -0
  110. package/src/libs/engine/src/collab/integrity.js +438 -0
  111. package/src/libs/engine/src/collab/lww.d.ts +47 -0
  112. package/src/libs/engine/src/collab/lww.js +188 -0
  113. package/src/libs/engine/src/collab/op-log.d.ts +50 -0
  114. package/src/libs/engine/src/collab/op-log.js +167 -0
  115. package/src/libs/engine/src/collab/op.d.ts +120 -0
  116. package/src/libs/engine/src/collab/op.js +118 -0
  117. package/src/libs/engine/src/collab/replica.d.ts +188 -0
  118. package/src/libs/engine/src/collab/replica.js +526 -0
  119. package/src/libs/engine/src/collab/undo.d.ts +106 -0
  120. package/src/libs/engine/src/collab/undo.js +388 -0
  121. package/src/libs/engine/src/commands/Command.d.ts +66 -0
  122. package/src/libs/engine/src/commands/Command.js +64 -0
  123. package/src/libs/engine/src/commands/CommandManager.d.ts +161 -0
  124. package/src/libs/engine/src/commands/CommandManager.js +417 -0
  125. package/src/libs/engine/src/commands/basic/AddGroupCommand.d.ts +13 -0
  126. package/src/libs/engine/src/commands/basic/AddGroupCommand.js +50 -0
  127. package/src/libs/engine/src/commands/basic/AddLinkCommand.d.ts +13 -0
  128. package/src/libs/engine/src/commands/basic/AddLinkCommand.js +50 -0
  129. package/src/libs/engine/src/commands/basic/AddNodeCommand.d.ts +13 -0
  130. package/src/libs/engine/src/commands/basic/AddNodeCommand.js +65 -0
  131. package/src/libs/engine/src/commands/basic/AddToGroupCommand.d.ts +12 -0
  132. package/src/libs/engine/src/commands/basic/AddToGroupCommand.js +73 -0
  133. package/src/libs/engine/src/commands/basic/AlignCommands.d.ts +42 -0
  134. package/src/libs/engine/src/commands/basic/AlignCommands.js +138 -0
  135. package/src/libs/engine/src/commands/basic/CollapseGroupCommand.d.ts +14 -0
  136. package/src/libs/engine/src/commands/basic/CollapseGroupCommand.js +70 -0
  137. package/src/libs/engine/src/commands/basic/CopyCommand.d.ts +29 -0
  138. package/src/libs/engine/src/commands/basic/CopyCommand.js +131 -0
  139. package/src/libs/engine/src/commands/basic/CutCommand.d.ts +49 -0
  140. package/src/libs/engine/src/commands/basic/CutCommand.js +68 -0
  141. package/src/libs/engine/src/commands/basic/DeleteSelectionCommand.d.ts +58 -0
  142. package/src/libs/engine/src/commands/basic/DeleteSelectionCommand.js +309 -0
  143. package/src/libs/engine/src/commands/basic/DuplicateCommand.d.ts +31 -0
  144. package/src/libs/engine/src/commands/basic/DuplicateCommand.js +232 -0
  145. package/src/libs/engine/src/commands/basic/ExpandGroupCommand.d.ts +12 -0
  146. package/src/libs/engine/src/commands/basic/ExpandGroupCommand.js +69 -0
  147. package/src/libs/engine/src/commands/basic/MoveGroupCommand.d.ts +46 -0
  148. package/src/libs/engine/src/commands/basic/MoveGroupCommand.js +77 -0
  149. package/src/libs/engine/src/commands/basic/MoveNodeCommand.d.ts +30 -0
  150. package/src/libs/engine/src/commands/basic/MoveNodeCommand.js +87 -0
  151. package/src/libs/engine/src/commands/basic/NodeZOrderCommands.d.ts +39 -0
  152. package/src/libs/engine/src/commands/basic/NodeZOrderCommands.js +120 -0
  153. package/src/libs/engine/src/commands/basic/PasteCommand.d.ts +33 -0
  154. package/src/libs/engine/src/commands/basic/PasteCommand.js +228 -0
  155. package/src/libs/engine/src/commands/basic/PortCommands.d.ts +22 -0
  156. package/src/libs/engine/src/commands/basic/PortCommands.js +85 -0
  157. package/src/libs/engine/src/commands/basic/ReconnectLinkCommand.d.ts +15 -0
  158. package/src/libs/engine/src/commands/basic/ReconnectLinkCommand.js +59 -0
  159. package/src/libs/engine/src/commands/basic/RemoveFromGroupCommand.d.ts +12 -0
  160. package/src/libs/engine/src/commands/basic/RemoveFromGroupCommand.js +64 -0
  161. package/src/libs/engine/src/commands/basic/RemoveGroupCommand.d.ts +12 -0
  162. package/src/libs/engine/src/commands/basic/RemoveGroupCommand.js +56 -0
  163. package/src/libs/engine/src/commands/basic/RemoveLinkCommand.d.ts +12 -0
  164. package/src/libs/engine/src/commands/basic/RemoveLinkCommand.js +57 -0
  165. package/src/libs/engine/src/commands/basic/RemoveNodeCommand.d.ts +23 -0
  166. package/src/libs/engine/src/commands/basic/RemoveNodeCommand.js +108 -0
  167. package/src/libs/engine/src/commands/basic/ResizeNodeCommand.d.ts +16 -0
  168. package/src/libs/engine/src/commands/basic/ResizeNodeCommand.js +81 -0
  169. package/src/libs/engine/src/commands/basic/RotateNodeCommand.d.ts +37 -0
  170. package/src/libs/engine/src/commands/basic/RotateNodeCommand.js +88 -0
  171. package/src/libs/engine/src/commands/basic/SetFlexItemCommand.d.ts +14 -0
  172. package/src/libs/engine/src/commands/basic/SetFlexItemCommand.js +74 -0
  173. package/src/libs/engine/src/commands/basic/SetGridItemCommand.d.ts +14 -0
  174. package/src/libs/engine/src/commands/basic/SetGridItemCommand.js +74 -0
  175. package/src/libs/engine/src/commands/basic/SetLayoutCommand.d.ts +16 -0
  176. package/src/libs/engine/src/commands/basic/SetLayoutCommand.js +80 -0
  177. package/src/libs/engine/src/commands/basic/SetLinkDisplayLabelCommand.d.ts +28 -0
  178. package/src/libs/engine/src/commands/basic/SetLinkDisplayLabelCommand.js +83 -0
  179. package/src/libs/engine/src/commands/basic/SetLinkLabelCommand.d.ts +24 -0
  180. package/src/libs/engine/src/commands/basic/SetLinkLabelCommand.js +81 -0
  181. package/src/libs/engine/src/commands/basic/SetLinkLabelsCommand.d.ts +14 -0
  182. package/src/libs/engine/src/commands/basic/SetLinkLabelsCommand.js +75 -0
  183. package/src/libs/engine/src/commands/basic/SetLinkPathTypeCommand.d.ts +14 -0
  184. package/src/libs/engine/src/commands/basic/SetLinkPathTypeCommand.js +77 -0
  185. package/src/libs/engine/src/commands/basic/SetLinkPointsCommand.d.ts +32 -0
  186. package/src/libs/engine/src/commands/basic/SetLinkPointsCommand.js +87 -0
  187. package/src/libs/engine/src/commands/basic/SetNodeDataCommand.d.ts +14 -0
  188. package/src/libs/engine/src/commands/basic/SetNodeDataCommand.js +93 -0
  189. package/src/libs/engine/src/commands/basic/SetNodeLabelCommand.d.ts +26 -0
  190. package/src/libs/engine/src/commands/basic/SetNodeLabelCommand.js +81 -0
  191. package/src/libs/engine/src/commands/basic/SetNodeShapeConfigCommand.d.ts +14 -0
  192. package/src/libs/engine/src/commands/basic/SetNodeShapeConfigCommand.js +69 -0
  193. package/src/libs/engine/src/commands/basic/SetNodeStyleCommand.d.ts +15 -0
  194. package/src/libs/engine/src/commands/basic/SetNodeStyleCommand.js +88 -0
  195. package/src/libs/engine/src/commands/basic/SetParentCommand.d.ts +13 -0
  196. package/src/libs/engine/src/commands/basic/SetParentCommand.js +109 -0
  197. package/src/libs/engine/src/commands/basic/SetStrokePointsCommand.d.ts +34 -0
  198. package/src/libs/engine/src/commands/basic/SetStrokePointsCommand.js +86 -0
  199. package/src/libs/engine/src/commands/basic/StrokeLifecycleCommands.d.ts +31 -0
  200. package/src/libs/engine/src/commands/basic/StrokeLifecycleCommands.js +88 -0
  201. package/src/libs/engine/src/commands/basic/UpdateLinkStyleCommand.d.ts +15 -0
  202. package/src/libs/engine/src/commands/basic/UpdateLinkStyleCommand.js +72 -0
  203. package/src/libs/engine/src/commands/basic/index.d.ts +41 -0
  204. package/src/libs/engine/src/commands/basic/index.js +52 -0
  205. package/src/libs/engine/src/commands/basic/remapNodePortIds.d.ts +23 -0
  206. package/src/libs/engine/src/commands/basic/remapNodePortIds.js +46 -0
  207. package/src/libs/engine/src/commands/basic/resolveLinkNodeIds.d.ts +31 -0
  208. package/src/libs/engine/src/commands/basic/resolveLinkNodeIds.js +49 -0
  209. package/src/libs/engine/src/commands/composite/BatchCommand.d.ts +19 -0
  210. package/src/libs/engine/src/commands/composite/BatchCommand.js +61 -0
  211. package/src/libs/engine/src/commands/composite/MacroCommand.d.ts +35 -0
  212. package/src/libs/engine/src/commands/composite/MacroCommand.js +87 -0
  213. package/src/libs/engine/src/commands/composite/index.d.ts +2 -0
  214. package/src/libs/engine/src/commands/composite/index.js +7 -0
  215. package/src/libs/engine/src/commands/index.d.ts +4 -0
  216. package/src/libs/engine/src/commands/index.js +9 -0
  217. package/src/libs/engine/src/comments/comment-store.d.ts +238 -0
  218. package/src/libs/engine/src/comments/comment-store.js +538 -0
  219. package/src/libs/engine/src/comments/index.d.ts +4 -0
  220. package/src/libs/engine/src/comments/index.js +31 -0
  221. package/src/libs/engine/src/comments/mentions.d.ts +52 -0
  222. package/src/libs/engine/src/comments/mentions.js +94 -0
  223. package/src/libs/engine/src/comments/read-state.d.ts +37 -0
  224. package/src/libs/engine/src/comments/read-state.js +105 -0
  225. package/src/libs/engine/src/comments/types.d.ts +154 -0
  226. package/src/libs/engine/src/comments/types.js +107 -0
  227. package/src/libs/engine/src/config/InteractionConfig.d.ts +330 -0
  228. package/src/libs/engine/src/config/InteractionConfig.js +154 -0
  229. package/src/libs/engine/src/config/index.d.ts +1 -0
  230. package/src/libs/engine/src/config/index.js +6 -0
  231. package/src/libs/engine/src/dsl/DSL.d.ts +197 -0
  232. package/src/libs/engine/src/dsl/DSL.js +564 -0
  233. package/src/libs/engine/src/dsl/advanced/StyleParser.d.ts +75 -0
  234. package/src/libs/engine/src/dsl/advanced/StyleParser.js +166 -0
  235. package/src/libs/engine/src/dsl/advanced/TemplateParser.d.ts +88 -0
  236. package/src/libs/engine/src/dsl/advanced/TemplateParser.js +226 -0
  237. package/src/libs/engine/src/dsl/advanced/index.d.ts +9 -0
  238. package/src/libs/engine/src/dsl/advanced/index.js +13 -0
  239. package/src/libs/engine/src/dsl/detector/LayoutDetector.d.ts +80 -0
  240. package/src/libs/engine/src/dsl/detector/LayoutDetector.js +333 -0
  241. package/src/libs/engine/src/dsl/extended/BPMNGenerator.d.ts +38 -0
  242. package/src/libs/engine/src/dsl/extended/BPMNGenerator.js +90 -0
  243. package/src/libs/engine/src/dsl/extended/BPMNParser.d.ts +83 -0
  244. package/src/libs/engine/src/dsl/extended/BPMNParser.js +198 -0
  245. package/src/libs/engine/src/dsl/extended/ERDGenerator.d.ts +38 -0
  246. package/src/libs/engine/src/dsl/extended/ERDGenerator.js +126 -0
  247. package/src/libs/engine/src/dsl/extended/ERDParser.d.ts +81 -0
  248. package/src/libs/engine/src/dsl/extended/ERDParser.js +161 -0
  249. package/src/libs/engine/src/dsl/extended/ERDTransformer.d.ts +43 -0
  250. package/src/libs/engine/src/dsl/extended/ERDTransformer.js +105 -0
  251. package/src/libs/engine/src/dsl/extended/UMLGenerator.d.ts +42 -0
  252. package/src/libs/engine/src/dsl/extended/UMLGenerator.js +157 -0
  253. package/src/libs/engine/src/dsl/extended/UMLParser.d.ts +99 -0
  254. package/src/libs/engine/src/dsl/extended/UMLParser.js +200 -0
  255. package/src/libs/engine/src/dsl/extended/index.d.ts +13 -0
  256. package/src/libs/engine/src/dsl/extended/index.js +27 -0
  257. package/src/libs/engine/src/dsl/generator/DSLFormatter.d.ts +87 -0
  258. package/src/libs/engine/src/dsl/generator/DSLFormatter.js +261 -0
  259. package/src/libs/engine/src/dsl/generator/DSLGenerator.d.ts +96 -0
  260. package/src/libs/engine/src/dsl/generator/DSLGenerator.js +328 -0
  261. package/src/libs/engine/src/dsl/generator/DiagramAnalyzer.d.ts +111 -0
  262. package/src/libs/engine/src/dsl/generator/DiagramAnalyzer.js +361 -0
  263. package/src/libs/engine/src/dsl/index.d.ts +35 -0
  264. package/src/libs/engine/src/dsl/index.js +64 -0
  265. package/src/libs/engine/src/dsl/lexer/Lexer.d.ts +117 -0
  266. package/src/libs/engine/src/dsl/lexer/Lexer.js +521 -0
  267. package/src/libs/engine/src/dsl/mermaid/MermaidClass.d.ts +136 -0
  268. package/src/libs/engine/src/dsl/mermaid/MermaidClass.js +429 -0
  269. package/src/libs/engine/src/dsl/mermaid/MermaidER.d.ts +118 -0
  270. package/src/libs/engine/src/dsl/mermaid/MermaidER.js +338 -0
  271. package/src/libs/engine/src/dsl/mermaid/MermaidState.d.ts +89 -0
  272. package/src/libs/engine/src/dsl/mermaid/MermaidState.js +613 -0
  273. package/src/libs/engine/src/dsl/mermaid/index.d.ts +10 -0
  274. package/src/libs/engine/src/dsl/mermaid/index.js +33 -0
  275. package/src/libs/engine/src/dsl/mermaid/layout.d.ts +70 -0
  276. package/src/libs/engine/src/dsl/mermaid/layout.js +162 -0
  277. package/src/libs/engine/src/dsl/mermaid/lines.d.ts +25 -0
  278. package/src/libs/engine/src/dsl/mermaid/lines.js +74 -0
  279. package/src/libs/engine/src/dsl/parser/Parser.d.ts +131 -0
  280. package/src/libs/engine/src/dsl/parser/Parser.js +725 -0
  281. package/src/libs/engine/src/dsl/sync/BidirectionalSync.d.ts +154 -0
  282. package/src/libs/engine/src/dsl/sync/BidirectionalSync.js +389 -0
  283. package/src/libs/engine/src/dsl/sync/IntegratedSyncManager.d.ts +128 -0
  284. package/src/libs/engine/src/dsl/sync/IntegratedSyncManager.js +244 -0
  285. package/src/libs/engine/src/dsl/sync/LayoutApplicator.d.ts +140 -0
  286. package/src/libs/engine/src/dsl/sync/LayoutApplicator.js +271 -0
  287. package/src/libs/engine/src/dsl/sync/SyncStateManager.d.ts +145 -0
  288. package/src/libs/engine/src/dsl/sync/SyncStateManager.js +253 -0
  289. package/src/libs/engine/src/dsl/sync/index.d.ts +13 -0
  290. package/src/libs/engine/src/dsl/sync/index.js +21 -0
  291. package/src/libs/engine/src/dsl/transformer/ASTTransformer.d.ts +150 -0
  292. package/src/libs/engine/src/dsl/transformer/ASTTransformer.js +605 -0
  293. package/src/libs/engine/src/dsl/types/ASTNode.d.ts +159 -0
  294. package/src/libs/engine/src/dsl/types/ASTNode.js +31 -0
  295. package/src/libs/engine/src/dsl/types/Token.d.ts +79 -0
  296. package/src/libs/engine/src/dsl/types/Token.js +84 -0
  297. package/src/libs/engine/src/engine/DiagramEngine.d.ts +917 -0
  298. package/src/libs/engine/src/engine/DiagramEngine.js +2190 -0
  299. package/src/libs/engine/src/engine/DiagramMode.d.ts +51 -0
  300. package/src/libs/engine/src/engine/DiagramMode.js +53 -0
  301. package/src/libs/engine/src/engine/DiagramModeTypes.d.ts +73 -0
  302. package/src/libs/engine/src/engine/DiagramModeTypes.js +4 -0
  303. package/src/libs/engine/src/engine/ModeManager.d.ts +155 -0
  304. package/src/libs/engine/src/engine/ModeManager.js +387 -0
  305. package/src/libs/engine/src/engine/index.d.ts +2 -0
  306. package/src/libs/engine/src/engine/index.js +7 -0
  307. package/src/libs/engine/src/events/EventBus.d.ts +106 -0
  308. package/src/libs/engine/src/events/EventBus.js +226 -0
  309. package/src/libs/engine/src/events/index.d.ts +1 -0
  310. package/src/libs/engine/src/events/index.js +6 -0
  311. package/src/libs/engine/src/index.d.ts +43 -0
  312. package/src/libs/engine/src/index.js +142 -0
  313. package/src/libs/engine/src/interaction/GroupCollapseService.d.ts +53 -0
  314. package/src/libs/engine/src/interaction/GroupCollapseService.js +274 -0
  315. package/src/libs/engine/src/interaction/GroupMembershipService.d.ts +107 -0
  316. package/src/libs/engine/src/interaction/GroupMembershipService.js +245 -0
  317. package/src/libs/engine/src/interaction/SemanticMembershipService.d.ts +28 -0
  318. package/src/libs/engine/src/interaction/SemanticMembershipService.js +168 -0
  319. package/src/libs/engine/src/interaction/SwimlaneService.d.ts +62 -0
  320. package/src/libs/engine/src/interaction/SwimlaneService.js +180 -0
  321. package/src/libs/engine/src/interaction/index.d.ts +4 -0
  322. package/src/libs/engine/src/interaction/index.js +9 -0
  323. package/src/libs/engine/src/interop/drawio/importDrawio.d.ts +52 -0
  324. package/src/libs/engine/src/interop/drawio/importDrawio.js +940 -0
  325. package/src/libs/engine/src/interop/drawio/index.d.ts +1 -0
  326. package/src/libs/engine/src/interop/drawio/index.js +12 -0
  327. package/src/libs/engine/src/interop/drawio/xml.d.ts +26 -0
  328. package/src/libs/engine/src/interop/drawio/xml.js +213 -0
  329. package/src/libs/engine/src/layout/CompoundLayoutService.d.ts +121 -0
  330. package/src/libs/engine/src/layout/CompoundLayoutService.js +616 -0
  331. package/src/libs/engine/src/layout/ILayoutAlgorithm.d.ts +120 -0
  332. package/src/libs/engine/src/layout/ILayoutAlgorithm.js +88 -0
  333. package/src/libs/engine/src/layout/LayoutManager.d.ts +155 -0
  334. package/src/libs/engine/src/layout/LayoutManager.js +640 -0
  335. package/src/libs/engine/src/layout/SmartSpacingCalculator.d.ts +62 -0
  336. package/src/libs/engine/src/layout/SmartSpacingCalculator.js +134 -0
  337. package/src/libs/engine/src/layout/ViewportTransform.d.ts +55 -0
  338. package/src/libs/engine/src/layout/ViewportTransform.js +118 -0
  339. package/src/libs/engine/src/layout/algorithms/ForceDirectedLayoutAlgorithm.d.ts +34 -0
  340. package/src/libs/engine/src/layout/algorithms/ForceDirectedLayoutAlgorithm.js +317 -0
  341. package/src/libs/engine/src/layout/algorithms/GridLayoutAlgorithm.d.ts +56 -0
  342. package/src/libs/engine/src/layout/algorithms/GridLayoutAlgorithm.js +223 -0
  343. package/src/libs/engine/src/layout/algorithms/HierarchicalLayoutAlgorithm.d.ts +60 -0
  344. package/src/libs/engine/src/layout/algorithms/HierarchicalLayoutAlgorithm.js +307 -0
  345. package/src/libs/engine/src/layout/algorithms/HybridLayoutAlgorithm.d.ts +62 -0
  346. package/src/libs/engine/src/layout/algorithms/HybridLayoutAlgorithm.js +324 -0
  347. package/src/libs/engine/src/layout/community-layout-adapter.d.ts +107 -0
  348. package/src/libs/engine/src/layout/community-layout-adapter.js +486 -0
  349. package/src/libs/engine/src/layout/component-packing.d.ts +98 -0
  350. package/src/libs/engine/src/layout/component-packing.js +307 -0
  351. package/src/libs/engine/src/layout/dagre-layout-adapter.d.ts +122 -0
  352. package/src/libs/engine/src/layout/dagre-layout-adapter.js +697 -0
  353. package/src/libs/engine/src/layout/edge-bundling.interface.d.ts +159 -0
  354. package/src/libs/engine/src/layout/edge-bundling.interface.js +379 -0
  355. package/src/libs/engine/src/layout/elk-layout-adapter.d.ts +121 -0
  356. package/src/libs/engine/src/layout/elk-layout-adapter.js +586 -0
  357. package/src/libs/engine/src/layout/elk-loader.d.ts +1 -0
  358. package/src/libs/engine/src/layout/elk-loader.js +24 -0
  359. package/src/libs/engine/src/layout/force-layout-adapter.d.ts +167 -0
  360. package/src/libs/engine/src/layout/force-layout-adapter.js +790 -0
  361. package/src/libs/engine/src/layout/grid-pack/grid-pack-engine.d.ts +323 -0
  362. package/src/libs/engine/src/layout/grid-pack/grid-pack-engine.js +685 -0
  363. package/src/libs/engine/src/layout/incremental/mental-map.d.ts +98 -0
  364. package/src/libs/engine/src/layout/incremental/mental-map.js +221 -0
  365. package/src/libs/engine/src/layout/incremental-layout.interface.d.ts +145 -0
  366. package/src/libs/engine/src/layout/incremental-layout.interface.js +300 -0
  367. package/src/libs/engine/src/layout/index.d.ts +83 -0
  368. package/src/libs/engine/src/layout/index.js +116 -0
  369. package/src/libs/engine/src/layout/layout-adapter.interface.d.ts +185 -0
  370. package/src/libs/engine/src/layout/layout-adapter.interface.js +10 -0
  371. package/src/libs/engine/src/layout/layout-auto-select.d.ts +160 -0
  372. package/src/libs/engine/src/layout/layout-auto-select.js +621 -0
  373. package/src/libs/engine/src/layout/layout-constraints.interface.d.ts +117 -0
  374. package/src/libs/engine/src/layout/layout-constraints.interface.js +138 -0
  375. package/src/libs/engine/src/layout/layout-graph.d.ts +70 -0
  376. package/src/libs/engine/src/layout/layout-graph.js +119 -0
  377. package/src/libs/engine/src/layout/layout-history.d.ts +147 -0
  378. package/src/libs/engine/src/layout/layout-history.js +258 -0
  379. package/src/libs/engine/src/layout/layout-host.d.ts +172 -0
  380. package/src/libs/engine/src/layout/layout-host.js +523 -0
  381. package/src/libs/engine/src/layout/layout-presets.d.ts +91 -0
  382. package/src/libs/engine/src/layout/layout-presets.js +333 -0
  383. package/src/libs/engine/src/layout/layout-quality-extended.d.ts +66 -0
  384. package/src/libs/engine/src/layout/layout-quality-extended.js +246 -0
  385. package/src/libs/engine/src/layout/layout-quality-metrics.d.ts +127 -0
  386. package/src/libs/engine/src/layout/layout-quality-metrics.js +466 -0
  387. package/src/libs/engine/src/layout/layout-registry.d.ts +309 -0
  388. package/src/libs/engine/src/layout/layout-registry.js +414 -0
  389. package/src/libs/engine/src/layout/layout.service.d.ts +100 -0
  390. package/src/libs/engine/src/layout/layout.service.js +216 -0
  391. package/src/libs/engine/src/layout/overlap-removal.d.ts +20 -0
  392. package/src/libs/engine/src/layout/overlap-removal.js +117 -0
  393. package/src/libs/engine/src/layout/port-aware-layout.interface.d.ts +232 -0
  394. package/src/libs/engine/src/layout/port-aware-layout.interface.js +413 -0
  395. package/src/libs/engine/src/layout/port-label-bridge.d.ts +77 -0
  396. package/src/libs/engine/src/layout/port-label-bridge.js +250 -0
  397. package/src/libs/engine/src/layout/portfolio-layouts.d.ts +53 -0
  398. package/src/libs/engine/src/layout/portfolio-layouts.js +388 -0
  399. package/src/libs/engine/src/layout/rng.d.ts +34 -0
  400. package/src/libs/engine/src/layout/rng.js +71 -0
  401. package/src/libs/engine/src/layout/spectral-layout-adapter.d.ts +72 -0
  402. package/src/libs/engine/src/layout/spectral-layout-adapter.js +379 -0
  403. package/src/libs/engine/src/layout/steppable-layout.d.ts +40 -0
  404. package/src/libs/engine/src/layout/steppable-layout.js +34 -0
  405. package/src/libs/engine/src/layout/subgraph-layout.interface.d.ts +269 -0
  406. package/src/libs/engine/src/layout/subgraph-layout.interface.js +452 -0
  407. package/src/libs/engine/src/layout/sugiyama/layered-layout.d.ts +9 -0
  408. package/src/libs/engine/src/layout/sugiyama/layered-layout.js +83 -0
  409. package/src/libs/engine/src/layout/sugiyama/sugiyama.d.ts +91 -0
  410. package/src/libs/engine/src/layout/sugiyama/sugiyama.js +797 -0
  411. package/src/libs/engine/src/layout/tree-layout.d.ts +43 -0
  412. package/src/libs/engine/src/layout/tree-layout.js +426 -0
  413. package/src/libs/engine/src/layout/types.d.ts +263 -0
  414. package/src/libs/engine/src/layout/types.js +6 -0
  415. package/src/libs/engine/src/lib/performance/mobile-performance.service.d.ts +43 -0
  416. package/src/libs/engine/src/lib/performance/mobile-performance.service.js +95 -0
  417. package/src/libs/engine/src/models/DiagramEntity.d.ts +174 -0
  418. package/src/libs/engine/src/models/DiagramEntity.js +366 -0
  419. package/src/libs/engine/src/models/DiagramModel.d.ts +960 -0
  420. package/src/libs/engine/src/models/DiagramModel.js +2416 -0
  421. package/src/libs/engine/src/models/GroupModel.d.ts +573 -0
  422. package/src/libs/engine/src/models/GroupModel.js +1373 -0
  423. package/src/libs/engine/src/models/LinkModel.d.ts +395 -0
  424. package/src/libs/engine/src/models/LinkModel.js +1045 -0
  425. package/src/libs/engine/src/models/NodeModel.d.ts +666 -0
  426. package/src/libs/engine/src/models/NodeModel.js +1512 -0
  427. package/src/libs/engine/src/models/PortModel.d.ts +292 -0
  428. package/src/libs/engine/src/models/PortModel.js +637 -0
  429. package/src/libs/engine/src/models/StrokeModel.d.ts +160 -0
  430. package/src/libs/engine/src/models/StrokeModel.js +387 -0
  431. package/src/libs/engine/src/models/index.d.ts +7 -0
  432. package/src/libs/engine/src/models/index.js +12 -0
  433. package/src/libs/engine/src/models/readonly-lock.d.ts +108 -0
  434. package/src/libs/engine/src/models/readonly-lock.js +125 -0
  435. package/src/libs/engine/src/performance/LRUCache.d.ts +78 -0
  436. package/src/libs/engine/src/performance/LRUCache.js +179 -0
  437. package/src/libs/engine/src/performance/PerformanceMonitor.d.ts +47 -0
  438. package/src/libs/engine/src/performance/PerformanceMonitor.js +112 -0
  439. package/src/libs/engine/src/performance/SpatialIndex.d.ts +157 -0
  440. package/src/libs/engine/src/performance/SpatialIndex.js +306 -0
  441. package/src/libs/engine/src/performance/index.d.ts +2 -0
  442. package/src/libs/engine/src/performance/index.js +7 -0
  443. package/src/libs/engine/src/plugins/PluginManager.d.ts +95 -0
  444. package/src/libs/engine/src/plugins/PluginManager.js +388 -0
  445. package/src/libs/engine/src/plugins/index.d.ts +1 -0
  446. package/src/libs/engine/src/plugins/index.js +6 -0
  447. package/src/libs/engine/src/ports/connection-rules.d.ts +32 -0
  448. package/src/libs/engine/src/ports/connection-rules.js +131 -0
  449. package/src/libs/engine/src/ports/dynamic-ports.d.ts +27 -0
  450. package/src/libs/engine/src/ports/dynamic-ports.js +135 -0
  451. package/src/libs/engine/src/ports/index.d.ts +5 -0
  452. package/src/libs/engine/src/ports/index.js +16 -0
  453. package/src/libs/engine/src/ports/port-groups.d.ts +43 -0
  454. package/src/libs/engine/src/ports/port-groups.js +185 -0
  455. package/src/libs/engine/src/ports/port-type-registry.d.ts +34 -0
  456. package/src/libs/engine/src/ports/port-type-registry.js +87 -0
  457. package/src/libs/engine/src/ports/port-types.d.ts +266 -0
  458. package/src/libs/engine/src/ports/port-types.js +30 -0
  459. package/src/libs/engine/src/rendering/HtmlTemplateRenderer.d.ts +136 -0
  460. package/src/libs/engine/src/rendering/HtmlTemplateRenderer.js +292 -0
  461. package/src/libs/engine/src/rendering/LemonadeJSRenderer.d.ts +160 -0
  462. package/src/libs/engine/src/rendering/LemonadeJSRenderer.js +362 -0
  463. package/src/libs/engine/src/rendering/index.d.ts +2 -0
  464. package/src/libs/engine/src/rendering/index.js +7 -0
  465. package/src/libs/engine/src/routing/LiveReroutingEngine.d.ts +75 -0
  466. package/src/libs/engine/src/routing/LiveReroutingEngine.js +173 -0
  467. package/src/libs/engine/src/routing/ObstacleIndex.d.ts +42 -0
  468. package/src/libs/engine/src/routing/ObstacleIndex.js +215 -0
  469. package/src/libs/engine/src/routing/ObstacleMap.d.ts +68 -0
  470. package/src/libs/engine/src/routing/ObstacleMap.js +312 -0
  471. package/src/libs/engine/src/routing/ObstacleMapBuilder.d.ts +28 -0
  472. package/src/libs/engine/src/routing/ObstacleMapBuilder.js +76 -0
  473. package/src/libs/engine/src/routing/PathSimplifier.d.ts +119 -0
  474. package/src/libs/engine/src/routing/PathSimplifier.js +224 -0
  475. package/src/libs/engine/src/routing/RoutingEngine.d.ts +118 -0
  476. package/src/libs/engine/src/routing/RoutingEngine.js +546 -0
  477. package/src/libs/engine/src/routing/algorithms/AStarRouter.d.ts +90 -0
  478. package/src/libs/engine/src/routing/algorithms/AStarRouter.js +331 -0
  479. package/src/libs/engine/src/routing/algorithms/DijkstraRouter.d.ts +74 -0
  480. package/src/libs/engine/src/routing/algorithms/DijkstraRouter.js +297 -0
  481. package/src/libs/engine/src/routing/algorithms/ElkRouter.d.ts +34 -0
  482. package/src/libs/engine/src/routing/algorithms/ElkRouter.js +210 -0
  483. package/src/libs/engine/src/routing/algorithms/ManhattanRouter.d.ts +18 -0
  484. package/src/libs/engine/src/routing/algorithms/ManhattanRouter.js +224 -0
  485. package/src/libs/engine/src/routing/algorithms/OrthogonalRouter.d.ts +173 -0
  486. package/src/libs/engine/src/routing/algorithms/OrthogonalRouter.js +1092 -0
  487. package/src/libs/engine/src/routing/algorithms/StraightRouter.d.ts +8 -0
  488. package/src/libs/engine/src/routing/algorithms/StraightRouter.js +53 -0
  489. package/src/libs/engine/src/routing/algorithms/VisibilityGraphRouter.d.ts +59 -0
  490. package/src/libs/engine/src/routing/algorithms/VisibilityGraphRouter.js +258 -0
  491. package/src/libs/engine/src/routing/global/GlobalRouteSolver.d.ts +64 -0
  492. package/src/libs/engine/src/routing/global/GlobalRouteSolver.js +334 -0
  493. package/src/libs/engine/src/routing/global/solver-host.d.ts +65 -0
  494. package/src/libs/engine/src/routing/global/solver-host.js +87 -0
  495. package/src/libs/engine/src/routing/index.d.ts +15 -0
  496. package/src/libs/engine/src/routing/index.js +20 -0
  497. package/src/libs/engine/src/routing/types.d.ts +161 -0
  498. package/src/libs/engine/src/routing/types.js +4 -0
  499. package/src/libs/engine/src/selection/SelectionManager.d.ts +161 -0
  500. package/src/libs/engine/src/selection/SelectionManager.js +483 -0
  501. package/src/libs/engine/src/selection/index.d.ts +1 -0
  502. package/src/libs/engine/src/selection/index.js +6 -0
  503. package/src/libs/engine/src/serialization/DiagramMigrations.d.ts +41 -0
  504. package/src/libs/engine/src/serialization/DiagramMigrations.js +124 -0
  505. package/src/libs/engine/src/serialization/DiagramValidator.d.ts +20 -0
  506. package/src/libs/engine/src/serialization/DiagramValidator.js +136 -0
  507. package/src/libs/engine/src/serialization/DocumentEnvelope.d.ts +53 -0
  508. package/src/libs/engine/src/serialization/DocumentEnvelope.js +111 -0
  509. package/src/libs/engine/src/serialization/Incremental.d.ts +77 -0
  510. package/src/libs/engine/src/serialization/Incremental.js +227 -0
  511. package/src/libs/engine/src/serialization/Serializer.d.ts +29 -0
  512. package/src/libs/engine/src/serialization/Serializer.js +45 -0
  513. package/src/libs/engine/src/serialization/Subgraph.d.ts +51 -0
  514. package/src/libs/engine/src/serialization/Subgraph.js +172 -0
  515. package/src/libs/engine/src/serialization/TextFormat.d.ts +71 -0
  516. package/src/libs/engine/src/serialization/TextFormat.js +261 -0
  517. package/src/libs/engine/src/state/ConnectionStateManager.d.ts +178 -0
  518. package/src/libs/engine/src/state/ConnectionStateManager.js +319 -0
  519. package/src/libs/engine/src/state/DiagramStore.d.ts +134 -0
  520. package/src/libs/engine/src/state/DiagramStore.js +372 -0
  521. package/src/libs/engine/src/state/index.d.ts +2 -0
  522. package/src/libs/engine/src/state/index.js +7 -0
  523. package/src/libs/engine/src/sync/awareness.d.ts +91 -0
  524. package/src/libs/engine/src/sync/awareness.js +221 -0
  525. package/src/libs/engine/src/sync/batcher.d.ts +84 -0
  526. package/src/libs/engine/src/sync/batcher.js +0 -0
  527. package/src/libs/engine/src/sync/causal-buffer.d.ts +81 -0
  528. package/src/libs/engine/src/sync/causal-buffer.js +199 -0
  529. package/src/libs/engine/src/sync/index.d.ts +20 -0
  530. package/src/libs/engine/src/sync/index.js +41 -0
  531. package/src/libs/engine/src/sync/protocol.d.ts +74 -0
  532. package/src/libs/engine/src/sync/protocol.js +39 -0
  533. package/src/libs/engine/src/sync/sync-adapter.d.ts +243 -0
  534. package/src/libs/engine/src/sync/sync-adapter.js +524 -0
  535. package/src/libs/engine/src/sync/transport.d.ts +30 -0
  536. package/src/libs/engine/src/sync/transport.js +28 -0
  537. package/src/libs/engine/src/sync/transports/broadcast-channel.d.ts +39 -0
  538. package/src/libs/engine/src/sync/transports/broadcast-channel.js +117 -0
  539. package/src/libs/engine/src/sync/transports/memory.d.ts +38 -0
  540. package/src/libs/engine/src/sync/transports/memory.js +111 -0
  541. package/src/libs/engine/src/sync/transports/unreliable.d.ts +59 -0
  542. package/src/libs/engine/src/sync/transports/unreliable.js +153 -0
  543. package/src/libs/engine/src/sync/transports/websocket.d.ts +60 -0
  544. package/src/libs/engine/src/sync/transports/websocket.js +210 -0
  545. package/src/libs/engine/src/sync/version-vector.d.ts +47 -0
  546. package/src/libs/engine/src/sync/version-vector.js +218 -0
  547. package/src/libs/engine/src/template-library/common-templates.d.ts +46 -0
  548. package/src/libs/engine/src/template-library/common-templates.js +395 -0
  549. package/src/libs/engine/src/template-library/data-viz-templates.d.ts +52 -0
  550. package/src/libs/engine/src/template-library/data-viz-templates.js +471 -0
  551. package/src/libs/engine/src/template-library/erd-templates.d.ts +71 -0
  552. package/src/libs/engine/src/template-library/erd-templates.js +773 -0
  553. package/src/libs/engine/src/template-library/index.d.ts +141 -0
  554. package/src/libs/engine/src/template-library/index.js +271 -0
  555. package/src/libs/engine/src/template-library/integration.d.ts +80 -0
  556. package/src/libs/engine/src/template-library/integration.js +141 -0
  557. package/src/libs/engine/src/template-library/workflow-templates.d.ts +52 -0
  558. package/src/libs/engine/src/template-library/workflow-templates.js +438 -0
  559. package/src/libs/engine/src/templates/NodeFactory.d.ts +118 -0
  560. package/src/libs/engine/src/templates/NodeFactory.js +436 -0
  561. package/src/libs/engine/src/templates/NodeTemplate.d.ts +342 -0
  562. package/src/libs/engine/src/templates/NodeTemplate.js +13 -0
  563. package/src/libs/engine/src/templates/TemplateLoader.d.ts +46 -0
  564. package/src/libs/engine/src/templates/TemplateLoader.js +114 -0
  565. package/src/libs/engine/src/templates/TemplateRegistry.d.ts +70 -0
  566. package/src/libs/engine/src/templates/TemplateRegistry.js +128 -0
  567. package/src/libs/engine/src/templates/generated/bpmn/bpmn-business-rule-task.template.d.ts +11 -0
  568. package/src/libs/engine/src/templates/generated/bpmn/bpmn-business-rule-task.template.js +123 -0
  569. package/src/libs/engine/src/templates/generated/bpmn/bpmn-end-event.template.d.ts +11 -0
  570. package/src/libs/engine/src/templates/generated/bpmn/bpmn-end-event.template.js +123 -0
  571. package/src/libs/engine/src/templates/generated/bpmn/bpmn-error-event.template.d.ts +11 -0
  572. package/src/libs/engine/src/templates/generated/bpmn/bpmn-error-event.template.js +123 -0
  573. package/src/libs/engine/src/templates/generated/bpmn/bpmn-exclusive-gateway.template.d.ts +11 -0
  574. package/src/libs/engine/src/templates/generated/bpmn/bpmn-exclusive-gateway.template.js +124 -0
  575. package/src/libs/engine/src/templates/generated/bpmn/bpmn-inclusive-gateway.template.d.ts +11 -0
  576. package/src/libs/engine/src/templates/generated/bpmn/bpmn-inclusive-gateway.template.js +123 -0
  577. package/src/libs/engine/src/templates/generated/bpmn/bpmn-intermediate-event.template.d.ts +11 -0
  578. package/src/libs/engine/src/templates/generated/bpmn/bpmn-intermediate-event.template.js +124 -0
  579. package/src/libs/engine/src/templates/generated/bpmn/bpmn-manual-task.template.d.ts +11 -0
  580. package/src/libs/engine/src/templates/generated/bpmn/bpmn-manual-task.template.js +123 -0
  581. package/src/libs/engine/src/templates/generated/bpmn/bpmn-message-event.template.d.ts +11 -0
  582. package/src/libs/engine/src/templates/generated/bpmn/bpmn-message-event.template.js +122 -0
  583. package/src/libs/engine/src/templates/generated/bpmn/bpmn-parallel-gateway.template.d.ts +11 -0
  584. package/src/libs/engine/src/templates/generated/bpmn/bpmn-parallel-gateway.template.js +125 -0
  585. package/src/libs/engine/src/templates/generated/bpmn/bpmn-script-task.template.d.ts +11 -0
  586. package/src/libs/engine/src/templates/generated/bpmn/bpmn-script-task.template.js +123 -0
  587. package/src/libs/engine/src/templates/generated/bpmn/bpmn-service-task.template.d.ts +11 -0
  588. package/src/libs/engine/src/templates/generated/bpmn/bpmn-service-task.template.js +123 -0
  589. package/src/libs/engine/src/templates/generated/bpmn/bpmn-start-event.template.d.ts +11 -0
  590. package/src/libs/engine/src/templates/generated/bpmn/bpmn-start-event.template.js +123 -0
  591. package/src/libs/engine/src/templates/generated/bpmn/bpmn-task.template.d.ts +11 -0
  592. package/src/libs/engine/src/templates/generated/bpmn/bpmn-task.template.js +152 -0
  593. package/src/libs/engine/src/templates/generated/bpmn/bpmn-timer-event.template.d.ts +11 -0
  594. package/src/libs/engine/src/templates/generated/bpmn/bpmn-timer-event.template.js +123 -0
  595. package/src/libs/engine/src/templates/generated/bpmn/bpmn-user-task.template.d.ts +11 -0
  596. package/src/libs/engine/src/templates/generated/bpmn/bpmn-user-task.template.js +123 -0
  597. package/src/libs/engine/src/templates/generated/bpmn/index.d.ts +15 -0
  598. package/src/libs/engine/src/templates/generated/bpmn/index.js +34 -0
  599. package/src/libs/engine/src/templates/generated/erd/erd-associative-entity.template.d.ts +11 -0
  600. package/src/libs/engine/src/templates/generated/erd/erd-associative-entity.template.js +152 -0
  601. package/src/libs/engine/src/templates/generated/erd/erd-attribute.template.d.ts +11 -0
  602. package/src/libs/engine/src/templates/generated/erd/erd-attribute.template.js +122 -0
  603. package/src/libs/engine/src/templates/generated/erd/erd-bridge-entity.template.d.ts +11 -0
  604. package/src/libs/engine/src/templates/generated/erd/erd-bridge-entity.template.js +151 -0
  605. package/src/libs/engine/src/templates/generated/erd/erd-composite-attribute.template.d.ts +11 -0
  606. package/src/libs/engine/src/templates/generated/erd/erd-composite-attribute.template.js +122 -0
  607. package/src/libs/engine/src/templates/generated/erd/erd-derived-attribute.template.d.ts +11 -0
  608. package/src/libs/engine/src/templates/generated/erd/erd-derived-attribute.template.js +122 -0
  609. package/src/libs/engine/src/templates/generated/erd/erd-discriminator.template.d.ts +11 -0
  610. package/src/libs/engine/src/templates/generated/erd/erd-discriminator.template.js +123 -0
  611. package/src/libs/engine/src/templates/generated/erd/erd-entity.template.d.ts +11 -0
  612. package/src/libs/engine/src/templates/generated/erd/erd-entity.template.js +149 -0
  613. package/src/libs/engine/src/templates/generated/erd/erd-isa.template.d.ts +11 -0
  614. package/src/libs/engine/src/templates/generated/erd/erd-isa.template.js +123 -0
  615. package/src/libs/engine/src/templates/generated/erd/erd-key-attribute.template.d.ts +11 -0
  616. package/src/libs/engine/src/templates/generated/erd/erd-key-attribute.template.js +122 -0
  617. package/src/libs/engine/src/templates/generated/erd/erd-multivalued-attribute.template.d.ts +11 -0
  618. package/src/libs/engine/src/templates/generated/erd/erd-multivalued-attribute.template.js +122 -0
  619. package/src/libs/engine/src/templates/generated/erd/erd-optional-attribute.template.d.ts +11 -0
  620. package/src/libs/engine/src/templates/generated/erd/erd-optional-attribute.template.js +122 -0
  621. package/src/libs/engine/src/templates/generated/erd/erd-partial-key.template.d.ts +11 -0
  622. package/src/libs/engine/src/templates/generated/erd/erd-partial-key.template.js +123 -0
  623. package/src/libs/engine/src/templates/generated/erd/erd-relationship.template.d.ts +11 -0
  624. package/src/libs/engine/src/templates/generated/erd/erd-relationship.template.js +121 -0
  625. package/src/libs/engine/src/templates/generated/erd/erd-subtype.template.d.ts +11 -0
  626. package/src/libs/engine/src/templates/generated/erd/erd-subtype.template.js +123 -0
  627. package/src/libs/engine/src/templates/generated/erd/erd-supertype.template.d.ts +11 -0
  628. package/src/libs/engine/src/templates/generated/erd/erd-supertype.template.js +123 -0
  629. package/src/libs/engine/src/templates/generated/erd/erd-table.template.d.ts +11 -0
  630. package/src/libs/engine/src/templates/generated/erd/erd-table.template.js +123 -0
  631. package/src/libs/engine/src/templates/generated/erd/erd-view.template.d.ts +11 -0
  632. package/src/libs/engine/src/templates/generated/erd/erd-view.template.js +123 -0
  633. package/src/libs/engine/src/templates/generated/erd/erd-weak-entity.template.d.ts +11 -0
  634. package/src/libs/engine/src/templates/generated/erd/erd-weak-entity.template.js +149 -0
  635. package/src/libs/engine/src/templates/generated/erd/erd-weak-relationship.template.d.ts +11 -0
  636. package/src/libs/engine/src/templates/generated/erd/erd-weak-relationship.template.js +122 -0
  637. package/src/libs/engine/src/templates/generated/erd/index.d.ts +19 -0
  638. package/src/libs/engine/src/templates/generated/erd/index.js +42 -0
  639. package/src/libs/engine/src/templates/generated/flowchart/flowchart-connector.template.d.ts +11 -0
  640. package/src/libs/engine/src/templates/generated/flowchart/flowchart-connector.template.js +123 -0
  641. package/src/libs/engine/src/templates/generated/flowchart/flowchart-data.template.d.ts +11 -0
  642. package/src/libs/engine/src/templates/generated/flowchart/flowchart-data.template.js +123 -0
  643. package/src/libs/engine/src/templates/generated/flowchart/flowchart-decision.template.d.ts +11 -0
  644. package/src/libs/engine/src/templates/generated/flowchart/flowchart-decision.template.js +123 -0
  645. package/src/libs/engine/src/templates/generated/flowchart/flowchart-delay.template.d.ts +11 -0
  646. package/src/libs/engine/src/templates/generated/flowchart/flowchart-delay.template.js +124 -0
  647. package/src/libs/engine/src/templates/generated/flowchart/flowchart-display.template.d.ts +11 -0
  648. package/src/libs/engine/src/templates/generated/flowchart/flowchart-display.template.js +124 -0
  649. package/src/libs/engine/src/templates/generated/flowchart/flowchart-document.template.d.ts +11 -0
  650. package/src/libs/engine/src/templates/generated/flowchart/flowchart-document.template.js +123 -0
  651. package/src/libs/engine/src/templates/generated/flowchart/flowchart-manual-input.template.d.ts +11 -0
  652. package/src/libs/engine/src/templates/generated/flowchart/flowchart-manual-input.template.js +123 -0
  653. package/src/libs/engine/src/templates/generated/flowchart/flowchart-manual-operation.template.d.ts +11 -0
  654. package/src/libs/engine/src/templates/generated/flowchart/flowchart-manual-operation.template.js +122 -0
  655. package/src/libs/engine/src/templates/generated/flowchart/flowchart-merge.template.d.ts +11 -0
  656. package/src/libs/engine/src/templates/generated/flowchart/flowchart-merge.template.js +122 -0
  657. package/src/libs/engine/src/templates/generated/flowchart/flowchart-or.template.d.ts +11 -0
  658. package/src/libs/engine/src/templates/generated/flowchart/flowchart-or.template.js +123 -0
  659. package/src/libs/engine/src/templates/generated/flowchart/flowchart-predefined-process.template.d.ts +11 -0
  660. package/src/libs/engine/src/templates/generated/flowchart/flowchart-predefined-process.template.js +123 -0
  661. package/src/libs/engine/src/templates/generated/flowchart/flowchart-preparation.template.d.ts +11 -0
  662. package/src/libs/engine/src/templates/generated/flowchart/flowchart-preparation.template.js +123 -0
  663. package/src/libs/engine/src/templates/generated/flowchart/flowchart-process.template.d.ts +11 -0
  664. package/src/libs/engine/src/templates/generated/flowchart/flowchart-process.template.js +122 -0
  665. package/src/libs/engine/src/templates/generated/flowchart/flowchart-stored-data.template.d.ts +11 -0
  666. package/src/libs/engine/src/templates/generated/flowchart/flowchart-stored-data.template.js +123 -0
  667. package/src/libs/engine/src/templates/generated/flowchart/flowchart-summing-junction.template.d.ts +11 -0
  668. package/src/libs/engine/src/templates/generated/flowchart/flowchart-summing-junction.template.js +124 -0
  669. package/src/libs/engine/src/templates/generated/flowchart/flowchart-terminal.template.d.ts +11 -0
  670. package/src/libs/engine/src/templates/generated/flowchart/flowchart-terminal.template.js +124 -0
  671. package/src/libs/engine/src/templates/generated/flowchart/index.d.ts +16 -0
  672. package/src/libs/engine/src/templates/generated/flowchart/index.js +36 -0
  673. package/src/libs/engine/src/templates/generated/index.d.ts +9 -0
  674. package/src/libs/engine/src/templates/generated/index.js +13 -0
  675. package/src/libs/engine/src/templates/generated/register.d.ts +23 -0
  676. package/src/libs/engine/src/templates/generated/register.js +31 -0
  677. package/src/libs/engine/src/templates/generated/uml/index.d.ts +30 -0
  678. package/src/libs/engine/src/templates/generated/uml/index.js +64 -0
  679. package/src/libs/engine/src/templates/generated/uml/uml-abstract-class.template.d.ts +11 -0
  680. package/src/libs/engine/src/templates/generated/uml/uml-abstract-class.template.js +204 -0
  681. package/src/libs/engine/src/templates/generated/uml/uml-activation.template.d.ts +11 -0
  682. package/src/libs/engine/src/templates/generated/uml/uml-activation.template.js +124 -0
  683. package/src/libs/engine/src/templates/generated/uml/uml-activity-partition.template.d.ts +11 -0
  684. package/src/libs/engine/src/templates/generated/uml/uml-activity-partition.template.js +124 -0
  685. package/src/libs/engine/src/templates/generated/uml/uml-activity.template.d.ts +11 -0
  686. package/src/libs/engine/src/templates/generated/uml/uml-activity.template.js +123 -0
  687. package/src/libs/engine/src/templates/generated/uml/uml-actor.template.d.ts +11 -0
  688. package/src/libs/engine/src/templates/generated/uml/uml-actor.template.js +123 -0
  689. package/src/libs/engine/src/templates/generated/uml/uml-class.template.d.ts +11 -0
  690. package/src/libs/engine/src/templates/generated/uml/uml-class.template.js +204 -0
  691. package/src/libs/engine/src/templates/generated/uml/uml-collaboration.template.d.ts +11 -0
  692. package/src/libs/engine/src/templates/generated/uml/uml-collaboration.template.js +122 -0
  693. package/src/libs/engine/src/templates/generated/uml/uml-component.template.d.ts +11 -0
  694. package/src/libs/engine/src/templates/generated/uml/uml-component.template.js +122 -0
  695. package/src/libs/engine/src/templates/generated/uml/uml-datatype.template.d.ts +11 -0
  696. package/src/libs/engine/src/templates/generated/uml/uml-datatype.template.js +204 -0
  697. package/src/libs/engine/src/templates/generated/uml/uml-decision.template.d.ts +11 -0
  698. package/src/libs/engine/src/templates/generated/uml/uml-decision.template.js +124 -0
  699. package/src/libs/engine/src/templates/generated/uml/uml-enum.template.d.ts +11 -0
  700. package/src/libs/engine/src/templates/generated/uml/uml-enum.template.js +204 -0
  701. package/src/libs/engine/src/templates/generated/uml/uml-final-node.template.d.ts +11 -0
  702. package/src/libs/engine/src/templates/generated/uml/uml-final-node.template.js +124 -0
  703. package/src/libs/engine/src/templates/generated/uml/uml-final-state.template.d.ts +11 -0
  704. package/src/libs/engine/src/templates/generated/uml/uml-final-state.template.js +124 -0
  705. package/src/libs/engine/src/templates/generated/uml/uml-fork.template.d.ts +11 -0
  706. package/src/libs/engine/src/templates/generated/uml/uml-fork.template.js +125 -0
  707. package/src/libs/engine/src/templates/generated/uml/uml-initial-node.template.d.ts +11 -0
  708. package/src/libs/engine/src/templates/generated/uml/uml-initial-node.template.js +123 -0
  709. package/src/libs/engine/src/templates/generated/uml/uml-initial-state.template.d.ts +11 -0
  710. package/src/libs/engine/src/templates/generated/uml/uml-initial-state.template.js +123 -0
  711. package/src/libs/engine/src/templates/generated/uml/uml-interface.template.d.ts +11 -0
  712. package/src/libs/engine/src/templates/generated/uml/uml-interface.template.js +204 -0
  713. package/src/libs/engine/src/templates/generated/uml/uml-join.template.d.ts +11 -0
  714. package/src/libs/engine/src/templates/generated/uml/uml-join.template.js +125 -0
  715. package/src/libs/engine/src/templates/generated/uml/uml-lifeline.template.d.ts +11 -0
  716. package/src/libs/engine/src/templates/generated/uml/uml-lifeline.template.js +123 -0
  717. package/src/libs/engine/src/templates/generated/uml/uml-merge.template.d.ts +11 -0
  718. package/src/libs/engine/src/templates/generated/uml/uml-merge.template.js +122 -0
  719. package/src/libs/engine/src/templates/generated/uml/uml-node.template.d.ts +11 -0
  720. package/src/libs/engine/src/templates/generated/uml/uml-node.template.js +122 -0
  721. package/src/libs/engine/src/templates/generated/uml/uml-note.template.d.ts +11 -0
  722. package/src/libs/engine/src/templates/generated/uml/uml-note.template.js +123 -0
  723. package/src/libs/engine/src/templates/generated/uml/uml-object.template.d.ts +11 -0
  724. package/src/libs/engine/src/templates/generated/uml/uml-object.template.js +204 -0
  725. package/src/libs/engine/src/templates/generated/uml/uml-package.template.d.ts +11 -0
  726. package/src/libs/engine/src/templates/generated/uml/uml-package.template.js +123 -0
  727. package/src/libs/engine/src/templates/generated/uml/uml-part.template.d.ts +11 -0
  728. package/src/libs/engine/src/templates/generated/uml/uml-part.template.js +122 -0
  729. package/src/libs/engine/src/templates/generated/uml/uml-port.template.d.ts +11 -0
  730. package/src/libs/engine/src/templates/generated/uml/uml-port.template.js +123 -0
  731. package/src/libs/engine/src/templates/generated/uml/uml-primitive-type.template.d.ts +11 -0
  732. package/src/libs/engine/src/templates/generated/uml/uml-primitive-type.template.js +204 -0
  733. package/src/libs/engine/src/templates/generated/uml/uml-signal.template.d.ts +11 -0
  734. package/src/libs/engine/src/templates/generated/uml/uml-signal.template.js +123 -0
  735. package/src/libs/engine/src/templates/generated/uml/uml-state.template.d.ts +11 -0
  736. package/src/libs/engine/src/templates/generated/uml/uml-state.template.js +123 -0
  737. package/src/libs/engine/src/templates/generated/uml/uml-use-case.template.d.ts +11 -0
  738. package/src/libs/engine/src/templates/generated/uml/uml-use-case.template.js +122 -0
  739. package/src/libs/engine/src/templates/index.d.ts +12 -0
  740. package/src/libs/engine/src/templates/index.js +27 -0
  741. package/src/libs/engine/src/templates/stencils.d.ts +45 -0
  742. package/src/libs/engine/src/templates/stencils.js +85 -0
  743. package/src/libs/engine/src/types/domain/bpmn.d.ts +25 -0
  744. package/src/libs/engine/src/types/domain/bpmn.js +313 -0
  745. package/src/libs/engine/src/types/domain/erd.d.ts +29 -0
  746. package/src/libs/engine/src/types/domain/erd.js +394 -0
  747. package/src/libs/engine/src/types/domain/flowchart.d.ts +26 -0
  748. package/src/libs/engine/src/types/domain/flowchart.js +434 -0
  749. package/src/libs/engine/src/types/domain/index.d.ts +4 -0
  750. package/src/libs/engine/src/types/domain/index.js +9 -0
  751. package/src/libs/engine/src/types/domain/uml.d.ts +40 -0
  752. package/src/libs/engine/src/types/domain/uml.js +758 -0
  753. package/src/libs/engine/src/types/event.types.d.ts +142 -0
  754. package/src/libs/engine/src/types/event.types.js +96 -0
  755. package/src/libs/engine/src/types/geometry.types.d.ts +84 -0
  756. package/src/libs/engine/src/types/geometry.types.js +16 -0
  757. package/src/libs/engine/src/types/index.d.ts +7 -0
  758. package/src/libs/engine/src/types/index.js +14 -0
  759. package/src/libs/engine/src/types/layout.types.d.ts +148 -0
  760. package/src/libs/engine/src/types/layout.types.js +28 -0
  761. package/src/libs/engine/src/types/model.types.d.ts +378 -0
  762. package/src/libs/engine/src/types/model.types.js +4 -0
  763. package/src/libs/engine/src/types/performance.types.d.ts +109 -0
  764. package/src/libs/engine/src/types/performance.types.js +122 -0
  765. package/src/libs/engine/src/types/plugin.types.d.ts +30 -0
  766. package/src/libs/engine/src/types/plugin.types.js +4 -0
  767. package/src/libs/engine/src/utils/deep-clone.d.ts +9 -0
  768. package/src/libs/engine/src/utils/deep-clone.js +123 -0
  769. package/src/libs/engine/src/utils/geometry.d.ts +45 -0
  770. package/src/libs/engine/src/utils/geometry.js +241 -0
  771. package/src/libs/engine/src/utils/id.d.ts +22 -0
  772. package/src/libs/engine/src/utils/id.js +44 -0
  773. package/src/libs/engine/src/utils/index.d.ts +3 -0
  774. package/src/libs/engine/src/utils/index.js +8 -0
  775. package/src/libs/engine/src/utils/transform.d.ts +84 -0
  776. package/src/libs/engine/src/utils/transform.js +200 -0
  777. package/src/libs/engine/src/validation/ConnectionGroupValidator.d.ts +22 -0
  778. package/src/libs/engine/src/validation/ConnectionGroupValidator.js +56 -0
  779. package/src/libs/engine/src/validation/TypeRegistry.d.ts +179 -0
  780. package/src/libs/engine/src/validation/TypeRegistry.js +358 -0
  781. package/src/libs/engine/src/validation/ValidationEngine.d.ts +79 -0
  782. package/src/libs/engine/src/validation/ValidationEngine.js +1150 -0
  783. package/src/libs/engine/src/validation/index.d.ts +3 -0
  784. package/src/libs/engine/src/validation/index.js +8 -0
  785. package/src/libs/renderer/src/a11y/diagram-outline.d.ts +93 -0
  786. package/src/libs/renderer/src/a11y/diagram-outline.js +0 -0
  787. package/src/libs/renderer/src/a11y/focus-containment.d.ts +90 -0
  788. package/src/libs/renderer/src/a11y/focus-containment.js +173 -0
  789. package/src/libs/renderer/src/a11y/graph-topology.d.ts +70 -0
  790. package/src/libs/renderer/src/a11y/graph-topology.js +0 -0
  791. package/src/libs/renderer/src/a11y/index.d.ts +26 -0
  792. package/src/libs/renderer/src/a11y/index.js +30 -0
  793. package/src/libs/renderer/src/a11y/live-region.d.ts +83 -0
  794. package/src/libs/renderer/src/a11y/live-region.js +170 -0
  795. package/src/libs/renderer/src/a11y/outline-view.d.ts +62 -0
  796. package/src/libs/renderer/src/a11y/outline-view.js +158 -0
  797. package/src/libs/renderer/src/a11y/reduced-motion.d.ts +48 -0
  798. package/src/libs/renderer/src/a11y/reduced-motion.js +223 -0
  799. package/src/libs/renderer/src/a11y/semantics.d.ts +76 -0
  800. package/src/libs/renderer/src/a11y/semantics.js +229 -0
  801. package/src/libs/renderer/src/canvas/canvas-context.d.ts +167 -0
  802. package/src/libs/renderer/src/canvas/canvas-context.js +267 -0
  803. package/src/libs/renderer/src/canvas/canvas-renderer.d.ts +194 -0
  804. package/src/libs/renderer/src/canvas/canvas-renderer.js +600 -0
  805. package/src/libs/renderer/src/canvas/dirty-region.d.ts +56 -0
  806. package/src/libs/renderer/src/canvas/dirty-region.js +171 -0
  807. package/src/libs/renderer/src/canvas/index.d.ts +16 -0
  808. package/src/libs/renderer/src/canvas/index.js +79 -0
  809. package/src/libs/renderer/src/canvas/path-geometry.d.ts +112 -0
  810. package/src/libs/renderer/src/canvas/path-geometry.js +673 -0
  811. package/src/libs/renderer/src/canvas/render-backend.d.ts +133 -0
  812. package/src/libs/renderer/src/canvas/render-backend.js +339 -0
  813. package/src/libs/renderer/src/canvas/style-resolution.d.ts +101 -0
  814. package/src/libs/renderer/src/canvas/style-resolution.js +466 -0
  815. package/src/libs/renderer/src/canvas/tier-policy.d.ts +33 -0
  816. package/src/libs/renderer/src/canvas/tier-policy.js +89 -0
  817. package/src/libs/renderer/src/canvas/vnode-painter.d.ts +154 -0
  818. package/src/libs/renderer/src/canvas/vnode-painter.js +649 -0
  819. package/src/libs/renderer/src/comments/comment-overlay.d.ts +56 -0
  820. package/src/libs/renderer/src/comments/comment-overlay.js +127 -0
  821. package/src/libs/renderer/src/comments/comment-panel.d.ts +45 -0
  822. package/src/libs/renderer/src/comments/comment-panel.js +287 -0
  823. package/src/libs/renderer/src/comments/comment-pins.d.ts +34 -0
  824. package/src/libs/renderer/src/comments/comment-pins.js +227 -0
  825. package/src/libs/renderer/src/comments/index.d.ts +3 -0
  826. package/src/libs/renderer/src/comments/index.js +17 -0
  827. package/src/libs/renderer/src/export/assets.d.ts +96 -0
  828. package/src/libs/renderer/src/export/assets.js +350 -0
  829. package/src/libs/renderer/src/export/batch.d.ts +49 -0
  830. package/src/libs/renderer/src/export/batch.js +95 -0
  831. package/src/libs/renderer/src/export/bounds.d.ts +81 -0
  832. package/src/libs/renderer/src/export/bounds.js +367 -0
  833. package/src/libs/renderer/src/export/capture-host.d.ts +39 -0
  834. package/src/libs/renderer/src/export/capture-host.js +1259 -0
  835. package/src/libs/renderer/src/export/custom-nodes.d.ts +88 -0
  836. package/src/libs/renderer/src/export/custom-nodes.js +237 -0
  837. package/src/libs/renderer/src/export/index.d.ts +14 -0
  838. package/src/libs/renderer/src/export/index.js +30 -0
  839. package/src/libs/renderer/src/export/node-raster.d.ts +60 -0
  840. package/src/libs/renderer/src/export/node-raster.js +161 -0
  841. package/src/libs/renderer/src/export/pagination.d.ts +116 -0
  842. package/src/libs/renderer/src/export/pagination.js +245 -0
  843. package/src/libs/renderer/src/export/pdf/flate.d.ts +13 -0
  844. package/src/libs/renderer/src/export/pdf/flate.js +287 -0
  845. package/src/libs/renderer/src/export/pdf/index.d.ts +4 -0
  846. package/src/libs/renderer/src/export/pdf/index.js +15 -0
  847. package/src/libs/renderer/src/export/pdf/pdf-export.d.ts +64 -0
  848. package/src/libs/renderer/src/export/pdf/pdf-export.js +1076 -0
  849. package/src/libs/renderer/src/export/pdf/pdf-path.d.ts +17 -0
  850. package/src/libs/renderer/src/export/pdf/pdf-path.js +85 -0
  851. package/src/libs/renderer/src/export/pdf/pdf-primitives.d.ts +115 -0
  852. package/src/libs/renderer/src/export/pdf/pdf-primitives.js +338 -0
  853. package/src/libs/renderer/src/export/pdf/png.d.ts +25 -0
  854. package/src/libs/renderer/src/export/pdf/png.js +596 -0
  855. package/src/libs/renderer/src/export/raster.d.ts +42 -0
  856. package/src/libs/renderer/src/export/raster.js +126 -0
  857. package/src/libs/renderer/src/export/round-trip.d.ts +83 -0
  858. package/src/libs/renderer/src/export/round-trip.js +432 -0
  859. package/src/libs/renderer/src/export/scope.d.ts +16 -0
  860. package/src/libs/renderer/src/export/scope.js +69 -0
  861. package/src/libs/renderer/src/export/style-flattener.d.ts +23 -0
  862. package/src/libs/renderer/src/export/style-flattener.js +144 -0
  863. package/src/libs/renderer/src/export/svg-export.d.ts +123 -0
  864. package/src/libs/renderer/src/export/svg-export.js +178 -0
  865. package/src/libs/renderer/src/export/vnode-serializer.d.ts +75 -0
  866. package/src/libs/renderer/src/export/vnode-serializer.js +344 -0
  867. package/src/libs/renderer/src/ext/capabilities.d.ts +178 -0
  868. package/src/libs/renderer/src/ext/capabilities.js +22 -0
  869. package/src/libs/renderer/src/ext/capability-factory.d.ts +44 -0
  870. package/src/libs/renderer/src/ext/capability-factory.js +194 -0
  871. package/src/libs/renderer/src/ext/components/attach.d.ts +66 -0
  872. package/src/libs/renderer/src/ext/components/attach.js +112 -0
  873. package/src/libs/renderer/src/ext/components/background.d.ts +84 -0
  874. package/src/libs/renderer/src/ext/components/background.js +202 -0
  875. package/src/libs/renderer/src/ext/components/controls.d.ts +49 -0
  876. package/src/libs/renderer/src/ext/components/controls.js +144 -0
  877. package/src/libs/renderer/src/ext/components/minimap.d.ts +78 -0
  878. package/src/libs/renderer/src/ext/components/minimap.js +326 -0
  879. package/src/libs/renderer/src/ext/diagram-registry.d.ts +109 -0
  880. package/src/libs/renderer/src/ext/diagram-registry.js +303 -0
  881. package/src/libs/renderer/src/ext/disposable.d.ts +51 -0
  882. package/src/libs/renderer/src/ext/disposable.js +104 -0
  883. package/src/libs/renderer/src/ext/extension-host.d.ts +144 -0
  884. package/src/libs/renderer/src/ext/extension-host.js +272 -0
  885. package/src/libs/renderer/src/ext/index.d.ts +62 -0
  886. package/src/libs/renderer/src/ext/index.js +91 -0
  887. package/src/libs/renderer/src/ext/link-pipeline.d.ts +195 -0
  888. package/src/libs/renderer/src/ext/link-pipeline.js +431 -0
  889. package/src/libs/renderer/src/ext/manifest.d.ts +73 -0
  890. package/src/libs/renderer/src/ext/manifest.js +149 -0
  891. package/src/libs/renderer/src/ext/node-component.d.ts +114 -0
  892. package/src/libs/renderer/src/ext/node-component.js +290 -0
  893. package/src/libs/renderer/src/ext/plugins-loader.d.ts +1 -0
  894. package/src/libs/renderer/src/ext/plugins-loader.js +18 -0
  895. package/src/libs/renderer/src/ext/portal.d.ts +129 -0
  896. package/src/libs/renderer/src/ext/portal.js +267 -0
  897. package/src/libs/renderer/src/ext/public-api.d.ts +101 -0
  898. package/src/libs/renderer/src/ext/public-api.js +201 -0
  899. package/src/libs/renderer/src/ext/registry-scope.d.ts +93 -0
  900. package/src/libs/renderer/src/ext/registry-scope.js +142 -0
  901. package/src/libs/renderer/src/ext/tools.d.ts +164 -0
  902. package/src/libs/renderer/src/ext/tools.js +170 -0
  903. package/src/libs/renderer/src/index.d.ts +34 -0
  904. package/src/libs/renderer/src/index.js +108 -0
  905. package/src/libs/renderer/src/instance/create-diagram.d.ts +385 -0
  906. package/src/libs/renderer/src/instance/create-diagram.js +1150 -0
  907. package/src/libs/renderer/src/instance/diagram-instance.d.ts +48 -0
  908. package/src/libs/renderer/src/instance/diagram-instance.js +51 -0
  909. package/src/libs/renderer/src/instance/dom-event-binder.d.ts +394 -0
  910. package/src/libs/renderer/src/instance/dom-event-binder.js +2104 -0
  911. package/src/libs/renderer/src/instance/index.d.ts +5 -0
  912. package/src/libs/renderer/src/instance/index.js +13 -0
  913. package/src/libs/renderer/src/instance/layers.d.ts +31 -0
  914. package/src/libs/renderer/src/instance/layers.js +43 -0
  915. package/src/libs/renderer/src/instance/model-input.d.ts +229 -0
  916. package/src/libs/renderer/src/instance/model-input.js +325 -0
  917. package/src/libs/renderer/src/instance/render-scheduler.d.ts +79 -0
  918. package/src/libs/renderer/src/instance/render-scheduler.js +96 -0
  919. package/src/libs/renderer/src/instance/wheel-scroll-yield.d.ts +38 -0
  920. package/src/libs/renderer/src/instance/wheel-scroll-yield.js +118 -0
  921. package/src/libs/renderer/src/interaction/ControlPointEditor.d.ts +160 -0
  922. package/src/libs/renderer/src/interaction/ControlPointEditor.js +360 -0
  923. package/src/libs/renderer/src/interaction/WaypointEditor.d.ts +133 -0
  924. package/src/libs/renderer/src/interaction/WaypointEditor.js +263 -0
  925. package/src/libs/renderer/src/interaction/highlighters.d.ts +88 -0
  926. package/src/libs/renderer/src/interaction/highlighters.js +212 -0
  927. package/src/libs/renderer/src/interaction/in-place-editor.d.ts +63 -0
  928. package/src/libs/renderer/src/interaction/in-place-editor.js +141 -0
  929. package/src/libs/renderer/src/interaction/index.d.ts +11 -0
  930. package/src/libs/renderer/src/interaction/index.js +29 -0
  931. package/src/libs/renderer/src/interaction/ink-overlay.d.ts +53 -0
  932. package/src/libs/renderer/src/interaction/ink-overlay.js +154 -0
  933. package/src/libs/renderer/src/interaction/interaction-controller.d.ts +555 -0
  934. package/src/libs/renderer/src/interaction/interaction-controller.js +1733 -0
  935. package/src/libs/renderer/src/interaction/keyboard-navigation.d.ts +223 -0
  936. package/src/libs/renderer/src/interaction/keyboard-navigation.js +885 -0
  937. package/src/libs/renderer/src/interaction/selection-tools.d.ts +343 -0
  938. package/src/libs/renderer/src/interaction/selection-tools.js +918 -0
  939. package/src/libs/renderer/src/interaction/snapping.d.ts +210 -0
  940. package/src/libs/renderer/src/interaction/snapping.js +569 -0
  941. package/src/libs/renderer/src/interaction/touch-gestures.d.ts +160 -0
  942. package/src/libs/renderer/src/interaction/touch-gestures.js +549 -0
  943. package/src/libs/renderer/src/interaction/whiteboard-tools.d.ts +171 -0
  944. package/src/libs/renderer/src/interaction/whiteboard-tools.js +476 -0
  945. package/src/libs/renderer/src/lazy/host-culling.d.ts +116 -0
  946. package/src/libs/renderer/src/lazy/host-culling.js +135 -0
  947. package/src/libs/renderer/src/lazy/index.d.ts +7 -0
  948. package/src/libs/renderer/src/lazy/index.js +28 -0
  949. package/src/libs/renderer/src/lazy/progressive-mounter.d.ts +80 -0
  950. package/src/libs/renderer/src/lazy/progressive-mounter.js +264 -0
  951. package/src/libs/renderer/src/lazy/types.d.ts +43 -0
  952. package/src/libs/renderer/src/lazy/types.js +14 -0
  953. package/src/libs/renderer/src/lazy/view-lifecycle.d.ts +97 -0
  954. package/src/libs/renderer/src/lazy/view-lifecycle.js +221 -0
  955. package/src/libs/renderer/src/perf/index.d.ts +2 -0
  956. package/src/libs/renderer/src/perf/index.js +7 -0
  957. package/src/libs/renderer/src/perf/perf-hud.d.ts +46 -0
  958. package/src/libs/renderer/src/perf/perf-hud.js +105 -0
  959. package/src/libs/renderer/src/perf/quality-governor.d.ts +77 -0
  960. package/src/libs/renderer/src/perf/quality-governor.js +154 -0
  961. package/src/libs/renderer/src/platform/index.d.ts +1 -0
  962. package/src/libs/renderer/src/platform/index.js +5 -0
  963. package/src/libs/renderer/src/platform/platform.d.ts +34 -0
  964. package/src/libs/renderer/src/platform/platform.js +64 -0
  965. package/src/libs/renderer/src/presence/bind-presence.d.ts +51 -0
  966. package/src/libs/renderer/src/presence/bind-presence.js +144 -0
  967. package/src/libs/renderer/src/presence/index.d.ts +4 -0
  968. package/src/libs/renderer/src/presence/index.js +18 -0
  969. package/src/libs/renderer/src/presence/presence-overlay.d.ts +121 -0
  970. package/src/libs/renderer/src/presence/presence-overlay.js +465 -0
  971. package/src/libs/renderer/src/presentation/index.d.ts +3 -0
  972. package/src/libs/renderer/src/presentation/index.js +14 -0
  973. package/src/libs/renderer/src/presentation/presentation.d.ts +94 -0
  974. package/src/libs/renderer/src/presentation/presentation.js +158 -0
  975. package/src/libs/renderer/src/presentation/viewport-channel.d.ts +78 -0
  976. package/src/libs/renderer/src/presentation/viewport-channel.js +86 -0
  977. package/src/libs/renderer/src/services/animation-lifecycle.d.ts +153 -0
  978. package/src/libs/renderer/src/services/animation-lifecycle.js +326 -0
  979. package/src/libs/renderer/src/services/animation-performance.service.d.ts +191 -0
  980. package/src/libs/renderer/src/services/animation-performance.service.js +371 -0
  981. package/src/libs/renderer/src/services/animation-sequencer.d.ts +226 -0
  982. package/src/libs/renderer/src/services/animation-sequencer.js +379 -0
  983. package/src/libs/renderer/src/services/animation.service.d.ts +182 -0
  984. package/src/libs/renderer/src/services/animation.service.js +858 -0
  985. package/src/libs/renderer/src/services/custom-animation-registry.d.ts +182 -0
  986. package/src/libs/renderer/src/services/custom-animation-registry.js +361 -0
  987. package/src/libs/renderer/src/ssr/index.d.ts +1 -0
  988. package/src/libs/renderer/src/ssr/index.js +6 -0
  989. package/src/libs/renderer/src/ssr/render-to-static.d.ts +91 -0
  990. package/src/libs/renderer/src/ssr/render-to-static.js +81 -0
  991. package/src/libs/renderer/src/svg/ArrowRenderer.d.ts +159 -0
  992. package/src/libs/renderer/src/svg/ArrowRenderer.js +723 -0
  993. package/src/libs/renderer/src/svg/JumpPointDetector.d.ts +79 -0
  994. package/src/libs/renderer/src/svg/JumpPointDetector.js +176 -0
  995. package/src/libs/renderer/src/svg/JumpPointRenderer.d.ts +59 -0
  996. package/src/libs/renderer/src/svg/JumpPointRenderer.js +309 -0
  997. package/src/libs/renderer/src/svg/LabelRenderer.d.ts +76 -0
  998. package/src/libs/renderer/src/svg/LabelRenderer.js +273 -0
  999. package/src/libs/renderer/src/svg/auto-size.d.ts +76 -0
  1000. package/src/libs/renderer/src/svg/auto-size.js +142 -0
  1001. package/src/libs/renderer/src/svg/channel-nudging.d.ts +34 -0
  1002. package/src/libs/renderer/src/svg/channel-nudging.js +226 -0
  1003. package/src/libs/renderer/src/svg/edge-optimizer.d.ts +228 -0
  1004. package/src/libs/renderer/src/svg/edge-optimizer.js +606 -0
  1005. package/src/libs/renderer/src/svg/edge-templates.d.ts +152 -0
  1006. package/src/libs/renderer/src/svg/edge-templates.js +233 -0
  1007. package/src/libs/renderer/src/svg/html-node.d.ts +50 -0
  1008. package/src/libs/renderer/src/svg/html-node.js +214 -0
  1009. package/src/libs/renderer/src/svg/index.d.ts +25 -0
  1010. package/src/libs/renderer/src/svg/index.js +32 -0
  1011. package/src/libs/renderer/src/svg/link-fanout.d.ts +127 -0
  1012. package/src/libs/renderer/src/svg/link-fanout.js +333 -0
  1013. package/src/libs/renderer/src/svg/link-hit-test.d.ts +142 -0
  1014. package/src/libs/renderer/src/svg/link-hit-test.js +182 -0
  1015. package/src/libs/renderer/src/svg/motion-tracker.d.ts +18 -0
  1016. package/src/libs/renderer/src/svg/motion-tracker.js +71 -0
  1017. package/src/libs/renderer/src/svg/node-sizing.d.ts +51 -0
  1018. package/src/libs/renderer/src/svg/node-sizing.js +65 -0
  1019. package/src/libs/renderer/src/svg/node-toolbar.d.ts +30 -0
  1020. package/src/libs/renderer/src/svg/node-toolbar.js +45 -0
  1021. package/src/libs/renderer/src/svg/notation-shapes.d.ts +2 -0
  1022. package/src/libs/renderer/src/svg/notation-shapes.js +126 -0
  1023. package/src/libs/renderer/src/svg/paint-servers.d.ts +49 -0
  1024. package/src/libs/renderer/src/svg/paint-servers.js +225 -0
  1025. package/src/libs/renderer/src/svg/panel.d.ts +115 -0
  1026. package/src/libs/renderer/src/svg/panel.js +353 -0
  1027. package/src/libs/renderer/src/svg/path-outline.d.ts +35 -0
  1028. package/src/libs/renderer/src/svg/path-outline.js +134 -0
  1029. package/src/libs/renderer/src/svg/port-glyph.d.ts +27 -0
  1030. package/src/libs/renderer/src/svg/port-glyph.js +97 -0
  1031. package/src/libs/renderer/src/svg/port-label.d.ts +74 -0
  1032. package/src/libs/renderer/src/svg/port-label.js +201 -0
  1033. package/src/libs/renderer/src/svg/port-layout.d.ts +50 -0
  1034. package/src/libs/renderer/src/svg/port-layout.js +212 -0
  1035. package/src/libs/renderer/src/svg/port-positioning.d.ts +33 -0
  1036. package/src/libs/renderer/src/svg/port-positioning.js +101 -0
  1037. package/src/libs/renderer/src/svg/port-spots.d.ts +69 -0
  1038. package/src/libs/renderer/src/svg/port-spots.js +154 -0
  1039. package/src/libs/renderer/src/svg/route-memo.d.ts +63 -0
  1040. package/src/libs/renderer/src/svg/route-memo.js +206 -0
  1041. package/src/libs/renderer/src/svg/route-solver-bridge.d.ts +48 -0
  1042. package/src/libs/renderer/src/svg/route-solver-bridge.js +151 -0
  1043. package/src/libs/renderer/src/svg/shape-registry.d.ts +189 -0
  1044. package/src/libs/renderer/src/svg/shape-registry.js +1104 -0
  1045. package/src/libs/renderer/src/svg/stroke-layer.d.ts +36 -0
  1046. package/src/libs/renderer/src/svg/stroke-layer.js +183 -0
  1047. package/src/libs/renderer/src/svg/svg-renderer.d.ts +1737 -0
  1048. package/src/libs/renderer/src/svg/svg-renderer.js +7772 -0
  1049. package/src/libs/renderer/src/svg/text-block.d.ts +54 -0
  1050. package/src/libs/renderer/src/svg/text-block.js +171 -0
  1051. package/src/libs/renderer/src/themes/color-mode.d.ts +81 -0
  1052. package/src/libs/renderer/src/themes/color-mode.js +158 -0
  1053. package/src/libs/renderer/src/themes/contrast.d.ts +67 -0
  1054. package/src/libs/renderer/src/themes/contrast.js +215 -0
  1055. package/src/libs/renderer/src/themes/default-dark-theme.d.ts +6 -0
  1056. package/src/libs/renderer/src/themes/default-dark-theme.js +126 -0
  1057. package/src/libs/renderer/src/themes/default-light-theme.d.ts +6 -0
  1058. package/src/libs/renderer/src/themes/default-light-theme.js +168 -0
  1059. package/src/libs/renderer/src/themes/default-theme-set.d.ts +10 -0
  1060. package/src/libs/renderer/src/themes/default-theme-set.js +25 -0
  1061. package/src/libs/renderer/src/themes/high-contrast-theme.d.ts +5 -0
  1062. package/src/libs/renderer/src/themes/high-contrast-theme.js +170 -0
  1063. package/src/libs/renderer/src/themes/index.d.ts +22 -0
  1064. package/src/libs/renderer/src/themes/index.js +93 -0
  1065. package/src/libs/renderer/src/themes/style-cascade.d.ts +23 -0
  1066. package/src/libs/renderer/src/themes/style-cascade.js +194 -0
  1067. package/src/libs/renderer/src/themes/style-registry.d.ts +40 -0
  1068. package/src/libs/renderer/src/themes/style-registry.js +129 -0
  1069. package/src/libs/renderer/src/themes/theme-a11y.d.ts +65 -0
  1070. package/src/libs/renderer/src/themes/theme-a11y.js +256 -0
  1071. package/src/libs/renderer/src/themes/theme-css.d.ts +30 -0
  1072. package/src/libs/renderer/src/themes/theme-css.js +304 -0
  1073. package/src/libs/renderer/src/themes/theme-ref.d.ts +63 -0
  1074. package/src/libs/renderer/src/themes/theme-ref.js +206 -0
  1075. package/src/libs/renderer/src/themes/theme-vars.d.ts +49 -0
  1076. package/src/libs/renderer/src/themes/theme-vars.js +112 -0
  1077. package/src/libs/renderer/src/themes/token-bridge.d.ts +62 -0
  1078. package/src/libs/renderer/src/themes/token-bridge.js +354 -0
  1079. package/src/libs/renderer/src/types/geometry.types.d.ts +10 -0
  1080. package/src/libs/renderer/src/types/geometry.types.js +3 -0
  1081. package/src/libs/renderer/src/types/index.d.ts +5 -0
  1082. package/src/libs/renderer/src/types/index.js +14 -0
  1083. package/src/libs/renderer/src/types/property-schema/conditions.d.ts +96 -0
  1084. package/src/libs/renderer/src/types/property-schema/conditions.js +8 -0
  1085. package/src/libs/renderer/src/types/property-schema/editor-types.d.ts +310 -0
  1086. package/src/libs/renderer/src/types/property-schema/editor-types.js +8 -0
  1087. package/src/libs/renderer/src/types/property-schema/groups.d.ts +58 -0
  1088. package/src/libs/renderer/src/types/property-schema/groups.js +8 -0
  1089. package/src/libs/renderer/src/types/property-schema/index.d.ts +101 -0
  1090. package/src/libs/renderer/src/types/property-schema/index.js +98 -0
  1091. package/src/libs/renderer/src/types/property-schema/property-definition.d.ts +117 -0
  1092. package/src/libs/renderer/src/types/property-schema/property-definition.js +8 -0
  1093. package/src/libs/renderer/src/types/property-schema/schema.d.ts +108 -0
  1094. package/src/libs/renderer/src/types/property-schema/schema.js +8 -0
  1095. package/src/libs/renderer/src/types/property-schema/validation.d.ts +181 -0
  1096. package/src/libs/renderer/src/types/property-schema/validation.js +8 -0
  1097. package/src/libs/renderer/src/types/renderer.interface.d.ts +623 -0
  1098. package/src/libs/renderer/src/types/renderer.interface.js +3 -0
  1099. package/src/libs/renderer/src/types/theme.types.d.ts +305 -0
  1100. package/src/libs/renderer/src/types/theme.types.js +3 -0
  1101. package/src/libs/renderer/src/types/vnode.types.d.ts +139 -0
  1102. package/src/libs/renderer/src/types/vnode.types.js +3 -0
  1103. package/src/libs/renderer/src/utils/animation-presets.d.ts +310 -0
  1104. package/src/libs/renderer/src/utils/animation-presets.js +406 -0
  1105. package/src/libs/renderer/src/utils/animation-priority.d.ts +118 -0
  1106. package/src/libs/renderer/src/utils/animation-priority.js +258 -0
  1107. package/src/libs/renderer/src/utils/animation-utils.d.ts +159 -0
  1108. package/src/libs/renderer/src/utils/animation-utils.js +323 -0
  1109. package/src/libs/renderer/src/utils/lru-cache.d.ts +34 -0
  1110. package/src/libs/renderer/src/utils/lru-cache.js +72 -0
  1111. package/src/libs/renderer/src/viewport/index.d.ts +1 -0
  1112. package/src/libs/renderer/src/viewport/index.js +6 -0
  1113. package/src/libs/renderer/src/viewport/viewport-controller.d.ts +198 -0
  1114. package/src/libs/renderer/src/viewport/viewport-controller.js +315 -0
  1115. package/src/libs/renderer/src/vnode/container-id-generator.d.ts +94 -0
  1116. package/src/libs/renderer/src/vnode/container-id-generator.js +110 -0
  1117. package/src/libs/renderer/src/vnode/foreign-object.d.ts +157 -0
  1118. package/src/libs/renderer/src/vnode/foreign-object.js +167 -0
  1119. package/src/libs/renderer/src/vnode/index.d.ts +56 -0
  1120. package/src/libs/renderer/src/vnode/index.js +78 -0
  1121. package/src/libs/renderer/src/vnode/patch.d.ts +189 -0
  1122. package/src/libs/renderer/src/vnode/patch.js +564 -0
  1123. package/src/index.js.map +0 -1
  1124. package/src/lib/dashboard-kit/dashboard.js.map +0 -1
  1125. package/src/lib/dashboard-kit/grid-binder.js.map +0 -1
  1126. package/src/lib/dashboard-kit/grid-mapping.js.map +0 -1
  1127. package/src/lib/dashboard-kit/index.js.map +0 -1
  1128. package/src/lib/dashboard-kit/styles.js.map +0 -1
  1129. package/src/lib/dashboard-kit/widgets.js.map +0 -1
  1130. package/src/lib/diagram-kit/card.js.map +0 -1
  1131. package/src/lib/diagram-kit/editing.js.map +0 -1
  1132. package/src/lib/diagram-kit/er.js.map +0 -1
  1133. package/src/lib/diagram-kit/handles.js.map +0 -1
  1134. package/src/lib/diagram-kit/index.js.map +0 -1
  1135. package/src/lib/diagram-kit/rows.js.map +0 -1
  1136. package/src/lib/diagram-kit/styles.js.map +0 -1
  1137. package/src/lib/diagram-kit/uml.js.map +0 -1
  1138. package/src/lib/diagram-kit/update.js.map +0 -1
  1139. package/src/lib/grafloria-flow-element.js.map +0 -1
  1140. package/src/lib/grafloria.js.map +0 -1
  1141. package/src/lib/load.js.map +0 -1
  1142. package/src/lib/node-type-registry.js.map +0 -1
  1143. package/src/lib/stencil-kit/builders.js.map +0 -1
  1144. package/src/lib/stencil-kit/card-builders.js.map +0 -1
  1145. package/src/lib/stencil-kit/index.js.map +0 -1
  1146. package/src/lib/stencil-kit/palette.js.map +0 -1
  1147. package/src/lib/stencil-kit/shape-data.js.map +0 -1
  1148. package/src/lib/stencil-kit/styles.js.map +0 -1
@@ -0,0 +1,1373 @@
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