Go to file
Dave Morrissey 413796ad32
Finish converting core to ts, JSDoc conversion, consistency+convention changes, example bugfixes (#70)
* reorganised directories; removed mx prefix

* reduced directory hierarchies; removed mx prefix; type fixes

* convert remaining javascript to ts

* fix/add types

* add type defs

* type updates; moved codecs to where they're used

* reorganise constants into enums+type additions

* removed "Function:" and "Variable:" prefixes from comments, as they aren't needed in JSDoc

* removed "Function:", "Variable:" and "Class:" prefixes from comments, as they aren't needed in JSDoc

* removed "Function:" prefixes from comments, as they aren't needed in JSDoc

* minor changes

* convert code example blocks to markdown

* module casing updates

* converted parameter function documentation to JSDoc

* documentation+type updates

* removed react subdir (for now)

* reorganised various `utils` functions into different files

* type updates/bugfixes/workarounds

* rename Rubberband and CellEditor to be *Handler to match the other plugins

* move codec classes to where they're used to reduce cyclic dependencies

* move codec classes to where they're used to reduce cyclic dependencies

* type updates/reorganize layout file structure

* renamed various files for consistency

* import fixes

* renamed GraphHandler SelectionHander and various fixes

* convert EventObject parameters to objects

* add basic better-docs config

* update better-docs config

* bugfix for shared variables in Graph persisting across instances

* fixed accessing handlers in examples; renamed Model to GraphModel

* fixed accessing handlers in examples; renamed Model to GraphModel

* restored selection model

* bugfix

* renamed getModel to getDataModel

* changed to use graph.batchUpdate() to reduce lines of code

* changed to use graph.batchUpdate() to reduce lines of code

* finished annotations+added TypeDoc

* convert remaining Cell[] instances to CellArray

* convert NaturalDocs links to JSDoc
2022-01-08 12:49:35 +11:00
.github move pull request template to correct directory 2021-05-11 07:18:59 +01:00
docs Finish converting core to ts, JSDoc conversion, consistency+convention changes, example bugfixes (#70) 2022-01-08 12:49:35 +11:00
packages Finish converting core to ts, JSDoc conversion, consistency+convention changes, example bugfixes (#70) 2022-01-08 12:49:35 +11:00
scripts - Restructure into a monorepo. 2021-04-15 13:12:12 +09:00
.gitignore update packages and remove circular dependancies 2021-11-27 17:17:08 +11:00
.npmignore Update .npmignore 2020-01-13 12:52:04 +03:00
.prettierrc conversions to typescript and type fixes 2021-06-13 16:13:43 +10:00
CODE_OF_CONDUCT.md create code of conduct 2021-05-11 06:59:18 +01:00
ChangeLog 4.2.2 release 2020-10-28 16:11:03 +00:00
LICENSE Update LICENSE 2020-11-09 21:40:16 +00:00
README.md Update readme.md 2021-04-15 13:13:13 +09:00
babel.config.js - Restructure into a monorepo. 2021-04-15 13:12:12 +09:00
index.html Finish converting core to ts, JSDoc conversion, consistency+convention changes, example bugfixes (#70) 2022-01-08 12:49:35 +11:00
jsdoc.json Finish converting core to ts, JSDoc conversion, consistency+convention changes, example bugfixes (#70) 2022-01-08 12:49:35 +11:00
lerna.json - Restructure into a monorepo. 2021-04-15 13:12:12 +09:00
package.json Finish converting core to ts, JSDoc conversion, consistency+convention changes, example bugfixes (#70) 2022-01-08 12:49:35 +11:00
webpack.config.js Refactored everything... 2021-09-07 18:07:27 +09:00

README.md

mxGraph

Getting started

Setting up local development environment

In the project root directory, execute

$ npm install

To watch the core package, execute

$ npm run dev

and select @mxgraph/core.

To run the html(vanilla-js) version of storybook, execute

$ npm run dev

and select @mxgraph/html.

Since both commands are in watch mode, so it's recommended to open two terminals and run them separately. When a file is saved from the core package, the html storybook will be automatically updated.

===

Looking for maintainers

12 Nov 2020.

If you are interested in becoming a maintainer of mxGraph please comment on issue #1 https://github.com/jsGraph/mxgraph/issues/1

Initial objectives:

  • The first priority is to maintain a working version of mxGraph and its npm package
  • The ambitious stretch goal is to refactor the codebase to create a modern modular, tree shakable, version of mxGraph to reduce the whole package size.

-- Colin Claverie

Note that the original default branch was master, and this has now been renamed main. If you had a checkout with the old branch name then follow these instructions to get the new branch name:

git branch -m master main
git fetch origin
git branch -u origin/main main
git remote set-head origin -a

Original Readme below

NOTE 09.11.2020 : Development on mxGraph has now stopped, this repo is effectively end of life.

Known forks:

https://github.com/jsGraph/mxgraph

https://github.com/process-analytics/mxgraph

mxGraph

mxGraph is a fully client side JavaScript diagramming library that uses SVG and HTML for rendering.

The PHP model was deprecated after release 4.0.3 and the archive can be found here.

The unmaintained npm build is here

We don't support Typescript, but there is a project to implement this, with this repo currently used as the lead repo.

The mxGraph library uses no third-party software, it requires no plugins and can be integrated in virtually any framework (it's vanilla JS).

Getting Started

In the root folder there is an index.html file that contains links to all resources. You can view the documentation online on the Github pages branch. The key resources are the JavaScript user manual, the JavaScript examples and the JavaScript API specificiation.

Support

There is a mxgraph tag on Stack Overflow. Please ensure your questions adhere to the SO guidelines, otherwise it is likely to be closed.

If you are looking for active support, your better route is one of the commercial diagramming tools, like yFiles or GoJS.

History

We created mxGraph in 2005 as a commercial project and it ran through to 2016 that way. Our USP was the support for non-SVG browsers, when that advantage expired we moved onto commercial activity around draw.io. mxGraph is pretty much feature complete, production tested in many large enterprises and stable for many years.

Over time you can expect this codebase will break features against new browser releases, it's not advised to start new projects against this codebase for that reason.