@openchoreo/cell-diagram 1.2.0-rc.1

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 (285) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +115 -0
  3. package/dist/Diagram.esm.js +55 -0
  4. package/dist/Diagram.esm.js.map +1 -0
  5. package/dist/components/Cell/CellLink/CellLinkFactory.esm.js +19 -0
  6. package/dist/components/Cell/CellLink/CellLinkFactory.esm.js.map +1 -0
  7. package/dist/components/Cell/CellLink/CellLinkModel.esm.js +59 -0
  8. package/dist/components/Cell/CellLink/CellLinkModel.esm.js.map +1 -0
  9. package/dist/components/Cell/CellLink/CellLinkWidget.esm.js +217 -0
  10. package/dist/components/Cell/CellLink/CellLinkWidget.esm.js.map +1 -0
  11. package/dist/components/Cell/CellNode/CellFactory.esm.js +19 -0
  12. package/dist/components/Cell/CellNode/CellFactory.esm.js.map +1 -0
  13. package/dist/components/Cell/CellNode/CellModel.esm.js +73 -0
  14. package/dist/components/Cell/CellNode/CellModel.esm.js.map +1 -0
  15. package/dist/components/Cell/CellNode/CellWidget.esm.js +166 -0
  16. package/dist/components/Cell/CellNode/CellWidget.esm.js.map +1 -0
  17. package/dist/components/Cell/CellNode/styles.esm.js +149 -0
  18. package/dist/components/Cell/CellNode/styles.esm.js.map +1 -0
  19. package/dist/components/Cell/CellPort/CellPortFactory.esm.js +17 -0
  20. package/dist/components/Cell/CellPort/CellPortFactory.esm.js.map +1 -0
  21. package/dist/components/Cell/CellPort/CellPortModel.esm.js +18 -0
  22. package/dist/components/Cell/CellPort/CellPortModel.esm.js.map +1 -0
  23. package/dist/components/Cell/CellPort/CellPortWidget.esm.js +24 -0
  24. package/dist/components/Cell/CellPort/CellPortWidget.esm.js.map +1 -0
  25. package/dist/components/Cell/CellPort/styles.esm.js +13 -0
  26. package/dist/components/Cell/CellPort/styles.esm.js.map +1 -0
  27. package/dist/components/Cell/EmptyNode/EmptyFactory.esm.js +20 -0
  28. package/dist/components/Cell/EmptyNode/EmptyFactory.esm.js.map +1 -0
  29. package/dist/components/Cell/EmptyNode/EmptyModel.esm.js +25 -0
  30. package/dist/components/Cell/EmptyNode/EmptyModel.esm.js.map +1 -0
  31. package/dist/components/Cell/EmptyNode/EmptyWidget.esm.js +52 -0
  32. package/dist/components/Cell/EmptyNode/EmptyWidget.esm.js.map +1 -0
  33. package/dist/components/Cell/EmptyNode/styles.esm.js +12 -0
  34. package/dist/components/Cell/EmptyNode/styles.esm.js.map +1 -0
  35. package/dist/components/Cell/cell-util.esm.js +110 -0
  36. package/dist/components/Cell/cell-util.esm.js.map +1 -0
  37. package/dist/components/Component/ComponentLink/ComponentLinkFactory.esm.js +19 -0
  38. package/dist/components/Component/ComponentLink/ComponentLinkFactory.esm.js.map +1 -0
  39. package/dist/components/Component/ComponentLink/ComponentLinkModel.esm.js +20 -0
  40. package/dist/components/Component/ComponentLink/ComponentLinkModel.esm.js.map +1 -0
  41. package/dist/components/Component/ComponentLink/ComponentLinkWidget.esm.js +205 -0
  42. package/dist/components/Component/ComponentLink/ComponentLinkWidget.esm.js.map +1 -0
  43. package/dist/components/Component/ComponentNode/ComponentFactory.esm.js +20 -0
  44. package/dist/components/Component/ComponentNode/ComponentFactory.esm.js.map +1 -0
  45. package/dist/components/Component/ComponentNode/ComponentHead/ComponentHead.esm.js +97 -0
  46. package/dist/components/Component/ComponentNode/ComponentHead/ComponentHead.esm.js.map +1 -0
  47. package/dist/components/Component/ComponentNode/ComponentModel.esm.js +26 -0
  48. package/dist/components/Component/ComponentNode/ComponentModel.esm.js.map +1 -0
  49. package/dist/components/Component/ComponentNode/ComponentWidget.esm.js +158 -0
  50. package/dist/components/Component/ComponentNode/ComponentWidget.esm.js.map +1 -0
  51. package/dist/components/Component/ComponentNode/styles.esm.js +102 -0
  52. package/dist/components/Component/ComponentNode/styles.esm.js.map +1 -0
  53. package/dist/components/Component/ComponentPort/ComponentPortFactory.esm.js +17 -0
  54. package/dist/components/Component/ComponentPort/ComponentPortFactory.esm.js.map +1 -0
  55. package/dist/components/Component/ComponentPort/ComponentPortModel.esm.js +18 -0
  56. package/dist/components/Component/ComponentPort/ComponentPortModel.esm.js.map +1 -0
  57. package/dist/components/Component/ComponentPort/ComponentPortWidget.esm.js +24 -0
  58. package/dist/components/Component/ComponentPort/ComponentPortWidget.esm.js.map +1 -0
  59. package/dist/components/Component/ComponentPort/styles.esm.js +16 -0
  60. package/dist/components/Component/ComponentPort/styles.esm.js.map +1 -0
  61. package/dist/components/Component/component-node-util.esm.js +15 -0
  62. package/dist/components/Component/component-node-util.esm.js.map +1 -0
  63. package/dist/components/Connection/ConnectionNode/ConnectionFactory.esm.js +20 -0
  64. package/dist/components/Connection/ConnectionNode/ConnectionFactory.esm.js.map +1 -0
  65. package/dist/components/Connection/ConnectionNode/ConnectionHead/ConnectionHead.esm.js +68 -0
  66. package/dist/components/Connection/ConnectionNode/ConnectionHead/ConnectionHead.esm.js.map +1 -0
  67. package/dist/components/Connection/ConnectionNode/ConnectionModel.esm.js +29 -0
  68. package/dist/components/Connection/ConnectionNode/ConnectionModel.esm.js.map +1 -0
  69. package/dist/components/Connection/ConnectionNode/ConnectionWidget.esm.js +51 -0
  70. package/dist/components/Connection/ConnectionNode/ConnectionWidget.esm.js.map +1 -0
  71. package/dist/components/Connection/ConnectionNode/styles.esm.js +64 -0
  72. package/dist/components/Connection/ConnectionNode/styles.esm.js.map +1 -0
  73. package/dist/components/Connection/ConnectionPort/ConnectionPortFactory.esm.js +17 -0
  74. package/dist/components/Connection/ConnectionPort/ConnectionPortFactory.esm.js.map +1 -0
  75. package/dist/components/Connection/ConnectionPort/ConnectionPortModel.esm.js +18 -0
  76. package/dist/components/Connection/ConnectionPort/ConnectionPortModel.esm.js.map +1 -0
  77. package/dist/components/Connection/ConnectionPort/ConnectionPortWidget.esm.js +24 -0
  78. package/dist/components/Connection/ConnectionPort/ConnectionPortWidget.esm.js.map +1 -0
  79. package/dist/components/Connection/ConnectionPort/styles.esm.js +13 -0
  80. package/dist/components/Connection/ConnectionPort/styles.esm.js.map +1 -0
  81. package/dist/components/Connection/connection-node-util.esm.js +12 -0
  82. package/dist/components/Connection/connection-node-util.esm.js.map +1 -0
  83. package/dist/components/Controls/ControlButtons/ControlButton.esm.js +54 -0
  84. package/dist/components/Controls/ControlButtons/ControlButton.esm.js.map +1 -0
  85. package/dist/components/Controls/ControlButtons/style.esm.js +19 -0
  86. package/dist/components/Controls/ControlButtons/style.esm.js.map +1 -0
  87. package/dist/components/Controls/DiagramControls.esm.js +88 -0
  88. package/dist/components/Controls/DiagramControls.esm.js.map +1 -0
  89. package/dist/components/Controls/DiagramLayers.esm.js +166 -0
  90. package/dist/components/Controls/DiagramLayers.esm.js.map +1 -0
  91. package/dist/components/Controls/DiagramLegend.esm.js +242 -0
  92. package/dist/components/Controls/DiagramLegend.esm.js.map +1 -0
  93. package/dist/components/Controls/LayerButton.esm.js +96 -0
  94. package/dist/components/Controls/LayerButton.esm.js.map +1 -0
  95. package/dist/components/DiagramContext/DiagramContext.esm.js +47 -0
  96. package/dist/components/DiagramContext/DiagramContext.esm.js.map +1 -0
  97. package/dist/components/External/ExternalLink/ExternalLinkFactory.esm.js +19 -0
  98. package/dist/components/External/ExternalLink/ExternalLinkFactory.esm.js.map +1 -0
  99. package/dist/components/External/ExternalLink/ExternalLinkModel.esm.js +112 -0
  100. package/dist/components/External/ExternalLink/ExternalLinkModel.esm.js.map +1 -0
  101. package/dist/components/External/ExternalLink/ExternalLinkWidget.esm.js +68 -0
  102. package/dist/components/External/ExternalLink/ExternalLinkWidget.esm.js.map +1 -0
  103. package/dist/components/External/ExternalNode/ExternalFactory.esm.js +20 -0
  104. package/dist/components/External/ExternalNode/ExternalFactory.esm.js.map +1 -0
  105. package/dist/components/External/ExternalNode/ExternalModel.esm.js +20 -0
  106. package/dist/components/External/ExternalNode/ExternalModel.esm.js.map +1 -0
  107. package/dist/components/External/ExternalNode/ExternalWidget.esm.js +40 -0
  108. package/dist/components/External/ExternalNode/ExternalWidget.esm.js.map +1 -0
  109. package/dist/components/External/ExternalNode/styles.esm.js +9 -0
  110. package/dist/components/External/ExternalNode/styles.esm.js.map +1 -0
  111. package/dist/components/External/external-node-util.esm.js +12 -0
  112. package/dist/components/External/external-node-util.esm.js.map +1 -0
  113. package/dist/components/Header/Header.esm.js +17 -0
  114. package/dist/components/Header/Header.esm.js.map +1 -0
  115. package/dist/components/MoreVertMenu/MoreVertMenu.esm.js +81 -0
  116. package/dist/components/MoreVertMenu/MoreVertMenu.esm.js.map +1 -0
  117. package/dist/components/ObservationLabel/ObservationLabel.esm.js +102 -0
  118. package/dist/components/ObservationLabel/ObservationLabel.esm.js.map +1 -0
  119. package/dist/components/OverlayLoader/OverlayLayerFactory.esm.js +19 -0
  120. package/dist/components/OverlayLoader/OverlayLayerFactory.esm.js.map +1 -0
  121. package/dist/components/OverlayLoader/OverlayLayerModel.esm.js +15 -0
  122. package/dist/components/OverlayLoader/OverlayLayerModel.esm.js.map +1 -0
  123. package/dist/components/OverlayLoader/OverlayLayerWidget.esm.js +28 -0
  124. package/dist/components/OverlayLoader/OverlayLayerWidget.esm.js.map +1 -0
  125. package/dist/components/Project/AdvancedLink/AdvancedLinkFactory.esm.js +69 -0
  126. package/dist/components/Project/AdvancedLink/AdvancedLinkFactory.esm.js.map +1 -0
  127. package/dist/components/Project/AdvancedLink/AdvancedLinkModel.esm.js +162 -0
  128. package/dist/components/Project/AdvancedLink/AdvancedLinkModel.esm.js.map +1 -0
  129. package/dist/components/Project/AdvancedLink/AdvancedLinkPointWidget.esm.js +45 -0
  130. package/dist/components/Project/AdvancedLink/AdvancedLinkPointWidget.esm.js.map +1 -0
  131. package/dist/components/Project/AdvancedLink/AdvancedLinkSegmentWidget.esm.js +46 -0
  132. package/dist/components/Project/AdvancedLink/AdvancedLinkSegmentWidget.esm.js.map +1 -0
  133. package/dist/components/Project/AdvancedLink/AdvancedLinkWidget.esm.js +149 -0
  134. package/dist/components/Project/AdvancedLink/AdvancedLinkWidget.esm.js.map +1 -0
  135. package/dist/components/Project/ProjectLink/ProjectLinkFactory.esm.js +20 -0
  136. package/dist/components/Project/ProjectLink/ProjectLinkFactory.esm.js.map +1 -0
  137. package/dist/components/Project/ProjectLink/ProjectLinkModel.esm.js +20 -0
  138. package/dist/components/Project/ProjectLink/ProjectLinkModel.esm.js.map +1 -0
  139. package/dist/components/Project/ProjectLink/ProjectLinkWidget.esm.js +94 -0
  140. package/dist/components/Project/ProjectLink/ProjectLinkWidget.esm.js.map +1 -0
  141. package/dist/components/Project/ProjectNode/ProjectFactory.esm.js +20 -0
  142. package/dist/components/Project/ProjectNode/ProjectFactory.esm.js.map +1 -0
  143. package/dist/components/Project/ProjectNode/ProjectHeadWidget/ProjectHeadWidget.esm.js +68 -0
  144. package/dist/components/Project/ProjectNode/ProjectHeadWidget/ProjectHeadWidget.esm.js.map +1 -0
  145. package/dist/components/Project/ProjectNode/ProjectModel.esm.js +56 -0
  146. package/dist/components/Project/ProjectNode/ProjectModel.esm.js.map +1 -0
  147. package/dist/components/Project/ProjectNode/ProjectWidget.esm.js +111 -0
  148. package/dist/components/Project/ProjectNode/ProjectWidget.esm.js.map +1 -0
  149. package/dist/components/Project/ProjectNode/styles.esm.js +66 -0
  150. package/dist/components/Project/ProjectNode/styles.esm.js.map +1 -0
  151. package/dist/components/Project/ProjectPort/ProjectPortFactory.esm.js +17 -0
  152. package/dist/components/Project/ProjectPort/ProjectPortFactory.esm.js.map +1 -0
  153. package/dist/components/Project/ProjectPort/ProjectPortModel.esm.js +18 -0
  154. package/dist/components/Project/ProjectPort/ProjectPortModel.esm.js.map +1 -0
  155. package/dist/components/Project/ProjectPort/ProjectPortWidget.esm.js +26 -0
  156. package/dist/components/Project/ProjectPort/ProjectPortWidget.esm.js.map +1 -0
  157. package/dist/components/Project/ProjectPort/styles.esm.js +38 -0
  158. package/dist/components/Project/ProjectPort/styles.esm.js.map +1 -0
  159. package/dist/components/PromptScreen/PromptScreen.esm.js +30 -0
  160. package/dist/components/PromptScreen/PromptScreen.esm.js.map +1 -0
  161. package/dist/components/SharedLink/SharedLink.esm.js +175 -0
  162. package/dist/components/SharedLink/SharedLink.esm.js.map +1 -0
  163. package/dist/components/SharedNode/SharedNode.esm.js +44 -0
  164. package/dist/components/SharedNode/SharedNode.esm.js.map +1 -0
  165. package/dist/components/TooltipLabel/TooltipLabel.esm.js +22 -0
  166. package/dist/components/TooltipLabel/TooltipLabel.esm.js.map +1 -0
  167. package/dist/diagrams/OrgDiagram.esm.js +176 -0
  168. package/dist/diagrams/OrgDiagram.esm.js.map +1 -0
  169. package/dist/diagrams/ProjectDiagram.esm.js +251 -0
  170. package/dist/diagrams/ProjectDiagram.esm.js.map +1 -0
  171. package/dist/hooks/useActiveLayers.esm.js +27 -0
  172. package/dist/hooks/useActiveLayers.esm.js.map +1 -0
  173. package/dist/index.d.ts +407 -0
  174. package/dist/index.esm.js +4 -0
  175. package/dist/index.esm.js.map +1 -0
  176. package/dist/renderDiagram.esm.js +11 -0
  177. package/dist/renderDiagram.esm.js.map +1 -0
  178. package/dist/resources/Dagre/DagreEngine.esm.js +178 -0
  179. package/dist/resources/Dagre/DagreEngine.esm.js.map +1 -0
  180. package/dist/resources/assets/font/Gilmer-Bold.ttf +0 -0
  181. package/dist/resources/assets/font/Gilmer-Bold.woff +0 -0
  182. package/dist/resources/assets/font/Gilmer-Bold.woff2 +0 -0
  183. package/dist/resources/assets/font/Gilmer-Medium.ttf +0 -0
  184. package/dist/resources/assets/font/Gilmer-Medium.woff +0 -0
  185. package/dist/resources/assets/font/Gilmer-Medium.woff2 +0 -0
  186. package/dist/resources/assets/font/Gilmer-Regular.ttf +0 -0
  187. package/dist/resources/assets/font/Gilmer-Regular.woff +0 -0
  188. package/dist/resources/assets/font/Gilmer-Regular.woff2 +0 -0
  189. package/dist/resources/assets/font/fonts.esm.js +57 -0
  190. package/dist/resources/assets/font/fonts.esm.js.map +1 -0
  191. package/dist/resources/assets/icons/AddCheckIcon.esm.js +22 -0
  192. package/dist/resources/assets/icons/AddCheckIcon.esm.js.map +1 -0
  193. package/dist/resources/assets/icons/AddIcon.esm.js +16 -0
  194. package/dist/resources/assets/icons/AddIcon.esm.js.map +1 -0
  195. package/dist/resources/assets/icons/CodeIcon.esm.js +26 -0
  196. package/dist/resources/assets/icons/CodeIcon.esm.js.map +1 -0
  197. package/dist/resources/assets/icons/ConnectionIcon.esm.js +22 -0
  198. package/dist/resources/assets/icons/ConnectionIcon.esm.js.map +1 -0
  199. package/dist/resources/assets/icons/DatabaseIcon.esm.js +23 -0
  200. package/dist/resources/assets/icons/DatabaseIcon.esm.js.map +1 -0
  201. package/dist/resources/assets/icons/DebugIcon.esm.js +25 -0
  202. package/dist/resources/assets/icons/DebugIcon.esm.js.map +1 -0
  203. package/dist/resources/assets/icons/DiagramIcon.esm.js +22 -0
  204. package/dist/resources/assets/icons/DiagramIcon.esm.js.map +1 -0
  205. package/dist/resources/assets/icons/DiffIcon.esm.js +22 -0
  206. package/dist/resources/assets/icons/DiffIcon.esm.js.map +1 -0
  207. package/dist/resources/assets/icons/EventIcon.esm.js +22 -0
  208. package/dist/resources/assets/icons/EventIcon.esm.js.map +1 -0
  209. package/dist/resources/assets/icons/ExternalConsumerIcon.esm.js +36 -0
  210. package/dist/resources/assets/icons/ExternalConsumerIcon.esm.js.map +1 -0
  211. package/dist/resources/assets/icons/FitScreenIcon.esm.js +22 -0
  212. package/dist/resources/assets/icons/FitScreenIcon.esm.js.map +1 -0
  213. package/dist/resources/assets/icons/FullScreenIcon.esm.js +22 -0
  214. package/dist/resources/assets/icons/FullScreenIcon.esm.js.map +1 -0
  215. package/dist/resources/assets/icons/GatewayIcon.esm.js +22 -0
  216. package/dist/resources/assets/icons/GatewayIcon.esm.js.map +1 -0
  217. package/dist/resources/assets/icons/InfoIcon.esm.js +22 -0
  218. package/dist/resources/assets/icons/InfoIcon.esm.js.map +1 -0
  219. package/dist/resources/assets/icons/LayersIcon.esm.js +28 -0
  220. package/dist/resources/assets/icons/LayersIcon.esm.js.map +1 -0
  221. package/dist/resources/assets/icons/ManualTaskIcon.esm.js +22 -0
  222. package/dist/resources/assets/icons/ManualTaskIcon.esm.js.map +1 -0
  223. package/dist/resources/assets/icons/MoreVertIcon.esm.js +18 -0
  224. package/dist/resources/assets/icons/MoreVertIcon.esm.js.map +1 -0
  225. package/dist/resources/assets/icons/ObservationIcon.esm.js +22 -0
  226. package/dist/resources/assets/icons/ObservationIcon.esm.js.map +1 -0
  227. package/dist/resources/assets/icons/ProxyIcon.esm.js +22 -0
  228. package/dist/resources/assets/icons/ProxyIcon.esm.js.map +1 -0
  229. package/dist/resources/assets/icons/RefreshIcon.esm.js +22 -0
  230. package/dist/resources/assets/icons/RefreshIcon.esm.js.map +1 -0
  231. package/dist/resources/assets/icons/RemoveIcon.esm.js +16 -0
  232. package/dist/resources/assets/icons/RemoveIcon.esm.js.map +1 -0
  233. package/dist/resources/assets/icons/ScheduledTaskIcon.esm.js +22 -0
  234. package/dist/resources/assets/icons/ScheduledTaskIcon.esm.js.map +1 -0
  235. package/dist/resources/assets/icons/ServiceIcon.esm.js +24 -0
  236. package/dist/resources/assets/icons/ServiceIcon.esm.js.map +1 -0
  237. package/dist/resources/assets/icons/SettingsIcon.esm.js +38 -0
  238. package/dist/resources/assets/icons/SettingsIcon.esm.js.map +1 -0
  239. package/dist/resources/assets/icons/WarningIcon.esm.js +32 -0
  240. package/dist/resources/assets/icons/WarningIcon.esm.js.map +1 -0
  241. package/dist/resources/assets/icons/WebAppIcon.esm.js +45 -0
  242. package/dist/resources/assets/icons/WebAppIcon.esm.js.map +1 -0
  243. package/dist/resources/assets/icons/WebhookIcon.esm.js +22 -0
  244. package/dist/resources/assets/icons/WebhookIcon.esm.js.map +1 -0
  245. package/dist/resources/assets/icons/index.esm.js +38 -0
  246. package/dist/resources/assets/icons/index.esm.js.map +1 -0
  247. package/dist/resources/assets/icons/lang/BallerinaIcon.esm.js +24 -0
  248. package/dist/resources/assets/icons/lang/BallerinaIcon.esm.js.map +1 -0
  249. package/dist/resources/assets/icons/lang/DockerIcon.esm.js +24 -0
  250. package/dist/resources/assets/icons/lang/DockerIcon.esm.js.map +1 -0
  251. package/dist/resources/assets/icons/lang/GoIcon.esm.js +24 -0
  252. package/dist/resources/assets/icons/lang/GoIcon.esm.js.map +1 -0
  253. package/dist/resources/assets/icons/lang/JavaIcon.esm.js +54 -0
  254. package/dist/resources/assets/icons/lang/JavaIcon.esm.js.map +1 -0
  255. package/dist/resources/assets/icons/lang/MIIcon.esm.js +75 -0
  256. package/dist/resources/assets/icons/lang/MIIcon.esm.js.map +1 -0
  257. package/dist/resources/assets/icons/lang/NodeJsIcon.esm.js +33 -0
  258. package/dist/resources/assets/icons/lang/NodeJsIcon.esm.js.map +1 -0
  259. package/dist/resources/assets/icons/lang/PhpIcon.esm.js +74 -0
  260. package/dist/resources/assets/icons/lang/PhpIcon.esm.js.map +1 -0
  261. package/dist/resources/assets/icons/lang/PythonIcon.esm.js +67 -0
  262. package/dist/resources/assets/icons/lang/PythonIcon.esm.js.map +1 -0
  263. package/dist/resources/assets/icons/lang/RubyIcon.esm.js +26 -0
  264. package/dist/resources/assets/icons/lang/RubyIcon.esm.js.map +1 -0
  265. package/dist/resources/assets/icons/lang/RustIcon.esm.js +46 -0
  266. package/dist/resources/assets/icons/lang/RustIcon.esm.js.map +1 -0
  267. package/dist/resources/constants.esm.js +44 -0
  268. package/dist/resources/constants.esm.js.map +1 -0
  269. package/dist/theme/CellDiagramThemeProvider.esm.js +37 -0
  270. package/dist/theme/CellDiagramThemeProvider.esm.js.map +1 -0
  271. package/dist/theme/ThemeContext.esm.js +14 -0
  272. package/dist/theme/ThemeContext.esm.js.map +1 -0
  273. package/dist/theme/colors.esm.js +50 -0
  274. package/dist/theme/colors.esm.js.map +1 -0
  275. package/dist/types.esm.js +30 -0
  276. package/dist/types.esm.js.map +1 -0
  277. package/dist/utils/CanvasStyles.esm.js +67 -0
  278. package/dist/utils/CanvasStyles.esm.js.map +1 -0
  279. package/dist/utils/diagramUtils.esm.js +151 -0
  280. package/dist/utils/diagramUtils.esm.js.map +1 -0
  281. package/dist/utils/orgUtils.esm.js +119 -0
  282. package/dist/utils/orgUtils.esm.js.map +1 -0
  283. package/dist/utils/projectUtils.esm.js +969 -0
  284. package/dist/utils/projectUtils.esm.js.map +1 -0
  285. package/package.json +86 -0
