docs: improve the migration guide from mxGraph (#271)

Provide various improvements
  - fix `InternalEvent`
  - improve `Client`
  - improve explanations about plugins
  - removed `mxUtils` methods
  - removed `isVisible` methods

Also use more admonitions.
development
Thomas Bouffard 2023-12-04 00:57:50 +01:00 committed by GitHub
parent 17f31fcc5c
commit d46e99a114
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 65 additions and 12 deletions

View File

@ -7,8 +7,9 @@ on:
paths:
- '.github/workflows/generate-website.yml'
- '.nvmrc'
- 'packages/core/*'
- 'packages/website/*'
- 'packages/core/**/*'
- 'packages/website/**/*'
- '!packages/website/README.md'
- 'package.json'
jobs:

View File

@ -41,7 +41,12 @@ npm uninstall mxgraph
```shell
npm install maxgraph@core
```
The `maxgraph@core` package contains the core functionality of `maxGraph`.
:::info
The `maxgraph@core` package contains the core functionality of `maxGraph`.
:::
### Initialize `maxGraph`
@ -107,7 +112,11 @@ Here are some general guidelines to keep in mind when migrating from `mxGraph` t
This section outlines specific code changes required when migrating from `mxGraph` to `maxGraph`.
Please update your code accordingly.
> **Note:** Much information is available at https://github.com/maxGraph/maxGraph/pull/70.
:::note
A wide range of information is available at https://github.com/maxGraph/maxGraph/pull/70.
:::
### Overlay
The `strokewidth` property has been renamed to `strokeWidth` in `maxGraph`.
@ -144,6 +153,14 @@ Several functions in `mxUtils` have been moved to their own namespaces in `maxGr
- `getXml`(): Update your code to use `xmlUtils.getXml()` instead of `mxUtils.getXml()`.
- `createXmlDocument()`: Update your code to use `xmlUtils.createXmlDocument()` instead of `mxUtils.createXmlDocument()`.
### Removed methods from `mxUtils`
The following methods of `mxUtils` have been removed without replacements in `maxGraph`. Use your own implementation or 3rd party libraries instead:
- `mxUtils.button`
- `mxUtils.error`
### `mxAbstractCanvas2D`
The `mxAbstractCanvas2D` class has been renamed to `AbstractCanvas2D` in `maxGraph`, and there is a parameter type change in one of its methods.
@ -186,7 +203,7 @@ const canvas = new SvgCanvas2D(svgElement, oneBoolean);
#### `getAlternateText()`
change types ???????
**TODO** change types ???????
#### `format()`
@ -208,6 +225,9 @@ format:(value: number) => number
The `mxGraph` class has been renamed to `Graph` in `maxGraph`.
There have also been some changes related to properties and methods.
Some properties have been removed in favor of the usage of plugins. Plugins are registered at the Graph initialization by passing
an array of plugins to the constructor.
#### `panningHandler` property
The `panningHandler` property has been removed and replaced by a plugin. Instead of accessing `panningHandler` directly, you can use the `getPlugin()` method to get the `PanningHandler` plugin instance. Here's an example:
@ -269,7 +289,25 @@ graph.insertEdge({ parent, id, value, source, target, style });
### Client
renamed properties: TODO which
The `mxClient` class has been removed into `Client`.
Removed properties
- `defaultBundles`
- `mxForceIncludes`: it was used to force loading the JavaScript files in development mode in mxGraph. We are not
managing development mode in that way anymore.
- `mxLoadResources`: not used anymore
- `mxLoadStylesheets`: not used anymore
- `mxResourceExtension`: it was only used in `Translations`, so only keep the property in `Translations`
Removed methods
- `setForceIncludes`: the `mxForceIncludes` property has been removed
- `setLoadResources`: the `mxLoadResources` property has been removed
- `setLoadStylesheets`: the `mxLoadStylesheets` property has been removed
- `setResourceExtension`: the `mxResourceExtension` property has been removed
Moved methods
- `link` method moved and renamed `domUtils.addLinkToHead`
### Cell manipulation
@ -278,13 +316,25 @@ Only the functions for mxCell/Cell remain. See https://github.com/maxGraph/maxGr
Some functions previously available in `mxGraph` and `mxGraphModel` have been removed. These functions allowed for customizing the behavior of `mxGraphModel` and `mxCell`. However, now only the functions specific to `mxCell`/`Cell` remain.
You can find more information about these changes in the following GitHub pull request: https://github.com/maxGraph/maxGraph/pull/24.
:::note
You can find more information about these changes in the following GitHub pull request: https://github.com/maxGraph/maxGraph/pull/24.
:::
#### `mxCell`
The `mxCell` class has been renamed to `Cell` for simplicity.
The `style` property of `Cell` has undergone a type change from `string` to `CellStyle`.
The `style` property of `Cell` has undergone a type change from `string` to `CellStyle`. See the paragraph about "Migration of specific style properties applied to dedicated cells"
for more details about how to migrate the style property.
#### `mxGraph`
Some methods were removed:
- `mxGraph.isCellVisible(cell)` see https://github.com/maxGraph/maxGraph/discussions/179#discussioncomment-5389942 for rationale
#### `mxGraphDataModel`
@ -296,6 +346,8 @@ Several functions from the `mxGraphDataModel` class have been moved to the `Cell
- `isEdge()`
- `getParent()`
Others were removed:
- `mxGraphModel.isVisible(cell)` see https://github.com/maxGraph/maxGraph/discussions/179#discussioncomment-5389942 for rationale
### Misc
@ -315,10 +367,10 @@ The event handling mechanism in `maxGraph` has been updated. Use the following g
- Use the `eventUtils.isLeftMouseButton()` method, to detect mouse events, instead of `mxEvent.isLeftMouseButton()`.
#### `InternalEvent`
- Use the `eventUtils.PAN_START` property instead of `mxEvent.PAN_START`.
- Use the `eventUtils.PAN_END` property instead of `mxEvent.PAN_END`.
- Use the `eventUtils.addMouseWheelListener()` method instead of `mxEvent.addMouseWheelListener()`.
- Use the `eventUtils.consume()` method instead of `mxEvent.consume()`.
- Use the `InternalEvent.PAN_START` property instead of `mxEvent.PAN_START`.
- Use the `InternalEvent.PAN_END` property instead of `mxEvent.PAN_END`.
- Use the `InternalEvent.addMouseWheelListener()` method instead of `mxEvent.addMouseWheelListener()`.
- Use the `InternalEvent.consume()` method instead of `mxEvent.consume()`.
### Styling