@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,68 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useState, useContext, useEffect } from 'react';
|
|
3
|
+
import { EXTERNAL_LINK, LINK_WIDTH } from '../../../resources/constants.esm.js';
|
|
4
|
+
import { DiagramContext } from '../../DiagramContext/DiagramContext.esm.js';
|
|
5
|
+
import { useColors } from '../../../theme/ThemeContext.esm.js';
|
|
6
|
+
import '../../../theme/CellDiagramThemeProvider.esm.js';
|
|
7
|
+
|
|
8
|
+
function ExternalLinkWidget(props) {
|
|
9
|
+
const { link } = props;
|
|
10
|
+
const colors = useColors();
|
|
11
|
+
const [isSelected, setIsSelected] = useState(false);
|
|
12
|
+
const { previewMode } = useContext(DiagramContext);
|
|
13
|
+
useEffect(() => {
|
|
14
|
+
const listener = link.registerListener({
|
|
15
|
+
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
16
|
+
SELECT: selectPath,
|
|
17
|
+
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
18
|
+
UNSELECT: unselectPath
|
|
19
|
+
});
|
|
20
|
+
return () => {
|
|
21
|
+
link.deregisterListener(listener);
|
|
22
|
+
};
|
|
23
|
+
}, [link]);
|
|
24
|
+
const selectPath = () => {
|
|
25
|
+
setIsSelected(true);
|
|
26
|
+
link.selectLinkedNodes();
|
|
27
|
+
};
|
|
28
|
+
const unselectPath = () => {
|
|
29
|
+
setIsSelected(false);
|
|
30
|
+
link.resetLinkedNodes();
|
|
31
|
+
};
|
|
32
|
+
return /* @__PURE__ */ jsxs("g", { className: EXTERNAL_LINK, children: [
|
|
33
|
+
/* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsx(
|
|
34
|
+
"marker",
|
|
35
|
+
{
|
|
36
|
+
id: link.getLinkArrowId(),
|
|
37
|
+
markerWidth: "8",
|
|
38
|
+
markerHeight: "8",
|
|
39
|
+
markerUnits: "strokeWidth",
|
|
40
|
+
refX: "4",
|
|
41
|
+
refY: "3",
|
|
42
|
+
viewBox: "0 0 6 6",
|
|
43
|
+
orient: "auto",
|
|
44
|
+
children: /* @__PURE__ */ jsx(
|
|
45
|
+
"polygon",
|
|
46
|
+
{
|
|
47
|
+
points: "0,6 0,0 5,3",
|
|
48
|
+
fill: isSelected ? colors.SECONDARY : colors.OUTLINE
|
|
49
|
+
}
|
|
50
|
+
)
|
|
51
|
+
}
|
|
52
|
+
) }),
|
|
53
|
+
/* @__PURE__ */ jsx(
|
|
54
|
+
"path",
|
|
55
|
+
{
|
|
56
|
+
id: link.getID(),
|
|
57
|
+
d: link.withRightOffset ? link.getCurvePathWithOffset() : link.getCurvePath(),
|
|
58
|
+
fill: "none",
|
|
59
|
+
stroke: isSelected ? colors.SECONDARY : colors.OUTLINE,
|
|
60
|
+
strokeWidth: previewMode ? LINK_WIDTH.PREVIEW : LINK_WIDTH.DEFAULT,
|
|
61
|
+
markerEnd: `url(#${link.getLinkArrowId()})`
|
|
62
|
+
}
|
|
63
|
+
)
|
|
64
|
+
] });
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export { ExternalLinkWidget };
|
|
68
|
+
//# sourceMappingURL=ExternalLinkWidget.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExternalLinkWidget.esm.js","sources":["../../../../src/components/External/ExternalLink/ExternalLinkWidget.tsx"],"sourcesContent":["import { useContext, useEffect, useState } from 'react';\nimport { DiagramEngine } from '@projectstorm/react-diagrams';\nimport { ExternalLinkModel } from './ExternalLinkModel';\nimport { EXTERNAL_LINK, LINK_WIDTH } from '../../../resources';\nimport { DiagramContext } from '../../DiagramContext/DiagramContext';\nimport { useColors } from '../../../theme';\n\ninterface WidgetProps {\n engine: DiagramEngine;\n link: ExternalLinkModel;\n}\n\nexport function ExternalLinkWidget(props: WidgetProps) {\n const { link } = props;\n const colors = useColors();\n\n const [isSelected, setIsSelected] = useState<boolean>(false);\n const { previewMode } = useContext(DiagramContext);\n\n useEffect(() => {\n const listener = link.registerListener({\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n SELECT: selectPath,\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n UNSELECT: unselectPath,\n });\n return () => {\n link.deregisterListener(listener);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [link]);\n\n const selectPath = () => {\n setIsSelected(true);\n link.selectLinkedNodes();\n };\n\n const unselectPath = () => {\n setIsSelected(false);\n link.resetLinkedNodes();\n };\n\n return (\n <g className={EXTERNAL_LINK}>\n <defs>\n <marker\n id={link.getLinkArrowId()}\n markerWidth=\"8\"\n markerHeight=\"8\"\n markerUnits=\"strokeWidth\"\n refX=\"4\"\n refY=\"3\"\n viewBox=\"0 0 6 6\"\n orient=\"auto\"\n >\n <polygon\n points=\"0,6 0,0 5,3\"\n fill={isSelected ? colors.SECONDARY : colors.OUTLINE}\n />\n </marker>\n </defs>\n <path\n id={link.getID()}\n d={\n link.withRightOffset\n ? link.getCurvePathWithOffset()\n : link.getCurvePath()\n }\n fill=\"none\"\n stroke={isSelected ? colors.SECONDARY : colors.OUTLINE}\n strokeWidth={previewMode ? LINK_WIDTH.PREVIEW : LINK_WIDTH.DEFAULT}\n markerEnd={`url(#${link.getLinkArrowId()})`}\n />\n </g>\n );\n}\n"],"names":[],"mappings":";;;;;;;AAYO,SAAS,mBAAmB,KAAA,EAAoB;AACrD,EAAA,MAAM,EAAE,MAAK,GAAI,KAAA;AACjB,EAAA,MAAM,SAAS,SAAA,EAAU;AAEzB,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAI,SAAkB,KAAK,CAAA;AAC3D,EAAA,MAAM,EAAE,WAAA,EAAY,GAAI,UAAA,CAAW,cAAc,CAAA;AAEjD,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,QAAA,GAAW,KAAK,gBAAA,CAAiB;AAAA;AAAA,MAErC,MAAA,EAAQ,UAAA;AAAA;AAAA,MAER,QAAA,EAAU;AAAA,KACX,CAAA;AACD,IAAA,OAAO,MAAM;AACX,MAAA,IAAA,CAAK,mBAAmB,QAAQ,CAAA;AAAA,IAClC,CAAA;AAAA,EAEF,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA;AAET,EAAA,MAAM,aAAa,MAAM;AACvB,IAAA,aAAA,CAAc,IAAI,CAAA;AAClB,IAAA,IAAA,CAAK,iBAAA,EAAkB;AAAA,EACzB,CAAA;AAEA,EAAA,MAAM,eAAe,MAAM;AACzB,IAAA,aAAA,CAAc,KAAK,CAAA;AACnB,IAAA,IAAA,CAAK,gBAAA,EAAiB;AAAA,EACxB,CAAA;AAEA,EAAA,uBACE,IAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAW,aAAA,EACZ,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,MAAA,EAAA,EACC,QAAA,kBAAA,GAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,KAAK,cAAA,EAAe;AAAA,QACxB,WAAA,EAAY,GAAA;AAAA,QACZ,YAAA,EAAa,GAAA;AAAA,QACb,WAAA,EAAY,aAAA;AAAA,QACZ,IAAA,EAAK,GAAA;AAAA,QACL,IAAA,EAAK,GAAA;AAAA,QACL,OAAA,EAAQ,SAAA;AAAA,QACR,MAAA,EAAO,MAAA;AAAA,QAEP,QAAA,kBAAA,GAAA;AAAA,UAAC,SAAA;AAAA,UAAA;AAAA,YACC,MAAA,EAAO,aAAA;AAAA,YACP,IAAA,EAAM,UAAA,GAAa,MAAA,CAAO,SAAA,GAAY,MAAA,CAAO;AAAA;AAAA;AAC/C;AAAA,KACF,EACF,CAAA;AAAA,oBACA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,KAAK,KAAA,EAAM;AAAA,QACf,GACE,IAAA,CAAK,eAAA,GACD,KAAK,sBAAA,EAAuB,GAC5B,KAAK,YAAA,EAAa;AAAA,QAExB,IAAA,EAAK,MAAA;AAAA,QACL,MAAA,EAAQ,UAAA,GAAa,MAAA,CAAO,SAAA,GAAY,MAAA,CAAO,OAAA;AAAA,QAC/C,WAAA,EAAa,WAAA,GAAc,UAAA,CAAW,OAAA,GAAU,UAAA,CAAW,OAAA;AAAA,QAC3D,SAAA,EAAW,CAAA,KAAA,EAAQ,IAAA,CAAK,cAAA,EAAgB,CAAA,CAAA;AAAA;AAAA;AAC1C,GAAA,EACF,CAAA;AAEJ;;;;"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { AbstractReactFactory } from '@projectstorm/react-canvas-core';
|
|
3
|
+
import { ExternalModel } from './ExternalModel.esm.js';
|
|
4
|
+
import { ExternalWidget } from './ExternalWidget.esm.js';
|
|
5
|
+
import { EXTERNAL_NODE } from '../../../resources/constants.esm.js';
|
|
6
|
+
|
|
7
|
+
class ExternalFactory extends AbstractReactFactory {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(EXTERNAL_NODE);
|
|
10
|
+
}
|
|
11
|
+
generateReactWidget(event) {
|
|
12
|
+
return /* @__PURE__ */ jsx(ExternalWidget, { engine: this.engine, node: event.model });
|
|
13
|
+
}
|
|
14
|
+
generateModel(event) {
|
|
15
|
+
return new ExternalModel(event.initialConfig.key);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export { ExternalFactory };
|
|
20
|
+
//# sourceMappingURL=ExternalFactory.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExternalFactory.esm.js","sources":["../../../../src/components/External/ExternalNode/ExternalFactory.tsx"],"sourcesContent":["import { AbstractReactFactory } from '@projectstorm/react-canvas-core';\nimport { DiagramEngine } from '@projectstorm/react-diagrams-core';\nimport { ExternalModel } from './ExternalModel';\nimport { ExternalWidget } from './ExternalWidget';\nimport { EXTERNAL_NODE } from '../../../resources';\n\nexport class ExternalFactory extends AbstractReactFactory<\n ExternalModel,\n DiagramEngine\n> {\n constructor() {\n super(EXTERNAL_NODE);\n }\n\n generateReactWidget(event: { model: ExternalModel }): JSX.Element {\n return <ExternalWidget engine={this.engine} node={event.model} />;\n }\n\n generateModel(event: { initialConfig: any }) {\n return new ExternalModel(event.initialConfig.key);\n }\n}\n"],"names":[],"mappings":";;;;;;AAMO,MAAM,wBAAwB,oBAAA,CAGnC;AAAA,EACA,WAAA,GAAc;AACZ,IAAA,KAAA,CAAM,aAAa,CAAA;AAAA,EACrB;AAAA,EAEA,oBAAoB,KAAA,EAA8C;AAChE,IAAA,2BAAQ,cAAA,EAAA,EAAe,MAAA,EAAQ,KAAK,MAAA,EAAQ,IAAA,EAAM,MAAM,KAAA,EAAO,CAAA;AAAA,EACjE;AAAA,EAEA,cAAc,KAAA,EAA+B;AAC3C,IAAA,OAAO,IAAI,aAAA,CAAc,KAAA,CAAM,aAAA,CAAc,GAAG,CAAA;AAAA,EAClD;AACF;;;;"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { PortModelAlignment } from '@projectstorm/react-diagrams';
|
|
2
|
+
import { SharedNodeModel } from '../../SharedNode/SharedNode.esm.js';
|
|
3
|
+
import { CellPortModel } from '../../Cell/CellPort/CellPortModel.esm.js';
|
|
4
|
+
import { EXTERNAL_NODE } from '../../../resources/constants.esm.js';
|
|
5
|
+
import 'react/jsx-runtime';
|
|
6
|
+
import { getExternalNodeName } from '../external-node-util.esm.js';
|
|
7
|
+
|
|
8
|
+
class ExternalModel extends SharedNodeModel {
|
|
9
|
+
constructor(id) {
|
|
10
|
+
const name = getExternalNodeName(id);
|
|
11
|
+
super(EXTERNAL_NODE, name);
|
|
12
|
+
this.addPort(new CellPortModel(name, PortModelAlignment.LEFT));
|
|
13
|
+
this.addPort(new CellPortModel(name, PortModelAlignment.RIGHT));
|
|
14
|
+
this.addPort(new CellPortModel(name, PortModelAlignment.TOP));
|
|
15
|
+
this.addPort(new CellPortModel(name, PortModelAlignment.BOTTOM));
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export { ExternalModel };
|
|
20
|
+
//# sourceMappingURL=ExternalModel.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExternalModel.esm.js","sources":["../../../../src/components/External/ExternalNode/ExternalModel.ts"],"sourcesContent":["import { PortModelAlignment } from '@projectstorm/react-diagrams';\nimport { SharedNodeModel } from '../../SharedNode/SharedNode';\nimport { CellPortModel } from '../../Cell/CellPort/CellPortModel';\nimport { EXTERNAL_NODE } from '../../../resources';\nimport { getExternalNodeName } from '../external-node-util';\n\nexport class ExternalModel extends SharedNodeModel {\n constructor(id: string) {\n const name = getExternalNodeName(id);\n super(EXTERNAL_NODE, name);\n\n this.addPort(new CellPortModel(name, PortModelAlignment.LEFT));\n this.addPort(new CellPortModel(name, PortModelAlignment.RIGHT));\n this.addPort(new CellPortModel(name, PortModelAlignment.TOP));\n this.addPort(new CellPortModel(name, PortModelAlignment.BOTTOM));\n }\n}\n"],"names":[],"mappings":";;;;;;;AAMO,MAAM,sBAAsB,eAAA,CAAgB;AAAA,EACjD,YAAY,EAAA,EAAY;AACtB,IAAA,MAAM,IAAA,GAAO,oBAAoB,EAAE,CAAA;AACnC,IAAA,KAAA,CAAM,eAAe,IAAI,CAAA;AAEzB,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;AAC9D,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;AAAA,EACjE;AACF;;;;"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { ExternalNode } from './styles.esm.js';
|
|
3
|
+
import { CellPortWidget } from '../../Cell/CellPort/CellPortWidget.esm.js';
|
|
4
|
+
|
|
5
|
+
function ExternalWidget(props) {
|
|
6
|
+
const { node, engine } = props;
|
|
7
|
+
return /* @__PURE__ */ jsxs(ExternalNode, { children: [
|
|
8
|
+
/* @__PURE__ */ jsx(
|
|
9
|
+
CellPortWidget,
|
|
10
|
+
{
|
|
11
|
+
port: node.getPort(`left-${node.getID()}`),
|
|
12
|
+
engine
|
|
13
|
+
}
|
|
14
|
+
),
|
|
15
|
+
/* @__PURE__ */ jsx(
|
|
16
|
+
CellPortWidget,
|
|
17
|
+
{
|
|
18
|
+
port: node.getPort(`right-${node.getID()}`),
|
|
19
|
+
engine
|
|
20
|
+
}
|
|
21
|
+
),
|
|
22
|
+
/* @__PURE__ */ jsx(
|
|
23
|
+
CellPortWidget,
|
|
24
|
+
{
|
|
25
|
+
port: node.getPort(`top-${node.getID()}`),
|
|
26
|
+
engine
|
|
27
|
+
}
|
|
28
|
+
),
|
|
29
|
+
/* @__PURE__ */ jsx(
|
|
30
|
+
CellPortWidget,
|
|
31
|
+
{
|
|
32
|
+
port: node.getPort(`bottom-${node.getID()}`),
|
|
33
|
+
engine
|
|
34
|
+
}
|
|
35
|
+
)
|
|
36
|
+
] });
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export { ExternalWidget };
|
|
40
|
+
//# sourceMappingURL=ExternalWidget.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExternalWidget.esm.js","sources":["../../../../src/components/External/ExternalNode/ExternalWidget.tsx"],"sourcesContent":["import {} from 'react';\nimport { DiagramEngine } from '@projectstorm/react-diagrams';\nimport { ExternalModel } from './ExternalModel';\nimport { ExternalNode } from './styles';\nimport { CellPortWidget } from '../../Cell/CellPort/CellPortWidget';\nimport { CellPortModel } from '../../Cell/CellPort/CellPortModel';\n\ninterface ExternalWidgetProps {\n node: ExternalModel;\n engine: DiagramEngine;\n}\n\nexport function ExternalWidget(props: ExternalWidgetProps) {\n const { node, engine } = props;\n return (\n <ExternalNode>\n <CellPortWidget\n port={node.getPort(`left-${node.getID()}`) as CellPortModel}\n engine={engine}\n />\n <CellPortWidget\n port={node.getPort(`right-${node.getID()}`) as CellPortModel}\n engine={engine}\n />\n <CellPortWidget\n port={node.getPort(`top-${node.getID()}`) as CellPortModel}\n engine={engine}\n />\n <CellPortWidget\n port={node.getPort(`bottom-${node.getID()}`) as CellPortModel}\n engine={engine}\n />\n </ExternalNode>\n );\n}\n"],"names":[],"mappings":";;;;AAYO,SAAS,eAAe,KAAA,EAA4B;AACzD,EAAA,MAAM,EAAE,IAAA,EAAM,MAAA,EAAO,GAAI,KAAA;AACzB,EAAA,4BACG,YAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QACC,MAAM,IAAA,CAAK,OAAA,CAAQ,QAAQ,IAAA,CAAK,KAAA,EAAO,CAAA,CAAE,CAAA;AAAA,QACzC;AAAA;AAAA,KACF;AAAA,oBACA,GAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QACC,MAAM,IAAA,CAAK,OAAA,CAAQ,SAAS,IAAA,CAAK,KAAA,EAAO,CAAA,CAAE,CAAA;AAAA,QAC1C;AAAA;AAAA,KACF;AAAA,oBACA,GAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QACC,MAAM,IAAA,CAAK,OAAA,CAAQ,OAAO,IAAA,CAAK,KAAA,EAAO,CAAA,CAAE,CAAA;AAAA,QACxC;AAAA;AAAA,KACF;AAAA,oBACA,GAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QACC,MAAM,IAAA,CAAK,OAAA,CAAQ,UAAU,IAAA,CAAK,KAAA,EAAO,CAAA,CAAE,CAAA;AAAA,QAC3C;AAAA;AAAA;AACF,GAAA,EACF,CAAA;AAEJ;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.esm.js","sources":["../../../../src/components/External/ExternalNode/styles.ts"],"sourcesContent":["import styled from '@emotion/styled';\n\ninterface StyleProps {\n isAnonymous: boolean;\n isSelected?: boolean;\n isClickable?: boolean;\n isCollapsed?: boolean;\n isFocused?: boolean;\n height?: number;\n}\n\nexport const ExternalNode = styled.div<any>`\n width: ${(props: StyleProps) => props.height}px;\n height: ${(props: StyleProps) => props.height}px;\n`;\n"],"names":[],"mappings":";;AAWO,MAAM,eAAe,MAAA,CAAO,GAAA;AAAA,SAAA,EACxB,CAAC,KAAA,KAAsB,KAAA,CAAM,MAAM,CAAA;AAAA,UAAA,EAClC,CAAC,KAAA,KAAsB,KAAA,CAAM,MAAM,CAAA;AAAA;;;;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { EXTERNAL_LINK, NAME_JOIN_CHAR, EXTERNAL_NODE } from '../../resources/constants.esm.js';
|
|
2
|
+
import 'react/jsx-runtime';
|
|
3
|
+
|
|
4
|
+
function getExternalNodeName(id) {
|
|
5
|
+
return `${EXTERNAL_NODE}${NAME_JOIN_CHAR}${id}`;
|
|
6
|
+
}
|
|
7
|
+
function getExternalLinkName(source, target) {
|
|
8
|
+
return `${EXTERNAL_LINK}${NAME_JOIN_CHAR}${source}::${target}`;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export { getExternalLinkName, getExternalNodeName };
|
|
12
|
+
//# sourceMappingURL=external-node-util.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"external-node-util.esm.js","sources":["../../../src/components/External/external-node-util.ts"],"sourcesContent":["import { EXTERNAL_LINK, EXTERNAL_NODE, NAME_JOIN_CHAR } from '../../resources';\n\nexport function getExternalNodeName(id: string): string {\n return `${EXTERNAL_NODE}${NAME_JOIN_CHAR}${id}`;\n}\n\nexport function getExternalNodeMetadataByName(name: string): {\n type: string;\n id: string;\n} {\n const parts = name.split(NAME_JOIN_CHAR);\n return { type: parts[0], id: parts[1] };\n}\n\nexport function getExternalLinkName(source: string, target: string): string {\n return `${EXTERNAL_LINK}${NAME_JOIN_CHAR}${source}::${target}`;\n}\n"],"names":[],"mappings":";;;AAEO,SAAS,oBAAoB,EAAA,EAAoB;AACtD,EAAA,OAAO,CAAA,EAAG,aAAa,CAAA,EAAG,cAAc,GAAG,EAAE,CAAA,CAAA;AAC/C;AAUO,SAAS,mBAAA,CAAoB,QAAgB,MAAA,EAAwB;AAC1E,EAAA,OAAO,GAAG,aAAa,CAAA,EAAG,cAAc,CAAA,EAAG,MAAM,KAAK,MAAM,CAAA,CAAA;AAC9D;;;;"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import 'react/jsx-runtime';
|
|
2
|
+
import styled from '@emotion/styled';
|
|
3
|
+
|
|
4
|
+
styled.div`
|
|
5
|
+
align-items: center;
|
|
6
|
+
color: ${({ theme }) => theme.colors.ON_SURFACE_VARIANT};
|
|
7
|
+
display: flex;
|
|
8
|
+
flex-direction: row;
|
|
9
|
+
font-family: GilmerBold;
|
|
10
|
+
font-size: 16px;
|
|
11
|
+
height: 50px;
|
|
12
|
+
justify-content: space-between;
|
|
13
|
+
min-width: 350px;
|
|
14
|
+
padding-inline: 10px;
|
|
15
|
+
width: calc(100vw - 20px);
|
|
16
|
+
`;
|
|
17
|
+
//# sourceMappingURL=Header.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Header.esm.js","sources":["../../../src/components/Header/Header.tsx"],"sourcesContent":["import styled from '@emotion/styled';\n\ninterface HeaderProps {}\n\nconst HeaderContainer = styled.div`\n align-items: center;\n color: ${({ theme }) => theme.colors.ON_SURFACE_VARIANT};\n display: flex;\n flex-direction: row;\n font-family: GilmerBold;\n font-size: 16px;\n height: 50px;\n justify-content: space-between;\n min-width: 350px;\n padding-inline: 10px;\n width: calc(100vw - 20px);\n`;\n\nexport function HeaderWidget(_props: HeaderProps) {\n return <HeaderContainer>Cell Diagram</HeaderContainer>;\n}\n"],"names":[],"mappings":";;;AAIwB,MAAA,CAAO,GAAA;AAAA;AAAA,SAAA,EAEpB,CAAC,EAAE,KAAA,EAAM,KAAM,KAAA,CAAM,OAAO,kBAAkB,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import styled from '@emotion/styled';
|
|
4
|
+
import MoreVertIcon from '@mui/icons-material/MoreVert';
|
|
5
|
+
import Menu from '@mui/material/Menu';
|
|
6
|
+
import MenuItem from '@mui/material/MenuItem';
|
|
7
|
+
|
|
8
|
+
const IconStyles = styled.button`
|
|
9
|
+
position: absolute;
|
|
10
|
+
background-color: ${({ theme }) => theme.colors.SURFACE};
|
|
11
|
+
margin-left: 68px;
|
|
12
|
+
margin-bottom: 58px;
|
|
13
|
+
width: 28px;
|
|
14
|
+
height: 28px;
|
|
15
|
+
border-radius: 50%;
|
|
16
|
+
display: flex;
|
|
17
|
+
flex-direction: column;
|
|
18
|
+
justify-content: center;
|
|
19
|
+
align-items: center;
|
|
20
|
+
line-height: 0;
|
|
21
|
+
border: 3px solid ${({ theme }) => theme.colors.SURFACE_DIM};
|
|
22
|
+
transition: 'transform 0.3s ease-in-out';
|
|
23
|
+
cursor: pointer;
|
|
24
|
+
`;
|
|
25
|
+
function MoreVertMenu(props) {
|
|
26
|
+
const { component, menuItems, onClose } = props;
|
|
27
|
+
const [anchorEl, setAnchorEl] = useState(null);
|
|
28
|
+
const open = Boolean(anchorEl);
|
|
29
|
+
const menuId = `menu-${component.id}`;
|
|
30
|
+
const handleClick = (event) => {
|
|
31
|
+
event?.stopPropagation();
|
|
32
|
+
setAnchorEl(event.currentTarget);
|
|
33
|
+
};
|
|
34
|
+
const handleClose = () => {
|
|
35
|
+
setAnchorEl(null);
|
|
36
|
+
onClose && onClose();
|
|
37
|
+
};
|
|
38
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
39
|
+
/* @__PURE__ */ jsx(
|
|
40
|
+
IconStyles,
|
|
41
|
+
{
|
|
42
|
+
"aria-controls": open ? menuId : void 0,
|
|
43
|
+
"aria-haspopup": "true",
|
|
44
|
+
"aria-expanded": open ? "true" : void 0,
|
|
45
|
+
onClick: handleClick,
|
|
46
|
+
children: /* @__PURE__ */ jsx(MoreVertIcon, {})
|
|
47
|
+
}
|
|
48
|
+
),
|
|
49
|
+
/* @__PURE__ */ jsx(
|
|
50
|
+
Menu,
|
|
51
|
+
{
|
|
52
|
+
id: menuId,
|
|
53
|
+
anchorEl,
|
|
54
|
+
open,
|
|
55
|
+
onClose: handleClose,
|
|
56
|
+
anchorOrigin: {
|
|
57
|
+
vertical: "top",
|
|
58
|
+
horizontal: "left"
|
|
59
|
+
},
|
|
60
|
+
transformOrigin: {
|
|
61
|
+
vertical: "top",
|
|
62
|
+
horizontal: "left"
|
|
63
|
+
},
|
|
64
|
+
children: menuItems.map((item) => /* @__PURE__ */ jsx(
|
|
65
|
+
MenuItem,
|
|
66
|
+
{
|
|
67
|
+
onClick: () => {
|
|
68
|
+
item.callback(component.id, component.version);
|
|
69
|
+
handleClose();
|
|
70
|
+
},
|
|
71
|
+
children: item.label
|
|
72
|
+
},
|
|
73
|
+
`menu-item ${item.label}`
|
|
74
|
+
))
|
|
75
|
+
}
|
|
76
|
+
)
|
|
77
|
+
] });
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export { MoreVertMenu };
|
|
81
|
+
//# sourceMappingURL=MoreVertMenu.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MoreVertMenu.esm.js","sources":["../../../src/components/MoreVertMenu/MoreVertMenu.tsx"],"sourcesContent":["import { MouseEvent, useState } from 'react';\nimport styled from '@emotion/styled';\nimport MoreVertIcon from '@mui/icons-material/MoreVert';\nimport Menu from '@mui/material/Menu';\nimport MenuItem from '@mui/material/MenuItem';\nimport { Component } from '../../types';\nimport { MoreVertMenuItem } from '../../types';\n\nconst IconStyles = styled.button`\n position: absolute;\n background-color: ${({ theme }) => theme.colors.SURFACE};\n margin-left: 68px;\n margin-bottom: 58px;\n width: 28px;\n height: 28px;\n border-radius: 50%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n line-height: 0;\n border: 3px solid ${({ theme }) => theme.colors.SURFACE_DIM};\n transition: 'transform 0.3s ease-in-out';\n cursor: pointer;\n`;\n\ninterface MoreVertMenuProps {\n component: Component;\n menuItems: MoreVertMenuItem[];\n hasComponentKind?: boolean;\n onClose?: () => void;\n}\n\nexport function MoreVertMenu(props: MoreVertMenuProps) {\n const { component, menuItems, onClose } = props;\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n const open = Boolean(anchorEl);\n const menuId = `menu-${component.id}`;\n\n const handleClick = (event: MouseEvent<HTMLButtonElement>) => {\n event?.stopPropagation();\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n onClose && onClose();\n };\n\n return (\n <>\n <IconStyles\n aria-controls={open ? menuId : undefined}\n aria-haspopup=\"true\"\n aria-expanded={open ? 'true' : undefined}\n onClick={handleClick}\n >\n <MoreVertIcon />\n </IconStyles>\n\n <Menu\n id={menuId}\n anchorEl={anchorEl}\n open={open}\n onClose={handleClose}\n anchorOrigin={{\n vertical: 'top',\n horizontal: 'left',\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'left',\n }}\n >\n {menuItems.map(item => (\n <MenuItem\n key={`menu-item ${item.label}`}\n onClick={() => {\n item.callback(component.id, component.version);\n handleClose();\n }}\n >\n {item.label}\n </MenuItem>\n ))}\n </Menu>\n </>\n );\n}\n"],"names":[],"mappings":";;;;;;;AAQA,MAAM,aAAa,MAAA,CAAO,MAAA;AAAA;AAAA,oBAAA,EAEJ,CAAC,EAAE,KAAA,EAAM,KAAM,KAAA,CAAM,OAAO,OAAO,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAA,EAWnC,CAAC,EAAE,KAAA,EAAM,KAAM,KAAA,CAAM,OAAO,WAAW,CAAA;AAAA;AAAA;AAAA,CAAA;AAYtD,SAAS,aAAa,KAAA,EAA0B;AACrD,EAAA,MAAM,EAAE,SAAA,EAAW,SAAA,EAAW,OAAA,EAAQ,GAAI,KAAA;AAC1C,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,SAA6B,IAAI,CAAA;AACjE,EAAA,MAAM,IAAA,GAAO,QAAQ,QAAQ,CAAA;AAC7B,EAAA,MAAM,MAAA,GAAS,CAAA,KAAA,EAAQ,SAAA,CAAU,EAAE,CAAA,CAAA;AAEnC,EAAA,MAAM,WAAA,GAAc,CAAC,KAAA,KAAyC;AAC5D,IAAA,KAAA,EAAO,eAAA,EAAgB;AACvB,IAAA,WAAA,CAAY,MAAM,aAAa,CAAA;AAAA,EACjC,CAAA;AAEA,EAAA,MAAM,cAAc,MAAM;AACxB,IAAA,WAAA,CAAY,IAAI,CAAA;AAEhB,IAAA,OAAA,IAAW,OAAA,EAAQ;AAAA,EACrB,CAAA;AAEA,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,eAAA,EAAe,OAAO,MAAA,GAAS,MAAA;AAAA,QAC/B,eAAA,EAAc,MAAA;AAAA,QACd,eAAA,EAAe,OAAO,MAAA,GAAS,MAAA;AAAA,QAC/B,OAAA,EAAS,WAAA;AAAA,QAET,8BAAC,YAAA,EAAA,EAAa;AAAA;AAAA,KAChB;AAAA,oBAEA,GAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,MAAA;AAAA,QACJ,QAAA;AAAA,QACA,IAAA;AAAA,QACA,OAAA,EAAS,WAAA;AAAA,QACT,YAAA,EAAc;AAAA,UACZ,QAAA,EAAU,KAAA;AAAA,UACV,UAAA,EAAY;AAAA,SACd;AAAA,QACA,eAAA,EAAiB;AAAA,UACf,QAAA,EAAU,KAAA;AAAA,UACV,UAAA,EAAY;AAAA,SACd;AAAA,QAEC,QAAA,EAAA,SAAA,CAAU,IAAI,CAAA,IAAA,qBACb,GAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YAEC,SAAS,MAAM;AACb,cAAA,IAAA,CAAK,QAAA,CAAS,SAAA,CAAU,EAAA,EAAI,SAAA,CAAU,OAAO,CAAA;AAC7C,cAAA,WAAA,EAAY;AAAA,YACd,CAAA;AAAA,YAEC,QAAA,EAAA,IAAA,CAAK;AAAA,WAAA;AAAA,UAND,CAAA,UAAA,EAAa,KAAK,KAAK,CAAA;AAAA,SAQ/B;AAAA;AAAA;AACH,GAAA,EACF,CAAA;AAEJ;;;;"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import styled from '@emotion/styled';
|
|
3
|
+
import { useDiagramContext } from '../DiagramContext/DiagramContext.esm.js';
|
|
4
|
+
|
|
5
|
+
const Table = styled.table`
|
|
6
|
+
width: 100%;
|
|
7
|
+
`;
|
|
8
|
+
const TableRow = styled.tr``;
|
|
9
|
+
const TableHeader = styled.td`
|
|
10
|
+
padding: 2px 2px;
|
|
11
|
+
text-align: left;
|
|
12
|
+
font-family: 'GilmerMedium';
|
|
13
|
+
white-space: nowrap;
|
|
14
|
+
overflow: hidden;
|
|
15
|
+
text-overflow: ellipsis;
|
|
16
|
+
max-width: 160px;
|
|
17
|
+
`;
|
|
18
|
+
const TopTableHeader = styled(TableHeader)`
|
|
19
|
+
text-align: right;
|
|
20
|
+
max-width: 120px;
|
|
21
|
+
`;
|
|
22
|
+
const TableData = styled.td`
|
|
23
|
+
padding: 2px 2px 2px 8px;
|
|
24
|
+
color: ${({ theme }) => theme.colors.PRIMARY};
|
|
25
|
+
text-align: right;
|
|
26
|
+
font-family: 'GilmerRegular';
|
|
27
|
+
`;
|
|
28
|
+
const convertToMs = (value) => (value / 1e3 / 1e3).toFixed(value / 1e3 / 1e3 > 100 ? 1 : 2);
|
|
29
|
+
function formatLatency(value) {
|
|
30
|
+
return value < 1 ? `${(value * 1e3).toFixed(2)} ms` : `${value.toFixed(2)} s`;
|
|
31
|
+
}
|
|
32
|
+
function ObservationLabel({ observations }) {
|
|
33
|
+
const { modelVersion } = useDiagramContext();
|
|
34
|
+
const displayedObservations = observations.slice(0, 5);
|
|
35
|
+
let metrics = [
|
|
36
|
+
{ name: "Request Count", valueFn: (obs) => obs.requestCount },
|
|
37
|
+
{
|
|
38
|
+
name: "Error Percentage",
|
|
39
|
+
valueFn: (obs) => `${(obs.errorCount * 100 / obs.requestCount).toFixed(2)}%`
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: "Average Latency",
|
|
43
|
+
valueFn: (obs) => `${convertToMs(obs.avgLatency)} ms`
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: "99% Latency",
|
|
47
|
+
valueFn: (obs) => `${convertToMs(obs.p99Latency)} ms`
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
name: "90% Latency",
|
|
51
|
+
valueFn: (obs) => `${convertToMs(obs.p90Latency)} ms`
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
name: "50% Latency",
|
|
55
|
+
valueFn: (obs) => `${convertToMs(obs.p50Latency)} ms`
|
|
56
|
+
}
|
|
57
|
+
];
|
|
58
|
+
if (modelVersion === "v2") {
|
|
59
|
+
metrics = [
|
|
60
|
+
{
|
|
61
|
+
name: "Request Count",
|
|
62
|
+
valueFn: (obs) => obs.requestCount.toFixed(0)
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
name: "Error Percentage",
|
|
66
|
+
valueFn: (obs) => `${(obs.errorCount * 100 / obs.requestCount).toFixed(2)}%`
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
name: "Average Latency",
|
|
70
|
+
valueFn: (obs) => formatLatency(obs.avgLatency)
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
name: "99% Latency",
|
|
74
|
+
valueFn: (obs) => formatLatency(obs.p99Latency)
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
name: "90% Latency",
|
|
78
|
+
valueFn: (obs) => formatLatency(obs.p90Latency)
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
name: "50% Latency",
|
|
82
|
+
valueFn: (obs) => formatLatency(obs.p50Latency)
|
|
83
|
+
}
|
|
84
|
+
];
|
|
85
|
+
}
|
|
86
|
+
function formatNumberWithCommas(x) {
|
|
87
|
+
return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
|
88
|
+
}
|
|
89
|
+
return /* @__PURE__ */ jsxs(Table, { children: [
|
|
90
|
+
/* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs(TableRow, { children: [
|
|
91
|
+
/* @__PURE__ */ jsx(TableHeader, {}),
|
|
92
|
+
displayedObservations.map((obs, index) => /* @__PURE__ */ jsx(TopTableHeader, { children: obs.label || obs.componentVersion || "" }, index))
|
|
93
|
+
] }) }),
|
|
94
|
+
/* @__PURE__ */ jsx("tbody", { children: metrics.map((metric) => /* @__PURE__ */ jsxs(TableRow, { children: [
|
|
95
|
+
/* @__PURE__ */ jsx(TableHeader, { children: metric.name }),
|
|
96
|
+
displayedObservations.map((obs, index) => /* @__PURE__ */ jsx(TableData, { children: formatNumberWithCommas(metric.valueFn(obs).toString()) }, index))
|
|
97
|
+
] }, metric.name)) })
|
|
98
|
+
] });
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
export { ObservationLabel };
|
|
102
|
+
//# sourceMappingURL=ObservationLabel.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ObservationLabel.esm.js","sources":["../../../src/components/ObservationLabel/ObservationLabel.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport { Observations } from '../../types';\nimport { useDiagramContext } from '../DiagramContext/DiagramContext';\n\nconst Table = styled.table`\n width: 100%;\n`;\n\nconst TableRow = styled.tr``;\n\nconst TableHeader = styled.td`\n padding: 2px 2px;\n text-align: left;\n font-family: 'GilmerMedium';\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 160px;\n`;\n\nconst TopTableHeader = styled(TableHeader)`\n text-align: right;\n max-width: 120px;\n`;\n\nconst TableData = styled.td`\n padding: 2px 2px 2px 8px;\n color: ${({ theme }) => theme.colors.PRIMARY};\n text-align: right;\n font-family: 'GilmerRegular';\n`;\n\nconst convertToMs = (value: number) =>\n (value / 1000 / 1000).toFixed(value / 1000 / 1000 > 100 ? 1 : 2);\n\ninterface ObservationLabelProps {\n observations: Observations[];\n}\n\nfunction formatLatency(value: number): string {\n return value < 1\n ? `${(value * 1000).toFixed(2)} ms`\n : `${value.toFixed(2)} s`;\n}\n\nexport function ObservationLabel({ observations }: ObservationLabelProps) {\n const { modelVersion } = useDiagramContext();\n\n // Slice the observations array to include only up to the first 5 elements\n // TODO: Add a \"View All\" button to view all observations\n const displayedObservations = observations.slice(0, 5);\n\n let metrics = [\n { name: 'Request Count', valueFn: (obs: Observations) => obs.requestCount },\n {\n name: 'Error Percentage',\n valueFn: (obs: Observations) =>\n `${((obs.errorCount * 100) / obs.requestCount).toFixed(2)}%`,\n },\n {\n name: 'Average Latency',\n valueFn: (obs: Observations) => `${convertToMs(obs.avgLatency)} ms`,\n },\n {\n name: '99% Latency',\n valueFn: (obs: Observations) => `${convertToMs(obs.p99Latency)} ms`,\n },\n {\n name: '90% Latency',\n valueFn: (obs: Observations) => `${convertToMs(obs.p90Latency)} ms`,\n },\n {\n name: '50% Latency',\n valueFn: (obs: Observations) => `${convertToMs(obs.p50Latency)} ms`,\n },\n ];\n\n if (modelVersion === 'v2') {\n metrics = [\n {\n name: 'Request Count',\n valueFn: (obs: Observations) => obs.requestCount.toFixed(0),\n },\n {\n name: 'Error Percentage',\n valueFn: (obs: Observations) =>\n `${((obs.errorCount * 100) / obs.requestCount).toFixed(2)}%`,\n },\n {\n name: 'Average Latency',\n valueFn: (obs: Observations) => formatLatency(obs.avgLatency),\n },\n {\n name: '99% Latency',\n valueFn: (obs: Observations) => formatLatency(obs.p99Latency),\n },\n {\n name: '90% Latency',\n valueFn: (obs: Observations) => formatLatency(obs.p90Latency),\n },\n {\n name: '50% Latency',\n valueFn: (obs: Observations) => formatLatency(obs.p50Latency),\n },\n ];\n }\n\n function formatNumberWithCommas(x: string): string {\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n }\n\n return (\n <Table>\n <thead>\n <TableRow>\n <TableHeader />\n {displayedObservations.map((obs, index) => (\n <TopTableHeader key={index}>\n {obs.label || obs.componentVersion || ''}\n </TopTableHeader>\n ))}\n </TableRow>\n </thead>\n <tbody>\n {metrics.map(metric => (\n <TableRow key={metric.name}>\n <TableHeader>{metric.name}</TableHeader>\n {displayedObservations.map((obs, index) => (\n <TableData key={index}>\n {formatNumberWithCommas(metric.valueFn(obs).toString())}\n </TableData>\n ))}\n </TableRow>\n ))}\n </tbody>\n </Table>\n );\n}\n"],"names":[],"mappings":";;;;AAIA,MAAM,QAAQ,MAAA,CAAO,KAAA;AAAA;AAAA,CAAA;AAIrB,MAAM,WAAW,MAAA,CAAO,EAAA,CAAA,CAAA;AAExB,MAAM,cAAc,MAAA,CAAO,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA;AAU3B,MAAM,cAAA,GAAiB,OAAO,WAAW,CAAA;AAAA;AAAA;AAAA,CAAA;AAKzC,MAAM,YAAY,MAAA,CAAO,EAAA;AAAA;AAAA,SAAA,EAEd,CAAC,EAAE,KAAA,EAAM,KAAM,KAAA,CAAM,OAAO,OAAO,CAAA;AAAA;AAAA;AAAA,CAAA;AAK9C,MAAM,WAAA,GAAc,CAAC,KAAA,KAAA,CAClB,KAAA,GAAQ,GAAA,GAAO,GAAA,EAAM,OAAA,CAAQ,KAAA,GAAQ,GAAA,GAAO,GAAA,GAAO,GAAA,GAAM,CAAA,GAAI,CAAC,CAAA;AAMjE,SAAS,cAAc,KAAA,EAAuB;AAC5C,EAAA,OAAO,KAAA,GAAQ,CAAA,GACX,CAAA,EAAA,CAAI,KAAA,GAAQ,GAAA,EAAM,OAAA,CAAQ,CAAC,CAAC,CAAA,GAAA,CAAA,GAC5B,CAAA,EAAG,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAC,CAAA,EAAA,CAAA;AACzB;AAEO,SAAS,gBAAA,CAAiB,EAAE,YAAA,EAAa,EAA0B;AACxE,EAAA,MAAM,EAAE,YAAA,EAAa,GAAI,iBAAA,EAAkB;AAI3C,EAAA,MAAM,qBAAA,GAAwB,YAAA,CAAa,KAAA,CAAM,CAAA,EAAG,CAAC,CAAA;AAErD,EAAA,IAAI,OAAA,GAAU;AAAA,IACZ,EAAE,IAAA,EAAM,eAAA,EAAiB,SAAS,CAAC,GAAA,KAAsB,IAAI,YAAA,EAAa;AAAA,IAC1E;AAAA,MACE,IAAA,EAAM,kBAAA;AAAA,MACN,OAAA,EAAS,CAAC,GAAA,KACR,CAAA,EAAA,CAAK,GAAA,CAAI,UAAA,GAAa,GAAA,GAAO,GAAA,CAAI,YAAA,EAAc,OAAA,CAAQ,CAAC,CAAC,CAAA,CAAA;AAAA,KAC7D;AAAA,IACA;AAAA,MACE,IAAA,EAAM,iBAAA;AAAA,MACN,SAAS,CAAC,GAAA,KAAsB,GAAG,WAAA,CAAY,GAAA,CAAI,UAAU,CAAC,CAAA,GAAA;AAAA,KAChE;AAAA,IACA;AAAA,MACE,IAAA,EAAM,aAAA;AAAA,MACN,SAAS,CAAC,GAAA,KAAsB,GAAG,WAAA,CAAY,GAAA,CAAI,UAAU,CAAC,CAAA,GAAA;AAAA,KAChE;AAAA,IACA;AAAA,MACE,IAAA,EAAM,aAAA;AAAA,MACN,SAAS,CAAC,GAAA,KAAsB,GAAG,WAAA,CAAY,GAAA,CAAI,UAAU,CAAC,CAAA,GAAA;AAAA,KAChE;AAAA,IACA;AAAA,MACE,IAAA,EAAM,aAAA;AAAA,MACN,SAAS,CAAC,GAAA,KAAsB,GAAG,WAAA,CAAY,GAAA,CAAI,UAAU,CAAC,CAAA,GAAA;AAAA;AAChE,GACF;AAEA,EAAA,IAAI,iBAAiB,IAAA,EAAM;AACzB,IAAA,OAAA,GAAU;AAAA,MACR;AAAA,QACE,IAAA,EAAM,eAAA;AAAA,QACN,SAAS,CAAC,GAAA,KAAsB,GAAA,CAAI,YAAA,CAAa,QAAQ,CAAC;AAAA,OAC5D;AAAA,MACA;AAAA,QACE,IAAA,EAAM,kBAAA;AAAA,QACN,OAAA,EAAS,CAAC,GAAA,KACR,CAAA,EAAA,CAAK,GAAA,CAAI,UAAA,GAAa,GAAA,GAAO,GAAA,CAAI,YAAA,EAAc,OAAA,CAAQ,CAAC,CAAC,CAAA,CAAA;AAAA,OAC7D;AAAA,MACA;AAAA,QACE,IAAA,EAAM,iBAAA;AAAA,QACN,OAAA,EAAS,CAAC,GAAA,KAAsB,aAAA,CAAc,IAAI,UAAU;AAAA,OAC9D;AAAA,MACA;AAAA,QACE,IAAA,EAAM,aAAA;AAAA,QACN,OAAA,EAAS,CAAC,GAAA,KAAsB,aAAA,CAAc,IAAI,UAAU;AAAA,OAC9D;AAAA,MACA;AAAA,QACE,IAAA,EAAM,aAAA;AAAA,QACN,OAAA,EAAS,CAAC,GAAA,KAAsB,aAAA,CAAc,IAAI,UAAU;AAAA,OAC9D;AAAA,MACA;AAAA,QACE,IAAA,EAAM,aAAA;AAAA,QACN,OAAA,EAAS,CAAC,GAAA,KAAsB,aAAA,CAAc,IAAI,UAAU;AAAA;AAC9D,KACF;AAAA,EACF;AAEA,EAAA,SAAS,uBAAuB,CAAA,EAAmB;AACjD,IAAA,OAAO,CAAA,CAAE,QAAA,EAAS,CAAE,OAAA,CAAQ,yBAAyB,GAAG,CAAA;AAAA,EAC1D;AAEA,EAAA,4BACG,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,OAAA,EAAA,EACC,+BAAC,QAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,WAAA,EAAA,EAAY,CAAA;AAAA,MACZ,qBAAA,CAAsB,GAAA,CAAI,CAAC,GAAA,EAAK,KAAA,qBAC/B,GAAA,CAAC,cAAA,EAAA,EACE,QAAA,EAAA,GAAA,CAAI,KAAA,IAAS,GAAA,CAAI,gBAAA,IAAoB,EAAA,EAAA,EADnB,KAErB,CACD;AAAA,KAAA,EACH,CAAA,EACF,CAAA;AAAA,wBACC,OAAA,EAAA,EACE,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,CAAA,MAAA,0BACV,QAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,WAAA,EAAA,EAAa,iBAAO,IAAA,EAAK,CAAA;AAAA,MACzB,sBAAsB,GAAA,CAAI,CAAC,GAAA,EAAK,KAAA,yBAC9B,SAAA,EAAA,EACE,QAAA,EAAA,sBAAA,CAAuB,MAAA,CAAO,OAAA,CAAQ,GAAG,CAAA,CAAE,QAAA,EAAU,CAAA,EAAA,EADxC,KAEhB,CACD;AAAA,KAAA,EAAA,EANY,MAAA,CAAO,IAOtB,CACD,CAAA,EACH;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { AbstractReactFactory } from '@projectstorm/react-canvas-core';
|
|
3
|
+
import { OverlayLayerModel } from './OverlayLayerModel.esm.js';
|
|
4
|
+
import { OverlayLayerWidget } from './OverlayLayerWidget.esm.js';
|
|
5
|
+
|
|
6
|
+
class OverlayLayerFactory extends AbstractReactFactory {
|
|
7
|
+
constructor() {
|
|
8
|
+
super("diagram-overlays");
|
|
9
|
+
}
|
|
10
|
+
generateModel() {
|
|
11
|
+
return new OverlayLayerModel();
|
|
12
|
+
}
|
|
13
|
+
generateReactWidget(event) {
|
|
14
|
+
return /* @__PURE__ */ jsx(OverlayLayerWidget, { layer: event.model, engine: this.engine });
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export { OverlayLayerFactory };
|
|
19
|
+
//# sourceMappingURL=OverlayLayerFactory.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OverlayLayerFactory.esm.js","sources":["../../../src/components/OverlayLoader/OverlayLayerFactory.tsx"],"sourcesContent":["import {\n AbstractReactFactory,\n GenerateWidgetEvent,\n} from '@projectstorm/react-canvas-core';\nimport { DiagramEngine } from '@projectstorm/react-diagrams';\n\nimport { OverlayLayerModel } from './OverlayLayerModel';\nimport { OverlayLayerWidget } from './OverlayLayerWidget';\n\nexport class OverlayLayerFactory extends AbstractReactFactory<\n OverlayLayerModel,\n DiagramEngine\n> {\n constructor() {\n super('diagram-overlays');\n }\n\n generateModel(): OverlayLayerModel {\n return new OverlayLayerModel();\n }\n\n generateReactWidget(\n event: GenerateWidgetEvent<OverlayLayerModel>,\n ): JSX.Element {\n return <OverlayLayerWidget layer={event.model} engine={this.engine} />;\n }\n}\n"],"names":[],"mappings":";;;;;AASO,MAAM,4BAA4B,oBAAA,CAGvC;AAAA,EACA,WAAA,GAAc;AACZ,IAAA,KAAA,CAAM,kBAAkB,CAAA;AAAA,EAC1B;AAAA,EAEA,aAAA,GAAmC;AACjC,IAAA,OAAO,IAAI,iBAAA,EAAkB;AAAA,EAC/B;AAAA,EAEA,oBACE,KAAA,EACa;AACb,IAAA,2BAAQ,kBAAA,EAAA,EAAmB,KAAA,EAAO,MAAM,KAAA,EAAO,MAAA,EAAQ,KAAK,MAAA,EAAQ,CAAA;AAAA,EACtE;AACF;;;;"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { LayerModel } from '@projectstorm/react-canvas-core';
|
|
2
|
+
|
|
3
|
+
class OverlayLayerModel extends LayerModel {
|
|
4
|
+
constructor() {
|
|
5
|
+
super({
|
|
6
|
+
type: "diagram-overlays"
|
|
7
|
+
});
|
|
8
|
+
}
|
|
9
|
+
getChildModelFactoryBank(_engine) {
|
|
10
|
+
throw new Error("Method not implemented.");
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export { OverlayLayerModel };
|
|
15
|
+
//# sourceMappingURL=OverlayLayerModel.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OverlayLayerModel.esm.js","sources":["../../../src/components/OverlayLoader/OverlayLayerModel.ts"],"sourcesContent":["import {\n AbstractModelFactory,\n BaseModel,\n BaseModelGenerics,\n CanvasEngine,\n CanvasEngineListener,\n CanvasModel,\n CanvasModelGenerics,\n FactoryBank,\n FactoryBankListener,\n LayerModel,\n LayerModelGenerics,\n} from '@projectstorm/react-canvas-core';\nimport { DiagramEngine } from '@projectstorm/react-diagrams';\n\nexport interface OverlayLayerModelGenerics extends LayerModelGenerics {\n ENGINE: DiagramEngine;\n}\n\nexport class OverlayLayerModel<\n G extends OverlayLayerModelGenerics = OverlayLayerModelGenerics,\n> extends LayerModel<G> {\n constructor() {\n super({\n type: 'diagram-overlays',\n });\n }\n\n getChildModelFactoryBank(\n _engine: G['ENGINE'],\n ): FactoryBank<\n AbstractModelFactory<\n BaseModel<BaseModelGenerics>,\n CanvasEngine<CanvasEngineListener, CanvasModel<CanvasModelGenerics>>\n >,\n FactoryBankListener<\n AbstractModelFactory<\n BaseModel<BaseModelGenerics>,\n CanvasEngine<CanvasEngineListener, CanvasModel<CanvasModelGenerics>>\n >\n >\n > {\n throw new Error('Method not implemented.');\n }\n}\n"],"names":[],"mappings":";;AAmBO,MAAM,0BAEH,UAAA,CAAc;AAAA,EACtB,WAAA,GAAc;AACZ,IAAA,KAAA,CAAM;AAAA,MACJ,IAAA,EAAM;AAAA,KACP,CAAA;AAAA,EACH;AAAA,EAEA,yBACE,OAAA,EAYA;AACA,IAAA,MAAM,IAAI,MAAM,yBAAyB,CAAA;AAAA,EAC3C;AACF;;;;"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { Component } from 'react';
|
|
3
|
+
import CircularProgress from '@mui/material/CircularProgress';
|
|
4
|
+
import styled from '@emotion/styled';
|
|
5
|
+
import { Colors } from '../../resources/constants.esm.js';
|
|
6
|
+
|
|
7
|
+
const Container = styled.div`
|
|
8
|
+
display: flex;
|
|
9
|
+
align-items: center;
|
|
10
|
+
flex-direction: row;
|
|
11
|
+
justify-content: center;
|
|
12
|
+
height: 100%;
|
|
13
|
+
width: 100%;
|
|
14
|
+
background-image: radial-gradient(
|
|
15
|
+
${({ theme }) => theme.colors.SURFACE_CONTAINER} 10%,
|
|
16
|
+
transparent 0px
|
|
17
|
+
);
|
|
18
|
+
background-size: 16px 16px;
|
|
19
|
+
background-color: ${({ theme }) => theme.colors.SURFACE_BRIGHT};
|
|
20
|
+
`;
|
|
21
|
+
class OverlayLayerWidget extends Component {
|
|
22
|
+
render() {
|
|
23
|
+
return /* @__PURE__ */ jsx(Container, { children: /* @__PURE__ */ jsx(CircularProgress, { sx: { color: Colors.PRIMARY } }) });
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export { OverlayLayerWidget };
|
|
28
|
+
//# sourceMappingURL=OverlayLayerWidget.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OverlayLayerWidget.esm.js","sources":["../../../src/components/OverlayLoader/OverlayLayerWidget.tsx"],"sourcesContent":["import { Component } from 'react';\nimport { DiagramEngine } from '@projectstorm/react-diagrams';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport styled from '@emotion/styled';\n\nimport { OverlayLayerModel } from './OverlayLayerModel';\nimport { Colors } from '../../resources';\n\nexport interface NodeLayerWidgetProps {\n layer: OverlayLayerModel;\n engine: DiagramEngine;\n}\n\nconst Container = styled.div`\n display: flex;\n align-items: center;\n flex-direction: row;\n justify-content: center;\n height: 100%;\n width: 100%;\n background-image: radial-gradient(\n ${({ theme }) => theme.colors.SURFACE_CONTAINER} 10%,\n transparent 0px\n );\n background-size: 16px 16px;\n background-color: ${({ theme }) => theme.colors.SURFACE_BRIGHT};\n`;\n\nexport class OverlayLayerWidget extends Component<NodeLayerWidgetProps> {\n render() {\n return (\n <Container>\n <CircularProgress sx={{ color: Colors.PRIMARY }} />\n </Container>\n );\n }\n}\n"],"names":[],"mappings":";;;;;;AAaA,MAAM,YAAY,MAAA,CAAO,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAA,EAQnB,CAAC,EAAE,KAAA,EAAM,KAAM,KAAA,CAAM,OAAO,iBAAiB,CAAA;AAAA;AAAA;AAAA;AAAA,oBAAA,EAI7B,CAAC,EAAE,KAAA,EAAM,KAAM,KAAA,CAAM,OAAO,cAAc,CAAA;AAAA,CAAA;AAGzD,MAAM,2BAA2B,SAAA,CAAgC;AAAA,EACtE,MAAA,GAAS;AACP,IAAA,uBACE,GAAA,CAAC,SAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,gBAAA,EAAA,EAAiB,EAAA,EAAI,EAAE,KAAA,EAAO,MAAA,CAAO,OAAA,EAAQ,EAAG,CAAA,EACnD,CAAA;AAAA,EAEJ;AACF;;;;"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { AdvancedLinkModel } from './AdvancedLinkModel.esm.js';
|
|
3
|
+
import { AdvancedLinkWidget } from './AdvancedLinkWidget.esm.js';
|
|
4
|
+
import styled from '@emotion/styled';
|
|
5
|
+
import { AbstractReactFactory } from '@projectstorm/react-canvas-core';
|
|
6
|
+
import { keyframes } from '@emotion/react';
|
|
7
|
+
|
|
8
|
+
var S;
|
|
9
|
+
((S2) => {
|
|
10
|
+
S2.Keyframes = keyframes`
|
|
11
|
+
from {
|
|
12
|
+
stroke-dashoffset: 24;
|
|
13
|
+
}
|
|
14
|
+
to {
|
|
15
|
+
stroke-dashoffset: 0;
|
|
16
|
+
}
|
|
17
|
+
`;
|
|
18
|
+
S2.Path = styled.path`
|
|
19
|
+
fill: none;
|
|
20
|
+
pointer-events: auto;
|
|
21
|
+
`;
|
|
22
|
+
})(S || (S = {}));
|
|
23
|
+
class AdvancedLinkFactory extends AbstractReactFactory {
|
|
24
|
+
constructor(type = "default-2") {
|
|
25
|
+
super(type);
|
|
26
|
+
}
|
|
27
|
+
generateReactWidget(event) {
|
|
28
|
+
return /* @__PURE__ */ jsx(AdvancedLinkWidget, { link: event.model, diagramEngine: this.engine });
|
|
29
|
+
}
|
|
30
|
+
generateModel() {
|
|
31
|
+
return new AdvancedLinkModel();
|
|
32
|
+
}
|
|
33
|
+
generateLinkSegment(model, selected, path, showArrow) {
|
|
34
|
+
return /* @__PURE__ */ jsxs("g", { children: [
|
|
35
|
+
/* @__PURE__ */ jsx(
|
|
36
|
+
S.Path,
|
|
37
|
+
{
|
|
38
|
+
stroke: selected ? model.getOptions().selectedColor : model.getOptions().color,
|
|
39
|
+
strokeWidth: model.getOptions().width,
|
|
40
|
+
d: path,
|
|
41
|
+
markerEnd: showArrow ? `url(#arrow-head-${model.getID()})` : ""
|
|
42
|
+
}
|
|
43
|
+
),
|
|
44
|
+
/* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsx(
|
|
45
|
+
"marker",
|
|
46
|
+
{
|
|
47
|
+
id: `arrow-head-${model.getID()}`,
|
|
48
|
+
markerWidth: "5",
|
|
49
|
+
markerHeight: "5",
|
|
50
|
+
markerUnits: "strokeWidth",
|
|
51
|
+
refX: "5",
|
|
52
|
+
refY: "2.5",
|
|
53
|
+
viewBox: "0 0 5 5",
|
|
54
|
+
orient: "auto",
|
|
55
|
+
children: /* @__PURE__ */ jsx(
|
|
56
|
+
"polygon",
|
|
57
|
+
{
|
|
58
|
+
points: "0,5 0,0 5,2.5",
|
|
59
|
+
fill: selected ? model.getOptions().selectedColor : model.getOptions().color
|
|
60
|
+
}
|
|
61
|
+
)
|
|
62
|
+
}
|
|
63
|
+
) })
|
|
64
|
+
] });
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export { AdvancedLinkFactory };
|
|
69
|
+
//# sourceMappingURL=AdvancedLinkFactory.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdvancedLinkFactory.esm.js","sources":["../../../../src/components/Project/AdvancedLink/AdvancedLinkFactory.tsx"],"sourcesContent":["import { AdvancedLinkModel } from './AdvancedLinkModel';\nimport { AdvancedLinkWidget } from './AdvancedLinkWidget';\nimport styled from '@emotion/styled';\nimport { AbstractReactFactory } from '@projectstorm/react-canvas-core';\nimport { DiagramEngine } from '@projectstorm/react-diagrams-core';\nimport { keyframes } from '@emotion/react';\n\nnamespace S {\n export const Keyframes = keyframes`\n\t\tfrom {\n\t\t\tstroke-dashoffset: 24;\n\t\t}\n\t\tto {\n\t\t\tstroke-dashoffset: 0;\n\t\t}\n\t`;\n\n export const Path = styled.path`\n fill: none;\n pointer-events: auto;\n `;\n}\n\nexport class AdvancedLinkFactory<\n Link extends AdvancedLinkModel = AdvancedLinkModel,\n> extends AbstractReactFactory<Link, DiagramEngine> {\n constructor(type = 'default-2') {\n super(type);\n }\n\n generateReactWidget(event: { model: AdvancedLinkModel }): JSX.Element {\n return (\n <AdvancedLinkWidget link={event.model} diagramEngine={this.engine} />\n );\n }\n\n generateModel(): Link {\n return new AdvancedLinkModel() as Link;\n }\n\n generateLinkSegment(\n model: Link,\n selected: boolean,\n path: string,\n showArrow?: boolean,\n ) {\n return (\n <g>\n <S.Path\n // selected={selected}\n stroke={\n selected\n ? model.getOptions().selectedColor\n : model.getOptions().color\n }\n strokeWidth={model.getOptions().width}\n d={path}\n markerEnd={showArrow ? `url(#arrow-head-${model.getID()})` : ''}\n />\n <defs>\n <marker\n id={`arrow-head-${model.getID()}`}\n markerWidth=\"5\"\n markerHeight=\"5\"\n markerUnits=\"strokeWidth\"\n refX=\"5\"\n refY=\"2.5\"\n viewBox=\"0 0 5 5\"\n orient=\"auto\"\n >\n <polygon\n points=\"0,5 0,0 5,2.5\"\n fill={\n selected\n ? model.getOptions().selectedColor\n : model.getOptions().color\n }\n />\n </marker>\n </defs>\n </g>\n );\n }\n}\n"],"names":["S"],"mappings":";;;;;;;AAOA,IAAU,CAAA;AAAA,CAAV,CAAUA,EAAAA,KAAV;AACS,EAAMA,GAAA,SAAA,GAAY,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA,CAAA;AASlB,EAAMA,EAAAA,CAAA,OAAO,MAAA,CAAO,IAAA;AAAA;AAAA;AAAA,EAAA,CAAA;AAAA,CAAA,EAVnB,CAAA,KAAA,CAAA,GAAA,EAAA,CAAA,CAAA;AAgBH,MAAM,4BAEH,oBAAA,CAA0C;AAAA,EAClD,WAAA,CAAY,OAAO,WAAA,EAAa;AAC9B,IAAA,KAAA,CAAM,IAAI,CAAA;AAAA,EACZ;AAAA,EAEA,oBAAoB,KAAA,EAAkD;AACpE,IAAA,2BACG,kBAAA,EAAA,EAAmB,IAAA,EAAM,MAAM,KAAA,EAAO,aAAA,EAAe,KAAK,MAAA,EAAQ,CAAA;AAAA,EAEvE;AAAA,EAEA,aAAA,GAAsB;AACpB,IAAA,OAAO,IAAI,iBAAA,EAAkB;AAAA,EAC/B;AAAA,EAEA,mBAAA,CACE,KAAA,EACA,QAAA,EACA,IAAA,EACA,SAAA,EACA;AACA,IAAA,4BACG,GAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAA,GAAA;AAAA,QAAC,CAAA,CAAE,IAAA;AAAA,QAAF;AAAA,UAEC,MAAA,EACE,WACI,KAAA,CAAM,UAAA,GAAa,aAAA,GACnB,KAAA,CAAM,YAAW,CAAE,KAAA;AAAA,UAEzB,WAAA,EAAa,KAAA,CAAM,UAAA,EAAW,CAAE,KAAA;AAAA,UAChC,CAAA,EAAG,IAAA;AAAA,UACH,WAAW,SAAA,GAAY,CAAA,gBAAA,EAAmB,KAAA,CAAM,KAAA,EAAO,CAAA,CAAA,CAAA,GAAM;AAAA;AAAA,OAC/D;AAAA,0BACC,MAAA,EAAA,EACC,QAAA,kBAAA,GAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,CAAA,WAAA,EAAc,KAAA,CAAM,KAAA,EAAO,CAAA,CAAA;AAAA,UAC/B,WAAA,EAAY,GAAA;AAAA,UACZ,YAAA,EAAa,GAAA;AAAA,UACb,WAAA,EAAY,aAAA;AAAA,UACZ,IAAA,EAAK,GAAA;AAAA,UACL,IAAA,EAAK,KAAA;AAAA,UACL,OAAA,EAAQ,SAAA;AAAA,UACR,MAAA,EAAO,MAAA;AAAA,UAEP,QAAA,kBAAA,GAAA;AAAA,YAAC,SAAA;AAAA,YAAA;AAAA,cACC,MAAA,EAAO,eAAA;AAAA,cACP,IAAA,EACE,WACI,KAAA,CAAM,UAAA,GAAa,aAAA,GACnB,KAAA,CAAM,YAAW,CAAE;AAAA;AAAA;AAE3B;AAAA,OACF,EACF;AAAA,KAAA,EACF,CAAA;AAAA,EAEJ;AACF;;;;"}
|