@grafloria/element 0.3.19 → 0.3.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (638) hide show
  1. package/{src/index.ts → esm/src/index.js} +60 -569
  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/{src/lib/dashboard-kit/styles.ts → esm/src/lib/dashboard-kit/styles.js} +8 -9
  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/{src/lib/diagram-kit/styles.ts → esm/src/lib/diagram-kit/styles.js} +10 -10
  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/{src/lib/stencil-kit/styles.ts → esm/src/lib/stencil-kit/styles.js} +9 -9
  28. package/package.json +12 -3
  29. package/jest.config.ts +0 -16
  30. package/project.json +0 -44
  31. package/src/front-door-probe.spec.ts +0 -173
  32. package/src/index.js.map +0 -1
  33. package/src/lib/dashboard-kit/dashboard.js.map +0 -1
  34. package/src/lib/dashboard-kit/dashboard.spec.ts +0 -821
  35. package/src/lib/dashboard-kit/dashboard.ts +0 -906
  36. package/src/lib/dashboard-kit/grid-binder.js.map +0 -1
  37. package/src/lib/dashboard-kit/grid-binder.ts +0 -1976
  38. package/src/lib/dashboard-kit/grid-mapping.js.map +0 -1
  39. package/src/lib/dashboard-kit/grid-mapping.spec.ts +0 -308
  40. package/src/lib/dashboard-kit/grid-mapping.ts +0 -283
  41. package/src/lib/dashboard-kit/index.js.map +0 -1
  42. package/src/lib/dashboard-kit/index.ts +0 -56
  43. package/src/lib/dashboard-kit/styles.js.map +0 -1
  44. package/src/lib/dashboard-kit/widgets.js.map +0 -1
  45. package/src/lib/dashboard-kit/widgets.spec.ts +0 -239
  46. package/src/lib/dashboard-kit/widgets.ts +0 -484
  47. package/src/lib/diagram-kit/card.js.map +0 -1
  48. package/src/lib/diagram-kit/card.ts +0 -219
  49. package/src/lib/diagram-kit/diagram-kit.spec.ts +0 -465
  50. package/src/lib/diagram-kit/editing.js.map +0 -1
  51. package/src/lib/diagram-kit/editing.spec.ts +0 -172
  52. package/src/lib/diagram-kit/editing.ts +0 -493
  53. package/src/lib/diagram-kit/er.js.map +0 -1
  54. package/src/lib/diagram-kit/er.ts +0 -246
  55. package/src/lib/diagram-kit/handles.js.map +0 -1
  56. package/src/lib/diagram-kit/handles.spec.ts +0 -224
  57. package/src/lib/diagram-kit/handles.ts +0 -375
  58. package/src/lib/diagram-kit/index.js.map +0 -1
  59. package/src/lib/diagram-kit/index.ts +0 -66
  60. package/src/lib/diagram-kit/join-guidance.js.map +0 -1
  61. package/src/lib/diagram-kit/join-guidance.spec.ts +0 -241
  62. package/src/lib/diagram-kit/join-guidance.ts +0 -390
  63. package/src/lib/diagram-kit/rows.js.map +0 -1
  64. package/src/lib/diagram-kit/rows.ts +0 -174
  65. package/src/lib/diagram-kit/styles.js.map +0 -1
  66. package/src/lib/diagram-kit/uml.js.map +0 -1
  67. package/src/lib/diagram-kit/uml.ts +0 -213
  68. package/src/lib/diagram-kit/update.js.map +0 -1
  69. package/src/lib/diagram-kit/update.spec.ts +0 -208
  70. package/src/lib/diagram-kit/update.ts +0 -324
  71. package/src/lib/grafloria-flow-element.js.map +0 -1
  72. package/src/lib/grafloria-flow-element.spec.ts +0 -290
  73. package/src/lib/grafloria-flow-element.ts +0 -298
  74. package/src/lib/grafloria.js.map +0 -1
  75. package/src/lib/grafloria.ts +0 -151
  76. package/src/lib/load.js.map +0 -1
  77. package/src/lib/load.spec.ts +0 -565
  78. package/src/lib/load.ts +0 -359
  79. package/src/lib/node-type-registry.js.map +0 -1
  80. package/src/lib/node-type-registry.ts +0 -76
  81. package/src/lib/stencil-kit/builders.js.map +0 -1
  82. package/src/lib/stencil-kit/builders.ts +0 -58
  83. package/src/lib/stencil-kit/card-builders.js.map +0 -1
  84. package/src/lib/stencil-kit/card-builders.ts +0 -113
  85. package/src/lib/stencil-kit/index.js.map +0 -1
  86. package/src/lib/stencil-kit/index.ts +0 -17
  87. package/src/lib/stencil-kit/palette.js.map +0 -1
  88. package/src/lib/stencil-kit/palette.ts +0 -482
  89. package/src/lib/stencil-kit/shape-data.js.map +0 -1
  90. package/src/lib/stencil-kit/shape-data.spec.ts +0 -470
  91. package/src/lib/stencil-kit/shape-data.ts +0 -680
  92. package/src/lib/stencil-kit/styles.js.map +0 -1
  93. package/src/libs/element/src/index.js.map +0 -1
  94. package/src/libs/element/src/lib/dashboard-kit/dashboard.js.map +0 -1
  95. package/src/libs/element/src/lib/dashboard-kit/grid-binder.js.map +0 -1
  96. package/src/libs/element/src/lib/dashboard-kit/grid-mapping.js.map +0 -1
  97. package/src/libs/element/src/lib/dashboard-kit/index.js.map +0 -1
  98. package/src/libs/element/src/lib/dashboard-kit/styles.js.map +0 -1
  99. package/src/libs/element/src/lib/dashboard-kit/widgets.js.map +0 -1
  100. package/src/libs/element/src/lib/diagram-kit/card.js.map +0 -1
  101. package/src/libs/element/src/lib/diagram-kit/editing.js.map +0 -1
  102. package/src/libs/element/src/lib/diagram-kit/er.js.map +0 -1
  103. package/src/libs/element/src/lib/diagram-kit/handles.js.map +0 -1
  104. package/src/libs/element/src/lib/diagram-kit/index.js.map +0 -1
  105. package/src/libs/element/src/lib/diagram-kit/join-guidance.js.map +0 -1
  106. package/src/libs/element/src/lib/diagram-kit/rows.js.map +0 -1
  107. package/src/libs/element/src/lib/diagram-kit/styles.js.map +0 -1
  108. package/src/libs/element/src/lib/diagram-kit/uml.js.map +0 -1
  109. package/src/libs/element/src/lib/diagram-kit/update.js.map +0 -1
  110. package/src/libs/element/src/lib/grafloria-flow-element.js.map +0 -1
  111. package/src/libs/element/src/lib/grafloria.js.map +0 -1
  112. package/src/libs/element/src/lib/load.js.map +0 -1
  113. package/src/libs/element/src/lib/node-type-registry.js.map +0 -1
  114. package/src/libs/element/src/lib/stencil-kit/builders.js.map +0 -1
  115. package/src/libs/element/src/lib/stencil-kit/card-builders.js.map +0 -1
  116. package/src/libs/element/src/lib/stencil-kit/index.js.map +0 -1
  117. package/src/libs/element/src/lib/stencil-kit/palette.js.map +0 -1
  118. package/src/libs/element/src/lib/stencil-kit/shape-data.js.map +0 -1
  119. package/src/libs/element/src/lib/stencil-kit/styles.js.map +0 -1
  120. package/src/libs/engine/src/adapters/component-adapter.interface.js.map +0 -1
  121. package/src/libs/engine/src/adapters/index.js.map +0 -1
  122. package/src/libs/engine/src/clipboard/ClipboardManager.js.map +0 -1
  123. package/src/libs/engine/src/clipboard/index.js.map +0 -1
  124. package/src/libs/engine/src/collab/apply-op.js.map +0 -1
  125. package/src/libs/engine/src/collab/capture.js.map +0 -1
  126. package/src/libs/engine/src/collab/index.js.map +0 -1
  127. package/src/libs/engine/src/collab/integrity.js.map +0 -1
  128. package/src/libs/engine/src/collab/lww.js.map +0 -1
  129. package/src/libs/engine/src/collab/op-log.js.map +0 -1
  130. package/src/libs/engine/src/collab/op.js.map +0 -1
  131. package/src/libs/engine/src/collab/replica.js.map +0 -1
  132. package/src/libs/engine/src/collab/undo.js.map +0 -1
  133. package/src/libs/engine/src/commands/Command.js.map +0 -1
  134. package/src/libs/engine/src/commands/CommandManager.js.map +0 -1
  135. package/src/libs/engine/src/commands/basic/AddGroupCommand.js.map +0 -1
  136. package/src/libs/engine/src/commands/basic/AddLinkCommand.js.map +0 -1
  137. package/src/libs/engine/src/commands/basic/AddNodeCommand.js.map +0 -1
  138. package/src/libs/engine/src/commands/basic/AddToGroupCommand.js.map +0 -1
  139. package/src/libs/engine/src/commands/basic/AlignCommands.js.map +0 -1
  140. package/src/libs/engine/src/commands/basic/CollapseGroupCommand.js.map +0 -1
  141. package/src/libs/engine/src/commands/basic/CopyCommand.js.map +0 -1
  142. package/src/libs/engine/src/commands/basic/CutCommand.js.map +0 -1
  143. package/src/libs/engine/src/commands/basic/DeleteSelectionCommand.js.map +0 -1
  144. package/src/libs/engine/src/commands/basic/DuplicateCommand.js.map +0 -1
  145. package/src/libs/engine/src/commands/basic/ExpandGroupCommand.js.map +0 -1
  146. package/src/libs/engine/src/commands/basic/MoveGroupCommand.js.map +0 -1
  147. package/src/libs/engine/src/commands/basic/MoveNodeCommand.js.map +0 -1
  148. package/src/libs/engine/src/commands/basic/NodeZOrderCommands.js.map +0 -1
  149. package/src/libs/engine/src/commands/basic/PasteCommand.js.map +0 -1
  150. package/src/libs/engine/src/commands/basic/PortCommands.js.map +0 -1
  151. package/src/libs/engine/src/commands/basic/ReconnectLinkCommand.js.map +0 -1
  152. package/src/libs/engine/src/commands/basic/RemoveFromGroupCommand.js.map +0 -1
  153. package/src/libs/engine/src/commands/basic/RemoveGroupCommand.js.map +0 -1
  154. package/src/libs/engine/src/commands/basic/RemoveLinkCommand.js.map +0 -1
  155. package/src/libs/engine/src/commands/basic/RemoveNodeCommand.js.map +0 -1
  156. package/src/libs/engine/src/commands/basic/ResizeNodeCommand.js.map +0 -1
  157. package/src/libs/engine/src/commands/basic/RotateNodeCommand.js.map +0 -1
  158. package/src/libs/engine/src/commands/basic/SetFlexItemCommand.js.map +0 -1
  159. package/src/libs/engine/src/commands/basic/SetGridItemCommand.js.map +0 -1
  160. package/src/libs/engine/src/commands/basic/SetLayoutCommand.js.map +0 -1
  161. package/src/libs/engine/src/commands/basic/SetLinkDisplayLabelCommand.js.map +0 -1
  162. package/src/libs/engine/src/commands/basic/SetLinkLabelCommand.js.map +0 -1
  163. package/src/libs/engine/src/commands/basic/SetLinkLabelsCommand.js.map +0 -1
  164. package/src/libs/engine/src/commands/basic/SetLinkPathTypeCommand.js.map +0 -1
  165. package/src/libs/engine/src/commands/basic/SetLinkPointsCommand.js.map +0 -1
  166. package/src/libs/engine/src/commands/basic/SetNodeDataCommand.js.map +0 -1
  167. package/src/libs/engine/src/commands/basic/SetNodeLabelCommand.js.map +0 -1
  168. package/src/libs/engine/src/commands/basic/SetNodeShapeConfigCommand.js.map +0 -1
  169. package/src/libs/engine/src/commands/basic/SetNodeStyleCommand.js.map +0 -1
  170. package/src/libs/engine/src/commands/basic/SetParentCommand.js.map +0 -1
  171. package/src/libs/engine/src/commands/basic/SetStrokePointsCommand.js.map +0 -1
  172. package/src/libs/engine/src/commands/basic/StrokeLifecycleCommands.js.map +0 -1
  173. package/src/libs/engine/src/commands/basic/UpdateLinkStyleCommand.js.map +0 -1
  174. package/src/libs/engine/src/commands/basic/index.js.map +0 -1
  175. package/src/libs/engine/src/commands/basic/remapNodePortIds.js.map +0 -1
  176. package/src/libs/engine/src/commands/basic/resolveLinkNodeIds.js.map +0 -1
  177. package/src/libs/engine/src/commands/composite/BatchCommand.js.map +0 -1
  178. package/src/libs/engine/src/commands/composite/MacroCommand.js.map +0 -1
  179. package/src/libs/engine/src/commands/composite/index.js.map +0 -1
  180. package/src/libs/engine/src/commands/index.js.map +0 -1
  181. package/src/libs/engine/src/comments/comment-store.js.map +0 -1
  182. package/src/libs/engine/src/comments/index.js.map +0 -1
  183. package/src/libs/engine/src/comments/mentions.js.map +0 -1
  184. package/src/libs/engine/src/comments/read-state.js.map +0 -1
  185. package/src/libs/engine/src/comments/types.js.map +0 -1
  186. package/src/libs/engine/src/config/InteractionConfig.js.map +0 -1
  187. package/src/libs/engine/src/config/index.js.map +0 -1
  188. package/src/libs/engine/src/dsl/DSL.js.map +0 -1
  189. package/src/libs/engine/src/dsl/advanced/StyleParser.js.map +0 -1
  190. package/src/libs/engine/src/dsl/advanced/TemplateParser.js.map +0 -1
  191. package/src/libs/engine/src/dsl/advanced/index.js.map +0 -1
  192. package/src/libs/engine/src/dsl/detector/LayoutDetector.js.map +0 -1
  193. package/src/libs/engine/src/dsl/extended/BPMNGenerator.js.map +0 -1
  194. package/src/libs/engine/src/dsl/extended/BPMNParser.js.map +0 -1
  195. package/src/libs/engine/src/dsl/extended/ERDGenerator.js.map +0 -1
  196. package/src/libs/engine/src/dsl/extended/ERDParser.js.map +0 -1
  197. package/src/libs/engine/src/dsl/extended/ERDTransformer.js.map +0 -1
  198. package/src/libs/engine/src/dsl/extended/UMLGenerator.js.map +0 -1
  199. package/src/libs/engine/src/dsl/extended/UMLParser.js.map +0 -1
  200. package/src/libs/engine/src/dsl/extended/index.js.map +0 -1
  201. package/src/libs/engine/src/dsl/generator/DSLFormatter.js.map +0 -1
  202. package/src/libs/engine/src/dsl/generator/DSLGenerator.js.map +0 -1
  203. package/src/libs/engine/src/dsl/generator/DiagramAnalyzer.js.map +0 -1
  204. package/src/libs/engine/src/dsl/index.js.map +0 -1
  205. package/src/libs/engine/src/dsl/lexer/Lexer.js.map +0 -1
  206. package/src/libs/engine/src/dsl/mermaid/MermaidClass.js.map +0 -1
  207. package/src/libs/engine/src/dsl/mermaid/MermaidER.js.map +0 -1
  208. package/src/libs/engine/src/dsl/mermaid/MermaidState.js.map +0 -1
  209. package/src/libs/engine/src/dsl/mermaid/index.js.map +0 -1
  210. package/src/libs/engine/src/dsl/mermaid/layout.js.map +0 -1
  211. package/src/libs/engine/src/dsl/mermaid/lines.js.map +0 -1
  212. package/src/libs/engine/src/dsl/parser/Parser.js.map +0 -1
  213. package/src/libs/engine/src/dsl/sync/BidirectionalSync.js.map +0 -1
  214. package/src/libs/engine/src/dsl/sync/IntegratedSyncManager.js.map +0 -1
  215. package/src/libs/engine/src/dsl/sync/LayoutApplicator.js.map +0 -1
  216. package/src/libs/engine/src/dsl/sync/SyncStateManager.js.map +0 -1
  217. package/src/libs/engine/src/dsl/sync/index.js.map +0 -1
  218. package/src/libs/engine/src/dsl/transformer/ASTTransformer.js.map +0 -1
  219. package/src/libs/engine/src/dsl/types/ASTNode.js.map +0 -1
  220. package/src/libs/engine/src/dsl/types/Token.js.map +0 -1
  221. package/src/libs/engine/src/engine/DiagramEngine.js.map +0 -1
  222. package/src/libs/engine/src/engine/DiagramMode.js.map +0 -1
  223. package/src/libs/engine/src/engine/DiagramModeTypes.js.map +0 -1
  224. package/src/libs/engine/src/engine/ModeManager.js.map +0 -1
  225. package/src/libs/engine/src/engine/index.js.map +0 -1
  226. package/src/libs/engine/src/events/EventBus.js.map +0 -1
  227. package/src/libs/engine/src/events/index.js.map +0 -1
  228. package/src/libs/engine/src/index.js.map +0 -1
  229. package/src/libs/engine/src/interaction/GroupCollapseService.js.map +0 -1
  230. package/src/libs/engine/src/interaction/GroupMembershipService.js.map +0 -1
  231. package/src/libs/engine/src/interaction/SemanticMembershipService.js.map +0 -1
  232. package/src/libs/engine/src/interaction/SwimlaneService.js.map +0 -1
  233. package/src/libs/engine/src/interaction/index.js.map +0 -1
  234. package/src/libs/engine/src/interop/drawio/importDrawio.js.map +0 -1
  235. package/src/libs/engine/src/interop/drawio/index.js.map +0 -1
  236. package/src/libs/engine/src/interop/drawio/xml.js.map +0 -1
  237. package/src/libs/engine/src/layout/CompoundLayoutService.js.map +0 -1
  238. package/src/libs/engine/src/layout/ILayoutAlgorithm.js.map +0 -1
  239. package/src/libs/engine/src/layout/LayoutManager.js.map +0 -1
  240. package/src/libs/engine/src/layout/SmartSpacingCalculator.js.map +0 -1
  241. package/src/libs/engine/src/layout/ViewportTransform.js.map +0 -1
  242. package/src/libs/engine/src/layout/algorithms/ForceDirectedLayoutAlgorithm.js.map +0 -1
  243. package/src/libs/engine/src/layout/algorithms/GridLayoutAlgorithm.js.map +0 -1
  244. package/src/libs/engine/src/layout/algorithms/HierarchicalLayoutAlgorithm.js.map +0 -1
  245. package/src/libs/engine/src/layout/algorithms/HybridLayoutAlgorithm.js.map +0 -1
  246. package/src/libs/engine/src/layout/community-layout-adapter.js.map +0 -1
  247. package/src/libs/engine/src/layout/component-packing.js.map +0 -1
  248. package/src/libs/engine/src/layout/dagre-layout-adapter.js.map +0 -1
  249. package/src/libs/engine/src/layout/edge-bundling.interface.js.map +0 -1
  250. package/src/libs/engine/src/layout/elk-layout-adapter.js.map +0 -1
  251. package/src/libs/engine/src/layout/elk-loader.js.map +0 -1
  252. package/src/libs/engine/src/layout/force-layout-adapter.js.map +0 -1
  253. package/src/libs/engine/src/layout/grid-pack/grid-pack-engine.js.map +0 -1
  254. package/src/libs/engine/src/layout/incremental/mental-map.js.map +0 -1
  255. package/src/libs/engine/src/layout/incremental-layout.interface.js.map +0 -1
  256. package/src/libs/engine/src/layout/index.js.map +0 -1
  257. package/src/libs/engine/src/layout/layout-adapter.interface.js.map +0 -1
  258. package/src/libs/engine/src/layout/layout-auto-select.js.map +0 -1
  259. package/src/libs/engine/src/layout/layout-constraints.interface.js.map +0 -1
  260. package/src/libs/engine/src/layout/layout-graph.js.map +0 -1
  261. package/src/libs/engine/src/layout/layout-history.js.map +0 -1
  262. package/src/libs/engine/src/layout/layout-host.js.map +0 -1
  263. package/src/libs/engine/src/layout/layout-presets.js.map +0 -1
  264. package/src/libs/engine/src/layout/layout-quality-extended.js.map +0 -1
  265. package/src/libs/engine/src/layout/layout-quality-metrics.js.map +0 -1
  266. package/src/libs/engine/src/layout/layout-registry.js.map +0 -1
  267. package/src/libs/engine/src/layout/layout.service.js.map +0 -1
  268. package/src/libs/engine/src/layout/overlap-removal.js.map +0 -1
  269. package/src/libs/engine/src/layout/port-aware-layout.interface.js.map +0 -1
  270. package/src/libs/engine/src/layout/port-label-bridge.js.map +0 -1
  271. package/src/libs/engine/src/layout/portfolio-layouts.js.map +0 -1
  272. package/src/libs/engine/src/layout/rng.js.map +0 -1
  273. package/src/libs/engine/src/layout/spectral-layout-adapter.js.map +0 -1
  274. package/src/libs/engine/src/layout/steppable-layout.js.map +0 -1
  275. package/src/libs/engine/src/layout/subgraph-layout.interface.js.map +0 -1
  276. package/src/libs/engine/src/layout/sugiyama/layered-layout.js.map +0 -1
  277. package/src/libs/engine/src/layout/sugiyama/sugiyama.js.map +0 -1
  278. package/src/libs/engine/src/layout/tree-layout.js.map +0 -1
  279. package/src/libs/engine/src/layout/types.js.map +0 -1
  280. package/src/libs/engine/src/lib/performance/mobile-performance.service.js.map +0 -1
  281. package/src/libs/engine/src/models/DiagramEntity.js.map +0 -1
  282. package/src/libs/engine/src/models/DiagramModel.js.map +0 -1
  283. package/src/libs/engine/src/models/GroupModel.js.map +0 -1
  284. package/src/libs/engine/src/models/LinkModel.js.map +0 -1
  285. package/src/libs/engine/src/models/NodeModel.js.map +0 -1
  286. package/src/libs/engine/src/models/PortModel.js.map +0 -1
  287. package/src/libs/engine/src/models/StrokeModel.js.map +0 -1
  288. package/src/libs/engine/src/models/index.js.map +0 -1
  289. package/src/libs/engine/src/models/readonly-lock.js.map +0 -1
  290. package/src/libs/engine/src/performance/LRUCache.js.map +0 -1
  291. package/src/libs/engine/src/performance/PerformanceMonitor.js.map +0 -1
  292. package/src/libs/engine/src/performance/SpatialIndex.js.map +0 -1
  293. package/src/libs/engine/src/performance/index.js.map +0 -1
  294. package/src/libs/engine/src/plugins/PluginManager.js.map +0 -1
  295. package/src/libs/engine/src/plugins/index.js.map +0 -1
  296. package/src/libs/engine/src/ports/connection-rules.js.map +0 -1
  297. package/src/libs/engine/src/ports/dynamic-ports.js.map +0 -1
  298. package/src/libs/engine/src/ports/index.js.map +0 -1
  299. package/src/libs/engine/src/ports/port-groups.js.map +0 -1
  300. package/src/libs/engine/src/ports/port-type-registry.js.map +0 -1
  301. package/src/libs/engine/src/ports/port-types.js.map +0 -1
  302. package/src/libs/engine/src/rendering/HtmlTemplateRenderer.js.map +0 -1
  303. package/src/libs/engine/src/rendering/LemonadeJSRenderer.js.map +0 -1
  304. package/src/libs/engine/src/rendering/index.js.map +0 -1
  305. package/src/libs/engine/src/routing/LiveReroutingEngine.js.map +0 -1
  306. package/src/libs/engine/src/routing/ObstacleIndex.js.map +0 -1
  307. package/src/libs/engine/src/routing/ObstacleMap.js.map +0 -1
  308. package/src/libs/engine/src/routing/ObstacleMapBuilder.js.map +0 -1
  309. package/src/libs/engine/src/routing/PathSimplifier.js.map +0 -1
  310. package/src/libs/engine/src/routing/RoutingEngine.js.map +0 -1
  311. package/src/libs/engine/src/routing/algorithms/AStarRouter.js.map +0 -1
  312. package/src/libs/engine/src/routing/algorithms/DijkstraRouter.js.map +0 -1
  313. package/src/libs/engine/src/routing/algorithms/ElkRouter.js.map +0 -1
  314. package/src/libs/engine/src/routing/algorithms/ManhattanRouter.js.map +0 -1
  315. package/src/libs/engine/src/routing/algorithms/OrthogonalRouter.js.map +0 -1
  316. package/src/libs/engine/src/routing/algorithms/StraightRouter.js.map +0 -1
  317. package/src/libs/engine/src/routing/algorithms/VisibilityGraphRouter.js.map +0 -1
  318. package/src/libs/engine/src/routing/global/GlobalRouteSolver.js.map +0 -1
  319. package/src/libs/engine/src/routing/global/solver-host.js.map +0 -1
  320. package/src/libs/engine/src/routing/index.js.map +0 -1
  321. package/src/libs/engine/src/routing/types.js.map +0 -1
  322. package/src/libs/engine/src/selection/SelectionManager.js.map +0 -1
  323. package/src/libs/engine/src/selection/index.js.map +0 -1
  324. package/src/libs/engine/src/serialization/DiagramMigrations.js.map +0 -1
  325. package/src/libs/engine/src/serialization/DiagramValidator.js.map +0 -1
  326. package/src/libs/engine/src/serialization/DocumentEnvelope.js.map +0 -1
  327. package/src/libs/engine/src/serialization/Incremental.js.map +0 -1
  328. package/src/libs/engine/src/serialization/Serializer.js.map +0 -1
  329. package/src/libs/engine/src/serialization/Subgraph.js.map +0 -1
  330. package/src/libs/engine/src/serialization/TextFormat.js.map +0 -1
  331. package/src/libs/engine/src/state/ConnectionStateManager.js.map +0 -1
  332. package/src/libs/engine/src/state/DiagramStore.js.map +0 -1
  333. package/src/libs/engine/src/state/index.js.map +0 -1
  334. package/src/libs/engine/src/sync/awareness.js.map +0 -1
  335. package/src/libs/engine/src/sync/batcher.js.map +0 -1
  336. package/src/libs/engine/src/sync/causal-buffer.js.map +0 -1
  337. package/src/libs/engine/src/sync/index.js.map +0 -1
  338. package/src/libs/engine/src/sync/protocol.js.map +0 -1
  339. package/src/libs/engine/src/sync/sync-adapter.js.map +0 -1
  340. package/src/libs/engine/src/sync/transport.js.map +0 -1
  341. package/src/libs/engine/src/sync/transports/broadcast-channel.js.map +0 -1
  342. package/src/libs/engine/src/sync/transports/memory.js.map +0 -1
  343. package/src/libs/engine/src/sync/transports/unreliable.js.map +0 -1
  344. package/src/libs/engine/src/sync/transports/websocket.js.map +0 -1
  345. package/src/libs/engine/src/sync/version-vector.js.map +0 -1
  346. package/src/libs/engine/src/template-library/common-templates.js.map +0 -1
  347. package/src/libs/engine/src/template-library/data-viz-templates.js.map +0 -1
  348. package/src/libs/engine/src/template-library/erd-templates.js.map +0 -1
  349. package/src/libs/engine/src/template-library/index.js.map +0 -1
  350. package/src/libs/engine/src/template-library/integration.js.map +0 -1
  351. package/src/libs/engine/src/template-library/workflow-templates.js.map +0 -1
  352. package/src/libs/engine/src/templates/NodeFactory.js.map +0 -1
  353. package/src/libs/engine/src/templates/NodeTemplate.js.map +0 -1
  354. package/src/libs/engine/src/templates/TemplateLoader.js.map +0 -1
  355. package/src/libs/engine/src/templates/TemplateRegistry.js.map +0 -1
  356. package/src/libs/engine/src/templates/generated/bpmn/bpmn-business-rule-task.template.js.map +0 -1
  357. package/src/libs/engine/src/templates/generated/bpmn/bpmn-end-event.template.js.map +0 -1
  358. package/src/libs/engine/src/templates/generated/bpmn/bpmn-error-event.template.js.map +0 -1
  359. package/src/libs/engine/src/templates/generated/bpmn/bpmn-exclusive-gateway.template.js.map +0 -1
  360. package/src/libs/engine/src/templates/generated/bpmn/bpmn-inclusive-gateway.template.js.map +0 -1
  361. package/src/libs/engine/src/templates/generated/bpmn/bpmn-intermediate-event.template.js.map +0 -1
  362. package/src/libs/engine/src/templates/generated/bpmn/bpmn-manual-task.template.js.map +0 -1
  363. package/src/libs/engine/src/templates/generated/bpmn/bpmn-message-event.template.js.map +0 -1
  364. package/src/libs/engine/src/templates/generated/bpmn/bpmn-parallel-gateway.template.js.map +0 -1
  365. package/src/libs/engine/src/templates/generated/bpmn/bpmn-script-task.template.js.map +0 -1
  366. package/src/libs/engine/src/templates/generated/bpmn/bpmn-service-task.template.js.map +0 -1
  367. package/src/libs/engine/src/templates/generated/bpmn/bpmn-start-event.template.js.map +0 -1
  368. package/src/libs/engine/src/templates/generated/bpmn/bpmn-task.template.js.map +0 -1
  369. package/src/libs/engine/src/templates/generated/bpmn/bpmn-timer-event.template.js.map +0 -1
  370. package/src/libs/engine/src/templates/generated/bpmn/bpmn-user-task.template.js.map +0 -1
  371. package/src/libs/engine/src/templates/generated/bpmn/index.js.map +0 -1
  372. package/src/libs/engine/src/templates/generated/erd/erd-associative-entity.template.js.map +0 -1
  373. package/src/libs/engine/src/templates/generated/erd/erd-attribute.template.js.map +0 -1
  374. package/src/libs/engine/src/templates/generated/erd/erd-bridge-entity.template.js.map +0 -1
  375. package/src/libs/engine/src/templates/generated/erd/erd-composite-attribute.template.js.map +0 -1
  376. package/src/libs/engine/src/templates/generated/erd/erd-derived-attribute.template.js.map +0 -1
  377. package/src/libs/engine/src/templates/generated/erd/erd-discriminator.template.js.map +0 -1
  378. package/src/libs/engine/src/templates/generated/erd/erd-entity.template.js.map +0 -1
  379. package/src/libs/engine/src/templates/generated/erd/erd-isa.template.js.map +0 -1
  380. package/src/libs/engine/src/templates/generated/erd/erd-key-attribute.template.js.map +0 -1
  381. package/src/libs/engine/src/templates/generated/erd/erd-multivalued-attribute.template.js.map +0 -1
  382. package/src/libs/engine/src/templates/generated/erd/erd-optional-attribute.template.js.map +0 -1
  383. package/src/libs/engine/src/templates/generated/erd/erd-partial-key.template.js.map +0 -1
  384. package/src/libs/engine/src/templates/generated/erd/erd-relationship.template.js.map +0 -1
  385. package/src/libs/engine/src/templates/generated/erd/erd-subtype.template.js.map +0 -1
  386. package/src/libs/engine/src/templates/generated/erd/erd-supertype.template.js.map +0 -1
  387. package/src/libs/engine/src/templates/generated/erd/erd-table.template.js.map +0 -1
  388. package/src/libs/engine/src/templates/generated/erd/erd-view.template.js.map +0 -1
  389. package/src/libs/engine/src/templates/generated/erd/erd-weak-entity.template.js.map +0 -1
  390. package/src/libs/engine/src/templates/generated/erd/erd-weak-relationship.template.js.map +0 -1
  391. package/src/libs/engine/src/templates/generated/erd/index.js.map +0 -1
  392. package/src/libs/engine/src/templates/generated/flowchart/flowchart-connector.template.js.map +0 -1
  393. package/src/libs/engine/src/templates/generated/flowchart/flowchart-data.template.js.map +0 -1
  394. package/src/libs/engine/src/templates/generated/flowchart/flowchart-decision.template.js.map +0 -1
  395. package/src/libs/engine/src/templates/generated/flowchart/flowchart-delay.template.js.map +0 -1
  396. package/src/libs/engine/src/templates/generated/flowchart/flowchart-display.template.js.map +0 -1
  397. package/src/libs/engine/src/templates/generated/flowchart/flowchart-document.template.js.map +0 -1
  398. package/src/libs/engine/src/templates/generated/flowchart/flowchart-manual-input.template.js.map +0 -1
  399. package/src/libs/engine/src/templates/generated/flowchart/flowchart-manual-operation.template.js.map +0 -1
  400. package/src/libs/engine/src/templates/generated/flowchart/flowchart-merge.template.js.map +0 -1
  401. package/src/libs/engine/src/templates/generated/flowchart/flowchart-or.template.js.map +0 -1
  402. package/src/libs/engine/src/templates/generated/flowchart/flowchart-predefined-process.template.js.map +0 -1
  403. package/src/libs/engine/src/templates/generated/flowchart/flowchart-preparation.template.js.map +0 -1
  404. package/src/libs/engine/src/templates/generated/flowchart/flowchart-process.template.js.map +0 -1
  405. package/src/libs/engine/src/templates/generated/flowchart/flowchart-stored-data.template.js.map +0 -1
  406. package/src/libs/engine/src/templates/generated/flowchart/flowchart-summing-junction.template.js.map +0 -1
  407. package/src/libs/engine/src/templates/generated/flowchart/flowchart-terminal.template.js.map +0 -1
  408. package/src/libs/engine/src/templates/generated/flowchart/index.js.map +0 -1
  409. package/src/libs/engine/src/templates/generated/index.js.map +0 -1
  410. package/src/libs/engine/src/templates/generated/register.js.map +0 -1
  411. package/src/libs/engine/src/templates/generated/uml/index.js.map +0 -1
  412. package/src/libs/engine/src/templates/generated/uml/uml-abstract-class.template.js.map +0 -1
  413. package/src/libs/engine/src/templates/generated/uml/uml-activation.template.js.map +0 -1
  414. package/src/libs/engine/src/templates/generated/uml/uml-activity-partition.template.js.map +0 -1
  415. package/src/libs/engine/src/templates/generated/uml/uml-activity.template.js.map +0 -1
  416. package/src/libs/engine/src/templates/generated/uml/uml-actor.template.js.map +0 -1
  417. package/src/libs/engine/src/templates/generated/uml/uml-class.template.js.map +0 -1
  418. package/src/libs/engine/src/templates/generated/uml/uml-collaboration.template.js.map +0 -1
  419. package/src/libs/engine/src/templates/generated/uml/uml-component.template.js.map +0 -1
  420. package/src/libs/engine/src/templates/generated/uml/uml-datatype.template.js.map +0 -1
  421. package/src/libs/engine/src/templates/generated/uml/uml-decision.template.js.map +0 -1
  422. package/src/libs/engine/src/templates/generated/uml/uml-enum.template.js.map +0 -1
  423. package/src/libs/engine/src/templates/generated/uml/uml-final-node.template.js.map +0 -1
  424. package/src/libs/engine/src/templates/generated/uml/uml-final-state.template.js.map +0 -1
  425. package/src/libs/engine/src/templates/generated/uml/uml-fork.template.js.map +0 -1
  426. package/src/libs/engine/src/templates/generated/uml/uml-initial-node.template.js.map +0 -1
  427. package/src/libs/engine/src/templates/generated/uml/uml-initial-state.template.js.map +0 -1
  428. package/src/libs/engine/src/templates/generated/uml/uml-interface.template.js.map +0 -1
  429. package/src/libs/engine/src/templates/generated/uml/uml-join.template.js.map +0 -1
  430. package/src/libs/engine/src/templates/generated/uml/uml-lifeline.template.js.map +0 -1
  431. package/src/libs/engine/src/templates/generated/uml/uml-merge.template.js.map +0 -1
  432. package/src/libs/engine/src/templates/generated/uml/uml-node.template.js.map +0 -1
  433. package/src/libs/engine/src/templates/generated/uml/uml-note.template.js.map +0 -1
  434. package/src/libs/engine/src/templates/generated/uml/uml-object.template.js.map +0 -1
  435. package/src/libs/engine/src/templates/generated/uml/uml-package.template.js.map +0 -1
  436. package/src/libs/engine/src/templates/generated/uml/uml-part.template.js.map +0 -1
  437. package/src/libs/engine/src/templates/generated/uml/uml-port.template.js.map +0 -1
  438. package/src/libs/engine/src/templates/generated/uml/uml-primitive-type.template.js.map +0 -1
  439. package/src/libs/engine/src/templates/generated/uml/uml-signal.template.js.map +0 -1
  440. package/src/libs/engine/src/templates/generated/uml/uml-state.template.js.map +0 -1
  441. package/src/libs/engine/src/templates/generated/uml/uml-use-case.template.js.map +0 -1
  442. package/src/libs/engine/src/templates/index.js.map +0 -1
  443. package/src/libs/engine/src/templates/stencils.js.map +0 -1
  444. package/src/libs/engine/src/types/domain/bpmn.js.map +0 -1
  445. package/src/libs/engine/src/types/domain/erd.js.map +0 -1
  446. package/src/libs/engine/src/types/domain/flowchart.js.map +0 -1
  447. package/src/libs/engine/src/types/domain/index.js.map +0 -1
  448. package/src/libs/engine/src/types/domain/uml.js.map +0 -1
  449. package/src/libs/engine/src/types/event.types.js.map +0 -1
  450. package/src/libs/engine/src/types/geometry.types.js.map +0 -1
  451. package/src/libs/engine/src/types/index.js.map +0 -1
  452. package/src/libs/engine/src/types/layout.types.js.map +0 -1
  453. package/src/libs/engine/src/types/model.types.js.map +0 -1
  454. package/src/libs/engine/src/types/performance.types.js.map +0 -1
  455. package/src/libs/engine/src/types/plugin.types.js.map +0 -1
  456. package/src/libs/engine/src/utils/deep-clone.js.map +0 -1
  457. package/src/libs/engine/src/utils/geometry.js.map +0 -1
  458. package/src/libs/engine/src/utils/id.js.map +0 -1
  459. package/src/libs/engine/src/utils/index.js.map +0 -1
  460. package/src/libs/engine/src/utils/transform.js.map +0 -1
  461. package/src/libs/engine/src/validation/ConnectionGroupValidator.js.map +0 -1
  462. package/src/libs/engine/src/validation/TypeRegistry.js.map +0 -1
  463. package/src/libs/engine/src/validation/ValidationEngine.js.map +0 -1
  464. package/src/libs/engine/src/validation/index.js.map +0 -1
  465. package/src/libs/renderer/src/a11y/diagram-outline.js.map +0 -1
  466. package/src/libs/renderer/src/a11y/focus-containment.js.map +0 -1
  467. package/src/libs/renderer/src/a11y/graph-topology.js.map +0 -1
  468. package/src/libs/renderer/src/a11y/index.js.map +0 -1
  469. package/src/libs/renderer/src/a11y/live-region.js.map +0 -1
  470. package/src/libs/renderer/src/a11y/outline-view.js.map +0 -1
  471. package/src/libs/renderer/src/a11y/reduced-motion.js.map +0 -1
  472. package/src/libs/renderer/src/a11y/semantics.js.map +0 -1
  473. package/src/libs/renderer/src/canvas/canvas-context.js.map +0 -1
  474. package/src/libs/renderer/src/canvas/canvas-renderer.js.map +0 -1
  475. package/src/libs/renderer/src/canvas/dirty-region.js.map +0 -1
  476. package/src/libs/renderer/src/canvas/index.js.map +0 -1
  477. package/src/libs/renderer/src/canvas/path-geometry.js.map +0 -1
  478. package/src/libs/renderer/src/canvas/render-backend.js.map +0 -1
  479. package/src/libs/renderer/src/canvas/style-resolution.js.map +0 -1
  480. package/src/libs/renderer/src/canvas/tier-policy.js.map +0 -1
  481. package/src/libs/renderer/src/canvas/vnode-painter.js.map +0 -1
  482. package/src/libs/renderer/src/comments/comment-overlay.js.map +0 -1
  483. package/src/libs/renderer/src/comments/comment-panel.js.map +0 -1
  484. package/src/libs/renderer/src/comments/comment-pins.js.map +0 -1
  485. package/src/libs/renderer/src/comments/index.js.map +0 -1
  486. package/src/libs/renderer/src/export/assets.js.map +0 -1
  487. package/src/libs/renderer/src/export/batch.js.map +0 -1
  488. package/src/libs/renderer/src/export/bounds.js.map +0 -1
  489. package/src/libs/renderer/src/export/capture-host.js.map +0 -1
  490. package/src/libs/renderer/src/export/custom-nodes.js.map +0 -1
  491. package/src/libs/renderer/src/export/index.js.map +0 -1
  492. package/src/libs/renderer/src/export/node-raster.js.map +0 -1
  493. package/src/libs/renderer/src/export/pagination.js.map +0 -1
  494. package/src/libs/renderer/src/export/pdf/flate.js.map +0 -1
  495. package/src/libs/renderer/src/export/pdf/index.js.map +0 -1
  496. package/src/libs/renderer/src/export/pdf/pdf-export.js.map +0 -1
  497. package/src/libs/renderer/src/export/pdf/pdf-path.js.map +0 -1
  498. package/src/libs/renderer/src/export/pdf/pdf-primitives.js.map +0 -1
  499. package/src/libs/renderer/src/export/pdf/png.js.map +0 -1
  500. package/src/libs/renderer/src/export/raster.js.map +0 -1
  501. package/src/libs/renderer/src/export/round-trip.js.map +0 -1
  502. package/src/libs/renderer/src/export/scope.js.map +0 -1
  503. package/src/libs/renderer/src/export/style-flattener.js.map +0 -1
  504. package/src/libs/renderer/src/export/svg-export.js.map +0 -1
  505. package/src/libs/renderer/src/export/vnode-serializer.js.map +0 -1
  506. package/src/libs/renderer/src/ext/capabilities.js.map +0 -1
  507. package/src/libs/renderer/src/ext/capability-factory.js.map +0 -1
  508. package/src/libs/renderer/src/ext/components/attach.js.map +0 -1
  509. package/src/libs/renderer/src/ext/components/background.js.map +0 -1
  510. package/src/libs/renderer/src/ext/components/controls.js.map +0 -1
  511. package/src/libs/renderer/src/ext/components/minimap.js.map +0 -1
  512. package/src/libs/renderer/src/ext/diagram-registry.js.map +0 -1
  513. package/src/libs/renderer/src/ext/disposable.js.map +0 -1
  514. package/src/libs/renderer/src/ext/extension-host.js.map +0 -1
  515. package/src/libs/renderer/src/ext/index.js.map +0 -1
  516. package/src/libs/renderer/src/ext/link-pipeline.js.map +0 -1
  517. package/src/libs/renderer/src/ext/manifest.js.map +0 -1
  518. package/src/libs/renderer/src/ext/node-component.js.map +0 -1
  519. package/src/libs/renderer/src/ext/plugins-loader.js.map +0 -1
  520. package/src/libs/renderer/src/ext/portal.js.map +0 -1
  521. package/src/libs/renderer/src/ext/public-api.js.map +0 -1
  522. package/src/libs/renderer/src/ext/registry-scope.js.map +0 -1
  523. package/src/libs/renderer/src/ext/tools.js.map +0 -1
  524. package/src/libs/renderer/src/index.js.map +0 -1
  525. package/src/libs/renderer/src/instance/create-diagram.js.map +0 -1
  526. package/src/libs/renderer/src/instance/diagram-instance.js.map +0 -1
  527. package/src/libs/renderer/src/instance/dom-event-binder.js.map +0 -1
  528. package/src/libs/renderer/src/instance/index.js.map +0 -1
  529. package/src/libs/renderer/src/instance/layers.js.map +0 -1
  530. package/src/libs/renderer/src/instance/model-input.js.map +0 -1
  531. package/src/libs/renderer/src/instance/render-scheduler.js.map +0 -1
  532. package/src/libs/renderer/src/instance/wheel-scroll-yield.js.map +0 -1
  533. package/src/libs/renderer/src/interaction/ControlPointEditor.js.map +0 -1
  534. package/src/libs/renderer/src/interaction/WaypointEditor.js.map +0 -1
  535. package/src/libs/renderer/src/interaction/highlighters.js.map +0 -1
  536. package/src/libs/renderer/src/interaction/in-place-editor.js.map +0 -1
  537. package/src/libs/renderer/src/interaction/index.js.map +0 -1
  538. package/src/libs/renderer/src/interaction/ink-overlay.js.map +0 -1
  539. package/src/libs/renderer/src/interaction/interaction-controller.js.map +0 -1
  540. package/src/libs/renderer/src/interaction/keyboard-navigation.js.map +0 -1
  541. package/src/libs/renderer/src/interaction/selection-tools.js.map +0 -1
  542. package/src/libs/renderer/src/interaction/snapping.js.map +0 -1
  543. package/src/libs/renderer/src/interaction/touch-gestures.js.map +0 -1
  544. package/src/libs/renderer/src/interaction/whiteboard-tools.js.map +0 -1
  545. package/src/libs/renderer/src/lazy/host-culling.js.map +0 -1
  546. package/src/libs/renderer/src/lazy/index.js.map +0 -1
  547. package/src/libs/renderer/src/lazy/progressive-mounter.js.map +0 -1
  548. package/src/libs/renderer/src/lazy/types.js.map +0 -1
  549. package/src/libs/renderer/src/lazy/view-lifecycle.js.map +0 -1
  550. package/src/libs/renderer/src/perf/index.js.map +0 -1
  551. package/src/libs/renderer/src/perf/perf-hud.js.map +0 -1
  552. package/src/libs/renderer/src/perf/quality-governor.js.map +0 -1
  553. package/src/libs/renderer/src/platform/index.js.map +0 -1
  554. package/src/libs/renderer/src/platform/platform.js.map +0 -1
  555. package/src/libs/renderer/src/presence/bind-presence.js.map +0 -1
  556. package/src/libs/renderer/src/presence/index.js.map +0 -1
  557. package/src/libs/renderer/src/presence/presence-overlay.js.map +0 -1
  558. package/src/libs/renderer/src/presentation/index.js.map +0 -1
  559. package/src/libs/renderer/src/presentation/presentation.js.map +0 -1
  560. package/src/libs/renderer/src/presentation/viewport-channel.js.map +0 -1
  561. package/src/libs/renderer/src/services/animation-lifecycle.js.map +0 -1
  562. package/src/libs/renderer/src/services/animation-performance.service.js.map +0 -1
  563. package/src/libs/renderer/src/services/animation-sequencer.js.map +0 -1
  564. package/src/libs/renderer/src/services/animation.service.js.map +0 -1
  565. package/src/libs/renderer/src/services/custom-animation-registry.js.map +0 -1
  566. package/src/libs/renderer/src/ssr/index.js.map +0 -1
  567. package/src/libs/renderer/src/ssr/render-to-static.js.map +0 -1
  568. package/src/libs/renderer/src/svg/ArrowRenderer.js.map +0 -1
  569. package/src/libs/renderer/src/svg/JumpPointDetector.js.map +0 -1
  570. package/src/libs/renderer/src/svg/JumpPointRenderer.js.map +0 -1
  571. package/src/libs/renderer/src/svg/LabelRenderer.js.map +0 -1
  572. package/src/libs/renderer/src/svg/auto-size.js.map +0 -1
  573. package/src/libs/renderer/src/svg/channel-nudging.js.map +0 -1
  574. package/src/libs/renderer/src/svg/edge-optimizer.js.map +0 -1
  575. package/src/libs/renderer/src/svg/edge-templates.js.map +0 -1
  576. package/src/libs/renderer/src/svg/html-node.js.map +0 -1
  577. package/src/libs/renderer/src/svg/index.js.map +0 -1
  578. package/src/libs/renderer/src/svg/link-fanout.js.map +0 -1
  579. package/src/libs/renderer/src/svg/link-hit-test.js.map +0 -1
  580. package/src/libs/renderer/src/svg/motion-tracker.js.map +0 -1
  581. package/src/libs/renderer/src/svg/node-sizing.js.map +0 -1
  582. package/src/libs/renderer/src/svg/node-toolbar.js.map +0 -1
  583. package/src/libs/renderer/src/svg/notation-shapes.js.map +0 -1
  584. package/src/libs/renderer/src/svg/paint-servers.js.map +0 -1
  585. package/src/libs/renderer/src/svg/panel.js.map +0 -1
  586. package/src/libs/renderer/src/svg/path-outline.js.map +0 -1
  587. package/src/libs/renderer/src/svg/port-glyph.js.map +0 -1
  588. package/src/libs/renderer/src/svg/port-label.js.map +0 -1
  589. package/src/libs/renderer/src/svg/port-layout.js.map +0 -1
  590. package/src/libs/renderer/src/svg/port-positioning.js.map +0 -1
  591. package/src/libs/renderer/src/svg/port-spots.js.map +0 -1
  592. package/src/libs/renderer/src/svg/route-memo.js.map +0 -1
  593. package/src/libs/renderer/src/svg/route-solver-bridge.js.map +0 -1
  594. package/src/libs/renderer/src/svg/shape-registry.js.map +0 -1
  595. package/src/libs/renderer/src/svg/stroke-layer.js.map +0 -1
  596. package/src/libs/renderer/src/svg/svg-renderer.js.map +0 -1
  597. package/src/libs/renderer/src/svg/text-block.js.map +0 -1
  598. package/src/libs/renderer/src/themes/color-mode.js.map +0 -1
  599. package/src/libs/renderer/src/themes/contrast.js.map +0 -1
  600. package/src/libs/renderer/src/themes/default-dark-theme.js.map +0 -1
  601. package/src/libs/renderer/src/themes/default-light-theme.js.map +0 -1
  602. package/src/libs/renderer/src/themes/default-theme-set.js.map +0 -1
  603. package/src/libs/renderer/src/themes/high-contrast-theme.js.map +0 -1
  604. package/src/libs/renderer/src/themes/index.js.map +0 -1
  605. package/src/libs/renderer/src/themes/style-cascade.js.map +0 -1
  606. package/src/libs/renderer/src/themes/style-registry.js.map +0 -1
  607. package/src/libs/renderer/src/themes/theme-a11y.js.map +0 -1
  608. package/src/libs/renderer/src/themes/theme-css.js.map +0 -1
  609. package/src/libs/renderer/src/themes/theme-ref.js.map +0 -1
  610. package/src/libs/renderer/src/themes/theme-vars.js.map +0 -1
  611. package/src/libs/renderer/src/themes/token-bridge.js.map +0 -1
  612. package/src/libs/renderer/src/types/geometry.types.js.map +0 -1
  613. package/src/libs/renderer/src/types/index.js.map +0 -1
  614. package/src/libs/renderer/src/types/property-schema/conditions.js.map +0 -1
  615. package/src/libs/renderer/src/types/property-schema/editor-types.js.map +0 -1
  616. package/src/libs/renderer/src/types/property-schema/groups.js.map +0 -1
  617. package/src/libs/renderer/src/types/property-schema/index.js.map +0 -1
  618. package/src/libs/renderer/src/types/property-schema/property-definition.js.map +0 -1
  619. package/src/libs/renderer/src/types/property-schema/schema.js.map +0 -1
  620. package/src/libs/renderer/src/types/property-schema/validation.js.map +0 -1
  621. package/src/libs/renderer/src/types/renderer.interface.js.map +0 -1
  622. package/src/libs/renderer/src/types/theme.types.js.map +0 -1
  623. package/src/libs/renderer/src/types/vnode.types.js.map +0 -1
  624. package/src/libs/renderer/src/utils/animation-presets.js.map +0 -1
  625. package/src/libs/renderer/src/utils/animation-priority.js.map +0 -1
  626. package/src/libs/renderer/src/utils/animation-utils.js.map +0 -1
  627. package/src/libs/renderer/src/utils/lru-cache.js.map +0 -1
  628. package/src/libs/renderer/src/viewport/index.js.map +0 -1
  629. package/src/libs/renderer/src/viewport/viewport-controller.js.map +0 -1
  630. package/src/libs/renderer/src/vnode/container-id-generator.js.map +0 -1
  631. package/src/libs/renderer/src/vnode/foreign-object.js.map +0 -1
  632. package/src/libs/renderer/src/vnode/index.js.map +0 -1
  633. package/src/libs/renderer/src/vnode/patch.js.map +0 -1
  634. package/src/reachability.spec.ts +0 -173
  635. package/tsconfig.esm.json +0 -9
  636. package/tsconfig.json +0 -24
  637. package/tsconfig.lib.json +0 -10
  638. package/tsconfig.spec.json +0 -14
