@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,166 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useContext, useState, useEffect } from 'react';
|
|
3
|
+
import { PortModelAlignment } from '@projectstorm/react-diagrams';
|
|
4
|
+
import { CellBounds } from './CellModel.esm.js';
|
|
5
|
+
import { CellNode, TopPortCircle, TopIconWrapper, LeftPortCircle, IconWrapper, RightPortsWrapper, DotWrapper, Dot, BottomPortsWrapper } from './styles.esm.js';
|
|
6
|
+
import { CellPortWidget } from '../CellPort/CellPortWidget.esm.js';
|
|
7
|
+
import { getCellPortId, getRoundedOctagonSVG } from '../cell-util.esm.js';
|
|
8
|
+
import { CELL_LINE_PREVIEW_WIDTH, CELL_LINE_MIN_WIDTH, ICON_SCALE, MAIN_CELL } from '../../../resources/constants.esm.js';
|
|
9
|
+
import { GatewayIcon } from '../../../resources/assets/icons/GatewayIcon.esm.js';
|
|
10
|
+
import { DiagramContext } from '../../DiagramContext/DiagramContext.esm.js';
|
|
11
|
+
|
|
12
|
+
const generateRoundedOctagonSVG = (diagramHeight, radiusMultiplier) => {
|
|
13
|
+
const sideLength = diagramHeight * 4.14 / 10;
|
|
14
|
+
const { width, height, path } = getRoundedOctagonSVG(
|
|
15
|
+
sideLength,
|
|
16
|
+
sideLength * radiusMultiplier
|
|
17
|
+
);
|
|
18
|
+
return /* @__PURE__ */ jsx("svg", { width, height, id: MAIN_CELL, children: /* @__PURE__ */ jsx("g", { transform: `rotate(${45 / 2}, ${width / 2}, ${height / 2})`, children: /* @__PURE__ */ jsx("path", { d: path }) }) });
|
|
19
|
+
};
|
|
20
|
+
function CellWidget(props) {
|
|
21
|
+
const { node, engine } = props;
|
|
22
|
+
const { zoomLevel, previewMode } = useContext(DiagramContext);
|
|
23
|
+
const [cellHeight, setCellHeight] = useState(node.width);
|
|
24
|
+
useEffect(() => {
|
|
25
|
+
resizeCellHeight();
|
|
26
|
+
}, [node]);
|
|
27
|
+
useEffect(() => {
|
|
28
|
+
resizeCellHeight();
|
|
29
|
+
}, [node.width]);
|
|
30
|
+
const resizeCellHeight = () => {
|
|
31
|
+
const conCount = node.connectorNodes?.length || 0;
|
|
32
|
+
const connectorRowWidth = (conCount * 100 + 40) * 100 / 40;
|
|
33
|
+
setCellHeight(Math.max(connectorRowWidth, node.width));
|
|
34
|
+
engine.repaintCanvas();
|
|
35
|
+
};
|
|
36
|
+
const strokeWidth = previewMode ? Math.max(cellHeight / 200, CELL_LINE_PREVIEW_WIDTH) : node.getDynamicLineWidth(zoomLevel, CELL_LINE_MIN_WIDTH);
|
|
37
|
+
const transform = previewMode ? `scale(${ICON_SCALE.PREVIEW})` : "none";
|
|
38
|
+
return /* @__PURE__ */ jsxs(CellNode, { height: cellHeight, borderWidth: strokeWidth, children: [
|
|
39
|
+
generateRoundedOctagonSVG(cellHeight, 0.08),
|
|
40
|
+
/* @__PURE__ */ jsxs(TopPortCircle, { show: Boolean(node.gateways?.internet), children: [
|
|
41
|
+
/* @__PURE__ */ jsx(TopIconWrapper, { children: /* @__PURE__ */ jsx(GatewayIcon, { styles: { transform } }) }),
|
|
42
|
+
/* @__PURE__ */ jsx(
|
|
43
|
+
CellPortWidget,
|
|
44
|
+
{
|
|
45
|
+
port: node.getPort(
|
|
46
|
+
getCellPortId(
|
|
47
|
+
node.getID(),
|
|
48
|
+
CellBounds.NorthBound,
|
|
49
|
+
PortModelAlignment.TOP
|
|
50
|
+
)
|
|
51
|
+
),
|
|
52
|
+
engine
|
|
53
|
+
}
|
|
54
|
+
),
|
|
55
|
+
/* @__PURE__ */ jsx(
|
|
56
|
+
CellPortWidget,
|
|
57
|
+
{
|
|
58
|
+
port: node.getPort(
|
|
59
|
+
getCellPortId(
|
|
60
|
+
node.getID(),
|
|
61
|
+
CellBounds.NorthBound,
|
|
62
|
+
PortModelAlignment.BOTTOM
|
|
63
|
+
)
|
|
64
|
+
),
|
|
65
|
+
engine
|
|
66
|
+
}
|
|
67
|
+
)
|
|
68
|
+
] }),
|
|
69
|
+
/* @__PURE__ */ jsxs(LeftPortCircle, { show: Boolean(node.gateways?.intranet), children: [
|
|
70
|
+
/* @__PURE__ */ jsx(IconWrapper, { children: /* @__PURE__ */ jsx(GatewayIcon, { styles: { transform } }) }),
|
|
71
|
+
/* @__PURE__ */ jsx(
|
|
72
|
+
CellPortWidget,
|
|
73
|
+
{
|
|
74
|
+
port: node.getPort(
|
|
75
|
+
getCellPortId(
|
|
76
|
+
node.getID(),
|
|
77
|
+
CellBounds.WestBound,
|
|
78
|
+
PortModelAlignment.LEFT
|
|
79
|
+
)
|
|
80
|
+
),
|
|
81
|
+
engine
|
|
82
|
+
}
|
|
83
|
+
),
|
|
84
|
+
/* @__PURE__ */ jsx(
|
|
85
|
+
CellPortWidget,
|
|
86
|
+
{
|
|
87
|
+
port: node.getPort(
|
|
88
|
+
getCellPortId(
|
|
89
|
+
node.getID(),
|
|
90
|
+
CellBounds.WestBound,
|
|
91
|
+
PortModelAlignment.RIGHT
|
|
92
|
+
)
|
|
93
|
+
),
|
|
94
|
+
engine
|
|
95
|
+
}
|
|
96
|
+
)
|
|
97
|
+
] }),
|
|
98
|
+
/* @__PURE__ */ jsx(RightPortsWrapper, { children: node.connectionNodes?.map((connectionNode) => {
|
|
99
|
+
return /* @__PURE__ */ jsx(DotWrapper, { children: /* @__PURE__ */ jsxs(Dot, { children: [
|
|
100
|
+
/* @__PURE__ */ jsx(
|
|
101
|
+
CellPortWidget,
|
|
102
|
+
{
|
|
103
|
+
port: node.getPort(
|
|
104
|
+
getCellPortId(
|
|
105
|
+
node.getID(),
|
|
106
|
+
CellBounds.EastBound,
|
|
107
|
+
PortModelAlignment.LEFT,
|
|
108
|
+
connectionNode.connection.id
|
|
109
|
+
)
|
|
110
|
+
),
|
|
111
|
+
engine
|
|
112
|
+
}
|
|
113
|
+
),
|
|
114
|
+
/* @__PURE__ */ jsx(
|
|
115
|
+
CellPortWidget,
|
|
116
|
+
{
|
|
117
|
+
port: node.getPort(
|
|
118
|
+
getCellPortId(
|
|
119
|
+
node.getID(),
|
|
120
|
+
CellBounds.EastBound,
|
|
121
|
+
PortModelAlignment.RIGHT,
|
|
122
|
+
connectionNode.connection.id
|
|
123
|
+
)
|
|
124
|
+
),
|
|
125
|
+
engine
|
|
126
|
+
}
|
|
127
|
+
)
|
|
128
|
+
] }) }, connectionNode.getID());
|
|
129
|
+
}) }),
|
|
130
|
+
/* @__PURE__ */ jsx(BottomPortsWrapper, { children: node.connectorNodes?.map((connectorNode) => {
|
|
131
|
+
return /* @__PURE__ */ jsx(DotWrapper, { children: /* @__PURE__ */ jsxs(Dot, { children: [
|
|
132
|
+
/* @__PURE__ */ jsx(
|
|
133
|
+
CellPortWidget,
|
|
134
|
+
{
|
|
135
|
+
port: node.getPort(
|
|
136
|
+
getCellPortId(
|
|
137
|
+
node.getID(),
|
|
138
|
+
CellBounds.SouthBound,
|
|
139
|
+
PortModelAlignment.TOP,
|
|
140
|
+
connectorNode.connection.id
|
|
141
|
+
)
|
|
142
|
+
),
|
|
143
|
+
engine
|
|
144
|
+
}
|
|
145
|
+
),
|
|
146
|
+
/* @__PURE__ */ jsx(
|
|
147
|
+
CellPortWidget,
|
|
148
|
+
{
|
|
149
|
+
port: node.getPort(
|
|
150
|
+
getCellPortId(
|
|
151
|
+
node.getID(),
|
|
152
|
+
CellBounds.SouthBound,
|
|
153
|
+
PortModelAlignment.BOTTOM,
|
|
154
|
+
connectorNode.connection.id
|
|
155
|
+
)
|
|
156
|
+
),
|
|
157
|
+
engine
|
|
158
|
+
}
|
|
159
|
+
)
|
|
160
|
+
] }) }, connectorNode.getID());
|
|
161
|
+
}) })
|
|
162
|
+
] });
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
export { CellWidget, generateRoundedOctagonSVG };
|
|
166
|
+
//# sourceMappingURL=CellWidget.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CellWidget.esm.js","sources":["../../../../src/components/Cell/CellNode/CellWidget.tsx"],"sourcesContent":["import { useContext, useEffect, useState } from 'react';\nimport {\n DiagramEngine,\n PortModelAlignment,\n} from '@projectstorm/react-diagrams';\nimport { CellBounds, CellModel } from './CellModel';\nimport {\n CellNode,\n TopPortCircle,\n LeftPortCircle,\n BottomPortsWrapper,\n DotWrapper,\n Dot,\n IconWrapper,\n TopIconWrapper,\n RightPortsWrapper,\n} from './styles';\nimport { CellPortWidget } from '../CellPort/CellPortWidget';\nimport { CellPortModel } from '../CellPort/CellPortModel';\nimport { getCellPortId, getRoundedOctagonSVG } from '../cell-util';\nimport {\n CELL_LINE_MIN_WIDTH,\n CELL_LINE_PREVIEW_WIDTH,\n ICON_SCALE,\n MAIN_CELL,\n} from '../../../resources';\nimport { GatewayIcon } from '../../../resources/assets/icons/GatewayIcon';\nimport { DiagramContext } from '../../DiagramContext/DiagramContext';\n\nexport const generateRoundedOctagonSVG = (\n diagramHeight: number,\n radiusMultiplier: number,\n) => {\n const sideLength = (diagramHeight * 4.14) / 10;\n const { width, height, path } = getRoundedOctagonSVG(\n sideLength,\n sideLength * radiusMultiplier,\n );\n return (\n <svg width={width} height={height} id={MAIN_CELL}>\n <g transform={`rotate(${45 / 2}, ${width / 2}, ${height / 2})`}>\n <path d={path} />\n </g>\n </svg>\n );\n};\n\ninterface CellWidgetProps {\n node: CellModel;\n engine: DiagramEngine;\n}\n\nexport function CellWidget(props: CellWidgetProps) {\n const { node, engine } = props;\n\n const { zoomLevel, previewMode } = useContext(DiagramContext);\n const [cellHeight, setCellHeight] = useState<number>(node.width);\n\n useEffect(() => {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n resizeCellHeight();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [node]);\n\n useEffect(() => {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n resizeCellHeight();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [node.width]);\n\n const resizeCellHeight = () => {\n const conCount = node.connectorNodes?.length || 0;\n const connectorRowWidth = ((conCount * 100 + 40) * 100) / 40;\n setCellHeight(Math.max(connectorRowWidth, node.width));\n engine.repaintCanvas();\n };\n\n const strokeWidth = previewMode\n ? Math.max(cellHeight / 200, CELL_LINE_PREVIEW_WIDTH)\n : node.getDynamicLineWidth(zoomLevel, CELL_LINE_MIN_WIDTH);\n\n const transform = previewMode ? `scale(${ICON_SCALE.PREVIEW})` : 'none';\n\n return (\n <CellNode height={cellHeight} borderWidth={strokeWidth}>\n {generateRoundedOctagonSVG(cellHeight, 0.08)}\n\n <TopPortCircle show={Boolean(node.gateways?.internet)}>\n <TopIconWrapper>\n <GatewayIcon styles={{ transform }} />\n </TopIconWrapper>\n <CellPortWidget\n port={\n node.getPort(\n getCellPortId(\n node.getID(),\n CellBounds.NorthBound,\n PortModelAlignment.TOP,\n ),\n ) as CellPortModel\n }\n engine={engine}\n />\n <CellPortWidget\n port={\n node.getPort(\n getCellPortId(\n node.getID(),\n CellBounds.NorthBound,\n PortModelAlignment.BOTTOM,\n ),\n ) as CellPortModel\n }\n engine={engine}\n />\n </TopPortCircle>\n\n <LeftPortCircle show={Boolean(node.gateways?.intranet)}>\n <IconWrapper>\n <GatewayIcon styles={{ transform }} />\n </IconWrapper>\n <CellPortWidget\n port={\n node.getPort(\n getCellPortId(\n node.getID(),\n CellBounds.WestBound,\n PortModelAlignment.LEFT,\n ),\n ) as CellPortModel\n }\n engine={engine}\n />\n <CellPortWidget\n port={\n node.getPort(\n getCellPortId(\n node.getID(),\n CellBounds.WestBound,\n PortModelAlignment.RIGHT,\n ),\n ) as CellPortModel\n }\n engine={engine}\n />\n </LeftPortCircle>\n\n <RightPortsWrapper>\n {node.connectionNodes?.map(connectionNode => {\n return (\n <DotWrapper key={connectionNode.getID()}>\n <Dot>\n <CellPortWidget\n port={\n node.getPort(\n getCellPortId(\n node.getID(),\n CellBounds.EastBound,\n PortModelAlignment.LEFT,\n connectionNode.connection.id,\n ),\n ) as CellPortModel\n }\n engine={engine}\n />\n <CellPortWidget\n port={\n node.getPort(\n getCellPortId(\n node.getID(),\n CellBounds.EastBound,\n PortModelAlignment.RIGHT,\n connectionNode.connection.id,\n ),\n ) as CellPortModel\n }\n engine={engine}\n />\n </Dot>\n </DotWrapper>\n );\n })}\n </RightPortsWrapper>\n <BottomPortsWrapper>\n {node.connectorNodes?.map(connectorNode => {\n return (\n <DotWrapper key={connectorNode.getID()}>\n <Dot>\n <CellPortWidget\n port={\n node.getPort(\n getCellPortId(\n node.getID(),\n CellBounds.SouthBound,\n PortModelAlignment.TOP,\n connectorNode.connection.id,\n ),\n ) as CellPortModel\n }\n engine={engine}\n />\n <CellPortWidget\n port={\n node.getPort(\n getCellPortId(\n node.getID(),\n CellBounds.SouthBound,\n PortModelAlignment.BOTTOM,\n connectorNode.connection.id,\n ),\n ) as CellPortModel\n }\n engine={engine}\n />\n </Dot>\n </DotWrapper>\n );\n })}\n </BottomPortsWrapper>\n </CellNode>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import styled from '@emotion/styled';
|
|
2
|
+
import { CIRCLE_WIDTH, CELL_LINE_MIN_WIDTH, DOT_WIDTH } from '../../../resources/constants.esm.js';
|
|
3
|
+
import 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
const CellNode = styled.div`
|
|
6
|
+
width: ${(props) => props.height}px;
|
|
7
|
+
height: ${(props) => props.height}px;
|
|
8
|
+
|
|
9
|
+
display: flex;
|
|
10
|
+
flex-direction: column;
|
|
11
|
+
align-items: center;
|
|
12
|
+
justify-content: center;
|
|
13
|
+
|
|
14
|
+
text-align: center;
|
|
15
|
+
position: relative;
|
|
16
|
+
overflow: visible;
|
|
17
|
+
pointer-events: none;
|
|
18
|
+
|
|
19
|
+
#mainCell svg {
|
|
20
|
+
width: 100%;
|
|
21
|
+
height: 100%;
|
|
22
|
+
position: absolute;
|
|
23
|
+
top: 0;
|
|
24
|
+
left: 0;
|
|
25
|
+
pointer-events: none;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
#mainCell path {
|
|
29
|
+
stroke: ${({ theme }) => theme.colors.OUTLINE};
|
|
30
|
+
stroke-width: ${(props) => props.borderWidth};
|
|
31
|
+
fill: none;
|
|
32
|
+
pointer-events: none;
|
|
33
|
+
}
|
|
34
|
+
`;
|
|
35
|
+
const Circle = styled.div`
|
|
36
|
+
visibility: ${(props) => props.show ? "unset" : "hidden"};
|
|
37
|
+
width: ${CIRCLE_WIDTH}px;
|
|
38
|
+
height: ${CIRCLE_WIDTH}px;
|
|
39
|
+
border-radius: 50%;
|
|
40
|
+
border: ${CELL_LINE_MIN_WIDTH}px solid ${({ theme }) => theme.colors.OUTLINE};
|
|
41
|
+
display: flex;
|
|
42
|
+
flex-direction: column;
|
|
43
|
+
justify-content: center;
|
|
44
|
+
align-items: center;
|
|
45
|
+
background-color: ${({ theme }) => theme.colors.SURFACE};
|
|
46
|
+
`;
|
|
47
|
+
const Dot = styled.div`
|
|
48
|
+
width: ${DOT_WIDTH}px;
|
|
49
|
+
height: ${DOT_WIDTH}px;
|
|
50
|
+
border-radius: 50%;
|
|
51
|
+
border: ${CELL_LINE_MIN_WIDTH}px solid ${({ theme }) => theme.colors.OUTLINE};
|
|
52
|
+
display: flex;
|
|
53
|
+
flex-direction: column;
|
|
54
|
+
justify-content: center;
|
|
55
|
+
align-items: center;
|
|
56
|
+
background-color: ${({ theme }) => theme.colors.SURFACE_DIM};
|
|
57
|
+
`;
|
|
58
|
+
const TopPortCircle = styled(Circle)`
|
|
59
|
+
position: absolute;
|
|
60
|
+
top: -${CIRCLE_WIDTH / 2}px;
|
|
61
|
+
left: 50% - ${CIRCLE_WIDTH / 2}px;
|
|
62
|
+
`;
|
|
63
|
+
const LeftPortCircle = styled(Circle)`
|
|
64
|
+
position: absolute;
|
|
65
|
+
top: 50% - ${CIRCLE_WIDTH / 2}px;
|
|
66
|
+
left: -${CIRCLE_WIDTH / 2}px;
|
|
67
|
+
`;
|
|
68
|
+
styled(Dot)`
|
|
69
|
+
position: absolute;
|
|
70
|
+
top: 50% - ${DOT_WIDTH / 2 + CELL_LINE_MIN_WIDTH}px;
|
|
71
|
+
right: -${DOT_WIDTH / 2 + CELL_LINE_MIN_WIDTH}px;
|
|
72
|
+
`;
|
|
73
|
+
const BottomPortsWrapper = styled.div`
|
|
74
|
+
position: absolute;
|
|
75
|
+
bottom: -${DOT_WIDTH / 2 + CELL_LINE_MIN_WIDTH}px;
|
|
76
|
+
display: flex;
|
|
77
|
+
flex-direction: row;
|
|
78
|
+
justify-content: center;
|
|
79
|
+
gap: ${CIRCLE_WIDTH}px;
|
|
80
|
+
`;
|
|
81
|
+
const RightPortsWrapper = styled.div`
|
|
82
|
+
position: absolute;
|
|
83
|
+
right: -${DOT_WIDTH / 2 + CELL_LINE_MIN_WIDTH}px;
|
|
84
|
+
display: flex;
|
|
85
|
+
flex-direction: column;
|
|
86
|
+
align-items: center;
|
|
87
|
+
gap: ${CIRCLE_WIDTH}px;
|
|
88
|
+
`;
|
|
89
|
+
const DotWrapper = styled.div`
|
|
90
|
+
display: flex;
|
|
91
|
+
flex-direction: column;
|
|
92
|
+
align-items: center;
|
|
93
|
+
`;
|
|
94
|
+
styled.div`
|
|
95
|
+
margin-top: 10px;
|
|
96
|
+
`;
|
|
97
|
+
const PortLabel = styled.div`
|
|
98
|
+
position: absolute;
|
|
99
|
+
display: flex;
|
|
100
|
+
flex-direction: column;
|
|
101
|
+
align-items: flex-start;
|
|
102
|
+
font-family: 'GilmerMedium';
|
|
103
|
+
color: ${({ theme }) => theme.colors.ON_SURFACE_VARIANT};
|
|
104
|
+
font-size: 20px;
|
|
105
|
+
span {
|
|
106
|
+
text-align: left;
|
|
107
|
+
width: max-content;
|
|
108
|
+
}
|
|
109
|
+
`;
|
|
110
|
+
styled(PortLabel)`
|
|
111
|
+
top: -24px;
|
|
112
|
+
right: -116px;
|
|
113
|
+
`;
|
|
114
|
+
styled(PortLabel)`
|
|
115
|
+
top: -24px;
|
|
116
|
+
left: -116px;
|
|
117
|
+
align-items: flex-end;
|
|
118
|
+
span {
|
|
119
|
+
text-align: right;
|
|
120
|
+
}
|
|
121
|
+
`;
|
|
122
|
+
styled(PortLabel)`
|
|
123
|
+
top: -32px;
|
|
124
|
+
right: -116px;
|
|
125
|
+
`;
|
|
126
|
+
styled(PortLabel)`
|
|
127
|
+
bottom: -36px;
|
|
128
|
+
left: -132px;
|
|
129
|
+
align-items: flex-end;
|
|
130
|
+
span {
|
|
131
|
+
text-align: right;
|
|
132
|
+
}
|
|
133
|
+
`;
|
|
134
|
+
const IconWrapper = styled.div`
|
|
135
|
+
height: 32px;
|
|
136
|
+
width: 32px;
|
|
137
|
+
color: ${({ theme }) => theme.colors.ON_SURFACE_VARIANT};
|
|
138
|
+
font-size: 28px;
|
|
139
|
+
`;
|
|
140
|
+
const TopIconWrapper = styled.div`
|
|
141
|
+
height: 32px;
|
|
142
|
+
width: 32px;
|
|
143
|
+
color: ${({ theme }) => theme.colors.ON_SURFACE_VARIANT};
|
|
144
|
+
font-size: 28px;
|
|
145
|
+
transform: rotate(90deg);
|
|
146
|
+
`;
|
|
147
|
+
|
|
148
|
+
export { BottomPortsWrapper, CellNode, Circle, Dot, DotWrapper, IconWrapper, LeftPortCircle, PortLabel, RightPortsWrapper, TopIconWrapper, TopPortCircle };
|
|
149
|
+
//# sourceMappingURL=styles.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.esm.js","sources":["../../../../src/components/Cell/CellNode/styles.ts"],"sourcesContent":["import styled from '@emotion/styled';\nimport {\n CIRCLE_WIDTH,\n DOT_WIDTH,\n CELL_LINE_MIN_WIDTH,\n} from '../../../resources';\n\ninterface StyleProps {\n isSelected?: boolean;\n isClickable?: boolean;\n isCollapsed?: boolean;\n isFocused?: boolean;\n height?: number;\n borderWidth: number;\n}\n\nexport const CellNode = styled.div<StyleProps>`\n width: ${(props: StyleProps) => props.height}px;\n height: ${(props: StyleProps) => props.height}px;\n\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n\n text-align: center;\n position: relative;\n overflow: visible;\n pointer-events: none;\n\n #mainCell svg {\n width: 100%;\n height: 100%;\n position: absolute;\n top: 0;\n left: 0;\n pointer-events: none;\n }\n\n #mainCell path {\n stroke: ${({ theme }) => theme.colors.OUTLINE};\n stroke-width: ${(props: StyleProps) => props.borderWidth};\n fill: none;\n pointer-events: none;\n }\n`;\n\ninterface ElementProps {\n show: boolean;\n}\n\nexport const Circle = styled.div<ElementProps>`\n visibility: ${(props: ElementProps) => (props.show ? 'unset' : 'hidden')};\n width: ${CIRCLE_WIDTH}px;\n height: ${CIRCLE_WIDTH}px;\n border-radius: 50%;\n border: ${CELL_LINE_MIN_WIDTH}px solid ${({ theme }) => theme.colors.OUTLINE};\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n background-color: ${({ theme }) => theme.colors.SURFACE};\n`;\n\nexport const Dot = styled.div<any>`\n width: ${DOT_WIDTH}px;\n height: ${DOT_WIDTH}px;\n border-radius: 50%;\n border: ${CELL_LINE_MIN_WIDTH}px solid ${({ theme }) => theme.colors.OUTLINE};\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n background-color: ${({ theme }) => theme.colors.SURFACE_DIM};\n`;\n\nexport const TopPortCircle: React.FC<any> = styled(Circle)`\n position: absolute;\n top: -${CIRCLE_WIDTH / 2}px;\n left: 50% - ${CIRCLE_WIDTH / 2}px;\n`;\n\nexport const LeftPortCircle: React.FC<any> = styled(Circle)`\n position: absolute;\n top: 50% - ${CIRCLE_WIDTH / 2}px;\n left: -${CIRCLE_WIDTH / 2}px;\n`;\n\nexport const RightPortCircle: React.FC<any> = styled(Dot)`\n position: absolute;\n top: 50% - ${DOT_WIDTH / 2 + CELL_LINE_MIN_WIDTH}px;\n right: -${DOT_WIDTH / 2 + CELL_LINE_MIN_WIDTH}px;\n`;\n\nexport const BottomPortsWrapper: React.FC<any> = styled.div`\n position: absolute;\n bottom: -${DOT_WIDTH / 2 + CELL_LINE_MIN_WIDTH}px;\n display: flex;\n flex-direction: row;\n justify-content: center;\n gap: ${CIRCLE_WIDTH}px;\n`;\n\nexport const RightPortsWrapper: React.FC<any> = styled.div`\n position: absolute;\n right: -${DOT_WIDTH / 2 + CELL_LINE_MIN_WIDTH}px;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: ${CIRCLE_WIDTH}px;\n`;\n\nexport const DotWrapper: React.FC<any> = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\n\nexport const Label: React.FC<any> = styled.div`\n margin-top: 10px;\n`;\n\nexport const PortLabel: React.FC<any> = styled.div`\n position: absolute;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n font-family: 'GilmerMedium';\n color: ${({ theme }) => theme.colors.ON_SURFACE_VARIANT};\n font-size: 20px;\n span {\n text-align: left;\n width: max-content;\n }\n`;\n\nexport const TopPortLabel: React.FC<any> = styled(PortLabel)`\n top: -24px;\n right: -116px;\n`;\n\nexport const LeftPortLabel: React.FC<any> = styled(PortLabel)`\n top: -24px;\n left: -116px;\n align-items: flex-end;\n span {\n text-align: right;\n }\n`;\n\nexport const RightPortLabel: React.FC<any> = styled(PortLabel)`\n top: -32px;\n right: -116px;\n`;\n\nexport const BottomPortLabel: React.FC<any> = styled(PortLabel)`\n bottom: -36px;\n left: -132px;\n align-items: flex-end;\n span {\n text-align: right;\n }\n`;\n\nexport const IconWrapper: React.FC<any> = styled.div`\n height: 32px;\n width: 32px;\n color: ${({ theme }) => theme.colors.ON_SURFACE_VARIANT};\n font-size: 28px;\n`;\n\nexport const TopIconWrapper: React.FC<any> = styled.div`\n height: 32px;\n width: 32px;\n color: ${({ theme }) => theme.colors.ON_SURFACE_VARIANT};\n font-size: 28px;\n transform: rotate(90deg);\n`;\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { AbstractModelFactory } from '@projectstorm/react-canvas-core';
|
|
2
|
+
import { CellPortModel } from './CellPortModel.esm.js';
|
|
3
|
+
|
|
4
|
+
class CellPortFactory extends AbstractModelFactory {
|
|
5
|
+
constructor() {
|
|
6
|
+
super("cellPort");
|
|
7
|
+
}
|
|
8
|
+
generateModel(event) {
|
|
9
|
+
return new CellPortModel(
|
|
10
|
+
event.initialConfig.id,
|
|
11
|
+
event.initialConfig.portType
|
|
12
|
+
);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export { CellPortFactory };
|
|
17
|
+
//# sourceMappingURL=CellPortFactory.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CellPortFactory.esm.js","sources":["../../../../src/components/Cell/CellPort/CellPortFactory.tsx"],"sourcesContent":["import { DiagramEngine, PortModel } from '@projectstorm/react-diagrams';\nimport { AbstractModelFactory } from '@projectstorm/react-canvas-core';\nimport { CellPortModel } from './CellPortModel';\n\nexport class CellPortFactory extends AbstractModelFactory<\n PortModel,\n DiagramEngine\n> {\n constructor() {\n super('cellPort');\n }\n\n generateModel(event: { initialConfig: any }): CellPortModel {\n return new CellPortModel(\n event.initialConfig.id,\n event.initialConfig.portType,\n );\n }\n}\n"],"names":[],"mappings":";;;AAIO,MAAM,wBAAwB,oBAAA,CAGnC;AAAA,EACA,WAAA,GAAc;AACZ,IAAA,KAAA,CAAM,UAAU,CAAA;AAAA,EAClB;AAAA,EAEA,cAAc,KAAA,EAA8C;AAC1D,IAAA,OAAO,IAAI,aAAA;AAAA,MACT,MAAM,aAAA,CAAc,EAAA;AAAA,MACpB,MAAM,aAAA,CAAc;AAAA,KACtB;AAAA,EACF;AACF;;;;"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { PortModel } from '@projectstorm/react-diagrams';
|
|
2
|
+
|
|
3
|
+
class CellPortModel extends PortModel {
|
|
4
|
+
constructor(id, portType) {
|
|
5
|
+
super({
|
|
6
|
+
type: "cellPort",
|
|
7
|
+
name: `${portType}-${id}`,
|
|
8
|
+
id: `${portType}-${id}`,
|
|
9
|
+
alignment: portType
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
isLocked() {
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export { CellPortModel };
|
|
18
|
+
//# sourceMappingURL=CellPortModel.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CellPortModel.esm.js","sources":["../../../../src/components/Cell/CellPort/CellPortModel.ts"],"sourcesContent":["import { PortModel, PortModelAlignment } from '@projectstorm/react-diagrams';\n\nexport class CellPortModel extends PortModel {\n constructor(id: string, portType: PortModelAlignment) {\n super({\n type: 'cellPort',\n name: `${portType}-${id}`,\n id: `${portType}-${id}`,\n alignment: portType,\n });\n }\n\n isLocked(): boolean {\n return true;\n }\n}\n"],"names":[],"mappings":";;AAEO,MAAM,sBAAsB,SAAA,CAAU;AAAA,EAC3C,WAAA,CAAY,IAAY,QAAA,EAA8B;AACpD,IAAA,KAAA,CAAM;AAAA,MACJ,IAAA,EAAM,UAAA;AAAA,MACN,IAAA,EAAM,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA;AAAA,MACvB,EAAA,EAAI,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA,CAAA;AAAA,MACrB,SAAA,EAAW;AAAA,KACZ,CAAA;AAAA,EACH;AAAA,EAEA,QAAA,GAAoB;AAClB,IAAA,OAAO,IAAA;AAAA,EACT;AACF;;;;"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { PortWidget, PortModelAlignment } from '@projectstorm/react-diagrams';
|
|
3
|
+
import { sidePortStyles, inclusionPortStyles } from './styles.esm.js';
|
|
4
|
+
|
|
5
|
+
function getPortStyles(alignment) {
|
|
6
|
+
if (alignment === PortModelAlignment.LEFT) {
|
|
7
|
+
return { left: 0, ...sidePortStyles };
|
|
8
|
+
}
|
|
9
|
+
if (alignment === PortModelAlignment.RIGHT) {
|
|
10
|
+
return { right: 0, ...sidePortStyles };
|
|
11
|
+
}
|
|
12
|
+
if (alignment === PortModelAlignment.TOP) {
|
|
13
|
+
return { top: 0, ...inclusionPortStyles };
|
|
14
|
+
}
|
|
15
|
+
return { bottom: 0, ...inclusionPortStyles };
|
|
16
|
+
}
|
|
17
|
+
function CellPortWidget(props) {
|
|
18
|
+
const { port, engine } = props;
|
|
19
|
+
const portStyles = getPortStyles(port.getOptions().alignment);
|
|
20
|
+
return /* @__PURE__ */ jsx(PortWidget, { engine, port, style: portStyles });
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export { CellPortWidget };
|
|
24
|
+
//# sourceMappingURL=CellPortWidget.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CellPortWidget.esm.js","sources":["../../../../src/components/Cell/CellPort/CellPortWidget.tsx"],"sourcesContent":["import { CSSProperties } from 'react';\nimport {\n DiagramEngine,\n PortModelAlignment,\n PortWidget,\n} from '@projectstorm/react-diagrams';\nimport { CellPortModel } from './CellPortModel';\nimport { inclusionPortStyles, sidePortStyles } from './styles';\n\ninterface CustomPortProps {\n port: CellPortModel;\n engine: DiagramEngine;\n}\n\nfunction getPortStyles(\n alignment: PortModelAlignment | undefined,\n): CSSProperties {\n if (alignment === PortModelAlignment.LEFT) {\n return { left: 0, ...sidePortStyles };\n }\n if (alignment === PortModelAlignment.RIGHT) {\n return { right: 0, ...sidePortStyles };\n }\n if (alignment === PortModelAlignment.TOP) {\n return { top: 0, ...inclusionPortStyles };\n }\n return { bottom: 0, ...inclusionPortStyles };\n}\n\nexport function CellPortWidget(props: CustomPortProps) {\n const { port, engine } = props;\n const portStyles: CSSProperties = getPortStyles(port.getOptions().alignment);\n\n return <PortWidget engine={engine} port={port} style={portStyles} />;\n}\n"],"names":[],"mappings":";;;;AAcA,SAAS,cACP,SAAA,EACe;AACf,EAAA,IAAI,SAAA,KAAc,mBAAmB,IAAA,EAAM;AACzC,IAAA,OAAO,EAAE,IAAA,EAAM,CAAA,EAAG,GAAG,cAAA,EAAe;AAAA,EACtC;AACA,EAAA,IAAI,SAAA,KAAc,mBAAmB,KAAA,EAAO;AAC1C,IAAA,OAAO,EAAE,KAAA,EAAO,CAAA,EAAG,GAAG,cAAA,EAAe;AAAA,EACvC;AACA,EAAA,IAAI,SAAA,KAAc,mBAAmB,GAAA,EAAK;AACxC,IAAA,OAAO,EAAE,GAAA,EAAK,CAAA,EAAG,GAAG,mBAAA,EAAoB;AAAA,EAC1C;AACA,EAAA,OAAO,EAAE,MAAA,EAAQ,CAAA,EAAG,GAAG,mBAAA,EAAoB;AAC7C;AAEO,SAAS,eAAe,KAAA,EAAwB;AACrD,EAAA,MAAM,EAAE,IAAA,EAAM,MAAA,EAAO,GAAI,KAAA;AACzB,EAAA,MAAM,UAAA,GAA4B,aAAA,CAAc,IAAA,CAAK,UAAA,GAAa,SAAS,CAAA;AAE3E,EAAA,uBAAO,GAAA,CAAC,UAAA,EAAA,EAAW,MAAA,EAAgB,IAAA,EAAY,OAAO,UAAA,EAAY,CAAA;AACpE;;;;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
const sidePortStyles = {
|
|
2
|
+
height: "0.5px",
|
|
3
|
+
position: "absolute",
|
|
4
|
+
width: "8px"
|
|
5
|
+
};
|
|
6
|
+
const inclusionPortStyles = {
|
|
7
|
+
height: "2px",
|
|
8
|
+
position: "absolute",
|
|
9
|
+
width: "2px"
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export { inclusionPortStyles, sidePortStyles };
|
|
13
|
+
//# sourceMappingURL=styles.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.esm.js","sources":["../../../../src/components/Cell/CellPort/styles.ts"],"sourcesContent":["import { CSSProperties } from 'react';\n\nexport const sidePortStyles: CSSProperties = {\n height: '0.5px',\n position: 'absolute',\n width: '8px',\n};\n\nexport const inclusionPortStyles: CSSProperties = {\n height: '2px',\n position: 'absolute',\n width: '2px',\n};\n"],"names":[],"mappings":"AAEO,MAAM,cAAA,GAAgC;AAAA,EAC3C,MAAA,EAAQ,OAAA;AAAA,EACR,QAAA,EAAU,UAAA;AAAA,EACV,KAAA,EAAO;AACT;AAEO,MAAM,mBAAA,GAAqC;AAAA,EAChD,MAAA,EAAQ,KAAA;AAAA,EACR,QAAA,EAAU,UAAA;AAAA,EACV,KAAA,EAAO;AACT;;;;"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { AbstractReactFactory } from '@projectstorm/react-canvas-core';
|
|
3
|
+
import { EmptyModel } from './EmptyModel.esm.js';
|
|
4
|
+
import { EmptyWidget } from './EmptyWidget.esm.js';
|
|
5
|
+
import { EMPTY_NODE } from '../../../resources/constants.esm.js';
|
|
6
|
+
|
|
7
|
+
class EmptyFactory extends AbstractReactFactory {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(EMPTY_NODE);
|
|
10
|
+
}
|
|
11
|
+
generateReactWidget(event) {
|
|
12
|
+
return /* @__PURE__ */ jsx(EmptyWidget, { engine: this.engine, node: event.model });
|
|
13
|
+
}
|
|
14
|
+
generateModel(event) {
|
|
15
|
+
return new EmptyModel(event.initialConfig.key, event.initialConfig.cell);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export { EmptyFactory };
|
|
20
|
+
//# sourceMappingURL=EmptyFactory.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmptyFactory.esm.js","sources":["../../../../src/components/Cell/EmptyNode/EmptyFactory.tsx"],"sourcesContent":["import { AbstractReactFactory } from '@projectstorm/react-canvas-core';\nimport { DiagramEngine } from '@projectstorm/react-diagrams-core';\nimport { EmptyModel } from './EmptyModel';\nimport { EmptyWidget } from './EmptyWidget';\nimport { EMPTY_NODE } from '../../../resources';\n\nexport class EmptyFactory extends AbstractReactFactory<\n EmptyModel,\n DiagramEngine\n> {\n constructor() {\n super(EMPTY_NODE);\n }\n\n generateReactWidget(event: { model: EmptyModel }): JSX.Element {\n return <EmptyWidget engine={this.engine} node={event.model} />;\n }\n\n generateModel(event: { initialConfig: any }) {\n return new EmptyModel(event.initialConfig.key, event.initialConfig.cell);\n }\n}\n"],"names":[],"mappings":";;;;;;AAMO,MAAM,qBAAqB,oBAAA,CAGhC;AAAA,EACA,WAAA,GAAc;AACZ,IAAA,KAAA,CAAM,UAAU,CAAA;AAAA,EAClB;AAAA,EAEA,oBAAoB,KAAA,EAA2C;AAC7D,IAAA,2BAAQ,WAAA,EAAA,EAAY,MAAA,EAAQ,KAAK,MAAA,EAAQ,IAAA,EAAM,MAAM,KAAA,EAAO,CAAA;AAAA,EAC9D;AAAA,EAEA,cAAc,KAAA,EAA+B;AAC3C,IAAA,OAAO,IAAI,UAAA,CAAW,KAAA,CAAM,cAAc,GAAA,EAAK,KAAA,CAAM,cAAc,IAAI,CAAA;AAAA,EACzE;AACF;;;;"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { PortModelAlignment } from '@projectstorm/react-diagrams';
|
|
2
|
+
import { SharedNodeModel } from '../../SharedNode/SharedNode.esm.js';
|
|
3
|
+
import { CellPortModel } from '../CellPort/CellPortModel.esm.js';
|
|
4
|
+
import { getEmptyNodeName } from '../cell-util.esm.js';
|
|
5
|
+
import { EMPTY_NODE, CIRCLE_WIDTH } from '../../../resources/constants.esm.js';
|
|
6
|
+
import 'react/jsx-runtime';
|
|
7
|
+
|
|
8
|
+
class EmptyModel extends SharedNodeModel {
|
|
9
|
+
bound;
|
|
10
|
+
width;
|
|
11
|
+
constructor(bound, width, suffix) {
|
|
12
|
+
const name = getEmptyNodeName(bound, suffix ?? "");
|
|
13
|
+
super(EMPTY_NODE, name);
|
|
14
|
+
this.bound = bound;
|
|
15
|
+
this.width = width || CIRCLE_WIDTH;
|
|
16
|
+
this.setLocked(true);
|
|
17
|
+
this.addPort(new CellPortModel(name, PortModelAlignment.TOP));
|
|
18
|
+
this.addPort(new CellPortModel(name, PortModelAlignment.BOTTOM));
|
|
19
|
+
this.addPort(new CellPortModel(name, PortModelAlignment.LEFT));
|
|
20
|
+
this.addPort(new CellPortModel(name, PortModelAlignment.RIGHT));
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export { EmptyModel };
|
|
25
|
+
//# sourceMappingURL=EmptyModel.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmptyModel.esm.js","sources":["../../../../src/components/Cell/EmptyNode/EmptyModel.ts"],"sourcesContent":["import { PortModelAlignment } from '@projectstorm/react-diagrams';\nimport { SharedNodeModel } from '../../SharedNode/SharedNode';\nimport { CellPortModel } from '../CellPort/CellPortModel';\nimport { getEmptyNodeName } from '../cell-util';\nimport { CellBounds } from '../CellNode/CellModel';\nimport { CIRCLE_WIDTH, EMPTY_NODE } from '../../../resources';\n\nexport class EmptyModel extends SharedNodeModel {\n readonly bound: CellBounds;\n readonly width: number;\n\n constructor(bound: CellBounds, width?: number, suffix?: string) {\n const name = getEmptyNodeName(bound, suffix ?? '');\n super(EMPTY_NODE, name);\n this.bound = bound;\n this.width = width || CIRCLE_WIDTH;\n this.setLocked(true);\n\n this.addPort(new CellPortModel(name, PortModelAlignment.TOP));\n this.addPort(new CellPortModel(name, PortModelAlignment.BOTTOM));\n this.addPort(new CellPortModel(name, PortModelAlignment.LEFT));\n this.addPort(new CellPortModel(name, PortModelAlignment.RIGHT));\n }\n}\n"],"names":[],"mappings":";;;;;;;AAOO,MAAM,mBAAmB,eAAA,CAAgB;AAAA,EACrC,KAAA;AAAA,EACA,KAAA;AAAA,EAET,WAAA,CAAY,KAAA,EAAmB,KAAA,EAAgB,MAAA,EAAiB;AAC9D,IAAA,MAAM,IAAA,GAAO,gBAAA,CAAiB,KAAA,EAAO,MAAA,IAAU,EAAE,CAAA;AACjD,IAAA,KAAA,CAAM,YAAY,IAAI,CAAA;AACtB,IAAA,IAAA,CAAK,KAAA,GAAQ,KAAA;AACb,IAAA,IAAA,CAAK,QAAQ,KAAA,IAAS,YAAA;AACtB,IAAA,IAAA,CAAK,UAAU,IAAI,CAAA;AAEnB,IAAA,IAAA,CAAK,QAAQ,IAAI,aAAA,CAAc,IAAA,EAAM,kBAAA,CAAmB,GAAG,CAAC,CAAA;AAC5D,IAAA,IAAA,CAAK,QAAQ,IAAI,aAAA,CAAc,IAAA,EAAM,kBAAA,CAAmB,MAAM,CAAC,CAAA;AAC/D,IAAA,IAAA,CAAK,QAAQ,IAAI,aAAA,CAAc,IAAA,EAAM,kBAAA,CAAmB,IAAI,CAAC,CAAA;AAC7D,IAAA,IAAA,CAAK,QAAQ,IAAI,aAAA,CAAc,IAAA,EAAM,kBAAA,CAAmB,KAAK,CAAC,CAAA;AAAA,EAChE;AACF;;;;"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { PortModelAlignment } from '@projectstorm/react-diagrams';
|
|
3
|
+
import { EmptyNode } from './styles.esm.js';
|
|
4
|
+
import { CellPortWidget } from '../CellPort/CellPortWidget.esm.js';
|
|
5
|
+
import { getNodePortId } from '../cell-util.esm.js';
|
|
6
|
+
import { useDiagramContext } from '../../DiagramContext/DiagramContext.esm.js';
|
|
7
|
+
|
|
8
|
+
function EmptyWidget(props) {
|
|
9
|
+
const { node, engine } = props;
|
|
10
|
+
const { previewMode } = useDiagramContext();
|
|
11
|
+
return /* @__PURE__ */ jsxs(EmptyNode, { width: node.width, previewMode, children: [
|
|
12
|
+
/* @__PURE__ */ jsx(
|
|
13
|
+
CellPortWidget,
|
|
14
|
+
{
|
|
15
|
+
port: node.getPort(
|
|
16
|
+
getNodePortId(node.getID(), PortModelAlignment.TOP)
|
|
17
|
+
),
|
|
18
|
+
engine
|
|
19
|
+
}
|
|
20
|
+
),
|
|
21
|
+
/* @__PURE__ */ jsx(
|
|
22
|
+
CellPortWidget,
|
|
23
|
+
{
|
|
24
|
+
port: node.getPort(
|
|
25
|
+
getNodePortId(node.getID(), PortModelAlignment.BOTTOM)
|
|
26
|
+
),
|
|
27
|
+
engine
|
|
28
|
+
}
|
|
29
|
+
),
|
|
30
|
+
/* @__PURE__ */ jsx(
|
|
31
|
+
CellPortWidget,
|
|
32
|
+
{
|
|
33
|
+
port: node.getPort(
|
|
34
|
+
getNodePortId(node.getID(), PortModelAlignment.LEFT)
|
|
35
|
+
),
|
|
36
|
+
engine
|
|
37
|
+
}
|
|
38
|
+
),
|
|
39
|
+
/* @__PURE__ */ jsx(
|
|
40
|
+
CellPortWidget,
|
|
41
|
+
{
|
|
42
|
+
port: node.getPort(
|
|
43
|
+
getNodePortId(node.getID(), PortModelAlignment.RIGHT)
|
|
44
|
+
),
|
|
45
|
+
engine
|
|
46
|
+
}
|
|
47
|
+
)
|
|
48
|
+
] });
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export { EmptyWidget };
|
|
52
|
+
//# sourceMappingURL=EmptyWidget.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmptyWidget.esm.js","sources":["../../../../src/components/Cell/EmptyNode/EmptyWidget.tsx"],"sourcesContent":["import {\n DiagramEngine,\n PortModelAlignment,\n} from '@projectstorm/react-diagrams';\nimport { EmptyModel } from './EmptyModel';\nimport { EmptyNode } from './styles';\nimport { CellPortWidget } from '../CellPort/CellPortWidget';\nimport { CellPortModel } from '../CellPort/CellPortModel';\nimport { getNodePortId } from '../cell-util';\nimport { useDiagramContext } from '../../DiagramContext/DiagramContext';\n\ninterface EmptyWidgetProps {\n node: EmptyModel;\n engine: DiagramEngine;\n}\n\nexport function EmptyWidget(props: EmptyWidgetProps) {\n const { node, engine } = props;\n const { previewMode } = useDiagramContext();\n\n return (\n <EmptyNode width={node.width} previewMode={previewMode}>\n <CellPortWidget\n port={\n node.getPort(\n getNodePortId(node.getID(), PortModelAlignment.TOP),\n ) as CellPortModel\n }\n engine={engine}\n />\n <CellPortWidget\n port={\n node.getPort(\n getNodePortId(node.getID(), PortModelAlignment.BOTTOM),\n ) as CellPortModel\n }\n engine={engine}\n />\n <CellPortWidget\n port={\n node.getPort(\n getNodePortId(node.getID(), PortModelAlignment.LEFT),\n ) as CellPortModel\n }\n engine={engine}\n />\n <CellPortWidget\n port={\n node.getPort(\n getNodePortId(node.getID(), PortModelAlignment.RIGHT),\n ) as CellPortModel\n }\n engine={engine}\n />\n </EmptyNode>\n );\n}\n"],"names":[],"mappings":";;;;;;;AAgBO,SAAS,YAAY,KAAA,EAAyB;AACnD,EAAA,MAAM,EAAE,IAAA,EAAM,MAAA,EAAO,GAAI,KAAA;AACzB,EAAA,MAAM,EAAE,WAAA,EAAY,GAAI,iBAAA,EAAkB;AAE1C,EAAA,uBACE,IAAA,CAAC,SAAA,EAAA,EAAU,KAAA,EAAO,IAAA,CAAK,OAAO,WAAA,EAC5B,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QACC,MACE,IAAA,CAAK,OAAA;AAAA,UACH,aAAA,CAAc,IAAA,CAAK,KAAA,EAAM,EAAG,mBAAmB,GAAG;AAAA,SACpD;AAAA,QAEF;AAAA;AAAA,KACF;AAAA,oBACA,GAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QACC,MACE,IAAA,CAAK,OAAA;AAAA,UACH,aAAA,CAAc,IAAA,CAAK,KAAA,EAAM,EAAG,mBAAmB,MAAM;AAAA,SACvD;AAAA,QAEF;AAAA;AAAA,KACF;AAAA,oBACA,GAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QACC,MACE,IAAA,CAAK,OAAA;AAAA,UACH,aAAA,CAAc,IAAA,CAAK,KAAA,EAAM,EAAG,mBAAmB,IAAI;AAAA,SACrD;AAAA,QAEF;AAAA;AAAA,KACF;AAAA,oBACA,GAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QACC,MACE,IAAA,CAAK,OAAA;AAAA,UACH,aAAA,CAAc,IAAA,CAAK,KAAA,EAAM,EAAG,mBAAmB,KAAK;AAAA,SACtD;AAAA,QAEF;AAAA;AAAA;AACF,GAAA,EACF,CAAA;AAEJ;;;;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import styled from '@emotion/styled';
|
|
2
|
+
|
|
3
|
+
const EmptyNode = styled.div`
|
|
4
|
+
width: ${(props) => props.width}px;
|
|
5
|
+
height: ${(props) => props.width}px;
|
|
6
|
+
border-radius: 50%;
|
|
7
|
+
background-color: none;
|
|
8
|
+
cursor: ${(props) => props.previewMode ? "pointer" : "move"};
|
|
9
|
+
`;
|
|
10
|
+
|
|
11
|
+
export { EmptyNode };
|
|
12
|
+
//# sourceMappingURL=styles.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.esm.js","sources":["../../../../src/components/Cell/EmptyNode/styles.ts"],"sourcesContent":["import styled from '@emotion/styled';\n\ninterface StyleProps {\n width: number;\n previewMode: boolean;\n}\n\nexport const EmptyNode = styled.div<any>`\n width: ${(props: StyleProps) => props.width}px;\n height: ${(props: StyleProps) => props.width}px;\n border-radius: 50%;\n background-color: none;\n cursor: ${(props: StyleProps) => (props.previewMode ? 'pointer' : 'move')};\n`;\n"],"names":[],"mappings":";;AAOO,MAAM,YAAY,MAAA,CAAO,GAAA;AAAA,SAAA,EACrB,CAAC,KAAA,KAAsB,KAAA,CAAM,KAAK,CAAA;AAAA,UAAA,EACjC,CAAC,KAAA,KAAsB,KAAA,CAAM,KAAK,CAAA;AAAA;AAAA;AAAA,UAAA,EAGlC,CAAC,KAAA,KAAuB,KAAA,CAAM,WAAA,GAAc,YAAY,MAAO,CAAA;AAAA;;;;"}
|