Compare commits

...

419 Commits

Author SHA1 Message Date
Yash Singh
9fd6a1396b fix: set root when globalThis is defined 2024-03-23 13:00:51 -07:00
Yash Singh
3df86ea1e6 Merge remote-tracking branch 'origin' into fix/5378 2024-03-23 12:17:21 -07:00
Yash Singh
7bc201673d fix: patch lodash to not use Function calls 2024-03-23 12:06:29 -07:00
Sidharth Vinod
c00bf26c77 Merge pull request #5259 from JingyuMarcelLee/feature/5239_git-graph-bottom-to-top-orientation
feat(git-graph): GitGraph Bottom-to-Top Orientation
2024-03-23 18:11:14 +05:30
Sidharth Vinod
a2f54f7da4 Merge branch 'develop' into feature/5239_git-graph-bottom-to-top-orientation 2024-03-23 17:40:29 +05:30
Sidharth Vinod
12bf139708 Merge pull request #5183 from rowanfr/origin/3258_Flowchart_nodeSpacing_Subgraph
Flowchart: Apply `nodeSpacing`/`rankSpacing` config to subgraphs
2024-03-23 17:39:25 +05:30
Sidharth Vinod
dbb69ad7cd Add extra test 2024-03-23 17:37:45 +05:30
Sidharth Vinod
b78f16ef19 Merge branch 'develop' into origin/3258_Flowchart_nodeSpacing_Subgraph 2024-03-23 17:09:50 +05:30
Sidharth Vinod
223f339682 Merge pull request #4856 from dreathed/bug/4391_make_markdown_auto_wrapping_optional
Bug/4391 make markdown auto wrapping optional
2024-03-23 17:09:23 +05:30
Sidharth Vinod
3f556fa3fc Merge branch 'develop' into origin/3258_Flowchart_nodeSpacing_Subgraph 2024-03-23 17:07:14 +05:30
Sidharth Vinod
16db0c039f Merge branch 'develop' into pr/dreathed/4856
* develop:
  Wait for image to be rendered
  Fix flowchart-elk render test
  chore: Add example page link in index
  fix: ELK diagram remove re-parsing
  Added linting
  fixed title bounds calculation, removed extra title from merging issues
  Centered Title function and changed rendering order for Elk flowchart to find Boundingbox
  Fixed styling for lines for ELK flowchart
2024-03-23 16:37:44 +05:30
Sidharth Vinod
94874ddbbe Add visual test 2024-03-23 16:35:47 +05:30
Sidharth Vinod
ea86697973 Merge branch 'develop' of https://github.com/mermaid-js/mermaid into develop
* 'develop' of https://github.com/mermaid-js/mermaid:
  Fix flowchart-elk render test
  chore: Add example page link in index
  fix: ELK diagram remove re-parsing
  Added linting
  fixed title bounds calculation, removed extra title from merging issues
  Centered Title function and changed rendering order for Elk flowchart to find Boundingbox
  Fixed styling for lines for ELK flowchart
2024-03-23 15:58:30 +05:30
Sidharth Vinod
fa1605e7e7 Wait for image to be rendered 2024-03-23 15:57:29 +05:30
Sidharth Vinod
0edef7b3cb Merge pull request #4844 from itsalam/bug/4813_Fix_Elk_title_arrow_styling
Fixed styling for lines for ELK flowchart
2024-03-23 15:46:21 +05:30
Sidharth Vinod
64757670fc Update docs 2024-03-23 15:43:32 +05:30
Sidharth Vinod
edac77de74 Merge branch 'develop' into pr/dreathed/4856
* develop: (21 commits)
  Linting
  chore:  temp fix for eslint OOM
  chore: Update error snapshots
  Fix ESLint
  chore: Prettier
  chore: YOLO `pnpm --recursive update`
  chore: Remove commitlint
  Fix flowchart-elk render test
  chore: Add example page link in index
  chore: Remove cy.viewport
  fix: Cypress test for Suppress Error
  fix: Race condition when running suppressError test.
  fix: Retain default behavior when rendering errors cases
  chore: Add suppressErrorRendering to secure flags.
  fix: Remove blank SVG
  docs: Rebuild
  Add test
  Add test
  chore: Add suppressErrorRendering to config
  Throw error when detecting diagram type failed and `suppressErrorRendering` is set
  ...
2024-03-23 15:42:55 +05:30
Sidharth Vinod
63e3b1af52 Linting 2024-03-23 15:35:41 +05:30
Sidharth Vinod
f6fa88e5ff Merge pull request #5405 from mermaid-js/sidv/cleanup3
Update all dependencies
2024-03-23 15:33:10 +05:30
Sidharth Vinod
78587e11c7 Merge pull request #4359 from rhysd/bug/4358_suppress_error_rendering
Add `suppressErrorRendering` option to avoid inserting 'Syntax error' message to DOM directly
2024-03-23 15:30:43 +05:30
Sidharth Vinod
784d06f0ae chore: temp fix for eslint OOM 2024-03-23 15:24:18 +05:30
Sidharth Vinod
6846c8f2ed chore: Update error snapshots 2024-03-23 15:24:18 +05:30
Sidharth Vinod
cfa4501793 Fix ESLint 2024-03-23 15:24:18 +05:30
Sidharth Vinod
16f1dccd22 chore: Prettier 2024-03-23 15:24:18 +05:30
Sidharth Vinod
3278899787 chore: YOLO pnpm --recursive update 2024-03-23 15:24:17 +05:30
Sidharth Vinod
cdbee64086 chore: Remove commitlint 2024-03-23 15:23:17 +05:30
Sidharth Vinod
90e134cb26 Merge branch 'develop' into pr/itsalam/4844
* develop:
  Fix flowchart-elk render test
  chore: Add example page link in index
2024-03-23 15:17:42 +05:30
Sidharth Vinod
725b618111 Fix flowchart-elk render test 2024-03-23 15:17:12 +05:30
Sidharth Vinod
f135a3a5e7 chore: Add example page link in index 2024-03-23 15:16:51 +05:30
Sidharth Vinod
8f8e4806a9 Fix flowchart-elk render test 2024-03-23 15:12:48 +05:30
Sidharth Vinod
100123b43e chore: Add example page link in index 2024-03-23 15:07:21 +05:30
Sidharth Vinod
45a5424ebf fix: Remove space which caused extra newline on diagrams 2024-03-23 14:59:36 +05:30
Sidharth Vinod
be37f2c576 fix: Remove repeated config calls 2024-03-23 14:58:55 +05:30
Sidharth Vinod
26ed819664 fix: ELK diagram remove re-parsing 2024-03-23 14:34:46 +05:30
Sidharth Vinod
f907ac30c6 chore: Minor fixes #4856 2024-03-23 14:15:33 +05:30
Sidharth Vinod
60be7012aa chore: Increase ESLint memory limit 2024-03-23 14:15:22 +05:30
Sidharth Vinod
002d493035 Merge branch 'develop' into pr/dreathed/4856
* develop: (935 commits)
  chore: Minor fixes
  chore: Build docs
  Use develop as base on develop branch.
  Update renovate json
  update link
  update announcement and blog pages
  Remove `--force` flag
  Tweak editor.bash
  update link
  chore: update browsers list
  Update integrations-community: add Drupal and module.
  Support Firefox
  Address review comments
  Change run symbol
  feat: Make the examples interactive in the documentation site.
  Add langium
  chore: update browsers list
  chore(deps): update all patch dependencies
  chore(deps): update all minor dependencies
  Update keywords and description
  ...
2024-03-23 13:57:07 +05:30
Sidharth Vinod
a41d6cfef1 Merge branch 'develop' into pr/itsalam/4844
* develop: (517 commits)
  chore: Minor fixes
  chore: Build docs
  Use develop as base on develop branch.
  Update renovate json
  update link
  update announcement and blog pages
  Remove `--force` flag
  Tweak editor.bash
  update link
  chore: update browsers list
  Update integrations-community: add Drupal and module.
  Support Firefox
  Address review comments
  Change run symbol
  feat: Make the examples interactive in the documentation site.
  Add langium
  chore: update browsers list
  chore(deps): update all patch dependencies
  chore(deps): update all minor dependencies
  Update keywords and description
  ...
2024-03-23 13:53:51 +05:30
Sidharth Vinod
ecfa149efc Merge branch 'develop' into pr/rhysd/4359
* develop: (453 commits)
  chore: Minor fixes
  chore: Build docs
  Use develop as base on develop branch.
  Update renovate json
  update link
  update announcement and blog pages
  Remove `--force` flag
  Tweak editor.bash
  update link
  chore: update browsers list
  Update integrations-community: add Drupal and module.
  Support Firefox
  Address review comments
  Change run symbol
  feat: Make the examples interactive in the documentation site.
  Add langium
  chore: update browsers list
  chore(deps): update all patch dependencies
  chore(deps): update all minor dependencies
  Update keywords and description
  ...
2024-03-23 13:46:26 +05:30
Sidharth Vinod
be1270d070 chore: Minor fixes 2024-03-23 13:44:02 +05:30
Sidharth Vinod
75ee4b7709 chore: Build docs 2024-03-23 13:40:07 +05:30
Sidharth Vinod
d5b1028732 Merge pull request #5272 from Ronid1/feature/5245-sequence_diagrame_add_classes_to_actors_text
Feature/5245 sequence diagram add classes to actors text
2024-03-23 13:31:54 +05:30
Sidharth Vinod
6c0be03e62 Merge branch 'develop' into feature/5245-sequence_diagrame_add_classes_to_actors_text 2024-03-23 13:31:47 +05:30
Sidharth Vinod
7ddea1270f Merge pull request #5393 from mermaid-js/update-browserslist
Update Browserslist
2024-03-23 13:30:05 +05:30
Sidharth Vinod
97578c2d3d Merge pull request #5306 from loucadufault/patch-1
Update docs to properly showcase participant ordering
2024-03-23 13:29:49 +05:30
Sidharth Vinod
64806ed169 Merge pull request #5389 from swirtSJW/patch-1
Update integrations-community: add Drupal and module.
2024-03-23 13:27:43 +05:30
Sidharth Vinod
a14c3bcc89 Merge branch 'develop' into patch-1 2024-03-23 13:27:11 +05:30
Sidharth Vinod
1699a23ff0 Merge branch 'develop' into update-browserslist 2024-03-23 13:26:54 +05:30
Sidharth Vinod
268c3fdbd8 Use develop as base on develop branch. 2024-03-23 13:25:19 +05:30
Sidharth Vinod
7689e03739 Merge pull request #5309 from Ronid1/bug/5133-sequence_diagram_fix_arrow_corner
bug/5133 sequence diagram fix arrow corner
2024-03-23 11:46:20 +05:30
Sidharth Vinod
d875540b3a Merge branch 'master' into develop
* master:
  update link
  update announcement and blog pages
  Remove `--force` flag
  Tweak editor.bash
  update link
2024-03-23 11:43:27 +05:30
Sidharth Vinod
16aa9a310c Update renovate json 2024-03-23 11:02:34 +05:30
rowanfr
d0a008566e Merge branch 'develop' into origin/3258_Flowchart_nodeSpacing_Subgraph 2024-03-22 19:50:26 -05:00
Sidharth Vinod
d6c1a59bd4 Merge pull request #5358 from Ronid1/feature/4661_gantt_customize_days_of_weekend
Feature/4661 gantt customize days of weekend
2024-03-22 10:19:46 +00:00
Sidharth Vinod
07117b4c8a Merge branch 'develop' into feature/4661_gantt_customize_days_of_weekend 2024-03-22 15:28:50 +05:30
JingyuMarcelLee
b914f48a91 Minor spelling correction 2024-03-20 01:25:43 -04:00
JingyuMarcelLee
de89355a49 Recommitted Changed due to polluted branch 2024-03-20 01:20:20 -04:00
cmmoran
d370dd43b1 chore: update browsers list 2024-03-18 07:06:21 +00:00
Steve Wirt
c90d7b8395 Update integrations-community: add Drupal and module. 2024-03-16 15:17:10 -04:00
rowanfr
4feb2e639b Merge branch 'develop' into origin/3258_Flowchart_nodeSpacing_Subgraph 2024-03-12 14:16:25 -05:00
Sidharth Vinod
10fb85663f Merge branch 'master' into develop
* master:
  Support Firefox
  Address review comments
  Change run symbol
  feat: Make the examples interactive in the documentation site.
  Add langium
  add latest blog posts
2024-03-11 19:12:12 +05:30
Sidharth Vinod
d68b59a390 Merge pull request #5375 from mermaid-js/update-browserslist
Update Browserslist
2024-03-11 18:56:37 +05:30
Sidharth Vinod
007fb5deb9 Merge pull request #5373 from mermaid-js/renovate/patch-all-patch
chore(deps): update all patch dependencies (patch)
2024-03-11 09:47:55 +00:00
cmmoran
75a6fb1d91 chore: update browsers list 2024-03-11 07:07:00 +00:00
renovate[bot]
32c2aecc62 chore(deps): update all patch dependencies 2024-03-11 05:40:15 +00:00
Sidharth Vinod
b0ef0de032 Merge pull request #5374 from mermaid-js/renovate/all-minor
chore(deps): update all minor dependencies (minor)
2024-03-11 05:23:42 +00:00
renovate[bot]
92692653a7 chore(deps): update all minor dependencies 2024-03-11 02:16:01 +00:00
rowanfr
77ba19cd04 Merge branch 'develop' into origin/3258_Flowchart_nodeSpacing_Subgraph 2024-03-09 16:09:42 -06:00
Sidharth Vinod
579f1f9dc1 Update keywords and description 2024-03-09 13:56:51 +05:30
rowanfr
de4ad764ce Merge branch 'develop' into origin/3258_Flowchart_nodeSpacing_Subgraph 2024-03-08 17:22:48 -06:00
Sidharth Vinod
73888eafe1 Merge branch 'master' into develop
* master:
  Update new diagram doc to reflect focus on Langium
  docs(integrations): update link to Mermaid app for Slack
  @mermaid-js/mermaid-zenuml v0.2.0
  Draft release
  v10.9.0
  Add release version in docs
  zenUML 0.2.0-rc.2
  v10.9.0-rc.2
  Bump @mermaid-js/mermaid-zenuml version to 0.2.0
  Bump version
  Fix store link