@@ -1,565 +0,0 @@
1
- /**
2
- * `fromDocument()` — the LOAD front door.
3
- *
4
- * Saving already worked: `DiagramSerializer.serialize()` produces a document
5
- * that round-trips byte-identically. Loading did not. `deserialize()` hands back
6
- * a `DiagramModel` and there was no way to get one onto a screen — every option
7
- * on `CreateDiagramOptions` wants `nodes`/`edges` specs, so a developer had to
8
- * hand-convert model nodes back into `NodeInput[]` and then re-discover, on
9
- * their own, that the kits' post-render wiring never ran.
10
- *
11
- * ---------------------------------------------------------------------------
12
- * WHY EVERY PAINT TOOTH HERE COMPARES AGAINST THE ORIGINAL
13
- * ---------------------------------------------------------------------------
14
- * "The loaded model has 3 nodes" proves nothing about painting — an empty
15
- * `<g>` per node satisfies it. "The container has text" is worse: one working
16
- * node makes it green while the other two are blank.
17
- *
18
- * So the unit of comparison is {@link paintedText}: a map from NODE ID to the
19
- * text that node actually painted, asserted `toEqual` against the SAME map from
20
- * the original render. A blank node, a missing node, a node painting somebody
21
- * else's content and a wholesale failure to paint are all separately visible —
22
- * and none of them can be papered over by a sibling.
23
- *
24
- * Every such assertion is paired with a guard on the ORIGINAL's key set, because
25
- * `expect({}).toEqual({})` is the vacuous pass this whole file exists to avoid.
26
- *
27
- * ---------------------------------------------------------------------------
28
- * WHY THE HOST IS FAKED TO A SIZE
29
- * ---------------------------------------------------------------------------
30
- * jsdom computes no layout, so an unsized container reports a 0x0 viewport and
31
- * the renderer CULLS every node — the links layer paints and `nodes-layer` comes
32
- * out empty. Measured, not assumed: without the stubs in {@link sizedHost} the
33
- * ORIGINAL render paints nothing either, and every tooth below would pass on a
34
- * pair of blank screens.
35
- */
36
- import { DiagramSerializer } from '@grafloria/engine';
37
- import type { DiagramInstance } from '@grafloria/renderer';
38
- import { render } from './grafloria';
39
- import { registerNodeType, unregisterNodeType } from './node-type-registry';
40
- import { erDiagram, umlDiagram } from './diagram-kit';
41
- import { dashboard } from './dashboard-kit';
42
- import { fromDocument } from './load';
43
-
44
- /** A container the renderer will treat as a real 1200x800 viewport. */
45
- function sizedHost(): HTMLElement {
46
- const el = document.createElement('div');
47
- Object.defineProperty(el, 'clientWidth', { value: 1200 });
48
- Object.defineProperty(el, 'clientHeight', { value: 800 });
49
- el.getBoundingClientRect = () =>
50
- ({ x: 0, y: 0, top: 0, left: 0, right: 1200, bottom: 800, width: 1200, height: 800 }) as DOMRect;
51
- document.body.appendChild(el);
52
- return el;
53
- }
54
-
55
- /** The saved document, as a host would persist it: JSON on the wire. */
56
- function save(api: DiagramInstance): string {
57
- return JSON.stringify(new DiagramSerializer().serialize(api.getModel()));
58
- }
59
-
60
- /**
61
- * What each node PAINTED, keyed by node id.
62
- *
63
- * Both node surfaces carry `data-node-id`: the SVG `<g>` (ER/UML cards paint
64
- * into its `<foreignObject>`) and the html-layer host div (dashboard widgets).
65
- * A dashboard node has BOTH, and only one of them holds the content — so the
66
- * longer text wins rather than document order, which would silently prefer the
67
- * empty `<g>`.
68
- */
69
- function paintedText(host: HTMLElement): Record<string, string> {
70
- const out: Record<string, string> = {};
71
- for (const el of Array.from(host.querySelectorAll('[data-node-id]'))) {
72
- const id = el.getAttribute('data-node-id');
73
- if (!id) continue;
74
- const text = (el.textContent ?? '').trim();
75
- if (text.length > (out[id] ?? '').length) out[id] = text;
76
- }
77
- return out;
78
- }
79
-
80
- function mount<T>(spec: T): { api: DiagramInstance; host: HTMLElement; spec: T } {
81
- const host = sizedHost();
82
- const api = render(spec as never, host);
83
- api.renderNow();
84
- return { api, host, spec };
85
- }
86
-
87
- const ER_SPEC = () =>
88
- erDiagram({
89
- editable: true,
90
- entities: [
91
- {
92
- id: 'CUSTOMERS',
93
- name: 'Customers',
94
- position: { x: 80, y: 360 },
95
- columns: [
96
- { name: 'id', type: 'int', pk: true },
97
- { name: 'email', type: 'varchar' },
98
- ],
99
- },
100
- {
101
- id: 'ORDERS',
102
- name: 'Orders',
103
- position: { x: 500, y: 150 },
104
- columns: [
105
- { name: 'id', type: 'int', pk: true },
106
- { name: 'customer_id', type: 'int', fk: true },
107
- ],
108
- },
109
- ],
110
- relationships: [
111
- { from: 'ORDERS.customer_id', to: 'CUSTOMERS.id', id: 'fk_customer', fromSide: 'left', toSide: 'right' },
112
- ],
113
- });
114
-
115
- const UML_SPEC = () =>
116
- umlDiagram({
117
- classes: [
118
- { id: 'Shape', abstract: true, position: { x: 60, y: 40 }, attributes: ['# x: float'], methods: ['+ area(): float'] },
119
- { id: 'Circle', position: { x: 60, y: 300 }, attributes: ['- r: float'], methods: ['+ area(): float'] },
120
- ],
121
- relationships: [{ from: 'Circle', to: 'Shape', kind: 'inheritance' }],
122
- });
123
-
124
- const DASH_SPEC = () =>
125
- dashboard({
126
- columns: 12,
127
- views: [
128
- {
129
- id: 'main',
130
- widgets: [
131
- { id: 'k1', kind: 'kpi', span: 3, rows: 1, title: 'Total revenue', data: { label: 'rev', value: '$6.81M' } },
132
- { id: 't1', kind: 'table', span: 9, rows: 2, title: 'Top reps', data: { columns: ['Rep'], rows: [['A. Farouk']] } },
133
- ],
134
- },
135
- ],
136
- });
137
-
138
- // ---------------------------------------------------------------------------
139
- // ER
140
- // ---------------------------------------------------------------------------
141
-
142
- describe('fromDocument — ER', () => {
143
- it('paints a loaded ER document exactly as the original painted it', () => {
144
- const original = mount(ER_SPEC());
145
- const before = paintedText(original.host);
146
- // The guard that stops this whole tooth from passing on two blank screens.
147
- expect(Object.keys(before).sort()).toEqual(['CUSTOMERS', 'ORDERS']);
148
- expect(before['CUSTOMERS']).toContain('email');
149
-
150
- const loaded = mount(fromDocument(save(original.api)));
151
- expect(paintedText(loaded.host)).toEqual(before);
152
- });
153
-
154
- it('keeps the field-level FK port and the edge pinned to it', () => {
155
- const original = mount(ER_SPEC());
156
- const link = original.api.getModel().getLink('fk_customer');
157
- expect(link).toBeDefined();
158
- // A FIELD port, not a side port: this is what "the edge is glued to the row"
159
- // means, and a loader that rebuilt nodes from scratch would give it a
160
- // default side port and quietly reroute the edge.
161
- expect(link!.sourcePortId).toContain('customer_id');
162
-
163
- const loaded = mount(fromDocument(save(original.api)));
164
- const reloaded = loaded.api.getModel().getLink('fk_customer');
165
- expect(reloaded).toBeDefined();
166
- expect(reloaded!.sourcePortId).toBe(link!.sourcePortId);
167
- expect(reloaded!.targetPortId).toBe(link!.targetPortId);
168
- // …and the port it names still exists on the node that owns it.
169
- expect(loaded.api.getModel().getNode('ORDERS')!.getPort(link!.sourcePortId)).toBeDefined();
170
- });
171
-
172
- it('restores row selection on a loaded ERD', () => {
173
- const original = mount(ER_SPEC());
174
- const loaded = mount(fromDocument(save(original.api)));
175
-
176
- const events: Array<{ selected?: { name?: string } }> = [];
177
- loaded.host.addEventListener('axk:row-select', (e) => events.push((e as CustomEvent).detail));
178
-
179
- const rows = Array.from(loaded.host.querySelectorAll('[data-node-id="CUSTOMERS"] .axk-row'));
180
- const emailRow = rows.find((r) => (r.textContent ?? '').includes('email'));
181
- expect(emailRow).toBeDefined();
182
-
183
- emailRow!.querySelector('.axk-col')!.dispatchEvent(new MouseEvent('click', { bubbles: true }));
184
-
185
- expect(emailRow!.classList.contains('axk-row-selected')).toBe(true);
186
- expect(events.at(-1)?.selected?.name).toBe('email');
187
- });
188
-
189
- it('restores in-canvas editing on a loaded ERD', () => {
190
- const original = mount(ER_SPEC());
191
- const loaded = mount(fromDocument(save(original.api)));
192
-
193
- loaded.host
194
- .querySelector('[data-node-id="CUSTOMERS"] .axk-entity-head')!
195
- .dispatchEvent(new MouseEvent('dblclick', { bubbles: true }));
196
-
197
- const input = loaded.host.querySelector('.axk-edit-input') as HTMLInputElement | null;
198
- expect(input).toBeTruthy();
199
- // Prefilled from the LOADED model's kitEntity — an editor over stale or
200
- // absent data would open blank.
201
- expect(input!.value).toBe('Customers');
202
- });
203
-
204
- it('does NOT re-bind row selection when the document opted out of it', () => {
205
- // The opt-out is a KIT OPTION, not model state, so it only survives if the
206
- // builder stamps it. Without the stamp a read-only schema silently becomes
207
- // clickable on reload — a behaviour change that no pixel would show.
208
- const original = mount(
209
- erDiagram({
210
- rowSelection: false,
211
- entities: [{ id: 'T', columns: [{ name: 'id', type: 'int' }] }],
212
- })
213
- );
214
- const loaded = mount(fromDocument(save(original.api)));
215
-
216
- const row = loaded.host.querySelector('[data-node-id="T"] .axk-row')!;
217
- row.querySelector('.axk-col')!.dispatchEvent(new MouseEvent('click', { bubbles: true }));
218
- expect(row.classList.contains('axk-row-selected')).toBe(false);
219
-
220
- // …and the control: the SAME diagram with the default does select, so this
221
- // tooth cannot pass merely because clicking never selects anything.
222
- const on = mount(
223
- fromDocument(
224
- save(mount(erDiagram({ entities: [{ id: 'T', columns: [{ name: 'id', type: 'int' }] }] })).api)
225
- )
226
- );
227
- const onRow = on.host.querySelector('[data-node-id="T"] .axk-row')!;
228
- onRow.querySelector('.axk-col')!.dispatchEvent(new MouseEvent('click', { bubbles: true }));
229
- expect(onRow.classList.contains('axk-row-selected')).toBe(true);
230
- });
231
-
232
- it('leaves a document inert when loaded with interactive:false', () => {
233
- const original = mount(ER_SPEC());
234
- const loaded = mount(fromDocument(save(original.api), { interactive: false }));
235
-
236
- // It still PAINTS — a read-only viewer is a viewer, not a blank page.
237
- expect(Object.keys(paintedText(loaded.host)).sort()).toEqual(['CUSTOMERS', 'ORDERS']);
238
-
239
- const row = loaded.host.querySelector('[data-node-id="CUSTOMERS"] .axk-row')!;
240
- row.querySelector('.axk-col')!.dispatchEvent(new MouseEvent('click', { bubbles: true }));
241
- expect(row.classList.contains('axk-row-selected')).toBe(false);
242
- });
243
-
244
- it('suppresses node resize handles on loaded ER cards, as the builder does', () => {
245
- const original = mount(ER_SPEC());
246
- expect(original.api.getModel().getNode('CUSTOMERS')!.behavior.resizable).toBe(false);
247
-
248
- const loaded = mount(fromDocument(save(original.api)));
249
- expect(loaded.api.getModel().getNode('CUSTOMERS')!.behavior.resizable).toBe(false);
250
- });
251
- });
252
-
253
- // ---------------------------------------------------------------------------
254
- // UML
255
- // ---------------------------------------------------------------------------
256
-
257
- describe('fromDocument — UML', () => {
258
- it('paints a loaded UML document exactly as the original painted it', () => {
259
- const original = mount(UML_SPEC());
260
- const before = paintedText(original.host);
261
- expect(Object.keys(before).sort()).toEqual(['Circle', 'Shape']);
262
- expect(before['Shape']).toContain('area(): float');
263
-
264
- const loaded = mount(fromDocument(save(original.api)));
265
- expect(paintedText(loaded.host)).toEqual(before);
266
- });
267
-
268
- it('honours the row-selection opt-out on a loaded class diagram too', () => {
269
- const original = mount(
270
- umlDiagram({ rowSelection: false, classes: [{ id: 'Shape', methods: ['+ area(): float'] }] })
271
- );
272
- const loaded = mount(fromDocument(save(original.api)));
273
- const member = loaded.host.querySelector('[data-node-id="Shape"] .axk-member')!;
274
- member.dispatchEvent(new MouseEvent('click', { bubbles: true }));
275
- expect(member.classList.contains('axk-row-selected')).toBe(false);
276
- });
277
-
278
- it('restores member selection on a loaded class diagram', () => {
279
- const original = mount(UML_SPEC());
280
- const loaded = mount(fromDocument(save(original.api)));
281
-
282
- const member = Array.from(loaded.host.querySelectorAll('[data-node-id="Shape"] .axk-member')).find((m) =>
283
- (m.textContent ?? '').includes('area')
284
- );
285
- expect(member).toBeDefined();
286
- member!.dispatchEvent(new MouseEvent('click', { bubbles: true }));
287
- expect(member!.classList.contains('axk-row-selected')).toBe(true);
288
- });
289
- });
290
-
291
- // ---------------------------------------------------------------------------
292
- // Dashboard
293
- // ---------------------------------------------------------------------------
294
-
295
- describe('fromDocument — dashboard', () => {
296
- it('paints every widget of a loaded board exactly as the original did', () => {
297
- const original = mount(DASH_SPEC());
298
- const before = paintedText(original.host);
299
- expect(Object.keys(before).sort()).toEqual(['k1', 't1']);
300
- // Titles come from the widget spec, values from its data — both must survive.
301
- expect(before['k1']).toContain('Total revenue');
302
- expect(before['k1']).toContain('$6.81M');
303
-
304
- const loaded = mount(fromDocument(save(original.api)));
305
- expect(paintedText(loaded.host)).toEqual(before);
306
- });
307
-
308
- it('restores the board group with its members and frame chrome', () => {
309
- const original = mount(DASH_SPEC());
310
- const shape = (m: { getGroups(): Array<{ id: string; getMetadata(k: string): unknown; members: Set<string> }> }) =>
311
- m.getGroups().map((g) => ({ id: g.id, chrome: g.getMetadata('frameChrome'), members: Array.from(g.members).sort() }));
312
-
313
- const before = shape(original.api.getModel() as never);
314
- expect(before).toEqual([{ id: 'main', chrome: 'none', members: ['k1', 't1'] }]);
315
-
316
- const loaded = mount(fromDocument(save(original.api)));
317
- expect(shape(loaded.api.getModel() as never)).toEqual(before);
318
- });
319
-
320
- it('re-attaches the grid binder, so a loaded board is still a live board', () => {
321
- const original = mount(DASH_SPEC());
322
- const originalBinder = original.spec.handle.binderOf('main');
323
- const originalCells = ['k1', 't1'].map((id) => [id, originalBinder?.cellOf(id)]);
324
- expect(originalCells[0]![1]).toEqual({ x: 0, y: 0, w: 3, h: 1 });
325
-
326
- const spec = fromDocument(save(original.api));
327
- const loaded = mount(spec);
328
- // Without a re-attached binder this map is EMPTY — the board would be a
329
- // picture of a dashboard, not a dashboard.
330
- expect(Array.from(spec.boards.keys())).toEqual(['main']);
331
- const binder = spec.boards.get('main')!;
332
- expect(['k1', 't1'].map((id) => [id, binder.cellOf(id)])).toEqual(originalCells);
333
- expect(loaded.api.getModel().getGroup('main')).toBeDefined();
334
- });
335
-
336
- it('carries the title of a widget added at RUNTIME, not just a declared one', () => {
337
- // `addWidget()` builds its node through buildWidgetNode(), a SECOND path to
338
- // the same metadata. The declarative literal and this one drifted before
339
- // (that is what the comment on buildWidgetNode warns about), and a tooth on
340
- // only one of them is exactly how the drift survived.
341
- const original = mount(DASH_SPEC());
342
- original.spec.handle.addWidget({ id: 'added', kind: 'kpi', title: 'Added later', data: { value: '42' } });
343
- original.api.renderNow();
344
-
345
- const loaded = mount(fromDocument(save(original.api)));
346
- expect(paintedText(loaded.host)['added']).toContain('Added later');
347
- });
348
-
349
- it('falls through to the node-type registry for a node the kit did not stamp', () => {
350
- // The kit claims nodes by ITS OWN metadata, never by the type name. A plain
351
- // `type: 'widget'` node from an unrelated diagram must reach the registry —
352
- // otherwise `fromDocument` would paint dashboard chrome over somebody
353
- // else's node purely because the strings matched.
354
- const foreign = mount({
355
- nodes: [{ id: 'foreign', type: 'widget', custom: true, position: { x: 40, y: 40 }, size: { width: 120, height: 60 } }],
356
- });
357
-
358
- registerNodeType('widget', (node, host) => {
359
- host.textContent = `registry:${node.id}`;
360
- });
361
- try {
362
- const loaded = mount(fromDocument(save(foreign.api)));
363
- expect(paintedText(loaded.host)['foreign']).toBe('registry:foreign');
364
-
365
- // …and the control: a node the kit DID stamp is painted by the kit, not
366
- // handed to the registry, even though its type is the same string.
367
- const board = mount(DASH_SPEC());
368
- const reloaded = mount(fromDocument(save(board.api)));
369
- expect(paintedText(reloaded.host)['k1']).toContain('Total revenue');
370
- expect(paintedText(reloaded.host)['k1']).not.toContain('registry:');
371
- } finally {
372
- unregisterNodeType('widget');
373
- }
374
- });
375
-
376
- it('honours a caller-supplied widget painter over the kit default', () => {
377
- const original = mount(DASH_SPEC());
378
- const seen: Array<{ id: string; kind?: string; title?: string }> = [];
379
- mount(
380
- fromDocument(save(original.api), {
381
- renderWidget: (w, host) => {
382
- seen.push({ id: w.id, kind: w.kind, title: w.title });
383
- host.textContent = `custom:${w.id}`;
384
- },
385
- })
386
- );
387
- // The kit rebuilt the FULL widget spec from the document, not just its id.
388
- expect(seen.sort((a, b) => a.id.localeCompare(b.id))).toEqual([
389
- { id: 'k1', kind: 'kpi', title: 'Total revenue' },
390
- { id: 't1', kind: 'table', title: 'Top reps' },
391
- ]);
392
- });
393
- });
394
-
395
- // ---------------------------------------------------------------------------
396
- // Dashboard — the reloaded HANDLE (parity with dashboard())
397
- //
398
- // A document-level load used to return only the low-level `boards` grid binders.
399
- // A reloaded dashboard must also get the SAME `DashboardHandle` dashboard()
400
- // returns — addWidget/showView/setSizing/toJSON and the rest — built by the one
401
- // shared builder, so it cannot drift from the authoring handle.
402
- //
403
- // WEAK-TEETH GUARDS: "a handle exists" proves nothing, so every op is DRIVEN and
404
- // the board is asserted to have actually changed. addWidget uses a UNIQUE id and
405
- // title and asserts THAT text painted on the reloaded host (not merely that some
406
- // widget is present). toJSON is round-tripped back through dashboard() and the
407
- // rebuilt board's cells/sizing are compared, and against a fresh dashboard()
408
- // doing the same ops.
409
- // ---------------------------------------------------------------------------
410
-
411
- describe('fromDocument — dashboard handle', () => {
412
- it('reads the live cells of the reloaded board through widget()', () => {
413
- const original = mount(DASH_SPEC());
414
- const spec = fromDocument(save(original.api));
415
- mount(spec);
416
-
417
- expect(spec.handle.views).toEqual(['main']);
418
- expect(spec.handle.activeView).toBe('main');
419
- // The exact cells the ORIGINAL authored — read off the re-attached binder,
420
- // not the authored literal (which the reload never sees).
421
- expect(spec.handle.widget('k1')!.cell).toEqual({ x: 0, y: 0, w: 3, h: 1 });
422
- expect(spec.handle.widget('t1')!.cell).toEqual({ x: 3, y: 0, w: 9, h: 2 });
423
- expect(spec.handle.widget('nope')).toBeUndefined();
424
- });
425
-
426
- it('addWidget() on the reloaded handle mounts AND paints a brand-new widget', () => {
427
- const original = mount(DASH_SPEC());
428
- const spec = fromDocument(save(original.api));
429
- const loaded = mount(spec);
430
-
431
- // A UNIQUE id+title: "a widget appeared" cannot be satisfied by k1/t1 that
432
- // were already there — only by the one this call created.
433
- const w = spec.handle.addWidget({
434
- id: 'reloaded-add',
435
- kind: 'kpi',
436
- title: 'Reloaded Add',
437
- span: 3,
438
- rows: 1,
439
- data: { value: '77' },
440
- });
441
- expect(w).toBeDefined();
442
- loaded.api.renderNow();
443
-
444
- const model = loaded.api.getModel();
445
- expect(model.getNode('reloaded-add')).toBeDefined();
446
- expect([...(model.getGroup('main')!.members ?? [])]).toContain('reloaded-add');
447
- // The load-bearing assertion: it actually PAINTED its own content on the
448
- // reloaded board, so the widget is live, not a detached node.
449
- const painted = paintedText(loaded.host)['reloaded-add'] ?? '';
450
- expect(painted).toContain('Reloaded Add');
451
- expect(painted).toContain('77');
452
- });
453
-
454
- it('update() repaints an EXISTING widget on the reloaded board (host was captured)', () => {
455
- // Proves the host-capture rule in renderCustomNode: without it the widget
456
- // handle cannot find the mounted host and update() paints nothing.
457
- const original = mount(DASH_SPEC());
458
- const spec = fromDocument(save(original.api));
459
- const loaded = mount(spec);
460
-
461
- expect(paintedText(loaded.host)['k1']).toContain('$6.81M');
462
- spec.handle.widget('k1')!.update({ data: { label: 'rev', value: 'CHANGED-9X' } });
463
- loaded.api.renderNow();
464
- expect(paintedText(loaded.host)['k1']).toContain('CHANGED-9X');
465
- expect(paintedText(loaded.host)['k1']).not.toContain('$6.81M');
466
- });
467
-
468
- it('setSizing changes the reloaded board and toJSON round-trips it back into dashboard()', () => {
469
- const original = mount(DASH_SPEC());
470
- const spec = fromDocument(save(original.api));
471
- mount(spec);
472
-
473
- expect(spec.handle.getSizing()).toBe('fit');
474
- spec.handle.setSizing('grow');
475
- expect(spec.handle.getSizing()).toBe('grow');
476
-
477
- const saved = spec.handle.toJSON();
478
- expect(saved.sizing).toBe('grow');
479
- expect(saved.views.map((v) => v.id)).toEqual(['main']);
480
- expect(saved.views[0].widgets.map((x) => x.id).sort()).toEqual(['k1', 't1']);
481
- // Cells survive the reload → edit → save round-trip.
482
- expect(saved.views[0].widgets.find((x) => x.id === 't1')).toMatchObject({
483
- x: 3,
484
- y: 0,
485
- span: 9,
486
- rows: 2,
487
- });
488
-
489
- // TRUE PARITY: the reloaded handle's toJSON IS dashboard() input, and the
490
- // board it rebuilds matches a fresh dashboard() authored the same way.
491
- const rebuilt = mount(dashboard(saved));
492
- expect(rebuilt.spec.handle.getSizing()).toBe('grow');
493
- expect(rebuilt.spec.handle.widget('t1')!.cell).toEqual({ x: 3, y: 0, w: 9, h: 2 });
494
- expect(rebuilt.spec.handle.widget('k1')!.cell).toEqual({ x: 0, y: 0, w: 3, h: 1 });
495
- });
496
-
497
- it('showView parks the inactive board on a reloaded TABBED dashboard', () => {
498
- const original = mount(
499
- dashboard({
500
- columns: 12,
501
- views: [
502
- { id: 'a', name: 'A', widgets: [{ id: 'wa', kind: 'kpi', span: 3, title: 'Alpha' }] },
503
- { id: 'b', name: 'B', widgets: [{ id: 'wb', kind: 'kpi', span: 3, title: 'Beta' }] },
504
- ],
505
- })
506
- );
507
- // Save with the SECOND view active (not the first), so the reload's active
508
- // view can only be right if it is read from the saved group positions — a
509
- // "just pick views[0]" shortcut would answer 'a' and fail here.
510
- original.spec.handle.showView('b');
511
- original.api.renderNow();
512
-
513
- const spec = fromDocument(save(original.api));
514
- const loaded = mount(spec);
515
-
516
- expect(spec.handle.views).toEqual(['a', 'b']);
517
- expect(spec.handle.activeView).toBe('b');
518
- // …and the parked view really is off-camera on the reload.
519
- expect(loaded.api.getModel().getGroup('a')!.position.x).toBeLessThan(-1000);
520
-
521
- spec.handle.showView('a');
522
- expect(spec.handle.activeView).toBe('a');
523
- expect(loaded.api.getModel().getGroup('a')!.position.x).toBe(0);
524
- expect(loaded.api.getModel().getGroup('b')!.position.x).toBeLessThan(-1000);
525
- });
526
-
527
- it('returns an INERT handle for a non-dashboard document', () => {
528
- // An ER doc has no board; the honest answer is an empty handle, not a
529
- // half-wired one that pretends CUSTOMERS is a widget.
530
- const original = mount(ER_SPEC());
531
- const spec = fromDocument(save(original.api));
532
- mount(spec);
533
- expect(spec.handle.views).toEqual([]);
534
- expect(spec.handle.widget('CUSTOMERS')).toBeUndefined();
535
- });
536
- });
537
-
538
- // ---------------------------------------------------------------------------
539
- // The front door itself
540
- // ---------------------------------------------------------------------------
541
-
542
- describe('fromDocument — the front door', () => {
543
- it('accepts the parsed object as well as the JSON string', () => {
544
- const original = mount(ER_SPEC());
545
- const doc = new DiagramSerializer().serialize(original.api.getModel());
546
-
547
- const fromObject = mount(fromDocument(doc));
548
- const fromString = mount(fromDocument(JSON.stringify(doc)));
549
- expect(paintedText(fromObject.host)).toEqual(paintedText(fromString.host));
550
- expect(Object.keys(paintedText(fromObject.host)).sort()).toEqual(['CUSTOMERS', 'ORDERS']);
551
- });
552
-
553
- it('accepts the portable envelope form', () => {
554
- const original = mount(ER_SPEC());
555
- const envelope = new DiagramSerializer().serializeEnvelope(original.api.getModel());
556
- const loaded = mount(fromDocument(envelope));
557
- expect(paintedText(loaded.host)).toEqual(paintedText(original.host));
558
- });
559
-
560
- it('exposes the loaded model without requiring a render', () => {
561
- const original = mount(ER_SPEC());
562
- const spec = fromDocument(save(original.api));
563
- expect(spec.model.getNodes().map((n) => n.id).sort()).toEqual(['CUSTOMERS', 'ORDERS']);
564
- });
565
- });