@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.
- package/CHANGELOG.md +10 -0
- package/README.md +115 -0
- package/dist/Diagram.esm.js +55 -0
- package/dist/Diagram.esm.js.map +1 -0
- package/dist/components/Cell/CellLink/CellLinkFactory.esm.js +19 -0
- package/dist/components/Cell/CellLink/CellLinkFactory.esm.js.map +1 -0
- package/dist/components/Cell/CellLink/CellLinkModel.esm.js +59 -0
- package/dist/components/Cell/CellLink/CellLinkModel.esm.js.map +1 -0
- package/dist/components/Cell/CellLink/CellLinkWidget.esm.js +217 -0
- package/dist/components/Cell/CellLink/CellLinkWidget.esm.js.map +1 -0
- package/dist/components/Cell/CellNode/CellFactory.esm.js +19 -0
- package/dist/components/Cell/CellNode/CellFactory.esm.js.map +1 -0
- package/dist/components/Cell/CellNode/CellModel.esm.js +73 -0
- package/dist/components/Cell/CellNode/CellModel.esm.js.map +1 -0
- package/dist/components/Cell/CellNode/CellWidget.esm.js +166 -0
- package/dist/components/Cell/CellNode/CellWidget.esm.js.map +1 -0
- package/dist/components/Cell/CellNode/styles.esm.js +149 -0
- package/dist/components/Cell/CellNode/styles.esm.js.map +1 -0
- package/dist/components/Cell/CellPort/CellPortFactory.esm.js +17 -0
- package/dist/components/Cell/CellPort/CellPortFactory.esm.js.map +1 -0
- package/dist/components/Cell/CellPort/CellPortModel.esm.js +18 -0
- package/dist/components/Cell/CellPort/CellPortModel.esm.js.map +1 -0
- package/dist/components/Cell/CellPort/CellPortWidget.esm.js +24 -0
- package/dist/components/Cell/CellPort/CellPortWidget.esm.js.map +1 -0
- package/dist/components/Cell/CellPort/styles.esm.js +13 -0
- package/dist/components/Cell/CellPort/styles.esm.js.map +1 -0
- package/dist/components/Cell/EmptyNode/EmptyFactory.esm.js +20 -0
- package/dist/components/Cell/EmptyNode/EmptyFactory.esm.js.map +1 -0
- package/dist/components/Cell/EmptyNode/EmptyModel.esm.js +25 -0
- package/dist/components/Cell/EmptyNode/EmptyModel.esm.js.map +1 -0
- package/dist/components/Cell/EmptyNode/EmptyWidget.esm.js +52 -0
- package/dist/components/Cell/EmptyNode/EmptyWidget.esm.js.map +1 -0
- package/dist/components/Cell/EmptyNode/styles.esm.js +12 -0
- package/dist/components/Cell/EmptyNode/styles.esm.js.map +1 -0
- package/dist/components/Cell/cell-util.esm.js +110 -0
- package/dist/components/Cell/cell-util.esm.js.map +1 -0
- package/dist/components/Component/ComponentLink/ComponentLinkFactory.esm.js +19 -0
- package/dist/components/Component/ComponentLink/ComponentLinkFactory.esm.js.map +1 -0
- package/dist/components/Component/ComponentLink/ComponentLinkModel.esm.js +20 -0
- package/dist/components/Component/ComponentLink/ComponentLinkModel.esm.js.map +1 -0
- package/dist/components/Component/ComponentLink/ComponentLinkWidget.esm.js +205 -0
- package/dist/components/Component/ComponentLink/ComponentLinkWidget.esm.js.map +1 -0
- package/dist/components/Component/ComponentNode/ComponentFactory.esm.js +20 -0
- package/dist/components/Component/ComponentNode/ComponentFactory.esm.js.map +1 -0
- package/dist/components/Component/ComponentNode/ComponentHead/ComponentHead.esm.js +97 -0
- package/dist/components/Component/ComponentNode/ComponentHead/ComponentHead.esm.js.map +1 -0
- package/dist/components/Component/ComponentNode/ComponentModel.esm.js +26 -0
- package/dist/components/Component/ComponentNode/ComponentModel.esm.js.map +1 -0
- package/dist/components/Component/ComponentNode/ComponentWidget.esm.js +158 -0
- package/dist/components/Component/ComponentNode/ComponentWidget.esm.js.map +1 -0
- package/dist/components/Component/ComponentNode/styles.esm.js +102 -0
- package/dist/components/Component/ComponentNode/styles.esm.js.map +1 -0
- package/dist/components/Component/ComponentPort/ComponentPortFactory.esm.js +17 -0
- package/dist/components/Component/ComponentPort/ComponentPortFactory.esm.js.map +1 -0
- package/dist/components/Component/ComponentPort/ComponentPortModel.esm.js +18 -0
- package/dist/components/Component/ComponentPort/ComponentPortModel.esm.js.map +1 -0
- package/dist/components/Component/ComponentPort/ComponentPortWidget.esm.js +24 -0
- package/dist/components/Component/ComponentPort/ComponentPortWidget.esm.js.map +1 -0
- package/dist/components/Component/ComponentPort/styles.esm.js +16 -0
- package/dist/components/Component/ComponentPort/styles.esm.js.map +1 -0
- package/dist/components/Component/component-node-util.esm.js +15 -0
- package/dist/components/Component/component-node-util.esm.js.map +1 -0
- package/dist/components/Connection/ConnectionNode/ConnectionFactory.esm.js +20 -0
- package/dist/components/Connection/ConnectionNode/ConnectionFactory.esm.js.map +1 -0
- package/dist/components/Connection/ConnectionNode/ConnectionHead/ConnectionHead.esm.js +68 -0
- package/dist/components/Connection/ConnectionNode/ConnectionHead/ConnectionHead.esm.js.map +1 -0
- package/dist/components/Connection/ConnectionNode/ConnectionModel.esm.js +29 -0
- package/dist/components/Connection/ConnectionNode/ConnectionModel.esm.js.map +1 -0
- package/dist/components/Connection/ConnectionNode/ConnectionWidget.esm.js +51 -0
- package/dist/components/Connection/ConnectionNode/ConnectionWidget.esm.js.map +1 -0
- package/dist/components/Connection/ConnectionNode/styles.esm.js +64 -0
- package/dist/components/Connection/ConnectionNode/styles.esm.js.map +1 -0
- package/dist/components/Connection/ConnectionPort/ConnectionPortFactory.esm.js +17 -0
- package/dist/components/Connection/ConnectionPort/ConnectionPortFactory.esm.js.map +1 -0
- package/dist/components/Connection/ConnectionPort/ConnectionPortModel.esm.js +18 -0
- package/dist/components/Connection/ConnectionPort/ConnectionPortModel.esm.js.map +1 -0
- package/dist/components/Connection/ConnectionPort/ConnectionPortWidget.esm.js +24 -0
- package/dist/components/Connection/ConnectionPort/ConnectionPortWidget.esm.js.map +1 -0
- package/dist/components/Connection/ConnectionPort/styles.esm.js +13 -0
- package/dist/components/Connection/ConnectionPort/styles.esm.js.map +1 -0
- package/dist/components/Connection/connection-node-util.esm.js +12 -0
- package/dist/components/Connection/connection-node-util.esm.js.map +1 -0
- package/dist/components/Controls/ControlButtons/ControlButton.esm.js +54 -0
- package/dist/components/Controls/ControlButtons/ControlButton.esm.js.map +1 -0
- package/dist/components/Controls/ControlButtons/style.esm.js +19 -0
- package/dist/components/Controls/ControlButtons/style.esm.js.map +1 -0
- package/dist/components/Controls/DiagramControls.esm.js +88 -0
- package/dist/components/Controls/DiagramControls.esm.js.map +1 -0
- package/dist/components/Controls/DiagramLayers.esm.js +166 -0
- package/dist/components/Controls/DiagramLayers.esm.js.map +1 -0
- package/dist/components/Controls/DiagramLegend.esm.js +242 -0
- package/dist/components/Controls/DiagramLegend.esm.js.map +1 -0
- package/dist/components/Controls/LayerButton.esm.js +96 -0
- package/dist/components/Controls/LayerButton.esm.js.map +1 -0
- package/dist/components/DiagramContext/DiagramContext.esm.js +47 -0
- package/dist/components/DiagramContext/DiagramContext.esm.js.map +1 -0
- package/dist/components/External/ExternalLink/ExternalLinkFactory.esm.js +19 -0
- package/dist/components/External/ExternalLink/ExternalLinkFactory.esm.js.map +1 -0
- package/dist/components/External/ExternalLink/ExternalLinkModel.esm.js +112 -0
- package/dist/components/External/ExternalLink/ExternalLinkModel.esm.js.map +1 -0
- package/dist/components/External/ExternalLink/ExternalLinkWidget.esm.js +68 -0
- package/dist/components/External/ExternalLink/ExternalLinkWidget.esm.js.map +1 -0
- package/dist/components/External/ExternalNode/ExternalFactory.esm.js +20 -0
- package/dist/components/External/ExternalNode/ExternalFactory.esm.js.map +1 -0
- package/dist/components/External/ExternalNode/ExternalModel.esm.js +20 -0
- package/dist/components/External/ExternalNode/ExternalModel.esm.js.map +1 -0
- package/dist/components/External/ExternalNode/ExternalWidget.esm.js +40 -0
- package/dist/components/External/ExternalNode/ExternalWidget.esm.js.map +1 -0
- package/dist/components/External/ExternalNode/styles.esm.js +9 -0
- package/dist/components/External/ExternalNode/styles.esm.js.map +1 -0
- package/dist/components/External/external-node-util.esm.js +12 -0
- package/dist/components/External/external-node-util.esm.js.map +1 -0
- package/dist/components/Header/Header.esm.js +17 -0
- package/dist/components/Header/Header.esm.js.map +1 -0
- package/dist/components/MoreVertMenu/MoreVertMenu.esm.js +81 -0
- package/dist/components/MoreVertMenu/MoreVertMenu.esm.js.map +1 -0
- package/dist/components/ObservationLabel/ObservationLabel.esm.js +102 -0
- package/dist/components/ObservationLabel/ObservationLabel.esm.js.map +1 -0
- package/dist/components/OverlayLoader/OverlayLayerFactory.esm.js +19 -0
- package/dist/components/OverlayLoader/OverlayLayerFactory.esm.js.map +1 -0
- package/dist/components/OverlayLoader/OverlayLayerModel.esm.js +15 -0
- package/dist/components/OverlayLoader/OverlayLayerModel.esm.js.map +1 -0
- package/dist/components/OverlayLoader/OverlayLayerWidget.esm.js +28 -0
- package/dist/components/OverlayLoader/OverlayLayerWidget.esm.js.map +1 -0
- package/dist/components/Project/AdvancedLink/AdvancedLinkFactory.esm.js +69 -0
- package/dist/components/Project/AdvancedLink/AdvancedLinkFactory.esm.js.map +1 -0
- package/dist/components/Project/AdvancedLink/AdvancedLinkModel.esm.js +162 -0
- package/dist/components/Project/AdvancedLink/AdvancedLinkModel.esm.js.map +1 -0
- package/dist/components/Project/AdvancedLink/AdvancedLinkPointWidget.esm.js +45 -0
- package/dist/components/Project/AdvancedLink/AdvancedLinkPointWidget.esm.js.map +1 -0
- package/dist/components/Project/AdvancedLink/AdvancedLinkSegmentWidget.esm.js +46 -0
- package/dist/components/Project/AdvancedLink/AdvancedLinkSegmentWidget.esm.js.map +1 -0
- package/dist/components/Project/AdvancedLink/AdvancedLinkWidget.esm.js +149 -0
- package/dist/components/Project/AdvancedLink/AdvancedLinkWidget.esm.js.map +1 -0
- package/dist/components/Project/ProjectLink/ProjectLinkFactory.esm.js +20 -0
- package/dist/components/Project/ProjectLink/ProjectLinkFactory.esm.js.map +1 -0
- package/dist/components/Project/ProjectLink/ProjectLinkModel.esm.js +20 -0
- package/dist/components/Project/ProjectLink/ProjectLinkModel.esm.js.map +1 -0
- package/dist/components/Project/ProjectLink/ProjectLinkWidget.esm.js +94 -0
- package/dist/components/Project/ProjectLink/ProjectLinkWidget.esm.js.map +1 -0
- package/dist/components/Project/ProjectNode/ProjectFactory.esm.js +20 -0
- package/dist/components/Project/ProjectNode/ProjectFactory.esm.js.map +1 -0
- package/dist/components/Project/ProjectNode/ProjectHeadWidget/ProjectHeadWidget.esm.js +68 -0
- package/dist/components/Project/ProjectNode/ProjectHeadWidget/ProjectHeadWidget.esm.js.map +1 -0
- package/dist/components/Project/ProjectNode/ProjectModel.esm.js +56 -0
- package/dist/components/Project/ProjectNode/ProjectModel.esm.js.map +1 -0
- package/dist/components/Project/ProjectNode/ProjectWidget.esm.js +111 -0
- package/dist/components/Project/ProjectNode/ProjectWidget.esm.js.map +1 -0
- package/dist/components/Project/ProjectNode/styles.esm.js +66 -0
- package/dist/components/Project/ProjectNode/styles.esm.js.map +1 -0
- package/dist/components/Project/ProjectPort/ProjectPortFactory.esm.js +17 -0
- package/dist/components/Project/ProjectPort/ProjectPortFactory.esm.js.map +1 -0
- package/dist/components/Project/ProjectPort/ProjectPortModel.esm.js +18 -0
- package/dist/components/Project/ProjectPort/ProjectPortModel.esm.js.map +1 -0
- package/dist/components/Project/ProjectPort/ProjectPortWidget.esm.js +26 -0
- package/dist/components/Project/ProjectPort/ProjectPortWidget.esm.js.map +1 -0
- package/dist/components/Project/ProjectPort/styles.esm.js +38 -0
- package/dist/components/Project/ProjectPort/styles.esm.js.map +1 -0
- package/dist/components/PromptScreen/PromptScreen.esm.js +30 -0
- package/dist/components/PromptScreen/PromptScreen.esm.js.map +1 -0
- package/dist/components/SharedLink/SharedLink.esm.js +175 -0
- package/dist/components/SharedLink/SharedLink.esm.js.map +1 -0
- package/dist/components/SharedNode/SharedNode.esm.js +44 -0
- package/dist/components/SharedNode/SharedNode.esm.js.map +1 -0
- package/dist/components/TooltipLabel/TooltipLabel.esm.js +22 -0
- package/dist/components/TooltipLabel/TooltipLabel.esm.js.map +1 -0
- package/dist/diagrams/OrgDiagram.esm.js +176 -0
- package/dist/diagrams/OrgDiagram.esm.js.map +1 -0
- package/dist/diagrams/ProjectDiagram.esm.js +251 -0
- package/dist/diagrams/ProjectDiagram.esm.js.map +1 -0
- package/dist/hooks/useActiveLayers.esm.js +27 -0
- package/dist/hooks/useActiveLayers.esm.js.map +1 -0
- package/dist/index.d.ts +407 -0
- package/dist/index.esm.js +4 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/renderDiagram.esm.js +11 -0
- package/dist/renderDiagram.esm.js.map +1 -0
- package/dist/resources/Dagre/DagreEngine.esm.js +178 -0
- package/dist/resources/Dagre/DagreEngine.esm.js.map +1 -0
- package/dist/resources/assets/font/Gilmer-Bold.ttf +0 -0
- package/dist/resources/assets/font/Gilmer-Bold.woff +0 -0
- package/dist/resources/assets/font/Gilmer-Bold.woff2 +0 -0
- package/dist/resources/assets/font/Gilmer-Medium.ttf +0 -0
- package/dist/resources/assets/font/Gilmer-Medium.woff +0 -0
- package/dist/resources/assets/font/Gilmer-Medium.woff2 +0 -0
- package/dist/resources/assets/font/Gilmer-Regular.ttf +0 -0
- package/dist/resources/assets/font/Gilmer-Regular.woff +0 -0
- package/dist/resources/assets/font/Gilmer-Regular.woff2 +0 -0
- package/dist/resources/assets/font/fonts.esm.js +57 -0
- package/dist/resources/assets/font/fonts.esm.js.map +1 -0
- package/dist/resources/assets/icons/AddCheckIcon.esm.js +22 -0
- package/dist/resources/assets/icons/AddCheckIcon.esm.js.map +1 -0
- package/dist/resources/assets/icons/AddIcon.esm.js +16 -0
- package/dist/resources/assets/icons/AddIcon.esm.js.map +1 -0
- package/dist/resources/assets/icons/CodeIcon.esm.js +26 -0
- package/dist/resources/assets/icons/CodeIcon.esm.js.map +1 -0
- package/dist/resources/assets/icons/ConnectionIcon.esm.js +22 -0
- package/dist/resources/assets/icons/ConnectionIcon.esm.js.map +1 -0
- package/dist/resources/assets/icons/DatabaseIcon.esm.js +23 -0
- package/dist/resources/assets/icons/DatabaseIcon.esm.js.map +1 -0
- package/dist/resources/assets/icons/DebugIcon.esm.js +25 -0
- package/dist/resources/assets/icons/DebugIcon.esm.js.map +1 -0
- package/dist/resources/assets/icons/DiagramIcon.esm.js +22 -0
- package/dist/resources/assets/icons/DiagramIcon.esm.js.map +1 -0
- package/dist/resources/assets/icons/DiffIcon.esm.js +22 -0
- package/dist/resources/assets/icons/DiffIcon.esm.js.map +1 -0
- package/dist/resources/assets/icons/EventIcon.esm.js +22 -0
- package/dist/resources/assets/icons/EventIcon.esm.js.map +1 -0
- package/dist/resources/assets/icons/ExternalConsumerIcon.esm.js +36 -0
- package/dist/resources/assets/icons/ExternalConsumerIcon.esm.js.map +1 -0
- package/dist/resources/assets/icons/FitScreenIcon.esm.js +22 -0
- package/dist/resources/assets/icons/FitScreenIcon.esm.js.map +1 -0
- package/dist/resources/assets/icons/FullScreenIcon.esm.js +22 -0
- package/dist/resources/assets/icons/FullScreenIcon.esm.js.map +1 -0
- package/dist/resources/assets/icons/GatewayIcon.esm.js +22 -0
- package/dist/resources/assets/icons/GatewayIcon.esm.js.map +1 -0
- package/dist/resources/assets/icons/InfoIcon.esm.js +22 -0
- package/dist/resources/assets/icons/InfoIcon.esm.js.map +1 -0
- package/dist/resources/assets/icons/LayersIcon.esm.js +28 -0
- package/dist/resources/assets/icons/LayersIcon.esm.js.map +1 -0
- package/dist/resources/assets/icons/ManualTaskIcon.esm.js +22 -0
- package/dist/resources/assets/icons/ManualTaskIcon.esm.js.map +1 -0
- package/dist/resources/assets/icons/MoreVertIcon.esm.js +18 -0
- package/dist/resources/assets/icons/MoreVertIcon.esm.js.map +1 -0
- package/dist/resources/assets/icons/ObservationIcon.esm.js +22 -0
- package/dist/resources/assets/icons/ObservationIcon.esm.js.map +1 -0
- package/dist/resources/assets/icons/ProxyIcon.esm.js +22 -0
- package/dist/resources/assets/icons/ProxyIcon.esm.js.map +1 -0
- package/dist/resources/assets/icons/RefreshIcon.esm.js +22 -0
- package/dist/resources/assets/icons/RefreshIcon.esm.js.map +1 -0
- package/dist/resources/assets/icons/RemoveIcon.esm.js +16 -0
- package/dist/resources/assets/icons/RemoveIcon.esm.js.map +1 -0
- package/dist/resources/assets/icons/ScheduledTaskIcon.esm.js +22 -0
- package/dist/resources/assets/icons/ScheduledTaskIcon.esm.js.map +1 -0
- package/dist/resources/assets/icons/ServiceIcon.esm.js +24 -0
- package/dist/resources/assets/icons/ServiceIcon.esm.js.map +1 -0
- package/dist/resources/assets/icons/SettingsIcon.esm.js +38 -0
- package/dist/resources/assets/icons/SettingsIcon.esm.js.map +1 -0
- package/dist/resources/assets/icons/WarningIcon.esm.js +32 -0
- package/dist/resources/assets/icons/WarningIcon.esm.js.map +1 -0
- package/dist/resources/assets/icons/WebAppIcon.esm.js +45 -0
- package/dist/resources/assets/icons/WebAppIcon.esm.js.map +1 -0
- package/dist/resources/assets/icons/WebhookIcon.esm.js +22 -0
- package/dist/resources/assets/icons/WebhookIcon.esm.js.map +1 -0
- package/dist/resources/assets/icons/index.esm.js +38 -0
- package/dist/resources/assets/icons/index.esm.js.map +1 -0
- package/dist/resources/assets/icons/lang/BallerinaIcon.esm.js +24 -0
- package/dist/resources/assets/icons/lang/BallerinaIcon.esm.js.map +1 -0
- package/dist/resources/assets/icons/lang/DockerIcon.esm.js +24 -0
- package/dist/resources/assets/icons/lang/DockerIcon.esm.js.map +1 -0
- package/dist/resources/assets/icons/lang/GoIcon.esm.js +24 -0
- package/dist/resources/assets/icons/lang/GoIcon.esm.js.map +1 -0
- package/dist/resources/assets/icons/lang/JavaIcon.esm.js +54 -0
- package/dist/resources/assets/icons/lang/JavaIcon.esm.js.map +1 -0
- package/dist/resources/assets/icons/lang/MIIcon.esm.js +75 -0
- package/dist/resources/assets/icons/lang/MIIcon.esm.js.map +1 -0
- package/dist/resources/assets/icons/lang/NodeJsIcon.esm.js +33 -0
- package/dist/resources/assets/icons/lang/NodeJsIcon.esm.js.map +1 -0
- package/dist/resources/assets/icons/lang/PhpIcon.esm.js +74 -0
- package/dist/resources/assets/icons/lang/PhpIcon.esm.js.map +1 -0
- package/dist/resources/assets/icons/lang/PythonIcon.esm.js +67 -0
- package/dist/resources/assets/icons/lang/PythonIcon.esm.js.map +1 -0
- package/dist/resources/assets/icons/lang/RubyIcon.esm.js +26 -0
- package/dist/resources/assets/icons/lang/RubyIcon.esm.js.map +1 -0
- package/dist/resources/assets/icons/lang/RustIcon.esm.js +46 -0
- package/dist/resources/assets/icons/lang/RustIcon.esm.js.map +1 -0
- package/dist/resources/constants.esm.js +44 -0
- package/dist/resources/constants.esm.js.map +1 -0
- package/dist/theme/CellDiagramThemeProvider.esm.js +37 -0
- package/dist/theme/CellDiagramThemeProvider.esm.js.map +1 -0
- package/dist/theme/ThemeContext.esm.js +14 -0
- package/dist/theme/ThemeContext.esm.js.map +1 -0
- package/dist/theme/colors.esm.js +50 -0
- package/dist/theme/colors.esm.js.map +1 -0
- package/dist/types.esm.js +30 -0
- package/dist/types.esm.js.map +1 -0
- package/dist/utils/CanvasStyles.esm.js +67 -0
- package/dist/utils/CanvasStyles.esm.js.map +1 -0
- package/dist/utils/diagramUtils.esm.js +151 -0
- package/dist/utils/diagramUtils.esm.js.map +1 -0
- package/dist/utils/orgUtils.esm.js +119 -0
- package/dist/utils/orgUtils.esm.js.map +1 -0
- package/dist/utils/projectUtils.esm.js +969 -0
- package/dist/utils/projectUtils.esm.js.map +1 -0
- 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;;;;"}
|