UNPKG

43 kBTypeScriptView Raw
1/**
2 * This file was automatically generated by json-schema-to-typescript.
3 * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
4 * and run json-schema-to-typescript to regenerate this file.
5 */
6/**
7 * Configuration options to pass to the `dompurify` library.
8 */
9export type DOMPurifyConfiguration = import('dompurify').Config;
10/**
11 * JavaScript function that returns a `FontConfig`.
12 *
13 * By default, these return the appropriate `*FontSize`, `*FontFamily`, `*FontWeight`
14 * values.
15 *
16 * For example, the font calculator called `boundaryFont` might be defined as:
17 *
18 * ```javascript
19 * boundaryFont: function () {
20 * return {
21 * fontFamily: this.boundaryFontFamily,
22 * fontSize: this.boundaryFontSize,
23 * fontWeight: this.boundaryFontWeight,
24 * };
25 * }
26 * ```
27 *
28 *
29 * This interface was referenced by `MermaidConfig`'s JSON-Schema
30 * via the `definition` "FontCalculator".
31 */
32export type FontCalculator = () => Partial<FontConfig>;
33/**
34 * Picks the color of the sankey diagram links, using the colors of the source and/or target of the links.
35 *
36 *
37 * This interface was referenced by `MermaidConfig`'s JSON-Schema
38 * via the `definition` "SankeyLinkColor".
39 */
40export type SankeyLinkColor = 'source' | 'target' | 'gradient';
41/**
42 * Controls the alignment of the Sankey diagrams.
43 *
44 * See <https://github.com/d3/d3-sankey#alignments>.
45 *
46 *
47 * This interface was referenced by `MermaidConfig`'s JSON-Schema
48 * via the `definition` "SankeyNodeAlignment".
49 */
50export type SankeyNodeAlignment = 'left' | 'right' | 'center' | 'justify';
51/**
52 * The font size to use
53 */
54export type CSSFontSize = string | number;
55export interface MermaidConfig {
56 /**
57 * Theme, the CSS style sheet.
58 * You may also use `themeCSS` to override this value.
59 *
60 */
61 theme?: string | 'default' | 'forest' | 'dark' | 'neutral' | 'null';
62 themeVariables?: any;
63 themeCSS?: string;
64 /**
65 * The maximum allowed size of the users text diagram
66 */
67 maxTextSize?: number;
68 /**
69 * Defines the maximum number of edges that can be drawn in a graph.
70 *
71 */
72 maxEdges?: number;
73 darkMode?: boolean;
74 htmlLabels?: boolean;
75 /**
76 * Specifies the font to be used in the rendered diagrams.
77 * Can be any possible CSS `font-family`.
78 * See https://developer.mozilla.org/en-US/docs/Web/CSS/font-family
79 *
80 */
81 fontFamily?: string;
82 altFontFamily?: string;
83 /**
84 * This option decides the amount of logging to be used by mermaid.
85 *
86 */
87 logLevel?: number | string | 0 | 2 | 1 | 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal' | 3 | 4 | 5 | undefined;
88 /**
89 * Level of trust for parsed diagram
90 */
91 securityLevel?: string | 'strict' | 'loose' | 'antiscript' | 'sandbox' | undefined;
92 /**
93 * Dictates whether mermaid starts on Page load
94 */
95 startOnLoad?: boolean;
96 /**
97 * Controls whether or arrow markers in html code are absolute paths or anchors.
98 * This matters if you are using base tag settings.
99 *
100 */
101 arrowMarkerAbsolute?: boolean;
102 /**
103 * This option controls which `currentConfig` keys are considered secure and
104 * can only be changed via call to `mermaidAPI.initialize`.
105 * Calls to `mermaidAPI.reinitialize` cannot make changes to the secure keys
106 * in the current `currentConfig`.
107 *
108 * This prevents malicious graph directives from overriding a site's default security.
109 *
110 */
111 secure?: string[];
112 /**
113 * This option specifies if Mermaid can expect the dependent to include KaTeX stylesheets for browsers
114 * without their own MathML implementation. If this option is disabled and MathML is not supported, the math
115 * equations are replaced with a warning. If this option is enabled and MathML is not supported, Mermaid will
116 * fall back to legacy rendering for KaTeX.
117 *
118 */
119 legacyMathML?: boolean;
120 /**
121 * This option controls if the generated ids of nodes in the SVG are
122 * generated randomly or based on a seed.
123 * If set to `false`, the IDs are generated based on the current date and
124 * thus are not deterministic. This is the default behavior.
125 *
126 * This matters if your files are checked into source control e.g. git and
127 * should not change unless content is changed.
128 *
129 */
130 deterministicIds?: boolean;
131 /**
132 * This option is the optional seed for deterministic ids.
133 * If set to `undefined` but deterministicIds is `true`, a simple number iterator is used.
134 * You can set this attribute to base the seed on a static string.
135 *
136 */
137 deterministicIDSeed?: string;
138 flowchart?: FlowchartDiagramConfig;
139 sequence?: SequenceDiagramConfig;
140 gantt?: GanttDiagramConfig;
141 journey?: JourneyDiagramConfig;
142 timeline?: TimelineDiagramConfig;
143 class?: ClassDiagramConfig;
144 state?: StateDiagramConfig;
145 er?: ErDiagramConfig;
146 pie?: PieDiagramConfig;
147 quadrantChart?: QuadrantChartConfig;
148 xyChart?: XYChartConfig;
149 requirement?: RequirementDiagramConfig;
150 mindmap?: MindmapDiagramConfig;
151 gitGraph?: GitGraphDiagramConfig;
152 c4?: C4DiagramConfig;
153 sankey?: SankeyDiagramConfig;
154 block?: BlockDiagramConfig;
155 dompurifyConfig?: DOMPurifyConfiguration;
156 wrap?: boolean;
157 fontSize?: number;
158}
159/**
160 * The object containing configurations specific for block diagrams.
161 *
162 * This interface was referenced by `MermaidConfig`'s JSON-Schema
163 * via the `definition` "BlockDiagramConfig".
164 */
165export interface BlockDiagramConfig extends BaseDiagramConfig {
166 padding?: number;
167}
168/**
169 * This interface was referenced by `MermaidConfig`'s JSON-Schema
170 * via the `definition` "BaseDiagramConfig".
171 */
172export interface BaseDiagramConfig {
173 useWidth?: number;
174 /**
175 * When this flag is set to `true`, the height and width is set to 100%
176 * and is then scaled with the available space.
177 * If set to `false`, the absolute space required is used.
178 *
179 */
180 useMaxWidth?: boolean;
181}
182/**
183 * The object containing configurations specific for c4 diagrams
184 *
185 * This interface was referenced by `MermaidConfig`'s JSON-Schema
186 * via the `definition` "C4DiagramConfig".
187 */
188export interface C4DiagramConfig extends BaseDiagramConfig {
189 /**
190 * Margin to the right and left of the c4 diagram, must be a positive value.
191 *
192 */
193 diagramMarginX?: number;
194 /**
195 * Margin to the over and under the c4 diagram, must be a positive value.
196 *
197 */
198 diagramMarginY?: number;
199 /**
200 * Margin between shapes
201 */
202 c4ShapeMargin?: number;
203 /**
204 * Padding between shapes
205 */
206 c4ShapePadding?: number;
207 /**
208 * Width of person boxes
209 */
210 width?: number;
211 /**
212 * Height of person boxes
213 */
214 height?: number;
215 /**
216 * Margin around boxes
217 */
218 boxMargin?: number;
219 /**
220 * How many shapes to place in each row.
221 */
222 c4ShapeInRow?: number;
223 nextLinePaddingX?: number;
224 /**
225 * How many boundaries to place in each row.
226 */
227 c4BoundaryInRow?: number;
228 /**
229 * This sets the font size of Person shape for the diagram
230 */
231 personFontSize?: string | number;
232 /**
233 * This sets the font weight of Person shape for the diagram
234 */
235 personFontFamily?: string;
236 /**
237 * This sets the font weight of Person shape for the diagram
238 */
239 personFontWeight?: string | number;
240 /**
241 * This sets the font size of External Person shape for the diagram
242 */
243 external_personFontSize?: string | number;
244 /**
245 * This sets the font family of External Person shape for the diagram
246 */
247 external_personFontFamily?: string;
248 /**
249 * This sets the font weight of External Person shape for the diagram
250 */
251 external_personFontWeight?: string | number;
252 /**
253 * This sets the font size of System shape for the diagram
254 */
255 systemFontSize?: string | number;
256 /**
257 * This sets the font family of System shape for the diagram
258 */
259 systemFontFamily?: string;
260 /**
261 * This sets the font weight of System shape for the diagram
262 */
263 systemFontWeight?: string | number;
264 /**
265 * This sets the font size of External System shape for the diagram
266 */
267 external_systemFontSize?: string | number;
268 /**
269 * This sets the font family of External System shape for the diagram
270 */
271 external_systemFontFamily?: string;
272 /**
273 * This sets the font weight of External System shape for the diagram
274 */
275 external_systemFontWeight?: string | number;
276 /**
277 * This sets the font size of System DB shape for the diagram
278 */
279 system_dbFontSize?: string | number;
280 /**
281 * This sets the font family of System DB shape for the diagram
282 */
283 system_dbFontFamily?: string;
284 /**
285 * This sets the font weight of System DB shape for the diagram
286 */
287 system_dbFontWeight?: string | number;
288 /**
289 * This sets the font size of External System DB shape for the diagram
290 */
291 external_system_dbFontSize?: string | number;
292 /**
293 * This sets the font family of External System DB shape for the diagram
294 */
295 external_system_dbFontFamily?: string;
296 /**
297 * This sets the font weight of External System DB shape for the diagram
298 */
299 external_system_dbFontWeight?: string | number;
300 /**
301 * This sets the font size of System Queue shape for the diagram
302 */
303 system_queueFontSize?: string | number;
304 /**
305 * This sets the font family of System Queue shape for the diagram
306 */
307 system_queueFontFamily?: string;
308 /**
309 * This sets the font weight of System Queue shape for the diagram
310 */
311 system_queueFontWeight?: string | number;
312 /**
313 * This sets the font size of External System Queue shape for the diagram
314 */
315 external_system_queueFontSize?: string | number;
316 /**
317 * This sets the font family of External System Queue shape for the diagram
318 */
319 external_system_queueFontFamily?: string;
320 /**
321 * This sets the font weight of External System Queue shape for the diagram
322 */
323 external_system_queueFontWeight?: string | number;
324 /**
325 * This sets the font size of Boundary shape for the diagram
326 */
327 boundaryFontSize?: string | number;
328 /**
329 * This sets the font family of Boundary shape for the diagram
330 */
331 boundaryFontFamily?: string;
332 /**
333 * This sets the font weight of Boundary shape for the diagram
334 */
335 boundaryFontWeight?: string | number;
336 /**
337 * This sets the font size of Message shape for the diagram
338 */
339 messageFontSize?: string | number;
340 /**
341 * This sets the font family of Message shape for the diagram
342 */
343 messageFontFamily?: string;
344 /**
345 * This sets the font weight of Message shape for the diagram
346 */
347 messageFontWeight?: string | number;
348 /**
349 * This sets the font size of Container shape for the diagram
350 */
351 containerFontSize?: string | number;
352 /**
353 * This sets the font family of Container shape for the diagram
354 */
355 containerFontFamily?: string;
356 /**
357 * This sets the font weight of Container shape for the diagram
358 */
359 containerFontWeight?: string | number;
360 /**
361 * This sets the font size of External Container shape for the diagram
362 */
363 external_containerFontSize?: string | number;
364 /**
365 * This sets the font family of External Container shape for the diagram
366 */
367 external_containerFontFamily?: string;
368 /**
369 * This sets the font weight of External Container shape for the diagram
370 */
371 external_containerFontWeight?: string | number;
372 /**
373 * This sets the font size of Container DB shape for the diagram
374 */
375 container_dbFontSize?: string | number;
376 /**
377 * This sets the font family of Container DB shape for the diagram
378 */
379 container_dbFontFamily?: string;
380 /**
381 * This sets the font weight of Container DB shape for the diagram
382 */
383 container_dbFontWeight?: string | number;
384 /**
385 * This sets the font size of External Container DB shape for the diagram
386 */
387 external_container_dbFontSize?: string | number;
388 /**
389 * This sets the font family of External Container DB shape for the diagram
390 */
391 external_container_dbFontFamily?: string;
392 /**
393 * This sets the font weight of External Container DB shape for the diagram
394 */
395 external_container_dbFontWeight?: string | number;
396 /**
397 * This sets the font size of Container Queue shape for the diagram
398 */
399 container_queueFontSize?: string | number;
400 /**
401 * This sets the font family of Container Queue shape for the diagram
402 */
403 container_queueFontFamily?: string;
404 /**
405 * This sets the font weight of Container Queue shape for the diagram
406 */
407 container_queueFontWeight?: string | number;
408 /**
409 * This sets the font size of External Container Queue shape for the diagram
410 */
411 external_container_queueFontSize?: string | number;
412 /**
413 * This sets the font family of External Container Queue shape for the diagram
414 */
415 external_container_queueFontFamily?: string;
416 /**
417 * This sets the font weight of External Container Queue shape for the diagram
418 */
419 external_container_queueFontWeight?: string | number;
420 /**
421 * This sets the font size of Component shape for the diagram
422 */
423 componentFontSize?: string | number;
424 /**
425 * This sets the font family of Component shape for the diagram
426 */
427 componentFontFamily?: string;
428 /**
429 * This sets the font weight of Component shape for the diagram
430 */
431 componentFontWeight?: string | number;
432 /**
433 * This sets the font size of External Component shape for the diagram
434 */
435 external_componentFontSize?: string | number;
436 /**
437 * This sets the font family of External Component shape for the diagram
438 */
439 external_componentFontFamily?: string;
440 /**
441 * This sets the font weight of External Component shape for the diagram
442 */
443 external_componentFontWeight?: string | number;
444 /**
445 * This sets the font size of Component DB shape for the diagram
446 */
447 component_dbFontSize?: string | number;
448 /**
449 * This sets the font family of Component DB shape for the diagram
450 */
451 component_dbFontFamily?: string;
452 /**
453 * This sets the font weight of Component DB shape for the diagram
454 */
455 component_dbFontWeight?: string | number;
456 /**
457 * This sets the font size of External Component DB shape for the diagram
458 */
459 external_component_dbFontSize?: string | number;
460 /**
461 * This sets the font family of External Component DB shape for the diagram
462 */
463 external_component_dbFontFamily?: string;
464 /**
465 * This sets the font weight of External Component DB shape for the diagram
466 */
467 external_component_dbFontWeight?: string | number;
468 /**
469 * This sets the font size of Component Queue shape for the diagram
470 */
471 component_queueFontSize?: string | number;
472 /**
473 * This sets the font family of Component Queue shape for the diagram
474 */
475 component_queueFontFamily?: string;
476 /**
477 * This sets the font weight of Component Queue shape for the diagram
478 */
479 component_queueFontWeight?: string | number;
480 /**
481 * This sets the font size of External Component Queue shape for the diagram
482 */
483 external_component_queueFontSize?: string | number;
484 /**
485 * This sets the font family of External Component Queue shape for the diagram
486 */
487 external_component_queueFontFamily?: string;
488 /**
489 * This sets the font weight of External Component Queue shape for the diagram
490 */
491 external_component_queueFontWeight?: string | number;
492 /**
493 * This sets the auto-wrap state for the diagram
494 */
495 wrap?: boolean;
496 /**
497 * This sets the auto-wrap padding for the diagram (sides only)
498 */
499 wrapPadding?: number;
500 person_bg_color?: string;
501 person_border_color?: string;
502 external_person_bg_color?: string;
503 external_person_border_color?: string;
504 system_bg_color?: string;
505 system_border_color?: string;
506 system_db_bg_color?: string;
507 system_db_border_color?: string;
508 system_queue_bg_color?: string;
509 system_queue_border_color?: string;
510 external_system_bg_color?: string;
511 external_system_border_color?: string;
512 external_system_db_bg_color?: string;
513 external_system_db_border_color?: string;
514 external_system_queue_bg_color?: string;
515 external_system_queue_border_color?: string;
516 container_bg_color?: string;
517 container_border_color?: string;
518 container_db_bg_color?: string;
519 container_db_border_color?: string;
520 container_queue_bg_color?: string;
521 container_queue_border_color?: string;
522 external_container_bg_color?: string;
523 external_container_border_color?: string;
524 external_container_db_bg_color?: string;
525 external_container_db_border_color?: string;
526 external_container_queue_bg_color?: string;
527 external_container_queue_border_color?: string;
528 component_bg_color?: string;
529 component_border_color?: string;
530 component_db_bg_color?: string;
531 component_db_border_color?: string;
532 component_queue_bg_color?: string;
533 component_queue_border_color?: string;
534 external_component_bg_color?: string;
535 external_component_border_color?: string;
536 external_component_db_bg_color?: string;
537 external_component_db_border_color?: string;
538 external_component_queue_bg_color?: string;
539 external_component_queue_border_color?: string;
540 personFont?: FontCalculator;
541 external_personFont?: FontCalculator;
542 systemFont?: FontCalculator;
543 external_systemFont?: FontCalculator;
544 system_dbFont?: FontCalculator;
545 external_system_dbFont?: FontCalculator;
546 system_queueFont?: FontCalculator;
547 external_system_queueFont?: FontCalculator;
548 containerFont?: FontCalculator;
549 external_containerFont?: FontCalculator;
550 container_dbFont?: FontCalculator;
551 external_container_dbFont?: FontCalculator;
552 container_queueFont?: FontCalculator;
553 external_container_queueFont?: FontCalculator;
554 componentFont?: FontCalculator;
555 external_componentFont?: FontCalculator;
556 component_dbFont?: FontCalculator;
557 external_component_dbFont?: FontCalculator;
558 component_queueFont?: FontCalculator;
559 external_component_queueFont?: FontCalculator;
560 boundaryFont?: FontCalculator;
561 messageFont?: FontCalculator;
562}
563/**
564 * This interface was referenced by `MermaidConfig`'s JSON-Schema
565 * via the `definition` "GitGraphDiagramConfig".
566 */
567export interface GitGraphDiagramConfig extends BaseDiagramConfig {
568 /**
569 * Margin top for the text over the diagram
570 */
571 titleTopMargin?: number;
572 diagramPadding?: number;
573 nodeLabel?: NodeLabel;
574 mainBranchName?: string;
575 mainBranchOrder?: number;
576 showCommitLabel?: boolean;
577 showBranches?: boolean;
578 rotateCommitLabel?: boolean;
579 parallelCommits?: boolean;
580 /**
581 * Controls whether or arrow markers in html code are absolute paths or anchors.
582 * This matters if you are using base tag settings.
583 *
584 */
585 arrowMarkerAbsolute?: boolean;
586}
587/**
588 * This interface was referenced by `MermaidConfig`'s JSON-Schema
589 * via the `definition` "NodeLabel".
590 */
591export interface NodeLabel {
592 width?: number;
593 height?: number;
594 x?: number;
595 y?: number;
596}
597/**
598 * The object containing configurations specific for req diagrams
599 *
600 * This interface was referenced by `MermaidConfig`'s JSON-Schema
601 * via the `definition` "RequirementDiagramConfig".
602 */
603export interface RequirementDiagramConfig extends BaseDiagramConfig {
604 rect_fill?: string;
605 text_color?: string;
606 rect_border_size?: string;
607 rect_border_color?: string;
608 rect_min_width?: number;
609 rect_min_height?: number;
610 fontSize?: number;
611 rect_padding?: number;
612 line_height?: number;
613}
614/**
615 * The object containing configurations specific for mindmap diagrams
616 *
617 * This interface was referenced by `MermaidConfig`'s JSON-Schema
618 * via the `definition` "MindmapDiagramConfig".
619 */
620export interface MindmapDiagramConfig extends BaseDiagramConfig {
621 padding?: number;
622 maxNodeWidth?: number;
623}
624/**
625 * This interface was referenced by `MermaidConfig`'s JSON-Schema
626 * via the `definition` "PieDiagramConfig".
627 */
628export interface PieDiagramConfig extends BaseDiagramConfig {
629 /**
630 * Axial position of slice's label from zero at the center to 1 at the outside edges.
631 *
632 */
633 textPosition?: number;
634}
635/**
636 * This interface was referenced by `MermaidConfig`'s JSON-Schema
637 * via the `definition` "QuadrantChartConfig".
638 */
639export interface QuadrantChartConfig extends BaseDiagramConfig {
640 /**
641 * Width of the chart
642 */
643 chartWidth?: number;
644 /**
645 * Height of the chart
646 */
647 chartHeight?: number;
648 /**
649 * Chart title top and bottom padding
650 */
651 titleFontSize?: number;
652 /**
653 * Padding around the quadrant square
654 */
655 titlePadding?: number;
656 /**
657 * quadrant title padding from top if the quadrant is rendered on top
658 */
659 quadrantPadding?: number;
660 /**
661 * Padding around x-axis labels
662 */
663 xAxisLabelPadding?: number;
664 /**
665 * Padding around y-axis labels
666 */
667 yAxisLabelPadding?: number;
668 /**
669 * x-axis label font size
670 */
671 xAxisLabelFontSize?: number;
672 /**
673 * y-axis label font size
674 */
675 yAxisLabelFontSize?: number;
676 /**
677 * quadrant title font size
678 */
679 quadrantLabelFontSize?: number;
680 /**
681 * quadrant title padding from top if the quadrant is rendered on top
682 */
683 quadrantTextTopPadding?: number;
684 /**
685 * padding between point and point label
686 */
687 pointTextPadding?: number;
688 /**
689 * point title font size
690 */
691 pointLabelFontSize?: number;
692 /**
693 * radius of the point to be drawn
694 */
695 pointRadius?: number;
696 /**
697 * position of x-axis labels
698 */
699 xAxisPosition?: 'top' | 'bottom';
700 /**
701 * position of y-axis labels
702 */
703 yAxisPosition?: 'left' | 'right';
704 /**
705 * stroke width of edges of the box that are inside the quadrant
706 */
707 quadrantInternalBorderStrokeWidth?: number;
708 /**
709 * stroke width of edges of the box that are outside the quadrant
710 */
711 quadrantExternalBorderStrokeWidth?: number;
712}
713/**
714 * This object contains configuration for XYChart axis config
715 *
716 * This interface was referenced by `MermaidConfig`'s JSON-Schema
717 * via the `definition` "XYChartAxisConfig".
718 */
719export interface XYChartAxisConfig {
720 /**
721 * Should show the axis labels (tick text)
722 */
723 showLabel?: boolean;
724 /**
725 * font size of the axis labels (tick text)
726 */
727 labelFontSize?: number;
728 /**
729 * top and bottom space from axis label (tick text)
730 */
731 labelPadding?: number;
732 /**
733 * Should show the axis title
734 */
735 showTitle?: boolean;
736 /**
737 * font size of the axis title
738 */
739 titleFontSize?: number;
740 /**
741 * top and bottom space from axis title
742 */
743 titlePadding?: number;
744 /**
745 * Should show the axis tick lines
746 */
747 showTick?: boolean;
748 /**
749 * length of the axis tick lines
750 */
751 tickLength?: number;
752 /**
753 * width of the axis tick lines
754 */
755 tickWidth?: number;
756 /**
757 * Show line across the axis
758 */
759 showAxisLine?: boolean;
760 /**
761 * Width of the axis line
762 */
763 axisLineWidth?: number;
764}
765/**
766 * This object contains configuration specific to XYCharts
767 *
768 * This interface was referenced by `MermaidConfig`'s JSON-Schema
769 * via the `definition` "XYChartConfig".
770 */
771export interface XYChartConfig extends BaseDiagramConfig {
772 /**
773 * width of the chart
774 */
775 width?: number;
776 /**
777 * height of the chart
778 */
779 height?: number;
780 /**
781 * Font size of the chart title
782 */
783 titleFontSize?: number;
784 /**
785 * Top and bottom space from the chart title
786 */
787 titlePadding?: number;
788 /**
789 * Should show the chart title
790 */
791 showTitle?: boolean;
792 xAxis?: XYChartAxisConfig1;
793 yAxis?: XYChartAxisConfig2;
794 /**
795 * How to plot will be drawn horizontal or vertical
796 */
797 chartOrientation?: 'vertical' | 'horizontal';
798 /**
799 * Minimum percent of space plots of the chart will take
800 */
801 plotReservedSpacePercent?: number;
802}
803/**
804 * This object contains configuration for XYChart axis config
805 */
806export interface XYChartAxisConfig1 {
807 /**
808 * Should show the axis labels (tick text)
809 */
810 showLabel?: boolean;
811 /**
812 * font size of the axis labels (tick text)
813 */
814 labelFontSize?: number;
815 /**
816 * top and bottom space from axis label (tick text)
817 */
818 labelPadding?: number;
819 /**
820 * Should show the axis title
821 */
822 showTitle?: boolean;
823 /**
824 * font size of the axis title
825 */
826 titleFontSize?: number;
827 /**
828 * top and bottom space from axis title
829 */
830 titlePadding?: number;
831 /**
832 * Should show the axis tick lines
833 */
834 showTick?: boolean;
835 /**
836 * length of the axis tick lines
837 */
838 tickLength?: number;
839 /**
840 * width of the axis tick lines
841 */
842 tickWidth?: number;
843 /**
844 * Show line across the axis
845 */
846 showAxisLine?: boolean;
847 /**
848 * Width of the axis line
849 */
850 axisLineWidth?: number;
851}
852/**
853 * This object contains configuration for XYChart axis config
854 */
855export interface XYChartAxisConfig2 {
856 /**
857 * Should show the axis labels (tick text)
858 */
859 showLabel?: boolean;
860 /**
861 * font size of the axis labels (tick text)
862 */
863 labelFontSize?: number;
864 /**
865 * top and bottom space from axis label (tick text)
866 */
867 labelPadding?: number;
868 /**
869 * Should show the axis title
870 */
871 showTitle?: boolean;
872 /**
873 * font size of the axis title
874 */
875 titleFontSize?: number;
876 /**
877 * top and bottom space from axis title
878 */
879 titlePadding?: number;
880 /**
881 * Should show the axis tick lines
882 */
883 showTick?: boolean;
884 /**
885 * length of the axis tick lines
886 */
887 tickLength?: number;
888 /**
889 * width of the axis tick lines
890 */
891 tickWidth?: number;
892 /**
893 * Show line across the axis
894 */
895 showAxisLine?: boolean;
896 /**
897 * Width of the axis line
898 */
899 axisLineWidth?: number;
900}
901/**
902 * The object containing configurations specific for entity relationship diagrams
903 *
904 * This interface was referenced by `MermaidConfig`'s JSON-Schema
905 * via the `definition` "ErDiagramConfig".
906 */
907export interface ErDiagramConfig extends BaseDiagramConfig {
908 /**
909 * Margin top for the text over the diagram
910 */
911 titleTopMargin?: number;
912 /**
913 * The amount of padding around the diagram as a whole so that embedded
914 * diagrams have margins, expressed in pixels.
915 *
916 */
917 diagramPadding?: number;
918 /**
919 * Directional bias for layout of entities
920 */
921 layoutDirection?: string | 'TB' | 'BT' | 'LR' | 'RL';
922 /**
923 * The minimum width of an entity box. Expressed in pixels.
924 */
925 minEntityWidth?: number;
926 /**
927 * The minimum height of an entity box. Expressed in pixels.
928 */
929 minEntityHeight?: number;
930 /**
931 * The minimum internal padding between text in an entity box and the enclosing box borders.
932 * Expressed in pixels.
933 *
934 */
935 entityPadding?: number;
936 /**
937 * Stroke color of box edges and lines.
938 */
939 stroke?: string;
940 /**
941 * Fill color of entity boxes
942 */
943 fill?: string;
944 /**
945 * Font size (expressed as an integer representing a number of pixels)
946 */
947 fontSize?: number;
948}
949/**
950 * The object containing configurations specific for entity relationship diagrams
951 *
952 * This interface was referenced by `MermaidConfig`'s JSON-Schema
953 * via the `definition` "StateDiagramConfig".
954 */
955export interface StateDiagramConfig extends BaseDiagramConfig {
956 /**
957 * Margin top for the text over the diagram
958 */
959 titleTopMargin?: number;
960 arrowMarkerAbsolute?: boolean;
961 dividerMargin?: number;
962 sizeUnit?: number;
963 padding?: number;
964 textHeight?: number;
965 titleShift?: number;
966 noteMargin?: number;
967 forkWidth?: number;
968 forkHeight?: number;
969 miniPadding?: number;
970 /**
971 * Font size factor, this is used to guess the width of the edges labels
972 * before rendering by dagre layout.
973 * This might need updating if/when switching font
974 *
975 */
976 fontSizeFactor?: number;
977 fontSize?: number;
978 labelHeight?: number;
979 edgeLengthFactor?: string;
980 compositTitleSize?: number;
981 radius?: number;
982 /**
983 * Decides which rendering engine that is to be used for the rendering.
984 *
985 */
986 defaultRenderer?: string | 'dagre-d3' | 'dagre-wrapper' | 'elk';
987}
988/**
989 * This interface was referenced by `MermaidConfig`'s JSON-Schema
990 * via the `definition` "ClassDiagramConfig".
991 */
992export interface ClassDiagramConfig extends BaseDiagramConfig {
993 /**
994 * Margin top for the text over the diagram
995 */
996 titleTopMargin?: number;
997 /**
998 * Controls whether or arrow markers in html code are absolute paths or anchors.
999 * This matters if you are using base tag settings.
1000 *
1001 */
1002 arrowMarkerAbsolute?: boolean;
1003 dividerMargin?: number;
1004 padding?: number;
1005 textHeight?: number;
1006 /**
1007 * Decides which rendering engine that is to be used for the rendering.
1008 *
1009 */
1010 defaultRenderer?: string | 'dagre-d3' | 'dagre-wrapper' | 'elk';
1011 nodeSpacing?: number;
1012 rankSpacing?: number;
1013 /**
1014 * The amount of padding around the diagram as a whole so that embedded
1015 * diagrams have margins, expressed in pixels.
1016 *
1017 */
1018 diagramPadding?: number;
1019 htmlLabels?: boolean;
1020}
1021/**
1022 * The object containing configurations specific for journey diagrams
1023 *
1024 *
1025 * This interface was referenced by `MermaidConfig`'s JSON-Schema
1026 * via the `definition` "JourneyDiagramConfig".
1027 */
1028export interface JourneyDiagramConfig extends BaseDiagramConfig {
1029 /**
1030 * Margin to the right and left of the c4 diagram, must be a positive value.
1031 *
1032 */
1033 diagramMarginX?: number;
1034 /**
1035 * Margin to the over and under the c4 diagram, must be a positive value.
1036 *
1037 */
1038 diagramMarginY?: number;
1039 /**
1040 * Margin between actors
1041 */
1042 leftMargin?: number;
1043 /**
1044 * Width of actor boxes
1045 */
1046 width?: number;
1047 /**
1048 * Height of actor boxes
1049 */
1050 height?: number;
1051 /**
1052 * Margin around loop boxes
1053 */
1054 boxMargin?: number;
1055 /**
1056 * Margin around the text in loop/alt/opt boxes
1057 */
1058 boxTextMargin?: number;
1059 /**
1060 * Margin around notes
1061 */
1062 noteMargin?: number;
1063 /**
1064 * Space between messages.
1065 */
1066 messageMargin?: number;
1067 /**
1068 * Multiline message alignment
1069 */
1070 messageAlign?: string | 'left' | 'center' | 'right';
1071 /**
1072 * Prolongs the edge of the diagram downwards.
1073 *
1074 * Depending on css styling this might need adjustment.
1075 *
1076 */
1077 bottomMarginAdj?: number;
1078 /**
1079 * Curved Arrows become Right Angles
1080 *
1081 * This will display arrows that start and begin at the same node as
1082 * right angles, rather than as curves.
1083 *
1084 */
1085 rightAngles?: boolean;
1086 taskFontSize?: string | number;
1087 taskFontFamily?: string;
1088 taskMargin?: number;
1089 /**
1090 * Width of activation box
1091 */
1092 activationWidth?: number;
1093 /**
1094 * text placement as: tspan | fo | old only text as before
1095 *
1096 */
1097 textPlacement?: string;
1098 actorColours?: string[];
1099 sectionFills?: string[];
1100 sectionColours?: string[];
1101}
1102/**
1103 * This interface was referenced by `MermaidConfig`'s JSON-Schema
1104 * via the `definition` "TimelineDiagramConfig".
1105 */
1106export interface TimelineDiagramConfig extends BaseDiagramConfig {
1107 /**
1108 * Margin to the right and left of the c4 diagram, must be a positive value.
1109 *
1110 */
1111 diagramMarginX?: number;
1112 /**
1113 * Margin to the over and under the c4 diagram, must be a positive value.
1114 *
1115 */
1116 diagramMarginY?: number;
1117 /**
1118 * Margin between actors
1119 */
1120 leftMargin?: number;
1121 /**
1122 * Width of actor boxes
1123 */
1124 width?: number;
1125 /**
1126 * Height of actor boxes
1127 */
1128 height?: number;
1129 padding?: number;
1130 /**
1131 * Margin around loop boxes
1132 */
1133 boxMargin?: number;
1134 /**
1135 * Margin around the text in loop/alt/opt boxes
1136 */
1137 boxTextMargin?: number;
1138 /**
1139 * Margin around notes
1140 */
1141 noteMargin?: number;
1142 /**
1143 * Space between messages.
1144 */
1145 messageMargin?: number;
1146 /**
1147 * Multiline message alignment
1148 */
1149 messageAlign?: string | 'left' | 'center' | 'right';
1150 /**
1151 * Prolongs the edge of the diagram downwards.
1152 *
1153 * Depending on css styling this might need adjustment.
1154 *
1155 */
1156 bottomMarginAdj?: number;
1157 /**
1158 * Curved Arrows become Right Angles
1159 *
1160 * This will display arrows that start and begin at the same node as
1161 * right angles, rather than as curves.
1162 *
1163 */
1164 rightAngles?: boolean;
1165 taskFontSize?: string | number;
1166 taskFontFamily?: string;
1167 taskMargin?: number;
1168 /**
1169 * Width of activation box
1170 */
1171 activationWidth?: number;
1172 /**
1173 * text placement as: tspan | fo | old only text as before
1174 *
1175 */
1176 textPlacement?: string;
1177 actorColours?: string[];
1178 sectionFills?: string[];
1179 sectionColours?: string[];
1180 disableMulticolor?: boolean;
1181}
1182/**
1183 * The object containing configurations specific for gantt diagrams
1184 *
1185 *
1186 * This interface was referenced by `MermaidConfig`'s JSON-Schema
1187 * via the `definition` "GanttDiagramConfig".
1188 */
1189export interface GanttDiagramConfig extends BaseDiagramConfig {
1190 /**
1191 * Margin top for the text over the diagram
1192 */
1193 titleTopMargin?: number;
1194 /**
1195 * The height of the bars in the graph
1196 */
1197 barHeight?: number;
1198 /**
1199 * The margin between the different activities in the gantt diagram
1200 */
1201 barGap?: number;
1202 /**
1203 * Margin between title and gantt diagram and between axis and gantt diagram.
1204 *
1205 */
1206 topPadding?: number;
1207 /**
1208 * The space allocated for the section name to the right of the activities
1209 *
1210 */
1211 rightPadding?: number;
1212 /**
1213 * The space allocated for the section name to the left of the activities
1214 *
1215 */
1216 leftPadding?: number;
1217 /**
1218 * Vertical starting position of the grid lines
1219 */
1220 gridLineStartPadding?: number;
1221 /**
1222 * Font size
1223 */
1224 fontSize?: number;
1225 /**
1226 * Font size for sections
1227 */
1228 sectionFontSize?: string | number;
1229 /**
1230 * The number of alternating section styles
1231 */
1232 numberSectionStyles?: number;
1233 /**
1234 * Date/time format of the axis
1235 *
1236 * This might need adjustment to match your locale and preferences.
1237 *
1238 */
1239 axisFormat?: string;
1240 /**
1241 * axis ticks
1242 *
1243 * Pattern is:
1244 *
1245 * ```javascript
1246 * /^([1-9][0-9]*)(millisecond|second|minute|hour|day|week|month)$/
1247 * ```
1248 *
1249 */
1250 tickInterval?: string;
1251 /**
1252 * When this flag is set, date labels will be added to the top of the chart
1253 *
1254 */
1255 topAxis?: boolean;
1256 /**
1257 * Controls the display mode.
1258 *
1259 */
1260 displayMode?: string | 'compact';
1261 /**
1262 * On which day a week-based interval should start
1263 *
1264 */
1265 weekday?: 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sunday';
1266}
1267/**
1268 * The object containing configurations specific for sequence diagrams
1269 *
1270 * This interface was referenced by `MermaidConfig`'s JSON-Schema
1271 * via the `definition` "SequenceDiagramConfig".
1272 */
1273export interface SequenceDiagramConfig extends BaseDiagramConfig {
1274 arrowMarkerAbsolute?: boolean;
1275 hideUnusedParticipants?: boolean;
1276 /**
1277 * Width of the activation rect
1278 */
1279 activationWidth?: number;
1280 /**
1281 * Margin to the right and left of the sequence diagram
1282 */
1283 diagramMarginX?: number;
1284 /**
1285 * Margin to the over and under the sequence diagram
1286 */
1287 diagramMarginY?: number;
1288 /**
1289 * Margin between actors
1290 */
1291 actorMargin?: number;
1292 /**
1293 * Width of actor boxes
1294 */
1295 width?: number;
1296 /**
1297 * Height of actor boxes
1298 */
1299 height?: number;
1300 /**
1301 * Margin around loop boxes
1302 */
1303 boxMargin?: number;
1304 /**
1305 * Margin around the text in loop/alt/opt boxes
1306 */
1307 boxTextMargin?: number;
1308 /**
1309 * Margin around notes
1310 */
1311 noteMargin?: number;
1312 /**
1313 * Space between messages.
1314 */
1315 messageMargin?: number;
1316 /**
1317 * Multiline message alignment
1318 */
1319 messageAlign?: string | 'left' | 'center' | 'right';
1320 /**
1321 * Mirror actors under diagram
1322 *
1323 */
1324 mirrorActors?: boolean;
1325 /**
1326 * forces actor popup menus to always be visible (to support E2E testing).
1327 *
1328 */
1329 forceMenus?: boolean;
1330 /**
1331 * Prolongs the edge of the diagram downwards.
1332 *
1333 * Depending on css styling this might need adjustment.
1334 *
1335 */
1336 bottomMarginAdj?: number;
1337 /**
1338 * Curved Arrows become Right Angles
1339 *
1340 * This will display arrows that start and begin at the same node as
1341 * right angles, rather than as curves.
1342 *
1343 */
1344 rightAngles?: boolean;
1345 /**
1346 * This will show the node numbers
1347 */
1348 showSequenceNumbers?: boolean;
1349 /**
1350 * This sets the font size of the actor's description
1351 */
1352 actorFontSize?: string | number;
1353 /**
1354 * This sets the font family of the actor's description
1355 */
1356 actorFontFamily?: string;
1357 /**
1358 * This sets the font weight of the actor's description
1359 */
1360 actorFontWeight?: string | number;
1361 /**
1362 * This sets the font size of actor-attached notes
1363 */
1364 noteFontSize?: string | number;
1365 /**
1366 * This sets the font family of actor-attached notes
1367 */
1368 noteFontFamily?: string;
1369 /**
1370 * This sets the font weight of actor-attached notes
1371 */
1372 noteFontWeight?: string | number;
1373 /**
1374 * This sets the text alignment of actor-attached notes
1375 */
1376 noteAlign?: string | 'left' | 'center' | 'right';
1377 /**
1378 * This sets the font size of actor messages
1379 */
1380 messageFontSize?: string | number;
1381 /**
1382 * This sets the font family of actor messages
1383 */
1384 messageFontFamily?: string;
1385 /**
1386 * This sets the font weight of actor messages
1387 */
1388 messageFontWeight?: string | number;
1389 /**
1390 * This sets the auto-wrap state for the diagram
1391 */
1392 wrap?: boolean;
1393 /**
1394 * This sets the auto-wrap padding for the diagram (sides only)
1395 */
1396 wrapPadding?: number;
1397 /**
1398 * This sets the width of the loop-box (loop, alt, opt, par)
1399 */
1400 labelBoxWidth?: number;
1401 /**
1402 * This sets the height of the loop-box (loop, alt, opt, par)
1403 */
1404 labelBoxHeight?: number;
1405 messageFont?: FontCalculator;
1406 noteFont?: FontCalculator;
1407 actorFont?: FontCalculator;
1408}
1409/**
1410 * The object containing configurations specific for flowcharts
1411 *
1412 * This interface was referenced by `MermaidConfig`'s JSON-Schema
1413 * via the `definition` "FlowchartDiagramConfig".
1414 */
1415export interface FlowchartDiagramConfig extends BaseDiagramConfig {
1416 /**
1417 * Margin top for the text over the diagram
1418 */
1419 titleTopMargin?: number;
1420 /**
1421 * Defines a top/bottom margin for subgraph titles
1422 *
1423 */
1424 subGraphTitleMargin?: {
1425 top?: number;
1426 bottom?: number;
1427 };
1428 arrowMarkerAbsolute?: boolean;
1429 /**
1430 * The amount of padding around the diagram as a whole so that embedded
1431 * diagrams have margins, expressed in pixels.
1432 *
1433 */
1434 diagramPadding?: number;
1435 /**
1436 * Flag for setting whether or not a html tag should be used for rendering labels on the edges.
1437 *
1438 */
1439 htmlLabels?: boolean;
1440 /**
1441 * Defines the spacing between nodes on the same level
1442 *
1443 * Pertains to horizontal spacing for TB (top to bottom) or BT (bottom to top) graphs,
1444 * and the vertical spacing for LR as well as RL graphs.
1445 *
1446 */
1447 nodeSpacing?: number;
1448 /**
1449 * Defines the spacing between nodes on different levels
1450 *
1451 * Pertains to horizontal spacing for TB (top to bottom) or BT (bottom to top) graphs,
1452 * and the vertical spacing for LR as well as RL graphs.
1453 *
1454 */
1455 rankSpacing?: number;
1456 /**
1457 * Defines how mermaid renders curves for flowcharts.
1458 *
1459 */
1460 curve?: string | 'basis' | 'linear' | 'cardinal';
1461 /**
1462 * Represents the padding between the labels and the shape
1463 *
1464 * **Only used in new experimental rendering.**
1465 *
1466 */
1467 padding?: number;
1468 /**
1469 * Decides which rendering engine that is to be used for the rendering.
1470 *
1471 */
1472 defaultRenderer?: string | 'dagre-d3' | 'dagre-wrapper' | 'elk';
1473 /**
1474 * Width of nodes where text is wrapped.
1475 *
1476 * When using markdown strings the text ius wrapped automatically, this
1477 * value sets the max width of a text before it continues on a new line.
1478 *
1479 */
1480 wrappingWidth?: number;
1481}
1482/**
1483 * The object containing configurations specific for sankey diagrams.
1484 *
1485 * This interface was referenced by `MermaidConfig`'s JSON-Schema
1486 * via the `definition` "SankeyDiagramConfig".
1487 */
1488export interface SankeyDiagramConfig extends BaseDiagramConfig {
1489 width?: number;
1490 height?: number;
1491 /**
1492 * The color of the links in the sankey diagram.
1493 *
1494 */
1495 linkColor?: SankeyLinkColor | string;
1496 /**
1497 * Controls the alignment of the Sankey diagrams.
1498 *
1499 * See <https://github.com/d3/d3-sankey#alignments>.
1500 *
1501 */
1502 nodeAlignment?: 'left' | 'right' | 'center' | 'justify';
1503 useMaxWidth?: boolean;
1504 /**
1505 * Toggle to display or hide values along with title.
1506 *
1507 */
1508 showValues?: boolean;
1509 /**
1510 * The prefix to use for values
1511 *
1512 */
1513 prefix?: string;
1514 /**
1515 * The suffix to use for values
1516 *
1517 */
1518 suffix?: string;
1519}
1520/**
1521 * This interface was referenced by `MermaidConfig`'s JSON-Schema
1522 * via the `definition` "FontConfig".
1523 */
1524export interface FontConfig {
1525 fontSize?: CSSFontSize;
1526 /**
1527 * The CSS [`font-family`](https://developer.mozilla.org/en-US/docs/Web/CSS/font-family) to use.
1528 */
1529 fontFamily?: string;
1530 /**
1531 * The font weight to use.
1532 */
1533 fontWeight?: string | number;
1534}