├── .github
└── workflows
│ ├── cd.yml
│ └── ci.yml
├── .gitignore
├── .npmignore
├── CODE_OF_CONDUCT.md
├── ChangeLog
├── LICENSE
├── README.md
├── SECURITY.md
├── build.js
├── eslint.config.mjs
├── etc
└── build
│ └── Gruntfile.js
├── index.html
├── package.json
├── src
├── css
│ ├── common.css
│ └── explorer.css
├── images
│ ├── button.gif
│ ├── close.gif
│ ├── collapsed.gif
│ ├── error.gif
│ ├── expanded.gif
│ ├── maximize.gif
│ ├── minimize.gif
│ ├── normalize.gif
│ ├── point.gif
│ ├── resize.gif
│ ├── separator.gif
│ ├── submenu.gif
│ ├── transparent.gif
│ ├── warning.gif
│ ├── warning.png
│ ├── window-title.gif
│ └── window.gif
├── js
│ ├── azdata
│ │ ├── azdataQueryPlan.js
│ │ └── view
│ │ │ └── azDataGraph.js
│ ├── editor
│ │ ├── mxDefaultKeyHandler.js
│ │ ├── mxDefaultPopupMenu.js
│ │ ├── mxDefaultToolbar.js
│ │ └── mxEditor.js
│ ├── handler
│ │ ├── mxCellHighlight.js
│ │ ├── mxCellMarker.js
│ │ ├── mxCellTracker.js
│ │ ├── mxConnectionHandler.js
│ │ ├── mxConstraintHandler.js
│ │ ├── mxEdgeHandler.js
│ │ ├── mxEdgeSegmentHandler.js
│ │ ├── mxElbowEdgeHandler.js
│ │ ├── mxGraphHandler.js
│ │ ├── mxHandle.js
│ │ ├── mxKeyHandler.js
│ │ ├── mxPanningHandler.js
│ │ ├── mxPopupMenuHandler.js
│ │ ├── mxRubberband.js
│ │ ├── mxSelectionCellsHandler.js
│ │ ├── mxTooltipHandler.js
│ │ └── mxVertexHandler.js
│ ├── index.txt
│ ├── io
│ │ ├── mxCellCodec.js
│ │ ├── mxChildChangeCodec.js
│ │ ├── mxCodec.js
│ │ ├── mxCodecRegistry.js
│ │ ├── mxDefaultKeyHandlerCodec.js
│ │ ├── mxDefaultPopupMenuCodec.js
│ │ ├── mxDefaultToolbarCodec.js
│ │ ├── mxEditorCodec.js
│ │ ├── mxGenericChangeCodec.js
│ │ ├── mxGraphCodec.js
│ │ ├── mxGraphViewCodec.js
│ │ ├── mxModelCodec.js
│ │ ├── mxObjectCodec.js
│ │ ├── mxRootChangeCodec.js
│ │ ├── mxStylesheetCodec.js
│ │ └── mxTerminalChangeCodec.js
│ ├── layout
│ │ ├── hierarchical
│ │ │ ├── model
│ │ │ │ ├── mxGraphAbstractHierarchyCell.js
│ │ │ │ ├── mxGraphHierarchyEdge.js
│ │ │ │ ├── mxGraphHierarchyModel.js
│ │ │ │ ├── mxGraphHierarchyNode.js
│ │ │ │ └── mxSwimlaneModel.js
│ │ │ ├── mxHierarchicalLayout.js
│ │ │ ├── mxSwimlaneLayout.js
│ │ │ └── stage
│ │ │ │ ├── mxCoordinateAssignment.js
│ │ │ │ ├── mxHierarchicalLayoutStage.js
│ │ │ │ ├── mxMedianHybridCrossingReduction.js
│ │ │ │ ├── mxMinimumCycleRemover.js
│ │ │ │ └── mxSwimlaneOrdering.js
│ │ ├── mxCircleLayout.js
│ │ ├── mxCompactTreeLayout.js
│ │ ├── mxCompositeLayout.js
│ │ ├── mxEdgeLabelLayout.js
│ │ ├── mxFastOrganicLayout.js
│ │ ├── mxGraphLayout.js
│ │ ├── mxParallelEdgeLayout.js
│ │ ├── mxPartitionLayout.js
│ │ ├── mxRadialTreeLayout.js
│ │ └── mxStackLayout.js
│ ├── model
│ │ ├── mxCell.js
│ │ ├── mxCellPath.js
│ │ ├── mxGeometry.js
│ │ └── mxGraphModel.js
│ ├── mxClient.js
│ ├── shape
│ │ ├── mxActor.js
│ │ ├── mxArrow.js
│ │ ├── mxArrowConnector.js
│ │ ├── mxCloud.js
│ │ ├── mxConnector.js
│ │ ├── mxCylinder.js
│ │ ├── mxDoubleEllipse.js
│ │ ├── mxEllipse.js
│ │ ├── mxHexagon.js
│ │ ├── mxImageShape.js
│ │ ├── mxLabel.js
│ │ ├── mxLine.js
│ │ ├── mxMarker.js
│ │ ├── mxPolygon.js
│ │ ├── mxPolyline.js
│ │ ├── mxRectangleShape.js
│ │ ├── mxRhombus.js
│ │ ├── mxShape.js
│ │ ├── mxStencil.js
│ │ ├── mxStencilRegistry.js
│ │ ├── mxSwimlane.js
│ │ ├── mxText.js
│ │ └── mxTriangle.js
│ ├── util
│ │ ├── mxAbstractCanvas2D.js
│ │ ├── mxAnimation.js
│ │ ├── mxAutoSaveManager.js
│ │ ├── mxClipboard.js
│ │ ├── mxConstants.js
│ │ ├── mxDictionary.js
│ │ ├── mxDivResizer.js
│ │ ├── mxDragSource.js
│ │ ├── mxEffects.js
│ │ ├── mxEvent.js
│ │ ├── mxEventObject.js
│ │ ├── mxEventSource.js
│ │ ├── mxForm.js
│ │ ├── mxGuide.js
│ │ ├── mxImage.js
│ │ ├── mxImageBundle.js
│ │ ├── mxImageExport.js
│ │ ├── mxLog.js
│ │ ├── mxMorphing.js
│ │ ├── mxMouseEvent.js
│ │ ├── mxObjectIdentity.js
│ │ ├── mxPanningManager.js
│ │ ├── mxPoint.js
│ │ ├── mxPopupMenu.js
│ │ ├── mxRectangle.js
│ │ ├── mxResources.js
│ │ ├── mxSvgCanvas2D.js
│ │ ├── mxToolbar.js
│ │ ├── mxUndoManager.js
│ │ ├── mxUndoableEdit.js
│ │ ├── mxUrlConverter.js
│ │ ├── mxUtils.js
│ │ ├── mxVmlCanvas2D.js
│ │ ├── mxWindow.js
│ │ ├── mxXmlCanvas2D.js
│ │ └── mxXmlRequest.js
│ └── view
│ │ ├── mxCellEditor.js
│ │ ├── mxCellOverlay.js
│ │ ├── mxCellRenderer.js
│ │ ├── mxCellState.js
│ │ ├── mxCellStatePreview.js
│ │ ├── mxConnectionConstraint.js
│ │ ├── mxEdgeStyle.js
│ │ ├── mxGraph.js
│ │ ├── mxGraphSelectionModel.js
│ │ ├── mxGraphView.js
│ │ ├── mxLayoutManager.js
│ │ ├── mxMultiplicity.js
│ │ ├── mxOutline.js
│ │ ├── mxPerimeter.js
│ │ ├── mxPrintPreview.js
│ │ ├── mxStyleRegistry.js
│ │ ├── mxStylesheet.js
│ │ ├── mxSwimlaneManager.js
│ │ └── mxTemporaryCellStates.js
├── resources
│ ├── editor.txt
│ ├── editor_de.txt
│ ├── editor_zh.txt
│ ├── graph.txt
│ ├── graph_de.txt
│ └── graph_zh.txt
└── ts
│ ├── index.ts
│ ├── mx.ts
│ ├── mxtypings
│ ├── index.d.ts
│ └── lib
│ │ ├── editor
│ │ ├── index.d.ts
│ │ ├── mxDefaultKeyHandler.d.ts
│ │ ├── mxDefaultPopupMenu.d.ts
│ │ ├── mxDefaultToolbar.d.ts
│ │ └── mxEditor.d.ts
│ │ ├── handler
│ │ ├── index.d.ts
│ │ ├── mxCellHighlight.d.ts
│ │ ├── mxCellMarker.d.ts
│ │ ├── mxCellTracker.d.ts
│ │ ├── mxConnectionHandler.d.ts
│ │ ├── mxConstraintHandler.d.ts
│ │ ├── mxEdgeHandler.d.ts
│ │ ├── mxEdgeSegmentHandler.d.ts
│ │ ├── mxElbowEdgeHandler.d.ts
│ │ ├── mxGraphHandler.d.ts
│ │ ├── mxHandle.d.ts
│ │ ├── mxKeyHandler.d.ts
│ │ ├── mxPanningHandler.d.ts
│ │ ├── mxPopupMenuHandler.d.ts
│ │ ├── mxRubberband.d.ts
│ │ ├── mxSelectionCellsHandler.d.ts
│ │ ├── mxTooltipHandler.d.ts
│ │ └── mxVertexHandler.d.ts
│ │ ├── io
│ │ ├── README.md
│ │ ├── index.d.ts
│ │ ├── mxCodec.d.ts
│ │ ├── mxCodecRegistry.d.ts
│ │ ├── mxGenericChangeCodec.d.ts
│ │ └── mxObjectCodec.d.ts
│ │ ├── layout
│ │ ├── hierarchical
│ │ │ ├── index.d.ts
│ │ │ ├── model
│ │ │ │ ├── index.d.ts
│ │ │ │ ├── mxGraphAbstractHierarchyCell.d.ts
│ │ │ │ ├── mxGraphHierarchyEdge.d.ts
│ │ │ │ ├── mxGraphHierarchyModel.d.ts
│ │ │ │ ├── mxGraphHierarchyNode.d.ts
│ │ │ │ └── mxSwimlaneModel.d.ts
│ │ │ ├── mxHierarchicalLayout.d.ts
│ │ │ ├── mxSwimlaneLayout.d.ts
│ │ │ └── stage
│ │ │ │ ├── index.d.ts
│ │ │ │ ├── mxCoordinateAssignment.d.ts
│ │ │ │ ├── mxHierarchicalLayoutStage.d.ts
│ │ │ │ ├── mxMedianHybridCrossingReduction.d.ts
│ │ │ │ ├── mxMinimumCycleRemover.d.ts
│ │ │ │ └── mxSwimlaneOrdering.d.ts
│ │ ├── index.d.ts
│ │ ├── mxCircleLayout.d.ts
│ │ ├── mxCompactTreeLayout.d.ts
│ │ ├── mxCompositeLayout.d.ts
│ │ ├── mxEdgeLabelLayout.d.ts
│ │ ├── mxFastOrganicLayout.d.ts
│ │ ├── mxGraphLayout.d.ts
│ │ ├── mxParallelEdgeLayout.d.ts
│ │ ├── mxPartitionLayout.d.ts
│ │ ├── mxRadialTreeLayout.d.ts
│ │ └── mxStackLayout.d.ts
│ │ ├── model
│ │ ├── index.d.ts
│ │ ├── mxCell.d.ts
│ │ ├── mxCellPath.d.ts
│ │ ├── mxGeometry.d.ts
│ │ └── mxGraphModel.d.ts
│ │ ├── mxClient.d.ts
│ │ ├── shape
│ │ ├── index.d.ts
│ │ ├── mxActor.d.ts
│ │ ├── mxArrow.d.ts
│ │ ├── mxArrowConnector.d.ts
│ │ ├── mxCloud.d.ts
│ │ ├── mxConnector.d.ts
│ │ ├── mxCylinder.d.ts
│ │ ├── mxDoubleEllipse.d.ts
│ │ ├── mxEllipse.d.ts
│ │ ├── mxHexagon.d.ts
│ │ ├── mxImageShape.d.ts
│ │ ├── mxLabel.d.ts
│ │ ├── mxLine.d.ts
│ │ ├── mxMarker.d.ts
│ │ ├── mxPolyline.d.ts
│ │ ├── mxRectangleShape.d.ts
│ │ ├── mxRhombus.d.ts
│ │ ├── mxShape.d.ts
│ │ ├── mxStencil.d.ts
│ │ ├── mxStencilRegistry.d.ts
│ │ ├── mxSwimlane.d.ts
│ │ ├── mxText.d.ts
│ │ └── mxTriangle.d.ts
│ │ ├── util
│ │ ├── index.d.ts
│ │ ├── mxAbstractCanvas2D.d.ts
│ │ ├── mxAnimation.d.ts
│ │ ├── mxAutoSaveManager.d.ts
│ │ ├── mxClipboard.d.ts
│ │ ├── mxConstants.d.ts
│ │ ├── mxDictionary.d.ts
│ │ ├── mxDivResizer.d.ts
│ │ ├── mxDragSource.d.ts
│ │ ├── mxEffects.d.ts
│ │ ├── mxEvent.d.ts
│ │ ├── mxEventObject.d.ts
│ │ ├── mxEventSource.d.ts
│ │ ├── mxForm.d.ts
│ │ ├── mxGuide.d.ts
│ │ ├── mxImage.d.ts
│ │ ├── mxImageBundle.d.ts
│ │ ├── mxImageExport.d.ts
│ │ ├── mxLog.d.ts
│ │ ├── mxMorphing.d.ts
│ │ ├── mxMouseEvent.d.ts
│ │ ├── mxObjectIdentity.d.ts
│ │ ├── mxPanningManager.d.ts
│ │ ├── mxPoint.d.ts
│ │ ├── mxPopupMenu.d.ts
│ │ ├── mxRectangle.d.ts
│ │ ├── mxResources.d.ts
│ │ ├── mxSvgCanvas2D.d.ts
│ │ ├── mxToolbar.d.ts
│ │ ├── mxUndoManager.d.ts
│ │ ├── mxUndoableEdit.d.ts
│ │ ├── mxUrlConverter.d.ts
│ │ ├── mxUtils.d.ts
│ │ ├── mxVmlCanvas2D.d.ts
│ │ ├── mxWindow.d.ts
│ │ ├── mxXmlCanvas2D.d.ts
│ │ └── mxXmlRequest.d.ts
│ │ └── view
│ │ ├── README.md
│ │ ├── index.d.ts
│ │ ├── mxCellEditor.d.ts
│ │ ├── mxCellOverlay.d.ts
│ │ ├── mxCellRenderer.d.ts
│ │ ├── mxCellState.d.ts
│ │ ├── mxCellStatePreview.d.ts
│ │ ├── mxConnectionConstraint.d.ts
│ │ ├── mxEdgeStyle.d.ts
│ │ ├── mxGraph.d.ts
│ │ ├── mxGraphSelectionModel.d.ts
│ │ ├── mxGraphView.d.ts
│ │ ├── mxLayoutManager.d.ts
│ │ ├── mxMultiplicity.d.ts
│ │ ├── mxOutline.d.ts
│ │ ├── mxPerimeter.d.ts
│ │ ├── mxPrintPreview.d.ts
│ │ ├── mxStyleRegistry.d.ts
│ │ ├── mxStylesheet.d.ts
│ │ ├── mxSwimlaneManager.d.ts
│ │ └── mxTemporaryCellStates.d.ts
│ └── schemaDesigner
│ ├── schemaDesigner.css
│ ├── schemaDesigner.ts
│ ├── schemaDesignerEntity.ts
│ ├── schemaDesignerInterfaces.ts
│ ├── schemaDesignerLayout.ts
│ ├── schemaDesignerToolbar.ts
│ └── utils.ts
├── test
└── queryplan
│ ├── comparePlanModeWithFolding.html
│ ├── comparePlanModeWithNoFolding.html
│ ├── icons
│ ├── adaptive_join.png
│ ├── aggregate.png
│ ├── apply.png
│ ├── arithmetic_expression.png
│ ├── assert.png
│ ├── assign.png
│ ├── batch_hash_table_build.png
│ ├── bitmap.png
│ ├── bookmark_lookup.png
│ ├── broadcast.png
│ ├── clustered_index_delete.png
│ ├── clustered_index_insert.png
│ ├── clustered_index_merge.png
│ ├── clustered_index_scan.png
│ ├── clustered_index_seek.png
│ ├── clustered_index_update.png
│ ├── clustered_update.png
│ ├── collapse.png
│ ├── collapse.svg
│ ├── columnstore_index_delete.png
│ ├── columnstore_index_insert.png
│ ├── columnstore_index_merge.png
│ ├── columnstore_index_scan.png
│ ├── columnstore_index_update.png
│ ├── compute_scalar.png
│ ├── compute_to_control_node.png
│ ├── concatenation.png
│ ├── const_table_get.png
│ ├── constant_scan.png
│ ├── control_to_compute_nodes.png
│ ├── convert.png
│ ├── cursor_catch_all.png
│ ├── declare.png
│ ├── delete.png
│ ├── deleted_scan.png
│ ├── dynamic.png
│ ├── expand.svg
│ ├── external_broadcast.png
│ ├── external_export.png
│ ├── external_local_streaming.png
│ ├── external_round_robin.png
│ ├── external_shuffle.png
│ ├── fetch_query.png
│ ├── filter.png
│ ├── foreign_key_references_check.png
│ ├── get.png
│ ├── group_by_aggregate.png
│ ├── hash_match.png
│ ├── hash_match_root.png
│ ├── hash_match_team.png
│ ├── if.png
│ ├── index_delete.png
│ ├── index_insert.png
│ ├── index_scan.png
│ ├── index_seek.png
│ ├── index_spool.png
│ ├── index_update.png
│ ├── insert.png
│ ├── inserted_scan.png
│ ├── intrinsic.png
│ ├── iterator_catch_all.png
│ ├── join.png
│ ├── keyset.png
│ ├── language_construct_catch_all.png
│ ├── locate.png
│ ├── log_row_scan.png
│ ├── merge_interval.png
│ ├── merge_join.png
│ ├── nested_loops.png
│ ├── overlay-parallelism.svg
│ ├── overlay-warning.svg
│ ├── parallelism.png
│ ├── parameter_table_scan.png
│ ├── population_query.png
│ ├── predict.png
│ ├── print.png
│ ├── project.png
│ ├── rank.png
│ ├── refresh_query.png
│ ├── remote_delete.png
│ ├── remote_index_scan.png
│ ├── remote_index_seek.png
│ ├── remote_insert.png
│ ├── remote_query.png
│ ├── remote_scan.png
│ ├── remote_update.png
│ ├── result.png
│ ├── rid_lookup.png
│ ├── row_count_spool.png
│ ├── segment.png
│ ├── sequence.png
│ ├── sequence_project.png
│ ├── set_function.png
│ ├── shuffle.png
│ ├── single_source_round_robin.png
│ ├── single_source_shuffle.png
│ ├── snapshot.png
│ ├── sort.png
│ ├── split.png
│ ├── spool.png
│ ├── sql.png
│ ├── stream_aggregate.png
│ ├── switch.png
│ ├── table_delete.png
│ ├── table_insert.png
│ ├── table_merge.png
│ ├── table_scan.png
│ ├── table_spool.png
│ ├── table_update.png
│ ├── table_valued_function.png
│ ├── top.png
│ ├── trim.png
│ ├── udx.png
│ ├── union.png
│ ├── union_all.png
│ ├── update.png
│ └── window_aggregate.png
│ ├── queryPlanColors.html
│ ├── queryPlanExpensiveOperatorHighlighting.html
│ ├── queryPlanListener.html
│ ├── queryPlanZoom.html
│ ├── queryplan.html
│ ├── queryplan2.html
│ ├── queryplanParentVisibility.html
│ ├── queryplanPolygon.html
│ ├── queryplanPolygonZoom.html
│ └── src
│ └── js
│ ├── graph.js
│ ├── graph2.js
│ ├── graph3.js
│ └── queryPlanSetup.js
├── ts-examples
├── adventureWorks.html
├── ecommerceDemoSchema.html
├── helloWorld.html
├── resources
│ ├── addTable.svg
│ ├── arrange.svg
│ ├── connector.svg
│ ├── delete.svg
│ ├── export.svg
│ ├── redo.svg
│ ├── schemaDesigner.css
│ ├── table.svg
│ ├── tableNode.svg
│ ├── text.svg
│ ├── undo.svg
│ ├── zoomFit.svg
│ ├── zoomIn.svg
│ └── zoomOut.svg
├── schemas
│ ├── schema_adventure_works.js
│ ├── schema_designer_config.js
│ ├── schema_ecommerce_demo.js
│ └── schema_world_wide_importers.js
├── smallSchema.html
└── worldWideImporters.html
├── tsconfig.json
├── tsconfig.tsbuildinfo
└── yarn.lock
/.github/workflows/ci.yml:
--------------------------------------------------------------------------------
1 | name: PR checks
2 | on:
3 | pull_request:
4 | branches:
5 | - main
6 |
7 | permissions:
8 | contents: read
9 | pull-requests: write
10 |
11 | jobs:
12 | checks:
13 | runs-on: ubuntu-latest
14 |
15 | steps:
16 | - name: Checkout Repository
17 | uses: actions/checkout@v4
18 | with:
19 | fetch-depth: 0
20 |
21 | - name: Set up Node.js
22 | uses: actions/setup-node@v4
23 | with:
24 | node-version: "22"
25 |
26 | - name: Install yarn
27 | run: npm install -g yarn
28 |
29 | - name: Install Dependencies
30 | run: yarn
31 |
32 | - name: Run build
33 | run: yarn build
34 |
35 | - name: Run lint
36 | run: yarn lint
37 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | dist
3 | .jshintrc
4 | examples/**/dist
5 | .idea/
6 | *.tgz
7 | .DS_Store
--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
1 | .classpath
2 | .idea/
3 | .jshintrc
4 | .project
5 | .settings
6 | .vs
7 | *.sln
8 | bin
9 | build.sh
10 | classes
11 | docs/
12 | dotnet/
13 | index.html
14 | java/
15 | debug/
16 | devel/
17 | examples/
18 | index.html
19 | mxgraph-dotnet.*suo
20 | php/
21 | pom.xml
22 | target
23 | *.tgz
24 | .github/
25 | test/
26 | ts-examples/
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | # Microsoft Open Source Code of Conduct
2 |
3 | This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
4 |
5 | Resources:
6 |
7 | - [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
8 | - [Microsoft Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/)
9 | - Contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with questions or concerns
10 |
--------------------------------------------------------------------------------
/ChangeLog:
--------------------------------------------------------------------------------
1 | 10-OCT-2021: 0.0.1
2 |
3 | - Initial version forked from mxgraph
4 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | azdataGraph
2 | =======
3 |
4 | azdataGraph is a derivative of mxGraph, which is a fully client side JavaScript diagramming library that uses SVG and HTML for rendering.
5 |
6 | This is a graph diagraming component developed for use in Azure Data Studio.
7 |
8 | For more information on mxGraph please see [mxgraph](https://github.com/jgraph/mxgraph)
9 |
10 | Typings for the mxGraph library are included in this package. The typings are forked from [typed-mxgraph](https://github.com/typed-mxgraph/typed-mxgraph)
11 |
12 | ## How to publish a new version of azdataGraph
13 |
14 | 1. Clone the azdataGraph repository
15 | 2. Make your changes
16 | 3. Update the version number in the `package.json` file
17 | 4. Create a PR to the `main` branch with your changes
18 | 5. Once the PR is approved and merged, a new release will be created and published automatically.
19 |
20 | ## To manually publish a new version of azdataGraph
21 | 1. Clone the azdataGraph repository
22 | 1. Make your changes
23 | 1. Update the version number in the `package.json` file
24 | 1. Run `yarn` to install the dependencies
25 | 1. Run `yarn build` to build the package
26 | 1. Run `yarn pack` to create a tarball of the package
27 | 1. Push the contents of the tarball to the release branch
28 | 1. Create a new release in the Github UI
29 | 1. Create a new tag with the version number and set the release branch as the target
30 | 1. Publish the release
31 |
32 |
--------------------------------------------------------------------------------
/eslint.config.mjs:
--------------------------------------------------------------------------------
1 | import licenseHeader from "eslint-plugin-license-header";
2 | import tseslint from 'typescript-eslint';
3 |
4 | export default [
5 | {
6 | files: ['src/ts/**/*.ts'],
7 | ignores: ['src/ts/mxtypings/**/*.d.ts', 'dist/**/*.js'],
8 | languageOptions: {
9 | parser: tseslint.parser,
10 | },
11 | plugins: {
12 | 'license-header': licenseHeader,
13 | },
14 | rules: {
15 | "no-var": "error",
16 | "prefer-const": "error",
17 | "eqeqeq": "error",
18 | }
19 | }
20 | ];
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Examples
5 |
6 |
7 | Examples
8 |
15 |
16 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "azdataGraph",
3 | "description": "azdataGraph is a derivative of mxGraph, which is a fully client side JavaScript diagramming library that uses SVG and HTML for rendering.",
4 | "version": "0.0.137",
5 | "homepage": "https://github.com/microsoft/azdataGraph",
6 | "author": "Microsoft",
7 | "license": "Apache-2.0",
8 | "repository": {
9 | "type": "git",
10 | "url": "git+https://github.com/microsoft/azdataGraph.git"
11 | },
12 | "bugs": {
13 | "url": "https://github.com/microsoft/azdataGraph/issues"
14 | },
15 | "main": "./dist/index.js",
16 | "types": "./dist/src/ts/index.d.ts",
17 | "scripts": {
18 | "compile-mxgraph": "grunt build --base ./ --gruntfile etc/build/Gruntfile.js",
19 | "build": "yarn compile-mxgraph && npx tsc && node build.js",
20 | "watch": "yarn compile-mxgraph && node build.js --watch",
21 | "examples": "http-server -p 4000",
22 | "lint": "eslint"
23 | },
24 | "devDependencies": {
25 | "@jgoz/esbuild-plugin-typecheck": "^4.0.2",
26 | "@types/node": "^22.10.5",
27 | "@types/react": "^19.0.3",
28 | "@types/react-dom": "^19.0.2",
29 | "@vitejs/plugin-react": "^4.3.4",
30 | "esbuild": "^0.24.0",
31 | "eslint": "^9.17.0",
32 | "eslint-plugin-license-header": "^0.6.1",
33 | "grunt": "^1.6.1",
34 | "grunt-contrib-concat": "^2.1.0",
35 | "grunt-contrib-copy": "^1.0.0",
36 | "http-server": "^14.1.1",
37 | "load-grunt-tasks": "^3.5.2",
38 | "react": "^19.0.0",
39 | "react-dom": "^19.0.0",
40 | "react-router-dom": "^7.1.1",
41 | "typescript": "^5.7.2",
42 | "typescript-eslint": "^8.18.0"
43 | },
44 | "dependencies": {
45 | "@dagrejs/dagre": "^1.1.4",
46 | "create-color": "^2.0.6",
47 | "html-to-image": "^1.11.13",
48 | "uuid": "^11.0.5"
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/src/css/explorer.css:
--------------------------------------------------------------------------------
1 | div.mxTooltip {
2 | filter:progid:DXImageTransform.Microsoft.DropShadow(OffX=4, OffY=4,
3 | Color='#A2A2A2', Positive='true');
4 | }
5 | div.mxPopupMenu {
6 | filter:progid:DXImageTransform.Microsoft.DropShadow(OffX=4, OffY=4,
7 | Color='#C0C0C0', Positive='true');
8 | }
9 | div.mxWindow {
10 | _filter:progid:DXImageTransform.Microsoft.DropShadow(OffX=4, OffY=4,
11 | Color='#C0C0C0', Positive='true');
12 | }
13 | td.mxWindowTitle {
14 | _height: 23px;
15 | }
16 | .mxDisabled {
17 | filter:alpha(opacity=20) !important;
18 | }
19 |
--------------------------------------------------------------------------------
/src/images/button.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/src/images/button.gif
--------------------------------------------------------------------------------
/src/images/close.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/src/images/close.gif
--------------------------------------------------------------------------------
/src/images/collapsed.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/src/images/collapsed.gif
--------------------------------------------------------------------------------
/src/images/error.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/src/images/error.gif
--------------------------------------------------------------------------------
/src/images/expanded.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/src/images/expanded.gif
--------------------------------------------------------------------------------
/src/images/maximize.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/src/images/maximize.gif
--------------------------------------------------------------------------------
/src/images/minimize.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/src/images/minimize.gif
--------------------------------------------------------------------------------
/src/images/normalize.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/src/images/normalize.gif
--------------------------------------------------------------------------------
/src/images/point.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/src/images/point.gif
--------------------------------------------------------------------------------
/src/images/resize.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/src/images/resize.gif
--------------------------------------------------------------------------------
/src/images/separator.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/src/images/separator.gif
--------------------------------------------------------------------------------
/src/images/submenu.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/src/images/submenu.gif
--------------------------------------------------------------------------------
/src/images/transparent.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/src/images/transparent.gif
--------------------------------------------------------------------------------
/src/images/warning.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/src/images/warning.gif
--------------------------------------------------------------------------------
/src/images/warning.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/src/images/warning.png
--------------------------------------------------------------------------------
/src/images/window-title.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/src/images/window-title.gif
--------------------------------------------------------------------------------
/src/images/window.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/src/images/window.gif
--------------------------------------------------------------------------------
/src/js/index.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/src/js/index.txt
--------------------------------------------------------------------------------
/src/js/io/mxDefaultKeyHandlerCodec.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2006-2015, JGraph Ltd
3 | * Copyright (c) 2006-2015, Gaudenz Alder
4 | */
5 | mxCodecRegistry.register(function()
6 | {
7 | /**
8 | * Class: mxDefaultKeyHandlerCodec
9 | *
10 | * Custom codec for configuring s. This class is created
11 | * and registered dynamically at load time and used implicitly via
12 | * and the . This codec only reads configuration
13 | * data for existing key handlers, it does not encode or create key handlers.
14 | */
15 | var codec = new mxObjectCodec(new mxDefaultKeyHandler());
16 |
17 | /**
18 | * Function: encode
19 | *
20 | * Returns null.
21 | */
22 | codec.encode = function(enc, obj)
23 | {
24 | return null;
25 | };
26 |
27 | /**
28 | * Function: decode
29 | *
30 | * Reads a sequence of the following child nodes
31 | * and attributes:
32 | *
33 | * Child Nodes:
34 | *
35 | * add - Binds a keystroke to an actionname.
36 | *
37 | * Attributes:
38 | *
39 | * as - Keycode.
40 | * action - Actionname to execute in editor.
41 | * control - Optional boolean indicating if
42 | * the control key must be pressed.
43 | *
44 | * Example:
45 | *
46 | * (code)
47 | *
48 | *
49 | *
50 | *
51 | *
52 | * (end)
53 | *
54 | * The keycodes are for the x, c and v keys.
55 | *
56 | * See also: ,
57 | * http://www.js-examples.com/page/tutorials__key_codes.html
58 | */
59 | codec.decode = function(dec, node, into)
60 | {
61 | if (into != null)
62 | {
63 | var editor = into.editor;
64 | node = node.firstChild;
65 |
66 | while (node != null)
67 | {
68 | if (!this.processInclude(dec, node, into) &&
69 | node.nodeName == 'add')
70 | {
71 | var as = node.getAttribute('as');
72 | var action = node.getAttribute('action');
73 | var control = node.getAttribute('control');
74 |
75 | into.bindAction(as, action, control);
76 | }
77 |
78 | node = node.nextSibling;
79 | }
80 | }
81 |
82 | return into;
83 | };
84 |
85 | // Returns the codec into the registry
86 | return codec;
87 |
88 | }());
89 |
--------------------------------------------------------------------------------
/src/js/io/mxDefaultPopupMenuCodec.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2006-2015, JGraph Ltd
3 | * Copyright (c) 2006-2015, Gaudenz Alder
4 | */
5 | mxCodecRegistry.register(function()
6 | {
7 | /**
8 | * Class: mxDefaultPopupMenuCodec
9 | *
10 | * Custom codec for configuring s. This class is created
11 | * and registered dynamically at load time and used implicitly via
12 | * and the . This codec only reads configuration
13 | * data for existing popup menus, it does not encode or create menus. Note
14 | * that this codec only passes the configuration node to the popup menu,
15 | * which uses the config to dynamically create menus. See
16 | * .
17 | */
18 | var codec = new mxObjectCodec(new mxDefaultPopupMenu());
19 |
20 | /**
21 | * Function: encode
22 | *
23 | * Returns null.
24 | */
25 | codec.encode = function(enc, obj)
26 | {
27 | return null;
28 | };
29 |
30 | /**
31 | * Function: decode
32 | *
33 | * Uses the given node as the config for .
34 | */
35 | codec.decode = function(dec, node, into)
36 | {
37 | var inc = node.getElementsByTagName('include')[0];
38 |
39 | if (inc != null)
40 | {
41 | this.processInclude(dec, inc, into);
42 | }
43 | else if (into != null)
44 | {
45 | into.config = node;
46 | }
47 |
48 | return into;
49 | };
50 |
51 | // Returns the codec into the registry
52 | return codec;
53 |
54 | }());
55 |
--------------------------------------------------------------------------------
/src/js/io/mxGenericChangeCodec.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2006-2015, JGraph Ltd
3 | * Copyright (c) 2006-2015, Gaudenz Alder
4 | */
5 | /**
6 | * Class: mxGenericChangeCodec
7 | *
8 | * Codec for s, s, s,
9 | * s and s. This class is created
10 | * and registered dynamically at load time and used implicitly
11 | * via and the .
12 | *
13 | * Transient Fields:
14 | *
15 | * - model
16 | * - previous
17 | *
18 | * Reference Fields:
19 | *
20 | * - cell
21 | *
22 | * Constructor: mxGenericChangeCodec
23 | *
24 | * Factory function that creates a for
25 | * the specified change and fieldname.
26 | *
27 | * Parameters:
28 | *
29 | * obj - An instance of the change object.
30 | * variable - The fieldname for the change data.
31 | */
32 | var mxGenericChangeCodec = function(obj, variable)
33 | {
34 | var codec = new mxObjectCodec(obj, ['model', 'previous'], ['cell']);
35 |
36 | /**
37 | * Function: afterDecode
38 | *
39 | * Restores the state by assigning the previous value.
40 | */
41 | codec.afterDecode = function(dec, node, obj)
42 | {
43 | // Allows forward references in sessions. This is a workaround
44 | // for the sequence of edits in mxGraph.moveCells and cellsAdded.
45 | if (mxUtils.isNode(obj.cell))
46 | {
47 | obj.cell = dec.decodeCell(obj.cell, false);
48 | }
49 |
50 | obj.previous = obj[variable];
51 |
52 | return obj;
53 | };
54 |
55 | return codec;
56 | };
57 |
58 | // Registers the codecs
59 | mxCodecRegistry.register(mxGenericChangeCodec(new mxValueChange(), 'value'));
60 | mxCodecRegistry.register(mxGenericChangeCodec(new mxStyleChange(), 'style'));
61 | mxCodecRegistry.register(mxGenericChangeCodec(new mxGeometryChange(), 'geometry'));
62 | mxCodecRegistry.register(mxGenericChangeCodec(new mxCollapseChange(), 'collapsed'));
63 | mxCodecRegistry.register(mxGenericChangeCodec(new mxVisibleChange(), 'visible'));
64 | mxCodecRegistry.register(mxGenericChangeCodec(new mxCellAttributeChange(), 'value'));
65 |
--------------------------------------------------------------------------------
/src/js/io/mxGraphCodec.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2006-2015, JGraph Ltd
3 | * Copyright (c) 2006-2015, Gaudenz Alder
4 | */
5 | mxCodecRegistry.register(function()
6 | {
7 | /**
8 | * Class: mxGraphCodec
9 | *
10 | * Codec for s. This class is created and registered
11 | * dynamically at load time and used implicitly via
12 | * and the .
13 | *
14 | * Transient Fields:
15 | *
16 | * - graphListeners
17 | * - eventListeners
18 | * - view
19 | * - container
20 | * - cellRenderer
21 | * - editor
22 | * - selection
23 | */
24 | return new mxObjectCodec(new mxGraph(),
25 | ['graphListeners', 'eventListeners', 'view', 'container',
26 | 'cellRenderer', 'editor', 'selection']);
27 |
28 | }());
29 |
--------------------------------------------------------------------------------
/src/js/io/mxModelCodec.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2006-2015, JGraph Ltd
3 | * Copyright (c) 2006-2015, Gaudenz Alder
4 | */
5 | mxCodecRegistry.register(function()
6 | {
7 | /**
8 | * Class: mxModelCodec
9 | *
10 | * Codec for s. This class is created and registered
11 | * dynamically at load time and used implicitly via
12 | * and the .
13 | */
14 | var codec = new mxObjectCodec(new mxGraphModel());
15 |
16 | /**
17 | * Function: encodeObject
18 | *
19 | * Encodes the given by writing a (flat) XML sequence of
20 | * cell nodes as produced by the . The sequence is
21 | * wrapped-up in a node with the name root.
22 | */
23 | codec.encodeObject = function(enc, obj, node)
24 | {
25 | var rootNode = enc.document.createElement('root');
26 | enc.encodeCell(obj.getRoot(), rootNode);
27 | node.appendChild(rootNode);
28 | };
29 |
30 | /**
31 | * Function: decodeChild
32 | *
33 | * Overrides decode child to handle special child nodes.
34 | */
35 | codec.decodeChild = function(dec, child, obj)
36 | {
37 | if (child.nodeName == 'root')
38 | {
39 | this.decodeRoot(dec, child, obj);
40 | }
41 | else
42 | {
43 | mxObjectCodec.prototype.decodeChild.apply(this, arguments);
44 | }
45 | };
46 |
47 | /**
48 | * Function: decodeRoot
49 | *
50 | * Reads the cells into the graph model. All cells
51 | * are children of the root element in the node.
52 | */
53 | codec.decodeRoot = function(dec, root, model)
54 | {
55 | var rootCell = null;
56 | var tmp = root.firstChild;
57 |
58 | while (tmp != null)
59 | {
60 | var cell = dec.decodeCell(tmp);
61 |
62 | if (cell != null && cell.getParent() == null)
63 | {
64 | rootCell = cell;
65 | }
66 |
67 | tmp = tmp.nextSibling;
68 | }
69 |
70 | // Sets the root on the model if one has been decoded
71 | if (rootCell != null)
72 | {
73 | model.setRoot(rootCell);
74 | }
75 | };
76 |
77 | // Returns the codec into the registry
78 | return codec;
79 |
80 | }());
81 |
--------------------------------------------------------------------------------
/src/js/io/mxRootChangeCodec.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2006-2015, JGraph Ltd
3 | * Copyright (c) 2006-2015, Gaudenz Alder
4 | */
5 | mxCodecRegistry.register(function()
6 | {
7 | /**
8 | * Class: mxRootChangeCodec
9 | *
10 | * Codec for s. This class is created and registered
11 | * dynamically at load time and used implicitly via and
12 | * the .
13 | *
14 | * Transient Fields:
15 | *
16 | * - model
17 | * - previous
18 | * - root
19 | */
20 | var codec = new mxObjectCodec(new mxRootChange(),
21 | ['model', 'previous', 'root']);
22 |
23 | /**
24 | * Function: onEncode
25 | *
26 | * Encodes the child recursively.
27 | */
28 | codec.afterEncode = function(enc, obj, node)
29 | {
30 | enc.encodeCell(obj.root, node);
31 |
32 | return node;
33 | };
34 |
35 | /**
36 | * Function: beforeDecode
37 | *
38 | * Decodes the optional children as cells
39 | * using the respective decoder.
40 | */
41 | codec.beforeDecode = function(dec, node, obj)
42 | {
43 | if (node.firstChild != null &&
44 | node.firstChild.nodeType == mxConstants.NODETYPE_ELEMENT)
45 | {
46 | // Makes sure the original node isn't modified
47 | node = node.cloneNode(true);
48 |
49 | var tmp = node.firstChild;
50 | obj.root = dec.decodeCell(tmp, false);
51 |
52 | var tmp2 = tmp.nextSibling;
53 | tmp.parentNode.removeChild(tmp);
54 | tmp = tmp2;
55 |
56 | while (tmp != null)
57 | {
58 | tmp2 = tmp.nextSibling;
59 | dec.decodeCell(tmp);
60 | tmp.parentNode.removeChild(tmp);
61 | tmp = tmp2;
62 | }
63 | }
64 |
65 | return node;
66 | };
67 |
68 | /**
69 | * Function: afterDecode
70 | *
71 | * Restores the state by assigning the previous value.
72 | */
73 | codec.afterDecode = function(dec, node, obj)
74 | {
75 | obj.previous = obj.root;
76 |
77 | return obj;
78 | };
79 |
80 | // Returns the codec into the registry
81 | return codec;
82 |
83 | }());
84 |
--------------------------------------------------------------------------------
/src/js/io/mxTerminalChangeCodec.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2006-2015, JGraph Ltd
3 | * Copyright (c) 2006-2015, Gaudenz Alder
4 | */
5 | mxCodecRegistry.register(function()
6 | {
7 | /**
8 | * Class: mxTerminalChangeCodec
9 | *
10 | * Codec for s. This class is created and registered
11 | * dynamically at load time and used implicitly via and
12 | * the .
13 | *
14 | * Transient Fields:
15 | *
16 | * - model
17 | * - previous
18 | *
19 | * Reference Fields:
20 | *
21 | * - cell
22 | * - terminal
23 | */
24 | var codec = new mxObjectCodec(new mxTerminalChange(),
25 | ['model', 'previous'], ['cell', 'terminal']);
26 |
27 | /**
28 | * Function: afterDecode
29 | *
30 | * Restores the state by assigning the previous value.
31 | */
32 | codec.afterDecode = function(dec, node, obj)
33 | {
34 | obj.previous = obj.terminal;
35 |
36 | return obj;
37 | };
38 |
39 | // Returns the codec into the registry
40 | return codec;
41 |
42 | }());
43 |
--------------------------------------------------------------------------------
/src/js/layout/hierarchical/stage/mxHierarchicalLayoutStage.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2006-2015, JGraph Ltd
3 | * Copyright (c) 2006-2015, Gaudenz Alder
4 | */
5 | /**
6 | * Class: mxHierarchicalLayoutStage
7 | *
8 | * The specific layout interface for hierarchical layouts. It adds a
9 | * run
method with a parameter for the hierarchical layout model
10 | * that is shared between the layout stages.
11 | *
12 | * Constructor: mxHierarchicalLayoutStage
13 | *
14 | * Constructs a new hierarchical layout stage.
15 | */
16 | function mxHierarchicalLayoutStage() { };
17 |
18 | /**
19 | * Function: execute
20 | *
21 | * Takes the graph detail and configuration information within the facade
22 | * and creates the resulting laid out graph within that facade for further
23 | * use.
24 | */
25 | mxHierarchicalLayoutStage.prototype.execute = function(parent) { };
26 |
--------------------------------------------------------------------------------
/src/js/shape/mxActor.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2006-2015, JGraph Ltd
3 | * Copyright (c) 2006-2015, Gaudenz Alder
4 | */
5 | /**
6 | * Class: mxActor
7 | *
8 | * Extends to implement an actor shape. If a custom shape with one
9 | * filled area is needed, then this shape's should be overridden.
10 | *
11 | * Example:
12 | *
13 | * (code)
14 | * function SampleShape() { }
15 | *
16 | * SampleShape.prototype = new mxActor();
17 | * SampleShape.prototype.constructor = vsAseShape;
18 | *
19 | * mxCellRenderer.registerShape('sample', SampleShape);
20 | * SampleShape.prototype.redrawPath = function(path, x, y, w, h)
21 | * {
22 | * path.moveTo(0, 0);
23 | * path.lineTo(w, h);
24 | * // ...
25 | * path.close();
26 | * }
27 | * (end)
28 | *
29 | * This shape is registered under in
30 | * .
31 | *
32 | * Constructor: mxActor
33 | *
34 | * Constructs a new actor shape.
35 | *
36 | * Parameters:
37 | *
38 | * bounds - that defines the bounds. This is stored in
39 | * .
40 | * fill - String that defines the fill color. This is stored in .
41 | * stroke - String that defines the stroke color. This is stored in .
42 | * strokewidth - Optional integer that defines the stroke width. Default is
43 | * 1. This is stored in .
44 | */
45 | function mxActor(bounds, fill, stroke, strokewidth)
46 | {
47 | mxShape.call(this);
48 | this.bounds = bounds;
49 | this.fill = fill;
50 | this.stroke = stroke;
51 | this.strokewidth = (strokewidth != null) ? strokewidth : 1;
52 | };
53 |
54 | /**
55 | * Extends mxShape.
56 | */
57 | mxUtils.extend(mxActor, mxShape);
58 |
59 | /**
60 | * Function: paintVertexShape
61 | *
62 | * Redirects to redrawPath for subclasses to work.
63 | */
64 | mxActor.prototype.paintVertexShape = function(c, x, y, w, h)
65 | {
66 | c.translate(x, y);
67 | c.begin();
68 | this.redrawPath(c, x, y, w, h);
69 | c.fillAndStroke();
70 | };
71 |
72 | /**
73 | * Function: redrawPath
74 | *
75 | * Draws the path for this shape.
76 | */
77 | mxActor.prototype.redrawPath = function(c, x, y, w, h)
78 | {
79 | var width = w/3;
80 | c.moveTo(0, h);
81 | c.curveTo(0, 3 * h / 5, 0, 2 * h / 5, w / 2, 2 * h / 5);
82 | c.curveTo(w / 2 - width, 2 * h / 5, w / 2 - width, 0, w / 2, 0);
83 | c.curveTo(w / 2 + width, 0, w / 2 + width, 2 * h / 5, w / 2, 2 * h / 5);
84 | c.curveTo(w, 2 * h / 5, w, 3 * h / 5, w, h);
85 | c.close();
86 | };
87 |
--------------------------------------------------------------------------------
/src/js/shape/mxCloud.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2006-2015, JGraph Ltd
3 | * Copyright (c) 2006-2015, Gaudenz Alder
4 | */
5 | /**
6 | * Class: mxCloud
7 | *
8 | * Extends to implement a cloud shape.
9 | *
10 | * This shape is registered under in
11 | * .
12 | *
13 | * Constructor: mxCloud
14 | *
15 | * Constructs a new cloud shape.
16 | *
17 | * Parameters:
18 | *
19 | * bounds - that defines the bounds. This is stored in
20 | * .
21 | * fill - String that defines the fill color. This is stored in .
22 | * stroke - String that defines the stroke color. This is stored in .
23 | * strokewidth - Optional integer that defines the stroke width. Default is
24 | * 1. This is stored in .
25 | */
26 | function mxCloud(bounds, fill, stroke, strokewidth)
27 | {
28 | mxActor.call(this);
29 | this.bounds = bounds;
30 | this.fill = fill;
31 | this.stroke = stroke;
32 | this.strokewidth = (strokewidth != null) ? strokewidth : 1;
33 | };
34 |
35 | /**
36 | * Extends mxActor.
37 | */
38 | mxUtils.extend(mxCloud, mxActor);
39 |
40 | /**
41 | * Function: redrawPath
42 | *
43 | * Draws the path for this shape.
44 | */
45 | mxCloud.prototype.redrawPath = function(c, x, y, w, h)
46 | {
47 | c.moveTo(0.25 * w, 0.25 * h);
48 | c.curveTo(0.05 * w, 0.25 * h, 0, 0.5 * h, 0.16 * w, 0.55 * h);
49 | c.curveTo(0, 0.66 * h, 0.18 * w, 0.9 * h, 0.31 * w, 0.8 * h);
50 | c.curveTo(0.4 * w, h, 0.7 * w, h, 0.8 * w, 0.8 * h);
51 | c.curveTo(w, 0.8 * h, w, 0.6 * h, 0.875 * w, 0.5 * h);
52 | c.curveTo(w, 0.3 * h, 0.8 * w, 0.1 * h, 0.625 * w, 0.2 * h);
53 | c.curveTo(0.5 * w, 0.05 * h, 0.3 * w, 0.05 * h, 0.25 * w, 0.25 * h);
54 | c.close();
55 | };
56 |
--------------------------------------------------------------------------------
/src/js/shape/mxEllipse.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2006-2015, JGraph Ltd
3 | * Copyright (c) 2006-2015, Gaudenz Alder
4 | */
5 | /**
6 | * Class: mxEllipse
7 | *
8 | * Extends to implement an ellipse shape.
9 | * This shape is registered under
10 | * in .
11 | *
12 | * Constructor: mxEllipse
13 | *
14 | * Constructs a new ellipse shape.
15 | *
16 | * Parameters:
17 | *
18 | * bounds - that defines the bounds. This is stored in
19 | * .
20 | * fill - String that defines the fill color. This is stored in .
21 | * stroke - String that defines the stroke color. This is stored in .
22 | * strokewidth - Optional integer that defines the stroke width. Default is
23 | * 1. This is stored in .
24 | */
25 | function mxEllipse(bounds, fill, stroke, strokewidth)
26 | {
27 | mxShape.call(this);
28 | this.bounds = bounds;
29 | this.fill = fill;
30 | this.stroke = stroke;
31 | this.strokewidth = (strokewidth != null) ? strokewidth : 1;
32 | };
33 |
34 | /**
35 | * Extends mxShape.
36 | */
37 | mxUtils.extend(mxEllipse, mxShape);
38 |
39 | /**
40 | * Function: paintVertexShape
41 | *
42 | * Paints the ellipse shape.
43 | */
44 | mxEllipse.prototype.paintVertexShape = function(c, x, y, w, h)
45 | {
46 | c.ellipse(x, y, w, h);
47 | c.fillAndStroke();
48 | };
49 |
--------------------------------------------------------------------------------
/src/js/shape/mxHexagon.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2006-2015, JGraph Ltd
3 | * Copyright (c) 2006-2015, Gaudenz Alder
4 | */
5 | /**
6 | * Class: mxHexagon
7 | *
8 | * Implementation of the hexagon shape.
9 | *
10 | * Constructor: mxHexagon
11 | *
12 | * Constructs a new hexagon shape.
13 | */
14 | function mxHexagon()
15 | {
16 | mxActor.call(this);
17 | };
18 |
19 | /**
20 | * Extends mxActor.
21 | */
22 | mxUtils.extend(mxHexagon, mxActor);
23 |
24 | /**
25 | * Function: redrawPath
26 | *
27 | * Draws the path for this shape.
28 | */
29 | mxHexagon.prototype.redrawPath = function(c, x, y, w, h)
30 | {
31 | var arcSize = mxUtils.getValue(this.style, mxConstants.STYLE_ARCSIZE, mxConstants.LINE_ARCSIZE) / 2;
32 | this.addPoints(c, [new mxPoint(0.25 * w, 0), new mxPoint(0.75 * w, 0), new mxPoint(w, 0.5 * h), new mxPoint(0.75 * w, h),
33 | new mxPoint(0.25 * w, h), new mxPoint(0, 0.5 * h)], this.isRounded, arcSize, true);
34 | };
35 |
--------------------------------------------------------------------------------
/src/js/shape/mxLine.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2006-2015, JGraph Ltd
3 | * Copyright (c) 2006-2015, Gaudenz Alder
4 | */
5 | /**
6 | * Class: mxLine
7 | *
8 | * Extends to implement a horizontal line shape.
9 | * This shape is registered under in
10 | * .
11 | *
12 | * Constructor: mxLine
13 | *
14 | * Constructs a new line shape.
15 | *
16 | * Parameters:
17 | *
18 | * bounds - that defines the bounds. This is stored in
19 | * .
20 | * stroke - String that defines the stroke color. Default is 'black'. This is
21 | * stored in .
22 | * strokewidth - Optional integer that defines the stroke width. Default is
23 | * 1. This is stored in .
24 | */
25 | function mxLine(bounds, stroke, strokewidth, vertical)
26 | {
27 | mxShape.call(this);
28 | this.bounds = bounds;
29 | this.stroke = stroke;
30 | this.strokewidth = (strokewidth != null) ? strokewidth : 1;
31 | this.vertical = (vertical != null) ? vertical : this.vertical;
32 | };
33 |
34 | /**
35 | * Extends mxShape.
36 | */
37 | mxUtils.extend(mxLine, mxShape);
38 |
39 | /**
40 | * Function: vertical
41 | *
42 | * Whether to paint a vertical line.
43 | */
44 | mxLine.prototype.vertical = false;
45 |
46 | /**
47 | * Function: paintVertexShape
48 | *
49 | * Redirects to redrawPath for subclasses to work.
50 | */
51 | mxLine.prototype.paintVertexShape = function(c, x, y, w, h)
52 | {
53 | c.begin();
54 |
55 | if (this.vertical)
56 | {
57 | var mid = x + w / 2;
58 | c.moveTo(mid, y);
59 | c.lineTo(mid, y + h);
60 | }
61 | else
62 | {
63 | var mid = y + h / 2;
64 | c.moveTo(x, mid);
65 | c.lineTo(x + w, mid);
66 | }
67 |
68 | c.stroke();
69 | };
70 |
--------------------------------------------------------------------------------
/src/js/shape/mxPolygon.js:
--------------------------------------------------------------------------------
1 | function mxPolygon(points, fill, stroke, strokewidth) {
2 | mxPolyline.call(this);
3 | this.points = points;
4 | this.stroke = stroke;
5 | this.fill = fill;
6 | this.strokewidth = (strokewidth != null) ? strokewidth : 1;
7 | };
8 |
9 | /**
10 | * Extends mxPolyline.
11 | */
12 | mxUtils.extend(mxPolygon, mxPolyline);
13 |
14 | /**
15 | * Function: paintLine: overriding paintline function of polyline to paint the entire shape instead of just the line
16 | *
17 | * Paints the polygon
18 | */
19 | mxPolygon.prototype.paintLine = function (c, pts, rounded) {
20 | var arcSize = mxUtils.getValue(this.style, mxConstants.STYLE_ARCSIZE, mxConstants.LINE_ARCSIZE) / 2;
21 | c.begin();
22 | this.addPoints(c, pts, rounded, arcSize, true);
23 | c.fillAndStroke();
24 | };
25 |
--------------------------------------------------------------------------------
/src/js/shape/mxRhombus.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2006-2015, JGraph Ltd
3 | * Copyright (c) 2006-2015, Gaudenz Alder
4 | */
5 | /**
6 | * Class: mxRhombus
7 | *
8 | * Extends to implement a rhombus (aka diamond) shape.
9 | * This shape is registered under
10 | * in .
11 | *
12 | * Constructor: mxRhombus
13 | *
14 | * Constructs a new rhombus shape.
15 | *
16 | * Parameters:
17 | *
18 | * bounds - that defines the bounds. This is stored in
19 | * .
20 | * fill - String that defines the fill color. This is stored in .
21 | * stroke - String that defines the stroke color. This is stored in .
22 | * strokewidth - Optional integer that defines the stroke width. Default is
23 | * 1. This is stored in .
24 | */
25 | function mxRhombus(bounds, fill, stroke, strokewidth)
26 | {
27 | mxShape.call(this);
28 | this.bounds = bounds;
29 | this.fill = fill;
30 | this.stroke = stroke;
31 | this.strokewidth = (strokewidth != null) ? strokewidth : 1;
32 | };
33 |
34 | /**
35 | * Extends mxShape.
36 | */
37 | mxUtils.extend(mxRhombus, mxShape);
38 |
39 | /**
40 | * Function: isRoundable
41 | *
42 | * Adds roundable support.
43 | */
44 | mxRhombus.prototype.isRoundable = function()
45 | {
46 | return true;
47 | };
48 |
49 | /**
50 | * Function: paintVertexShape
51 | *
52 | * Generic painting implementation.
53 | */
54 | mxRhombus.prototype.paintVertexShape = function(c, x, y, w, h)
55 | {
56 | var hw = w / 2;
57 | var hh = h / 2;
58 |
59 | var arcSize = mxUtils.getValue(this.style, mxConstants.STYLE_ARCSIZE, mxConstants.LINE_ARCSIZE) / 2;
60 | c.begin();
61 | this.addPoints(c, [new mxPoint(x + hw, y), new mxPoint(x + w, y + hh), new mxPoint(x + hw, y + h),
62 | new mxPoint(x, y + hh)], this.isRounded, arcSize, true);
63 | c.fillAndStroke();
64 | };
65 |
--------------------------------------------------------------------------------
/src/js/shape/mxStencilRegistry.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2006-2015, JGraph Ltd
3 | * Copyright (c) 2006-2015, Gaudenz Alder
4 | *
5 | * Code to add stencils.
6 | *
7 | * (code)
8 | * var req = mxUtils.load('test/stencils.xml');
9 | * var root = req.getDocumentElement();
10 | * var shape = root.firstChild;
11 | *
12 | * while (shape != null)
13 | * {
14 | * if (shape.nodeType == mxConstants.NODETYPE_ELEMENT)
15 | * {
16 | * mxStencilRegistry.addStencil(shape.getAttribute('name'), new mxStencil(shape));
17 | * }
18 | *
19 | * shape = shape.nextSibling;
20 | * }
21 | * (end)
22 | */
23 | var mxStencilRegistry =
24 | {
25 | /**
26 | * Class: mxStencilRegistry
27 | *
28 | * A singleton class that provides a registry for stencils and the methods
29 | * for painting those stencils onto a canvas or into a DOM.
30 | */
31 | stencils: {},
32 |
33 | /**
34 | * Function: addStencil
35 | *
36 | * Adds the given .
37 | */
38 | addStencil: function(name, stencil)
39 | {
40 | mxStencilRegistry.stencils[name] = stencil;
41 | },
42 |
43 | /**
44 | * Function: getStencil
45 | *
46 | * Returns the for the given name.
47 | */
48 | getStencil: function(name)
49 | {
50 | return mxStencilRegistry.stencils[name];
51 | }
52 |
53 | };
54 |
--------------------------------------------------------------------------------
/src/js/shape/mxTriangle.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2006-2015, JGraph Ltd
3 | * Copyright (c) 2006-2015, Gaudenz Alder
4 | */
5 | /**
6 | * Class: mxTriangle
7 | *
8 | * Implementation of the triangle shape.
9 | *
10 | * Constructor: mxTriangle
11 | *
12 | * Constructs a new triangle shape.
13 | */
14 | function mxTriangle()
15 | {
16 | mxActor.call(this);
17 | };
18 |
19 | /**
20 | * Extends mxActor.
21 | */
22 | mxUtils.extend(mxTriangle, mxActor);
23 |
24 | /**
25 | * Function: isRoundable
26 | *
27 | * Adds roundable support.
28 | */
29 | mxTriangle.prototype.isRoundable = function()
30 | {
31 | return true;
32 | };
33 |
34 | /**
35 | * Function: redrawPath
36 | *
37 | * Draws the path for this shape.
38 | */
39 | mxTriangle.prototype.redrawPath = function(c, x, y, w, h)
40 | {
41 | var arcSize = mxUtils.getValue(this.style, mxConstants.STYLE_ARCSIZE, mxConstants.LINE_ARCSIZE) / 2;
42 | this.addPoints(c, [new mxPoint(0, 0), new mxPoint(w, 0.5 * h), new mxPoint(0, h)], this.isRounded, arcSize, true);
43 | };
44 |
--------------------------------------------------------------------------------
/src/js/util/mxAnimation.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2006-2015, JGraph Ltd
3 | * Copyright (c) 2006-2015, Gaudenz Alder
4 | */
5 | /**
6 | *
7 | * Class: mxAnimation
8 | *
9 | * Implements a basic animation in JavaScript.
10 | *
11 | * Constructor: mxAnimation
12 | *
13 | * Constructs an animation.
14 | *
15 | * Parameters:
16 | *
17 | * graph - Reference to the enclosing .
18 | */
19 | function mxAnimation(delay)
20 | {
21 | this.delay = (delay != null) ? delay : 20;
22 | };
23 |
24 | /**
25 | * Extends mxEventSource.
26 | */
27 | mxAnimation.prototype = new mxEventSource();
28 | mxAnimation.prototype.constructor = mxAnimation;
29 |
30 | /**
31 | * Variable: delay
32 | *
33 | * Specifies the delay between the animation steps. Defaul is 30ms.
34 | */
35 | mxAnimation.prototype.delay = null;
36 |
37 | /**
38 | * Variable: thread
39 | *
40 | * Reference to the thread while the animation is running.
41 | */
42 | mxAnimation.prototype.thread = null;
43 |
44 | /**
45 | * Function: isRunning
46 | *
47 | * Returns true if the animation is running.
48 | */
49 | mxAnimation.prototype.isRunning = function()
50 | {
51 | return this.thread != null;
52 | };
53 |
54 | /**
55 | * Function: startAnimation
56 | *
57 | * Starts the animation by repeatedly invoking updateAnimation.
58 | */
59 | mxAnimation.prototype.startAnimation = function()
60 | {
61 | if (this.thread == null)
62 | {
63 | this.thread = window.setInterval(mxUtils.bind(this, this.updateAnimation), this.delay);
64 | }
65 | };
66 |
67 | /**
68 | * Function: updateAnimation
69 | *
70 | * Hook for subclassers to implement the animation. Invoke stopAnimation
71 | * when finished, startAnimation to resume. This is called whenever the
72 | * timer fires and fires an mxEvent.EXECUTE event with no properties.
73 | */
74 | mxAnimation.prototype.updateAnimation = function()
75 | {
76 | this.fireEvent(new mxEventObject(mxEvent.EXECUTE));
77 | };
78 |
79 | /**
80 | * Function: stopAnimation
81 | *
82 | * Stops the animation by deleting the timer and fires an .
83 | */
84 | mxAnimation.prototype.stopAnimation = function()
85 | {
86 | if (this.thread != null)
87 | {
88 | window.clearInterval(this.thread);
89 | this.thread = null;
90 | this.fireEvent(new mxEventObject(mxEvent.DONE));
91 | }
92 | };
93 |
--------------------------------------------------------------------------------
/src/js/util/mxEventObject.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2006-2015, JGraph Ltd
3 | * Copyright (c) 2006-2015, Gaudenz Alder
4 | */
5 | /**
6 | * Class: mxEventObject
7 | *
8 | * The mxEventObject is a wrapper for all properties of a single event.
9 | * Additionally, it also offers functions to consume the event and check if it
10 | * was consumed as follows:
11 | *
12 | * (code)
13 | * evt.consume();
14 | * INV: evt.isConsumed() == true
15 | * (end)
16 | *
17 | * Constructor: mxEventObject
18 | *
19 | * Constructs a new event object with the specified name. An optional
20 | * sequence of key, value pairs can be appended to define properties.
21 | *
22 | * Example:
23 | *
24 | * (code)
25 | * new mxEventObject("eventName", key1, val1, .., keyN, valN)
26 | * (end)
27 | */
28 | function mxEventObject(name)
29 | {
30 | this.name = name;
31 | this.properties = [];
32 |
33 | for (var i = 1; i < arguments.length; i += 2)
34 | {
35 | if (arguments[i + 1] != null)
36 | {
37 | this.properties[arguments[i]] = arguments[i + 1];
38 | }
39 | }
40 | };
41 |
42 | /**
43 | * Variable: name
44 | *
45 | * Holds the name.
46 | */
47 | mxEventObject.prototype.name = null;
48 |
49 | /**
50 | * Variable: properties
51 | *
52 | * Holds the properties as an associative array.
53 | */
54 | mxEventObject.prototype.properties = null;
55 |
56 | /**
57 | * Variable: consumed
58 | *
59 | * Holds the consumed state. Default is false.
60 | */
61 | mxEventObject.prototype.consumed = false;
62 |
63 | /**
64 | * Function: getName
65 | *
66 | * Returns .
67 | */
68 | mxEventObject.prototype.getName = function()
69 | {
70 | return this.name;
71 | };
72 |
73 | /**
74 | * Function: getProperties
75 | *
76 | * Returns .
77 | */
78 | mxEventObject.prototype.getProperties = function()
79 | {
80 | return this.properties;
81 | };
82 |
83 | /**
84 | * Function: getProperty
85 | *
86 | * Returns the property for the given key.
87 | */
88 | mxEventObject.prototype.getProperty = function(key)
89 | {
90 | return this.properties[key];
91 | };
92 |
93 | /**
94 | * Function: isConsumed
95 | *
96 | * Returns true if the event has been consumed.
97 | */
98 | mxEventObject.prototype.isConsumed = function()
99 | {
100 | return this.consumed;
101 | };
102 |
103 | /**
104 | * Function: consume
105 | *
106 | * Consumes the event.
107 | */
108 | mxEventObject.prototype.consume = function()
109 | {
110 | this.consumed = true;
111 | };
112 |
--------------------------------------------------------------------------------
/src/js/util/mxImage.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2006-2015, JGraph Ltd
3 | * Copyright (c) 2006-2015, Gaudenz Alder
4 | */
5 | /**
6 | * Class: mxImage
7 | *
8 | * Encapsulates the URL, width and height of an image.
9 | *
10 | * Constructor: mxImage
11 | *
12 | * Constructs a new image.
13 | */
14 | function mxImage(src, width, height)
15 | {
16 | this.src = src;
17 | this.width = width;
18 | this.height = height;
19 | };
20 |
21 | /**
22 | * Variable: src
23 | *
24 | * String that specifies the URL of the image.
25 | */
26 | mxImage.prototype.src = null;
27 |
28 | /**
29 | * Variable: width
30 | *
31 | * Integer that specifies the width of the image.
32 | */
33 | mxImage.prototype.width = null;
34 |
35 | /**
36 | * Variable: height
37 | *
38 | * Integer that specifies the height of the image.
39 | */
40 | mxImage.prototype.height = null;
41 |
--------------------------------------------------------------------------------
/src/js/util/mxObjectIdentity.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2006-2015, JGraph Ltd
3 | * Copyright (c) 2006-2015, Gaudenz Alder
4 | */
5 | var mxObjectIdentity =
6 | {
7 | /**
8 | * Class: mxObjectIdentity
9 | *
10 | * Identity for JavaScript objects and functions. This is implemented using
11 | * a simple incrementing counter which is stored in each object under
12 | * .
13 | *
14 | * The identity for an object does not change during its lifecycle.
15 | *
16 | * Variable: FIELD_NAME
17 | *
18 | * Name of the field to be used to store the object ID. Default is
19 | * mxObjectId
.
20 | */
21 | FIELD_NAME: 'mxObjectId',
22 |
23 | /**
24 | * Variable: counter
25 | *
26 | * Current counter.
27 | */
28 | counter: 0,
29 |
30 | /**
31 | * Function: get
32 | *
33 | * Returns the ID for the given object or function or null if no object
34 | * is specified.
35 | */
36 | get: function(obj)
37 | {
38 | if (obj != null)
39 | {
40 | if (obj[mxObjectIdentity.FIELD_NAME] == null)
41 | {
42 | if (typeof obj === 'object')
43 | {
44 | var ctor = mxUtils.getFunctionName(obj.constructor);
45 | obj[mxObjectIdentity.FIELD_NAME] = ctor + '#' + mxObjectIdentity.counter++;
46 | }
47 | else if (typeof obj === 'function')
48 | {
49 | obj[mxObjectIdentity.FIELD_NAME] = 'Function#' + mxObjectIdentity.counter++;
50 | }
51 | }
52 |
53 | return obj[mxObjectIdentity.FIELD_NAME];
54 | }
55 |
56 | return null;
57 | },
58 |
59 | /**
60 | * Function: clear
61 | *
62 | * Deletes the ID from the given object or function.
63 | */
64 | clear: function(obj)
65 | {
66 | if (typeof(obj) === 'object' || typeof obj === 'function')
67 | {
68 | delete obj[mxObjectIdentity.FIELD_NAME];
69 | }
70 | }
71 |
72 | };
73 |
--------------------------------------------------------------------------------
/src/js/util/mxPoint.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2006-2015, JGraph Ltd
3 | * Copyright (c) 2006-2015, Gaudenz Alder
4 | */
5 | /**
6 | * Class: mxPoint
7 | *
8 | * Implements a 2-dimensional vector with double precision coordinates.
9 | *
10 | * Constructor: mxPoint
11 | *
12 | * Constructs a new point for the optional x and y coordinates. If no
13 | * coordinates are given, then the default values for and are used.
14 | */
15 | function mxPoint(x, y)
16 | {
17 | this.x = (x != null) ? x : 0;
18 | this.y = (y != null) ? y : 0;
19 | };
20 |
21 | /**
22 | * Variable: x
23 | *
24 | * Holds the x-coordinate of the point. Default is 0.
25 | */
26 | mxPoint.prototype.x = null;
27 |
28 | /**
29 | * Variable: y
30 | *
31 | * Holds the y-coordinate of the point. Default is 0.
32 | */
33 | mxPoint.prototype.y = null;
34 |
35 | /**
36 | * Function: equals
37 | *
38 | * Returns true if the given object equals this point.
39 | */
40 | mxPoint.prototype.equals = function(obj)
41 | {
42 | return obj != null && obj.x == this.x && obj.y == this.y;
43 | };
44 |
45 | /**
46 | * Function: clone
47 | *
48 | * Returns a clone of this .
49 | */
50 | mxPoint.prototype.clone = function()
51 | {
52 | // Handles subclasses as well
53 | return mxUtils.clone(this);
54 | };
55 |
--------------------------------------------------------------------------------
/src/js/view/mxConnectionConstraint.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2006-2015, JGraph Ltd
3 | * Copyright (c) 2006-2015, Gaudenz Alder
4 | */
5 | /**
6 | * Class: mxConnectionConstraint
7 | *
8 | * Defines an object that contains the constraints about how to connect one
9 | * side of an edge to its terminal.
10 | *
11 | * Constructor: mxConnectionConstraint
12 | *
13 | * Constructs a new connection constraint for the given point and boolean
14 | * arguments.
15 | *
16 | * Parameters:
17 | *
18 | * point - Optional that specifies the fixed location of the point
19 | * in relative coordinates. Default is null.
20 | * perimeter - Optional boolean that specifies if the fixed point should be
21 | * projected onto the perimeter of the terminal. Default is true.
22 | */
23 | function mxConnectionConstraint(point, perimeter, name, dx, dy)
24 | {
25 | this.point = point;
26 | this.perimeter = (perimeter != null) ? perimeter : true;
27 | this.name = name;
28 | this.dx = dx? dx : 0;
29 | this.dy = dy? dy : 0;
30 | };
31 |
32 | /**
33 | * Variable: point
34 | *
35 | * that specifies the fixed location of the connection point.
36 | */
37 | mxConnectionConstraint.prototype.point = null;
38 |
39 | /**
40 | * Variable: perimeter
41 | *
42 | * Boolean that specifies if the point should be projected onto the perimeter
43 | * of the terminal.
44 | */
45 | mxConnectionConstraint.prototype.perimeter = null;
46 |
47 | /**
48 | * Variable: name
49 | *
50 | * Optional string that specifies the name of the constraint.
51 | */
52 | mxConnectionConstraint.prototype.name = null;
53 |
54 | /**
55 | * Variable: dx
56 | *
57 | * Optional float that specifies the horizontal offset of the constraint.
58 | */
59 | mxConnectionConstraint.prototype.dx = null;
60 |
61 | /**
62 | * Variable: dy
63 | *
64 | * Optional float that specifies the vertical offset of the constraint.
65 | */
66 | mxConnectionConstraint.prototype.dy = null;
67 |
68 |
--------------------------------------------------------------------------------
/src/js/view/mxStyleRegistry.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2006-2015, JGraph Ltd
3 | * Copyright (c) 2006-2015, Gaudenz Alder
4 | */
5 | var mxStyleRegistry =
6 | {
7 | /**
8 | * Class: mxStyleRegistry
9 | *
10 | * Singleton class that acts as a global converter from string to object values
11 | * in a style. This is currently only used to perimeters and edge styles.
12 | *
13 | * Variable: values
14 | *
15 | * Maps from strings to objects.
16 | */
17 | values: [],
18 |
19 | /**
20 | * Function: putValue
21 | *
22 | * Puts the given object into the registry under the given name.
23 | */
24 | putValue: function(name, obj)
25 | {
26 | mxStyleRegistry.values[name] = obj;
27 | },
28 |
29 | /**
30 | * Function: getValue
31 | *
32 | * Returns the value associated with the given name.
33 | */
34 | getValue: function(name)
35 | {
36 | return mxStyleRegistry.values[name];
37 | },
38 |
39 | /**
40 | * Function: getName
41 | *
42 | * Returns the name for the given value.
43 | */
44 | getName: function(value)
45 | {
46 | for (var key in mxStyleRegistry.values)
47 | {
48 | if (mxStyleRegistry.values[key] == value)
49 | {
50 | return key;
51 | }
52 | }
53 |
54 | return null;
55 | }
56 |
57 | };
58 |
59 | mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ELBOW, mxEdgeStyle.ElbowConnector);
60 | mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ENTITY_RELATION, mxEdgeStyle.EntityRelation);
61 | mxStyleRegistry.putValue(mxConstants.EDGESTYLE_LOOP, mxEdgeStyle.Loop);
62 | mxStyleRegistry.putValue(mxConstants.EDGESTYLE_SIDETOSIDE, mxEdgeStyle.SideToSide);
63 | mxStyleRegistry.putValue(mxConstants.EDGESTYLE_TOPTOBOTTOM, mxEdgeStyle.TopToBottom);
64 | mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ORTHOGONAL, mxEdgeStyle.OrthConnector);
65 | mxStyleRegistry.putValue(mxConstants.EDGESTYLE_SEGMENT, mxEdgeStyle.SegmentConnector);
66 |
67 | mxStyleRegistry.putValue(mxConstants.PERIMETER_ELLIPSE, mxPerimeter.EllipsePerimeter);
68 | mxStyleRegistry.putValue(mxConstants.PERIMETER_RECTANGLE, mxPerimeter.RectanglePerimeter);
69 | mxStyleRegistry.putValue(mxConstants.PERIMETER_RHOMBUS, mxPerimeter.RhombusPerimeter);
70 | mxStyleRegistry.putValue(mxConstants.PERIMETER_TRIANGLE, mxPerimeter.TrianglePerimeter);
71 | mxStyleRegistry.putValue(mxConstants.PERIMETER_HEXAGON, mxPerimeter.HexagonPerimeter);
72 |
--------------------------------------------------------------------------------
/src/resources/editor.txt:
--------------------------------------------------------------------------------
1 | askZoom=Enter zoom (%)
2 | properties=Properties
3 | outline=Outline
4 | tasks=Tasks
5 | help=Help
6 |
--------------------------------------------------------------------------------
/src/resources/editor_de.txt:
--------------------------------------------------------------------------------
1 | askZoom=Zoom eingeben (%)
2 | properties=Eigenschaften
3 | outline=Uebersicht
4 | tasks=Aufgaben
5 | help=Hilfe
6 |
--------------------------------------------------------------------------------
/src/resources/editor_zh.txt:
--------------------------------------------------------------------------------
1 | askZoom=进入缩放(%25)
2 | properties=属性
3 | outline=轮廓
4 | tasks=任务
5 | help=帮助
--------------------------------------------------------------------------------
/src/resources/graph.txt:
--------------------------------------------------------------------------------
1 | alreadyConnected=Nodes already connected
2 | containsValidationErrors=Contains validation errors
3 | updatingDocument=Updating Document. Please wait...
4 | updatingSelection=Updating Selection. Please wait...
5 | collapse-expand=Collapse/Expand
6 | doubleClickOrientation=Doubleclick to change orientation
7 | close=Close
8 | error=Error
9 | done=Done
10 | cancel=Cancel
11 | ok=OK
12 |
--------------------------------------------------------------------------------
/src/resources/graph_de.txt:
--------------------------------------------------------------------------------
1 | alreadyConnected=Knoten schon verbunden
2 | containsValidationErrors=Enthält Validierungsfehler
3 | updatingDocument=Aktualisiere Dokument. Bitte warten...
4 | updatingSelection=Aktualisiere Markierung. Bitte warten...
5 | collapse-expand=Einklappen/Ausklappen
6 | doubleClickOrientation=Doppelklicken um Orientierung zu ändern
7 | close=Schliessen
8 | error=Fehler
9 | done=Fertig
10 | cancel=Abbrechen
11 | ok=OK
12 |
--------------------------------------------------------------------------------
/src/resources/graph_zh.txt:
--------------------------------------------------------------------------------
1 | alreadyConnected=节点已经连接
2 | containsValidationErrors=包含效验错误
3 | updatingDocument=更新文档。请等候......
4 | updatingSelection=更新所选项。请等候......
5 | collapse-expand=折叠/展开
6 | doubleClickOrientation=双击以改变方向
7 | close=关闭
8 | error=错误
9 | done=完成
10 | cancel=取消
11 | ok=确定
--------------------------------------------------------------------------------
/src/ts/index.ts:
--------------------------------------------------------------------------------
1 | ///
2 | import mx from 'mxgraph';
3 | import { mxGraphFactory } from './mx';
4 | export * from 'mxgraph';
5 | export * from './schemaDesigner/schemaDesigner';
6 | export * from './schemaDesigner/schemaDesignerInterfaces';
7 | export * from './schemaDesigner/schemaDesignerEntity';
8 | export * from './schemaDesigner/schemaDesignerToolbar';
9 | export { mx };
10 | export { mxGraphFactory };
--------------------------------------------------------------------------------
/src/ts/mx.ts:
--------------------------------------------------------------------------------
1 | import factory, { mxGraphExportObject } from 'mxgraph';
2 |
3 | declare global {
4 | interface Window {
5 | mxBasePath: string;
6 | mxLoadResources: boolean;
7 | mxForceIncludes: boolean;
8 | mxLoadStylesheets: boolean;
9 | mxResourceExtension: string;
10 | }
11 | }
12 |
13 | //window.mxBasePath = '../node_modules/mxgraph/javascript/src';
14 | window.mxLoadResources = false;
15 | window.mxForceIncludes = false;
16 | window.mxLoadStylesheets = false;
17 | window.mxResourceExtension = '.txt';
18 |
19 | export const mxGraphFactory: mxGraphExportObject = factory({
20 | })
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/editor/index.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 | ///
3 | ///
4 | ///
5 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/editor/mxDefaultKeyHandler.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | /**
3 | * Binds keycodes to actionnames in an editor. This aggregates an internal {@link handler} and extends the implementation of {@link mxKeyHandler.escape} to not only cancel the editing, but also hide the properties dialog and fire an event via {@link editor}. An instance of this class is created by {@link mxEditor} and stored in {@link mxEditor.keyHandler}.
4 | *
5 | * @Example
6 | * Bind the delete key to the delete action in an existing editor.
7 | * ```javascript
8 | * var keyHandler = new mxDefaultKeyHandler(editor);
9 | * keyHandler.bindAction(46, 'delete');
10 | * ```
11 | *
12 | * @Codec
13 | * This class uses the {@link mxDefaultKeyHandlerCodec} to read configuration data into an existing instance. See {@link mxDefaultKeyHandlerCodec} for a description of the configuration format.
14 | *
15 | * @Keycodes
16 | * See {@link mxKeyHandler}.
17 | * An {@link mxEvent.ESCAPE} event is fired via the editor if the escape key is pressed.
18 | */
19 | class mxDefaultKeyHandler {
20 | /**
21 | * Constructs a new default key handler for the {@link mxEditor.graph} in the given {@link mxEditor}. (The editor may be null if a prototypical instance for a {@link mxDefaultKeyHandlerCodec} is created.)
22 | *
23 | * @param editor
24 | */
25 | constructor(editor: mxEditor);
26 |
27 | /**
28 | * Reference to the enclosing {@link mxEditor}.
29 | */
30 | editor: mxEditor;
31 |
32 | /**
33 | * Holds the {@link mxKeyHandler} for key event handling.
34 | */
35 | handler: mxKeyHandler;
36 |
37 | /**
38 | * Binds the specified keycode to the given action in {@link editor}. The optional control flag specifies if the control key must be pressed to trigger the action.
39 | *
40 | * @param code Integer that specifies the keycode.
41 | * @param action Name of the action to execute in {@link editor}.
42 | * @param control Optional boolean that specifies if control must be pressed. Default is false.
43 | */
44 | bindAction(code: number, action: string, control?: boolean): void;
45 |
46 | /**
47 | * Destroys the {@link handler} associated with this object. This does normally not need to be called, the {@link handler} is destroyed automatically when the window unloads (in IE) by {@link mxEditor}.
48 | */
49 | destroy(): void;
50 |
51 | [key: string]: any;
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/handler/index.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 | ///
3 | ///
4 | ///
5 | ///
6 | ///
7 | ///
8 | ///
9 | ///
10 | ///
11 | ///
12 | ///
13 | ///
14 | ///
15 | ///
16 | ///
17 | ///
18 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/handler/mxEdgeSegmentHandler.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | export class mxEdgeSegmentHandler extends mxEdgeHandler {
3 | constructor(state: mxCellState);
4 |
5 | /**
6 | * Function: getCurrentPoints
7 | *
8 | * Returns the current absolute points.
9 | */
10 | getCurrentPoints(): mxPoint[];
11 |
12 | /**
13 | * Function: getPreviewPoints
14 | *
15 | * Updates the given preview state taking into account the state of the constraint handler.
16 | */
17 | getPreviewPoints(point: mxPoint): mxPoint[];
18 |
19 | /**
20 | * Function: updatePreviewState
21 | *
22 | * Overridden to perform optimization of the edge style result.
23 | */
24 | updatePreviewState(edge: mxCell, point: mxPoint, terminalState: mxCellState, me: mxMouseEvent): void;
25 |
26 | /**
27 | * Overriden to merge edge segments.
28 | */
29 | connect(edge: mxCell, terminal: mxCell, isSource: boolean, isClone: boolean, me: mxMouseEvent): mxCell;
30 |
31 | /**
32 | * Function: getTooltipForNode
33 | *
34 | * Returns no tooltips.
35 | */
36 | getTooltipForNode(node: any): string;
37 |
38 | /**
39 | * Function: createBends
40 | *
41 | * Adds custom bends for the center of each segment.
42 | */
43 | start(x: number, y: number, index: number): void;
44 |
45 | /**
46 | * Function: createBends
47 | *
48 | * Adds custom bends for the center of each segment.
49 | */
50 | // createBends(): mxShape[];
51 | /**
52 | * Function: redraw
53 | *
54 | * Overridden to invoke before the redraw.
55 | */
56 | redraw(): void;
57 |
58 | /**
59 | * Function: redrawInnerBends
60 | *
61 | * Updates the position of the custom bends.
62 | */
63 | redrawInnerBends(p0: mxPoint, pe: mxPoint): void;
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/handler/mxElbowEdgeHandler.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | export class mxElbowEdgeHandler extends mxEdgeHandler {
3 | constructor(state: mxCellState);
4 |
5 | /**
6 | * Specifies if a double click on the middle handle should call
7 | * . Default is true.
8 | */
9 | flipEnabled: boolean;
10 |
11 | /**
12 | * Variable: doubleClickOrientationResource
13 | *
14 | * Specifies the resource key for the tooltip to be displayed on the single
15 | * control point for routed edges. If the resource for this key does not
16 | * exist then the value is used as the error message. Default is
17 | * 'doubleClickOrientation'.
18 | */
19 | doubleClickOrientationResource: string;
20 |
21 | /**
22 | * Function: createBends
23 | *
24 | * Overrides to create custom bends.
25 | */
26 | // createBends(): mxShape[];
27 |
28 | /**
29 | * Function: createVirtualBend
30 | *
31 | * Creates a virtual bend that supports double clicking and calls
32 | * .
33 | */
34 | createVirtualBend(dblClickHandler: (evt: Event) => void): mxRectangleShape;
35 |
36 | /**
37 | * Function: getCursorForBend
38 | *
39 | * Returns the cursor to be used for the bend.
40 | */
41 | getCursorForBend(): string;
42 |
43 | /**
44 | * Function: getTooltipForNode
45 | *
46 | * Returns the tooltip for the given node.
47 | */
48 | getTooltipForNode(node: Element): string;
49 |
50 | /**
51 | * Function: convertPoint
52 | *
53 | * Converts the given point in-place from screen to unscaled, untranslated
54 | * graph coordinates and applies the grid.
55 | *
56 | * Parameters:
57 | *
58 | * point - to be converted.
59 | * gridEnabled - Boolean that specifies if the grid should be applied.
60 | */
61 | convertPoint(point: mxPoint, gridEnabled: boolean): mxPoint;
62 |
63 | /**
64 | * Function: redrawInnerBends
65 | *
66 | * Updates and redraws the inner bends.
67 | *
68 | * Parameters:
69 | *
70 | * p0 - that represents the location of the first point.
71 | * pe - that represents the location of the last point.
72 | */
73 | redrawInnerBends(p0: mxPoint, pe: mxPoint): void;
74 | }
75 | }
76 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/handler/mxRubberband.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | /**
3 | * Event handler that selects rectangular regions.
4 | * This is not built-into [mxGraph].
5 | * To enable rubberband selection in a graph, use the following code.
6 | */
7 | export class mxRubberband {
8 | graph: mxGraph;
9 |
10 | /**
11 | * Optional fade out effect. Default is false.
12 | */
13 | fadeOut: boolean;
14 |
15 | /**
16 | * Specifies the default opacity to be used for the rubberband div. Default is 20.
17 | */
18 | defaultOpacity: number;
19 |
20 | /**
21 | * Constructs an event handler that selects rectangular regions in the graph using rubberband selection.
22 | */
23 | constructor(graph: mxGraph);
24 |
25 | /**
26 | * Creates the rubberband selection shape.
27 | */
28 | createShape(): HTMLElement;
29 |
30 | isEnabled(): boolean;
31 |
32 | start(x: number, y: number): void;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/io/README.md:
--------------------------------------------------------------------------------
1 | The following files do not contain open API
2 |
3 | - mxCellCodec.js
4 | - mxChildChangeCodec.js
5 | - mxDefaultKeyHandlerCodec.js
6 | - mxDefaultPopupMenuCodec.js
7 | - mxDefaultToolbarCodec.js
8 | - mxEditorCodec.js
9 | - mxGraphCodec.js
10 | - mxGraphViewCodec.js
11 | - mxModelCodec.js
12 | - mxRootChangeCodec.js
13 | - mxStylesheetCodec.js
14 | - mxTerminalChangeCodec.js
15 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/io/index.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 | ///
3 | ///
4 | ///
5 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/io/mxCodecRegistry.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | /**
3 | * Singleton class that acts as a global registry for codecs.
4 | *
5 | * ### Adding an :
6 | *
7 | * 1. Define a default codec with a new instance of the object to be handled.
8 | *
9 | * ```javascript
10 | * var codec = new mxObjectCodec(new mxGraphModel());
11 | * ```
12 | *
13 | * 2. Define the functions required for encoding and decoding objects.
14 | *
15 | * ```javascript
16 | * codec.encode = function(enc, obj) { ... }
17 | * codec.decode = function(dec, node, into) { ... }
18 | * ```
19 | *
20 | * 3. Register the codec in the .
21 | *
22 | * ```javascript
23 | * mxCodecRegistry.register(codec);
24 | * ```
25 | *
26 | * {@link mxObjectCodec.decode} may be used to either create a new
27 | * instance of an object or to configure an existing instance,
28 | * in which case the into argument points to the existing
29 | * object. In this case, we say the codec "configures" the
30 | * object.
31 | *
32 | * @class mxCodecRegistry
33 | */
34 | class mxCodecRegistry {
35 | /**
36 | * Maps from constructor names to codecs.
37 | * @static
38 | */
39 | static codecs: { [key: string]: mxObjectCodec };
40 |
41 | /**
42 | * Maps from classnames to codecnames.
43 | * @static
44 | */
45 | static aliases: { [key: string]: any };
46 |
47 | /**
48 | * Registers a new codec and associates the name of the template
49 | * constructor in the codec with the codec object.
50 | *
51 | * @static
52 | *
53 | * @param codec - {@link mxObjectCodec} to be registered.
54 | */
55 | static register(codec: mxObjectCodec): mxObjectCodec;
56 |
57 | /**
58 | * Adds an alias for mapping a classname to a codecname.
59 | * @static
60 | */
61 | static addAlias(classname: string, codecname: string): void;
62 |
63 | /**
64 | * Returns a codec that handles objects that are constructed
65 | * using the given constructor.
66 | *
67 | * @static
68 | *
69 | * @param ctor - JavaScript constructor function.
70 | */
71 | static getCodec(ctor: any): mxObjectCodec;
72 | }
73 | }
74 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/io/mxGenericChangeCodec.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | /**
3 | * Codec for {@link mxValueChange}s, {@link mxStyleChange}s, {@link mxGeometryChange}s,
4 | * {@link mxCollapseChange}s and {@link mxVisibleChange}s. This class is created
5 | * and registered dynamically at load time and used implicitely
6 | * via {@link mxCodec} and the {@link mxCodecRegistry}.
7 | *
8 | * ### Transient Fields:
9 | *
10 | * - model
11 | * - previous
12 | *
13 | * ### Reference Fields:
14 | *
15 | * - cell
16 | *
17 | * ----
18 | *
19 | * Factory function that creates a {@link mxObjectCodec} for
20 | * the specified change and fieldname.
21 | *
22 | * @param obj - An instance of the change object.
23 | * @param variable - The fieldname for the change data.
24 | *
25 | */
26 | export function mxGenericChangeCodec(obj: any, variable: string): mxObjectCodec;
27 | }
28 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/layout/hierarchical/index.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 | ///
3 | ///
4 | ///
5 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/layout/hierarchical/model/index.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 | ///
3 | ///
4 | ///
5 | ///
6 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/layout/hierarchical/model/mxGraphHierarchyEdge.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | /**
3 | * An abstraction of a hierarchical edge for the hierarchy layout
4 | *
5 | * @class mxGraphHierarchyEdge
6 | * @extends mxGraphAbstractHierarchyCell
7 | */
8 | class mxGraphHierarchyEdge extends mxGraphAbstractHierarchyCell {
9 | /**
10 | * Constructs a hierarchy edge
11 | * @param {Array} edges a list of real graph edges this abstraction represents
12 | */
13 | constructor(edges: Array);
14 |
15 | /**
16 | * The graph edge(s) this object represents. Parallel edges are all grouped
17 | * together within one hierarchy edge.
18 | */
19 | edges: Array;
20 |
21 | /**
22 | * The object identities of the wrapped cells
23 | */
24 | ids: Array;
25 |
26 | /**
27 | * The node this edge is sourced at
28 | */
29 | source: mxCell;
30 |
31 | /**
32 | * The node this edge targets
33 | */
34 | target: mxCell;
35 |
36 | /**
37 | * Whether or not the direction of this edge has been reversed
38 | * internally to create a DAG for the hierarchical layout
39 | */
40 | isReversed: boolean;
41 |
42 | /**
43 | * Inverts the direction of this internal edge(s)
44 | */
45 | invert(layer: number): void;
46 |
47 | /**
48 | * Returns the cells this cell connects to on the next layer up
49 | */
50 | getNextLayerConnectedCells(layer: number): mxCell;
51 |
52 | /**
53 | * Returns the cells this cell connects to on the next layer down
54 | */
55 | getPreviousLayerConnectedCells(layer: number): mxCell;
56 |
57 | /**
58 | * Returns true.
59 | */
60 | isEdge(): boolean;
61 |
62 | /**
63 | * Gets the value of temp for the specified layer
64 | */
65 | getGeneralPurposeVariable(layer: number): any;
66 |
67 | /**
68 | * Set the value of temp for the specified layer
69 | */
70 | setGeneralPurposeVariable(layer: number, value: any): void;
71 |
72 | /**
73 | * Gets the first core edge associated with this wrapper
74 | */
75 | getCoreCell(): mxCell;
76 | }
77 | }
78 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/layout/hierarchical/model/mxGraphHierarchyNode.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | /**
3 | * An abstraction of a hierarchical edge for the hierarchy layout
4 | *
5 | * @class mxGraphHierarchyNode
6 | */
7 | class mxGraphHierarchyNode extends mxGraphAbstractHierarchyCell {
8 | /**
9 | * Constructs an internal node to represent the specified real graph cell
10 | *
11 | * @param {mxCell} cell the real graph cell this node represents
12 | */
13 | constructor(cell: mxCell);
14 |
15 | /**
16 | * The graph cell this object represents.
17 | */
18 | cell: mxCell;
19 |
20 | /**
21 | * The object identity of the wrapped cell
22 | */
23 | id: string;
24 |
25 | /**
26 | * Collection of hierarchy edges that have this node as a target
27 | */
28 | connectsAsTarget: any;
29 |
30 | /**
31 | * Collection of hierarchy edges that have this node as a source
32 | */
33 | connectsAsSource: any;
34 |
35 | /**
36 | * Assigns a unique hashcode for each node. Used by the model dfs instead
37 | * of copying HashSets
38 | */
39 | hashCode: boolean;
40 |
41 | /**
42 | * Returns the integer value of the layer that this node resides in
43 | */
44 | getRankValue(layer: number): number;
45 |
46 | /**
47 | * Returns the cells this cell connects to on the next layer up
48 | */
49 | getNextLayerConnectedCells(layer: number): mxCell;
50 |
51 | /**
52 | * Returns the cells this cell connects to on the next layer down
53 | */
54 | getPreviousLayerConnectedCells(layer: number): mxCell;
55 |
56 | /**
57 | * Returns true.
58 | */
59 | isVertex(): boolean;
60 |
61 | /**
62 | * Gets the value of temp for the specified layer
63 | */
64 | getGeneralPurposeVariable(layer: number): any;
65 |
66 | /**
67 | * Set the value of temp for the specified layer
68 | */
69 | setGeneralPurposeVariable(layer: number, value: any): void;
70 |
71 | /**/
72 | isAncestor(otherNode: any): boolean;
73 |
74 | /**
75 | * Gets the core vertex associated with this wrapper
76 | */
77 | getCoreCell(): mxCell;
78 | }
79 | }
80 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/layout/hierarchical/stage/index.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 | ///
3 | ///
4 | ///
5 | ///
6 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/layout/hierarchical/stage/mxHierarchicalLayoutStage.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | /**
3 | * The specific layout interface for hierarchical layouts. It adds a
4 | * `run` method with a parameter for the hierarchical layout model
5 | * that is shared between the layout stages.
6 | */
7 | class mxHierarchicalLayoutStage {
8 | /**
9 | * Constructs a new hierarchical layout stage.
10 | */
11 | constructor();
12 |
13 | /**
14 | * Takes the graph detail and configuration information within the facade
15 | * and creates the resulting laid out graph within that facade for further
16 | * use.
17 | */
18 | execute(parent: mxCell): void;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/layout/hierarchical/stage/mxMinimumCycleRemover.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | /**
3 | * An implementation of the first stage of the Sugiyama layout. Straightforward
4 | * longest path calculation of layer assignment
5 | */
6 | class mxMinimumCycleRemover extends mxHierarchicalLayoutStage {
7 | /**
8 | * Creates a cycle remover for the given internal model.
9 | */
10 | constructor(layout: mxHierarchicalLayout);
11 |
12 | /**
13 | * Reference to the enclosing {@link mxHierarchicalLayout}.
14 | */
15 | layout: mxHierarchicalLayout;
16 |
17 | /**
18 | * Function: execute
19 | *
20 | * Takes the graph detail and configuration information within the facade
21 | * and creates the resulting laid out graph within that facade for further
22 | * use.
23 | */
24 | execute(parent: mxCell): void;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/layout/hierarchical/stage/mxSwimlaneOrdering.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | /**
3 | * An implementation of the first stage of the Sugiyama layout. Straightforward
4 | * longest path calculation of layer assignment
5 | */
6 | class mxSwimlaneOrdering extends mxHierarchicalLayoutStage {
7 | /**
8 | * Creates a cycle remover for the given internal model.
9 | */
10 | constructor(layout: mxHierarchicalLayout);
11 |
12 | /**
13 | * Reference to the enclosing {@link mxHierarchicalLayout}.
14 | */
15 | layout: mxHierarchicalLayout;
16 |
17 | /**
18 | * Takes the graph detail and configuration information within the facade
19 | * and creates the resulting laid out graph within that facade for further
20 | * use.
21 | */
22 | execute(parent: mxCell): any;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/layout/index.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 | ///
3 | ///
4 | ///
5 | ///
6 | ///
7 | ///
8 | ///
9 | ///
10 | ///
11 | ///
12 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/layout/mxCircleLayout.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | class mxCircleLayout {
3 | x0: number;
4 | y0: number;
5 | radius: number;
6 | moveCircle: boolean;
7 | disableEdgeStyle: boolean;
8 |
9 | constructor(graph: mxGraph, radius?: number);
10 |
11 | execute(parent: mxCell): void;
12 |
13 | getRadius(count: number, max: number): number;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/layout/mxCompositeLayout.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | class mxCompositeLayout extends mxGraphLayout {
3 | constructor(graph: mxGraph, layouts: Array, master: mxGraphLayout);
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/layout/mxEdgeLabelLayout.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | /**
3 | * Extends to implement an edge label layout. This layout
4 | * makes use of cell states, which means the graph must be validated in
5 | * a graph view (so that the label bounds are available) before this layout
6 | * can be executed.
7 | *
8 | * @example
9 | * ```javascript
10 | * var layout = new mxEdgeLabelLayout(graph);
11 | * layout.execute(graph.getDefaultParent());
12 | * ```
13 | */
14 | class mxEdgeLabelLayout extends mxGraphLayout {
15 | /**
16 | * Constructs a new edge label layout.
17 | *
18 | * @param graph {@link mxGraph} that contains the cells.
19 | */
20 | // TODO radius is declared in mxgraph-js 4.1.1 but is not used
21 | constructor(graph: mxGraph, radius?: number);
22 |
23 | /**
24 | * Implements {@link mxGraphLayout.execute}
25 | */
26 | execute(parent: mxCell): void;
27 |
28 | /**
29 | * Places the labels of the given edges.
30 | *
31 | * @param v vertexes
32 | * @param e edges
33 | */
34 | placeLabels(v: Array, e: Array): void;
35 |
36 | /**
37 | * Places the labels of the given edges.
38 | */
39 | avoid(edge: mxCell, vertex: mxCell): void;
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/layout/mxFastOrganicLayout.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | class mxFastOrganicLayout extends mxGraphLayout {
3 | /**
4 | * Specifies if the top left corner of the input cells should be the origin of the layout result. Default is true.
5 | */
6 | useInputOrigin: boolean;
7 |
8 | /**
9 | * Specifies if all edge points of traversed edges should be removed. Default is true.
10 | */
11 | resetEdges: boolean;
12 |
13 | /**
14 | * Specifies if the STYLE_NOEDGESTYLE flag should be set on edges that are modified by the result. Default is true.
15 | */
16 | disableEdgeStyle: boolean;
17 |
18 | /**
19 | * The force constant by which the attractive forces are divided and the replusive forces are multiple by the square of. The value equates to the average radius there is of free space around each node. Default is 50.
20 | */
21 | forceConstant: number;
22 |
23 | /**
24 | * Cache of ^2 for performance.
25 | */
26 | forceConstantSquared: any;
27 |
28 | /**
29 | * Minimal distance limit. Default is 2. Prevents of dividing by zero.
30 | */
31 | minDistanceLimit: number;
32 |
33 | /**
34 | * Cached version of minDistanceLimit squared.
35 | */
36 | minDistanceLimitSquared: number;
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/layout/mxParallelEdgeLayout.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | class mxParallelEdgeLayout extends mxGraphLayout {}
3 | }
4 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/layout/mxPartitionLayout.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | /**
3 | * Extends for partitioning the parent cell vertically or
4 | * horizontally by filling the complete area with the child cells. A horizontal
5 | * layout partitions the height of the given parent whereas a a non-horizontal
6 | * layout partitions the width. If the parent is a layer (that is, a child of
7 | * the root node), then the current graph size is partitioned. The children do
8 | * not need to be connected for this layout to work.
9 | *
10 | * Example:
11 | *
12 | * @example
13 | * ```javascript
14 | * var layout = new mxPartitionLayout(graph, true, 10, 20);
15 | * layout.execute(graph.getDefaultParent());
16 | * ```
17 | * @class
18 | */
19 | class mxPartitionLayout extends mxGraphLayout {
20 | /**
21 | * Constructs a new stack layout layout for the specified graph,
22 | * spacing, orientation and offset.
23 | * @param {mxGraph} graph
24 | * @param {boolean} [horizontal]
25 | * @param {number} [spacing]
26 | * @param {number} [border]
27 | * @memberof mxPartitionLayout
28 | */
29 | constructor(graph: mxGraph, horizontal?: boolean, spacing?: number, border?: number);
30 |
31 | /**
32 | * Boolean indicating the direction in which the space is partitioned.
33 | * Default is true.
34 | */
35 | horizontal: boolean;
36 |
37 | /**
38 | * Integer that specifies the absolute spacing in pixels between the
39 | * children. Default is 0.
40 | */
41 | spacing: number;
42 |
43 | /**
44 | * Integer that specifies the absolute inset in pixels for the parent that
45 | * contains the children. Default is 0.
46 | */
47 | border: number;
48 |
49 | /**
50 | * Boolean that specifies if vertices should be resized. Default is true.
51 | */
52 | resizeVertices: boolean;
53 |
54 | /**
55 | * Returns .
56 | */
57 | isHorizontal(): boolean;
58 |
59 | /**
60 | * Implements {@link mxGraphLayout.moveCell}.
61 | *
62 | * @param {mxCell} cell
63 | * @param {number} x
64 | * @param {number} y
65 | * @memberof mxPartitionLayout
66 | */
67 | moveCell(cell: mxCell, x: number, y: number): void;
68 |
69 | /**
70 | * Implements . All children where
71 | * returns false and returns true are modified.
72 | */
73 | execute(parent: mxCell): void;
74 | }
75 | }
76 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/model/index.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 | ///
3 | ///
4 | ///
5 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/model/mxCellPath.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | /**
3 | * Implements a mechanism for temporary cell Ids.
4 | * @class mxCellPath
5 | */
6 | class mxCellPath {
7 | /**
8 | * Defines the separator between the path components. Default is ".".
9 | */
10 | static PATH_SEPARATOR: string;
11 |
12 | /**
13 | * Creates the cell path for the given cell. The cell path is a
14 | * concatenation of the indices of all ancestors on the (finite) path to
15 | * the root, eg. "0.0.0.1".
16 | *
17 | * Parameters:
18 | *
19 | * cell - Cell whose path should be returned.
20 | */
21 | static create(cell: mxCell): string;
22 |
23 | /**
24 | * Returns the path for the parent of the cell represented by the given
25 | * path. Returns null if the given path has no parent.
26 | *
27 | * Parameters:
28 | *
29 | * path - Path whose parent path should be returned.
30 | */
31 | static getParentPath(path: string): string;
32 |
33 | /**
34 | * Returns the cell for the specified cell path using the given root as the
35 | * root of the path.
36 | *
37 | * Parameters:
38 | *
39 | * root - Root cell of the path to be resolved.
40 | * path - String that defines the path.
41 | */
42 | static resolve(root: string, path: string): string;
43 |
44 | /**
45 | * Compares the given cell paths and returns -1 if p1 is smaller, 0 if
46 | * p1 is equal and 1 if p1 is greater than p2.
47 | */
48 | static compare(p1: string, p2: string): number;
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/shape/index.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 | ///
3 | ///
4 | ///
5 | ///
6 | ///
7 | ///
8 | ///
9 | ///
10 | ///
11 | ///
12 | ///
13 | ///
14 | ///
15 | ///
16 | ///
17 | ///
18 | ///
19 | ///
20 | ///
21 | ///
22 | ///
23 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/shape/mxActor.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | /**
3 | * Extends {@link mxShape} to implement an actor shape. If a custom shape with one
4 | * filled area is needed, then this shape's {@link redrawPath} method should be overridden.
5 | *
6 | * This shape is registered under {@link mxConstants.SHAPE_ACTOR} in {@link mxCellRenderer}.
7 | *
8 | * @example
9 | * ```javascript
10 | * function SampleShape() { }
11 | *
12 | * SampleShape.prototype = new mxActor();
13 | * SampleShape.prototype.constructor = vsAseShape;
14 | *
15 | * mxCellRenderer.registerShape('sample', SampleShape);
16 | * SampleShape.prototype.redrawPath = function(path, x, y, w, h)
17 | * {
18 | * path.moveTo(0, 0);
19 | * path.lineTo(w, h);
20 | * // ...
21 | * path.close();
22 | * }
23 | * ```
24 | */
25 | class mxActor extends mxShape {
26 | /**
27 | * Constructs a new actor shape.
28 | *
29 | * @param bounds {@link mxRectangle} that defines the bounds. This is stored in {@link mxShape.bounds}.
30 | * @param fill String that defines the fill color. This is stored in {@link mxShape.fill}.
31 | * @param stroke String that defines the stroke color. This is stored in {@link mxShape.stroke}.
32 | * @param strokewidth Optional integer that defines the stroke width. Default is 1. This is stored in {@link mxShape.strokewidth}.
33 | */
34 | constructor(bounds: mxRectangle, fill: string, stroke: string, strokewidth?: number);
35 |
36 | /**
37 | * Redirects to redrawPath for subclasses to work.
38 | */
39 | paintVertexShape(c: mxAbstractCanvas2D, x: number, y: number, w: number, h: number): void;
40 |
41 | /**
42 | * Draws the path for this shape.
43 | */
44 | redrawPath(c: mxAbstractCanvas2D, x: number, y: number, w: number, h: number): void;
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/shape/mxArrow.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | /**
3 | * Extends {@link mxShape} to implement an arrow shape. The shape is used to represent edges, not vertices.
4 | *
5 | * This shape is registered under {@link mxConstants.SHAPE_ARROW} in {@link mxCellRenderer}.
6 | */
7 | class mxArrow extends mxShape {
8 | /**
9 | * Constructs a new arrow shape.
10 | *
11 | * @param points Array of {@link mxPoint} that define the points. This is stored in {@link mxShape.points}.
12 | * @param fill String that defines the fill color. This is stored in {@link mxShape.fill}.
13 | * @param stroke String that defines the stroke color. This is stored in {@link mxShape.stroke}.
14 | * @param strokewidth Optional integer that defines the stroke width. Default is 1. This is stored in {@link mxShape.strokewidth}.
15 | * @param arrowWidth Optional integer that defines the arrow width. Default is {@link mxConstants.ARROW_WIDTH}. This is stored in {@link mxShape.arrowWidth}.
16 | * @param spacing Optional integer that defines the spacing between the arrow shape and its endpoints. Default is {@link mxConstants.ARROW_SPACING}. This is stored in {@link mxShape.spacing}.
17 | * @param endSize Optional integer that defines the size of the arrowhead. Default is {@link mxConstants.ARROW_SIZE}. This is stored in {@link mxShape.endSize}.
18 | */
19 | constructor(
20 | points: mxPoint[],
21 | fill: string,
22 | stroke: string,
23 | strokewidth?: number,
24 | arrowWidth?: number,
25 | spacing?: number,
26 | endSize?: number
27 | );
28 |
29 | /**
30 | * Augments the bounding box with the edge width and markers.
31 | */
32 | augmentBoundingBox(bbox: mxRectangle): void;
33 |
34 | /**
35 | * Paints the line shape.
36 | */
37 | paintEdgeShape(c: mxAbstractCanvas2D, pts: mxPoint[]): void;
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/shape/mxCloud.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | /**
3 | * Extends {@link mxActor} to implement a cloud shape.
4 | *
5 | * This shape is registered under {@link mxConstants.SHAPE_CLOUD} in {@link mxCellRenderer}.
6 | */
7 | class mxCloud extends mxActor {
8 | /**
9 | * Constructs a new actor shape.
10 | *
11 | * @param bounds {@link mxRectangle} that defines the bounds. This is stored in {@link mxShape.bounds}.
12 | * @param fill String that defines the fill color. This is stored in {@link mxShape.fill}.
13 | * @param stroke String that defines the stroke color. This is stored in {@link mxShape.stroke}.
14 | * @param strokewidth Optional integer that defines the stroke width. Default is 1. This is stored in {@link mxShape.strokewidth}.
15 | */
16 | constructor(bounds: mxRectangle, fill: string, stroke: string, strokewidth?: number);
17 |
18 | /**
19 | * Draws the path for this shape.
20 | */
21 | redrawPath(c: mxAbstractCanvas2D, x: number, y: number, w: number, h: number): void;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/shape/mxConnector.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | /**
3 | * Extends {@link mxShape} to implement a connector shape.
4 | * The connector shape allows for arrow heads on either side.
5 | * This shape is registered under {@link mxConstants.SHAPE_CONNECTOR} in {@link mxCellRenderer}.
6 | *
7 | * @class mxConnector
8 | * @extends {mxPolyline}
9 | */
10 | class mxConnector extends mxPolyline {
11 | /**
12 | * Constructs a new connector shape.
13 | *
14 | * @param {mxPoint[]} points - Array of {@link mxPoints} that define the points. This is stored in {@link mxShape.points}.
15 | * @param {string} stroke - String that defines the stroke color. This is stored in . Default is ‘black’.
16 | * @param {number} [strokewidth] - Optional integer that defines the stroke width. Default is 1. This is stored in .
17 | */
18 | constructor(points: mxPoint[], stroke: string, strokewidth?: number);
19 |
20 | /**
21 | * Updates the for this shape using
22 | * and augmentBoundingBox and stores the result in .
23 | */
24 | updateBoundingBox(): void;
25 |
26 | /**
27 | * Paints the line shape.
28 | */
29 | paintEdgeShape(c: mxAbstractCanvas2D, pts: mxPoint[]): void;
30 |
31 | /**
32 | * Prepares the marker by adding offsets in pts and returning a function to paint the marker.
33 | */
34 | createMarker(c: mxAbstractCanvas2D, pts: mxPoint[], source: boolean): () => void;
35 |
36 | /**
37 | * Augments the bounding box with the strokewidth and shadow offsets.
38 | */
39 | augmentBoundingBox(bbox: mxRectangle): void;
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/shape/mxCylinder.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | /**
3 | * Extends {@link mxShape} to implement an cylinder shape. If a custom shape with one filled area and an overlay path is
4 | * needed, then this shape's {@link redrawPath} should be overridden.
5 | *
6 | * This shape is registered under {@link mxConstants.SHAPE_CYLINDER} in {@link mxCellRenderer}.
7 | */
8 | class mxCylinder extends mxShape {
9 | /**
10 | * Constructs a new cylinder shape.
11 | *
12 | * @param bounds {@link mxRectangle} that defines the bounds. This is stored in {@link mxShape.bounds}.
13 | * @param fill String that defines the fill color. This is stored in {@link mxShape.fill}.
14 | * @param stroke String that defines the stroke color. This is stored in {@link mxShape.stroke}.
15 | * @param strokewidth Optional integer that defines the stroke width. Default is 1. This is stored in {@link mxShape.strokewidth}.
16 | */
17 | constructor(bounds: mxRectangle, fill: string, stroke: string, strokewidth?: number);
18 |
19 | /**
20 | * Defines the maximum height of the top and bottom part of the cylinder shape.
21 | */
22 | maxHeight: number;
23 |
24 | /**
25 | * Sets stroke tolerance to 0 for SVG.
26 | */
27 | svgStrokeTolerance: number;
28 |
29 | /**
30 | * Redirects to redrawPath for subclasses to work.
31 | */
32 | paintVertexShape(c: mxAbstractCanvas2D, x: number, y: number, w: number, h: number): void;
33 |
34 | getCylinderSize(x: number, y: number, w: number, h: number): number;
35 |
36 | /**
37 | * Draws the path for this shape.
38 | */
39 | redrawPath(c: mxAbstractCanvas2D, x: number, y: number, w: number, h: number, isForeground: boolean): void;
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/shape/mxDoubleEllipse.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | /**
3 | * Extends {@link mxShape} to implement a double ellipse shape.
4 | *
5 | * This shape is registered under {@link mxConstants.SHAPE_DOUBLE_ELLIPSE} in {@link mxCellRenderer}.
6 | *
7 | * Use the following override to only fill the inner ellipse in this shape:
8 | * @example
9 | * ```javascript
10 | * mxDoubleEllipse.prototype.paintVertexShape = function(c, x, y, w, h)
11 | * {
12 | * c.ellipse(x, y, w, h);
13 | * c.stroke();
14 | *
15 | * var inset = mxUtils.getValue(this.style, mxConstants.STYLE_MARGIN, Math.min(3 + this.strokewidth, Math.min(w / 5, h / 5)));
16 | * x += inset;
17 | * y += inset;
18 | * w -= 2 * inset;
19 | * h -= 2 * inset;
20 | *
21 | * if (w > 0 && h > 0)
22 | * {
23 | * c.ellipse(x, y, w, h);
24 | * }
25 | *
26 | * c.fillAndStroke();
27 | * };
28 | * ```
29 | */
30 | class mxDoubleEllipse extends mxShape {
31 | /**
32 | * Constructs a new ellipse shape.
33 | *
34 | * @param bounds {@link mxRectangle} that defines the bounds. This is stored in {@link mxShape.bounds}.
35 | * @param fill String that defines the fill color. This is stored in {@link mxShape.fill}.
36 | * @param stroke String that defines the stroke color. This is stored in {@link mxShape.stroke}.
37 | * @param strokewidth Optional integer that defines the stroke width. Default is 1. This is stored in {@link mxShape.strokewidth}.
38 | */
39 | constructor(bounds: mxRectangle, fill: string, stroke: string, strokewidth?: number);
40 |
41 | /**
42 | * Scale for improving the precision of VML rendering.
43 | * @default `10`
44 | */
45 | mxDoubleEllipse: number;
46 |
47 | /**
48 | * Paints the background.
49 | */
50 | paintBackground(c: mxAbstractCanvas2D, x: number, y: number, w: number, h: number): void;
51 |
52 | /**
53 | * Paints the foreground.
54 | */
55 | paintForeground(c: mxAbstractCanvas2D, x: number, y: number, w: number, h: number): void;
56 |
57 | /**
58 | * @returns the bounds for the label.
59 | */
60 | getLabelBounds(rect: mxRectangle): mxRectangle;
61 | }
62 | }
63 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/shape/mxEllipse.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | /**
3 | * Extends mxShape to implement an ellipse shape.
4 | * This shape is registered under mxConstants.SHAPE_ELLIPSE in mxCellRenderer.
5 | */
6 | class mxEllipse extends mxShape {
7 | /**
8 | *
9 | * @param bounds mxRectangle that defines the bounds. This is stored in mxShape.bounds.
10 | * @param fill String that defines the fill color. This is stored in .
11 | * @param stroke String that defines the stroke color. This is stored in .
12 | * @param strokewidth Optional integer that defines the stroke width. Default is 1. This is stored in .
13 | */
14 | constructor(bounds: mxRectangle, fill: string, stroke: string, strokewidth?: number);
15 |
16 | /**
17 | * Paints the ellipse shape.
18 | */
19 | paintVertexShape(c: mxAbstractCanvas2D, x: number, y: number, w: number, h: number): void;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/shape/mxHexagon.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | /**
3 | * Implementation of the hexagon shape.
4 | * @class mxHexagon
5 | * @extends {mxActor}
6 | */
7 | class mxHexagon extends mxActor {
8 | /**
9 | * Constructs a new hexagon shape.
10 | */
11 | constructor();
12 |
13 | /**
14 | * Draws the path for this shape.
15 | * @param {mxAbstractCanvas2D} c
16 | * @param {number} x
17 | * @param {number} y
18 | * @param {number} w
19 | * @param {number} h
20 | */
21 | redrawPath(c: mxAbstractCanvas2D, x: number, y: number, w: number, h: number): void;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/shape/mxLine.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | /**
3 | * Extends {@link mxShape} to implement a horizontal line shape.
4 | * This shape is registered under {@link mxConstants.SHAPE_LINE} in {@link mxCellRenderer}.
5 | * @class mxLine
6 | * @extends {mxShape}
7 | */
8 | class mxLine extends mxShape {
9 | /**
10 | * Constructs a new line shape.
11 | * @param {mxRectangle} bounds {@link mxRectangle} that defines the bounds. This is stored in {@link mxShape.bounds}.
12 | * @param {string} stroke String that defines the stroke color. Default is ‘black’. This is stored in .
13 | * @param {number} strokewidth Optional integer that defines the stroke width. Default is 1. This is stored in .
14 | */
15 | constructor(bounds: mxRectangle, stroke: string, strokewidth: number);
16 |
17 | /**
18 | * Redirects to redrawPath for subclasses to work.
19 | * @param {mxAbstractCanvas2D} c
20 | * @param {number} x
21 | * @param {number} y
22 | * @param {number} w
23 | * @param {number} h
24 | */
25 | paintVertexShape(c: mxAbstractCanvas2D, x: number, y: number, w: number, h: number): void;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/shape/mxMarker.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | /**
3 | * A static class that implements all markers for VML and SVG using a registry.
4 | * NOTE: The signatures in this class will change.
5 | * @class mxMarker
6 | */
7 | class mxMarker {
8 | /**
9 | * Maps from markers names to functions to paint the markers.
10 | *
11 | * Mapping: the attribute name on the object is the marker type, the associated value is the function to paint the marker
12 | */
13 | static markers: object;
14 |
15 | /**
16 | * Adds a factory method that updates a given endpoint and returns a
17 | * function to paint the marker onto the given canvas.
18 | */
19 | static addMarker(
20 | type: string,
21 | funct: (
22 | canvas: mxAbstractCanvas2D,
23 | shape: any,
24 | type: string,
25 | pe: mxPoint,
26 | unitX: number,
27 | unitY: number,
28 | size: number,
29 | source: any,
30 | sw: number,
31 | filled: boolean
32 | ) => () => void
33 | ): void;
34 |
35 | /**
36 | * Returns a function to paint the given marker.
37 | */
38 | static createMarker(
39 | canvas: mxAbstractCanvas2D,
40 | shape: any,
41 | type: string,
42 | pe: mxPoint,
43 | unitX: number,
44 | unitY: number,
45 | size: number,
46 | source: any,
47 | sw: number,
48 | filled: boolean
49 | ): () => void;
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/shape/mxPolyline.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | class mxPolyline extends mxShape {
3 | /**
4 | * Constructs a new polyline shape.
5 | * @param {Array} points Array of mxPoints that define the points. This is stored in mxShape.points.
6 | * @param {string} stroke String that defines the stroke color. Default is ‘black’. This is stored in .
7 | * @param {number} [strokewidth] Optional integer that defines the stroke width. Default is 1. This is stored in .
8 | */
9 | constructor(points: Array, stroke: string, strokewidth?: number);
10 |
11 | /**
12 | * Returns 0.
13 | */
14 | getRotation(): number;
15 |
16 | /**
17 | * Returns 0.
18 | */
19 | getShapeRotation(): number;
20 |
21 | /**
22 | * Returns false.
23 | */
24 | isPaintBoundsInverted(): boolean;
25 |
26 | /**
27 | * Paints the line shape.
28 | */
29 | paintEdgeShape(c: mxAbstractCanvas2D, pts: Array): void;
30 |
31 | /**
32 | * Paints the line shape.
33 | */
34 | paintLine(c: mxAbstractCanvas2D, pts: Array, rounded?: boolean): void;
35 |
36 | /**
37 | * Paints the line shape.
38 | */
39 | paintCurvedLine(c: mxAbstractCanvas2D, pts: Array): void;
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/shape/mxRectangleShape.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | /**
3 | * Extends {@link mxShape} to implement a rectangle shape.
4 | * This shape is registered under {@link mxConstants.SHAPE_RECTANGLE} in {@link mxCellRenderer}.
5 | * @class mxRectangleShape
6 | * @extends {mxShape}
7 | */
8 | class mxRectangleShape extends mxShape {
9 | /**
10 | * @param {mxRectangle} bounds
11 | * @param {string} fill
12 | * @param {string} stroke
13 | * @param {number} [strokewidth]
14 | */
15 | constructor(bounds: mxRectangle, fill: string, stroke: string, strokewidth?: number);
16 |
17 | /**
18 | * Returns true for non-rounded, non-rotated shapes with no glass gradient.
19 | */
20 | isHtmlAllowed(): boolean;
21 |
22 | /**
23 | * Generic background painting implementation.
24 | */
25 | paintBackground(c: mxAbstractCanvas2D, x: number, y: number, w: number, h: number): void;
26 |
27 | /**
28 | * Adds roundable support.
29 | */
30 | isRoundable(): boolean;
31 | isRoundable(c?: mxAbstractCanvas2D, x?: number, y?: number, w?: number, h?: number): boolean;
32 |
33 | /**
34 | * Generic background painting implementation.
35 | */
36 | paintForeground(c: mxAbstractCanvas2D, x: number, y: number, w: number, h: number): void;
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/shape/mxRhombus.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | /**
3 | * Extends {@link mxShape} to implement a rhombus (aka diamond) shape.
4 | * This shape is registered under {@link mxConstants.SHAPE_RHOMBUS} in {@link mxCellRenderer}.
5 | * @class mxRhombus
6 | * @extends {mxShape}
7 | */
8 | class mxRhombus extends mxShape {
9 | /**
10 | * @param {mxRectangle} bounds
11 | * @param {string} fill
12 | * @param {string} stroke
13 | * @param {number} [strokewidth]
14 | */
15 | constructor(bounds: mxRectangle, fill: string, stroke: string, strokewidth?: number);
16 |
17 | /**
18 | * Adds roundable support.
19 | */
20 | isRoundable(): boolean;
21 |
22 | /**
23 | * Generic painting implementation.
24 | * @param {mxAbstractCanvas2D} c
25 | * @param {number} x
26 | * @param {number} y
27 | * @param {number} w
28 | * @param {number} h
29 | */
30 | paintVertexShape(c: mxAbstractCanvas2D, x: number, y: number, w: number, h: number): void;
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/shape/mxStencilRegistry.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | /**
3 | * A singleton class that provides a registry for stencils and the methods
4 | * for painting those stencils onto a canvas or into a DOM.
5 | *
6 | * @class mxStencilRegistry
7 | */
8 | class mxStencilRegistry {
9 | static stencils: { [key: string]: mxStencil };
10 |
11 | /**
12 | * Adds the given .
13 | * @static
14 | * @param {string} name
15 | * @param {mxStencil} stencil
16 | */
17 | static addStencil(name: string, stencil: mxStencil): void;
18 |
19 | /**
20 | * Returns the for the given name.
21 | * @static
22 | * @param {string} name
23 | * @returns {mxStencil}
24 | */
25 | static getStencil(name: string): mxStencil;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/shape/mxTriangle.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | /**
3 | * Implementation of the triangle shape.
4 | * @class mxTriangle
5 | * @extends {mxActor}
6 | */
7 | class mxTriangle extends mxActor {
8 | constructor();
9 |
10 | /**
11 | * Adds roundable support.
12 | * @returns {boolean}
13 | */
14 | isRoundable(): boolean;
15 |
16 | /**
17 | * Draws the path for this shape.
18 | * @param {mxAbstractCanvas2D} c
19 | * @param {number} x
20 | * @param {number} y
21 | * @param {number} w
22 | * @param {number} h
23 | */
24 | redrawPath(c: mxAbstractCanvas2D, x: number, y: number, w: number, h: number): void;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/util/index.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 | ///
3 | ///
4 | ///
5 | ///
6 | ///
7 | ///
8 | ///
9 | ///
10 | ///
11 | ///
12 | ///
13 | ///
14 | ///
15 | ///
16 | ///
17 | ///
18 | ///
19 | ///
20 | ///
21 | ///
22 | ///
23 | ///
24 | ///
25 | ///
26 | ///
27 | ///
28 | ///
29 | ///
30 | ///
31 | ///
32 | ///
33 | ///
34 | ///
35 | ///
36 | ///
37 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/util/mxAnimation.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | /**
3 | * Implements a basic animation in JavaScript.
4 | *
5 | * @class mxAnimation
6 | * @extends {mxEventSource}
7 | */
8 | class mxAnimation extends mxEventSource {
9 | /**
10 | * Creates an instance of mxAnimation.
11 | * @param {number} delay
12 | * @memberof mxAnimation
13 | */
14 | constructor(delay: number);
15 |
16 | /**
17 | * Specifies the delay between the animation steps. Defaul is 30ms.
18 | */
19 | delay: number;
20 |
21 | /**
22 | * Reference to the thread while the animation is running.
23 | */
24 | thread: number;
25 |
26 | /**
27 | * Returns true if the animation is running.
28 | */
29 | isRunning(): boolean;
30 |
31 | /**
32 | * Starts the animation by repeatedly invoking updateAnimation.
33 | */
34 | startAnimation(): void;
35 |
36 | /**
37 | * Hook for subclassers to implement the animation. Invoke stopAnimation
38 | * when finished, startAnimation to resume. This is called whenever the
39 | * timer fires and fires an mxEvent.EXECUTE event with no properties.
40 | */
41 | updateAnimation(): void;
42 |
43 | /**
44 | * Stops the animation by deleting the timer and fires an .
45 | */
46 | stopAnimation(): void;
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/util/mxDictionary.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | class mxDictionary {
3 | constructor();
4 |
5 | /**
6 | * Stores the (key, value) pairs in this dictionary.
7 | */
8 | // the key is always a string
9 | // https://github.com/jgraph/mxgraph/blob/v4.2.2/javascript/src/js/util/mxDictionary.js#L44: call mxObjectIdentity.get(key)
10 | // https://github.com/jgraph/mxgraph/blob/v4.2.2/javascript/src/js/util/mxObjectIdentity.js#L36: always returns a string
11 | map: { [key: string]: T };
12 |
13 | /**
14 | * Clears the dictionary.
15 | */
16 | clear(): void;
17 |
18 | /**
19 | * Returns the value for the given key.
20 | */
21 | get(key: any): T;
22 |
23 | /**
24 | * Stores the value under the given key and returns the previous
25 | * value for that key.
26 | */
27 | put(key: any, value: T): T;
28 |
29 | /**
30 | * Removes the value for the given key and returns the value that
31 | * has been removed.
32 | */
33 | remove(key: any): T;
34 |
35 | /**
36 | * Returns all keys as an array.
37 | */
38 | getKeys(): any[];
39 |
40 | /**
41 | * Returns all values as an array.
42 | */
43 | getValues(): T[];
44 |
45 | /**
46 | * Visits all entries in the dictionary using the given function with the
47 | * following signature: function(key, value) where key is a string and
48 | * value is an object.
49 | *
50 | * @param visitor A function that takes the key and value as arguments.
51 | */
52 | visit(visitor: (key: string, value: T) => void): void;
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/util/mxDivResizer.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | /**
3 | * Maintains the size of a div element in Internet Explorer. This is a
4 | * workaround for the right and bottom style being ignored in IE.
5 | *
6 | * If you need a div to cover the scrollwidth and -height of a document,
7 | * then you can use this class as follows:
8 | *
9 | * @example
10 | * ```javascript
11 | * var resizer = new mxDivResizer(background);
12 | * resizer.getDocumentHeight()
13 | * {
14 | * return document.body.scrollHeight;
15 | * }
16 | * resizer.getDocumentWidth()
17 | * {
18 | * return document.body.scrollWidth;
19 | * }
20 | * resizer.resize();
21 | * ```
22 | *
23 | * @class mxDivResizer
24 | */
25 | class mxDivResizer {
26 | /**
27 | *
28 | * Constructs an object that maintains the size of a div
29 | * element when the window is being resized. This is only
30 | * required for Internet Explorer as it ignores the respective
31 | * stylesheet information for DIV elements.
32 | *
33 | * @param div - Reference to the DOM node whose size should be maintained.
34 | * @param container - Optional Container that contains the div. Default is the
35 | * window.
36 | */
37 | constructor(div: HTMLElement, container?: HTMLElement | Window);
38 |
39 | /**
40 | * Boolean specifying if the width should be updated.
41 | */
42 | resizeWidth: boolean;
43 |
44 | /**
45 | * Boolean specifying if the height should be updated.
46 | */
47 | resizeHeight: boolean;
48 |
49 | /**
50 | * Boolean specifying if the width should be updated.
51 | */
52 | handlingResize: boolean;
53 |
54 | /**
55 | * Updates the style of the DIV after the window has been resized.
56 | */
57 | resize(): void;
58 |
59 | /**
60 | * Hook for subclassers to return the width of the document (without
61 | * scrollbars).
62 | */
63 | getDocumentWidth(): number;
64 |
65 | /**
66 | * Hook for subclassers to return the height of the document (without
67 | * scrollbars).
68 | */
69 | getDocumentHeight(): number;
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/util/mxEffects.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | /**
3 | * Provides animation effects.
4 | *
5 | * @class mxEffects
6 | */
7 | class mxEffects {
8 | /**
9 | * Asynchronous animated move operation. See also: .
10 | *
11 | * @example
12 | * ```javascript
13 | * graph.model.addListener(mxEvent.CHANGE, function(sender, evt)
14 | * {
15 | * var changes = evt.getProperty('edit').changes;
16 | *
17 | * if (changes.length < 10)
18 | * {
19 | * mxEffects.animateChanges(graph, changes);
20 | * }
21 | * });
22 | * ```
23 | *
24 | * @param graph - that received the changes.
25 | * @param changes - Array of changes to be animated.
26 | * @param done - Optional function argument that is invoked after the
27 | * last step of the animation.
28 | */
29 | static animateChanges(graph: mxGraph, changes: Array, done?: Function): void;
30 |
31 | /**
32 | * Sets the opacity on the given cell and its descendants.
33 | *
34 | * @param graph - that contains the cells.
35 | * @param cell - to set the opacity for.
36 | * @param opacity - New value for the opacity in %.
37 | */
38 | static cascadeOpacity(graph: mxGraph, cell: mxCell, opacity: number): void;
39 |
40 | /**
41 | * Asynchronous fade-out operation.
42 | */
43 | static fadeOut(
44 | node: HTMLElement,
45 | from?: number,
46 | remove?: boolean,
47 | step?: number,
48 | delay?: number,
49 | isEnabled?: boolean
50 | ): void;
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/util/mxEventObject.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | class mxEventObject {
3 | constructor(name: string, ...args: any[]);
4 |
5 | /**
6 | * Variable: name
7 | *
8 | * Holds the name.
9 | */
10 | name: string;
11 |
12 | /**
13 | * Variable: properties
14 | *
15 | * Holds the properties as an associative array.
16 | */
17 | properties: any[];
18 |
19 | /**
20 | * Variable: consumed
21 | *
22 | * Holds the consumed state. Default is false.
23 | */
24 | consumed: boolean;
25 |
26 | /**
27 | * Function: getName
28 | *
29 | * Returns .
30 | */
31 | getName(): string;
32 |
33 | /**
34 | * Function: getProperties
35 | *
36 | * Returns .
37 | */
38 | getProperties(): any[];
39 |
40 | /**
41 | * Function: getProperty
42 | *
43 | * Returns the property for the given key.
44 | */
45 | getProperty(key: string): any;
46 |
47 | /**
48 | * Function: isConsumed
49 | *
50 | * Returns true if the event has been consumed.
51 | */
52 | isConsumed(): boolean;
53 |
54 | /**
55 | * Function: consume
56 | *
57 | * Consumes the event.
58 | */
59 | consume(): void;
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/util/mxForm.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | type FormFieldType = HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement;
3 | /**
4 | * A simple class for creating HTML forms.
5 | *
6 | * @class mxForm
7 | */
8 | class mxForm {
9 | /**
10 | * Creates a HTML table using the specified classname.
11 | * @constructor
12 | */
13 | constructor(className: string);
14 |
15 | /**
16 | * Holds the DOM node that represents the table.
17 | */
18 | table: HTMLTableElement;
19 |
20 | /**
21 | * Holds the DOM node that represents the tbody (table body). New rows
22 | * can be added to this object using DOM API.
23 | */
24 | body: boolean;
25 |
26 | /**
27 | * Returns the table that contains this form.
28 | */
29 | getTable(): HTMLTableElement;
30 |
31 | /**
32 | * Helper method to add an OK and Cancel button using the respective
33 | * functions.
34 | */
35 | addButtons(okFunct: Function, cancelFunct: Function): void;
36 |
37 | /**
38 | * Adds an input for the given name, type and value and returns it.
39 | */
40 | addText(name: string, value: any, type: string): HTMLInputElement;
41 |
42 | /**
43 | * Adds a checkbox for the given name and value and returns the textfield.
44 | */
45 | addCheckbox(name: string, value: boolean): HTMLInputElement;
46 |
47 | /**
48 | * Adds a textarea for the given name and value and returns the textarea.
49 | */
50 | addTextarea(name: string, value: string, rows: number): HTMLTextAreaElement;
51 |
52 | /**
53 | * Adds a combo for the given name and returns the combo.
54 | */
55 | addCombo(name: string, isMultiSelect: boolean, size?: number): HTMLSelectElement;
56 |
57 | /**
58 | * Adds an option for the given label to the specified combo.
59 | */
60 | addOption(combo: HTMLElement, label: string, value: any, isSelected?: boolean): void;
61 |
62 | /**
63 | * Adds a new row with the name and the input field in two columns and
64 | * returns the given input.
65 | */
66 | addField(name: string, input: FormFieldType): FormFieldType;
67 | }
68 | }
69 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/util/mxImage.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | class mxImage {
3 | constructor(src: string, width: number, height: number);
4 |
5 | /**
6 | * Variable: src
7 | *
8 | * String that specifies the URL of the image.
9 | */
10 | src: string;
11 |
12 | /**
13 | * Variable: width
14 | *
15 | * Integer that specifies the width of the image.
16 | */
17 | width: number;
18 |
19 | /**
20 | * Variable: height
21 | *
22 | * Integer that specifies the height of the image.
23 | */
24 | height: number;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/util/mxImageBundle.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | class mxImageBundle {
3 | constructor(alt: boolean);
4 |
5 | /**
6 | * Variable: images
7 | *
8 | * Maps from keys to images.
9 | */
10 | images: { [key: string]: { value: string; fallback: Function } };
11 |
12 | /**
13 | * Variable: alt
14 | *
15 | * Specifies if the fallback representation should be returned.
16 | */
17 | alt: boolean;
18 |
19 | /**
20 | * Function: putImage
21 | *
22 | * Adds the specified entry to the map. The entry is an object with a value and
23 | * fallback property as specified in the arguments.
24 | */
25 | putImage(key: string, value: string, fallback: Function): void;
26 |
27 | /**
28 | * Function: getImage
29 | *
30 | * Returns the value for the given key. This returns the value
31 | * or fallback, depending on . The fallback is returned if
32 | * is true, the value is returned otherwise.
33 | */
34 | getImage(key: string): string;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/util/mxLog.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | export class mxLog {
3 | /**
4 | * Specifies the name of the console window.
5 | */
6 | consoleName: 'Console';
7 |
8 | /**
9 | * Specified if the output for enter and leave should be visible in the console.
10 | */
11 | TRACE: boolean;
12 | /**
13 | * Specifies if the output for debug should be visible in the console.
14 | */
15 | DEBUG: boolean;
16 |
17 | /**
18 | * Specifies if the output for warn should be visible in the console.
19 | */
20 | WARN: boolean;
21 |
22 | /**
23 | * Buffer for pre-initialized content.
24 | */
25 | buffer: string;
26 |
27 | /**
28 | * Initializes the DOM node for the console.
29 | * This requires document.body to point to a non-null value.
30 | * This is called from within setVisible if the log has not yet been initialized.
31 | */
32 | static init(): void;
33 |
34 | /**
35 | * Writes the current navigator information to the console.
36 | */
37 | static info(): void;
38 |
39 | /**
40 | * Adds a button to the console using the given label and function.
41 | */
42 | static addButton(lab: string, funct: Function): void;
43 |
44 | /**
45 | * Returns true if the console is visible.
46 | */
47 | static isVisible(): boolean;
48 |
49 | /**
50 | * Shows the console.
51 | */
52 | static show(): void;
53 |
54 | /**
55 | * Shows or hides the console.
56 | */
57 | static setVisible(visible: boolean): void;
58 |
59 | /**
60 | * Writes the specified string to the console if TRACE is true and returns the current time in milliseconds.
61 | */
62 | static enter(string: string): number;
63 |
64 | /**
65 | * Adds all arguments to the console if DEBUG is enabled.
66 | */
67 | static debug(message: string): void;
68 |
69 | /**
70 | * Adds all arguments to the console if WARN is enabled.
71 | */
72 | static warn(message: string): void;
73 |
74 | /**
75 | * Adds the specified strings to the console.
76 | */
77 | static write(message: string): void;
78 |
79 | /**
80 | * Adds the specified strings to the console, appending a linefeed at the end of each string.
81 | */
82 | static writeln(message: string): void;
83 | }
84 | }
85 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/util/mxMorphing.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | class mxMorphing extends mxEventSource {
3 | steps: number;
4 | step: number;
5 | ease: number;
6 | delay: number;
7 |
8 | constructor(graph: mxGraph, steps?: number, ease?: number, delay?: number);
9 |
10 | startAnimation(): void;
11 | updateAnimation(): void;
12 | show(move: any): void;
13 | animateCell(cell: mxCell, move: any, recurse: any): void;
14 | stopRecursion(state: any, delta: any): boolean;
15 | getDelta(state: any): any;
16 | getOriginForCell(cell: mxCell): any;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/util/mxObjectIdentity.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | /**
3 | * @class
4 | *
5 | * Identity for JavaScript objects and functions. This is implemented using
6 | * a simple incrementing counter which is stored in each object under
7 | * {@link FIELD_NAME}.
8 | *
9 | * The identity for an object does not change during its lifecycle.
10 | */
11 | class mxObjectIdentity {
12 | /**
13 | * Name of the field to be used to store the object ID. Default is
14 | * mxObjectId
.
15 | */
16 | static FIELD_NAME: string;
17 |
18 | /**
19 | * Current counter.
20 | */
21 | static counter: number;
22 |
23 | /**
24 | * Returns the ID for the given object or function or null if no object
25 | * is specified.
26 | */
27 | static get(obj: any): any;
28 |
29 | /**
30 | * Deletes the ID from the given object or function.
31 | */
32 | static clear(obj: any): void;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/util/mxPanningManager.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | class mxPanningManager {
3 | constructor(graph: mxGraph);
4 | private thread: (handler: TimerHandler, timeout?: number, ...arguments: any[]) => number;
5 | private active: boolean;
6 | private tdx: number;
7 | private tdy: number;
8 | private t0x: number;
9 | private t0y: number;
10 | private dx: number;
11 | private dy: number;
12 | private scrollbars: boolean;
13 | private scrollLeft: number;
14 | private scrollTop: number;
15 |
16 | private mouseListener: {
17 | mouseDown: (sender: any, me: mxMouseEvent) => void;
18 | mouseMove: (sender: any, me: mxMouseEvent) => void;
19 | mouseUp: (sender: any, me: mxMouseEvent) => void;
20 | };
21 |
22 | private mouseUpListener: () => void;
23 |
24 | private isActive(): boolean;
25 |
26 | private getDx(): number;
27 |
28 | private getDy(): number;
29 |
30 | private start(): void;
31 |
32 | private panTo(x: number, y: number, w: number, h: number): void;
33 |
34 | private stop(): void;
35 |
36 | /**
37 | * Variable: damper
38 | *
39 | * Damper value for the panning. Default is 1/6.
40 | */
41 | damper: number;
42 |
43 | /**
44 | * Variable: delay
45 | *
46 | * Delay in milliseconds for the panning. Default is 10.
47 | */
48 | delay: number;
49 |
50 | /**
51 | * Variable: handleMouseOut
52 | *
53 | * Specifies if mouse events outside of the component should be handled. Default is true.
54 | */
55 | handleMouseOut: boolean;
56 |
57 | /**
58 | * Variable: border
59 | *
60 | * Border to handle automatic panning inside the component. Default is 0 (disabled).
61 | */
62 | border: number;
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/util/mxPoint.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | class mxPoint {
3 | constructor(x?: number, y?: number);
4 |
5 | /**
6 | * Variable: x
7 | *
8 | * Holds the x-coordinate of the point. Default is 0.
9 | */
10 | x: number;
11 |
12 | /**
13 | * Variable: y
14 | *
15 | * Holds the y-coordinate of the point. Default is 0.
16 | */
17 | y: number;
18 |
19 | /**
20 | * Function: equals
21 | *
22 | * Returns true if the given object equals this point.
23 | */
24 | equals(obj: mxPoint): boolean;
25 |
26 | /**
27 | * Function: clone
28 | *
29 | * Returns a clone of this .
30 | */
31 | clone(): mxPoint;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/util/mxRectangle.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | class mxRectangle extends mxPoint {
3 | constructor(x: number, y: number, width: number, height: number);
4 |
5 | /**
6 | * Variable: width
7 | *
8 | * Holds the width of the rectangle. Default is 0.
9 | */
10 | width: number;
11 |
12 | /**
13 | * Variable: height
14 | *
15 | * Holds the height of the rectangle. Default is 0.
16 | */
17 | height: number;
18 |
19 | /**
20 | * Function: setRect
21 | *
22 | * Sets this rectangle to the specified values
23 | */
24 | setRect(x: number, y: number, w: number, h: number): void;
25 |
26 | /**
27 | * Function: getCenterX
28 | *
29 | * Returns the x-coordinate of the center point.
30 | */
31 | getCenterX(): number;
32 |
33 | /**
34 | * Function: getCenterY
35 | *
36 | * Returns the y-coordinate of the center point.
37 | */
38 | getCenterY(): number;
39 |
40 | /**
41 | * Function: add
42 | *
43 | * Adds the given rectangle to this rectangle.
44 | */
45 | add(rect: mxRectangle): void;
46 |
47 | /**
48 | * Function: intersect
49 | *
50 | * Changes this rectangle to where it overlaps with the given rectangle.
51 | */
52 | intersect(rect: mxRectangle): void;
53 |
54 | /**
55 | * Function: grow
56 | *
57 | * Grows the rectangle by the given amount, that is, this method subtracts
58 | * the given amount from the x- and y-coordinates and adds twice the amount
59 | * to the width and height.
60 | */
61 | grow(amount: number): void;
62 |
63 | /**
64 | * Function: getPoint
65 | *
66 | * Returns the top, left corner as a new .
67 | */
68 | getPoint(): mxPoint;
69 |
70 | /**
71 | * Function: rotate90
72 | *
73 | * Rotates this rectangle by 90 degree around its center point.
74 | */
75 | rotate90(): void;
76 |
77 | /**
78 | * Function: equals
79 | *
80 | * Returns true if the given object equals this rectangle.
81 | */
82 | equals(obj: mxRectangle): boolean;
83 |
84 | /**
85 | * Function: fromRectangle
86 | *
87 | * Returns a new which is a copy of the given rectangle.
88 | */
89 | fromRectangle(rect: mxRectangle): mxRectangle;
90 |
91 | clone(): mxRectangle;
92 |
93 | static fromRectangle(rect: mxRectangle): mxRectangle;
94 | }
95 | }
96 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/util/mxUrlConverter.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | class mxUrlConverter {
3 | constructor();
4 |
5 | /**
6 | * Variable: enabled
7 | *
8 | * Specifies if the converter is enabled. Default is true.
9 | */
10 | enabled: boolean;
11 |
12 | /**
13 | * Variable: baseUrl
14 | *
15 | * Specifies the base URL to be used as a prefix for relative URLs.
16 | */
17 | baseUrl: string;
18 |
19 | /**
20 | * Variable: baseDomain
21 | *
22 | * Specifies the base domain to be used as a prefix for absolute URLs.
23 | */
24 | baseDomain: string;
25 |
26 | /**
27 | * Function: updateBaseUrl
28 | *
29 | * Private helper function to update the base URL.
30 | */
31 | updateBaseUrl(): void;
32 |
33 | /**
34 | * Function: isEnabled
35 | *
36 | * Returns .
37 | */
38 | isEnabled(): boolean;
39 |
40 | /**
41 | * Function: setEnabled
42 | *
43 | * Sets .
44 | */
45 | setEnabled(value: boolean): void;
46 |
47 | /**
48 | * Function: getBaseUrl
49 | *
50 | * Returns .
51 | */
52 | getBaseUrl(): string;
53 |
54 | /**
55 | * Function: setBaseUrl
56 | *
57 | * Sets .
58 | */
59 | setBaseUrl(value: string): void;
60 |
61 | /**
62 | * Function: getBaseDomain
63 | *
64 | * Returns .
65 | */
66 | getBaseDomain(): string;
67 |
68 | /**
69 | * Function: setBaseDomain
70 | *
71 | * Sets .
72 | */
73 | setBaseDomain(value: string): void;
74 |
75 | /**
76 | * Function: isRelativeUrl
77 | *
78 | * Returns true if the given URL is relative.
79 | */
80 | isRelativeUrl(url: string): boolean;
81 |
82 | /**
83 | * Function: convert
84 | *
85 | * Converts the given URL to an absolute URL with protol and domain.
86 | * Relative URLs are first converted to absolute URLs.
87 | */
88 | convert(url: string): string;
89 | }
90 | }
91 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/view/README.md:
--------------------------------------------------------------------------------
1 | View
2 | ====
3 |
4 | | File | Progress |
5 | |:----------------------------|:-----------:|
6 | | mxCellEditor.d.ts | |
7 | | mxCellOverlay.d.ts | |
8 | | mxCellRenderer.d.ts | |
9 | | mxCellState.d.ts | |
10 | | mxConnectionConstraint.d.ts | |
11 | | mxEdgeStyle.d.ts | |
12 | | mxGraph.d.ts | |
13 | | mxGraphSelectionModel.d.ts | |
14 | | mxGraphView.d.ts | |
15 | | mxLayoutManager.d.ts | |
16 | | mxMultiplicity.d.ts | |
17 | | mxOutline.d.ts | |
18 | | mxPerimeter.d.ts | |
19 | | mxPrintPreview.d.ts | |
20 | | mxStyleRegistry.d.ts | |
21 | | mxStylesheet.d.ts | |
22 | | mxSwimlaneManager.d.ts | |
23 | | mxTemporaryCellStates.d.ts | |
24 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/view/index.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 | ///
3 | ///
4 | ///
5 | ///
6 | ///
7 | ///
8 | ///
9 | ///
10 | ///
11 | ///
12 | ///
13 | ///
14 | ///
15 | ///
16 | ///
17 | ///
18 | ///
19 | ///
20 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/view/mxCellStatePreview.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | /**
3 | *
4 | * @class mxCellStatePreview
5 | *
6 | * Implements a live preview for moving cells.
7 | */
8 | class mxCellStatePreview {
9 | /**
10 | * Constructs a move preview for the given graph.
11 | *
12 | * @param {mxGraph} graph Reference to the enclosing .
13 | * @constructor
14 | * @memberof mxCellStatePreview
15 | */
16 | constructor(graph: mxGraph);
17 |
18 | /**
19 | * Reference to the enclosing .
20 | */
21 | graph: mxGraph;
22 |
23 | /**
24 | * Reference to the enclosing .
25 | */
26 | deltas: mxDictionary;
27 |
28 | /**
29 | * Contains the number of entries in the map.
30 | */
31 | count: number;
32 |
33 | /**
34 | * Returns true if this contains no entries.
35 | */
36 | isEmpty(): boolean;
37 |
38 | /**
39 | *
40 | *
41 | * @param {mxCellState} state
42 | * @param {number} dx
43 | * @param {number} dy
44 | * @param {boolean} add
45 | * @param {boolean} includeEdges
46 | * @return {*} {mxPoint}
47 | * @memberof mxCellStatePreview
48 | */
49 | moveState(state: mxCellState, dx: number, dy: number, add: boolean, includeEdges: boolean): mxPoint;
50 |
51 | /**
52 | *
53 | *
54 | * @param {Function} visitor
55 | * @memberof mxCellStatePreview
56 | */
57 | show(visitor: Function): void;
58 |
59 | /**
60 | *
61 | *
62 | * @param {mxCellState} state
63 | * @param {number} dx
64 | * @param {number} dy
65 | * @memberof mxCellStatePreview
66 | */
67 | translateState(state: mxCellState, dx: number, dy: number): void;
68 |
69 | /**
70 | *
71 | *
72 | * @param {mxCellState} state
73 | * @param {number} dx
74 | * @param {number} dy
75 | * @param {Function} visitor
76 | * @memberof mxCellStatePreview
77 | */
78 | revalidateState(state: mxCellState, dx: number, dy: number, visitor: Function): void;
79 |
80 | /**
81 | *
82 | *
83 | * @param {mxCellState} state
84 | * @memberof mxCellStatePreview
85 | */
86 | addEdges(state: mxCellState): void;
87 | }
88 | }
89 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/view/mxConnectionConstraint.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | /**
3 | * Defines an object that contains the constraints about how to connect one side of an edge to its terminal.
4 | * @class mxConnectionConstraint
5 | */
6 | class mxConnectionConstraint {
7 | /**
8 | * Constructs a new connection constraint for the given point and boolean arguments.
9 | * @param point Optional mxPoint that specifies the fixed location of the point in relative coordinates. Default is null.
10 | * @param perimeter Optional boolean that specifies if the fixed point should be projected onto the perimeter of the terminal. Default is true.
11 | * @param name
12 | * @param dx
13 | * @param dy
14 | */
15 | constructor(point?: mxPoint, perimeter?: boolean, name?: string, dx?: number, dy?: number);
16 |
17 | /**
18 | * Variable: point
19 | *
20 | * that specifies the fixed location of the connection point.
21 | */
22 | point: mxPoint;
23 |
24 | /**
25 | * Variable: perimeter
26 | *
27 | * Boolean that specifies if the point should be projected onto the perimeter
28 | * of the terminal.
29 | */
30 | perimeter: boolean;
31 |
32 | /**
33 | * Variable: name
34 | *
35 | * Optional string that specifies the name of the constraint.
36 | */
37 | name: string;
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/view/mxStyleRegistry.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | /**
3 | * @class mxStyleRegistry
4 | *
5 | * Singleton class that acts as a global converter from string to object values
6 | * in a style. This is currently only used to perimeters and edge styles.
7 | */
8 | class mxStyleRegistry {
9 | /**
10 | * Maps from strings to objects.
11 | */
12 | values: { [key: string]: any };
13 |
14 | /**
15 | * Puts the given object into the registry under the given name.
16 | */
17 | putValue(name: string, obj: any): void;
18 |
19 | /**
20 | * Returns the value associated with the given name.
21 | */
22 | getValue(name: string): any;
23 |
24 | /**
25 | * Returns the name for the given value.
26 | */
27 | getName(value: any): string;
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/ts/mxtypings/lib/view/mxTemporaryCellStates.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'mxgraph' {
2 | /**
3 | * @class mxTemporaryCellStates
4 | *
5 | * Creates a temporary set of cell states.
6 | */
7 | class mxTemporaryCellStates {
8 | constructor(
9 | view: mxGraphView,
10 | scale: number,
11 | cells: Array,
12 | isCellVisibleFn: boolean,
13 | getLinkForCellState: Function
14 | );
15 |
16 | /**
17 | * Holds the width of the rectangle.
18 | * @default 0
19 | */
20 | view: number;
21 |
22 | /**
23 | * Holds the height of the rectangle.
24 | * @default 0
25 | */
26 | oldStates: number;
27 |
28 | /**
29 | * Holds the height of the rectangle.
30 | * @default 0
31 | */
32 | oldBounds: number;
33 |
34 | /**
35 | * Holds the height of the rectangle.
36 | * @default 0
37 | */
38 | oldScale: number;
39 |
40 | destroy(): void;
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/src/ts/schemaDesigner/schemaDesignerToolbar.ts:
--------------------------------------------------------------------------------
1 | import { mxCellState, mxGraph } from "mxgraph";
2 | import {mxGraphFactory as mx} from '../mx';
3 | import { SchemaDesignerConfig } from "./schemaDesignerInterfaces";
4 |
5 | export class SchemaDesignerToolbar {
6 | private _toolbarDiv: HTMLElement;
7 |
8 | public buttons: Map = new Map();
9 |
10 | constructor(private _container: HTMLElement, private _graph: mxGraph, private _config: SchemaDesignerConfig) {
11 | this._toolbarDiv = document.createElement("div");
12 | this._container.appendChild(this._toolbarDiv);
13 | this._toolbarDiv.classList.add("sd-toolbar");
14 | this._toolbarDiv.style.color = this._config.colors.toolbarForeground;
15 | }
16 |
17 | public addButton(
18 | icon: string,
19 | title: string,
20 | callback: () => void,
21 | onDragEndCallback?: (graph: mxGraph, evt: MouseEvent, cell: mxCellState) => void) {
22 | const button = document.createElement("div");
23 | this._toolbarDiv.appendChild(button);
24 | button.classList.add("sd-toolbar-button");
25 | button.innerHTML = icon;
26 | button.onclick = () => {
27 | if (!this.isButtonDisabled(title)) {
28 | callback();
29 | }
30 | }
31 | button.title = title;
32 | if (onDragEndCallback) {
33 | const dragImage = button.cloneNode(true) as HTMLElement;
34 | dragImage.style.backgroundColor = this._config.colors.toolbarBackground;
35 | const ds = mx.mxUtils.makeDraggable(
36 | button,
37 | this._graph,
38 | onDragEndCallback,
39 | dragImage
40 | );
41 | ds.highlightDropTargets = true;
42 | }
43 | this.buttons.set(title, button);
44 | }
45 |
46 | public disableButton(title: string) {
47 | this.buttons.get(title)?.classList.add("sd-toolbar-button-disabled");
48 | }
49 |
50 | public enableButton(title: string) {
51 | this.buttons.get(title)?.classList.remove("sd-toolbar-button-disabled");
52 | }
53 |
54 | public isButtonDisabled(title: string) {
55 | return this.buttons.get(title)?.classList.contains("sd-toolbar-button-disabled");
56 | }
57 |
58 | public addDivider() {
59 | const divider = document.createElement("div");
60 | this._toolbarDiv.appendChild(divider);
61 | divider.classList.add("sd-toolbar-divider");
62 | }
63 | }
--------------------------------------------------------------------------------
/src/ts/schemaDesigner/utils.ts:
--------------------------------------------------------------------------------
1 | import { mxCellState } from "mxgraph";
2 |
3 | /**
4 | * This function should return the vertical center of the column in an entity
5 | * @param state cell containing the entity of the column.
6 | * @param column column element.
7 | * @returns the vertical center of the column.
8 | */
9 | export function getRowY(state: mxCellState, column: HTMLElement): number {
10 | const s = state.view.scale;
11 | if (!column) {
12 | return state.y;
13 | }
14 | const div = column.parentNode as HTMLElement;
15 | let y = state.y + (column.offsetTop - div.scrollTop + column.offsetHeight / 2) * s; // 5 is the magic number to make the line completely centered to the row.
16 | if (div.scrollTop > column.offsetTop) { // If the column is above the visible area of the entity container div then we should use the top of the column container.
17 | y = state.y + (div.offsetTop - 15) * s;
18 | }
19 | if (y > state.y + div.offsetTop * s + div.clientHeight * s) { // If the column is below the visible area of the entity container div then we should use the bottom of the column container.
20 | y = state.y + (div.offsetTop + div.clientHeight - 5) * s;
21 | }
22 | return y;
23 | }
--------------------------------------------------------------------------------
/test/queryplan/comparePlanModeWithFolding.html:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
10 | Query Plan test
11 |
15 |
16 |
17 |
18 |
62 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
--------------------------------------------------------------------------------
/test/queryplan/comparePlanModeWithNoFolding.html:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
10 | Query Plan test
11 |
15 |
16 |
17 |
18 |
63 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
--------------------------------------------------------------------------------
/test/queryplan/icons/adaptive_join.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/adaptive_join.png
--------------------------------------------------------------------------------
/test/queryplan/icons/aggregate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/aggregate.png
--------------------------------------------------------------------------------
/test/queryplan/icons/apply.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/apply.png
--------------------------------------------------------------------------------
/test/queryplan/icons/arithmetic_expression.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/arithmetic_expression.png
--------------------------------------------------------------------------------
/test/queryplan/icons/assert.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/assert.png
--------------------------------------------------------------------------------
/test/queryplan/icons/assign.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/assign.png
--------------------------------------------------------------------------------
/test/queryplan/icons/batch_hash_table_build.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/batch_hash_table_build.png
--------------------------------------------------------------------------------
/test/queryplan/icons/bitmap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/bitmap.png
--------------------------------------------------------------------------------
/test/queryplan/icons/bookmark_lookup.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/bookmark_lookup.png
--------------------------------------------------------------------------------
/test/queryplan/icons/broadcast.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/broadcast.png
--------------------------------------------------------------------------------
/test/queryplan/icons/clustered_index_delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/clustered_index_delete.png
--------------------------------------------------------------------------------
/test/queryplan/icons/clustered_index_insert.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/clustered_index_insert.png
--------------------------------------------------------------------------------
/test/queryplan/icons/clustered_index_merge.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/clustered_index_merge.png
--------------------------------------------------------------------------------
/test/queryplan/icons/clustered_index_scan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/clustered_index_scan.png
--------------------------------------------------------------------------------
/test/queryplan/icons/clustered_index_seek.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/clustered_index_seek.png
--------------------------------------------------------------------------------
/test/queryplan/icons/clustered_index_update.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/clustered_index_update.png
--------------------------------------------------------------------------------
/test/queryplan/icons/clustered_update.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/clustered_update.png
--------------------------------------------------------------------------------
/test/queryplan/icons/collapse.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/collapse.png
--------------------------------------------------------------------------------
/test/queryplan/icons/collapse.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/test/queryplan/icons/columnstore_index_delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/columnstore_index_delete.png
--------------------------------------------------------------------------------
/test/queryplan/icons/columnstore_index_insert.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/columnstore_index_insert.png
--------------------------------------------------------------------------------
/test/queryplan/icons/columnstore_index_merge.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/columnstore_index_merge.png
--------------------------------------------------------------------------------
/test/queryplan/icons/columnstore_index_scan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/columnstore_index_scan.png
--------------------------------------------------------------------------------
/test/queryplan/icons/columnstore_index_update.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/columnstore_index_update.png
--------------------------------------------------------------------------------
/test/queryplan/icons/compute_scalar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/compute_scalar.png
--------------------------------------------------------------------------------
/test/queryplan/icons/compute_to_control_node.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/compute_to_control_node.png
--------------------------------------------------------------------------------
/test/queryplan/icons/concatenation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/concatenation.png
--------------------------------------------------------------------------------
/test/queryplan/icons/const_table_get.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/const_table_get.png
--------------------------------------------------------------------------------
/test/queryplan/icons/constant_scan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/constant_scan.png
--------------------------------------------------------------------------------
/test/queryplan/icons/control_to_compute_nodes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/control_to_compute_nodes.png
--------------------------------------------------------------------------------
/test/queryplan/icons/convert.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/convert.png
--------------------------------------------------------------------------------
/test/queryplan/icons/cursor_catch_all.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/cursor_catch_all.png
--------------------------------------------------------------------------------
/test/queryplan/icons/declare.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/declare.png
--------------------------------------------------------------------------------
/test/queryplan/icons/delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/delete.png
--------------------------------------------------------------------------------
/test/queryplan/icons/deleted_scan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/deleted_scan.png
--------------------------------------------------------------------------------
/test/queryplan/icons/dynamic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/dynamic.png
--------------------------------------------------------------------------------
/test/queryplan/icons/expand.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/test/queryplan/icons/external_broadcast.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/external_broadcast.png
--------------------------------------------------------------------------------
/test/queryplan/icons/external_export.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/external_export.png
--------------------------------------------------------------------------------
/test/queryplan/icons/external_local_streaming.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/external_local_streaming.png
--------------------------------------------------------------------------------
/test/queryplan/icons/external_round_robin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/external_round_robin.png
--------------------------------------------------------------------------------
/test/queryplan/icons/external_shuffle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/external_shuffle.png
--------------------------------------------------------------------------------
/test/queryplan/icons/fetch_query.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/fetch_query.png
--------------------------------------------------------------------------------
/test/queryplan/icons/filter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/filter.png
--------------------------------------------------------------------------------
/test/queryplan/icons/foreign_key_references_check.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/foreign_key_references_check.png
--------------------------------------------------------------------------------
/test/queryplan/icons/get.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/get.png
--------------------------------------------------------------------------------
/test/queryplan/icons/group_by_aggregate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/group_by_aggregate.png
--------------------------------------------------------------------------------
/test/queryplan/icons/hash_match.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/hash_match.png
--------------------------------------------------------------------------------
/test/queryplan/icons/hash_match_root.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/hash_match_root.png
--------------------------------------------------------------------------------
/test/queryplan/icons/hash_match_team.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/hash_match_team.png
--------------------------------------------------------------------------------
/test/queryplan/icons/if.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/if.png
--------------------------------------------------------------------------------
/test/queryplan/icons/index_delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/index_delete.png
--------------------------------------------------------------------------------
/test/queryplan/icons/index_insert.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/index_insert.png
--------------------------------------------------------------------------------
/test/queryplan/icons/index_scan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/index_scan.png
--------------------------------------------------------------------------------
/test/queryplan/icons/index_seek.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/index_seek.png
--------------------------------------------------------------------------------
/test/queryplan/icons/index_spool.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/index_spool.png
--------------------------------------------------------------------------------
/test/queryplan/icons/index_update.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/index_update.png
--------------------------------------------------------------------------------
/test/queryplan/icons/insert.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/insert.png
--------------------------------------------------------------------------------
/test/queryplan/icons/inserted_scan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/inserted_scan.png
--------------------------------------------------------------------------------
/test/queryplan/icons/intrinsic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/intrinsic.png
--------------------------------------------------------------------------------
/test/queryplan/icons/iterator_catch_all.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/iterator_catch_all.png
--------------------------------------------------------------------------------
/test/queryplan/icons/join.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/join.png
--------------------------------------------------------------------------------
/test/queryplan/icons/keyset.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/keyset.png
--------------------------------------------------------------------------------
/test/queryplan/icons/language_construct_catch_all.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/language_construct_catch_all.png
--------------------------------------------------------------------------------
/test/queryplan/icons/locate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/locate.png
--------------------------------------------------------------------------------
/test/queryplan/icons/log_row_scan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/log_row_scan.png
--------------------------------------------------------------------------------
/test/queryplan/icons/merge_interval.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/merge_interval.png
--------------------------------------------------------------------------------
/test/queryplan/icons/merge_join.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/merge_join.png
--------------------------------------------------------------------------------
/test/queryplan/icons/nested_loops.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/nested_loops.png
--------------------------------------------------------------------------------
/test/queryplan/icons/overlay-parallelism.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/test/queryplan/icons/overlay-warning.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/test/queryplan/icons/parallelism.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/parallelism.png
--------------------------------------------------------------------------------
/test/queryplan/icons/parameter_table_scan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/parameter_table_scan.png
--------------------------------------------------------------------------------
/test/queryplan/icons/population_query.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/population_query.png
--------------------------------------------------------------------------------
/test/queryplan/icons/predict.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/predict.png
--------------------------------------------------------------------------------
/test/queryplan/icons/print.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/print.png
--------------------------------------------------------------------------------
/test/queryplan/icons/project.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/project.png
--------------------------------------------------------------------------------
/test/queryplan/icons/rank.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/rank.png
--------------------------------------------------------------------------------
/test/queryplan/icons/refresh_query.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/refresh_query.png
--------------------------------------------------------------------------------
/test/queryplan/icons/remote_delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/remote_delete.png
--------------------------------------------------------------------------------
/test/queryplan/icons/remote_index_scan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/remote_index_scan.png
--------------------------------------------------------------------------------
/test/queryplan/icons/remote_index_seek.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/remote_index_seek.png
--------------------------------------------------------------------------------
/test/queryplan/icons/remote_insert.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/remote_insert.png
--------------------------------------------------------------------------------
/test/queryplan/icons/remote_query.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/remote_query.png
--------------------------------------------------------------------------------
/test/queryplan/icons/remote_scan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/remote_scan.png
--------------------------------------------------------------------------------
/test/queryplan/icons/remote_update.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/remote_update.png
--------------------------------------------------------------------------------
/test/queryplan/icons/result.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/result.png
--------------------------------------------------------------------------------
/test/queryplan/icons/rid_lookup.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/rid_lookup.png
--------------------------------------------------------------------------------
/test/queryplan/icons/row_count_spool.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/row_count_spool.png
--------------------------------------------------------------------------------
/test/queryplan/icons/segment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/segment.png
--------------------------------------------------------------------------------
/test/queryplan/icons/sequence.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/sequence.png
--------------------------------------------------------------------------------
/test/queryplan/icons/sequence_project.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/sequence_project.png
--------------------------------------------------------------------------------
/test/queryplan/icons/set_function.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/set_function.png
--------------------------------------------------------------------------------
/test/queryplan/icons/shuffle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/shuffle.png
--------------------------------------------------------------------------------
/test/queryplan/icons/single_source_round_robin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/single_source_round_robin.png
--------------------------------------------------------------------------------
/test/queryplan/icons/single_source_shuffle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/single_source_shuffle.png
--------------------------------------------------------------------------------
/test/queryplan/icons/snapshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/snapshot.png
--------------------------------------------------------------------------------
/test/queryplan/icons/sort.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/sort.png
--------------------------------------------------------------------------------
/test/queryplan/icons/split.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/split.png
--------------------------------------------------------------------------------
/test/queryplan/icons/spool.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/spool.png
--------------------------------------------------------------------------------
/test/queryplan/icons/sql.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/sql.png
--------------------------------------------------------------------------------
/test/queryplan/icons/stream_aggregate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/stream_aggregate.png
--------------------------------------------------------------------------------
/test/queryplan/icons/switch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/switch.png
--------------------------------------------------------------------------------
/test/queryplan/icons/table_delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/table_delete.png
--------------------------------------------------------------------------------
/test/queryplan/icons/table_insert.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/table_insert.png
--------------------------------------------------------------------------------
/test/queryplan/icons/table_merge.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/table_merge.png
--------------------------------------------------------------------------------
/test/queryplan/icons/table_scan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/table_scan.png
--------------------------------------------------------------------------------
/test/queryplan/icons/table_spool.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/table_spool.png
--------------------------------------------------------------------------------
/test/queryplan/icons/table_update.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/table_update.png
--------------------------------------------------------------------------------
/test/queryplan/icons/table_valued_function.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/table_valued_function.png
--------------------------------------------------------------------------------
/test/queryplan/icons/top.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/top.png
--------------------------------------------------------------------------------
/test/queryplan/icons/trim.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/trim.png
--------------------------------------------------------------------------------
/test/queryplan/icons/udx.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/udx.png
--------------------------------------------------------------------------------
/test/queryplan/icons/union.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/union.png
--------------------------------------------------------------------------------
/test/queryplan/icons/union_all.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/union_all.png
--------------------------------------------------------------------------------
/test/queryplan/icons/update.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/update.png
--------------------------------------------------------------------------------
/test/queryplan/icons/window_aggregate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/microsoft/azdataGraph/3647e88dcd62162ff38f016f88f09d4df10e69fd/test/queryplan/icons/window_aggregate.png
--------------------------------------------------------------------------------
/test/queryplan/queryPlanColors.html:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 | Query Plan Cell Color test
8 |
12 |
13 |
14 |
15 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/test/queryplan/queryPlanListener.html:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 | Query Plan Listener test
8 |
12 |
13 |
14 |
15 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/test/queryplan/queryplan.html:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 | Query Plan test
8 |
12 |
13 |
14 |
15 |
37 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
--------------------------------------------------------------------------------
/test/queryplan/queryplan2.html:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
10 | Query Plan test
11 |
15 |
16 |
17 |
18 |
62 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
--------------------------------------------------------------------------------
/test/queryplan/queryplanParentVisibility.html:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 | Query Plan test
8 |
12 |
13 |
14 |
15 |
42 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/test/queryplan/queryplanPolygon.html:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 | Query Plan test
8 |
12 |
13 |
14 |
15 |
43 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
--------------------------------------------------------------------------------
/ts-examples/adventureWorks.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Medium Schema Designer
7 |
8 |
23 |
59 |
60 |
61 |
62 |
63 |
64 |
--------------------------------------------------------------------------------
/ts-examples/helloWorld.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Hello World
5 |
14 |
52 |
53 |
54 |
55 |
56 |
57 |
--------------------------------------------------------------------------------
/ts-examples/resources/addTable.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ts-examples/resources/arrange.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ts-examples/resources/connector.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ts-examples/resources/delete.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ts-examples/resources/export.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ts-examples/resources/redo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ts-examples/resources/schemaDesigner.css:
--------------------------------------------------------------------------------
1 | :root {
2 | --graph-font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
3 | --color-toolbar-bg: #2c2c2c;
4 | --color-toolbar-text: #fff;
5 | --color-toolbar-button-hover: #383838;
6 | --color-toolbar-divider: #444444;
7 | --color-border: #c3c3c3;
8 | --color-outline-color: #0c8ce9;
9 | --color-graph-gridLines: #c3c3c3;
10 | --color-graph-outline-background: #fff;
11 | --color-graph-cell-highlight: #0c8ce9;
12 | --color-graph-outline-tableCell: #1e272e;
13 | --color-graph-outline-columnCell: #bdc3c7;
14 | --color-graph-background: #ffffff;
15 | --color-graph-table-indicator: #00a2ad;
16 | --color-graph-column-indicator: #f0f0f0;
17 | --color-graph-node-hover: #f0f0f0;
18 | }
19 | .background {
20 | margin: 0;
21 | padding: 0;
22 | width: 100%;
23 | height: 100%;
24 | padding: 10px;
25 | }
26 | #graphContainer {
27 | position: relative;
28 | overflow: hidden;
29 | width: 100%;
30 | height: calc(100vh - 20px);
31 | user-select: none;
32 | }
--------------------------------------------------------------------------------
/ts-examples/resources/table.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ts-examples/resources/tableNode.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/ts-examples/resources/text.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/ts-examples/resources/undo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ts-examples/resources/zoomFit.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ts-examples/resources/zoomIn.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ts-examples/resources/zoomOut.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ts-examples/worldWideImporters.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Big Schema Designer
7 |
8 |
23 |
52 |
53 |
54 |
55 |
56 |
57 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "jsx": "react",
4 | "target": "es2016",
5 | "module": "commonjs",
6 | "declaration": true,
7 | "outDir": "./dist",
8 | "esModuleInterop": true,
9 | "forceConsistentCasingInFileNames": true,
10 | "skipLibCheck": true,
11 | "strict": true,
12 | "noUnusedLocals": true,
13 | "noUnusedParameters": true,
14 | "noFallthroughCasesInSwitch": true,
15 | "composite": true,
16 | "allowSyntheticDefaultImports": true,
17 | "noImplicitOverride": true,
18 | "paths": {
19 | "mxgraph": ["./dist/build.js"]
20 | },
21 | "moduleResolution": "node",
22 | },
23 | "include": ["index.d.ts", "src/ts/**/*.ts", "src/ts/**/*.d.ts", "src/ts/examples/**/*.tsx"]
24 | }
25 |
--------------------------------------------------------------------------------