Commit Graph

58 Commits

Author SHA1 Message Date
Sidharth Vinod
b79ea6c0fe Add no-var rule. 2022-09-05 22:31:57 +05:30
Sidharth Vinod
98e9f5751a Prettier pass 2022-09-05 01:00:47 +05:30
Knut Sveidqvist
aa9149912d Merge branch 'bug/3011_multiline_alignment' of github.com:hype09/mermaid into hype09-bug/3011_multiline_alignment 2022-08-04 13:05:17 +02:00
Knut Sveidqvist
8681e78e50 Fixes for rendering tests 2022-07-20 14:39:01 +02:00
Paik Paustian
ed29fe1aa9 Fix #3011: Support left- and right-alignment for multi-line messages and notes
Previously, messages and notes that had multiple lines (via `<br>`-tags) were only displayed correctly
when using the default `center` value for the `messageAlign` and `noteAlign` configuration options.
Using `left` or `right` for the alignment options caused the text to collapse and become illegible,
as outlined in issue #3011.

This comes as a side-effect from how the internal `valign` text-rendering option was configured for
messages and notes:

```js
// Example from `sequenceRenderer.js: drawMessage()`
textObj.anchor = conf.messageAlign;
textObj.valign = conf.messageAlign;
```

Both the `anchor` option (which controls left-right alignment) and the `valign` option (which controls
vertical top-down placement) were set to the same value, the user-provided `messageAlign` config option.

While `left` and `right` are valid values for the `anchor` option, they were effectively no-ops for the
`valign` option, which only supports `top`, `start`, `middle`, `center`, `bottom`, and `end`.

To fix the issue, the `valign` property is now always set to `center` for notes and messages.
Similarly, the `dominantBaseline` option of texts is now always set to `middle`, rather than setting it to
either `text-{before,after}-edge`, which caused left-aligned multi-line text to always be "top-left" aligned
inside a note (or "bottom-right" when attempting to right-align).

Now, texts in messages and notes are always vertically centered and alignment options correctly apply for
both single and multi-line content.
2022-07-03 11:59:57 +02:00
Knut Sveidqvist
cbe2ce41c1 feat: adding new security level sandbox, sequence diagram update 2022-01-21 18:15:18 +01:00
Knut Sveidqvist
f4c335ad2f Fix for XSS vulnerability in url sanitization 2021-12-28 16:59:22 +01:00
Matthieu MOREL
57671b2b78 enable prettier-plugin-jsdoc 2021-11-10 08:41:52 +01:00
Matthieu MOREL
4d103c14f7 enable eslint fix and eslint-plugin-jsdoc 2021-11-09 11:01:49 +01:00
Ashish Jain
4a50995906 Sequence Diagram: Removed eval from popup handling 2021-10-14 21:02:18 +02:00
Ashish Jain
18ecf479b1 Sequence Diagram Popup : Work _in_progress 2021-10-07 21:52:16 +02:00
Knut Sveidqvist
004e7e376d Merge branch 'develop' into feature/2249_sequence_diagram_popup_menus 2021-09-18 10:19:07 +02:00
Knut Sveidqvist
432267c811 #2315 Fix for broken tests 2021-09-18 10:05:53 +02:00
Knut Sveidqvist
9faa5acb21 #2315 Adding docs and integration tests 2021-09-18 08:03:34 +02:00
Knut Sveidqvist
6ce1c80a47 #2315 Adding the possibility to add actor figures as participants 2021-09-16 20:43:10 +02:00
eajenkins
96977e70b3 Cleaned up remaining prettier errors. 2021-09-14 14:26:43 -07:00
eajenkins
85d33ecccd Added support for a new link syntax per recommendation:
link <actor>: <label> @ <link-url>

Removed documentation for class/icon definitions until we can finalize the design for this.

Fixed prettier errors.
2021-09-10 16:27:07 -07:00
eajenkins
b3210ed2ef Added sanitization of the links to prevent script injection attacks. 2021-09-02 11:59:43 -07:00
E Jenkins
ce6d8576ae Merge branch 'develop' into feature/2249_sequence_diagram_popup_menus 2021-08-27 15:02:11 -07:00
eajenkins
291bec7e90 Initial implementation for Issue#2249.
Includes changes to sequence diagram code to enable popup menus and individualized styling of actors
Includes unit and e2e tests.
Includes updates to the md file for sequencediagrams.
2021-08-27 10:56:56 -07:00
Knut Sveidqvist
5399214ad8 Update of prettier, eslint and rules 2021-07-15 11:35:12 +02:00
lishid
e0652539fb fix: Assign proper namespaces to foreignObject children 2021-06-06 16:57:47 -04:00
Knut Sveidqvist
5d24a2b7d9 #1528 Adding async arrow type in sequence diagrams 2021-01-11 23:09:37 +01:00
Johnny Walker
0103da13f0 fix: do not alter line breaks when drawing text 2020-12-11 20:43:12 -05:00
chris moran
d42b95bab9 messageFont, noteFont, and actorFont getConfig() calls were not specifying the sequence object
take into account width of message over single actor for actors' max message width
2020-06-30 06:20:45 -04:00
chris moran
fcd2126330 Getting closer 2020-06-28 08:37:26 -04:00
chris moran
217bd1f4bf Fixed test cases for sequence diagrams
Updated config to match a conversation knut and i had about the relationship between global, site, and integrator configuration
(Will update docs)
Renamed wrapEnabled to wrap
Poor man's caching for calculateTextDimensions, wrapLabel, and breakString (actually makes a huge difference)
2020-06-26 09:26:56 -04:00
chris moran
7d9bf83f66 addition: added bounds models for bounds checking in unit tests.
addition: bounds.init will clear models
addition: added loop model widths id instead of using title as the id
removed parseMessage debug message
addition: added configuration labelBoxWidth and labelBoxHeight for loop label box width/height
change: adjusted svgDraw drawText to support anchor and valign and whether to output a tspan
change: drawText returns an array regardless of array size
change: hardcoded label width/height uses conf.labelBoxWidth and conf.labelBoxHeight
change: Math.round() on many of the calculations to clean up bounds values
change: getTextObj anchor, width, height start as undefined
2020-06-22 16:59:07 -04:00
Chris Moran
18254392ab Merge branch 'mermaid-js-develop' into develop 2020-06-19 13:32:23 -04:00
Chris Moran
5646518352 Tweaked the PR for long messages 2020-06-19 12:45:04 -04:00
Knut Sveidqvist
44d5009538 Revert of PR #1482 2020-06-19 10:52:20 +02:00
Chris Moran
67c2fe8005 Refactored rendering sequence diagrams
Fixed default config clobbering issues
2020-06-17 18:13:37 -04:00
Chris Moran
3c72d28511 Refactored rendering sequence diagrams 2020-06-17 05:54:24 -04:00
Chris Moran
04b4da0c75 ## Work in progress.
Implemented directives per PR review comment:

