@pega/cosmos-react-build 5.0.0-dev.4.7 → 5.0.0-dev.4.9
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/package.json +4 -4
- package/lib/components/AppShell/AppShell.d.ts +0 -6
- package/lib/components/AppShell/AppShell.d.ts.map +0 -1
- package/lib/components/AppShell/AppShell.js +0 -58
- package/lib/components/AppShell/AppShell.js.map +0 -1
- package/lib/components/AppShell/AppShell.styles.d.ts +0 -17
- package/lib/components/AppShell/AppShell.styles.d.ts.map +0 -1
- package/lib/components/AppShell/AppShell.styles.js +0 -269
- package/lib/components/AppShell/AppShell.styles.js.map +0 -1
- package/lib/components/AppShell/AppShell.types.d.ts +0 -72
- package/lib/components/AppShell/AppShell.types.d.ts.map +0 -1
- package/lib/components/AppShell/AppShell.types.js +0 -2
- package/lib/components/AppShell/AppShell.types.js.map +0 -1
- package/lib/components/AppShell/AppShellContext.d.ts +0 -5
- package/lib/components/AppShell/AppShellContext.d.ts.map +0 -1
- package/lib/components/AppShell/AppShellContext.js +0 -8
- package/lib/components/AppShell/AppShellContext.js.map +0 -1
- package/lib/components/AppShell/Header/AppHeader.d.ts +0 -6
- package/lib/components/AppShell/Header/AppHeader.d.ts.map +0 -1
- package/lib/components/AppShell/Header/AppHeader.js +0 -73
- package/lib/components/AppShell/Header/AppHeader.js.map +0 -1
- package/lib/components/AppShell/Header/AppHeader.styles.d.ts +0 -13
- package/lib/components/AppShell/Header/AppHeader.styles.d.ts.map +0 -1
- package/lib/components/AppShell/Header/AppHeader.styles.js +0 -158
- package/lib/components/AppShell/Header/AppHeader.styles.js.map +0 -1
- package/lib/components/AppShell/Header/AppHeader.types.d.ts +0 -33
- package/lib/components/AppShell/Header/AppHeader.types.d.ts.map +0 -1
- package/lib/components/AppShell/Header/AppHeader.types.js +0 -2
- package/lib/components/AppShell/Header/AppHeader.types.js.map +0 -1
- package/lib/components/AppShell/Header/BranchButton.d.ts +0 -20
- package/lib/components/AppShell/Header/BranchButton.d.ts.map +0 -1
- package/lib/components/AppShell/Header/BranchButton.js +0 -91
- package/lib/components/AppShell/Header/BranchButton.js.map +0 -1
- package/lib/components/AppShell/NavigationList.d.ts +0 -6
- package/lib/components/AppShell/NavigationList.d.ts.map +0 -1
- package/lib/components/AppShell/NavigationList.js +0 -97
- package/lib/components/AppShell/NavigationList.js.map +0 -1
- package/lib/components/AppShell/index.d.ts +0 -5
- package/lib/components/AppShell/index.d.ts.map +0 -1
- package/lib/components/AppShell/index.js +0 -2
- package/lib/components/AppShell/index.js.map +0 -1
- package/lib/components/DynamicContentEditor/DynamicContentEditor.d.ts +0 -10
- package/lib/components/DynamicContentEditor/DynamicContentEditor.d.ts.map +0 -1
- package/lib/components/DynamicContentEditor/DynamicContentEditor.js +0 -239
- package/lib/components/DynamicContentEditor/DynamicContentEditor.js.map +0 -1
- package/lib/components/DynamicContentEditor/DynamicContentEditor.types.d.ts +0 -23
- package/lib/components/DynamicContentEditor/DynamicContentEditor.types.d.ts.map +0 -1
- package/lib/components/DynamicContentEditor/DynamicContentEditor.types.js +0 -2
- package/lib/components/DynamicContentEditor/DynamicContentEditor.types.js.map +0 -1
- package/lib/components/DynamicContentEditor/PegaCustomElement.d.ts +0 -329
- package/lib/components/DynamicContentEditor/PegaCustomElement.d.ts.map +0 -1
- package/lib/components/DynamicContentEditor/PegaCustomElement.js +0 -23
- package/lib/components/DynamicContentEditor/PegaCustomElement.js.map +0 -1
- package/lib/components/DynamicContentEditor/index.d.ts +0 -3
- package/lib/components/DynamicContentEditor/index.d.ts.map +0 -1
- package/lib/components/DynamicContentEditor/index.js +0 -2
- package/lib/components/DynamicContentEditor/index.js.map +0 -1
- package/lib/components/ExpressionBuilder/CodeEditor/CodeEditor.d.ts +0 -8
- package/lib/components/ExpressionBuilder/CodeEditor/CodeEditor.d.ts.map +0 -1
- package/lib/components/ExpressionBuilder/CodeEditor/CodeEditor.js +0 -176
- package/lib/components/ExpressionBuilder/CodeEditor/CodeEditor.js.map +0 -1
- package/lib/components/ExpressionBuilder/CodeEditor/CodeEditor.styles.d.ts +0 -10
- package/lib/components/ExpressionBuilder/CodeEditor/CodeEditor.styles.d.ts.map +0 -1
- package/lib/components/ExpressionBuilder/CodeEditor/CodeEditor.styles.js +0 -530
- package/lib/components/ExpressionBuilder/CodeEditor/CodeEditor.styles.js.map +0 -1
- package/lib/components/ExpressionBuilder/CodeEditor/CodeEditor.types.d.ts +0 -36
- package/lib/components/ExpressionBuilder/CodeEditor/CodeEditor.types.d.ts.map +0 -1
- package/lib/components/ExpressionBuilder/CodeEditor/CodeEditor.types.js +0 -2
- package/lib/components/ExpressionBuilder/CodeEditor/CodeEditor.types.js.map +0 -1
- package/lib/components/ExpressionBuilder/CodeEditor/getCodeSuggestions.d.ts +0 -13
- package/lib/components/ExpressionBuilder/CodeEditor/getCodeSuggestions.d.ts.map +0 -1
- package/lib/components/ExpressionBuilder/CodeEditor/getCodeSuggestions.js +0 -51
- package/lib/components/ExpressionBuilder/CodeEditor/getCodeSuggestions.js.map +0 -1
- package/lib/components/ExpressionBuilder/ExpressionBuilder.d.ts +0 -6
- package/lib/components/ExpressionBuilder/ExpressionBuilder.d.ts.map +0 -1
- package/lib/components/ExpressionBuilder/ExpressionBuilder.js +0 -51
- package/lib/components/ExpressionBuilder/ExpressionBuilder.js.map +0 -1
- package/lib/components/ExpressionBuilder/ExpressionBuilder.styles.d.ts +0 -14
- package/lib/components/ExpressionBuilder/ExpressionBuilder.styles.d.ts.map +0 -1
- package/lib/components/ExpressionBuilder/ExpressionBuilder.styles.js +0 -81
- package/lib/components/ExpressionBuilder/ExpressionBuilder.styles.js.map +0 -1
- package/lib/components/ExpressionBuilder/ExpressionBuilder.types.d.ts +0 -74
- package/lib/components/ExpressionBuilder/ExpressionBuilder.types.d.ts.map +0 -1
- package/lib/components/ExpressionBuilder/ExpressionBuilder.types.js +0 -2
- package/lib/components/ExpressionBuilder/ExpressionBuilder.types.js.map +0 -1
- package/lib/components/ExpressionBuilder/ExpressionBuilderContext.d.ts +0 -7
- package/lib/components/ExpressionBuilder/ExpressionBuilderContext.d.ts.map +0 -1
- package/lib/components/ExpressionBuilder/ExpressionBuilderContext.js +0 -6
- package/lib/components/ExpressionBuilder/ExpressionBuilderContext.js.map +0 -1
- package/lib/components/ExpressionBuilder/ExpressionDetails.d.ts +0 -6
- package/lib/components/ExpressionBuilder/ExpressionDetails.d.ts.map +0 -1
- package/lib/components/ExpressionBuilder/ExpressionDetails.js +0 -12
- package/lib/components/ExpressionBuilder/ExpressionDetails.js.map +0 -1
- package/lib/components/ExpressionBuilder/ExpressionItem.d.ts +0 -6
- package/lib/components/ExpressionBuilder/ExpressionItem.d.ts.map +0 -1
- package/lib/components/ExpressionBuilder/ExpressionItem.js +0 -39
- package/lib/components/ExpressionBuilder/ExpressionItem.js.map +0 -1
- package/lib/components/ExpressionBuilder/ExpressionList.d.ts +0 -6
- package/lib/components/ExpressionBuilder/ExpressionList.d.ts.map +0 -1
- package/lib/components/ExpressionBuilder/ExpressionList.js +0 -32
- package/lib/components/ExpressionBuilder/ExpressionList.js.map +0 -1
- package/lib/components/ExpressionBuilder/index.d.ts +0 -8
- package/lib/components/ExpressionBuilder/index.d.ts.map +0 -1
- package/lib/components/ExpressionBuilder/index.js +0 -6
- package/lib/components/ExpressionBuilder/index.js.map +0 -1
- package/lib/components/FlowModeller/AddNode.d.ts +0 -18
- package/lib/components/FlowModeller/AddNode.d.ts.map +0 -1
- package/lib/components/FlowModeller/AddNode.js +0 -86
- package/lib/components/FlowModeller/AddNode.js.map +0 -1
- package/lib/components/FlowModeller/Connector.d.ts +0 -7
- package/lib/components/FlowModeller/Connector.d.ts.map +0 -1
- package/lib/components/FlowModeller/Connector.js +0 -69
- package/lib/components/FlowModeller/Connector.js.map +0 -1
- package/lib/components/FlowModeller/DeletePopover.d.ts +0 -19
- package/lib/components/FlowModeller/DeletePopover.d.ts.map +0 -1
- package/lib/components/FlowModeller/DeletePopover.js +0 -136
- package/lib/components/FlowModeller/DeletePopover.js.map +0 -1
- package/lib/components/FlowModeller/FlowModeller.d.ts +0 -5
- package/lib/components/FlowModeller/FlowModeller.d.ts.map +0 -1
- package/lib/components/FlowModeller/FlowModeller.js +0 -317
- package/lib/components/FlowModeller/FlowModeller.js.map +0 -1
- package/lib/components/FlowModeller/FlowModeller.types.d.ts +0 -27
- package/lib/components/FlowModeller/FlowModeller.types.d.ts.map +0 -1
- package/lib/components/FlowModeller/FlowModeller.types.js +0 -2
- package/lib/components/FlowModeller/FlowModeller.types.js.map +0 -1
- package/lib/components/FlowModeller/FlowModellerContext.d.ts +0 -11
- package/lib/components/FlowModeller/FlowModellerContext.d.ts.map +0 -1
- package/lib/components/FlowModeller/FlowModellerContext.js +0 -8
- package/lib/components/FlowModeller/FlowModellerContext.js.map +0 -1
- package/lib/components/FlowModeller/Node/Node.types.d.ts +0 -75
- package/lib/components/FlowModeller/Node/Node.types.d.ts.map +0 -1
- package/lib/components/FlowModeller/Node/Node.types.js +0 -27
- package/lib/components/FlowModeller/Node/Node.types.js.map +0 -1
- package/lib/components/FlowModeller/Node/NodeTemplate.styles.d.ts +0 -21
- package/lib/components/FlowModeller/Node/NodeTemplate.styles.d.ts.map +0 -1
- package/lib/components/FlowModeller/Node/NodeTemplate.styles.js +0 -151
- package/lib/components/FlowModeller/Node/NodeTemplate.styles.js.map +0 -1
- package/lib/components/FlowModeller/Node/NodeTemplates.d.ts +0 -6
- package/lib/components/FlowModeller/Node/NodeTemplates.d.ts.map +0 -1
- package/lib/components/FlowModeller/Node/NodeTemplates.js +0 -70
- package/lib/components/FlowModeller/Node/NodeTemplates.js.map +0 -1
- package/lib/components/FlowModeller/Node.d.ts +0 -5
- package/lib/components/FlowModeller/Node.d.ts.map +0 -1
- package/lib/components/FlowModeller/Node.js +0 -22
- package/lib/components/FlowModeller/Node.js.map +0 -1
- package/lib/components/FlowModeller/Renderer/Renderer.d.ts +0 -5
- package/lib/components/FlowModeller/Renderer/Renderer.d.ts.map +0 -1
- package/lib/components/FlowModeller/Renderer/Renderer.js +0 -48
- package/lib/components/FlowModeller/Renderer/Renderer.js.map +0 -1
- package/lib/components/FlowModeller/Renderer/Renderer.types.d.ts +0 -18
- package/lib/components/FlowModeller/Renderer/Renderer.types.d.ts.map +0 -1
- package/lib/components/FlowModeller/Renderer/Renderer.types.js +0 -2
- package/lib/components/FlowModeller/Renderer/Renderer.types.js.map +0 -1
- package/lib/components/FlowModeller/Renderer/Utils/Graph.d.ts +0 -59
- package/lib/components/FlowModeller/Renderer/Utils/Graph.d.ts.map +0 -1
- package/lib/components/FlowModeller/Renderer/Utils/Graph.js +0 -258
- package/lib/components/FlowModeller/Renderer/Utils/Graph.js.map +0 -1
- package/lib/components/FlowModeller/Renderer/Utils/GraphLayout.d.ts +0 -36
- package/lib/components/FlowModeller/Renderer/Utils/GraphLayout.d.ts.map +0 -1
- package/lib/components/FlowModeller/Renderer/Utils/GraphLayout.js +0 -120
- package/lib/components/FlowModeller/Renderer/Utils/GraphLayout.js.map +0 -1
- package/lib/components/FlowModeller/Renderer/Utils/GraphTraversal.d.ts +0 -27
- package/lib/components/FlowModeller/Renderer/Utils/GraphTraversal.d.ts.map +0 -1
- package/lib/components/FlowModeller/Renderer/Utils/GraphTraversal.js +0 -172
- package/lib/components/FlowModeller/Renderer/Utils/GraphTraversal.js.map +0 -1
- package/lib/components/FlowModeller/Utils/addNodeUtils.d.ts +0 -17
- package/lib/components/FlowModeller/Utils/addNodeUtils.d.ts.map +0 -1
- package/lib/components/FlowModeller/Utils/addNodeUtils.js +0 -141
- package/lib/components/FlowModeller/Utils/addNodeUtils.js.map +0 -1
- package/lib/components/FlowModeller/Utils/deleteNodeUtils.d.ts +0 -30
- package/lib/components/FlowModeller/Utils/deleteNodeUtils.d.ts.map +0 -1
- package/lib/components/FlowModeller/Utils/deleteNodeUtils.js +0 -81
- package/lib/components/FlowModeller/Utils/deleteNodeUtils.js.map +0 -1
- package/lib/components/FlowModeller/helper.d.ts +0 -39
- package/lib/components/FlowModeller/helper.d.ts.map +0 -1
- package/lib/components/FlowModeller/helper.js +0 -198
- package/lib/components/FlowModeller/helper.js.map +0 -1
- package/lib/components/FlowModeller/index.d.ts +0 -20
- package/lib/components/FlowModeller/index.d.ts.map +0 -1
- package/lib/components/FlowModeller/index.js +0 -12
- package/lib/components/FlowModeller/index.js.map +0 -1
- package/lib/components/ItemLibrary/ItemLibrary.d.ts +0 -25
- package/lib/components/ItemLibrary/ItemLibrary.d.ts.map +0 -1
- package/lib/components/ItemLibrary/ItemLibrary.js +0 -62
- package/lib/components/ItemLibrary/ItemLibrary.js.map +0 -1
- package/lib/components/ItemLibrary/index.d.ts +0 -3
- package/lib/components/ItemLibrary/index.d.ts.map +0 -1
- package/lib/components/ItemLibrary/index.js +0 -3
- package/lib/components/ItemLibrary/index.js.map +0 -1
- package/lib/components/LifeCycle/Category.d.ts +0 -15
- package/lib/components/LifeCycle/Category.d.ts.map +0 -1
- package/lib/components/LifeCycle/Category.js +0 -104
- package/lib/components/LifeCycle/Category.js.map +0 -1
- package/lib/components/LifeCycle/LifeCycle.d.ts +0 -6
- package/lib/components/LifeCycle/LifeCycle.d.ts.map +0 -1
- package/lib/components/LifeCycle/LifeCycle.js +0 -77
- package/lib/components/LifeCycle/LifeCycle.js.map +0 -1
- package/lib/components/LifeCycle/LifeCycle.types.d.ts +0 -154
- package/lib/components/LifeCycle/LifeCycle.types.d.ts.map +0 -1
- package/lib/components/LifeCycle/LifeCycle.types.js +0 -79
- package/lib/components/LifeCycle/LifeCycle.types.js.map +0 -1
- package/lib/components/LifeCycle/LifeCycleContext.d.ts +0 -9
- package/lib/components/LifeCycle/LifeCycleContext.d.ts.map +0 -1
- package/lib/components/LifeCycle/LifeCycleContext.js +0 -7
- package/lib/components/LifeCycle/LifeCycleContext.js.map +0 -1
- package/lib/components/LifeCycle/LifeCycleList.d.ts +0 -30
- package/lib/components/LifeCycle/LifeCycleList.d.ts.map +0 -1
- package/lib/components/LifeCycle/LifeCycleList.js +0 -68
- package/lib/components/LifeCycle/LifeCycleList.js.map +0 -1
- package/lib/components/LifeCycle/Stage.d.ts +0 -29
- package/lib/components/LifeCycle/Stage.d.ts.map +0 -1
- package/lib/components/LifeCycle/Stage.js +0 -232
- package/lib/components/LifeCycle/Stage.js.map +0 -1
- package/lib/components/LifeCycle/Step.d.ts +0 -40
- package/lib/components/LifeCycle/Step.d.ts.map +0 -1
- package/lib/components/LifeCycle/Step.js +0 -170
- package/lib/components/LifeCycle/Step.js.map +0 -1
- package/lib/components/LifeCycle/Task.d.ts +0 -34
- package/lib/components/LifeCycle/Task.d.ts.map +0 -1
- package/lib/components/LifeCycle/Task.js +0 -158
- package/lib/components/LifeCycle/Task.js.map +0 -1
- package/lib/components/LifeCycle/index.d.ts +0 -3
- package/lib/components/LifeCycle/index.d.ts.map +0 -1
- package/lib/components/LifeCycle/index.js +0 -2
- package/lib/components/LifeCycle/index.js.map +0 -1
- package/lib/components/MobileBuildSummary/MobileBuildSummary.d.ts +0 -8
- package/lib/components/MobileBuildSummary/MobileBuildSummary.d.ts.map +0 -1
- package/lib/components/MobileBuildSummary/MobileBuildSummary.js +0 -33
- package/lib/components/MobileBuildSummary/MobileBuildSummary.js.map +0 -1
- package/lib/components/MobileBuildSummary/MobileBuildSummary.types.d.ts +0 -31
- package/lib/components/MobileBuildSummary/MobileBuildSummary.types.d.ts.map +0 -1
- package/lib/components/MobileBuildSummary/MobileBuildSummary.types.js +0 -2
- package/lib/components/MobileBuildSummary/MobileBuildSummary.types.js.map +0 -1
- package/lib/components/MobileBuildSummary/index.d.ts +0 -3
- package/lib/components/MobileBuildSummary/index.d.ts.map +0 -1
- package/lib/components/MobileBuildSummary/index.js +0 -2
- package/lib/components/MobileBuildSummary/index.js.map +0 -1
- package/lib/components/ObjectPreview/ObjectPreview.d.ts +0 -16
- package/lib/components/ObjectPreview/ObjectPreview.d.ts.map +0 -1
- package/lib/components/ObjectPreview/ObjectPreview.js +0 -25
- package/lib/components/ObjectPreview/ObjectPreview.js.map +0 -1
- package/lib/components/ObjectPreview/index.d.ts +0 -3
- package/lib/components/ObjectPreview/index.d.ts.map +0 -1
- package/lib/components/ObjectPreview/index.js +0 -3
- package/lib/components/ObjectPreview/index.js.map +0 -1
- package/lib/components/ObjectSelect/ObjectPicker.d.ts +0 -15
- package/lib/components/ObjectSelect/ObjectPicker.d.ts.map +0 -1
- package/lib/components/ObjectSelect/ObjectPicker.js +0 -40
- package/lib/components/ObjectSelect/ObjectPicker.js.map +0 -1
- package/lib/components/ObjectSelect/ObjectSelect.d.ts +0 -32
- package/lib/components/ObjectSelect/ObjectSelect.d.ts.map +0 -1
- package/lib/components/ObjectSelect/ObjectSelect.js +0 -41
- package/lib/components/ObjectSelect/ObjectSelect.js.map +0 -1
- package/lib/components/ObjectSelect/ObjectSummary.d.ts +0 -32
- package/lib/components/ObjectSelect/ObjectSummary.d.ts.map +0 -1
- package/lib/components/ObjectSelect/ObjectSummary.js +0 -81
- package/lib/components/ObjectSelect/ObjectSummary.js.map +0 -1
- package/lib/components/ObjectSelect/index.d.ts +0 -3
- package/lib/components/ObjectSelect/index.d.ts.map +0 -1
- package/lib/components/ObjectSelect/index.js +0 -2
- package/lib/components/ObjectSelect/index.js.map +0 -1
- package/lib/components/ObjectSelect/useCreateModal.d.ts +0 -32
- package/lib/components/ObjectSelect/useCreateModal.d.ts.map +0 -1
- package/lib/components/ObjectSelect/useCreateModal.js +0 -60
- package/lib/components/ObjectSelect/useCreateModal.js.map +0 -1
- package/lib/components/PageBanner/PageBanner.d.ts +0 -22
- package/lib/components/PageBanner/PageBanner.d.ts.map +0 -1
- package/lib/components/PageBanner/PageBanner.js +0 -59
- package/lib/components/PageBanner/PageBanner.js.map +0 -1
- package/lib/components/PageBanner/index.d.ts +0 -3
- package/lib/components/PageBanner/index.d.ts.map +0 -1
- package/lib/components/PageBanner/index.js +0 -2
- package/lib/components/PageBanner/index.js.map +0 -1
- package/lib/components/PageTemplates/GalleryPage.d.ts +0 -23
- package/lib/components/PageTemplates/GalleryPage.d.ts.map +0 -1
- package/lib/components/PageTemplates/GalleryPage.js +0 -47
- package/lib/components/PageTemplates/GalleryPage.js.map +0 -1
- package/lib/components/PageTemplates/PageTemplates.d.ts +0 -27
- package/lib/components/PageTemplates/PageTemplates.d.ts.map +0 -1
- package/lib/components/PageTemplates/PageTemplates.js +0 -72
- package/lib/components/PageTemplates/PageTemplates.js.map +0 -1
- package/lib/components/PageTemplates/ShowcasePage.d.ts +0 -16
- package/lib/components/PageTemplates/ShowcasePage.d.ts.map +0 -1
- package/lib/components/PageTemplates/ShowcasePage.js +0 -29
- package/lib/components/PageTemplates/ShowcasePage.js.map +0 -1
- package/lib/components/PageTemplates/index.d.ts +0 -6
- package/lib/components/PageTemplates/index.d.ts.map +0 -1
- package/lib/components/PageTemplates/index.js +0 -4
- package/lib/components/PageTemplates/index.js.map +0 -1
- package/lib/components/SummaryCard/SummaryCard.d.ts +0 -15
- package/lib/components/SummaryCard/SummaryCard.d.ts.map +0 -1
- package/lib/components/SummaryCard/SummaryCard.js +0 -27
- package/lib/components/SummaryCard/SummaryCard.js.map +0 -1
- package/lib/components/SummaryCard/index.d.ts +0 -3
- package/lib/components/SummaryCard/index.d.ts.map +0 -1
- package/lib/components/SummaryCard/index.js +0 -3
- package/lib/components/SummaryCard/index.js.map +0 -1
- package/lib/components/Workbench/ConfigurationPanel.d.ts +0 -5
- package/lib/components/Workbench/ConfigurationPanel.d.ts.map +0 -1
- package/lib/components/Workbench/ConfigurationPanel.js +0 -10
- package/lib/components/Workbench/ConfigurationPanel.js.map +0 -1
- package/lib/components/Workbench/Toolbar.d.ts +0 -10
- package/lib/components/Workbench/Toolbar.d.ts.map +0 -1
- package/lib/components/Workbench/Toolbar.js +0 -14
- package/lib/components/Workbench/Toolbar.js.map +0 -1
- package/lib/components/Workbench/UtilityPanel.d.ts +0 -7
- package/lib/components/Workbench/UtilityPanel.d.ts.map +0 -1
- package/lib/components/Workbench/UtilityPanel.js +0 -12
- package/lib/components/Workbench/UtilityPanel.js.map +0 -1
- package/lib/components/Workbench/Workbench.d.ts +0 -6
- package/lib/components/Workbench/Workbench.d.ts.map +0 -1
- package/lib/components/Workbench/Workbench.js +0 -23
- package/lib/components/Workbench/Workbench.js.map +0 -1
- package/lib/components/Workbench/Workbench.styles.d.ts +0 -10
- package/lib/components/Workbench/Workbench.styles.d.ts.map +0 -1
- package/lib/components/Workbench/Workbench.styles.js +0 -75
- package/lib/components/Workbench/Workbench.styles.js.map +0 -1
- package/lib/components/Workbench/Workbench.types.d.ts +0 -47
- package/lib/components/Workbench/Workbench.types.d.ts.map +0 -1
- package/lib/components/Workbench/Workbench.types.js +0 -2
- package/lib/components/Workbench/Workbench.types.js.map +0 -1
- package/lib/components/Workbench/index.d.ts +0 -2
- package/lib/components/Workbench/index.d.ts.map +0 -1
- package/lib/components/Workbench/index.js +0 -2
- package/lib/components/Workbench/index.js.map +0 -1
- package/lib/index.d.ts +0 -23
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js +0 -24
- package/lib/index.js.map +0 -1
- package/lib/utils/index.d.ts +0 -2
- package/lib/utils/index.d.ts.map +0 -1
- package/lib/utils/index.js +0 -2
- package/lib/utils/index.js.map +0 -1
- package/lib/utils/utils.d.ts +0 -14
- package/lib/utils/utils.d.ts.map +0 -1
- package/lib/utils/utils.js +0 -13
- package/lib/utils/utils.js.map +0 -1
|
@@ -1,258 +0,0 @@
|
|
|
1
|
-
export class DirectedGraph {
|
|
2
|
-
nodes = {};
|
|
3
|
-
connectors = {};
|
|
4
|
-
// additional way to maintain related data - for cases where Graph is used for indirect purposes
|
|
5
|
-
nodeData = {};
|
|
6
|
-
connectorData = {};
|
|
7
|
-
inConnectors = {}; // we are maintaining connector reference instead of id, to avoid iterations later on.
|
|
8
|
-
prevNodesCount = {};
|
|
9
|
-
outConnectors = {}; // we are maintaining connector reference instead of id, to avoid iterations later on
|
|
10
|
-
nextNodesCount = {};
|
|
11
|
-
nodeCount = 0;
|
|
12
|
-
connectorsCount = 0;
|
|
13
|
-
constructor(graphData = { nodes: [], connectors: [] }) {
|
|
14
|
-
// Not necessary to clone, as this class never modifies any nodes
|
|
15
|
-
graphData.nodes.forEach(item => this.addNode(item));
|
|
16
|
-
// copy/clone, connectors properties 'fromNodeId' and 'toNodeId' values may get modified by this class
|
|
17
|
-
graphData.connectors.forEach(item => {
|
|
18
|
-
const data = item.data;
|
|
19
|
-
const newItem = JSON.parse(JSON.stringify(item));
|
|
20
|
-
// below statement is necessary to retain the actual references of any function/instances if any
|
|
21
|
-
newItem.data = data;
|
|
22
|
-
this.addConnector(newItem);
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
getGraphData() {
|
|
26
|
-
return {
|
|
27
|
-
nodes: this.getNodes(),
|
|
28
|
-
connectors: this.getConnectors()
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
getNodeCount() {
|
|
32
|
-
return this.nodeCount;
|
|
33
|
-
}
|
|
34
|
-
getNodes() {
|
|
35
|
-
return Object.values(this.nodes);
|
|
36
|
-
}
|
|
37
|
-
addNode(node, data) {
|
|
38
|
-
if (this.nodes[node.id] !== undefined) {
|
|
39
|
-
this.nodes[node.id] = node;
|
|
40
|
-
this.nodeData[node.id] = data;
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
this.nodes[node.id] = node;
|
|
44
|
-
this.nodeData[node.id] = data;
|
|
45
|
-
this.inConnectors[node.id] = {};
|
|
46
|
-
this.prevNodesCount[node.id] = {};
|
|
47
|
-
this.outConnectors[node.id] = {};
|
|
48
|
-
this.nextNodesCount[node.id] = {};
|
|
49
|
-
this.nodeCount += 1;
|
|
50
|
-
}
|
|
51
|
-
return this;
|
|
52
|
-
}
|
|
53
|
-
getNode(nodeId) {
|
|
54
|
-
return this.nodes[nodeId];
|
|
55
|
-
}
|
|
56
|
-
hasNode(nodeId) {
|
|
57
|
-
return this.nodes[nodeId] !== undefined;
|
|
58
|
-
}
|
|
59
|
-
deleteNode(nodeId, ignoreConnectors = false) {
|
|
60
|
-
if (this.hasNode(nodeId)) {
|
|
61
|
-
delete this.nodes[nodeId];
|
|
62
|
-
delete this.nodeData[nodeId];
|
|
63
|
-
if (ignoreConnectors !== true) {
|
|
64
|
-
const removeConnector = (id) => this.removeConnector(id);
|
|
65
|
-
// IMP NOTE its the responsibility of the callee to make sure that the connectors are cleanly reassigned, or else all attached connectors will be deleted
|
|
66
|
-
Object.keys(this.inConnectors[nodeId]).forEach(removeConnector);
|
|
67
|
-
delete this.inConnectors[nodeId];
|
|
68
|
-
delete this.prevNodesCount[nodeId];
|
|
69
|
-
Object.keys(this.outConnectors[nodeId]).forEach(removeConnector);
|
|
70
|
-
delete this.outConnectors[nodeId];
|
|
71
|
-
delete this.nextNodesCount[nodeId];
|
|
72
|
-
}
|
|
73
|
-
this.nodeCount += 1;
|
|
74
|
-
}
|
|
75
|
-
return this;
|
|
76
|
-
}
|
|
77
|
-
getPrevNodes(nodeId) {
|
|
78
|
-
return this.prevNodesCount[nodeId]
|
|
79
|
-
? Object.keys(this.prevNodesCount[nodeId]).map(id => this.getNode(id))
|
|
80
|
-
: [];
|
|
81
|
-
}
|
|
82
|
-
getNextNodes(nodeId) {
|
|
83
|
-
return this.nextNodesCount[nodeId]
|
|
84
|
-
? Object.keys(this.nextNodesCount[nodeId]).map(id => this.getNode(id))
|
|
85
|
-
: [];
|
|
86
|
-
}
|
|
87
|
-
getPrevNodesCount(nodeId) {
|
|
88
|
-
return (this.prevNodesCount[nodeId] ? Object.values(this.prevNodesCount[nodeId]) : []).reduce((prev, current) => prev + current, 0);
|
|
89
|
-
}
|
|
90
|
-
getNextNodesCount(nodeId) {
|
|
91
|
-
return (this.nextNodesCount[nodeId] ? Object.values(this.nextNodesCount[nodeId]) : []).reduce((prev, current) => prev + current, 0);
|
|
92
|
-
}
|
|
93
|
-
isLeaf(nodeId) {
|
|
94
|
-
return this.getNextNodes(nodeId).length === 0;
|
|
95
|
-
}
|
|
96
|
-
// -- Connectors
|
|
97
|
-
getConnectorsCount() {
|
|
98
|
-
return this.connectorsCount;
|
|
99
|
-
}
|
|
100
|
-
getConnectors() {
|
|
101
|
-
return Object.values(this.connectors);
|
|
102
|
-
}
|
|
103
|
-
addConnector(connector, data) {
|
|
104
|
-
if (this.connectors[connector.id] !== undefined) {
|
|
105
|
-
// update the map
|
|
106
|
-
this.connectors[connector.id] = connector;
|
|
107
|
-
this.connectorData[connector.id] = data;
|
|
108
|
-
return this;
|
|
109
|
-
}
|
|
110
|
-
const id = connector.id;
|
|
111
|
-
const fromNodeId = connector.fromNodeId;
|
|
112
|
-
const toNodeId = connector.toNodeId;
|
|
113
|
-
// check if nodes with given ids exist
|
|
114
|
-
if (this.nodes[fromNodeId] === undefined || this.nodes[toNodeId] === undefined) {
|
|
115
|
-
throw new Error(`One or more nodes does not exist, cannot add connector ${fromNodeId}-${toNodeId}`);
|
|
116
|
-
}
|
|
117
|
-
// add it to the map
|
|
118
|
-
this.connectors[id] = connector;
|
|
119
|
-
this.connectorData[id] = data;
|
|
120
|
-
// update prev nodes count
|
|
121
|
-
if (this.prevNodesCount[toNodeId][fromNodeId]) {
|
|
122
|
-
this.prevNodesCount[toNodeId][fromNodeId] += 1;
|
|
123
|
-
}
|
|
124
|
-
else {
|
|
125
|
-
this.prevNodesCount[toNodeId][fromNodeId] = 1;
|
|
126
|
-
}
|
|
127
|
-
// update next nodes count
|
|
128
|
-
if (this.nextNodesCount[fromNodeId][toNodeId]) {
|
|
129
|
-
this.nextNodesCount[fromNodeId][toNodeId] += 1;
|
|
130
|
-
}
|
|
131
|
-
else {
|
|
132
|
-
this.nextNodesCount[fromNodeId][toNodeId] = 1;
|
|
133
|
-
}
|
|
134
|
-
// update in and out connectors for both the nodes
|
|
135
|
-
this.inConnectors[toNodeId][id] = connector;
|
|
136
|
-
this.outConnectors[fromNodeId][id] = connector;
|
|
137
|
-
// increment total connectors count
|
|
138
|
-
this.connectorsCount += 1;
|
|
139
|
-
return this;
|
|
140
|
-
}
|
|
141
|
-
hasConnector(id) {
|
|
142
|
-
return this.connectors[id] !== undefined;
|
|
143
|
-
}
|
|
144
|
-
getConnector(id) {
|
|
145
|
-
return this.connectors[id];
|
|
146
|
-
}
|
|
147
|
-
removeConnector(id) {
|
|
148
|
-
const connector = this.connectors[id];
|
|
149
|
-
if (connector !== undefined) {
|
|
150
|
-
const fromNodeId = connector.fromNodeId;
|
|
151
|
-
const toNodeId = connector.toNodeId;
|
|
152
|
-
delete this.connectors[id];
|
|
153
|
-
delete this.connectorData[id];
|
|
154
|
-
// update prev nodes count
|
|
155
|
-
this.prevNodesCount[toNodeId][fromNodeId] -= 1;
|
|
156
|
-
if (this.prevNodesCount[toNodeId][fromNodeId] === 0) {
|
|
157
|
-
delete this.prevNodesCount[toNodeId][fromNodeId];
|
|
158
|
-
}
|
|
159
|
-
// update next nodes count
|
|
160
|
-
this.nextNodesCount[fromNodeId][toNodeId] -= 1;
|
|
161
|
-
if (this.nextNodesCount[fromNodeId][toNodeId] === 0) {
|
|
162
|
-
delete this.nextNodesCount[fromNodeId][toNodeId];
|
|
163
|
-
}
|
|
164
|
-
delete this.inConnectors[toNodeId][id];
|
|
165
|
-
delete this.outConnectors[fromNodeId][id];
|
|
166
|
-
this.connectorsCount -= 1;
|
|
167
|
-
}
|
|
168
|
-
return this;
|
|
169
|
-
}
|
|
170
|
-
setConnector(id, data) {
|
|
171
|
-
// VALIDATE
|
|
172
|
-
// -connector with given id exists
|
|
173
|
-
// -node with given fromNodeId exists
|
|
174
|
-
// -node with given toNodeId exists
|
|
175
|
-
if (!this.getConnector(id)) {
|
|
176
|
-
throw new Error(`Connector with id '${id}' does not exist.`);
|
|
177
|
-
}
|
|
178
|
-
if (data.fromNodeId && !this.getNode(data.fromNodeId)) {
|
|
179
|
-
throw new Error(`Node with id '${data.fromNodeId}' does not exist, to update fromNodeId.`);
|
|
180
|
-
}
|
|
181
|
-
if (data.toNodeId && !this.getNode(data.toNodeId)) {
|
|
182
|
-
throw new Error(`Node with id '${data.toNodeId}' does not exist, to update toNodeId.`);
|
|
183
|
-
}
|
|
184
|
-
const connector = this.getConnector(id);
|
|
185
|
-
// current references
|
|
186
|
-
let fromNodeId = connector.fromNodeId;
|
|
187
|
-
let toNodeId = connector.toNodeId;
|
|
188
|
-
// update prev nodes count - unset prev values
|
|
189
|
-
this.prevNodesCount[toNodeId][fromNodeId] -= 1;
|
|
190
|
-
if (this.prevNodesCount[toNodeId][fromNodeId] === 0) {
|
|
191
|
-
delete this.prevNodesCount[toNodeId][fromNodeId];
|
|
192
|
-
}
|
|
193
|
-
// update next nodes count - unset prev values
|
|
194
|
-
this.nextNodesCount[fromNodeId][toNodeId] -= 1;
|
|
195
|
-
if (this.nextNodesCount[fromNodeId][toNodeId] === 0) {
|
|
196
|
-
delete this.nextNodesCount[fromNodeId][toNodeId];
|
|
197
|
-
}
|
|
198
|
-
// remove prev references
|
|
199
|
-
delete this.inConnectors[toNodeId][id];
|
|
200
|
-
delete this.outConnectors[fromNodeId][id];
|
|
201
|
-
// new references
|
|
202
|
-
fromNodeId = data.fromNodeId ? data.fromNodeId : connector.fromNodeId;
|
|
203
|
-
toNodeId = data.toNodeId ? data.toNodeId : connector.toNodeId;
|
|
204
|
-
connector.fromNodeId = fromNodeId;
|
|
205
|
-
connector.toNodeId = toNodeId;
|
|
206
|
-
// update prev nodes count
|
|
207
|
-
if (this.prevNodesCount[toNodeId][fromNodeId]) {
|
|
208
|
-
this.prevNodesCount[toNodeId][fromNodeId] += 1;
|
|
209
|
-
}
|
|
210
|
-
else {
|
|
211
|
-
this.prevNodesCount[toNodeId][fromNodeId] = 1;
|
|
212
|
-
}
|
|
213
|
-
// update next nodes count
|
|
214
|
-
if (this.nextNodesCount[fromNodeId][toNodeId]) {
|
|
215
|
-
this.nextNodesCount[fromNodeId][toNodeId] += 1;
|
|
216
|
-
}
|
|
217
|
-
else {
|
|
218
|
-
this.nextNodesCount[fromNodeId][toNodeId] = 1;
|
|
219
|
-
}
|
|
220
|
-
// update in and out connectors for both the nodes
|
|
221
|
-
this.inConnectors[toNodeId][id] = connector;
|
|
222
|
-
this.outConnectors[fromNodeId][id] = connector;
|
|
223
|
-
return this;
|
|
224
|
-
}
|
|
225
|
-
getInConnectors(toNodeId, fromNodeId) {
|
|
226
|
-
const allInConnectors = this.inConnectors[toNodeId];
|
|
227
|
-
if (allInConnectors) {
|
|
228
|
-
const connectorValues = Object.values(allInConnectors);
|
|
229
|
-
if (fromNodeId === undefined) {
|
|
230
|
-
return connectorValues;
|
|
231
|
-
}
|
|
232
|
-
return connectorValues.filter(connector => {
|
|
233
|
-
return connector.fromNodeId === fromNodeId;
|
|
234
|
-
});
|
|
235
|
-
}
|
|
236
|
-
return [];
|
|
237
|
-
}
|
|
238
|
-
getOutConnectors(fromNodeId, toNodeId) {
|
|
239
|
-
const allOutConnectors = this.outConnectors[fromNodeId];
|
|
240
|
-
if (allOutConnectors) {
|
|
241
|
-
const connectorValues = Object.values(allOutConnectors);
|
|
242
|
-
if (toNodeId === undefined) {
|
|
243
|
-
return connectorValues;
|
|
244
|
-
}
|
|
245
|
-
return connectorValues.filter(connector => {
|
|
246
|
-
return connector.toNodeId === toNodeId;
|
|
247
|
-
});
|
|
248
|
-
}
|
|
249
|
-
return [];
|
|
250
|
-
}
|
|
251
|
-
getAllNodeConnectors(nodeId) {
|
|
252
|
-
const inConnectors = this.getInConnectors(nodeId);
|
|
253
|
-
if (inConnectors) {
|
|
254
|
-
return inConnectors.concat(this.getOutConnectors(nodeId));
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
//# sourceMappingURL=Graph.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Graph.js","sourceRoot":"","sources":["../../../../../src/components/FlowModeller/Renderer/Utils/Graph.ts"],"names":[],"mappings":"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","sourcesContent":["export interface ConnectorProps<T = unknown> {\n id: string;\n fromNodeId: string;\n toNodeId: string;\n label?: string;\n data?: T;\n}\nexport interface NodeType {\n minConnectors: number;\n}\nexport interface Node<T = unknown> {\n type?: NodeType;\n id: string;\n data?: T;\n reference?: string;\n}\n\nexport interface GraphData<T extends Node = Node, U extends ConnectorProps = ConnectorProps> {\n nodes: T[];\n connectors: U[];\n}\n\nexport class DirectedGraph<\n T extends Node = Node,\n U extends ConnectorProps = ConnectorProps,\n D1 = unknown,\n D2 = unknown\n> {\n private nodes: Record<string, T> = {};\n private connectors: Record<string, U> = {};\n\n // additional way to maintain related data - for cases where Graph is used for indirect purposes\n private nodeData: Record<string, D1 | unknown> = {};\n private connectorData: Record<string, D2 | unknown> = {};\n\n private inConnectors: Record<string, Record<string, U>> = {}; // we are maintaining connector reference instead of id, to avoid iterations later on.\n private prevNodesCount: Record<string, Record<string, number>> = {};\n\n private outConnectors: Record<string, Record<string, U>> = {}; // we are maintaining connector reference instead of id, to avoid iterations later on\n private nextNodesCount: Record<string, Record<string, number>> = {};\n\n private nodeCount = 0;\n private connectorsCount = 0;\n\n constructor(graphData: GraphData<T, U> = { nodes: [], connectors: [] }) {\n // Not necessary to clone, as this class never modifies any nodes\n graphData.nodes.forEach(item => this.addNode(item));\n // copy/clone, connectors properties 'fromNodeId' and 'toNodeId' values may get modified by this class\n graphData.connectors.forEach(item => {\n const data = item.data;\n const newItem = JSON.parse(JSON.stringify(item));\n\n // below statement is necessary to retain the actual references of any function/instances if any\n newItem.data = data;\n\n this.addConnector(newItem);\n });\n }\n\n getGraphData(): GraphData<T, U> {\n return {\n nodes: this.getNodes(),\n connectors: this.getConnectors()\n };\n }\n\n getNodeCount(): number {\n return this.nodeCount;\n }\n\n getNodes() {\n return Object.values(this.nodes);\n }\n\n addNode(node: T, data?: D1): DirectedGraph {\n if (this.nodes[node.id] !== undefined) {\n this.nodes[node.id] = node;\n this.nodeData[node.id] = data;\n } else {\n this.nodes[node.id] = node;\n this.nodeData[node.id] = data;\n\n this.inConnectors[node.id] = {};\n this.prevNodesCount[node.id] = {};\n\n this.outConnectors[node.id] = {};\n this.nextNodesCount[node.id] = {};\n\n this.nodeCount += 1;\n }\n\n return this;\n }\n\n getNode(nodeId: string): T {\n return this.nodes[nodeId];\n }\n\n hasNode(nodeId: string): boolean {\n return this.nodes[nodeId] !== undefined;\n }\n\n deleteNode(nodeId: string, ignoreConnectors = false): DirectedGraph<T, U> {\n if (this.hasNode(nodeId)) {\n delete this.nodes[nodeId];\n delete this.nodeData[nodeId];\n\n if (ignoreConnectors !== true) {\n const removeConnector = (id: string) => this.removeConnector(id);\n\n // IMP NOTE its the responsibility of the callee to make sure that the connectors are cleanly reassigned, or else all attached connectors will be deleted\n\n Object.keys(this.inConnectors[nodeId]).forEach(removeConnector);\n delete this.inConnectors[nodeId];\n delete this.prevNodesCount[nodeId];\n\n Object.keys(this.outConnectors[nodeId]).forEach(removeConnector);\n delete this.outConnectors[nodeId];\n delete this.nextNodesCount[nodeId];\n }\n\n this.nodeCount += 1;\n }\n\n return this;\n }\n\n getPrevNodes(nodeId: string): T[] {\n return this.prevNodesCount[nodeId]\n ? Object.keys(this.prevNodesCount[nodeId]).map(id => this.getNode(id))\n : [];\n }\n\n getNextNodes(nodeId: string): T[] {\n return this.nextNodesCount[nodeId]\n ? Object.keys(this.nextNodesCount[nodeId]).map(id => this.getNode(id))\n : [];\n }\n\n getPrevNodesCount(nodeId: string): number {\n return (this.prevNodesCount[nodeId] ? Object.values(this.prevNodesCount[nodeId]) : []).reduce(\n (prev, current) => prev + current,\n 0\n );\n }\n\n getNextNodesCount(nodeId: string): number {\n return (this.nextNodesCount[nodeId] ? Object.values(this.nextNodesCount[nodeId]) : []).reduce(\n (prev, current) => prev + current,\n 0\n );\n }\n\n isLeaf(nodeId: string): boolean {\n return this.getNextNodes(nodeId).length === 0;\n }\n\n // -- Connectors\n getConnectorsCount(): number {\n return this.connectorsCount;\n }\n\n getConnectors() {\n return Object.values(this.connectors);\n }\n\n addConnector(connector: U, data?: D2): DirectedGraph<T, U> {\n if (this.connectors[connector.id] !== undefined) {\n // update the map\n this.connectors[connector.id] = connector;\n this.connectorData[connector.id] = data;\n\n return this;\n }\n\n const id = connector.id;\n const fromNodeId = connector.fromNodeId;\n const toNodeId = connector.toNodeId;\n\n // check if nodes with given ids exist\n if (this.nodes[fromNodeId] === undefined || this.nodes[toNodeId] === undefined) {\n throw new Error(\n `One or more nodes does not exist, cannot add connector ${fromNodeId}-${toNodeId}`\n );\n }\n\n // add it to the map\n this.connectors[id] = connector;\n this.connectorData[id] = data;\n\n // update prev nodes count\n if (this.prevNodesCount[toNodeId][fromNodeId]) {\n this.prevNodesCount[toNodeId][fromNodeId] += 1;\n } else {\n this.prevNodesCount[toNodeId][fromNodeId] = 1;\n }\n\n // update next nodes count\n if (this.nextNodesCount[fromNodeId][toNodeId]) {\n this.nextNodesCount[fromNodeId][toNodeId] += 1;\n } else {\n this.nextNodesCount[fromNodeId][toNodeId] = 1;\n }\n\n // update in and out connectors for both the nodes\n this.inConnectors[toNodeId][id] = connector;\n this.outConnectors[fromNodeId][id] = connector;\n\n // increment total connectors count\n this.connectorsCount += 1;\n\n return this;\n }\n\n hasConnector(id: string): boolean {\n return this.connectors[id] !== undefined;\n }\n\n getConnector(id: string): U {\n return this.connectors[id];\n }\n\n removeConnector(id: string): DirectedGraph<T, U> {\n const connector = this.connectors[id];\n\n if (connector !== undefined) {\n const fromNodeId = connector.fromNodeId;\n const toNodeId = connector.toNodeId;\n\n delete this.connectors[id];\n delete this.connectorData[id];\n\n // update prev nodes count\n this.prevNodesCount[toNodeId][fromNodeId] -= 1;\n if (this.prevNodesCount[toNodeId][fromNodeId] === 0) {\n delete this.prevNodesCount[toNodeId][fromNodeId];\n }\n\n // update next nodes count\n this.nextNodesCount[fromNodeId][toNodeId] -= 1;\n if (this.nextNodesCount[fromNodeId][toNodeId] === 0) {\n delete this.nextNodesCount[fromNodeId][toNodeId];\n }\n\n delete this.inConnectors[toNodeId][id];\n delete this.outConnectors[fromNodeId][id];\n\n this.connectorsCount -= 1;\n }\n\n return this;\n }\n\n setConnector(id: string, data: { fromNodeId?: string; toNodeId?: string }): DirectedGraph<T, U> {\n // VALIDATE\n // -connector with given id exists\n // -node with given fromNodeId exists\n // -node with given toNodeId exists\n if (!this.getConnector(id)) {\n throw new Error(`Connector with id '${id}' does not exist.`);\n }\n if (data.fromNodeId && !this.getNode(data.fromNodeId)) {\n throw new Error(`Node with id '${data.fromNodeId}' does not exist, to update fromNodeId.`);\n }\n if (data.toNodeId && !this.getNode(data.toNodeId)) {\n throw new Error(`Node with id '${data.toNodeId}' does not exist, to update toNodeId.`);\n }\n\n const connector = this.getConnector(id);\n\n // current references\n let fromNodeId = connector.fromNodeId;\n let toNodeId = connector.toNodeId;\n\n // update prev nodes count - unset prev values\n this.prevNodesCount[toNodeId][fromNodeId] -= 1;\n if (this.prevNodesCount[toNodeId][fromNodeId] === 0) {\n delete this.prevNodesCount[toNodeId][fromNodeId];\n }\n\n // update next nodes count - unset prev values\n this.nextNodesCount[fromNodeId][toNodeId] -= 1;\n if (this.nextNodesCount[fromNodeId][toNodeId] === 0) {\n delete this.nextNodesCount[fromNodeId][toNodeId];\n }\n\n // remove prev references\n delete this.inConnectors[toNodeId][id];\n delete this.outConnectors[fromNodeId][id];\n\n // new references\n fromNodeId = data.fromNodeId ? data.fromNodeId : connector.fromNodeId;\n toNodeId = data.toNodeId ? data.toNodeId : connector.toNodeId;\n\n connector.fromNodeId = fromNodeId;\n connector.toNodeId = toNodeId;\n\n // update prev nodes count\n if (this.prevNodesCount[toNodeId][fromNodeId]) {\n this.prevNodesCount[toNodeId][fromNodeId] += 1;\n } else {\n this.prevNodesCount[toNodeId][fromNodeId] = 1;\n }\n\n // update next nodes count\n if (this.nextNodesCount[fromNodeId][toNodeId]) {\n this.nextNodesCount[fromNodeId][toNodeId] += 1;\n } else {\n this.nextNodesCount[fromNodeId][toNodeId] = 1;\n }\n\n // update in and out connectors for both the nodes\n this.inConnectors[toNodeId][id] = connector;\n this.outConnectors[fromNodeId][id] = connector;\n\n return this;\n }\n\n getInConnectors(toNodeId: string, fromNodeId?: string): U[] {\n const allInConnectors = this.inConnectors[toNodeId];\n\n if (allInConnectors) {\n const connectorValues = Object.values(allInConnectors);\n\n if (fromNodeId === undefined) {\n return connectorValues;\n }\n\n return connectorValues.filter(connector => {\n return connector.fromNodeId === fromNodeId;\n });\n }\n\n return [];\n }\n\n getOutConnectors(fromNodeId: string, toNodeId?: string): U[] {\n const allOutConnectors = this.outConnectors[fromNodeId];\n\n if (allOutConnectors) {\n const connectorValues = Object.values(allOutConnectors);\n\n if (toNodeId === undefined) {\n return connectorValues;\n }\n\n return connectorValues.filter(connector => {\n return connector.toNodeId === toNodeId;\n });\n }\n\n return [];\n }\n\n getAllNodeConnectors(nodeId: string) {\n const inConnectors = this.getInConnectors(nodeId);\n\n if (inConnectors) {\n return inConnectors.concat(this.getOutConnectors(nodeId));\n }\n }\n}\n"]}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { ConnectorProps, GraphData, Node } from './Graph';
|
|
2
|
-
export interface PlottedGraphNode<T = any> extends Node<T> {
|
|
3
|
-
dimensions: {
|
|
4
|
-
width: number;
|
|
5
|
-
height: number;
|
|
6
|
-
};
|
|
7
|
-
position: {
|
|
8
|
-
x: number;
|
|
9
|
-
y: number;
|
|
10
|
-
};
|
|
11
|
-
referencedNode?: T;
|
|
12
|
-
}
|
|
13
|
-
export interface PlottedGraphConnector<T = any> extends ConnectorProps<T> {
|
|
14
|
-
points: {
|
|
15
|
-
x: number;
|
|
16
|
-
y: number;
|
|
17
|
-
}[];
|
|
18
|
-
labelLayout?: {
|
|
19
|
-
value: any;
|
|
20
|
-
width: number;
|
|
21
|
-
height: number;
|
|
22
|
-
x: number;
|
|
23
|
-
y: number;
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
export declare enum GraphLayoutDirection {
|
|
27
|
-
LeftToRight = "LR",
|
|
28
|
-
TopToBottom = "TB"
|
|
29
|
-
}
|
|
30
|
-
export default class GraphLayout {
|
|
31
|
-
static plot<T extends GraphData<PlottedGraphNode, PlottedGraphConnector>>(graphData: T, readOnly?: boolean, direction?: GraphLayoutDirection): {
|
|
32
|
-
width: number;
|
|
33
|
-
height: number;
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=GraphLayout.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GraphLayout.d.ts","sourceRoot":"","sources":["../../../../../src/components/FlowModeller/Renderer/Utils/GraphLayout.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE1D,MAAM,WAAW,gBAAgB,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,IAAI,CAAC,CAAC,CAAC;IACxD,UAAU,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,QAAQ,EAAE;QACR,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC;IACF,cAAc,CAAC,EAAE,CAAC,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;IACvE,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACnC,WAAW,CAAC,EAAE;QACZ,KAAK,EAAE,GAAG,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC;CACH;AAED,oBAAY,oBAAoB;IAC9B,WAAW,OAAO;IAClB,WAAW,OAAO;CACnB;AAKD,MAAM,CAAC,OAAO,OAAO,WAAW;IAE9B,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,SAAS,CAAC,gBAAgB,EAAE,qBAAqB,CAAC,EACtE,SAAS,EAAE,CAAC,EACZ,QAAQ,GAAE,OAAe,EACzB,SAAS,GAAE,oBAAuD;;;;CAyIrE"}
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
import dagre from 'dagre';
|
|
2
|
-
export var GraphLayoutDirection;
|
|
3
|
-
(function (GraphLayoutDirection) {
|
|
4
|
-
GraphLayoutDirection["LeftToRight"] = "LR";
|
|
5
|
-
GraphLayoutDirection["TopToBottom"] = "TB";
|
|
6
|
-
})(GraphLayoutDirection || (GraphLayoutDirection = {}));
|
|
7
|
-
const DEFAULT_GRAPH_WIDTH = 2000;
|
|
8
|
-
const DEFAULT_GRAPH_HEIGHT = 2000;
|
|
9
|
-
export default class GraphLayout {
|
|
10
|
-
// Using Dagre layouting
|
|
11
|
-
static plot(graphData, readOnly = false, direction = GraphLayoutDirection.TopToBottom) {
|
|
12
|
-
const dagreGraph = new dagre.graphlib.Graph({ multigraph: true });
|
|
13
|
-
dagreGraph.setDefaultEdgeLabel(() => ({}));
|
|
14
|
-
const defaultNodeWidth = 280;
|
|
15
|
-
const defaultNodeHeight = 112;
|
|
16
|
-
dagreGraph.setGraph({
|
|
17
|
-
rankdir: direction,
|
|
18
|
-
ranksep: readOnly ? 2 : 4,
|
|
19
|
-
edgesep: defaultNodeWidth / 2,
|
|
20
|
-
nodesep: 20,
|
|
21
|
-
// cspell:disable-next-line
|
|
22
|
-
marginx: 200,
|
|
23
|
-
// cspell:disable-next-line
|
|
24
|
-
marginy: 32
|
|
25
|
-
});
|
|
26
|
-
graphData.nodes.forEach(node => {
|
|
27
|
-
const height = node.dimensions.height === 0 ? 0 : node.dimensions.height || defaultNodeHeight;
|
|
28
|
-
const width = node.dimensions.width === 0 ? 0 : node.dimensions.width || defaultNodeWidth;
|
|
29
|
-
dagreGraph.setNode(node.id, {
|
|
30
|
-
width,
|
|
31
|
-
height
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
graphData.connectors.forEach((con, index) => {
|
|
35
|
-
dagreGraph.setEdge(con.fromNodeId, con.toNodeId, {
|
|
36
|
-
weight: 1,
|
|
37
|
-
minlen: 2,
|
|
38
|
-
label: con.data?.label || '',
|
|
39
|
-
width: 250,
|
|
40
|
-
height: con.data?.label ? 90 : 40,
|
|
41
|
-
// cspell:disable-next-line
|
|
42
|
-
lablepos: 'c',
|
|
43
|
-
labeloffset: 0
|
|
44
|
-
}, index.toString());
|
|
45
|
-
});
|
|
46
|
-
dagre.layout(dagreGraph, {});
|
|
47
|
-
graphData.nodes.forEach(el => {
|
|
48
|
-
const node = dagreGraph.node(el.id);
|
|
49
|
-
el.position.x = node.x - el.dimensions.width / 2;
|
|
50
|
-
el.position.y = node.y - el.dimensions.height / 2;
|
|
51
|
-
});
|
|
52
|
-
graphData.connectors.forEach((con, index) => {
|
|
53
|
-
const edge = dagreGraph.edge(con.fromNodeId, con.toNodeId, index.toString());
|
|
54
|
-
con.labelLayout = {
|
|
55
|
-
value: edge.label,
|
|
56
|
-
x: edge.x,
|
|
57
|
-
y: edge.y,
|
|
58
|
-
width: edge.width,
|
|
59
|
-
height: edge.height
|
|
60
|
-
};
|
|
61
|
-
const lastIndex = edge.points.length - 1;
|
|
62
|
-
let firstPoint = edge.points[0];
|
|
63
|
-
const secondPoint = edge.points[1];
|
|
64
|
-
let lastPoint = edge.points[lastIndex];
|
|
65
|
-
const secondLastPoint = edge.points[lastIndex - 1];
|
|
66
|
-
const fromNode = dagreGraph.node(con.fromNodeId);
|
|
67
|
-
const toNode = dagreGraph.node(con.toNodeId);
|
|
68
|
-
firstPoint =
|
|
69
|
-
firstPoint.x !== secondPoint.x
|
|
70
|
-
? {
|
|
71
|
-
...edge.points[0],
|
|
72
|
-
x: fromNode.x,
|
|
73
|
-
y: edge.points[1].y
|
|
74
|
-
}
|
|
75
|
-
: firstPoint;
|
|
76
|
-
lastPoint =
|
|
77
|
-
lastPoint.x !== secondLastPoint.x
|
|
78
|
-
? {
|
|
79
|
-
...edge.points[lastIndex],
|
|
80
|
-
x: toNode.x,
|
|
81
|
-
y: edge.points[lastIndex - 1].y
|
|
82
|
-
}
|
|
83
|
-
: lastPoint;
|
|
84
|
-
con.points = [
|
|
85
|
-
{ x: fromNode.x, y: fromNode.y + fromNode.height / 2 },
|
|
86
|
-
{ ...firstPoint, y: firstPoint.y + 10 },
|
|
87
|
-
{ ...secondPoint, y: secondPoint.y + 10 },
|
|
88
|
-
...edge.points.slice(2, lastIndex),
|
|
89
|
-
lastPoint
|
|
90
|
-
];
|
|
91
|
-
// Only add the last point incase the edge has an arc at end
|
|
92
|
-
if (edge.points[lastIndex].x !== edge.points[lastIndex - 1].x) {
|
|
93
|
-
con.points.push({ x: toNode.x, y: toNode.y });
|
|
94
|
-
}
|
|
95
|
-
// if current edge source node is an placeholder node move down the starting point of placeholder node by 12
|
|
96
|
-
if (fromNode.height === 0) {
|
|
97
|
-
con.points[0].y += 12;
|
|
98
|
-
}
|
|
99
|
-
const edgeLastPointIndex = con.points.length - 1;
|
|
100
|
-
// Move the merging arcs last point to the starting point of placeholder node
|
|
101
|
-
if (con.points[edgeLastPointIndex].x === con.points[edgeLastPointIndex - 1].x &&
|
|
102
|
-
toNode.height === 0) {
|
|
103
|
-
con.points[edgeLastPointIndex].y += 12;
|
|
104
|
-
}
|
|
105
|
-
});
|
|
106
|
-
const width = dagreGraph.graph().width;
|
|
107
|
-
const height = dagreGraph.graph().height;
|
|
108
|
-
if (width !== undefined && height !== undefined) {
|
|
109
|
-
return {
|
|
110
|
-
width: Number.isFinite(width) ? width : DEFAULT_GRAPH_WIDTH,
|
|
111
|
-
height: Number.isFinite(height) ? height : DEFAULT_GRAPH_HEIGHT
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
return {
|
|
115
|
-
width: DEFAULT_GRAPH_WIDTH,
|
|
116
|
-
height: DEFAULT_GRAPH_HEIGHT
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
//# sourceMappingURL=GraphLayout.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GraphLayout.js","sourceRoot":"","sources":["../../../../../src/components/FlowModeller/Renderer/Utils/GraphLayout.ts"],"names":[],"mappings":"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","sourcesContent":["import dagre from 'dagre';\n\nimport { ConnectorProps, GraphData, Node } from './Graph';\n\nexport interface PlottedGraphNode<T = any> extends Node<T> {\n dimensions: {\n width: number;\n height: number;\n };\n position: {\n x: number;\n y: number;\n };\n referencedNode?: T;\n}\n\nexport interface PlottedGraphConnector<T = any> extends ConnectorProps<T> {\n points: { x: number; y: number }[];\n labelLayout?: {\n value: any;\n width: number;\n height: number;\n x: number;\n y: number;\n };\n}\n\nexport enum GraphLayoutDirection {\n LeftToRight = 'LR',\n TopToBottom = 'TB'\n}\n\nconst DEFAULT_GRAPH_WIDTH = 2000;\nconst DEFAULT_GRAPH_HEIGHT = 2000;\n\nexport default class GraphLayout {\n // Using Dagre layouting\n static plot<T extends GraphData<PlottedGraphNode, PlottedGraphConnector>>(\n graphData: T,\n readOnly: boolean = false,\n direction: GraphLayoutDirection = GraphLayoutDirection.TopToBottom\n ) {\n const dagreGraph = new dagre.graphlib.Graph({ multigraph: true });\n\n dagreGraph.setDefaultEdgeLabel(() => ({}));\n\n const defaultNodeWidth = 280;\n const defaultNodeHeight = 112;\n\n dagreGraph.setGraph({\n rankdir: direction,\n ranksep: readOnly ? 2 : 4,\n edgesep: defaultNodeWidth / 2,\n nodesep: 20,\n // cspell:disable-next-line\n marginx: 200,\n // cspell:disable-next-line\n marginy: 32\n });\n\n graphData.nodes.forEach(node => {\n const height = node.dimensions.height === 0 ? 0 : node.dimensions.height || defaultNodeHeight;\n const width = node.dimensions.width === 0 ? 0 : node.dimensions.width || defaultNodeWidth;\n dagreGraph.setNode(node.id, {\n width,\n height\n });\n });\n\n graphData.connectors.forEach((con, index) => {\n dagreGraph.setEdge(\n con.fromNodeId,\n con.toNodeId,\n {\n weight: 1,\n minlen: 2,\n label: con.data?.label || '',\n width: 250,\n height: con.data?.label ? 90 : 40,\n // cspell:disable-next-line\n lablepos: 'c',\n labeloffset: 0\n },\n index.toString()\n );\n });\n\n dagre.layout(dagreGraph, {});\n\n graphData.nodes.forEach(el => {\n const node = dagreGraph.node(el.id);\n el.position.x = node.x - el.dimensions.width / 2;\n el.position.y = node.y - el.dimensions.height / 2;\n });\n\n graphData.connectors.forEach((con, index) => {\n const edge = dagreGraph.edge(con.fromNodeId, con.toNodeId, index.toString());\n\n con.labelLayout = {\n value: edge.label,\n x: edge.x,\n y: edge.y,\n width: edge.width,\n height: edge.height\n };\n\n const lastIndex = edge.points.length - 1;\n let firstPoint = edge.points[0];\n const secondPoint = edge.points[1];\n let lastPoint = edge.points[lastIndex];\n const secondLastPoint = edge.points[lastIndex - 1];\n\n const fromNode = dagreGraph.node(con.fromNodeId);\n const toNode = dagreGraph.node(con.toNodeId);\n\n firstPoint =\n firstPoint.x !== secondPoint.x\n ? {\n ...edge.points[0],\n x: fromNode.x,\n y: edge.points[1].y\n }\n : firstPoint;\n\n lastPoint =\n lastPoint.x !== secondLastPoint.x\n ? {\n ...edge.points[lastIndex],\n x: toNode.x,\n y: edge.points[lastIndex - 1].y\n }\n : lastPoint;\n\n con.points = [\n { x: fromNode.x, y: fromNode.y + fromNode.height / 2 },\n { ...firstPoint, y: firstPoint.y + 10 },\n { ...secondPoint, y: secondPoint.y + 10 },\n ...edge.points.slice(2, lastIndex),\n lastPoint\n ];\n\n // Only add the last point incase the edge has an arc at end\n if (edge.points[lastIndex].x !== edge.points[lastIndex - 1].x) {\n con.points.push({ x: toNode.x, y: toNode.y });\n }\n\n // if current edge source node is an placeholder node move down the starting point of placeholder node by 12\n if (fromNode.height === 0) {\n con.points[0].y += 12;\n }\n\n const edgeLastPointIndex = con.points.length - 1;\n\n // Move the merging arcs last point to the starting point of placeholder node\n if (\n con.points[edgeLastPointIndex].x === con.points[edgeLastPointIndex - 1].x &&\n toNode.height === 0\n ) {\n con.points[edgeLastPointIndex].y += 12;\n }\n });\n\n const width = dagreGraph.graph().width;\n const height = dagreGraph.graph().height;\n\n if (width !== undefined && height !== undefined) {\n return {\n width: Number.isFinite(width) ? width : DEFAULT_GRAPH_WIDTH,\n height: Number.isFinite(height) ? height : DEFAULT_GRAPH_HEIGHT\n };\n }\n\n return {\n width: DEFAULT_GRAPH_WIDTH,\n height: DEFAULT_GRAPH_HEIGHT\n };\n }\n}\n"]}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { ConnectorProps, DirectedGraph, GraphData, Node } from './Graph';
|
|
2
|
-
export interface NestedArray<T> extends Array<T | NestedArray<T>> {
|
|
3
|
-
}
|
|
4
|
-
export interface ConvergenceData<T extends Node, U extends ConnectorProps> {
|
|
5
|
-
nodeId: string;
|
|
6
|
-
connectors: NestedArray<string>;
|
|
7
|
-
summary: {
|
|
8
|
-
nodesinvolved: Record<string, T>;
|
|
9
|
-
connectorsInvolved: Record<string, U>;
|
|
10
|
-
};
|
|
11
|
-
paths?: NestedArray<ConvergenceData<T, U>>;
|
|
12
|
-
}
|
|
13
|
-
export default class GraphTraversal {
|
|
14
|
-
static bfs(gd: GraphData, src?: string): string[];
|
|
15
|
-
static dfs(gd: GraphData, src?: string): string[];
|
|
16
|
-
static findRootNode(graph: DirectedGraph): string | false;
|
|
17
|
-
/**
|
|
18
|
-
* Given the graphData and the source node with morethan one branch, It calculates the convergence node, involved connectors and paths
|
|
19
|
-
* Assuming, goTo is not supported
|
|
20
|
-
*
|
|
21
|
-
* @param gd graphData to process on
|
|
22
|
-
* @param src id of the source node. This needs to be a node with multiple branches
|
|
23
|
-
* @returns id of the destination node or null if not found
|
|
24
|
-
*/
|
|
25
|
-
static getConvergenceData<T extends Node = Node, U extends ConnectorProps = ConnectorProps>(gd: GraphData<T, U>, src: string): ConvergenceData<T, U> | false;
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=GraphTraversal.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GraphTraversal.d.ts","sourceRoot":"","sources":["../../../../../src/components/FlowModeller/Renderer/Utils/GraphTraversal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAEzE,MAAM,WAAW,WAAW,CAAC,CAAC,CAAE,SAAQ,KAAK,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;CAAG;AAEpE,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,cAAc;IACvE,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAChC,OAAO,EAAE;QACP,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACjC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;KACvC,CAAC;IACF,KAAK,CAAC,EAAE,WAAW,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CAC5C;AAED,MAAM,CAAC,OAAO,OAAO,cAAc;IACjC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IAqCjD,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IAyCjD,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,GAAG,KAAK;IAYzD;;;;;;;OAOG;IAEH,MAAM,CAAC,kBAAkB,CAAC,CAAC,SAAS,IAAI,GAAG,IAAI,EAAE,CAAC,SAAS,cAAc,GAAG,cAAc,EACxF,EAAE,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EACnB,GAAG,EAAE,MAAM,GACV,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK;CA4GjC"}
|