@@ -0,0 +1,251 @@
1
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
+ import { useState, useRef, useEffect } from 'react';
3
+ import { DiagramModel } from '@projectstorm/react-diagrams';
4
+ import { CanvasWidget } from '@projectstorm/react-canvas-core';
5
+ import { generateEngine, animateProjectDiagram } from '../utils/diagramUtils.esm.js';
6
+ import { MAIN_CELL, DIAGRAM_END, MARGIN, NO_CELL_NODE, Colors } from '../resources/constants.esm.js';
7
+ import '@mui/material/Fade';
8
+ import '@mui/material/Box';
9
+ import '@mui/material/Tooltip';
10
+ import '@mui/icons-material/OpenInNewRounded';
11
+ import '../components/Project/ProjectNode/styles.esm.js';
12
+ import '../components/Project/ProjectPort/styles.esm.js';
13
+ import { CellModel } from '../components/Cell/CellNode/CellModel.esm.js';
14
+ import '../components/Cell/CellNode/styles.esm.js';
15
+ import { CellDiagramContext } from '../components/DiagramContext/DiagramContext.esm.js';
16
+ import '../theme/ThemeContext.esm.js';
17
+ import '../theme/CellDiagramThemeProvider.esm.js';
18
+ import '../components/SharedLink/SharedLink.esm.js';
19
+ import '../components/Project/AdvancedLink/AdvancedLinkFactory.esm.js';
20
+ import { DiagramLayer } from '../types.esm.js';
21
+ import '../components/Component/ComponentNode/styles.esm.js';
22
+ import '../components/MoreVertMenu/MoreVertMenu.esm.js';
23
+ import '../components/ObservationLabel/ObservationLabel.esm.js';
24
+ import '../components/TooltipLabel/TooltipLabel.esm.js';
25
+ import '@mui/material/Popper';
26
+ import '../components/Connection/ConnectionNode/styles.esm.js';
27
+ import '../components/Cell/EmptyNode/styles.esm.js';
28
+ import '../components/External/ExternalNode/styles.esm.js';
29
+ import '@projectstorm/geometry';
30
+ import { OverlayLayerModel } from '../components/OverlayLoader/OverlayLayerModel.esm.js';
31
+ import '../components/OverlayLoader/OverlayLayerWidget.esm.js';
32
+ import { PromptScreen } from '../components/PromptScreen/PromptScreen.esm.js';
33
+ import '../components/Header/Header.esm.js';
34
+ import { DiagramControls } from '../components/Controls/DiagramControls.esm.js';
35
+ import '@projectstorm/react-diagrams-core';
36
+ import '@projectstorm/react-diagrams-defaults';
37
+ import { isRenderInsideCell, getDiagramDataFromProject, getComponentDiagramWidth, manualDistribute, calculateCellWidth } from '../utils/projectUtils.esm.js';
38
+ import { useStyles, Container, DiagramContainer } from '../utils/CanvasStyles.esm.js';
39
+ import { DiagramLayers } from '../components/Controls/DiagramLayers.esm.js';
40
+ import { DiagramLegend } from '../components/Controls/DiagramLegend.esm.js';
41
+ import CircularProgress from '@mui/material/CircularProgress';
42
+
43
+ function ProjectDiagram(props) {
44
+ const {
45
+ project,
46
+ componentMenu,
47
+ showControls = true,
48
+ animation = true,
49
+ defaultDiagramLayer = DiagramLayer.ARCHITECTURE,
50
+ customTooltips,
51
+ modelVersion,
52
+ onComponentDoubleClick,
53
+ previewMode = false
54
+ } = props;
55
+ const [diagramEngine] = useState(generateEngine(previewMode));
56
+ const [diagramModel, setDiagramModel] = useState(
57
+ void 0
58
+ );
59
+ const [selectedNodeId, setSelectedNodeId] = useState("");
60
+ const [focusedNodeId, setFocusedNodeId] = useState("");
61
+ const [userMessage, setUserMessage] = useState("");
62
+ const [zoomLevel, setZoomLevel] = useState(1);
63
+ const [isDiagramLoaded, setIsDiagramLoaded] = useState(false);
64
+ const cellNodeWidth = useRef(0);
65
+ const observationSummary = useRef(null);
66
+ const styles = useStyles();
67
+ useEffect(() => {
68
+ if (diagramEngine) {
69
+ drawDiagram();
70
+ }
71
+ return () => {
72
+ diagramEngine.getModel()?.getNodes().forEach((node) => {
73
+ if (isRenderInsideCell(node)) {
74
+ node.clearListeners();
75
+ }
76
+ });
77
+ };
78
+ }, [props]);
79
+ useEffect(() => {
80
+ if (diagramEngine && animation && isDiagramLoaded) {
81
+ animateProjectDiagram();
82
+ diagramEngine.repaintCanvas();
83
+ }
84
+ }, [isDiagramLoaded, diagramEngine]);
85
+ useEffect(() => {
86
+ const listener = diagramEngine.getModel()?.registerListener({
87
+ zoomUpdated: (event) => {
88
+ setZoomLevel(event.zoom);
89
+ }
90
+ });
91
+ return () => {
92
+ diagramEngine.getModel()?.deregisterListener(listener);
93
+ };
94
+ }, [diagramEngine]);
95
+ useEffect(() => {
96
+ if (diagramEngine.getCanvas()) {
97
+ document.addEventListener("keydown", handleEscapePress);
98
+ }
99
+ return () => {
100
+ document.removeEventListener("keydown", handleEscapePress);
101
+ };
102
+ }, [diagramModel, diagramEngine.getCanvas()]);
103
+ function handleEscapePress(event) {
104
+ if (event.key === "Escape" && selectedNodeId) {
105
+ setSelectedNodeId("");
106
+ }
107
+ }
108
+ const drawDiagram = () => {
109
+ const diagramData = getDiagramDataFromProject(project);
110
+ const componentDiagramWidth = getComponentDiagramWidth(diagramData);
111
+ cellNodeWidth.current = componentDiagramWidth;
112
+ const cellNode = new CellModel(
113
+ MAIN_CELL,
114
+ componentDiagramWidth,
115
+ diagramData.gateways,
116
+ Array.from(
117
+ diagramData.nodes.connectorNodes.values()
118
+ ),
119
+ Array.from(
120
+ diagramData.nodes.connectionNodes.values()
121
+ )
122
+ );
123
+ const model = new DiagramModel();
124
+ model.addLayer(new OverlayLayerModel());
125
+ const models = model.addAll(
126
+ // nodes
127
+ cellNode,
128
+ ...diagramData.nodes.componentNodes.values(),
129
+ ...diagramData.nodes.connectionNodes.values(),
130
+ ...diagramData.nodes.connectorNodes.values(),
131
+ ...diagramData.nodes.emptyNodes.values(),
132
+ ...diagramData.nodes.externalNodes.values(),
133
+ ...diagramData.links.connectionLinks.values(),
134
+ ...diagramData.links.connectorLinks.values(),
135
+ ...diagramData.links.externalLinks.values(),
136
+ ...diagramData.links.componentLinks.values(),
137
+ ...diagramData.links.cellLinks.values(),
138
+ ...diagramData.links.externalConnectionLinks.values()
139
+ );
140
+ models.forEach((item) => {
141
+ if (isRenderInsideCell(item)) {
142
+ item.registerListener({
143
+ positionChanged: () => {
144
+ refreshDiagram();
145
+ }
146
+ });
147
+ }
148
+ });
149
+ model.setOffset(DIAGRAM_END * 4, DIAGRAM_END * 4);
150
+ diagramEngine.setModel(model);
151
+ setDiagramModel(model);
152
+ if (previewMode) {
153
+ diagramEngine.getModel().setLocked(true);
154
+ const state = diagramEngine.getStateMachine().getCurrentState();
155
+ state.dragCanvas.config.allowDrag = false;
156
+ }
157
+ observationSummary.current = diagramData.observationSummary;
158
+ setTimeout(() => {
159
+ manualDistribute(model);
160
+ if (diagramEngine.getCanvas()?.getBoundingClientRect !== void 0) {
161
+ diagramEngine.zoomToFitNodes({
162
+ margin: previewMode ? MARGIN.PREVIEW : MARGIN.DEFAULT,
163
+ maxZoom: 1
164
+ });
165
+ }
166
+ const overlayLayer = diagramEngine.getModel().getLayers().find((layer) => layer instanceof OverlayLayerModel);
167
+ if (overlayLayer) {
168
+ diagramEngine.getModel().removeLayer(overlayLayer);
169
+ }
170
+ diagramEngine.setModel(model);
171
+ diagramEngine.repaintCanvas();
172
+ setIsDiagramLoaded(true);
173
+ }, 1e3);
174
+ };
175
+ const refreshDiagram = () => {
176
+ const model = diagramEngine.getModel();
177
+ const cellWidth = calculateCellWidth(model);
178
+ const cellNode = model.getNode(MAIN_CELL);
179
+ if (!cellNode) {
180
+ setUserMessage(NO_CELL_NODE);
181
+ return;
182
+ }
183
+ cellNode.width = cellWidth;
184
+ cellNode.updateDimensions({ width: cellWidth, height: cellWidth });
185
+ setTimeout(() => {
186
+ manualDistribute(model);
187
+ diagramEngine.setModel(model);
188
+ diagramEngine.repaintCanvas();
189
+ cellNodeWidth.current = cellWidth;
190
+ }, 8);
191
+ };
192
+ const showDiagramLayers = showControls && (observationSummary.current?.requestCount.max ?? 0) > 0 && !previewMode || false;
193
+ const ctx = {
194
+ selectedNodeId,
195
+ focusedNodeId,
196
+ componentMenu,
197
+ zoomLevel,
198
+ observationSummary: observationSummary.current ?? void 0,
199
+ defaultDiagramLayer,
200
+ modelVersion: modelVersion || "v1",
201
+ setSelectedNodeId,
202
+ setFocusedNodeId,
203
+ onComponentDoubleClick,
204
+ previewMode
205
+ };
206
+ const handleCanvasClick = (event) => {
207
+ if (previewMode && onComponentDoubleClick) {
208
+ onComponentDoubleClick(MAIN_CELL);
209
+ return;
210
+ }
211
+ if (focusedNodeId && event.target === diagramEngine.getCanvas()) {
212
+ setFocusedNodeId("");
213
+ }
214
+ };
215
+ let diagramContent;
216
+ if (diagramEngine?.getModel() && diagramModel) {
217
+ diagramContent = /* @__PURE__ */ jsxs(Fragment, { children: [
218
+ /* @__PURE__ */ jsx(
219
+ CanvasWidget,
220
+ {
221
+ engine: diagramEngine,
222
+ className: `${styles.canvas} cell-diagram-canvas`
223
+ }
224
+ ),
225
+ showControls && !previewMode && /* @__PURE__ */ jsx(DiagramControls, { engine: diagramEngine, animation }),
226
+ showDiagramLayers && /* @__PURE__ */ jsx(
227
+ DiagramLayers,
228
+ {
229
+ animation,
230
+ tooltips: customTooltips?.diagramLayers
231
+ }
232
+ ),
233
+ showDiagramLayers && /* @__PURE__ */ jsx(DiagramLegend, { animation })
234
+ ] });
235
+ } else if (userMessage) {
236
+ diagramContent = /* @__PURE__ */ jsx(PromptScreen, { userMessage });
237
+ } else {
238
+ diagramContent = /* @__PURE__ */ jsx(CircularProgress, { sx: { color: Colors.PRIMARY } });
239
+ }
240
+ return /* @__PURE__ */ jsx(Container, { children: /* @__PURE__ */ jsx(CellDiagramContext, { ...ctx, children: /* @__PURE__ */ jsx(
241
+ DiagramContainer,
242
+ {
243
+ onClick: handleCanvasClick,
244
+ className: previewMode ? "preview-mode" : "",
245
+ children: diagramContent
246
+ }
247
+ ) }) });
248
+ }
249
+
250
+ export { DiagramLayer, ProjectDiagram };
251
+ //# sourceMappingURL=ProjectDiagram.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectDiagram.esm.js","sources":["../../src/diagrams/ProjectDiagram.tsx"],"sourcesContent":["import { MouseEvent, useEffect, useRef, useState } from 'react';\nimport { DiagramEngine, DiagramModel } from '@projectstorm/react-diagrams';\nimport { CanvasWidget } from '@projectstorm/react-canvas-core';\nimport {\n generateEngine,\n getComponentDiagramWidth,\n getDiagramDataFromProject,\n manualDistribute,\n calculateCellWidth,\n isRenderInsideCell,\n animateProjectDiagram,\n} from '../utils';\nimport {\n DiagramControls,\n OverlayLayerModel,\n CellDiagramContext,\n PromptScreen,\n ConnectionModel,\n} from '../components';\nimport {\n Colors,\n DIAGRAM_END,\n MAIN_CELL,\n MARGIN,\n NO_CELL_NODE,\n} from '../resources';\nimport { Container, DiagramContainer, useStyles } from '../utils/CanvasStyles';\nimport {\n CustomTooltips,\n DiagramLayer,\n MoreVertMenuItem,\n ObservationSummary,\n Project,\n} from '../types';\nimport { CellModel } from '../components/Cell/CellNode/CellModel';\nimport { DiagramLayers } from '../components/Controls/DiagramLayers';\nimport { DiagramLegend } from '../components/Controls/DiagramLegend';\nimport CircularProgress from '@mui/material/CircularProgress';\n\nexport { DiagramLayer } from '../types';\nexport type { MoreVertMenuItem, Project } from '../types';\n\nexport interface ProjectDiagramProps {\n project: Project;\n componentMenu?: MoreVertMenuItem[];\n showControls?: boolean;\n animation?: boolean;\n defaultDiagramLayer?: DiagramLayer;\n customTooltips?: CustomTooltips;\n modelVersion?: string;\n onComponentDoubleClick?: (componentId: string) => void;\n previewMode?: boolean;\n}\n\nexport function ProjectDiagram(props: ProjectDiagramProps) {\n const {\n project,\n componentMenu,\n showControls = true,\n animation = true,\n defaultDiagramLayer = DiagramLayer.ARCHITECTURE,\n customTooltips,\n modelVersion,\n onComponentDoubleClick,\n previewMode = false,\n } = props;\n\n const [diagramEngine] = useState<DiagramEngine>(generateEngine(previewMode));\n const [diagramModel, setDiagramModel] = useState<DiagramModel | undefined>(\n undefined,\n );\n const [selectedNodeId, setSelectedNodeId] = useState<string>('');\n const [focusedNodeId, setFocusedNodeId] = useState<string>('');\n const [userMessage, setUserMessage] = useState<string>('');\n const [zoomLevel, setZoomLevel] = useState(1);\n const [isDiagramLoaded, setIsDiagramLoaded] = useState(false);\n\n const cellNodeWidth = useRef<number>(0); // INFO: use this reference to check if cell node width should change\n const observationSummary = useRef<ObservationSummary | null>(null);\n\n const styles = useStyles();\n\n useEffect(() => {\n if (diagramEngine) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n drawDiagram();\n }\n return () => {\n diagramEngine\n .getModel()\n ?.getNodes()\n .forEach(node => {\n if (isRenderInsideCell(node)) {\n node.clearListeners();\n }\n });\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [props]);\n\n useEffect(() => {\n if (diagramEngine && animation && isDiagramLoaded) {\n animateProjectDiagram();\n diagramEngine.repaintCanvas();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isDiagramLoaded, diagramEngine]);\n\n useEffect(() => {\n const listener = diagramEngine.getModel()?.registerListener({\n zoomUpdated: (event: any) => {\n setZoomLevel(event.zoom);\n },\n });\n return () => {\n diagramEngine.getModel()?.deregisterListener(listener);\n };\n }, [diagramEngine]);\n\n useEffect(() => {\n if (diagramEngine.getCanvas()) {\n document.addEventListener('keydown', handleEscapePress);\n }\n return () => {\n document.removeEventListener('keydown', handleEscapePress);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [diagramModel, diagramEngine.getCanvas()]);\n\n function handleEscapePress(event: KeyboardEvent) {\n if (event.key === 'Escape' && selectedNodeId) {\n setSelectedNodeId('');\n }\n }\n\n // draw diagram\n const drawDiagram = () => {\n // get diagram data (nodes, links, gateways) from project\n const diagramData = getDiagramDataFromProject(project);\n // auto distribute component nodes, component links, empty nodes and cell links\n // get component diagram boundaries\n // calculate component diagram width\n const componentDiagramWidth = getComponentDiagramWidth(diagramData);\n cellNodeWidth.current = componentDiagramWidth;\n // get cell node\n const cellNode = new CellModel(\n MAIN_CELL,\n componentDiagramWidth,\n diagramData.gateways,\n Array.from(\n (\n diagramData.nodes.connectorNodes as Map<string, ConnectionModel>\n ).values(),\n ),\n Array.from(\n (\n diagramData.nodes.connectionNodes as Map<string, ConnectionModel>\n ).values(),\n ),\n );\n // create diagram model\n const model = new DiagramModel();\n // add preloader overlay layer\n model.addLayer(new OverlayLayerModel());\n // add node and links to diagram model\n const models = model.addAll(\n // nodes\n cellNode,\n ...diagramData.nodes.componentNodes.values(),\n ...diagramData.nodes.connectionNodes.values(),\n ...diagramData.nodes.connectorNodes.values(),\n ...diagramData.nodes.emptyNodes.values(),\n ...diagramData.nodes.externalNodes.values(),\n // links\n ...diagramData.links.connectionLinks.values(),\n ...diagramData.links.connectorLinks.values(),\n ...diagramData.links.externalLinks.values(),\n ...diagramData.links.componentLinks.values(),\n ...diagramData.links.cellLinks.values(),\n ...diagramData.links.externalConnectionLinks.values(),\n );\n\n models.forEach(item => {\n if (isRenderInsideCell(item)) {\n item.registerListener({\n positionChanged: () => {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n refreshDiagram();\n },\n });\n }\n });\n // initially render end of diagram\n model.setOffset(DIAGRAM_END * 4, DIAGRAM_END * 4);\n // draw diagram with all nodes and links\n diagramEngine.setModel(model);\n setDiagramModel(model);\n\n if (previewMode) {\n // Disable dragging for all nodes\n diagramEngine.getModel().setLocked(true);\n const state = diagramEngine.getStateMachine().getCurrentState();\n (state as any).dragCanvas.config.allowDrag = false;\n }\n\n // update observability summary\n observationSummary.current = diagramData.observationSummary;\n\n setTimeout(() => {\n // manual distribute - update empty node, external node and connector node position based on cell node position\n manualDistribute(model);\n if (diagramEngine.getCanvas()?.getBoundingClientRect !== undefined) {\n // zoom to fit nodes and center diagram\n diagramEngine.zoomToFitNodes({\n margin: previewMode ? MARGIN.PREVIEW : MARGIN.DEFAULT,\n maxZoom: 1,\n });\n }\n // remove preloader overlay layer\n const overlayLayer = diagramEngine\n .getModel()\n .getLayers()\n .find(layer => layer instanceof OverlayLayerModel);\n if (overlayLayer) {\n diagramEngine.getModel().removeLayer(overlayLayer);\n }\n // update diagram\n diagramEngine.setModel(model);\n diagramEngine.repaintCanvas();\n // After all diagram setup is complete\n setIsDiagramLoaded(true);\n }, 1000);\n };\n\n // refresh diagram\n const refreshDiagram = () => {\n // calculate component diagram width\n const model = diagramEngine.getModel();\n const cellWidth = calculateCellWidth(model);\n // TODO: check if cell node width should change\n const cellNode = model.getNode(MAIN_CELL);\n // change cell node width\n if (!cellNode) {\n setUserMessage(NO_CELL_NODE); // TODO: handle error properly\n return;\n }\n cellNode.width = cellWidth;\n cellNode.updateDimensions({ width: cellWidth, height: cellWidth });\n\n setTimeout(() => {\n // manual distribute - update empty node, external node and connector node position based on cell node position\n manualDistribute(model);\n // update diagram\n diagramEngine.setModel(model);\n diagramEngine.repaintCanvas();\n // update cell node width\n cellNodeWidth.current = cellWidth;\n }, 8);\n };\n\n const showDiagramLayers =\n (showControls &&\n (observationSummary.current?.requestCount.max ?? 0) > 0 &&\n !previewMode) ||\n false;\n\n const ctx = {\n selectedNodeId,\n focusedNodeId,\n componentMenu,\n zoomLevel,\n observationSummary: observationSummary.current ?? undefined,\n defaultDiagramLayer,\n modelVersion: modelVersion || 'v1',\n setSelectedNodeId,\n setFocusedNodeId,\n onComponentDoubleClick,\n previewMode,\n };\n\n const handleCanvasClick = (\n event: MouseEvent<HTMLDivElement, globalThis.MouseEvent>,\n ) => {\n if (previewMode && onComponentDoubleClick) {\n // In preview mode, clicking anywhere on the canvas should trigger the onComponentDoubleClick\n onComponentDoubleClick(MAIN_CELL);\n return;\n }\n\n if (focusedNodeId && event.target === diagramEngine.getCanvas()) {\n setFocusedNodeId('');\n }\n };\n\n let diagramContent;\n if (diagramEngine?.getModel() && diagramModel) {\n diagramContent = (\n <>\n <CanvasWidget\n engine={diagramEngine}\n className={`${styles.canvas} cell-diagram-canvas`}\n />\n {showControls && !previewMode && (\n <DiagramControls engine={diagramEngine} animation={animation} />\n )}\n {showDiagramLayers && (\n <DiagramLayers\n animation={animation}\n tooltips={customTooltips?.diagramLayers}\n />\n )}\n {showDiagramLayers && <DiagramLegend animation={animation} />}\n </>\n );\n } else if (userMessage) {\n diagramContent = <PromptScreen userMessage={userMessage} />;\n } else {\n diagramContent = <CircularProgress sx={{ color: Colors.PRIMARY }} />;\n }\n\n return (\n <Container>\n <CellDiagramContext {...ctx}>\n <DiagramContainer\n onClick={handleCanvasClick}\n className={previewMode ? 'preview-mode' : ''}\n >\n {diagramContent}\n </DiagramContainer>\n </CellDiagramContext>\n </Container>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { useState } from 'react';
2
+
3
+ const useActiveLayers = (props) => {
4
+ const [activeLayers, setActiveLayers] = useState([
5
+ props.defaultDiagramLayer
6
+ ]);
7
+ const addLayer = (layer) => {
8
+ if (!activeLayers.includes(layer)) {
9
+ setActiveLayers((prev) => [...prev, layer]);
10
+ }
11
+ };
12
+ const removeLayer = (layer) => {
13
+ if (activeLayers.length > 1) {
14
+ setActiveLayers(activeLayers.filter((l) => l !== layer));
15
+ }
16
+ };
17
+ const setLayer = (layer) => {
18
+ setActiveLayers([layer]);
19
+ };
20
+ const hasLayer = (layer) => {
21
+ return activeLayers.includes(layer);
22
+ };
23
+ return { activeLayers, addLayer, removeLayer, setLayer, hasLayer };
24
+ };
25
+
26
+ export { useActiveLayers };
27
+ //# sourceMappingURL=useActiveLayers.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useActiveLayers.esm.js","sources":["../../src/hooks/useActiveLayers.ts"],"sourcesContent":["import { useState } from 'react';\nimport { DiagramLayer } from '../types';\n\ninterface ActiveLayersHookProps {\n defaultDiagramLayer?: DiagramLayer;\n}\n\nexport const useActiveLayers = (props: ActiveLayersHookProps) => {\n const [activeLayers, setActiveLayers] = useState<DiagramLayer[]>([\n props.defaultDiagramLayer as DiagramLayer,\n ]);\n\n const addLayer = (layer: DiagramLayer) => {\n if (!activeLayers.includes(layer)) {\n setActiveLayers(prev => [...prev, layer]);\n }\n };\n\n const removeLayer = (layer: DiagramLayer) => {\n if (activeLayers.length > 1) {\n // Don't allow removing the last layer\n setActiveLayers(activeLayers.filter(l => l !== layer));\n }\n };\n\n const setLayer = (layer: DiagramLayer) => {\n setActiveLayers([layer]);\n };\n\n const hasLayer = (layer: DiagramLayer) => {\n return activeLayers.includes(layer);\n };\n\n return { activeLayers, addLayer, removeLayer, setLayer, hasLayer };\n};\n"],"names":[],"mappings":";;AAOO,MAAM,eAAA,GAAkB,CAAC,KAAA,KAAiC;AAC/D,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,QAAA,CAAyB;AAAA,IAC/D,KAAA,CAAM;AAAA,GACP,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,CAAC,KAAA,KAAwB;AACxC,IAAA,IAAI,CAAC,YAAA,CAAa,QAAA,CAAS,KAAK,CAAA,EAAG;AACjC,MAAA,eAAA,CAAgB,CAAA,IAAA,KAAQ,CAAC,GAAG,IAAA,EAAM,KAAK,CAAC,CAAA;AAAA,IAC1C;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,WAAA,GAAc,CAAC,KAAA,KAAwB;AAC3C,IAAA,IAAI,YAAA,CAAa,SAAS,CAAA,EAAG;AAE3B,MAAA,eAAA,CAAgB,YAAA,CAAa,MAAA,CAAO,CAAA,CAAA,KAAK,CAAA,KAAM,KAAK,CAAC,CAAA;AAAA,IACvD;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,QAAA,GAAW,CAAC,KAAA,KAAwB;AACxC,IAAA,eAAA,CAAgB,CAAC,KAAK,CAAC,CAAA;AAAA,EACzB,CAAA;AAEA,EAAA,MAAM,QAAA,GAAW,CAAC,KAAA,KAAwB;AACxC,IAAA,OAAO,YAAA,CAAa,SAAS,KAAK,CAAA;AAAA,EACpC,CAAA;AAEA,EAAA,OAAO,EAAE,YAAA,EAAc,QAAA,EAAU,WAAA,EAAa,UAAU,QAAA,EAAS;AACnE;;;;"}