%%{directive: json-encoded-arg-string}%%

example:

%%{init: { 'logLevel': 0, 'theme': 'dark' }}%%

Also changed wrap and config to directives:

%%{wrap}%%
%%{config: { 'fontSize': 18 }}%%
2020-06-11 15:35:00 -04:00
Danny Shemesh
5f6887b316 Sequence diagram fixes & improvements
This commit fixes some bugs, and I believe, improves upon the current
implementation.

In no particular order, it adds:

1. Control over note font size, family and alignment (now defaults to
center)
2. Dynamic actor resizing - actor's width will now scale if its
description is bigger than the static configured width
3. Dynamic actor margins - the margin between actors will now be
dynamically calculated by taking into account the width of connecting
messages or notes
4. Fixed a small visual annoyance where a loop arrow would intersect
with the text it loops on
5. Fixed a bug where if global config -> fontFamily wasn't defined, it
would override the actorFontFamily with an undefined
6. Removed some stale / commented out code
7. Added missing config variables to the global config object in mermaidAPI.js
8. Added messageFontSize, messageFontFamily to control message (non-note)
font settings
9. Memoized the actor widths in a pre-calculation that takes notes and
signals lengths into account
10. Removed redundant console.log lines
11. Extracted out actor width & margin calculation to getMaxMessageWidthPerActor, and
calculateActorMargins
2020-04-23 16:50:00 +03:00
Danny Shemesh
197d006860 Extracted out the commonly used line break regex
This commit extract the commonly used /br\s*\/?>/gi regex to common.js,
in order to keep the code more DRY.
2020-04-23 07:55:28 +03:00
Danny Shemesh
49f8aac6a9 Fixed outdated doc strings
This commit fixes some outdated docstrings, replacing the description
and @params where necessary.
2020-04-23 07:55:09 +03:00
Gene Wood
3abd77a1e6 Extend the br tag regex
This extends the `br` tag regex to accommodate an arbitrary amount of
any type of whitespace instead of a single space character, which holds
more closely to the HTML spec[1]

This extends the fix to #702 added in #1153

[1]: http://www.w3.org/TR/REC-xml/#sec-starttags
2019-12-23 08:02:11 -08:00
Marc Faber
233520b797 #702 improve handling of different "br" tag notations for multiline texts in sequence diagrams 2019-12-21 20:39:32 +01:00
Knut Sveidqvist
a5cc1e804b #1031 Adding stricter code checks 2019-10-27 15:24:56 +01:00
knsv
f2a6ba80b5 #931 Aligning code standard 2019-09-12 12:54:59 -07:00
Alexander Sage
5c25c5563a chore: Added e2e snapshot tests 2019-07-23 21:07:01 -07:00
Alexander Sage
8b05eeaa59 chore: Added unit tests around drawBackgroundRect and drawRect 2019-07-23 19:15:54 -07:00
Alexander Sage
1b001cf1e8 chore: Added unit tests around drawBackgroundRect and drawRect 2019-07-23 19:11:31 -07:00
Alexander Sage
c8091c61c0 feat: sequence diagram background rect 2019-07-22 22:47:49 -07:00
Knut Sveidqvist
5fd803d479 Fix merge changes for pr 722 and issue #782 2019-06-30 16:14:59 +02:00
Jonathan Newnham
c1d252afe0 fix dark theme loop labels not visible
* fix loop label text forced to black, ignoring styles
* fix styles that were being ignored
2019-05-14 11:23:37 +10:00
Tyler Long
2a0fcd99e4 Merge pull request #720 from paulbland/add-activation-class
Add nested activation classes
2018-12-18 13:39:18 +08:00
Casey Watson
2fc5745c58 Support Multi-line Actor Descriptions
- Add support for <br/> delimiter in actor descriptions.
- Add actorFontFamily and actorFontSize options to sequence diagram.
- Change default actor description font from times to sans.

Fix #384 #702 #755
2018-11-26 11:49:33 -07:00
Bland, Paul
06aa4a5c07 prevent deeply nested activations from calling classes that don't exist (by limiting to 3) 2018-08-29 14:24:42 -04:00