2024-03-08 23:13:29 +05:30
Sidharth Vinod
648f779e2c Merge pull request #5338 from ad1992/aakansha/line-name
feat: add name attribute and class "actor-line" to line
2024-03-08 14:28:11 +00:00
Sidharth Vinod
05f59f6ed2 Merge pull request #5351 from kamalkishor1991/patch-1
Add LLM integration section in productivity tools and add HueHive
2024-03-08 09:34:54 +00:00
Aakansha Doshi
233944bf24 use actorBorderColor for actorLineColor in theme-neutral 2024-03-08 11:20:44 +05:30
rowanfr
424d988f93 Merge branch 'develop' into origin/3258_Flowchart_nodeSpacing_Subgraph 2024-03-07 19:56:26 -06:00
Kamal Joshi
5f84344c3c make LLM integrations a new headline 2024-03-07 20:20:58 +05:30
Kamal Joshi
9fa681f5a8 build docs 2024-03-07 13:24:52 +05:30
Kamal Kishor Joshi
36b6733c4f Merge branch 'develop' into patch-1 2024-03-07 13:10:58 +05:30
Sidharth Vinod
2c195c73a9 Merge branch 'develop' into feature/4661_gantt_customize_days_of_weekend 2024-03-07 12:38:19 +05:30
Sidharth Vinod
1dd05ffbb1 Merge branch 'develop' into aakansha/line-name 2024-03-07 10:38:17 +05:30
Sidharth Vinod
4884b01b8a Merge pull request #5365 from aloisklink/ci/stop-commenting-size-diff-in-PRs
ci(e2e): avoid commenting on PRs in CI, fixing PRs from forks
2024-03-07 10:38:05 +05:30
Alois Klink
46136b5632 ci(e2e): avoid commenting on PRs in CI
GitHub Actions can't comment on PRs, if the PR is made from a forked
repo, as [the github token won't have write permissions][1].

However, we can instead use GitHub Actions' [Adding a Job Summary][2]
feature, which prints some custom output for each job.

[1]: https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs#changing-the-permissions-in-a-forked-repository
[2]: https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary

Fix: e0448a7b7b
2024-03-06 18:51:17 +00:00
rowanfr
ae29dd124c Merge branch 'develop' into origin/3258_Flowchart_nodeSpacing_Subgraph 2024-03-06 12:06:06 -06:00
Ronid1
703460ea95 Merge branch 'develop' of https://github.com/mermaid-js/mermaid into feature/4661_gantt_customize_days_of_weekend 2024-03-06 09:09:42 -08:00
Ronid1
b7c889bb70 fix review commets 2024-03-06 09:08:19 -08:00
Aakansha Doshi
12bbbcaff0 Empty-Commit 2024-03-06 19:20:56 +05:30
Aakansha Doshi
b156c1ab25 assign actorLineColor 2024-03-06 19:15:41 +05:30
Aakansha Doshi
f1bcf89723 Merge branch 'develop' into aakansha/line-name 2024-03-06 17:26:21 +05:30
Aakansha Doshi
099a239207 revert styling changes 2024-03-06 17:20:15 +05:30
Sidharth Vinod
821076ba9c Merge pull request #5235 from mermaid-js/sizeDiff
Calculate package size diff on PRs
2024-03-06 14:56:01 +05:30
Sidharth Vinod
60dd27671b Merge branch 'develop' into sizeDiff
* develop: (280 commits)
  chore: Remove unused imports in block
  Fix spelling
  Update docs
  Lychee ignore chrome webstore
  Update link
  chore(deps): update all patch dependencies
  build(docs): vendor CSS dependencies
  chore(deps): update all minor dependencies
  Ran lint:fix
  Fix chrome webstore url causing 404
  build(deps): update `langium` to `v3` and apply the required changes
  Resolves E2E testing issues and issue #5343
  Fix spelling
  Fix community integrations
  Fix docs
  docs: Fix config
  Update all minor dependencies
  Amend docs to document gitgraph parallel commits
  Fix lint
  Use Yarn Add COREPACK_ENABLE_STRICT
  ...
2024-03-06 14:55:18 +05:30
Sidharth Vinod
0b0d901b7f Merge pull request #5069 from mermaid-js/next
v11
2024-03-06 14:53:13 +05:30
Sidharth Vinod
7fec51f322 chore: Remove unused imports in block 2024-03-06 14:18:27 +05:30
Sidharth Vinod
1659ace65d Fix spelling 2024-03-06 14:16:32 +05:30
Sidharth Vinod
3340608689 Merge branch 'develop' into next
* develop:
  Update docs
  chore(deps): update all patch dependencies
2024-03-06 14:05:16 +05:30
rowanfr
5ccdb6f213 Merge branch 'develop' into origin/3258_Flowchart_nodeSpacing_Subgraph 2024-03-05 16:38:24 -06:00
Ronid1
0981b66a5f Merge branch 'develop' of https://github.com/mermaid-js/mermaid into Feature/4661_gantt_customize_days_of_weekend 2024-03-05 12:01:02 -08:00
Ronid1
3ddcc2d4ea fix lint inssue 2024-03-05 12:00:14 -08:00
Ronid1
6005479918 update docs 2024-03-05 11:53:50 -08:00
Ronid1
19e049642b add unit and integration tests 2024-03-05 11:18:49 -08:00
Sidharth Vinod
a43cd55c53 Merge branch 'develop' into next
* develop:
  Lychee ignore chrome webstore
  Update link
  build(docs): vendor CSS dependencies
  chore(deps): update all minor dependencies
  Ran lint:fix
  Fix chrome webstore url causing 404
2024-03-05 21:07:26 +05:30
Ronid1
b67dee1eed configure weekends start day 2024-03-04 11:53:47 -08:00
Kamal Joshi
be6b3176f4 fix linting issues 2024-03-03 08:51:55 +05:30
Kamal Kishor Joshi
aef29affa3 Add LLM integration section in productivity tools and add HueHive
Since mermaid diagram creation is a perfact usecase for LLMs adding a section for LLM integration make sense. HueHive is a tool to create and visualize mermaid diagrams with the help of ChatGPT.
Please let me know if it is fine to add this or this should be added in some other section. Thanks.

PS: I am creater of HueHive diagrams tool.
2024-03-02 23:19:11 +05:30
Sidharth Vinod
70d236244f Merge pull request #5345 from Yokozuna59/update-langium-to-v3
build(deps): update `langium` to `v3` and apply the required changes
2024-03-01 14:44:20 +05:30
Sidharth Vinod
171a2019ec Merge branch 'next' into pr/Yokozuna59/5345
* next: (100 commits)
  Resolves E2E testing issues and issue #5343
  Fix spelling
  Fix community integrations
  Fix docs
  docs: Fix config
  Update all minor dependencies
  Amend docs to document gitgraph parallel commits
  Fix lint
  Use Yarn Add COREPACK_ENABLE_STRICT
  Added link to Blazorade Mermaid to the community integrations page.
  Bump node version
  Add lcov to cspell
  Correcting path to docker-entrypoint.sh
  Update recommended Vitest extension
  Replace mermaid-js.github.io links
  Replace links to docs with links to webhelp
  Link to contributing page on webhelp
  Changes to timeline.md 1. Added colons to all 'NOTES' for consistency.
  Changes to timeline.md 1. Updates the Wikipedia citation to include a link. 2. Removed periods from documentation sections to be consistent (some had periods, some didn't) 3. Added a space to a coding example for spacing consistency.
  Replace version number placeholder
  ...
2024-03-01 12:22:14 +05:30
Sidharth Vinod
70df6bbbca Merge branch 'develop' into next
* develop:
  Resolves E2E testing issues and issue #5343
2024-03-01 12:20:45 +05:30
Sidharth Vinod
5807d521b7 Merge branch 'develop' into next
* develop: (99 commits)
  Fix spelling
  Fix community integrations
  Fix docs
  docs: Fix config
  Update all minor dependencies
  Amend docs to document gitgraph parallel commits
  Fix lint
  Use Yarn Add COREPACK_ENABLE_STRICT
  Added link to Blazorade Mermaid to the community integrations page.
  Bump node version
  Add lcov to cspell
  Correcting path to docker-entrypoint.sh
  Update recommended Vitest extension
  Replace mermaid-js.github.io links
  Replace links to docs with links to webhelp
  Link to contributing page on webhelp
  Changes to timeline.md 1. Added colons to all 'NOTES' for consistency.
  Changes to timeline.md 1. Updates the Wikipedia citation to include a link. 2. Removed periods from documentation sections to be consistent (some had periods, some didn't) 3. Added a space to a coding example for spacing consistency.
  Replace version number placeholder
  Fix link to Contributors section in README
  ...
2024-03-01 12:18:25 +05:30
Reda Al Sulais
2b2bbe35d0 build(deps): update langium to v3 and apply the required changes 2024-02-29 20:38:15 +03:00
Alois Klink
8862d63377 Merge branch 'develop' into origin/3258_Flowchart_nodeSpacing_Subgraph 2024-02-29 16:27:13 +00:00
rowanfr
0cb365cf31 Merge branch 'develop' into origin/3258_Flowchart_nodeSpacing_Subgraph 2024-02-29 05:45:16 -06:00
Aakansha Doshi
49a0d0d9bf Merge branch 'develop' into aakansha/line-name 2024-02-29 12:11:45 +05:30
rowanfr
3602191f69 Added E2E testing for spacing
This adds E2E testing for spacing and provides more appropriate comments for the changes made to `index.js`
2024-02-28 17:12:20 -06:00
rowanfr
5935e277e6 Merge branch 'develop' into origin/3258_Flowchart_nodeSpacing_Subgraph 2024-02-28 14:01:43 -06:00
rowanfr
0ce33cb160 Update packages/mermaid/src/dagre-wrapper/index.js
The code setting the `ranksep` and `nodesep` to subgraphs was made cleaner and more legible while maintaining the intended functionality of subgraph spacing

Co-authored-by: Alois Klink <alois@aloisklink.com>
2024-02-28 13:55:21 -06:00
Ronid1
d945030803 Merge branch 'develop' of https://github.com/mermaid-js/mermaid into bug/5133-sequence_diagram_fix_arrow_corner 2024-02-27 11:31:58 -08:00
Aakansha Doshi
60a484f1e4 feat: add name attribute to line 2024-02-27 18:20:03 +05:30
Ronid1
c8fc989237 update arrowhead coordinates 2024-02-22 15:08:58 -08:00
loucadufault
392ebd0af4 Update docs to properly showcase participant ordering 2024-02-21 18:45:26 -05:00
Sidharth Vinod
d11bfaa6c4 Merge pull request #4751 from Yokozuna59/add-pie-langium-parser
feat: add `pie` langium parser
2024-02-11 21:54:36 +05:30
Sidharth Vinod
25cd86feec Fix docs 2024-02-11 20:26:43 +05:30
Sidharth Vinod
062176d8d0 Merge branch 'next' into pr/Yokozuna59/4751
* next:
  Fix BlockDiagramConfig
  Fix docs
2024-02-11 20:26:16 +05:30
Sidharth Vinod
a344d88020 Fix BlockDiagramConfig 2024-02-11 20:25:33 +05:30
Sidharth Vinod
30b180d77b Fix docs 2024-02-11 20:22:35 +05:30
Sidharth Vinod
00423ed152 Fix config 2024-02-11 20:05:08 +05:30
Sidharth Vinod
48ff3b2c11 Merge branch 'next' into pr/Yokozuna59/4751
* next: (118 commits)
  Update Deps
  chore(deps): update all patch dependencies
  fix typo cutomers => customers
  chore(deps): update all minor dependencies
  Fix macOS onboarding issues
  Bump @zenuml/core and update render options in mermaid-zenuml (#5257)
  Fixed Typo in ErrorRenderer.ts (#5256)
  #3358 Removing redundant file
  #3358 Fix after review
  Fix selector
  #3358 Renaming of IOperation to ActionFun
  chore: Add interface naming
  build(deps-dev): bump vite from 4.4.12 to 4.5.2
  Update container
  Update container
  Remove pnpm cache
  3358 Adding types for blockArrowHelper
  #3358n Updated lockfile
  Update docs
  #3358 Another set of review changes
  ...
2024-02-11 20:00:27 +05:30
Sidharth Vinod
eee0d4bf31 Update Deps 2024-02-11 19:58:55 +05:30
Sidharth Vinod
e047755a21 Merge branch 'develop' into next
* develop: (124 commits)
  chore(deps): update all patch dependencies
  fix typo cutomers => customers
  chore(deps): update all minor dependencies
  Fix macOS onboarding issues
  Bump @zenuml/core and update render options in mermaid-zenuml (#5257)
  Fixed Typo in ErrorRenderer.ts (#5256)
  #3358 Removing redundant file
  #3358 Fix after review
  Fix selector
  #3358 Renaming of IOperation to ActionFun
  chore: Add interface naming
  build(deps-dev): bump vite from 4.4.12 to 4.5.2
  Update container
  Update container
  Remove pnpm cache
  3358 Adding types for blockArrowHelper
  #3358n Updated lockfile
  Update docs
  #3358 Another set of review changes
  Use `.node-version` file in workflows
  ...
2024-02-11 19:56:55 +05:30
Sidharth Vinod
b30d609d19 Merge branch 'add-pie-langium-parser' of github.com:Yokozuna59/mermaid into pr/Yokozuna59/4751
* 'add-pie-langium-parser' of github.com:Yokozuna59/mermaid: (48 commits)
  make pie parser async
  Changes to gantt.html 1. Added a Gantt diagram that demonstrates to users that hashtages and semicolons can be added to titles, sections, and task data. Changes to gantt.spec.js 1. Added unit tests to ensure that semicolons and hashtags didn't break the functionality of the gantt diagram when used in titles, sections or task data. Changes to /parser/gantt.spec.js 1. Added rendering tests to ensure that semicolons and hashtags in titles, sections, and task data didn't break the rendering of Gantt diagrams.
  perf: prevent adding multiple DOMPurify hooks
  Update docs
  chore: Update tests
  Fix types
  refactor: Make parser.parse async
  refactor: Support async parsers Add `Diagram.fromText`
  Lint
  Remove echo
  RefTest
  Echo event
  Update cypress
  Fix applitools
  Fix applitools
  add sequenceDiagram link e2e test
  fix sequence diagram popup
  Changes to gantt.jison 1. Consistent spacing on line 30
  Changes to gantt.jison 1. Removed typo
  Changes to gnatt.jison 1. Removed the hash and semicolon symbols from the title regex to allow for their use. 2. Removed the hash and semicolon symbols from the section regex to allow for their use. 3. Removed the hash and semicolon symbols for the taskTxt regex to allow for their use. I did not remove the colon because the parser fails to recognize when the actual taskData begins if that distinctions isn't kept. 4. Removed the regex \#[^\n]* which skipped comments to fix some bugs with hash symbols in the taskTxt. I tested this changed by putting it back and using the comment  to see if it was recognized as a comment, but I would receive a syntax error and the diagram would not be rendered. So, I think we can safely remove that line, BUT it would be best practice if someone else tested this change to ensure that this will not break anyone's Gantt diagrams.
  ...
2024-02-11 19:36:26 +05:30
Ronid1
c3d9aa791a update docs 2024-02-06 15:17:15 -08:00
Ronid1
f846e7719e add tests 2024-02-06 15:12:13 -08:00
Ronid1
f25c215f6a add actor-man and actor-box classes to text tag 2024-02-06 14:34:09 -08:00
rowanfr
82c405289d Merge branch 'develop' into origin/3258_Flowchart_nodeSpacing_Subgraph 2024-01-27 18:41:01 -06:00
Reda Al Sulais
191ea24e29 make pie parser async 2024-01-27 21:17:23 +03:00
Reda Al Sulais
72a6fad1db Merge branch next into add-pie-langium-parser 2024-01-27 20:55:15 +03:00
Reda Al Sulais
a2a99485f9 Merge branch 'mermaid-js:develop' into add-pie-langium-parser 2024-01-27 20:35:26 +03:00
Sidharth Vinod
969e2c1ff1 Merge pull request #5233 from mermaid-js/AsyncParse
refactor: Support async parsers [internal]
2024-01-27 20:43:22 +05:30
Sidharth Vinod
7d0faa3fed Merge branch 'develop' into bug/4358_suppress_error_rendering 2024-01-26 23:29:27 +05:30
Sidharth Vinod
4256177531 chore: Remove cy.viewport 2024-01-26 23:07:13 +05:30
Sidharth Vinod
327530fb9d Merge branch 'develop' into pr/rhysd/4359
* develop: (171 commits)
  Lint
  Remove echo
  RefTest
  Echo event
  Update cypress
  Fix applitools
  docs: fix lint
  docs: move community to Discord
  Swap condition blocks to avoid using negation
  Reposition const declaration to ideal place
  Change repetitive values into consts
  docs: fix swimm link
  Fix Update Browserslist
  Use pnpm/action-setup@v2
  Fix lint
  Cleanup e2e.yml
  Ignore push events on merge queue
  Remove ::
  Remove ::
  Remove ::
  ...
2024-01-26 23:05:16 +05:30
Reda Al Sulais
55be75c974 Merge branch next into add-pie-langium-parser 2024-01-25 14:56:34 +03:00
Yokozuna59
47a6ce4342 Update docs 2024-01-25 14:32:23 +03:00
Sidharth Vinod
3ecb841c1a Remove dummy change from e2e.yml 2024-01-24 22:17:10 +05:30
Sidharth Vinod
1d2450245e Remove dummy change 2024-01-24 22:16:21 +05:30
Sidharth Vinod
f6c4c9260f Remove log 2024-01-24 22:13:17 +05:30
Sidharth Vinod
f354d68350 Format message 2024-01-24 22:12:33 +05:30
Sidharth Vinod
bea76aa682 Format Size 2024-01-24 21:59:58 +05:30
Sidharth Vinod
6d4b27aacb Fix out format 2024-01-24 21:51:15 +05:30
Sidharth Vinod
e008b7dae7 Remove logs 2024-01-24 21:45:30 +05:30
Sidharth Vinod
96a3991c56 Update glob 2024-01-24 21:42:31 +05:30
Sidharth Vinod
8d1d691bc3 debug 2024-01-24 21:38:59 +05:30
Sidharth Vinod
e07608209b debug 2024-01-24 21:28:49 +05:30
Sidharth Vinod
50cdb74d54 Fix file path 2024-01-24 21:25:05 +05:30
Sidharth Vinod
edc091f4d4 Test 2024-01-24 21:16:10 +05:30
Sidharth Vinod
e0448a7b7b Feat: Calculate package size change on PRs 2024-01-24 21:12:16 +05:30
Sidharth Vinod
0f02f5ff34 Skip running tests 2024-01-24 21:04:57 +05:30
Sidharth Vinod
b2111adef5 Feat: Calculate package size change on PRs 2024-01-24 21:02:12 +05:30
Sidharth Vinod
442da6c4a2 chore: Update tests 2024-01-24 14:03:43 +05:30
Sidharth Vinod
f715863540 Fix types 2024-01-24 13:59:16 +05:30
Sidharth Vinod
ed7dbb100d refactor: Make parser.parse async 2024-01-24 13:50:45 +05:30
Sidharth Vinod
52fdea0419 refactor: Support async parsers
Add `Diagram.fromText`
2024-01-24 13:41:51 +05:30
Sidharth Vinod
b7c72cb38a Merge pull request #4839 from mermaid-js/feat/948_packetDiagram
feat: Add packet diagram
2024-01-24 01:05:07 +05:30
Sidharth Vinod
5cc20b5e44 Merge branch 'next' into feat/948_packetDiagram
* next: (316 commits)
  Lint
  Remove echo
  RefTest
  Echo event
  Update cypress
  Fix applitools
  Fix applitools
  docs: fix lint
  docs: move community to Discord
  Swap condition blocks to avoid using negation
  Reposition const declaration to ideal place
  Change repetitive values into consts
  docs: fix swimm link
  Fix Update Browserslist
  Use pnpm/action-setup@v2
  Fix lint
  Cleanup e2e.yml
  Ignore push events on merge queue
  Remove ::
  Remove ::
  ...
2024-01-24 00:58:55 +05:30
Sidharth Vinod
ce9a9db33a Merge branch 'develop' into next
* develop:
  Lint
  Remove echo
  RefTest
  Echo event
  Update cypress
  Fix applitools
2024-01-24 00:47:31 +05:30
Sidharth Vinod
31e19a0434 Fix applitools 2024-01-23 20:28:11 +05:30
Sidharth Vinod
16968eb38c Fix lint 2024-01-23 20:12:54 +05:30
Sidharth Vinod
5c46b98eee Merge branch 'next' into pr/Yokozuna59/4751
* next: (35 commits)
  docs: fix lint
  docs: move community to Discord
  Swap condition blocks to avoid using negation
  Reposition const declaration to ideal place
  Change repetitive values into consts
  docs: fix swimm link
  Fix Update Browserslist
  Use pnpm/action-setup@v2
  Fix lint
  Delete docs/syntax/gantt.html
  Add more detailed docs for Gantt tasks
  Update docs
  Update packages/mermaid/src/docs/syntax/flowchart.md
  Update flowchart.md #5195
  Add tests for gitgraphs with unconnected branches
  Include logic for gitgraph with unconnected branches
  Include undefined on findClosestParent return types and update the function
  Remove unnecessary argument on findClosestParent call
  Use already defined const instead of method call
  Fix pnpm-lock by resetting it, sorry!
  ...
2024-01-23 20:02:01 +05:30
Sidharth Vinod
ba46747cb0 Merge branch 'develop' into next
* develop: (35 commits)
  docs: fix lint
  docs: move community to Discord
  Swap condition blocks to avoid using negation
  Reposition const declaration to ideal place
  Change repetitive values into consts
  docs: fix swimm link
  Fix Update Browserslist
  Use pnpm/action-setup@v2
  Fix lint
  Delete docs/syntax/gantt.html
  Add more detailed docs for Gantt tasks
  Update docs
  Update packages/mermaid/src/docs/syntax/flowchart.md
  Update flowchart.md #5195
  Add tests for gitgraphs with unconnected branches
  Include logic for gitgraph with unconnected branches
  Include undefined on findClosestParent return types and update the function
  Remove unnecessary argument on findClosestParent call
  Use already defined const instead of method call
  Fix pnpm-lock by resetting it, sorry!
  ...
2024-01-23 20:01:40 +05:30
rowanfr
140645b760 Merge branch 'develop' into origin/3258_Flowchart_nodeSpacing_Subgraph 2024-01-22 23:58:19 -06:00
Yokozuna59
0dcca35ec2 Update docs 2024-01-20 11:14:58 +00:00
Reda Al Sulais
c7eaee037e Merge branch next into add-sankey-langium-parser 2024-01-20 14:10:30 +03:00
rowanfr
fa201ad9ad Merge branch 'develop' into origin/3258_Flowchart_nodeSpacing_Subgraph 2024-01-19 18:52:16 -06:00
Sidharth Vinod
832e3f5d49 Merge branch 'develop' into next 2024-01-19 23:24:37 +05:30
Sidharth Vinod
6a1a38b395 Merge branch 'develop' into origin/3258_Flowchart_nodeSpacing_Subgraph 2024-01-19 22:18:14 +05:30
Sidharth Vinod
6261fce91f Merge pull request #5077 from mermaid-js/sidv/FlowDB_TS
refactor: Convert flowDB to TS
2024-01-19 14:15:23 +05:30
Sidharth Vinod
e8f655439d Fix merge error 2024-01-19 13:59:53 +05:30
Sidharth Vinod
c11093fa71 Update packages/mermaid/src/diagrams/flowchart/flowDb.ts
Co-authored-by: Alois Klink <alois@aloisklink.com>
2024-01-19 13:49:10 +05:30
Sidharth Vinod
af7282511a Merge branch 'next' into sidv/FlowDB_TS
* next: (194 commits)
  Use pixelmatch for image comparison
  Run all tests
  Fix lint
  Update lockfile
  E2E test
  Use cache to store snapshots
  chore(deps): update all patch dependencies
  Change string concatenation to template literal
  Revert "Revert 5041 feature/4935 subgraph title margin config option"
  build(deps-dev): bump follow-redirects from 1.15.2 to 1.15.5
  Draft release on master
  docs: Add release version
  Revert "fix: render the participants in same order as they are created"
  Revert "Feature/4935 subgraph title margin config option"
  Fix typo
  Run dev docs without npx
  Remove npx completely from run script
  Update docs
  Fix linters
  Removed volta requirement, leave pnpm only
  ...
2024-01-19 13:48:03 +05:30
Sidharth Vinod
58b6cf0174 Merge branch 'develop' into next
* develop: (50 commits)
  Use pixelmatch for image comparison
  Run all tests
  Fix lint
  Update lockfile
  E2E test
  Use cache to store snapshots
  chore(deps): update all patch dependencies
  Change string concatenation to template literal
  Revert "Revert 5041 feature/4935 subgraph title margin config option"
  build(deps-dev): bump follow-redirects from 1.15.2 to 1.15.5
  Run dev docs without npx
  Remove npx completely from run script
  Update docs
  Fix linters
  Removed volta requirement, leave pnpm only
  Fixed dead link
  build
  Update docs
  Updated contributing docs after review, minor fixes
  Updated gantt chart docs to show all config options
  ...
2024-01-19 13:46:10 +05:30
Sidharth Vinod
7abcb61afb Merge branch 'develop' into bug/4813_Fix_Elk_title_arrow_styling 2024-01-19 12:44:50 +05:30
rowanfr
ff5240c0bc Merge branch 'develop' into origin/3258_Flowchart_nodeSpacing_Subgraph 2024-01-18 22:37:43 -06:00
rowanfr
3fad11e104 Merge branch 'develop' into origin/3258_Flowchart_nodeSpacing_Subgraph 2024-01-17 22:40:19 -06:00
Sidharth Vinod
aab7631a9f Merge branch 'develop' into next
* develop: (62 commits)
  Draft release on master
  docs: Add release version
  Revert "fix: render the participants in same order as they are created"
  Revert "Feature/4935 subgraph title margin config option"
  Fix typo
  add inadvertent tracking removal
  update announcement bar
  Update integrations-community.md (Add Codemia to the list of productivity tools using Mermaid.)
  v10.7.0
  10.6.2-rc.3
  docs: Remove broken integration
  chore: Minor cleanup of imperativeState
  chore(deps): update all minor dependencies
  adds corresponding change in docs/ecosystem
  Adds Unison programming language to community integrations list
  update verbiage
  update verbiage
  add jetbrains blog post
  additional updates
  Fixed parser/tests
  ...
2024-01-16 19:15:33 +05:30
rowanfr
0c7e2e2364 Fixed linting error 2024-01-15 20:48:29 -06:00
rowanfr
f693084065 Fixed configuration override on subgraphs
There was an issue with overriding the subgraphs with the main graphs direction which this commit fixes. It only overrides `rankdir` on the `setGraph` function so that the subgraph preserves it's `rankdir`. There is likely a better way of doing this by modifying the initialization of subgraph configuration to match the main graph when it comes to other elements in the JSON object which composes the graph label.

As we modify the codebase this added line can be deprecated once we add more modular control to subgraphs such as allowing custom spacing or configurations for them. As `rankdir` is the only thing one can set with the `direction` keyword that is the only variable being overwritten for now.
2024-01-15 20:21:01 -06:00
rowanfr
a5ecc7a06d Merge branch 'develop' into origin/3258_Flowchart_nodeSpacing_Subgraph 2024-01-15 16:40:08 -06:00
rowanfr
565f1543c6 Update demos/flowchart.html
Co-authored-by: Nikolay Rozhkov <nironame@gmail.com>
2024-01-14 17:12:12 -06:00
rowanfr
36c84b3fec Merge branch 'develop' into origin/3258_Flowchart_nodeSpacing_Subgraph 2024-01-11 18:31:53 -06:00
rowanfr
65fd3a3193 Merge branch 'develop' into origin/3258_Flowchart_nodeSpacing_Subgraph 2024-01-10 19:06:55 -06:00
rowanfr
3bbd8fe4c9 Removed unnecessary function
Removed unnecessary function to pass test coverage CI
2024-01-07 23:08:42 -06:00
rowanfr
beb308c5b3 Resolved issue with subgraph configuration
This commit resolves the issues with subgraph configuration, specifically for nodeSpacing and rankSpacing. This commit additionally adds an example graph to the `flowchart.html` to demonstrate this resolution. This commit resolves #3258
2024-01-07 05:56:53 -06:00
Reda Al Sulais
526d2a61f8 Merge branch 'mermaid-js:develop' into add-pie-langium-parser 2024-01-02 23:05:40 +03:00
Reda Al Sulais
54a09ead95 pref: remove rearrangeRules from AbstractMermaidTokenBuilder 2023-12-31 15:31:15 +03:00
Reda Al Sulais
c2ea23f01f Merge branch next into add-pie-langium-parser 2023-12-31 15:21:47 +03:00
Sidharth Vinod
ff6188bd80 Merge pull request #5118 from mermaid-js/sidv/diagramType
feat: Add diagramType to RenderResult and ParseResult
2023-12-10 22:05:40 +05:30
Sidharth Vinod
dc1b2a6873 Merge pull request #5126 from diegosogari/chore/5125-fix-duplicate-config-types
Remove default properties before generating the config types
2023-12-10 22:05:12 +05:30
Diego Sogari
d732a146c2 Merge branch 'next' into chore/5125-fix-duplicate-config-types 2023-12-08 09:35:43 -03:00
Sidharth Vinod
b9bc518a0a chore: Add docs 2023-12-08 10:06:36 +05:30
Sidharth Vinod
edf32911be Merge branch 'sidv/diagramType' of https://github.com/mermaid-js/mermaid into sidv/diagramType
* 'sidv/diagramType' of https://github.com/mermaid-js/mermaid:
  Update docs
  Update packages/mermaid/src/docs/config/usage.md
2023-12-08 09:57:33 +05:30
Sidharth Vinod
b8470a471b chore: Add docs 2023-12-08 09:57:08 +05:30
sidharthv96
45880395ea Update docs 2023-12-08 04:18:24 +00:00
Sidharth Vinod
6f3c9205cd Update packages/mermaid/src/docs/config/usage.md
Co-authored-by: Alois Klink <alois@mermaidchart.com>
2023-12-08 09:45:49 +05:30
Sidharth Vinod
96c90b24d1 Merge branch 'next' into sidv/diagramType
* next:
  chore: Fix import.meta.vitest warnings
  Update docs
  Update NiceGuy.io links in integrations-community.md
2023-12-08 09:39:14 +05:30
Sidharth Vinod
aa4bfa0727 chore: Fix import.meta.vitest warnings 2023-12-08 09:38:54 +05:30
Sidharth Vinod
8873ffca12 chore: Overload parse type to be more specific.
Co-authored-by: Alois Klink <alois@aloisklink.com>
2023-12-08 09:37:46 +05:30
Diego Sogari
0bda748ad9 Remove default properties before generating the config types 2023-12-07 17:30:56 -03:00
Sidharth Vinod
867686fe34 refactor: Address review comments 2023-12-07 11:27:48 +05:30
Sidharth Vinod
60f92dcdbc Merge branch 'develop' into next
* develop:
  Update docs
  Update NiceGuy.io links in integrations-community.md
2023-12-07 11:02:27 +05:30
Sidharth Vinod
6871ad09e6 test: Update tests 2023-12-06 22:27:00 +05:30
Sidharth Vinod
479188bc40 refactor: Change return type to retain partial backwards compatibility. 2023-12-06 22:23:37 +05:30
Sidharth Vinod
c3c7ccd78a feat: Add diagramType to RenderResult and ParseResult #5117 2023-12-06 21:11:07 +05:30
Sidharth Vinod
000b432bb2 Merge branch 'develop' into next
* develop: (70 commits)
  build(deps-dev): bump vite from 4.4.9 to 4.4.12
  Changes to .prettierignore 1. Added 'demos/dev/**' to be ignored by Prettier. 2. Added '!/demos/dev/example.html' so that Prettier ensures no one changes the example.html in a way that doesn't obey the Prettier code formatting rules.
  build: use `tsx` instead of `ts-node-esm`
  chore: Downgrade node to 18.18.2
  fix: #5100 Add viewbox to sankey
  chore(deps): update all minor dependencies
  chore: Rename test
  test: Add unit test for generic classname and namespace
  fix: Check if parentCommit is provided
  Split type from generic class name
  Condition of Parent Id Without Merge Commit Added
  Referenced the PmWiki's Cookbook recipe enabling MermaidJs schematics in wiki pages
  test(e2e): fix pie chart E2E tests for PR #4288
  Add dummy commit to trigger GH checks
  chore: Revert unnecessary export
  refactor: Remove unnecessary calculations
  chore: Fix computeWidth function
  chore: Cleanup setupGraphViewbox
  Update docs
  update mermaidAPI to cleanup the text before passing to getDiagramFromText
  ...
2023-12-06 20:50:04 +05:30
Alois Klink
dacd2cbc30 Merge remote-tracking branch 'origin/develop' into bug/4358_suppress_error_rendering
I ran `pnpm run --filter mermaid docs:build` to fix merge conflicts in
docs/config/setup/modules/mermaidAPI.md
2023-12-06 09:12:00 +00:00
Sidharth Vinod
65a08efa00 chore: Cleanup types 2023-11-28 00:31:05 +05:30
Sidharth Vinod
60266289e0 chore: Remove unused file 2023-11-28 00:17:16 +05:30
Sidharth Vinod
3145758411 Convert flowDb.spec.js 2023-11-28 00:15:22 +05:30
Sidharth Vinod
d7948a845d fix: Flatten Nodelist 2023-11-28 00:12:22 +05:30
Sidharth Vinod
aff69e583e chore: Fix bindFunctions type 2023-11-27 23:10:36 +05:30
Sidharth Vinod
e7f7b6ad68 chore: Separate types 2023-11-27 14:44:03 +05:30
Sidharth Vinod
b5e58f4076 refactor: Convert flowDB to TS 2023-11-27 10:57:04 +05:30
Sidharth Vinod
fd0f51926e Move mermaid-parser to @mermaid-js/parser 2023-11-26 21:17:08 +05:30
Sidharth Vinod
733d6fe6eb Move mermaid-parser to @mermaid-js/parser 2023-11-26 21:10:00 +05:30
Sidharth Vinod
b2509c82b8 Merge branch 'develop' into bug/4813_Fix_Elk_title_arrow_styling 2023-11-25 10:34:55 +05:30
Sidharth Vinod
bffbf87cb3 Version for rc release 2023-11-24 14:08:56 +05:30
Sidharth Vinod
63890cc2fd Version for rc release 2023-11-24 14:07:52 +05:30
Sidharth Vinod
9ade49b39c Version for rc release 2023-11-24 14:02:55 +05:30
Sidharth Vinod
6d49cd6859 Merge pull request #5049 from mermaid-js/sidv/splitELK
Move ELK to standalone package
2023-11-24 11:05:34 +05:30
Sidharth Vinod
5eb116059b Turn off patch coverage 2023-11-24 11:04:11 +05:30
Sidharth Vinod
bcdd1c56bf chore: Optimize dev server 2023-11-24 10:54:43 +05:30
Sidharth Vinod
cbcd2cce9b chore: Optimize dev server 2023-11-24 10:38:32 +05:30
Sidharth Vinod
94c3d7fb60 Merge branch 'next' into sidv/splitELK
* next: (39 commits)
  reset the testTimeout to 5 seconds and change it directly in the test
  update testTimeout from 5 seconds to 10 seconds
  Update all patch dependencies
  fix broken link
  add latest blog post
  Update all minor dependencies
  fix linting
  fix: set proper shiki theme for light and dark modes
  fix: change shiki theme to github-light
  add latest blog post
  GitGraph: made reroute fn more readable
  GitGraph: simplified branch check in arrow rerouting fn
  GitGraph: added commit IDs to e2e test to remove false positives
  GitGraph: Moved branch curve check to within reroute check fn
  GitGraph: corrected minor typo in comment.
  GitGraph: added 2x e2e tests for branches not used immediately
  GitGraph: added branch checking to rerouting
  GitGraph: Added e2e tests for deferred branch use.
  GitGraph: e2e tests, added commit IDs to test graphs
  GitGraph: fixed an e2e branch for vertical branch
  ...
2023-11-24 09:55:31 +05:30
Sidharth Vinod
a2db4a464a Merge branch 'develop' into next
* develop: (39 commits)
  reset the testTimeout to 5 seconds and change it directly in the test
  update testTimeout from 5 seconds to 10 seconds
  Update all patch dependencies
  fix broken link
  add latest blog post
  Update all minor dependencies
  fix linting
  fix: set proper shiki theme for light and dark modes
  fix: change shiki theme to github-light
  add latest blog post
  GitGraph: made reroute fn more readable
  GitGraph: simplified branch check in arrow rerouting fn
  GitGraph: added commit IDs to e2e test to remove false positives
  GitGraph: Moved branch curve check to within reroute check fn
  GitGraph: corrected minor typo in comment.
  GitGraph: added 2x e2e tests for branches not used immediately
  GitGraph: added branch checking to rerouting
  GitGraph: Added e2e tests for deferred branch use.
  GitGraph: e2e tests, added commit IDs to test graphs
  GitGraph: fixed an e2e branch for vertical branch
  ...
2023-11-24 09:54:02 +05:30
Sidharth Vinod
fe7da97c5c fix flow elk test 2023-11-23 22:51:08 +05:30
Sidharth Vinod
c294a0a9ac test: Add flowchart-elk overriding test 2023-11-23 22:41:22 +05:30
Sidharth Vinod
30fe363b57 chore: Update pnpm-lock 2023-11-23 22:32:32 +05:30
Sidharth Vinod
4ec57836d8 chore: Optimize build:types 2023-11-23 22:31:11 +05:30
Sidharth Vinod
5b7ba838f1 Merge branch 'sidv/splitELK' of https://github.com/mermaid-js/mermaid into sidv/splitELK
* 'sidv/splitELK' of https://github.com/mermaid-js/mermaid:
  5043 Allow registered diagrams to be overridden.
2023-11-23 22:15:08 +05:30
Sidharth Vinod
ac99eb59d2 Cleanup package.json
Co-authored-by: Alois Klink <alois@aloisklink.com>
2023-11-23 22:15:04 +05:30
Sidharth Vinod
1be09df9d4 Merge pull request #5050 from mermaid-js/sidv/splitELK2
Allow registered diagrams to be overridden.
2023-11-23 22:11:41 +05:30
Sidharth Vinod
38b3a2080b 5043 Allow registered diagrams to be overridden. 2023-11-20 00:29:13 +05:30
Sidharth Vinod
0fec0ef624 5043 Move ELK to standalone package 2023-11-19 00:44:44 +05:30
Sidharth Vinod
f0d6789722 fix: Netlify build 2023-11-16 11:03:55 +05:30
Sidharth Vinod
7ef61d58fd test: Add packet test for title, accTitle, accDescr 2023-11-16 10:58:25 +05:30
Sidharth Vinod
96ae4a5967 chore: Remove unnecessary(?) mocks. 2023-11-16 10:49:26 +05:30
Sidharth Vinod
bca645f63d test: Add packet and xychart into mermaidAPI test 2023-11-16 10:48:25 +05:30
Sidharth Vinod
a8105f084e fix: Use configureSvgSize
Co-authored-by: Reda Al Sulais <u.yokozuna@gmail.com>
2023-11-16 10:42:41 +05:30
Reda Al Sulais
e86f09aaed Apply suggested style from code review
Co-authored-by: Sidharth Vinod <sidharthv96@gmail.com>
2023-11-15 12:53:43 +03:00
Reda Al Sulais
692a7471c1 chore: apply review changes 2023-11-15 12:46:58 +03:00
Sidharth Vinod
480645d22f fix: Add language to codeblock 2023-11-15 12:26:24 +05:30
Sidharth Vinod
784a853ec7 feat: Add theming to packet 2023-11-15 12:20:28 +05:30
Sidharth Vinod
088fc392ab Fix SVG width 2023-11-15 09:42:35 +05:30
Sidharth Vinod
0d7644c782 refactor: Fix types 2023-11-15 09:25:49 +05:30
Sidharth Vinod
f15d24b4e8 Merge branch 'next' into feat/948_packetDiagram
* next:
  fix text-decoration for abstract attibutes
  ci(pr-labeler): add required `template` option
  ci(pr-labeler): replace TimonVS/pr-labeler-action
  style(pr-labeler): format .github/pr-labeler.yml
  docs(ci/pr-labeler): warn about security issues
  ci(release-draft): handle new release-drafter name
  ci(release-drafter): remove unused `branch` config
  ci(pr-labeler): limit GITHUB_TOKEN permissions
  ci(release-draft): limit GITHUB_TOKEN permissions
2023-11-15 09:10:41 +05:30
Sidharth Vinod
510549f365 Merge branch 'develop' into next
* develop:
  fix text-decoration for abstract attibutes
  ci(pr-labeler): add required `template` option
  ci(pr-labeler): replace TimonVS/pr-labeler-action
  style(pr-labeler): format .github/pr-labeler.yml
  docs(ci/pr-labeler): warn about security issues
  ci(release-draft): handle new release-drafter name
  ci(release-drafter): remove unused `branch` config
  ci(pr-labeler): limit GITHUB_TOKEN permissions
  ci(release-draft): limit GITHUB_TOKEN permissions
2023-11-15 09:10:13 +05:30
Sidharth Vinod
99313fe162 fix editor build 2023-11-15 09:09:48 +05:30
Sidharth Vinod
f9df193b7b chore: Fix imports 2023-11-15 01:04:07 +05:30
Sidharth Vinod
113a400952 Add DiagramRenderer type
Co-authored-by: Reda Al Sulais <u.yokozuna@gmail.com>
2023-11-15 01:02:20 +05:30
Sidharth Vinod
b6983e4b21 Add title to tests 2023-11-15 00:59:34 +05:30
Sidharth Vinod
fc400ea57b fix: Langium formatting
Co-authored-by: Reda Al Sulais <u.yokozuna@gmail.com>
2023-11-15 00:57:39 +05:30
Sidharth Vinod
068a74adeb chore: Fix magic number
Co-authored-by: Reda Al Sulais <u.yokozuna@gmail.com>
2023-11-15 00:55:02 +05:30
Sidharth Vinod
1a8743ec11 refactor: Separate default options in styles 2023-11-15 00:52:56 +05:30
Sidharth Vinod
9925b9b455 feat: Add title support to packetDiagram 2023-11-15 00:47:03 +05:30
Reda Al Sulais
4c43bae92d Merge branch next into add-pie-langium-parser 2023-11-14 20:04:16 +03:00
Sidharth Vinod
659db9f04b chore: Add types and minimums for packet config 2023-11-14 19:44:09 +05:30
Sidharth Vinod
b88d1dfaa9 fix(packet): Grammar whitespace
Move populate into parser

Co-authored-by: Reda Al Sulais <u.yokozuna@gmail.com>
2023-11-14 11:59:58 +05:30
Sidharth Vinod
7c79bbd6b0 refactor: Address review comments
Moved some types around
Removed unnecessary params

Co-authored-by: Reda Al Sulais <u.yokozuna@gmail.com>
Co-authored-by: Alois Klink <alois@aloisklink.com>
2023-11-14 11:48:11 +05:30
Sidharth Vinod
ce6bfcb7f5 Merge branch 'next' into feat/948_packetDiagram
* next: (193 commits)
  Update all patch dependencies
  Fix docs
  Update packages/mermaid/src/docs/community/questions-and-suggestions.md
  Update packages/mermaid/src/diagrams/class/classRenderer-v2.ts
  update edge ids
  draw top actors with lines  first followed by messages
  Bump GitHub workflow actions to latest versions
  Update docs
  Documentation: clarify sentence
  Fix lint
  Fix typo
  fix typo
  Add new Atlassian integrations
  chore(deps): update all patch dependencies
  Update demos/sequence.html
  chore: release v10.6.1
  fix
  fix
  fix: render the participants in same order as they are created
  fix(flow): fix invalid ellipseText regex
  ...
2023-11-14 11:21:15 +05:30
Sidharth Vinod
6ce543e118 Merge branch 'develop' into next
* develop: (126 commits)
  Update all patch dependencies
  Fix docs
  Update packages/mermaid/src/docs/community/questions-and-suggestions.md
  Update packages/mermaid/src/diagrams/class/classRenderer-v2.ts
  update edge ids
  draw top actors with lines  first followed by messages
  Bump GitHub workflow actions to latest versions
  Update docs
  Documentation: clarify sentence
  Fix lint
  Fix typo
  fix typo
  Add new Atlassian integrations
  chore(deps): update all patch dependencies
  Update demos/sequence.html
  chore: release v10.6.1
  fix
  fix
  fix: render the participants in same order as they are created
  fix(flow): fix invalid ellipseText regex
  ...
2023-11-14 11:20:27 +05:30
Sidharth Vinod
cd9bf03fb7 Merge branch 'develop' into pr/rhysd/4359
* develop: (154 commits)
  chore(deps): update all patch dependencies
  chore: release v10.6.1
  fix(flow): fix invalid ellipseText regex
  review fixes
  Update XYChart's nav link in the docs template
  add comment for ts ignore
  move decodeEntities to utils
  review fixes
  chore(deps): update all minor dependencies
  chore: Point to correct changelog
  add spec
  fix: getMessageAPI so it considers entity codes
  chore(deps): update all patch dependencies
  Update integrations-community.md
  docs: upate the list of tools with native support of mermaid
  Fix typo in build-docs.yml
  Updated mermaid version
  Limiting the number of edges that are allowed in the flowchart
  Update README.md
  Update README.md
  ...
2023-11-09 02:23:08 +05:30
Reda Al Sulais
1d88ac43cf enhance title, accTitle, and accDescr regexes 2023-11-08 22:10:36 +03:00
Reda Al Sulais
6102285577 full switch to EOF 2023-11-08 22:10:36 +03:00
Reda Al Sulais
b83603488c build(deps): update langium to v2.1.1 2023-11-08 22:10:35 +03:00
Reda Al Sulais
cf22e30237 rename abstract rules in common parser files 2023-11-05 13:07:08 +03:00
Reda Al Sulais
f01971b67c switch to NEWLINE+ instead of EOF until next release of langium 2023-11-05 02:11:04 +03:00
Reda Al Sulais
c62be1bb45 export necessary functions and types from packages/parser 2023-11-05 02:08:36 +03:00
Reda Al Sulais
cf1880343b fix: make rearrangeRules update the array itself 2023-11-05 02:03:58 +03:00
Reda Al Sulais
0c57433567 Merge branch 'next' into add-pie-langium-parser 2023-11-03 23:17:57 +03:00
Reda Al Sulais
5ef0527ebc export all common ValueConverter and TokenBuilder and update imports 2023-11-03 23:12:24 +03:00
Reda Al Sulais
53ef5c51cc create CommonTokenBuilder 2023-11-03 23:09:58 +03:00
Reda Al Sulais
58c7934dd8 export necessary objects and types from packages/parser 2023-11-03 22:45:23 +03:00
Reda Al Sulais
0a626917f8 remove unnecessary lines 2023-11-03 22:39:11 +03:00
Reda Al Sulais
922bb1452f test: update all parser test cases 2023-11-03 22:35:01 +03:00
Reda Al Sulais
1cda37659e chore(parser): rearrange rules to make imported rules at the beginning 2023-11-03 22:28:33 +03:00
Reda Al Sulais
fe2e46fe60 build(dev-deps): add chevrotain as a devDependencies 2023-11-03 22:26:05 +03:00
Reda Al Sulais
7765afa7da chore: allow comments to adjust keywords 2023-11-03 22:15:13 +03:00
Reda Al Sulais
55d7e9ec61 pref: remove CommonLexer and use EOF 2023-11-03 22:12:09 +03:00
Reda Al Sulais
6a4ad8af06 build(deps): update langium and langium-cli to v2.1.0 2023-11-03 22:09:36 +03:00
Reda Al Sulais
018440354f build(deps): remove langium-cli from packages/parser to use the one in root 2023-11-03 22:06:56 +03:00
Vincent Lam
6d2904cff1 Added linting 2023-10-25 17:38:34 -07:00
itsalam
55fac29b3e fixed title bounds calculation, removed extra title from merging issues 2023-10-25 17:38:34 -07:00
itsalam
5e966d60b0 Centered Title function and changed rendering order for Elk flowchart to find Boundingbox 2023-10-25 17:38:34 -07:00
itsalam
c08f927d60 Fixed styling for lines for ELK flowchart 2023-10-25 17:38:34 -07:00
Sidharth Vinod
49a197eaa8 chore: Update pnpm-lock 2023-10-06 11:12:50 +05:30
Sidharth Vinod
3abe7cfc45 Merge branch 'develop' into next
* develop: (61 commits)
  Revert "fix: Reduce gantt exclude days length"
  Commented out broken test (#4913)
  fix: Reduce gantt exclude days length
  Update docs
  Fix lint issue
  Fix release version
  Fix TopBar
  Add MC to integrations
  Add TopBar
  Fix docs
  Docs: Add Product Hunt info (#4900)
  Update docs
  Merge branch 'release/10.5.0'
  Mermaid release v10.5.0
  docs: typo fixed
  docs: typo fixed
  Fix for issue with backticks in ids in classDiagrams
  more fixes
  fix typo
  more link fixes
  ...
2023-10-06 11:11:34 +05:30
Reda Al Sulais
8c31db6352 Merge branch 'next' into add-pie-langium-parser 2023-09-20 17:56:36 +03:00
Reda Al Sulais
91eb824c21 Merge branch 'develop' into next
Signed-off-by: Reda Al Sulais <u.yokozuna@gmail.com>
2023-09-20 17:55:20 +03:00
dreathed
00e66c48b8 Merge branch 'develop' into bug/4391_make_markdown_auto_wrapping_optional 2023-09-19 20:08:36 +02:00
Hans Blankenhaus
589f90762a change congig.schema.yaml for consistency 2023-09-19 19:24:16 +02:00
Hans Blankenhaus
f256a57f27 again correction to documentation 2023-09-19 18:16:23 +02:00
Hans Blankenhaus
1102bf271d corrected documentation 2023-09-19 18:12:57 +02:00
Hans Blankenhaus
b561d5ad9a removed commented out code 2023-09-19 18:00:48 +02:00
Hans Blankenhaus
a5cb58ca96 add flowchart documentation 2023-09-19 17:59:35 +02:00
Hans Blankenhaus
0af77a3c2c optional auto wrapping for markdownToLines 2023-09-19 17:57:59 +02:00
Hans Blankenhaus
a75d14f5d0 removed commented out code 2023-09-19 17:03:47 +02:00
Hans Blankenhaus
bca39e8081 optional wrap and test 2023-09-19 15:38:17 +02:00
Sidharth Vinod
3e3519e8ec docs: Add packet to index 2023-09-19 16:51:42 +05:30
Sidharth Vinod
566150977a Add mini-live editing to example.html 2023-09-18 23:31:23 +05:30
Sidharth Vinod
0ff3ba30b7 Add mini-live editing to example.html 2023-09-18 23:29:27 +05:30
Hans Blankenhaus
43885e6d0b make auto wrapping in markdown optional 2023-09-18 15:58:57 +02:00
Sidharth Vinod
577f0ca562 fix: Cypress test for Suppress Error 2023-09-16 13:54:43 +05:30
Sidharth Vinod
56d339b8f0 fix: Race condition when running suppressError test.
Co-authored-by: Alois Klink <alois@aloisklink.com>
2023-09-16 13:33:28 +05:30
Sidharth Vinod
bd1e7a7c13 fix: Retain default behavior when rendering errors cases
Co-authored-by: Alois Klink <alois@aloisklink.com>
2023-09-15 08:42:12 +05:30
Sidharth Vinod
5f41b65af1 chore: Add suppressErrorRendering to secure flags.
Co-authored-by: Alois Klink <alois@aloisklink.com>
2023-09-15 08:41:12 +05:30
Reda Al Sulais
3c90894e38 Merge branch 'develop' into next 2023-09-15 01:57:20 +03:00
Sidharth Vinod
0dbebe953b Merge branch 'develop' into pr/rhysd/4359
* develop: (37 commits)
  fix: Arrow markers in flowchart-elk
  Bump version
  chore: Fix type in 'getLineFunctionsWithOffset'
  Update cypress/platform/marker_unique_id.html
  refactor: Add getLineFunctionsWithOffset function
  refactor: Move EdgeData to types
  fix: PointStart marker refX
  Added cypress test
  chore(deps): update all patch dependencies
  refactor: Fix typings in utils.ts
  Give markers unique id's per graph
  chore: Add @internal to createCSSStyles
  chore: Bump version
  refactor: Remove unused variables
  fix: #4818 support `getClasses` in external diagrams.
  Remove unnecessary tests
  Remove optional chaining
  chore: Update docs
  refactor: Use `||` instead of `??`
  Update flowchart.md (#4798)
  ...
2023-09-14 23:33:39 +05:30
Sidharth Vinod
16c12a42c7 fix: Remove blank SVG 2023-09-14 23:32:35 +05:30
Sidharth Vinod
136f1c50e7 fix: Diagram DB types 2023-09-14 23:24:03 +05:30
Sidharth Vinod
043729f557 feat: Support showBits 2023-09-14 23:12:42 +05:30
Sidharth Vinod
75f1f9228d test: Add rendering tests 2023-09-14 23:12:06 +05:30
Sidharth Vinod
38d9c6d26b test: Add unit tests 2023-09-14 23:00:59 +05:30
Sidharth Vinod
afd7cf51cf fix: Types and nomenclature 2023-09-14 22:46:43 +05:30
Sidharth Vinod
c41594d220 feat: Add packet diagram 2023-09-14 22:35:13 +05:30
Sidharth Vinod
fedbd48c0f Merge branch 'next' into pr/Yokozuna59/4751
* next: (98 commits)
  refactor: Simplify TokenBuilder and ValueConverter
  chore: Fix pnpm-lock
  Bump version
  chore: Fix type in 'getLineFunctionsWithOffset'
  Update cypress/platform/marker_unique_id.html
  refactor: Add getLineFunctionsWithOffset function
  refactor: Move EdgeData to types
  fix: PointStart marker refX
  Added cypress test
  chore(deps): update all patch dependencies
  refactor: Fix typings in utils.ts
  Give markers unique id's per graph
  chore: Fix type
  chore: Add @internal to createCSSStyles
  chore: Bump version
  refactor: Remove unused variables
  fix: #4818 support `getClasses` in external diagrams.
  Remove unnecessary tests
  Remove optional chaining
  chore: Update docs
  ...
2023-09-14 17:38:43 +05:30
Sidharth Vinod
271b779995 refactor: Simplify TokenBuilder and ValueConverter 2023-09-14 17:32:44 +05:30
Sidharth Vinod
52b33f6f47 chore: Fix pnpm-lock 2023-09-14 14:25:22 +05:30
Sidharth Vinod
5aee43d05b Merge branch 'develop' into next
* develop:
  Bump version
  chore: Fix type in 'getLineFunctionsWithOffset'
  Update cypress/platform/marker_unique_id.html
  refactor: Add getLineFunctionsWithOffset function
  refactor: Move EdgeData to types
  fix: PointStart marker refX
  Added cypress test
  chore(deps): update all patch dependencies
  refactor: Fix typings in utils.ts
  Give markers unique id's per graph
  chore: Add @internal to createCSSStyles
  chore: Bump version
  refactor: Remove unused variables
  fix: #4818 support `getClasses` in external diagrams.
2023-09-14 14:19:31 +05:30
Sidharth Vinod
7b29a380fc chore: Fix type 2023-09-08 16:42:08 +05:30
Sidharth Vinod
997c23befa Merge branch 'develop' into next
* develop:
  Remove unnecessary tests
  Remove optional chaining
  refactor: Use `||` instead of `??`
  core: Adapt changes from 3f7bafb2d7
  Update cypress/helpers/util.js
  chore: Add deprecation notices, improve types
  chore: Cleanup gitGraph tests
  Update README.md
  refactor: Move setWrap to individual diagrams as necessary.
  refactor: Remove directives from grammar
  refactor: Update DBs to remove directive handling
  refactor: Move directive processing before parsing
  I refactored the code to improve its time complexity by removing unnecessary code and optimizing the existing code.
2023-09-08 16:36:45 +05:30
Reda Al Sulais
24d43849a0 chore: apply review suggestions
* pref: optimize `common` rules and matchers
* chore: rename diagrams services to short form
* chore: sort imports
2023-09-07 00:24:00 +03:00
Sidharth Vinod
4ce26296d6 Merge branch 'develop' into next
* develop:
  chore: Update docs
2023-09-06 23:25:57 +05:30
Sidharth Vinod
4342759da7 Merge branch 'develop' into next
* develop:
  Update flowchart.md (#4798)
  Update flowchart.md (#4792)
  chore: Update docs
  Added missing integration tests and release version in docs.
  chore: Fix warning formatting
  docs: Disable showValues in sankey example
  Added support for millisecond and second to gantt tickInterval
  Use utf8 encoding in Jupyter example
2023-09-06 23:16:03 +05:30
Sidharth Vinod
25f2d224f1 Merge branch 'develop' into next
* develop:
  fix: Add support for `~test Array~string~`
2023-09-06 16:53:18 +05:30
Sidharth Vinod
8b8b828cd1 docs: Rebuild 2023-09-06 13:19:08 +05:30
Sidharth Vinod
65dabeaf15 Add test 2023-09-06 13:15:04 +05:30
Sidharth Vinod
0480339272 Add test 2023-09-06 13:09:06 +05:30
Sidharth Vinod
b09cdc0a18 chore: Add suppressErrorRendering to config 2023-09-06 12:59:02 +05:30
Sidharth Vinod
c3b86b687c Merge branch 'develop' into pr/rhysd/4359
* develop: (595 commits)
  chore: Fix unit tests
  chore(deps): update all patch dependencies
  chore: Update docs
  Update docs
  New Mermaid Live Editor for Confluence Cloud (#4814)
  Update link to Discourse theme component (#4811)
  Update flowchart.md (#4810)
  chore: remove unneeded `CommomDB`
  chore: Update docs
  "CSS" instead of "css" in flowchart.md (#4797)
  Update CONTRIBUTING.md
  Update CONTRIBUTING.md
  fix: typos (#4801)
  chore: Align with convention
  fix: Add support for `~test Array~string~`
  chore: Add JSDoc to apply in sequenceDB
  refactor: Tidy up direction handling
  chore: Fix flowchart arrow
  chore: Add test to verify activate
  chore: Update tests snapshot
  ...
2023-09-06 12:58:12 +05:30
Reda Al Sulais
0abb4f8c6f Merge branch develop into next 2023-09-06 02:16:25 +03:00
Sidharth Vinod
697ac18872 Merge branch 'develop' into next
* develop:
  chore: Align with convention
  add additional test case
  added test case
  add sanitize text
  Update docs
  modifications to generic parser
  improvements to parseGenericTypes
  Update packages/mermaid/src/diagrams/class/svgDraw.js
  return comment
  add tsdoc comments
  update tests
  apply suggesitons
  Update packages/mermaid/src/diagrams/class/classTypes.ts
  Update packages/mermaid/src/diagrams/class/classTypes.ts
  update tests and db name
  Fix tests
  spec changes
  update classes to handle , in generic
  Update and add tests
  Create new type for member handling
2023-09-03 12:27:44 +05:30
Sidharth Vinod
fc229cf274 Merge pull request #4803 from aloisklink/refactor/mermaid-config-limit-enum-types
[v11] Limit `MermaidConfig` enum TypesScript types to certain values
2023-09-03 05:29:25 +00:00
Alois Klink
b48136d994 refactor!: remove MermaidConfig type enum fallback
Currently (in Mermaid v10), pretty much all enum types in the
MermaidConfig have generic `string` or `number` fallbacks,
for backwards compatibility.

This commit drops this. The MermaidConfig TypeScript types now expects
a limited amount of values.

BREAKING-CHANGE: Remove `MermaidConfig` generic type fallbacks for
                 enum values.
2023-09-02 19:33:40 +01:00
Alois Klink
77ba7c987a test: rewrite some config vals to tighten types
We're planning on limiting some of MermaidConfig's types to specific
values (e.g. `0 | 1` instead of `number`).
2023-09-02 19:33:40 +01:00
Reda Al Sulais
84f3baf013 Merge branch 'develop' into next
Signed-off-by: Reda Al Sulais <u.yokozuna@gmail.com>
2023-09-02 18:57:00 +03:00
Reda Al Sulais
795baedbb1 chore: run pnpm lint:fix 2023-08-28 12:14:49 +03:00
Reda Al Sulais
5469a7eb71 Update packages/mermaid/src/diagrams/pie/pieParser.ts
Co-authored-by: Sidharth Vinod <sidharthv96@gmail.com>
2023-08-28 12:11:21 +03:00
Reda Al Sulais
23fc7c2c96 Update packages/parser/src/language/pie/pieValueConverter.ts
Co-authored-by: Sidharth Vinod <sidharthv96@gmail.com>
2023-08-28 12:11:12 +03:00
sidharthv96
dff404a8c9 Update docs 2023-08-28 08:53:43 +00:00
Sidharth Vinod
146364aa67 chore: Fix imports 2023-08-28 14:19:43 +05:30
Sidharth Vinod
258dbf30e0 Merge branch 'next' into pr/Yokozuna59/4751
* next: (70 commits)
  chore: Add comment for `yy`.
  chore: Increase heap size when building
  chore: increase `test-util.ts` converage by returning `undefined`
  chore: add `vitest` imports to `test-util.ts`
  chore: run `pnpm lint:fix`
  create `noErrorsOrAlternatives` parser helper function
  chore: export `InfoModule` from `infoModule.ts`
  docs: Fix link
  Update docs
  fix(pie): align slices and legend orders
  Mermaid version v10.4.0
  unique batches every time, if not repeated tests end up in the same batch
  Added missed .md
  Increase JS heap
  More tests for redirects + prettier
  Fixed redirects inside vitepress, extended tests
  chore: Explain redirect.ts clearly
  docs: Fix npmjs link
  chore: Update editor.bash to build latest version
  chore: Build after clone
  ...
2023-08-28 14:13:20 +05:30
Sidharth Vinod
44b93c039a Merge pull request #4727 from Yokozuna59/add-info-langium-parser
feat: add `@mermaid-js/parser` package and `info` langium parser
2023-08-28 08:10:30 +00:00
Sidharth Vinod
4d5313699e chore: Add comment for yy. 2023-08-28 13:39:37 +05:30
Sidharth Vinod
cd198290d7 Merge branch 'next' into pr/Yokozuna59/4727
* next:
  chore: Increase heap size when building
  fix(er): bug if relationship is declared first
  test(er): add cypress test on entity name alias
  feat(er): use square brackets to add aliases
  docs(er): add release version for entity name aliases
  feat(er): add entity name alias
2023-08-28 13:32:27 +05:30
Sidharth Vinod
60ed7d3273 chore: Increase heap size when building 2023-08-26 23:43:27 +05:30
Sidharth Vinod
9bcfba6620 Merge branch 'develop' into next
* develop:
  fix(er): bug if relationship is declared first
  test(er): add cypress test on entity name alias
  feat(er): use square brackets to add aliases
  docs(er): add release version for entity name aliases
  feat(er): add entity name alias
2023-08-26 23:09:05 +05:30
Reda Al Sulais
7ea3c64268 chore: increase test-util.ts converage by returning undefined 2023-08-26 14:37:36 +03:00
Reda Al Sulais
2b6a34e9e0 chore: add vitest imports to test-util.ts 2023-08-26 14:20:22 +03:00
Reda Al Sulais
458b90c78d chore: run pnpm lint:fix 2023-08-26 14:06:41 +03:00
Reda Al Sulais
dd284c0986 Merge branch 'add-info-langium-parser' of https://github.com/Yokozuna59/mermaid into add-info-langium-parser 2023-08-26 14:02:19 +03:00
Reda Al Sulais
21539dfb6a create noErrorsOrAlternatives parser helper function 2023-08-26 14:01:56 +03:00
Reda Al Sulais
91785b8284 Merge branch 'next' into add-info-langium-parser 2023-08-26 13:48:31 +03:00
Reda Al Sulais
f202770b70 Merge branch develop into next 2023-08-26 13:44:24 +03:00
Reda Al Sulais
8186a54962 chore: export InfoModule from infoModule.ts 2023-08-26 13:39:17 +03:00
Sidharth Vinod
866909b803 Merge branch 'develop' into next
* develop:
  chore: Update editor.bash to build latest version
  chore: Build after clone
  chore: Force install npm to avoid cache.
  fix: live editor exists error
  chore: Add netlify.toml
  chore: Update editor script
  chore: Add live editor build script for previews
  docs: Fix sankey demo
  feat(sankey): Show values (#4674)
2023-08-25 10:07:46 +05:30
Sidharth Vinod
408910e6e8 Merge branch 'develop' into next
* develop:
  Fixed docs according review
  chore: Fix type imports
  Fixed links
  Split development documentation in several separate pages, fixes for the sidebar menu
2023-08-23 13:19:12 +05:30
Reda Al Sulais
24c8e575f4 docs(parser): create packages/parser README.md file 2023-08-22 20:39:19 +03:00
Reda Al Sulais
8d0ca2c876 build: build .langium file using generate from langium-cli 2023-08-22 13:38:23 +03:00
Reda Al Sulais
fc96ebefd4 build: update langium and langium-cli to v2.0.1 2023-08-22 13:19:52 +03:00
Reda Al Sulais
394330175f Merge remote-tracking branch 'upstream/next' into add-info-langium-parser
Signed-off-by: Reda Al Sulais <u.yokozuna@gmail.com>
2023-08-22 13:13:03 +03:00
Sidharth Vinod
f946c3da06 Merge branch 'develop' into next
* develop:
  chore: Remove circular dependency
  Update docs
  docs: Add frontmatter config demos
  docs: Add frontmatter config docs
  fix: XSS vulnerability
  chore: Minor typo fixes
  chore: Add test with both frontmatter and directive
  Update docs
  feat: Add support for config in frontmatter
  chore: Fix type in assignWithDepth
  refactor: Move `sanitizeDirective` into `addDirective`
  refactor: Rename and cleanup `directiveSanitizer`
2023-08-22 13:58:24 +05:30
Sidharth Vinod
156fbd1958 Merge branch 'develop' into next
* develop:
  chore: Remove duplicate CI action
  chore: Add circular dependency check in CI
  refactor: Remove circular dependencies
2023-08-22 13:31:59 +05:30
Sidharth Vinod
7dd0d126e2 Merge branch 'develop' into next
* develop:
  deps: Update unocss and webpack to address vulnerability.
  chore(deps): update all patch dependencies
  ci(release-drafter): add more release notes categories
2023-08-22 10:21:13 +05:30
Reda Al Sulais
205360c109 fix: fix if statment logic checks if parser is not undefined 2023-08-21 03:09:05 +03:00
Reda Al Sulais
984a0e6d06 chore: add a comment illustrate why we build packages sequentially 2023-08-21 03:05:23 +03:00
Reda Al Sulais
eb63568ceb chore: refactore && into if in populateCommonDb 2023-08-21 03:04:39 +03:00
Reda Al Sulais
cc6f896b69 chore: remove ./* part from exports in parser/package.json
Co-authored-by: Alois Klink <alois@aloisklink.com>
2023-08-21 03:03:50 +03:00
Reda Al Sulais
83e47a7216 fix: use execFileSync instead of execSync in generateLangium 2023-08-21 02:54:30 +03:00
Reda Al Sulais
1d64549cce fix(mermaid): mark mermaid-parser dependecy with ^
Co-authored-by: Alois Klink <alois@aloisklink.com>
2023-08-21 02:54:13 +03:00
Reda Al Sulais
d0c36c0de3 chore!: change addSection header into D3Section 2023-08-20 22:43:49 +03:00
Reda Al Sulais
341db13279 chore!: rename D3Sections type into D3Section 2023-08-20 22:36:11 +03:00
Reda Al Sulais
1c8e13b9c1 feat: integrate pir parser into mermaid package 2023-08-20 19:49:02 +03:00
Reda Al Sulais
49c5f3bb9c feat(parser): create pie parser and export it 2023-08-20 18:48:03 +03:00
Reda Al Sulais
4ae361bd1f reorder packages/parser after packages/mermaid/src/vitepress 2023-08-20 18:45:05 +03:00
Reda Al Sulais
6502496a2c Merge remote-tracking branch 'upstream/next' into add-info-langium-parser 2023-08-20 18:41:32 +03:00
Sidharth Vinod
8678ceeb3c Merge pull request #4749 from Yokozuna59/remove-duplicate-dev-dependency
remove duplicate `@types/d3-scale` dev dependency
2023-08-20 15:38:50 +00:00
Reda Al Sulais
9cb62f4d2e remove duplicate @types/d3-scale dev dependency 2023-08-20 18:20:06 +03:00
Reda Al Sulais
6c0ef54e18 Merge branch 'next' into add-info-langium-parser 2023-08-20 18:01:37 +03:00
Sidharth Vinod
fd731c5ccd Merge branch 'develop' into next
* develop: (56 commits)
  chore: Add comments on redirectMaps
  remove `chart` from `pie.spec.ts` description
  Update docs
  change `defaultConfig` type to `RequiredDeep` and use it in `pieDb`
  use `DiagramStylesProvider` in `pieStyles.ts`
  remove `setConfig` and `resetConfig` in pie
  add `structuredClone` in pie `getConfig`
  cleanAndMerge pieConfig
  remove cleanClone
  feat: Add cleanAndMerge and tests
  chore: Rename utils.spec.ts
  move db assignment from `beforeEach` to `beforeAll`
  create `structuredCleanClone` helper function
  add more types to pieRenderer
  add `resetConfig` to `clear` in pieDb
  rename `reset` to `resetConfig`
  use `structedClone` in `pieDb`
  remove `PieDiagramConfig` and import generated one
  remove unnecessary lines in pie files
  remove unused `HTML` import in pieRenderer
  ...
2023-08-20 20:28:52 +05:30
Reda Al Sulais
cbe9490dc0 feat!: integrate info parser into mermaid package
BREAKING CHANGE: remove `showInfo` from `infoDb`.
2023-08-20 17:25:49 +03:00
Reda Al Sulais
82054bfabc chore: make parser as optional in ParserDefinition 2023-08-20 17:22:13 +03:00
Reda Al Sulais
963dd75c39 chore(parser): build parser package using esbuild and vite
Co-authored-by: Sidharth Vinod <sidharthv96@gmail.com>
2023-08-20 17:16:12 +03:00
Reda Al Sulais
1c24617f98 feat(parser): create info parser with exporting parser internals 2023-08-20 15:38:46 +03:00
Reda Al Sulais
1559c2ca21 feat(parser): create common directory for langium parsers 2023-08-20 15:36:02 +03:00
Reda Al Sulais
6141722b1f feat: create parser package in packages directory 2023-08-20 15:31:40 +03:00
Reda Al Sulais
222d8eed4e Merge remote-tracking branch 'upstream/develop' into next
Signed-off-by: Reda Al Sulais <u.yokozuna@gmail.com>
2023-08-19 16:20:13 +03:00
Sidharth Vinod
718d52a72c chore: Move liveReload code into script. 2023-08-17 14:30:47 +05:30
Sidharth Vinod
fe1a06271a Fix minify undefined 2023-08-17 12:55:25 +05:30
Sidharth Vinod
bd2370555b Merge branch 'develop' into next
* develop:
  chore: Move SVG import to comment.
  build docs
  Remove whitespace on empty line
  Documentation for #2509
2023-08-17 12:18:40 +05:30
Sidharth Vinod
86c9ee4e90 Merge pull request #4733 from mermaid-js/sidv/splitChunks
Split chunks into individual dirs
2023-08-17 06:47:23 +00:00
Sidharth Vinod
b26bcf1343 chore: Fix minify 2023-08-17 08:22:00 +05:30
Sidharth Vinod
5d5c6275f9 Merge branch 'develop' into next
* develop:
  Update all minor dependencies
  Update all patch dependencies
  make more `RectData` required and remove optional assignment
  use lineBreakRegex in `svgDrawCommon`
  fix svgDrawCommon import by adding `.js`
  add types to `svgDrawCommon.ts`
  convert `svgDrawCommon` to TS
2023-08-17 08:20:11 +05:30
Sidharth Vinod
9c1a47d1fc Merge pull request #4729 from mermaid-js/sidv/esbuildV11
Use ESBuild (replaces UMD with IIFE bundle)
2023-08-16 12:06:07 +00:00
Sidharth Vinod
13852b7f4e Fix import 2023-08-14 09:24:34 +05:30
Sidharth Vinod
4fd7a88a15 chore: Fix outfile names 2023-08-14 08:52:56 +05:30
Sidharth Vinod
5c2a6b5eb1 chore: Add analyzer comment 2023-08-14 08:37:02 +05:30
Sidharth Vinod
9cbebbb8a0 chore: Split chunks into folders 2023-08-14 08:35:49 +05:30
Sidharth Vinod
e26d987c4e chore: Split chunks into folders 2023-08-14 08:34:11 +05:30
Sidharth Vinod
53669efaf8 chore: Add defaultOptions to server 2023-08-14 08:30:51 +05:30
Sidharth Vinod
b68f45ef59 chore: Split chunks into folders 2023-08-14 08:27:14 +05:30
Sidharth Vinod
8f44de651b chore: IIFE to cSpell 2023-08-14 00:55:48 +05:30
Sidharth Vinod
2ede244da0 chore: Minor comments
Co-authored-by: Alois Klink <alois@aloisklink.com>
2023-08-14 00:55:48 +05:30
Sidharth Vinod
77a181978e chore: Replace Date.now with console.time
Co-authored-by: Alois Klink <alois@aloisklink.com>
2023-08-14 00:55:48 +05:30
Sidharth Vinod
170bbce0d3 chore: Build at start 2023-08-14 00:55:41 +05:30
Sidharth Vinod
fc99d9be41 chore: Add build times to live reload 2023-08-14 00:55:41 +05:30
Sidharth Vinod
9fb9bed806 chore: Add live-reload 2023-08-14 00:55:34 +05:30
Sidharth Vinod
01b2f80a95 chore: Remove @vitest/coverage-c8 2023-08-14 00:54:33 +05:30
Sidharth Vinod
da7ff777d1 chore: Add esbuild (Breaking change)
mermaid.min.js and mermaid.js will now be IIFE instead of UMD.
2023-08-14 00:52:45 +05:30
Sidharth Vinod
8d48f8d8b0 Merge branch 'develop' into pr/rhysd/4359
* develop: (255 commits)
  chore(deps): update all minor dependencies
  chore: Run codecov based on E2E test status
  change REAMDME.md coverage from coveralls into codecov
  Add codecov.yaml
  Upload E2E
  set normal mode for vitest coverage
  Fix path name
  Add codecov to unit tests
  Add codecov to E2E
  chore: Add coverage scripts
  chore: add excludes
  chore: update deps
  Merge coverages
  Add coverage paths
  Rebuild
  chore: update pnpm
  Add coverage for E2E tests
  rename plugin variable into info in infoDetector.ts
  remove cypress/platform/index.html
  update pnpm-lock.yaml
  ...
2023-06-18 16:10:32 +05:30
rhysd
b4618f9ba1 Throw error when detecting diagram type failed and suppressErrorRendering is set 2023-04-30 22:29:53 +09:00
rhysd
2c5d83fab3 Add suppressErrorRendering option to avoid inserting 'Syntax error' message in diagram 2023-04-30 00:35:09 +09:00
282 changed files with 8394 additions and 5209 deletions

30
.build/common.ts Normal file
View File

@@ -0,0 +1,30 @@
/**
* Shared common options for both ESBuild and Vite
*/
export const packageOptions = {
parser: {
name: 'mermaid-parser',
packageName: 'parser',
file: 'index.ts',
},
mermaid: {
name: 'mermaid',
packageName: 'mermaid',
file: 'mermaid.ts',
},
'mermaid-example-diagram': {
name: 'mermaid-example-diagram',
packageName: 'mermaid-example-diagram',
file: 'detector.ts',
},
'mermaid-zenuml': {
name: 'mermaid-zenuml',
packageName: 'mermaid-zenuml',
file: 'detector.ts',
},
'mermaid-flowchart-elk': {
name: 'mermaid-flowchart-elk',
packageName: 'mermaid-flowchart-elk',
file: 'detector.ts',
},
} as const;

View File

@@ -0,0 +1,5 @@
import { generate } from 'langium-cli';
export async function generateLangium() {
await generate({ file: `./packages/parser/langium-config.json` });
}

124
.build/jsonSchema.ts Normal file
View File

@@ -0,0 +1,124 @@
import { load, JSON_SCHEMA } from 'js-yaml';
import assert from 'node:assert';
import Ajv2019, { type JSONSchemaType } from 'ajv/dist/2019.js';
import type { MermaidConfig, BaseDiagramConfig } from '../packages/mermaid/src/config.type.js';
/**
* All of the keys in the mermaid config that have a mermaid diagram config.
*/
const MERMAID_CONFIG_DIAGRAM_KEYS = [
'flowchart',
'sequence',
'gantt',
'journey',
'class',
'state',
'er',
'pie',
'quadrantChart',
'xyChart',
'requirement',
'mindmap',
'timeline',
'gitGraph',
'c4',
'sankey',
'block',
'packet',
] as const;
/**
* Generate default values from the JSON Schema.
*
* AJV does not support nested default values yet (or default values with $ref),
* so we need to manually find them (this may be fixed in ajv v9).
*
* @param mermaidConfigSchema - The Mermaid JSON Schema to use.
* @returns The default mermaid config object.
*/
function generateDefaults(mermaidConfigSchema: JSONSchemaType<MermaidConfig>) {
const ajv = new Ajv2019({
useDefaults: true,
allowUnionTypes: true,
strict: true,
});
ajv.addKeyword({
keyword: 'meta:enum', // used by jsonschema2md
errors: false,
});
ajv.addKeyword({
keyword: 'tsType', // used by json-schema-to-typescript
errors: false,
});
// ajv currently doesn't support nested default values, see https://github.com/ajv-validator/ajv/issues/1718
// (may be fixed in v9) so we need to manually use sub-schemas
const mermaidDefaultConfig = {};
assert.ok(mermaidConfigSchema.$defs);
const baseDiagramConfig = mermaidConfigSchema.$defs.BaseDiagramConfig;
for (const key of MERMAID_CONFIG_DIAGRAM_KEYS) {
const subSchemaRef = mermaidConfigSchema.properties[key].$ref;
const [root, defs, defName] = subSchemaRef.split('/');
assert.strictEqual(root, '#');
assert.strictEqual(defs, '$defs');
const subSchema = {
$schema: mermaidConfigSchema.$schema,
$defs: mermaidConfigSchema.$defs,
...mermaidConfigSchema.$defs[defName],
} as JSONSchemaType<BaseDiagramConfig>;
const validate = ajv.compile(subSchema);
mermaidDefaultConfig[key] = {};
for (const required of subSchema.required ?? []) {
if (subSchema.properties[required] === undefined && baseDiagramConfig.properties[required]) {
mermaidDefaultConfig[key][required] = baseDiagramConfig.properties[required].default;
}
}
if (!validate(mermaidDefaultConfig[key])) {
throw new Error(
`schema for subconfig ${key} does not have valid defaults! Errors were ${JSON.stringify(
validate.errors,
undefined,
2
)}`
);
}
}
const validate = ajv.compile(mermaidConfigSchema);
if (!validate(mermaidDefaultConfig)) {
throw new Error(
`Mermaid config JSON Schema does not have valid defaults! Errors were ${JSON.stringify(
validate.errors,
undefined,
2
)}`
);
}
return mermaidDefaultConfig;
}
export const loadSchema = (src: string, filename: string): JSONSchemaType<MermaidConfig> => {
const jsonSchema = load(src, {
filename,
// only allow JSON types in our YAML doc (will probably be default in YAML 1.3)
// e.g. `true` will be parsed a boolean `true`, `True` will be parsed as string `"True"`.
schema: JSON_SCHEMA,
}) as JSONSchemaType<MermaidConfig>;
return jsonSchema;
};
export const getDefaults = (schema: JSONSchemaType<MermaidConfig>) => {
return `export default ${JSON.stringify(generateDefaults(schema), undefined, 2)};`;
};
export const getSchema = (schema: JSONSchemaType<MermaidConfig>) => {
return `export default ${JSON.stringify(schema, undefined, 2)};`;
};

18
.build/types.ts Normal file
View File

@@ -0,0 +1,18 @@
import { packageOptions } from './common.js';
import { execSync } from 'child_process';
const buildType = (packageName: string) => {
console.log(`Building types for ${packageName}`);
try {
const out = execSync(`tsc -p ./packages/${packageName}/tsconfig.json --emitDeclarationOnly`);
out.length > 0 && console.log(out.toString());
} catch (e) {
console.error(e);
e.stdout.length > 0 && console.error(e.stdout.toString());
e.stderr.length > 0 && console.error(e.stderr.toString());
}
};
for (const { packageName } of Object.values(packageOptions)) {
buildType(packageName);
}

View File

@@ -1,3 +0,0 @@
{
"extends": ["@commitlint/config-conventional"]
}

View File

@@ -53,6 +53,7 @@ GENERICTYPE
getBoundarys
grammr
graphtype
iife
interp
introdcued
INVTRAPEND
@@ -74,11 +75,13 @@ loglevel
LOGMSG
lookaheads
mdast
metafile
minlen
Mstartx
MULT
NODIR
NSTR
outdir
Qcontrolx
reinit
rels

65
.esbuild/build.ts Normal file
View File

@@ -0,0 +1,65 @@
import { build } from 'esbuild';
import { mkdir, writeFile } from 'node:fs/promises';
import { packageOptions } from '../.build/common.js';
import { generateLangium } from '../.build/generateLangium.js';
import { MermaidBuildOptions, defaultOptions, getBuildConfig } from './util.js';
const shouldVisualize = process.argv.includes('--visualize');
const buildPackage = async (entryName: keyof typeof packageOptions) => {
const commonOptions = { ...defaultOptions, entryName } as const;
const buildConfigs = [
// package.mjs
{ ...commonOptions },
// package.min.mjs
{
...commonOptions,
minify: true,
metafile: shouldVisualize,
},
// package.core.mjs
{ ...commonOptions, core: true },
];
if (entryName === 'mermaid') {
const iifeOptions: MermaidBuildOptions = { ...commonOptions, format: 'iife' };
buildConfigs.push(
// mermaid.js
{ ...iifeOptions },
// mermaid.min.js
{ ...iifeOptions, minify: true, metafile: shouldVisualize }
);
}
const results = await Promise.all(buildConfigs.map((option) => build(getBuildConfig(option))));
if (shouldVisualize) {
for (const { metafile } of results) {
if (!metafile) {
continue;
}
const fileName = Object.keys(metafile.outputs)
.filter((file) => !file.includes('chunks') && file.endsWith('js'))[0]
.replace('dist/', '');
// Upload metafile into https://esbuild.github.io/analyze/
await writeFile(`stats/${fileName}.meta.json`, JSON.stringify(metafile));
}
}
};
const handler = (e) => {
console.error(e);
process.exit(1);
};
const main = async () => {
await generateLangium();
await mkdir('stats').catch(() => {});
const packageNames = Object.keys(packageOptions) as (keyof typeof packageOptions)[];
// it should build `parser` before `mermaid` because it's a dependency
for (const pkg of packageNames) {
await buildPackage(pkg).catch(handler);
}
};
void main();

15
.esbuild/jisonPlugin.ts Normal file
View File

@@ -0,0 +1,15 @@
import { readFile } from 'node:fs/promises';
import { transformJison } from '../.build/jisonTransformer.js';
import { Plugin } from 'esbuild';
export const jisonPlugin: Plugin = {
name: 'jison',
setup(build) {
build.onLoad({ filter: /\.jison$/ }, async (args) => {
// Load the file from the file system
const source = await readFile(args.path, 'utf8');
const contents = transformJison(source);
return { contents, warnings: [] };
});
},
};

View File

@@ -0,0 +1,35 @@
import type { JSONSchemaType } from 'ajv/dist/2019.js';
import type { MermaidConfig } from '../packages/mermaid/src/config.type.js';
import { readFile } from 'node:fs/promises';
import { getDefaults, getSchema, loadSchema } from '../.build/jsonSchema.js';
/**
* ESBuild plugin that handles JSON Schemas saved as a `.schema.yaml` file.
*
* Use `my-example.schema.yaml?only-defaults=true` to only load the default values.
*/
export const jsonSchemaPlugin = {
name: 'json-schema-plugin',
setup(build) {
let schema: JSONSchemaType<MermaidConfig> | undefined = undefined;
let content = '';
build.onLoad({ filter: /config\.schema\.yaml$/ }, async (args) => {
// Load the file from the file system
const source = await readFile(args.path, 'utf8');
const resolvedSchema: JSONSchemaType<MermaidConfig> =
content === source && schema ? schema : loadSchema(source, args.path);
if (content !== source) {
content = source;
schema = resolvedSchema;
}
const contents = args.suffix.includes('only-defaults')
? getDefaults(resolvedSchema)
: getSchema(resolvedSchema);
return { contents, warnings: [] };
});
},
};
export default jsonSchemaPlugin;

102
.esbuild/server.ts Normal file
View File

@@ -0,0 +1,102 @@
import express from 'express';
import type { NextFunction, Request, Response } from 'express';
import cors from 'cors';
import { getBuildConfig, defaultOptions } from './util.js';
import { context } from 'esbuild';
import chokidar from 'chokidar';
import { generateLangium } from '../.build/generateLangium.js';
import { packageOptions } from '../.build/common.js';
const configs = Object.values(packageOptions).map(({ packageName }) =>
getBuildConfig({ ...defaultOptions, minify: false, core: false, entryName: packageName })
);
const mermaidIIFEConfig = getBuildConfig({
...defaultOptions,
minify: false,
core: false,
entryName: 'mermaid',
format: 'iife',
});
configs.push(mermaidIIFEConfig);
const contexts = await Promise.all(configs.map((config) => context(config)));
const rebuildAll = async () => {
console.time('Rebuild time');
await Promise.all(contexts.map((ctx) => ctx.rebuild())).catch((e) => console.error(e));
console.timeEnd('Rebuild time');
};
let clients: { id: number; response: Response }[] = [];
function eventsHandler(request: Request, response: Response, next: NextFunction) {
const headers = {
'Content-Type': 'text/event-stream',
Connection: 'keep-alive',
'Cache-Control': 'no-cache',
};
response.writeHead(200, headers);
const clientId = Date.now();
clients.push({
id: clientId,
response,
});
request.on('close', () => {
clients = clients.filter((client) => client.id !== clientId);
});
}
let timeoutId: NodeJS.Timeout | undefined = undefined;
/**
* Debounce file change events to avoid rebuilding multiple times.
*/
function handleFileChange() {
if (timeoutId !== undefined) {
clearTimeout(timeoutId);
}
timeoutId = setTimeout(async () => {
await rebuildAll();
sendEventsToAll();
timeoutId = undefined;
}, 100);
}
function sendEventsToAll() {
clients.forEach(({ response }) => response.write(`data: ${Date.now()}\n\n`));
}
async function createServer() {
await generateLangium();
handleFileChange();
const app = express();
chokidar
.watch('**/src/**/*.{js,ts,langium,yaml,json}', {
ignoreInitial: true,
ignored: [/node_modules/, /dist/, /docs/, /coverage/],
})
.on('all', async (event, path) => {
// Ignore other events.
if (!['add', 'change'].includes(event)) {
return;
}
if (/\.langium$/.test(path)) {
await generateLangium();
}
console.log(`${path} changed. Rebuilding...`);
handleFileChange();
});
app.use(cors());
app.get('/events', eventsHandler);
for (const { packageName } of Object.values(packageOptions)) {
app.use(express.static(`./packages/${packageName}/dist`));
}
app.use(express.static('demos'));
app.use(express.static('cypress/platform'));
app.listen(9000, () => {
console.log(`Listening on http://localhost:9000`);
});
}
createServer();

101
.esbuild/util.ts Normal file
View File

@@ -0,0 +1,101 @@
import { resolve } from 'path';
import { fileURLToPath } from 'url';
import type { BuildOptions } from 'esbuild';
import { readFileSync } from 'fs';
import jsonSchemaPlugin from './jsonSchemaPlugin.js';
import { packageOptions } from '../.build/common.js';
import { jisonPlugin } from './jisonPlugin.js';
const __dirname = fileURLToPath(new URL('.', import.meta.url));
export interface MermaidBuildOptions {
minify: boolean;
core: boolean;
metafile: boolean;
format: 'esm' | 'iife';
entryName: keyof typeof packageOptions;
}
export const defaultOptions: Omit<MermaidBuildOptions, 'entryName'> = {
minify: false,
metafile: false,
core: false,
format: 'esm',
} as const;
const buildOptions = (override: BuildOptions): BuildOptions => {
return {
bundle: true,
minify: true,
keepNames: true,
platform: 'browser',
tsconfig: 'tsconfig.json',
resolveExtensions: ['.ts', '.js', '.json', '.jison', '.yaml'],
external: ['require', 'fs', 'path'],
outdir: 'dist',
plugins: [jisonPlugin, jsonSchemaPlugin],
sourcemap: 'external',
...override,
};
};
const getFileName = (fileName: string, { core, format, minify }: MermaidBuildOptions) => {
if (core) {
fileName += '.core';
} else if (format === 'esm') {
fileName += '.esm';
}
if (minify) {
fileName += '.min';
}
return fileName;
};
export const getBuildConfig = (options: MermaidBuildOptions): BuildOptions => {
const { core, entryName, metafile, format, minify } = options;
const external: string[] = ['require', 'fs', 'path'];
const { name, file, packageName } = packageOptions[entryName];
const outFileName = getFileName(name, options);
let output: BuildOptions = buildOptions({
absWorkingDir: resolve(__dirname, `../packages/${packageName}`),
entryPoints: {
[outFileName]: `src/${file}`,
},
metafile,
minify,
logLevel: 'info',
chunkNames: `chunks/${outFileName}/[name]-[hash]`,
define: {
'import.meta.vitest': 'undefined',
},
});
if (core) {
const { dependencies } = JSON.parse(
readFileSync(resolve(__dirname, `../packages/${packageName}/package.json`), 'utf-8')
);
// Core build is used to generate file without bundled dependencies.
// This is used by downstream projects to bundle dependencies themselves.
// Ignore dependencies and any dependencies of dependencies
external.push(...Object.keys(dependencies));
output.external = external;
}
if (format === 'iife') {
output.format = 'iife';
output.splitting = false;
output.globalName = '__esbuild_esm_mermaid';
// Workaround for removing the .default access in esbuild IIFE.
// https://github.com/mermaid-js/mermaid/pull/4109#discussion_r1292317396
output.footer = {
js: 'globalThis.mermaid = globalThis.__esbuild_esm_mermaid.default;',
};
output.outExtension = { '.js': '.js' };
} else {
output.format = 'esm';
output.splitting = true;
output.outExtension = { '.js': '.mjs' };
}
return output;
};

View File

@@ -6,3 +6,6 @@ cypress/plugins/index.js
coverage
*.json
node_modules
# autogenereated by langium-cli
generated/

View File

@@ -14,7 +14,7 @@ module.exports = {
},
tsconfigRootDir: __dirname,
sourceType: 'module',
ecmaVersion: 2020,
ecmaVersion: 2022,
allowAutomaticSingleRunInference: true,
project: ['./tsconfig.eslint.json', './packages/*/tsconfig.json'],
parser: '@typescript-eslint/parser',
@@ -23,7 +23,7 @@ module.exports = {
'eslint:recommended',
'plugin:@typescript-eslint/recommended',
'plugin:json/recommended',
'plugin:markdown/recommended',
'plugin:markdown/recommended-legacy',
'plugin:@cspell/recommended',
'prettier',
],

View File

@@ -15,3 +15,4 @@ coverage:
# Turing off for now as code coverage isn't stable and causes unnecessary build failures.
# default:
# threshold: 2%
patch: off

View File

@@ -17,9 +17,19 @@ permissions:
contents: read
env:
# For PRs and MergeQueues, the target commit is used, and for push events, github.event.previous is used.
targetHash: ${{ github.event.pull_request.base.sha || github.event.merge_group.base_sha || (github.event.before == '0000000000000000000000000000000000000000' && 'develop' || github.event.before) }}
# For PRs and MergeQueues, the target commit is used, and for push events to non-develop branches, github.event.previous is used if available. Otherwise, 'develop' is used.
targetHash: >-
${{
github.event.pull_request.base.sha ||
github.event.merge_group.base_sha ||
(
(
(github.event_name == 'push' && github.ref == 'refs/heads/develop') ||
github.event.before == '0000000000000000000000000000000000000000'
) && 'develop'
) ||
github.event.before
}}
jobs:
cache:
runs-on: ubuntu-latest
@@ -48,11 +58,26 @@ jobs:
with:
ref: ${{ env.targetHash }}
- name: Install dependencies
if: ${{ steps.cache-snapshot.outputs.cache-hit != 'true' }}
uses: cypress-io/github-action@v6
with:
# just perform install
runTests: false
- name: Calculate bundle size
if: ${{ steps.cache-snapshot.outputs.cache-hit != 'true'}}
run: |
pnpm run build:viz
mkdir -p cypress/snapshots/stats/base
mv stats cypress/snapshots/stats/base
- name: Cypress run
uses: cypress-io/github-action@v4
uses: cypress-io/github-action@v6
id: cypress-snapshot-gen
if: ${{ steps.cache-snapshot.outputs.cache-hit != 'true' }}
with:
install: false
start: pnpm run dev
wait-on: 'http://localhost:9000'
browser: chrome
@@ -86,15 +111,30 @@ jobs:
path: ./cypress/snapshots
key: ${{ runner.os }}-snapshots-${{ env.targetHash }}
- name: Install dependencies
uses: cypress-io/github-action@v6
with:
runTests: false
- name: Output size diff
if: ${{ matrix.containers == 1 }}
run: |
pnpm run build:viz
mv stats cypress/snapshots/stats/head
echo '## Bundle size difference' >> "$GITHUB_STEP_SUMMARY"
echo '' >> "$GITHUB_STEP_SUMMARY"
npx tsx scripts/size.ts >> "$GITHUB_STEP_SUMMARY"
# Install NPM dependencies, cache them correctly
# and run all Cypress tests
- name: Cypress run
uses: cypress-io/github-action@v4
uses: cypress-io/github-action@v6
id: cypress
# If CYPRESS_RECORD_KEY is set, run in parallel on all containers
# Otherwise (e.g. if running from fork), we run on a single container only
if: ${{ ( env.CYPRESS_RECORD_KEY != '' ) || ( matrix.containers == 1 ) }}
with:
install: false
start: pnpm run dev:coverage
wait-on: 'http://localhost:9000'
browser: chrome

4
.gitignore vendored
View File

@@ -46,4 +46,8 @@ stats/
demos/dev/**
!/demos/dev/example.html
!/demos/dev/reload.js
tsx-0/**
# autogenereated by langium-cli
generated/

View File

@@ -1,4 +0,0 @@
#!/bin/sh
# . "$(dirname "$0")/_/husky.sh"
# npx --no-install commitlint --edit $1

View File

@@ -1,4 +1,4 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
pnpm run pre-commit
NODE_OPTIONS="--max_old_space_size=8192" pnpm run pre-commit

View File

@@ -11,6 +11,8 @@ stats
.nyc_output
# Autogenerated by `pnpm run --filter mermaid types:build-config`
packages/mermaid/src/config.type.ts
# autogenereated by langium-cli
generated/
# Ignore the files creates in /demos/dev except for example.html
demos/dev/**
!/demos/dev/example.html

View File

@@ -3,5 +3,6 @@
"printWidth": 100,
"singleQuote": true,
"useTabs": false,
"tabWidth": 2
"tabWidth": 2,
"trailingComma": "es5"
}

View File

@@ -3,11 +3,12 @@ import { resolve } from 'path';
import { fileURLToPath } from 'url';
import jisonPlugin from './jisonPlugin.js';
import jsonSchemaPlugin from './jsonSchemaPlugin.js';
import { readFileSync } from 'fs';
import typescript from '@rollup/plugin-typescript';
import { visualizer } from 'rollup-plugin-visualizer';
import type { TemplateType } from 'rollup-plugin-visualizer/dist/plugin/template-types.js';
import istanbul from 'vite-plugin-istanbul';
import { packageOptions } from '../.build/common.js';
import { generateLangium } from '../.build/generateLangium.js';
const visualize = process.argv.includes('--visualize');
const watch = process.argv.includes('--watch');
@@ -36,24 +37,6 @@ const visualizerOptions = (packageName: string, core = false): PluginOption[] =>
);
};
const packageOptions = {
mermaid: {
name: 'mermaid',
packageName: 'mermaid',
file: 'mermaid.ts',
},
'mermaid-example-diagram': {
name: 'mermaid-example-diagram',
packageName: 'mermaid-example-diagram',
file: 'detector.ts',
},
'mermaid-zenuml': {
name: 'mermaid-zenuml',
packageName: 'mermaid-zenuml',
file: 'detector.ts',
},
};
interface BuildOptions {
minify: boolean | 'esbuild';
core?: boolean;
@@ -72,34 +55,8 @@ export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions)
sourcemap,
entryFileNames: `${name}.esm${minify ? '.min' : ''}.mjs`,
},
{
name,
format: 'umd',
sourcemap,
entryFileNames: `${name}${minify ? '.min' : ''}.js`,
},
];
if (core) {
const { dependencies } = JSON.parse(
readFileSync(resolve(__dirname, `../packages/${packageName}/package.json`), 'utf-8')
);
// Core build is used to generate file without bundled dependencies.
// This is used by downstream projects to bundle dependencies themselves.
// Ignore dependencies and any dependencies of dependencies
// Adapted from the RegEx used by `rollup-plugin-node`
external.push(new RegExp('^(?:' + Object.keys(dependencies).join('|') + ')(?:/.+)?$'));
// This needs to be an array. Otherwise vite will build esm & umd with same name and overwrite esm with umd.
output = [
{
name,
format: 'esm',
sourcemap,
entryFileNames: `${name}.core.mjs`,
},
];
}
const config: InlineConfig = {
configFile: false,
build: {
@@ -129,7 +86,7 @@ export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions)
// @ts-expect-error According to the type definitions, rollup plugins are incompatible with vite
typescript({ compilerOptions: { declaration: false } }),
istanbul({
exclude: ['node_modules', 'test/', '__mocks__'],
exclude: ['node_modules', 'test/', '__mocks__', 'generated'],
extension: ['.js', '.ts'],
requireEnv: true,
forceBuildInstrument: coverage,
@@ -149,24 +106,28 @@ export const getBuildConfig = ({ minify, core, watch, entryName }: BuildOptions)
const buildPackage = async (entryName: keyof typeof packageOptions) => {
await build(getBuildConfig({ minify: false, entryName }));
await build(getBuildConfig({ minify: 'esbuild', entryName }));
await build(getBuildConfig({ minify: false, core: true, entryName }));
};
const main = async () => {
const packageNames = Object.keys(packageOptions) as (keyof typeof packageOptions)[];
for (const pkg of packageNames.filter((pkg) => !mermaidOnly || pkg === 'mermaid')) {
for (const pkg of packageNames.filter(
(pkg) => !mermaidOnly || pkg === 'mermaid' || pkg === 'parser'
)) {
await buildPackage(pkg);
}
};
await generateLangium();
if (watch) {
await build(getBuildConfig({ minify: false, watch, core: false, entryName: 'parser' }));
build(getBuildConfig({ minify: false, watch, core: false, entryName: 'mermaid' }));
if (!mermaidOnly) {
build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-example-diagram' }));
build(getBuildConfig({ minify: false, watch, entryName: 'mermaid-zenuml' }));
}
} else if (visualize) {
await build(getBuildConfig({ minify: false, watch, core: false, entryName: 'parser' }));
await build(getBuildConfig({ minify: false, core: true, entryName: 'mermaid' }));
await build(getBuildConfig({ minify: false, core: false, entryName: 'mermaid' }));
} else {

View File

@@ -1,10 +1,10 @@
import { transformJison } from './jisonTransformer.js';
import { transformJison } from '../.build/jisonTransformer.js';
const fileRegex = /\.(jison)$/;
export default function jison() {
return {
name: 'jison',
transform(src: string, id: string) {
if (fileRegex.test(id)) {
return {

View File

@@ -1,110 +1,5 @@
import { load, JSON_SCHEMA } from 'js-yaml';
import assert from 'node:assert';
import Ajv2019, { type JSONSchemaType } from 'ajv/dist/2019.js';
import { PluginOption } from 'vite';
import type { MermaidConfig, BaseDiagramConfig } from '../packages/mermaid/src/config.type.js';
/**
* All of the keys in the mermaid config that have a mermaid diagram config.
*/
const MERMAID_CONFIG_DIAGRAM_KEYS = [
'flowchart',
'sequence',
'gantt',
'journey',
'class',
'state',
'er',
'pie',
'quadrantChart',
'xyChart',
'requirement',
'mindmap',
'timeline',
'gitGraph',
'c4',
'sankey',
'block',
] as const;
/**
* Generate default values from the JSON Schema.
*
* AJV does not support nested default values yet (or default values with $ref),
* so we need to manually find them (this may be fixed in ajv v9).
*
* @param mermaidConfigSchema - The Mermaid JSON Schema to use.
* @returns The default mermaid config object.
*/
function generateDefaults(mermaidConfigSchema: JSONSchemaType<MermaidConfig>) {
const ajv = new Ajv2019({
useDefaults: true,
allowUnionTypes: true,
strict: true,
});
ajv.addKeyword({
keyword: 'meta:enum', // used by jsonschema2md
errors: false,
});
ajv.addKeyword({
keyword: 'tsType', // used by json-schema-to-typescript
errors: false,
});
// ajv currently doesn't support nested default values, see https://github.com/ajv-validator/ajv/issues/1718
// (may be fixed in v9) so we need to manually use sub-schemas
const mermaidDefaultConfig = {};
assert.ok(mermaidConfigSchema.$defs);
const baseDiagramConfig = mermaidConfigSchema.$defs.BaseDiagramConfig;
for (const key of MERMAID_CONFIG_DIAGRAM_KEYS) {
const subSchemaRef = mermaidConfigSchema.properties[key].$ref;
const [root, defs, defName] = subSchemaRef.split('/');
assert.strictEqual(root, '#');
assert.strictEqual(defs, '$defs');
const subSchema = {
$schema: mermaidConfigSchema.$schema,
$defs: mermaidConfigSchema.$defs,
...mermaidConfigSchema.$defs[defName],
} as JSONSchemaType<BaseDiagramConfig>;
const validate = ajv.compile(subSchema);
mermaidDefaultConfig[key] = {};
for (const required of subSchema.required ?? []) {
if (subSchema.properties[required] === undefined && baseDiagramConfig.properties[required]) {
mermaidDefaultConfig[key][required] = baseDiagramConfig.properties[required].default;
}
}
if (!validate(mermaidDefaultConfig[key])) {
throw new Error(
`schema for subconfig ${key} does not have valid defaults! Errors were ${JSON.stringify(
validate.errors,
undefined,
2
)}`
);
}
}
const validate = ajv.compile(mermaidConfigSchema);
if (!validate(mermaidDefaultConfig)) {
throw new Error(
`Mermaid config JSON Schema does not have valid defaults! Errors were ${JSON.stringify(
validate.errors,
undefined,
2
)}`
);
}
return mermaidDefaultConfig;
}
import { getDefaults, getSchema, loadSchema } from '../.build/jsonSchema.js';
/**
* Vite plugin that handles JSON Schemas saved as a `.schema.yaml` file.
@@ -121,32 +16,13 @@ export default function jsonSchemaPlugin(): PluginOption {
return;
}
if (idAsUrl.searchParams.get('only-defaults')) {
const jsonSchema = load(src, {
filename: idAsUrl.pathname,
// only allow JSON types in our YAML doc (will probably be default in YAML 1.3)
// e.g. `true` will be parsed a boolean `true`, `True` will be parsed as string `"True"`.
schema: JSON_SCHEMA,
}) as JSONSchemaType<MermaidConfig>;
return {
code: `export default ${JSON.stringify(generateDefaults(jsonSchema), undefined, 2)};`,
map: null, // no source map
};
} else {
return {
code: `export default ${JSON.stringify(
load(src, {
filename: idAsUrl.pathname,
// only allow JSON types in our YAML doc (will probably be default in YAML 1.3)
// e.g. `true` will be parsed a boolean `true`, `True` will be parsed as string `"True"`.
schema: JSON_SCHEMA,
}),
undefined,
2
)};`,
map: null, // provide source map if available
};
}
const jsonSchema = loadSchema(src, idAsUrl.pathname);
return {
code: idAsUrl.searchParams.get('only-defaults')
? getDefaults(jsonSchema)
: getSchema(jsonSchema),
map: null, // no source map
};
},
};
}

View File

@@ -1,6 +1,7 @@
import express from 'express';
import cors from 'cors';
import { createServer as createViteServer } from 'vite';
import { packageOptions } from '../.build/common.js';
async function createServer() {
const app = express();
@@ -14,9 +15,9 @@ async function createServer() {
});
app.use(cors());
app.use(express.static('./packages/mermaid/dist'));
app.use(express.static('./packages/mermaid-zenuml/dist'));
app.use(express.static('./packages/mermaid-example-diagram/dist'));
for (const { packageName } of Object.values(packageOptions)) {
app.use(express.static(`./packages/${packageName}/dist`));
}
app.use(vite.middlewares);
app.use(express.static('demos'));
app.use(express.static('cypress/platform'));

View File

@@ -1,21 +0,0 @@
/**
* Mocked C4Context diagram renderer
*/
import { vi } from 'vitest';
export const drawPersonOrSystemArray = vi.fn();
export const drawBoundary = vi.fn();
export const setConf = vi.fn();
export const draw = vi.fn().mockImplementation(() => {
return '';
});
export default {
drawPersonOrSystemArray,
drawBoundary,
setConf,
draw,
};

View File

@@ -1,16 +0,0 @@
/**
* Mocked class diagram v2 renderer
*/
import { vi } from 'vitest';
export const setConf = vi.fn();
export const draw = vi.fn().mockImplementation(() => {
return '';
});
export default {
setConf,
draw,
};

View File

@@ -1,13 +0,0 @@
/**
* Mocked class diagram renderer
*/
import { vi } from 'vitest';
export const draw = vi.fn().mockImplementation(() => {
return '';
});
export default {
draw,
};

View File

@@ -1 +0,0 @@
// DO NOT delete this file. It is used by vitest to mock the dagre-d3 module.

View File

@@ -1,3 +0,0 @@
module.exports = function (txt: string) {
return txt;
};

View File

@@ -1,16 +0,0 @@
/**
* Mocked er diagram renderer
*/
import { vi } from 'vitest';
export const setConf = vi.fn();
export const draw = vi.fn().mockImplementation(() => {
return '';
});
export default {
setConf,
draw,
};

View File

@@ -1,24 +0,0 @@
/**
* Mocked flow (flowchart) diagram v2 renderer
*/
import { vi } from 'vitest';
export const setConf = vi.fn();
export const addVertices = vi.fn();
export const addEdges = vi.fn();
export const getClasses = vi.fn().mockImplementation(() => {
return {};
});
export const draw = vi.fn().mockImplementation(() => {
return '';
});
export default {
setConf,
addVertices,
addEdges,
getClasses,
draw,
};

View File

@@ -1,16 +0,0 @@
/**
* Mocked gantt diagram renderer
*/
import { vi } from 'vitest';
export const setConf = vi.fn();
export const draw = vi.fn().mockImplementation(() => {
return '';
});
export default {
setConf,
draw,
};

View File

@@ -1,13 +0,0 @@
/**
* Mocked git (graph) diagram renderer
*/
import { vi } from 'vitest';
export const draw = vi.fn().mockImplementation(() => {
return '';
});
export default {
draw,
};

View File

@@ -1,15 +0,0 @@
/**
* Mocked pie (picChart) diagram renderer
*/
import { vi } from 'vitest';
export const setConf = vi.fn();
export const draw = vi.fn().mockImplementation(() => {
return '';
});
export default {
setConf,
draw,
};

View File

@@ -1,8 +0,0 @@
/**
* Mocked pie (picChart) diagram renderer
*/
import { vi } from 'vitest';
const draw = vi.fn().mockImplementation(() => '');
export const renderer = { draw };

View File

@@ -1,13 +0,0 @@
/**
* Mocked requirement diagram renderer
*/
import { vi } from 'vitest';
export const draw = vi.fn().mockImplementation(() => {
return '';
});
export default {
draw,
};

View File

@@ -1,13 +0,0 @@
/**
* Mocked Sankey diagram renderer
*/
import { vi } from 'vitest';
export const draw = vi.fn().mockImplementation(() => {
return '';
});
export default {
draw,
};

View File

@@ -1,23 +0,0 @@
/**
* Mocked sequence diagram renderer
*/
import { vi } from 'vitest';
export const bounds = vi.fn();
export const drawActors = vi.fn();
export const drawActorsPopup = vi.fn();
export const setConf = vi.fn();
export const draw = vi.fn().mockImplementation(() => {
return '';
});
export default {
bounds,
drawActors,
drawActorsPopup,
setConf,
draw,
};

View File

@@ -1,22 +0,0 @@
/**
* Mocked state diagram v2 renderer
*/
import { vi } from 'vitest';
export const setConf = vi.fn();
export const getClasses = vi.fn().mockImplementation(() => {
return {};
});
export const stateDomId = vi.fn().mockImplementation(() => {
return 'mocked-stateDiagram-stateDomId';
});
export const draw = vi.fn().mockImplementation(() => {
return '';
});
export default {
setConf,
getClasses,
draw,
};

View File

@@ -118,11 +118,53 @@ describe('Configuration', () => {
it('should not taint the initial configuration when using multiple directives', () => {
const url = 'http://localhost:9000/regression/issue-1874.html';
cy.visit(url);
cy.get('svg');
cy.window().should('have.property', 'rendered', true);
cy.get('svg').should('be.visible');
cy.matchImageSnapshot(
'configuration.spec-should-not-taint-initial-configuration-when-using-multiple-directives'
);
});
});
describe('suppressErrorRendering', () => {
beforeEach(() => {
cy.on('uncaught:exception', (err, runnable) => {
return !err.message.includes('Parse error on line');
});
});
it('should not render error diagram if suppressErrorRendering is set', () => {
const url = 'http://localhost:9000/suppressError.html?suppressErrorRendering=true';
cy.visit(url);
cy.window().should('have.property', 'rendered', true);
cy.get('#test')
.find('svg')
.should(($svg) => {
// all failing diagrams should not appear!
expect($svg).to.have.length(2);
// none of the diagrams should be error diagrams
expect($svg).to.not.contain('Syntax error');
});
cy.matchImageSnapshot(
'configuration.spec-should-not-render-error-diagram-if-suppressErrorRendering-is-set'
);
});
it('should render error diagram if suppressErrorRendering is not set', () => {
const url = 'http://localhost:9000/suppressError.html';
cy.visit(url);
cy.window().should('have.property', 'rendered', true);
cy.get('#test')
.find('svg')
.should(($svg) => {
// all five diagrams should be rendered
expect($svg).to.have.length(5);
// some of the diagrams should be error diagrams
expect($svg).to.contain('Syntax error');
});
cy.matchImageSnapshot(
'configuration.spec-should-render-error-diagram-if-suppressErrorRendering-is-not-set'
);
});
});
});

View File

@@ -0,0 +1,14 @@
import { urlSnapshotTest, openURLAndVerifyRendering } from '../../helpers/util.ts';
describe('Flowchart elk', () => {
it('should use dagre as fallback', () => {
urlSnapshotTest('http://localhost:9000/flow-elk.html', {
name: 'flow-elk fallback to dagre',
});
});
it('should allow overriding with external package', () => {
urlSnapshotTest('http://localhost:9000/flow-elk.html?elk=true', {
name: 'flow-elk overriding dagre with elk',
});
});
});

View File

@@ -0,0 +1,11 @@
describe('IIFE', () => {
beforeEach(() => {
cy.visit('http://localhost:9000/iife.html');
});
it('should render when using mermaid.min.js', () => {
cy.window().should('have.property', 'rendered', true);
cy.get('svg').should('be.visible');
cy.get('#d2').should('contain', 'Hello');
});
});

View File

@@ -1,16 +0,0 @@
describe('Sequencediagram', () => {
it('should render a simple sequence diagrams', () => {
const url = 'http://localhost:9000/webpackUsage.html';
cy.visit(url);
cy.get('body').find('svg').should('have.length', 1);
});
it('should handle html escapings properly', () => {
const url = 'http://localhost:9000/webpackUsage.html?test-html-escaping=true';
cy.visit(url);
cy.get('body').find('svg').should('have.length', 1);
cy.get('g.label > foreignobject > div').should('not.contain.text', '<b>');
});
});

View File

@@ -844,3 +844,42 @@ end
});
});
});
describe('Title and arrow styling #4813', () => {
it('should render a flowchart with title', () => {
const titleString = 'Test Title';
renderGraph(
`---
title: ${titleString}
---
flowchart LR
A-->B
A-->C`,
{ flowchart: { defaultRenderer: 'elk' } }
);
cy.get('svg').should((svg) => {
const title = svg[0].querySelector('text');
expect(title.textContent).to.contain(titleString);
});
});
it('Render with stylized arrows', () => {
renderGraph(
`
flowchart LR
A-->B
B-.-oC
C==xD
D ~~~ A`,
{ flowchart: { defaultRenderer: 'elk' } }
);
cy.get('svg').should((svg) => {
const edges = svg[0].querySelectorAll('.edges path');
console.log(edges);
expect(edges[0]).to.have.attr('pattern', 'solid');
expect(edges[1]).to.have.attr('pattern', 'dotted');
expect(edges[2]).to.have.css('stroke-width', '3.5px');
expect(edges[3]).to.have.css('stroke-width', '1.5px');
});
});
});

View File

@@ -760,6 +760,51 @@ A ~~~ B
);
});
it('3258: Should render subgraphs with main graph nodeSpacing and rankSpacing', () => {
imgSnapshotTest(
`---
title: Subgraph nodeSpacing and rankSpacing example
---
flowchart LR
X --> Y
subgraph X
direction LR
A
C
end
subgraph Y
B
D
end
`,
{ flowchart: { nodeSpacing: 1, rankSpacing: 1 } }
);
});
it('3258: Should render subgraphs with large nodeSpacing and rankSpacing', () => {
imgSnapshotTest(
`---
title: Subgraph nodeSpacing and rankSpacing example
config:
flowchart:
nodeSpacing: 250
rankSpacing: 250
---
flowchart LR
X --> Y
subgraph X
direction LR
A
C
end
subgraph Y
B
D
end
`
);
});
describe('Markdown strings flowchart (#4220)', () => {
describe('html labels', () => {
it('With styling and classes', () => {
@@ -904,6 +949,18 @@ end
);
});
});
it('should not auto wrap when markdownAutoWrap is false', () => {
imgSnapshotTest(
`flowchart TD
angular_velocity["\`**angular_velocity**
*angular_displacement / duration*
[rad/s, 1/s]
{vector}\`"]
frequency["frequency\n(1 / period_duration)\n[Hz, 1/s]"]`,
{ markdownAutoWrap: false }
);
});
});
describe('Subgraph title margins', () => {
it('Should render subgraphs with title margins set (LR)', () => {

View File

@@ -101,12 +101,12 @@ describe('Gantt diagram', () => {
title Adding GANTT diagram to mermaid
excludes weekdays 2014-01-10
todayMarker off
section team's critical event
deadline A :milestone, crit, deadlineA, 2024-02-01, 0
deadline B :milestone, crit, deadlineB, 2024-02-15, 0
boss on leave :bossaway, 2024-01-28, 2024-02-11
section new intern
onboarding :onboarding, 2024-01-02, 1w
literature review :litreview, 2024-01-02, 10d
@@ -573,7 +573,28 @@ describe('Gantt diagram', () => {
`
);
});
it('should render a gantt diagram exculding friday and saturday', () => {
imgSnapshotTest(
`gantt
title A Gantt Diagram
dateFormat YYYY-MM-DD
excludes weekends
weekend friday
section Section1
A task :a1, 2024-02-28, 10d`
);
});
it('should render a gantt diagram exculding saturday and sunday', () => {
imgSnapshotTest(
`gantt
title A Gantt Diagram
dateFormat YYYY-MM-DD
excludes weekends
weekend saturday
section Section1
A task :a1, 2024-02-28, 10d`
);
});
it('should render when compact is true', () => {
imgSnapshotTest(
`

View File

@@ -1013,4 +1013,450 @@ gitGraph TB:
{ gitGraph: { parallelCommits: true } }
);
});
describe('Git-Graph Bottom-to-Top Orientation Tests', () => {
it('50: should render a simple gitgraph with commit on main branch | Vertical Branch - Bottom-to-top', () => {
imgSnapshotTest(
`gitGraph BT:
commit id: "1"
commit id: "2"
commit id: "3"
`,
{}
);
});
it('51: should render a simple gitgraph with commit on main branch with Id | Vertical Branch - Bottom-to-top', () => {
imgSnapshotTest(
`gitGraph BT:
commit id: "One"
commit id: "Two"
commit id: "Three"
`,
{}
);
});
it('52: should render a simple gitgraph with different commitTypes on main branch | Vertical Branch - Bottom-to-top', () => {
imgSnapshotTest(
`gitGraph BT:
commit id: "Normal Commit"
commit id: "Reverse Commit" type: REVERSE
commit id: "Highlight Commit" type: HIGHLIGHT
`,
{}
);
});
it('53: should render a simple gitgraph with tags commitTypes on main branch | Vertical Branch - Bottom-to-top', () => {
imgSnapshotTest(
`gitGraph BT:
commit id: "Normal Commit with tag" tag: "v1.0.0"
commit id: "Reverse Commit with tag" type: REVERSE tag: "RC_1"
commit id: "Highlight Commit" type: HIGHLIGHT tag: "8.8.4"
`,
{}
);
});
it('54: should render a simple gitgraph with two branches | Vertical Branch - Bottom-to-top', () => {
imgSnapshotTest(
`gitGraph BT:
commit id: "1"
commit id: "2"
branch develop
checkout develop
commit id: "3"
commit id: "4"
checkout main
commit id: "5"
commit id: "6"
`,
{}
);
});
it('55: should render a simple gitgraph with two branches and merge commit | Vertical Branch - Bottom-to-top', () => {
imgSnapshotTest(
`gitGraph BT:
commit id: "1"
commit id: "2"
branch develop
checkout develop
commit id: "3"
commit id: "4"
checkout main
merge develop
commit id: "5"
commit id: "6"
`,
{}
);
});
it('56: should render a simple gitgraph with three branches and tagged merge commit | Vertical Branch - Bottom-to-top', () => {
imgSnapshotTest(
`gitGraph BT:
commit id: "1"
commit id: "2"
branch nice_feature
checkout nice_feature
commit id: "3"
checkout main
commit id: "4"
checkout nice_feature
branch very_nice_feature
checkout very_nice_feature
commit id: "5"
checkout main
commit id: "6"
checkout nice_feature
commit id: "7"
checkout main
merge nice_feature id: "12345" tag: "my merge commit"
checkout very_nice_feature
commit id: "8"
checkout main
commit id: "9"
`,
{}
);
});
it('57: should render a simple gitgraph with more than 8 branches & overriding variables | Vertical Branch - Bottom-to-top', () => {
imgSnapshotTest(
`%%{init: { 'logLevel': 'debug', 'theme': 'default' , 'themeVariables': {
'gitBranchLabel0': '#ffffff',
'gitBranchLabel1': '#ffffff',
'gitBranchLabel2': '#ffffff',
'gitBranchLabel3': '#ffffff',
'gitBranchLabel4': '#ffffff',
'gitBranchLabel5': '#ffffff',
'gitBranchLabel6': '#ffffff',
'gitBranchLabel7': '#ffffff',
} } }%%
gitGraph BT:
checkout main
branch branch1
branch branch2
branch branch3
branch branch4
branch branch5
branch branch6
branch branch7
branch branch8
branch branch9
checkout branch1
commit id: "1"
`,
{}
);
});
it('58: should render a simple gitgraph with rotated labels | Vertical Branch - Bottom-to-top', () => {
imgSnapshotTest(
`%%{init: { 'logLevel': 'debug', 'theme': 'default' , 'gitGraph': {
'rotateCommitLabel': true
} } }%%
gitGraph BT:
commit id: "75f7219e83b321cd3fdde7dcf83bc7c1000a6828"
commit id: "0db4784daf82736dec4569e0dc92980d328c1f2e"
commit id: "7067e9973f9eaa6cd4a4b723c506d1eab598e83e"
commit id: "66972321ad6c199013b5b31f03b3a86fa3f9817d"
`,
{}
);
});
it('59: should render a simple gitgraph with horizontal labels | Vertical Branch - Bottom-to-top', () => {
imgSnapshotTest(
`%%{init: { 'logLevel': 'debug', 'theme': 'default' , 'gitGraph': {
'rotateCommitLabel': false
} } }%%
gitGraph BT:
commit id: "Alpha"
commit id: "Beta"
commit id: "Gamma"
commit id: "Delta"
`,
{}
);
});
it('60: should render a simple gitgraph with cherry pick commit | Vertical Branch - Bottom-to-top', () => {
imgSnapshotTest(
`
gitGraph BT:
commit id: "ZERO"
branch develop
commit id:"A"
checkout main
commit id:"ONE"
checkout develop
commit id:"B"
checkout main
commit id:"TWO"
cherry-pick id:"A"
commit id:"THREE"
checkout develop
commit id:"C"
`,
{}
);
});
it('61: should render a gitgraph with cherry pick commit with custom tag | Vertical Branch - Bottom-to-top', () => {
imgSnapshotTest(
`
gitGraph BT:
commit id: "ZERO"
branch develop
commit id:"A"
checkout main
commit id:"ONE"
checkout develop
commit id:"B"
checkout main
commit id:"TWO"
cherry-pick id:"A" tag: "snapshot"
commit id:"THREE"
checkout develop
commit id:"C"
`,
{}
);
});
it('62: should render a gitgraph with cherry pick commit with no tag | Vertical Branch - Bottom-to-top', () => {
imgSnapshotTest(
`
gitGraph BT:
commit id: "ZERO"
branch develop
commit id:"A"
checkout main
commit id:"ONE"
checkout develop
commit id:"B"
checkout main
commit id:"TWO"
cherry-pick id:"A" tag: ""
commit id:"THREE"
checkout develop
commit id:"C"
`,
{}
);
});
it('63: should render a simple gitgraph with two cherry pick commit | Vertical Branch - Bottom-to-top', () => {
imgSnapshotTest(
`
gitGraph BT:
commit id: "ZERO"
branch develop
commit id:"A"
checkout main
commit id:"ONE"
checkout develop
commit id:"B"
branch featureA
commit id:"FIX"
commit id: "FIX-2"
checkout main
commit id:"TWO"
cherry-pick id:"A"
commit id:"THREE"
cherry-pick id:"FIX"
checkout develop
commit id:"C"
merge featureA
`,
{}
);
});
it('64: should render commits for more than 8 branches | Vertical Branch - Bottom-to-top', () => {
imgSnapshotTest(
`
gitGraph BT:
checkout main
%% Make sure to manually set the ID of all commits, for consistent visual tests
commit id: "1-abcdefg"
checkout main
branch branch1
commit id: "2-abcdefg"
checkout main
merge branch1
branch branch2
commit id: "3-abcdefg"
checkout main
merge branch2
branch branch3
commit id: "4-abcdefg"
checkout main
merge branch3
branch branch4
commit id: "5-abcdefg"
checkout main
merge branch4
branch branch5
commit id: "6-abcdefg"
checkout main
merge branch5
branch branch6
commit id: "7-abcdefg"
checkout main
merge branch6
branch branch7
commit id: "8-abcdefg"
checkout main
merge branch7
branch branch8
commit id: "9-abcdefg"
checkout main
merge branch8
branch branch9
commit id: "10-abcdefg"
`,
{}
);
});
it('65: should render a simple gitgraph with three branches,custom merge commit id,tag,type | Vertical Branch - Bottom-to-top', () => {
imgSnapshotTest(
`gitGraph BT:
commit id: "1"
commit id: "2"
branch nice_feature
checkout nice_feature
commit id: "3"
checkout main
commit id: "4"
checkout nice_feature
branch very_nice_feature
checkout very_nice_feature
commit id: "5"
checkout main
commit id: "6"
checkout nice_feature
commit id: "7"
checkout main
merge nice_feature id: "customID" tag: "customTag" type: REVERSE
checkout very_nice_feature
commit id: "8"
checkout main
commit id: "9"
`,
{}
);
});
it('66: should render a simple gitgraph with a title | Vertical Branch - Bottom-to-top', () => {
imgSnapshotTest(
`---
title: simple gitGraph
---
gitGraph BT:
commit id: "1-abcdefg"
`,
{}
);
});
it('67: should render a simple gitgraph overlapping commits | Vertical Branch - Bottom-to-top', () => {
imgSnapshotTest(
`gitGraph BT:
commit id:"s1"
commit id:"s2"
branch branch1
commit id:"s3"
commit id:"s4"
checkout main
commit id:"s5"
checkout branch1
commit id:"s6"
commit id:"s7"
merge main
`,
{}
);
});
it('68: should render a simple gitgraph with two branches from same commit | Vertical Branch - Bottom-to-top', () => {
imgSnapshotTest(
`gitGraph BT:
commit id:"1-abcdefg"
commit id:"2-abcdefg"
branch feature-001
commit id:"3-abcdefg"
commit id:"4-abcdefg"
checkout main
branch feature-002
commit id:"5-abcdefg"
checkout feature-001
merge feature-002
`,
{}
);
});
it('69: should render GitGraph with branch that is not used immediately | Vertical Branch - Bottom-to-top', () => {
imgSnapshotTest(
`gitGraph BT:
commit id:"1-abcdefg"
branch x
checkout main
commit id:"2-abcdefg"
checkout x
commit id:"3-abcdefg"
checkout main
merge x
`,
{}
);
});
it('70: should render GitGraph with branch and sub-branch neither of which used immediately | Vertical Branch - Bottom-to-top', () => {
imgSnapshotTest(
`gitGraph BT:
commit id:"1-abcdefg"
branch x
checkout main
commit id:"2-abcdefg"
checkout x
commit id:"3-abcdefg"
checkout main
merge x
checkout x
branch y
checkout x
commit id:"4-abcdefg"
checkout y
commit id:"5-abcdefg"
checkout x
merge y
`,
{}
);
});
it('71: should render GitGraph with parallel commits | Vertical Branch - Bottom-to-top', () => {
imgSnapshotTest(
`gitGraph BT:
commit id:"1-abcdefg"
commit id:"2-abcdefg"
branch develop
commit id:"3-abcdefg"
commit id:"4-abcdefg"
checkout main
branch feature
commit id:"5-abcdefg"
commit id:"6-abcdefg"
checkout main
commit id:"7-abcdefg"
commit id:"8-abcdefg"
`,
{ gitGraph: { parallelCommits: true } }
);
});
it('72: should render GitGraph with unconnected branches and parallel commits | Vertical Branch - Bottom-to-top', () => {
imgSnapshotTest(
`gitGraph BT:
branch dev
branch v2
branch feat
commit id:"1-abcdefg"
commit id:"2-abcdefg"
checkout main
commit id:"3-abcdefg"
checkout dev
commit id:"4-abcdefg"
checkout v2
commit id:"5-abcdefg"
checkout main
commit id:"6-abcdefg"
`,
{ gitGraph: { parallelCommits: true } }
);
});
});
});

View File

@@ -0,0 +1,67 @@
import { imgSnapshotTest } from '../../helpers/util';
describe('packet structure', () => {
it('should render a simple packet diagram', () => {
imgSnapshotTest(
`packet-beta
title Hello world
0-10: "hello"
`
);
});
it('should render a complex packet diagram', () => {
imgSnapshotTest(
`packet-beta
0-15: "Source Port"
16-31: "Destination Port"
32-63: "Sequence Number"
64-95: "Acknowledgment Number"
96-99: "Data Offset"
100-105: "Reserved"
106: "URG"
107: "ACK"
108: "PSH"
109: "RST"
110: "SYN"
111: "FIN"
112-127: "Window"
128-143: "Checksum"
144-159: "Urgent Pointer"
160-191: "(Options and Padding)"
192-223: "data"
`
);
});
it('should render a complex packet diagram with showBits false', () => {
imgSnapshotTest(
`
---
title: "Packet Diagram"
config:
packet:
showBits: false
---
packet-beta
0-15: "Source Port"
16-31: "Destination Port"
32-63: "Sequence Number"
64-95: "Acknowledgment Number"
96-99: "Data Offset"
100-105: "Reserved"
106: "URG"
107: "ACK"
108: "PSH"
109: "RST"
110: "SYN"
111: "FIN"
112-127: "Window"
128-143: "Checksum"
144-159: "Urgent Pointer"
160-191: "(Options and Padding)"
192-223: "data"
`
);
});
});

View File

@@ -375,7 +375,7 @@ context('Sequence diagram', () => {
{}
);
});
it('should have actor-top and actor-bottom classes on top and bottom actor box and symbol', () => {
it('should have actor-top and actor-bottom classes on top and bottom actor box and symbol and actor-box and actor-man classes for text tags', () => {
imgSnapshotTest(
`
sequenceDiagram
@@ -394,6 +394,9 @@ context('Sequence diagram', () => {
cy.get('.actor-man').should('have.class', 'actor-bottom');
cy.get('.actor.actor-bottom').should('not.have.class', 'actor-top');
cy.get('.actor-man.actor-bottom').should('not.have.class', 'actor-top');
cy.get('text.actor-box').should('include.text', 'Alice');
cy.get('text.actor-man').should('include.text', 'Bob');
});
it('should render long notes left of actor', () => {
imgSnapshotTest(
@@ -807,7 +810,10 @@ context('Sequence diagram', () => {
note left of Alice: config: mirrorActors=true<br/>directive: mirrorActors=false
Bob->>Alice: Short as well
`,
{ logLevel: 0, sequence: { mirrorActors: true, noteFontSize: 18, noteFontFamily: 'Arial' } }
{
logLevel: 0,
sequence: { mirrorActors: true, noteFontSize: 18, noteFontFamily: 'Arial' },
}
);
});
});
@@ -858,7 +864,10 @@ context('Sequence diagram', () => {
a->>j: Hello John, how are you?
j-->>a: Great!
`,
{ logLevel: 0, sequence: { mirrorActors: true, noteFontSize: 18, noteFontFamily: 'Arial' } }
{
logLevel: 0,
sequence: { mirrorActors: true, noteFontSize: 18, noteFontFamily: 'Arial' },
}
);
});
it('should support actor links and properties when not mirrored EXPERIMENTAL: USE WITH CAUTION', () => {

View File

@@ -33,7 +33,9 @@
background-image: radial-gradient(#fff 1%, transparent 11%),
radial-gradient(#fff 1%, transparent 11%);
background-size: 20px 20px;
background-position: 0 0, 10px 10px;
background-position:
0 0,
10px 10px;
background-repeat: repeat;
}
.malware {

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html>
<head>
<meta charset="utf-8" />

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html>
<head>
<meta charset="utf-8" />

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html>
<head>
<meta charset="utf-8" />

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html>
<head>
<meta charset="utf-8" />

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html>
<head>
<meta charset="utf-8" />

View File

@@ -1,7 +1,7 @@
<html>
<head>
<meta charset="utf-8" />
<script src="./viewer.js" type="module"></script>
<script type="module" src="./viewer.js"></script>
<link
href="https://fonts.googleapis.com/css?family=Noto+Sans+SC&display=swap"
rel="stylesheet"

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />

View File

@@ -11,8 +11,7 @@ example-diagram
<!-- <script src="//cdn.jsdelivr.net/npm/mermaid@9.1.7/dist/mermaid.min.js"></script> -->
<!-- <script type="module" src="./external-diagrams-mindmap.mjs" /> -->
<script type="module">
import exampleDiagram from '../../packages/mermaid-example-diagram/dist/mermaid-example-diagram.core.mjs';
// import example from '../../packages/mermaid-example-diagram/src/detector';
import exampleDiagram from './mermaid-example-diagram.esm.mjs';
import mermaid from './mermaid.esm.mjs';
await mermaid.registerExternalDiagrams([exampleDiagram]);

View File

@@ -0,0 +1,28 @@
<html>
<body>
<pre class="mermaid">
flowchart-elk
a[hello] --> b[world]
b --> c{test}
c --> one
c --> two
c --> three
</pre>
<script type="module">
import mermaid from './mermaid.esm.mjs';
import elk from './mermaid-flowchart-elk.esm.min.mjs';
if (window.location.search.includes('elk')) {
await mermaid.registerExternalDiagrams([elk]);
}
mermaid.initialize({
logLevel: 3,
startOnLoad: false,
});
await mermaid.run();
if (window.Cypress) {
window.rendered = true;
}
</script>
</body>
</html>

View File

@@ -0,0 +1,29 @@
<html>
<body>
<pre id="diagram" class="mermaid">
graph TB
a --> b
a --> c
b --> d
c --> d
</pre>
<div id="d2"></div>
<script src="/mermaid.min.js"></script>
<script>
mermaid.initialize({
startOnLoad: true,
});
const value = `graph TD\nHello --> World`;
const el = document.getElementById('d2');
mermaid.render('did', value).then(({ svg }) => {
console.log(svg);
el.innerHTML = svg;
if (window.Cypress) {
window.rendered = true;
}
});
</script>
</body>
</html>

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
@@ -17,20 +17,20 @@
graph TB
Function-->URL
click Function clickByFlow "Add a div"
click URL "http://localhost:9000/webpackUsage.html" "Visit <strong>mermaid docs</strong>"
click URL "http://localhost:9000/info.html" "Visit <strong>mermaid docs</strong>"
</pre>
<pre id="FirstLine" class="mermaid2">
graph TB
1Function-->2URL
click 1Function clickByFlow "Add a div"
click 2URL "http://localhost:9000/webpackUsage.html" "Visit <strong>mermaid docs</strong>"
click 2URL "http://localhost:9000/info.html" "Visit <strong>mermaid docs</strong>"
</pre>
<pre id="FirstLine" class="mermaid2">
classDiagram
class Test
class ShapeLink
link ShapeLink "http://localhost:9000/webpackUsage.html" "This is a tooltip for a link"
link ShapeLink "http://localhost:9000/info.html" "This is a tooltip for a link"
class ShapeCallback
callback ShapeCallback "clickByClass" "This is a tooltip for a callback"
</pre>
@@ -42,7 +42,7 @@
<pre id="FirstLine" class="mermaid">
classDiagram-v2
class ShapeLink
link ShapeLink "http://localhost:9000/webpackUsage.html" "This is a tooltip for a link"
link ShapeLink "http://localhost:9000/info.html" "This is a tooltip for a link"
</pre>
</div>
@@ -77,7 +77,7 @@
Calling a Callback (look at the console log) :cl2, after cl1, 3d
Calling a Callback with args :cl3, after cl1, 3d
click cl1 href "http://localhost:9000/webpackUsage.html"
click cl1 href "http://localhost:9000/info.html"
click cl2 call clickByGantt()
click cl3 call clickByGantt("test1", test2, test3)
@@ -102,9 +102,15 @@
div.className = 'created-by-gant-click';
div.style = 'padding: 20px; background: green; color: white;';
div.innerText = 'Clicked By Gant';
if (arg1) div.innerText += ' ' + arg1;
if (arg2) div.innerText += ' ' + arg2;
if (arg3) div.innerText += ' ' + arg3;
if (arg1) {
div.innerText += ' ' + arg1;
}
if (arg2) {
div.innerText += ' ' + arg2;
}
if (arg3) {
div.innerText += ' ' + arg3;
}
document.getElementsByTagName('body')[0].appendChild(div);
}

View File

@@ -21,7 +21,11 @@ sequenceDiagram
mermaid.initialize({
theme: 'base',
themeVariables: {},
startOnLoad: true,
startOnLoad: false,
});
await mermaid.run();
if (window.Cypress) {
window.rendered = true;
}
</script>
</html>

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html>
<head>
<meta charset="utf-8" />

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html>
<head>
<meta charset="utf-8" />

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html>
<head>
<meta charset="utf-8" />

View File

@@ -0,0 +1,59 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Mermaid Quick Test Page</title>
<link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgo=" />
</head>
<body>
<div id="test">
<pre class="mermaid">
flowchart
a[This should be visible]
</pre
>
<pre class="mermaid">
flowchart
a --< b
</pre
>
<pre class="mermaid">
flowchart
a[This should be visible]
</pre
>
<pre class="mermaid">
---
config:
suppressErrorRendering: true # This should not affect anything, as suppressErrorRendering is a secure config
---
flowchart
a --< b
</pre
>
<pre class="mermaid">
---
config:
suppressErrorRendering: false # This should not affect anything, as suppressErrorRendering is a secure config
---
flowchart
a --< b
</pre
>
</div>
<script type="module">
import mermaid from './mermaid.esm.mjs';
const shouldSuppress =
new URLSearchParams(window.location.search).get('suppressErrorRendering') === 'true';
mermaid.initialize({ startOnLoad: false, suppressErrorRendering: shouldSuppress });
try {
await mermaid.run();
} catch {
if (window.Cypress) {
window.rendered = true;
}
}
</script>
</body>
</html>

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html>
<head>
<meta charset="utf-8" />

View File

@@ -1,6 +1,7 @@
import mermaid2 from './mermaid.esm.mjs';
import externalExample from '../../packages/mermaid-example-diagram/dist/mermaid-example-diagram.core.mjs';
import zenUml from '../../packages/mermaid-zenuml/dist/mermaid-zenuml.core.mjs';
import mermaid from './mermaid.esm.mjs';
import flowchartELK from './mermaid-flowchart-elk.esm.mjs';
import externalExample from './mermaid-example-diagram.esm.mjs';
import zenUml from './mermaid-zenuml.esm.mjs';
function b64ToUtf8(str) {
return decodeURIComponent(escape(window.atob(str)));
@@ -45,9 +46,9 @@ const contentLoaded = async function () {
document.getElementsByTagName('body')[0].appendChild(div);
}
await mermaid2.registerExternalDiagrams([externalExample, zenUml]);
mermaid2.initialize(graphObj.mermaid);
await mermaid2.run();
await mermaid.registerExternalDiagrams([externalExample, zenUml, flowchartELK]);
mermaid.initialize(graphObj.mermaid);
await mermaid.run();
}
};
@@ -95,18 +96,14 @@ const contentLoadedApi = async function () {
divs[i] = div;
}
const defaultE2eCnf = { theme: 'forest' };
const defaultE2eCnf = { theme: 'forest', startOnLoad: false };
const cnf = merge(defaultE2eCnf, graphObj.mermaid);
mermaid2.initialize(cnf);
mermaid.initialize(cnf);
for (let i = 0; i < numCodes; i++) {
const { svg, bindFunctions } = await mermaid2.render(
'newid' + i,
graphObj.code[i],
divs[i]
);
const { svg, bindFunctions } = await mermaid.render('newid' + i, graphObj.code[i], divs[i]);
div.innerHTML = svg;
bindFunctions(div);
}
@@ -114,18 +111,21 @@ const contentLoadedApi = async function () {
const div = document.createElement('div');
div.id = 'block';
div.className = 'mermaid';
console.warn('graphObj.mermaid', graphObj.mermaid);
console.warn('graphObj', graphObj);
document.getElementsByTagName('body')[0].appendChild(div);
mermaid2.initialize(graphObj.mermaid);
const { svg, bindFunctions } = await mermaid2.render('newid', graphObj.code, div);
mermaid.initialize(graphObj.mermaid);
const { svg, bindFunctions } = await mermaid.render('newid', graphObj.code, div);
div.innerHTML = svg;
console.log(div.innerHTML);
bindFunctions(div);
}
}
};
if (typeof document !== 'undefined') {
mermaid.initialize({
startOnLoad: false,
});
/*!
* Wait for document loaded before starting the execution
*/

View File

@@ -1,19 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<style>
/* .mermaid {
font-family: "trebuchet ms", verdana, arial;;
} */
/* .mermaid {
font-family: 'arial';
} */
</style>
</head>
<body>
<div id="graph-to-be"></div>
<script type="module" charset="utf-8">
import './bundle-test.js';
</script>
</body>
</html>

View File

@@ -1,6 +1,5 @@
<html>
<head>
<script src="./viewer.js" type="module"></script>
<link href="https://fonts.googleapis.com/css?family=Montserrat&display=swap" rel="stylesheet" />
<style>
.malware {
@@ -33,12 +32,6 @@
</script>
</head>
<body>
<script type="module">
import mermaid from './mermaid.esm.mjs';
mermaid.initialize({
startOnLoad: false,
useMaxWidth: true,
});
</script>
<script type="module" src="./viewer.js"></script>
</body>
</html>

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en" xmlns="http://www.w3.org/1999/html">
<head>
<meta charset="utf-8" />

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />

View File

@@ -3,6 +3,22 @@
<html>
<head>
<title>Mermaid development page</title>
<style>
.container {
display: flex;
flex-direction: row;
}
#code {
max-width: 30vw;
width: 30vw;
}
#dynamicDiagram {
padding-left: 2em;
flex: 1;
}
</style>
</head>
<body>
<pre id="diagram" class="mermaid">
@@ -13,22 +29,39 @@ graph TB
c --> d
</pre>
<div id="dynamicDiagram"></div>
<hr />
Type code to view diagram:
<div class="container">
<textarea name="code" id="code" cols="30" rows="10"></textarea>
<div id="dynamicDiagram"></div>
</div>
<pre class="mermaid">info</pre>
<script type="module">
import mermaid from '/mermaid.esm.mjs';
mermaid.parseError = function (err, hash) {
console.error('Mermaid error: ', err);
};
import flowchartELK from '/mermaid-flowchart-elk.esm.mjs';
await mermaid.registerExternalDiagrams([flowchartELK]);
async function render(str) {
const { svg } = await mermaid.render('dynamic', str);
document.getElementById('dynamicDiagram').innerHTML = svg;
}
const storeKey = window.location.pathname;
const code = localStorage.getItem(storeKey);
if (code) {
document.getElementById('code').value = code;
await render(code);
}
mermaid.initialize({
startOnLoad: true,
logLevel: 0,
});
const value = `graph TD\nHello --> World`;
const el = document.getElementById('dynamicDiagram');
const { svg } = await mermaid.render('dd', value);
console.log(svg);
el.innerHTML = svg;
document.getElementById('code').addEventListener('input', async (e) => {
const value = e.target.value;
localStorage.setItem(storeKey, value);
await render(value);
});
</script>
<script src="/dev/reload.js"></script>
</body>
</html>

22
demos/dev/reload.js Normal file
View File

@@ -0,0 +1,22 @@
// Connect to the server and reload the page if the server sends a reload message
const connectToEvents = () => {
const events = new EventSource('/events');
const loadTime = Date.now();
events.onmessage = (event) => {
const time = JSON.parse(event.data);
if (time && time > loadTime) {
location.reload();
}
};
events.onerror = (error) => {
console.error(error);
events.close();
// Try to reconnect after 1 second in case of errors
setTimeout(connectToEvents, 1000);
};
events.onopen = () => {
console.log('Connected to live reload server');
};
};
setTimeout(connectToEvents, 500);

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />

35
demos/flowchart-elk.html Normal file
View File

@@ -0,0 +1,35 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Mermaid Flowchart ELK Test Page</title>
</head>
<body>
<h1>Flowchart ELK</h1>
<pre class="mermaid">
flowchart-elk TD
A([Start]) ==> B[Step 1]
B ==> C{Flow 1}
C -- Choice 1.1 --> D[Step 2.1]
C -- Choice 1.3 --> I[Step 2.3]
C == Choice 1.2 ==> E[Step 2.2]
D --> F{Flow 2}
E ==> F{Flow 2}
F{Flow 2} == Choice 2.1 ==> H[Feedback node]
H[Feedback node] ==> B[Step 1]
F{Flow 2} == Choice 2.2 ==> G((Finish))
</pre>
<script type="module">
import mermaid from './mermaid.esm.mjs';
import flowchartELK from './mermaid-flowchart-elk.esm.mjs';
await mermaid.registerExternalDiagrams([flowchartELK]);
mermaid.initialize({
logLevel: 3,
});
</script>
</body>
</html>

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
@@ -1591,6 +1591,33 @@
</pre>
<hr />
<pre class="mermaid">
---
title: Subgraph nodeSpacing and rankSpacing example
config:
flowchart:
nodeSpacing: 1
rankSpacing: 1
---
flowchart LR
X --> Y
subgraph X
direction LR
A
C
end
subgraph Y
direction LR
B
D
end
</pre>
<hr />
<h1 id="link-clicked">Anchor for "link-clicked" test</h1>
<script type="module">

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
@@ -40,6 +40,19 @@
checkout main
merge newbranch
</pre>
<pre class="mermaid">
---
title: Simple "branch and merge" (bottom-to-top)
---
gitGraph BT:
commit
branch newbranch
checkout newbranch
commit
checkout main
merge newbranch
</pre
>
<h2>Continuous development graph</h2>
<pre class="mermaid">
---
@@ -73,6 +86,23 @@
checkout main
merge develop
</pre>
<pre class="mermaid">
---
title: Continuous development (bottom-to-top)
---
gitGraph BT:
commit
branch develop
checkout develop
commit
checkout main
merge develop
checkout develop
commit
checkout main
merge develop
</pre
>
<h2>Merge feature to advanced main graph</h2>
<pre class="mermaid">
---
@@ -100,6 +130,20 @@
commit
merge newbranch
</pre>
<pre class="mermaid">
---
title: Merge feature to advanced main (bottom-to-top)
---
gitGraph BT:
commit
branch newbranch
checkout newbranch
commit
checkout main
commit
merge newbranch
</pre
>
<h2>Two-way merges</h2>
<pre class="mermaid">
---
@@ -137,6 +181,25 @@
checkout main
merge develop
</pre>
<pre class="mermaid">
---
title: Two-way merges (bottom-to-top)
---
gitGraph BT:
commit
branch develop
checkout develop
commit
checkout main
merge develop
commit
checkout develop
merge main
commit
checkout main
merge develop
</pre
>
<h2>Cherry-pick from branch graph</h2>
<pre class="mermaid">
---
@@ -170,6 +233,22 @@
checkout main
cherry-pick id: "Pick me"
</pre>
<pre class="mermaid">
---
title: Cherry-pick from branch (bottom-to-top)
---
gitGraph BT:
commit
branch newbranch
checkout newbranch
commit id: "Pick me"
checkout main
commit
checkout newbranch
commit
checkout main
cherry-pick id: "Pick me"
</pre>
<h2>Cherry-pick from main graph</h2>
<pre class="mermaid">
---
@@ -199,6 +278,21 @@
commit
cherry-pick id: "A"
</pre>
<pre class="mermaid">
---
title: Cherry-pick from main (bottom-to-top)
---
gitGraph BT:
commit
branch develop
commit
checkout main
commit id:"A"
checkout develop
commit
cherry-pick id: "A"
</pre
>
<h2>Cherry-pick then merge graph</h2>
<pre class="mermaid">
---
@@ -234,6 +328,24 @@
cherry-pick id: "Pick me"
merge newbranch
</pre>
<pre class="mermaid">
---
title: Cherry-pick then merge (bottom-to-top)
---
gitGraph BT:
commit
branch newbranch
checkout newbranch
commit id: "Pick me"
checkout main
commit
checkout newbranch
commit
checkout main
cherry-pick id: "Pick me"
merge newbranch
</pre
>
<h2>Merge from main onto undeveloped branch graph</h2>
<pre class="mermaid">
---
@@ -261,6 +373,20 @@
checkout develop
merge main
</pre>
<pre class="mermaid">
---
title: Merge from main onto undeveloped branch (bottom-to-top)
---
gitGraph BT:
commit
branch develop
commit
checkout main
commit
checkout develop
merge main
</pre
>
<h2>Merge from main onto developed branch graph</h2>
<pre class="mermaid">
---
@@ -290,6 +416,21 @@
commit
merge main
</pre>
<pre class="mermaid">
---
title: Merge from main onto developed branch (bottom-to-top)
---
gitGraph BT:
commit
branch develop
commit
checkout main
commit
checkout develop
commit
merge main
</pre
>
<h2>Two branches from same commit graph</h2>
<pre class="mermaid">
---
@@ -323,6 +464,23 @@
checkout feature-001
merge feature-002
</pre>
<pre class="mermaid">
---
title: Two branches from same commit (bottom-to-top)
---
gitGraph BT:
commit
commit
branch feature-001
commit
commit
checkout main
branch feature-002
commit
checkout feature-001
merge feature-002
</pre
>
<h2>Three branches and a cherry-pick from each graph</h2>
<pre class="mermaid">
---
@@ -372,6 +530,30 @@
commit id:"C"
merge featureA
</pre>
<pre class="mermaid">
---
title: Three branches and a cherry-pick from each (bottom-to-top)
---
gitGraph BT:
commit id: "ZERO"
branch develop
commit id:"A"
checkout main
commit id:"ONE"
checkout develop
commit id:"B"
branch featureA
commit id:"FIX"
commit id: "FIX-2"
checkout main
commit id:"TWO"
cherry-pick id:"A"
commit id:"THREE"
cherry-pick id:"FIX"
checkout develop
commit id:"C"
merge featureA
</pre>
<script type="module">
import mermaid from './mermaid.esm.mjs';
const ALLOWED_TAGS = [

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
@@ -18,6 +18,7 @@
<p>
Some of these pages have duplicates; some are slow to load because they have so many graphs.
</p>
<p>You can test custom code in the <a href="./dev/example.html">development page</a>.</p>
<p>
If you'd like to clean up one of the pages, please feel free to
<a href="https://github.com/mermaid-js/mermaid/pulls">submit a pull request (PR).</a>
@@ -81,6 +82,9 @@
<li>
<h2><a href="./sankey.html">Sankey</a></h2>
</li>
<li>
<h2><a href="./packet.html">Packet</a></h2>
</li>
<li>
<h2><a href="./block.html">Layered Blocks</a></h2>
</li>

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />

141
demos/packet.html Normal file
View File

@@ -0,0 +1,141 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Mermaid Quick Test Page</title>
<link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgo=" />
<style>
div.mermaid {
font-family: 'Courier New', Courier, monospace !important;
}
</style>
</head>
<body>
<h1>Packet diagram demo</h1>
<div class="diagrams">
<pre class="mermaid">
packet-beta
0-15: "Source Port"
16-31: "Destination Port"
32-63: "Sequence Number"
64-95: "Acknowledgment Number"
96-99: "Data Offset"
100-105: "Reserved"
106: "URG"
107: "ACK"
108: "PSH"
109: "RST"
110: "SYN"
111: "FIN"
112-127: "Window"
128-143: "Checksum"
144-159: "Urgent Pointer"
160-191: "(Options and Padding)"
192-223: "data"
</pre
>
<pre class="mermaid">
---
config:
packet:
showBits: false
---
packet-beta
0-15: "Source Port"
16-31: "Destination Port"
32-63: "Sequence Number"
64-95: "Acknowledgment Number"
96-99: "Data Offset"
100-105: "Reserved"
106: "URG"
107: "ACK"
108: "PSH"
109: "RST"
110: "SYN"
111: "FIN"
112-127: "Window"
128-143: "Checksum"
144-159: "Urgent Pointer"
160-191: "(Options and Padding)"
192-223: "data"
</pre
>
<pre class="mermaid">
---
config:
theme: forest
---
packet-beta
title Forest theme
0-15: "Source Port"
16-31: "Destination Port"
32-63: "Sequence Number"
64-95: "Acknowledgment Number"
96-99: "Data Offset"
100-105: "Reserved"
106: "URG"
107: "ACK"
108: "PSH"
109: "RST"
110: "SYN"
111: "FIN"
112-127: "Window"
128-143: "Checksum"
144-159: "Urgent Pointer"
160-191: "(Options and Padding)"
192-223: "data"
</pre
>
<pre class="mermaid" style="background-color: black">
---
config:
theme: dark
---
packet-beta
title Dark theme
0-15: "Source Port"
16-31: "Destination Port"
32-63: "Sequence Number"
64-95: "Acknowledgment Number"
96-99: "Data Offset"
100-105: "Reserved"
106: "URG"
107: "ACK"
108: "PSH"
109: "RST"
110: "SYN"
111: "FIN"
112-127: "Window"
128-143: "Checksum"
144-159: "Urgent Pointer"
160-191: "(Options and Padding)"
192-223: "data"
</pre
>
</div>
<script type="module">
import mermaid from '/mermaid.esm.mjs';
mermaid.initialize({
logLevel: 3,
securityLevel: 'loose',
});
</script>
<style>
.diagrams {
display: flex;
flex-wrap: wrap;
}
pre {
width: 45vw;
padding: 2em;
}
</style>
</body>
</html>

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
@@ -50,7 +50,7 @@
</pre>
<script type="module">
import mermaid from './mermaid.esm.mjs';
import mermaid from '/mermaid.esm.mjs';
mermaid.initialize({
theme: 'forest',
logLevel: 3,

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en" xmlns="http://www.w3.org/1999/html">
<head>
<meta charset="utf-8" />

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en" xmlns="http://www.w3.org/1999/html">
<head>
<meta charset="utf-8" />

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html>
<head>
<meta charset="utf-8" />

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />

View File

@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />

View File

@@ -175,13 +175,15 @@ statement
The functions for setting title and description are provided by a common module. This is the import from flowDb.js:
import {
setAccTitle,
getAccTitle,
getAccDescription,
setAccDescription,
clear as commonClear,
} from '../../commonDb';
```
import {
setAccTitle,
getAccTitle,
getAccDescription,
setAccDescription,
clear as commonClear,
} from '../../commonDb';
```
The accessibility title and description are inserted into the SVG element in the `render` function in mermaidAPI.

View File

@@ -64,13 +64,15 @@ The syntax for accessible titles and descriptions is described in [the Accessibi
The functions for setting title and description are provided by a common module. This is the import in flowDb.js:
import {
setAccTitle,
getAccTitle,
getAccDescription,
setAccDescription,
clear as commonClear,
} from '../../commonDb';
```
import {
setAccTitle,
getAccTitle,
getAccDescription,
setAccDescription,
clear as commonClear,
} from '../../commonDb';
```
The accessibility title and description are inserted into the SVG element in the `render` function in mermaidAPI.

Some files were not shown because too many files have changed in this diff Show More