Commit Graph

668 Commits (068a50f35cec37c4eb5ec82369aa798cc71b1fb0)

Author SHA1 Message Date
Thomas Bouffard 068a50f35c
docs: remove extra "markdown-page" page (#274)
This page is an example from the Docusaurus initialization. It has been
kept by mistake.
2023-12-04 02:35:28 +01:00
Thomas Bouffard d46e99a114
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.
2023-12-04 00:57:50 +01:00
Thomas Bouffard 17f31fcc5c
chore: clean before pack (#270)
This simplifies the release procedure. No manual cleaning is required,
this reduces the risk of errors.
2023-12-03 21:50:14 +01:00
Thomas Bouffard ac48ea0d86
chore!: only include ESM in the npm package (#266)
Get rid of the UMD bundle: not pratical, not minimified so not ready for
production, nor for reuse.
This lets remove the webpack build which was not used anymore.

- core build: everything is done with tsc and simplify pack
- remove webpack configuration
- Move typedoc in the package where it is used (make it easier to detect
usage)
- remove unused dependencies: 
  - better-docs (use typedoc instead)
  - webpack loaders (css, file, style, url)
  - babel
  - circular-dependency-plugin (webpack plugin)
  - webpack
  - cross-env
- core build: tsc only

BREAKING CHANGE: the UMD bundle is no more provided in the npm package
2023-12-03 16:51:40 +01:00
Thomas Bouffard 9e6c854aa8
ci: use macos-13 in GitHub workflows (#269)
Build with a more recent version to better suit developers' machines,
which usually use a recent operating system.
2023-12-01 09:51:11 +01:00
Thomas Bouffard 6e6009aebd
docs: build the user documentation with Docusaurus (#264)
Initiate the website with Docusaurus v3.
Setup the site and includes the content that was already available in
the `docs` package.
The currently implementation mainly uses the default theme available
when using the Docusaurus scaffolding. It was initiated with:
`npx create-docusaurus@3.0.0 my-website classic`
2023-11-27 18:53:52 +01:00
Thomas Bouffard 3e9b9b8e77
chore: build with Node 18 (#263) 2023-11-16 14:39:08 +01:00
Thomas Bouffard f58ec67e5f
refactor: simplify the code of `ts-example` (#255)
Replicate the improvements done in the `maxgraph-integration-examples`
repository:
- introduce function to simplify the main file
- Remove out dated comments
- Simplify the code and use "type" imports when possible
2023-11-16 11:53:47 +01:00
Tim Nelson 43e84c49e8
docs: improve instructions for setting up a dev environment (#262)
There was missing information in the documentation.
Add `npm pack` command to instructions for setting up a dev environment.
2023-11-09 10:40:07 +01:00
Thomas Bouffard dc939142dc docs: add release dates in CHANGELOG 2023-10-30 07:38:39 +01:00
Thomas Bouffard b008f46be5 chore(release): prepare version 0.4.1 2023-10-30 07:36:17 +01:00
dependabot[bot] af16274eb1
chore(deps-gha): bump actions/setup-node from 3 to 4 (#258) 2023-10-30 06:19:15 +00:00
Thomas Bouffard fe7f1a8123
chore: migrate to storybook v7 (#230)
- Migrate the existing stories to work with storybook v7.
- Use the `vite` builder. The startup time decrease from 40 seconds
(best time with v6) to 1 second (worst time with v7)
- Webpack is no more used, `vite` now manages everything
- Add support for writing stories in TypeScript. It also detect existing
import errors in the existing stories written in JS
- Migrate the Toolbar story to TypeScript to demonstrate it works. As
part of the migration, fix how CellStyle is set in the story (easily
detected thanks to types checking)
- Detect wrong imports in stories and fix them
- The storybook mini-site can be built (previously the build always
failed and storybook could only be used in development mode)
- Add support for Node 18

Other changes
- core: simplify the "dev" script:
- There is no need to invoke webpack as the UMD bundle is no longer used
by stories.
- Instead, call `tsc` watch which is faster, so code changes are visible
faster in stories
- "Build" GitHub workflow:
- Build storybook mini-site and attach all examples as artifact to help
reviewing Pull Requests
- Lint at the end, this is more important to check the build and
examples first
2023-10-12 23:41:37 +02:00
Eric Redekopp f09abdf53a
fix: make 'movable' style attribute behave as expected (#248)
The 'movable' style attribute of cells had the opposite effect as what
would be expected. When set to false, cells could be moved, and when true,
cells couldn't be moved.
This is something that got lost in translation in the conversion from mxGraph.
Previously, it assumed that if 'movable' had any value, it must be the string "0". This
attribute got changed to a boolean in Typescript, but it looks like the
check never got updated leading to this strange behaviour.

The fix is fairly simple.
If 'movable' is undefined, then we assume that it's true.
If not, then we check it like a regular boolean.
2023-10-12 10:23:32 +02:00
Thomas Bouffard 54c82230c1
test: improve HierarchicalLayout tests (#245)
Also check that the layout change the position of the cells.
2023-10-10 06:21:22 +02:00
Thomas Bouffard 3758ac4dce
chore: review private property in package.json files (#244)
Remove versioning for private packages are they are not supposed to be
consumed outside the project.
Explicitly mark public packages.
2023-09-15 12:31:22 +02:00
Thomas Bouffard e175937f02 chore(release): prepare version 0.4.0 2023-09-14 15:10:05 +02:00
Thomas Bouffard a0b762c707
docs: describe the security policy (#242) 2023-09-14 15:03:14 +02:00
Thomas Bouffard 7556b72415
fix: use configurable path for `errorImage` (#241)
The default path of `errorImage` hard coded the context instead of using
`Client.imageBasePath` as everywhere else.
This seemed to be a migration mistake (the original code using the
configurable path was commented).
2023-09-14 15:02:24 +02:00
Franz Ritter efb5b4bdf9
fix: allow `HierarchicalLayout` to manage circular dependencies (#233)
Uncomment the isAncestor method GraphHierachyNode, which is used by
HiearchlLayout. The uncommented implementation makes sure, that a
circular dependency is detected and resolved. Using the default
isAncestor does not work at this point, because the parent nodes of the
child nodes in the graph are not set.

The problem was unintentionally introduced during the initial refactoring of
the mxGraph code in 413796a.
The idea of the author was to remove an useless comment but they left an
extra /** behind which commented the isAncestor method.
2023-09-14 14:49:07 +02:00
Анатолий Майоров e3b61cdc21
feat: add Manhattan connector EdgeStyle and demo (#232)
Add Manhattan connector edge style and demo for it in Storybook.
Code is based on https://github.com/mwangm/mxgraph-manhattan-connector
Ported code to Typescript, refactored it and placed to `EdgeStyle.ts`.
2023-09-14 14:42:25 +02:00
dependabot[bot] 5bae81a1e3
chore(deps-gha): bump actions/checkout from 3 to 4 (#240) 2023-09-11 06:58:05 +00:00
Thomas Bouffard e5a28b3f30
docs: add JSDoc to CellStyle.baseStyleNames (#222) 2023-08-28 08:36:11 +02:00
Thomas Bouffard e48f3fa052
docs: improve JSDoc of TooltipHandler (#219) 2023-08-28 08:34:44 +02:00
Thomas Bouffard e25fd447be
chore: fix dependabot configuration (#226)
Add the missing `schedule.interval` configuration which is mandatory.
2023-07-13 12:36:07 +02:00
Thomas Bouffard 92759df232
feat: include default css and images in the npm package (#225)
Providing these resources simplify the `maxGraph` integration.

Use the default CSS in ts-example to illustrate how to override defaults
Initiate a documentation to start guiding users.
2023-07-13 12:25:10 +02:00
Thomas Bouffard 03f59aa130
refactor: improve examples in README and ts-example (#223)
ts-example
  - improve the position of the ellipse labels
  - introduce a shared style for ellipse vertices
  - bump vite from 4.3.9 to 4.4.2
  - work when not deployed in the "root" context of the site

README
  - improve the position of the ellipse label
  - display rounded orthogonal edge
  - fix the style configuration to match the rendering shown in the gif
2023-07-10 07:07:19 +02:00
Thomas Bouffard 28b391d4cf
chore: add dependabot configuration for GitHub Actions (#224) 2023-07-09 17:40:51 +02:00
Thomas Bouffard c422ca35ee chore(release): prepare version 0.3.0 2023-07-07 12:19:14 +02:00
Thomas Bouffard e82abd6da3
feat: improve the EdgeMixin type (#212)
The methods defined in the `EdgeMixin` type were not documented.
The signature of the `insertEdge` method was using a spread `any`
parameter, so it provided no guidance nor guard.
Instead, the type now declares the various form of the methods with the
right signature.
2023-07-07 07:56:01 +02:00
Thomas Bouffard cdd8830b5c
feat: improve the VertexMixin type (#211)
The methods defined in the `VertexMixin` type were not documented.
The signature of the `insertVertex` method was using a spread `any`
parameter, so it provided no guidance nor guard.

Instead, the type now declares the various form of the methods with the
right signature.
2023-07-07 07:41:49 +02:00
Thomas Bouffard 4a79be5499
docs: add keywords in package.json (#216)
For the `@maxgraph/core` package.
2023-07-07 07:39:30 +02:00
Thomas Bouffard d5c1d4dc21
docs(release): add task for the "examples" repository (#215)
Also improve the main README
  - improve the paragraph about how to build the npm package locally
  - use the "application" wording instead "project" when required
  - highlight mxGraph and maxGraph
2023-07-07 07:06:09 +02:00
Thomas Bouffard 711db920da
fix: export EditorToolbarCodec and StylesheetCodec (#218)
These 2 classes were previously not exported as they generated runtime
errors when applications integrating `maxGraph` used the Vite dev
server.

Bump vite from 4.3.1 to 4.3.9. This is probably what fixed the problem.
No need to export Stylesheet and EditorToolbar as default as they are
already exported.
2023-07-07 06:54:31 +02:00
Thomas Bouffard d7646d6405
docs: improve JSDoc of GraphLayout and CompositeLayout (#217)
Improve wording
Remove references to mxGraph code
Use modern JS code in examples
2023-07-06 16:59:45 +02:00
Thomas Bouffard 992f3af63d
feat: add GraphDataModel.batchUpdate method (#213)
The method already exists in the `Graph` class. It needs to be made
available in `GraphDataModel` as well, to simplify the transaction
syntax.
Start using it in some places to simplify the syntax and also use
`Graph.batchUpdate`.
2023-07-06 07:02:20 +02:00
Thomas Bouffard 0c7a68bcc1
fix: compute the current style of ShadowRoot element (#214)
`ShadowRoot` element cannot be passed to the `window.getComputedStyle`
method.
Otherwise, errors occur, in particular, it prevents the mouse and
gesture events to be propagated.
2023-07-06 06:50:51 +02:00
Thomas Bouffard fd0d47ad4a
refactor!: remove unused CellMap type (#210) 2023-07-03 11:13:10 +02:00
Thomas Bouffard 3d71f15347
refactor(type)!: don't return 'undefined' in getDefaultXXXStyle (#209)
The default edge and vertex styles are always defined. Updating the
signature of the two methods returning default styles simplifies the
code for callers, who don't have to deal with "undefined" values.

Improve the ts-example
  - rely on no `undefined` style
  - bump vite from 3.2.3 to 4.3.1 and increase the file size warning
  - improve the use of types
- better explain why we cannot use enum to define the 'edgeStyle'
CellStyle property

BREAKING CHANGE: `Stylesheet.getDefaultVertexStyle` and
`Stylesheet.getDefaultEdgeStyle` no longer return `undefined`.
2023-07-02 20:19:51 +02:00
Thomas Bouffard 926596722c
docs: improve the mxGraph migration guide (#206)
Added paragraphs
  - classes renames
  - moved methods
  - how-to migrating styles

---------

Co-authored-by: Souchet Céline <celine.souchet@bonitasoft.com>
2023-06-19 15:28:15 +02:00
Thomas Bouffard 452698660b chore(release): prepare version 0.2.1 2023-06-08 17:03:33 +02:00
Thomas Bouffard 1ec9b723c9
fix: update the `labelPosition` property to restore "no align" (#203)
Allow a special value to be passed to avoid calculating the alignment.
2023-06-08 16:56:03 +02:00
Thomas Bouffard 900593572b
docs: add JSDoc to Graph.batchUpdate (#199) 2023-06-08 16:54:59 +02:00
Thomas Bouffard 8146158fde
docs(dev): explain NodeJS requirements (#202) 2023-06-07 08:43:26 +02:00
Arash Rostami 7c696bb31f
fix: update the signature of gestureUtils.makeDraggable (#198)
The fourth argument of the `makeDraggable` function was not declared as optional.
2023-06-06 11:50:46 +02:00
Thomas Bouffard 487e4b767e chore(release): prepare version 0.2.0 2023-05-22 16:17:25 +02:00
Thomas Bouffard 13211edb28
docs: improve the release process (#177)
Clarify some git operations.
Also
- move an image to the packages/docs for future reuse in the
documentation.
- don't run the GitHub "build" workflow when the docs package or some
markdown files change.
2023-05-22 16:13:33 +02:00
CD Yang fc0b1b77b5
docs: fix some JSDoc errors in `VertexHandler` (#191) 2023-05-22 13:58:34 +02:00
Thomas Bouffard 30bdbe5322
test(ts-support): only check maxGraph types (#193)
Previously, all types development types needed by maxGraph at
development time were checked. Some of them require a newer version of
TypeScript that the one used in the TS support test (to check the
minimum version required to integrate maxGraph in applications). This
made the checks fail. The configuration of the tests has been updated to
only check the maxGraph types used by applications.
2023-05-22 13:51:42 +02:00
Thomas Bouffard 193d4bfe9b
test: introduce tests for model encode/decode (#183)
The code managing the "model encode/decode" is not yet fully
operational.
This set of changes adds tests to replicate current behavior and provide
the infrastructure for problem resolution. In particular, the tests show
that some errors occur on import because some Codecs are not registered.
There is no error if an export has already been performed.

**Other info**
The tests are done using both the model alone or a model linked to a
Graph instance.
Using only the model shows that some properties of objects in the model
are not set correctly: they are not decoded and are stored as `Element`
instances.
The test involving the Graph instance shows the behavior seen in "real"
application which are the consequences of the issue during the import.
2023-04-04 09:28:13 +02:00