UNPKG

13.3 kBTypeScriptView Raw
1import DOMPurify from 'dompurify';
2export interface MermaidConfig {
3 theme?: string;
4 themeVariables?: any;
5 themeCSS?: string;
6 maxTextSize?: number;
7 darkMode?: boolean;
8 htmlLabels?: boolean;
9 fontFamily?: string;
10 altFontFamily?: string;
11 logLevel?: number;
12 securityLevel?: string;
13 startOnLoad?: boolean;
14 arrowMarkerAbsolute?: boolean;
15 secure?: string[];
16 deterministicIds?: boolean;
17 deterministicIDSeed?: string;
18 flowchart?: FlowchartDiagramConfig;
19 sequence?: SequenceDiagramConfig;
20 gantt?: GanttDiagramConfig;
21 journey?: JourneyDiagramConfig;
22 timeline?: TimelineDiagramConfig;
23 class?: ClassDiagramConfig;
24 state?: StateDiagramConfig;
25 er?: ErDiagramConfig;
26 pie?: PieDiagramConfig;
27 quadrantChart?: QuadrantChartConfig;
28 requirement?: RequirementDiagramConfig;
29 mindmap?: MindmapDiagramConfig;
30 gitGraph?: GitGraphDiagramConfig;
31 c4?: C4DiagramConfig;
32 dompurifyConfig?: DOMPurify.Config;
33 wrap?: boolean;
34 fontSize?: number;
35}
36export interface BaseDiagramConfig {
37 useWidth?: number;
38 useMaxWidth?: boolean;
39}
40export interface C4DiagramConfig extends BaseDiagramConfig {
41 diagramMarginX?: number;
42 diagramMarginY?: number;
43 c4ShapeMargin?: number;
44 c4ShapePadding?: number;
45 width?: number;
46 height?: number;
47 boxMargin?: number;
48 c4ShapeInRow?: number;
49 nextLinePaddingX?: number;
50 c4BoundaryInRow?: number;
51 personFontSize?: string | number;
52 personFontFamily?: string;
53 personFontWeight?: string | number;
54 external_personFontSize?: string | number;
55 external_personFontFamily?: string;
56 external_personFontWeight?: string | number;
57 systemFontSize?: string | number;
58 systemFontFamily?: string;
59 systemFontWeight?: string | number;
60 external_systemFontSize?: string | number;
61 external_systemFontFamily?: string;
62 external_systemFontWeight?: string | number;
63 system_dbFontSize?: string | number;
64 system_dbFontFamily?: string;
65 system_dbFontWeight?: string | number;
66 external_system_dbFontSize?: string | number;
67 external_system_dbFontFamily?: string;
68 external_system_dbFontWeight?: string | number;
69 system_queueFontSize?: string | number;
70 system_queueFontFamily?: string;
71 system_queueFontWeight?: string | number;
72 external_system_queueFontSize?: string | number;
73 external_system_queueFontFamily?: string;
74 external_system_queueFontWeight?: string | number;
75 boundaryFontSize?: string | number;
76 boundaryFontFamily?: string;
77 boundaryFontWeight?: string | number;
78 messageFontSize?: string | number;
79 messageFontFamily?: string;
80 messageFontWeight?: string | number;
81 containerFontSize?: string | number;
82 containerFontFamily?: string;
83 containerFontWeight?: string | number;
84 external_containerFontSize?: string | number;
85 external_containerFontFamily?: string;
86 external_containerFontWeight?: string | number;
87 container_dbFontSize?: string | number;
88 container_dbFontFamily?: string;
89 container_dbFontWeight?: string | number;
90 external_container_dbFontSize?: string | number;
91 external_container_dbFontFamily?: string;
92 external_container_dbFontWeight?: string | number;
93 container_queueFontSize?: string | number;
94 container_queueFontFamily?: string;
95 container_queueFontWeight?: string | number;
96 external_container_queueFontSize?: string | number;
97 external_container_queueFontFamily?: string;
98 external_container_queueFontWeight?: string | number;
99 componentFontSize?: string | number;
100 componentFontFamily?: string;
101 componentFontWeight?: string | number;
102 external_componentFontSize?: string | number;
103 external_componentFontFamily?: string;
104 external_componentFontWeight?: string | number;
105 component_dbFontSize?: string | number;
106 component_dbFontFamily?: string;
107 component_dbFontWeight?: string | number;
108 external_component_dbFontSize?: string | number;
109 external_component_dbFontFamily?: string;
110 external_component_dbFontWeight?: string | number;
111 component_queueFontSize?: string | number;
112 component_queueFontFamily?: string;
113 component_queueFontWeight?: string | number;
114 external_component_queueFontSize?: string | number;
115 external_component_queueFontFamily?: string;
116 external_component_queueFontWeight?: string | number;
117 wrap?: boolean;
118 wrapPadding?: number;
119 person_bg_color?: string;
120 person_border_color?: string;
121 external_person_bg_color?: string;
122 external_person_border_color?: string;
123 system_bg_color?: string;
124 system_border_color?: string;
125 system_db_bg_color?: string;
126 system_db_border_color?: string;
127 system_queue_bg_color?: string;
128 system_queue_border_color?: string;
129 external_system_bg_color?: string;
130 external_system_border_color?: string;
131 external_system_db_bg_color?: string;
132 external_system_db_border_color?: string;
133 external_system_queue_bg_color?: string;
134 external_system_queue_border_color?: string;
135 container_bg_color?: string;
136 container_border_color?: string;
137 container_db_bg_color?: string;
138 container_db_border_color?: string;
139 container_queue_bg_color?: string;
140 container_queue_border_color?: string;
141 external_container_bg_color?: string;
142 external_container_border_color?: string;
143 external_container_db_bg_color?: string;
144 external_container_db_border_color?: string;
145 external_container_queue_bg_color?: string;
146 external_container_queue_border_color?: string;
147 component_bg_color?: string;
148 component_border_color?: string;
149 component_db_bg_color?: string;
150 component_db_border_color?: string;
151 component_queue_bg_color?: string;
152 component_queue_border_color?: string;
153 external_component_bg_color?: string;
154 external_component_border_color?: string;
155 external_component_db_bg_color?: string;
156 external_component_db_border_color?: string;
157 external_component_queue_bg_color?: string;
158 external_component_queue_border_color?: string;
159 personFont?: FontCalculator;
160 external_personFont?: FontCalculator;
161 systemFont?: FontCalculator;
162 external_systemFont?: FontCalculator;
163 system_dbFont?: FontCalculator;
164 external_system_dbFont?: FontCalculator;
165 system_queueFont?: FontCalculator;
166 external_system_queueFont?: FontCalculator;
167 containerFont?: FontCalculator;
168 external_containerFont?: FontCalculator;
169 container_dbFont?: FontCalculator;
170 external_container_dbFont?: FontCalculator;
171 container_queueFont?: FontCalculator;
172 external_container_queueFont?: FontCalculator;
173 componentFont?: FontCalculator;
174 external_componentFont?: FontCalculator;
175 component_dbFont?: FontCalculator;
176 external_component_dbFont?: FontCalculator;
177 component_queueFont?: FontCalculator;
178 external_component_queueFont?: FontCalculator;
179 boundaryFont?: FontCalculator;
180 messageFont?: FontCalculator;
181}
182export interface GitGraphDiagramConfig extends BaseDiagramConfig {
183 titleTopMargin?: number;
184 diagramPadding?: number;
185 nodeLabel?: NodeLabel;
186 mainBranchName?: string;
187 mainBranchOrder?: number;
188 showCommitLabel?: boolean;
189 showBranches?: boolean;
190 rotateCommitLabel?: boolean;
191 arrowMarkerAbsolute?: boolean;
192}
193export interface NodeLabel {
194 width?: number;
195 height?: number;
196 x?: number;
197 y?: number;
198}
199export interface RequirementDiagramConfig extends BaseDiagramConfig {
200 rect_fill?: string;
201 text_color?: string;
202 rect_border_size?: string;
203 rect_border_color?: string;
204 rect_min_width?: number;
205 rect_min_height?: number;
206 fontSize?: number;
207 rect_padding?: number;
208 line_height?: number;
209}
210export interface MindmapDiagramConfig extends BaseDiagramConfig {
211 useMaxWidth: boolean;
212 padding: number;
213 maxNodeWidth: number;
214}
215export interface PieDiagramConfig extends BaseDiagramConfig {
216 textPosition?: number;
217}
218export interface QuadrantChartConfig extends BaseDiagramConfig {
219 chartWidth: number;
220 chartHeight: number;
221 titleFontSize: number;
222 titlePadding: number;
223 quadrantPadding: number;
224 xAxisLabelPadding: number;
225 yAxisLabelPadding: number;
226 xAxisLabelFontSize: number;
227 yAxisLabelFontSize: number;
228 quadrantLabelFontSize: number;
229 quadrantTextTopPadding: number;
230 pointTextPadding: number;
231 pointLabelFontSize: number;
232 pointRadius: number;
233 xAxisPosition: 'top' | 'bottom';
234 yAxisPosition: 'left' | 'right';
235 quadrantInternalBorderStrokeWidth: number;
236 quadrantExternalBorderStrokeWidth: number;
237}
238export interface ErDiagramConfig extends BaseDiagramConfig {
239 titleTopMargin?: number;
240 diagramPadding?: number;
241 layoutDirection?: string;
242 minEntityWidth?: number;
243 minEntityHeight?: number;
244 entityPadding?: number;
245 stroke?: string;
246 fill?: string;
247 fontSize?: number;
248}
249export interface StateDiagramConfig extends BaseDiagramConfig {
250 titleTopMargin?: number;
251 arrowMarkerAbsolute?: boolean;
252 dividerMargin?: number;
253 sizeUnit?: number;
254 padding?: number;
255 textHeight?: number;
256 titleShift?: number;
257 noteMargin?: number;
258 forkWidth?: number;
259 forkHeight?: number;
260 miniPadding?: number;
261 fontSizeFactor?: number;
262 fontSize?: number;
263 labelHeight?: number;
264 edgeLengthFactor?: string;
265 compositTitleSize?: number;
266 radius?: number;
267 defaultRenderer?: string;
268}
269export interface ClassDiagramConfig extends BaseDiagramConfig {
270 titleTopMargin?: number;
271 arrowMarkerAbsolute?: boolean;
272 dividerMargin?: number;
273 padding?: number;
274 textHeight?: number;
275 defaultRenderer?: string;
276 nodeSpacing?: number;
277 rankSpacing?: number;
278 diagramPadding?: number;
279 htmlLabels?: boolean;
280}
281export interface JourneyDiagramConfig extends BaseDiagramConfig {
282 diagramMarginX?: number;
283 diagramMarginY?: number;
284 leftMargin?: number;
285 width?: number;
286 height?: number;
287 boxMargin?: number;
288 boxTextMargin?: number;
289 noteMargin?: number;
290 messageMargin?: number;
291 messageAlign?: string;
292 bottomMarginAdj?: number;
293 rightAngles?: boolean;
294 taskFontSize?: string | number;
295 taskFontFamily?: string;
296 taskMargin?: number;
297 activationWidth?: number;
298 textPlacement?: string;
299 actorColours?: string[];
300 sectionFills?: string[];
301 sectionColours?: string[];
302}
303export interface TimelineDiagramConfig extends BaseDiagramConfig {
304 diagramMarginX?: number;
305 diagramMarginY?: number;
306 leftMargin?: number;
307 width?: number;
308 height?: number;
309 padding?: number;
310 boxMargin?: number;
311 boxTextMargin?: number;
312 noteMargin?: number;
313 messageMargin?: number;
314 messageAlign?: string;
315 bottomMarginAdj?: number;
316 rightAngles?: boolean;
317 taskFontSize?: string | number;
318 taskFontFamily?: string;
319 taskMargin?: number;
320 activationWidth?: number;
321 textPlacement?: string;
322 actorColours?: string[];
323 sectionFills?: string[];
324 sectionColours?: string[];
325 disableMulticolor?: boolean;
326 useMaxWidth?: boolean;
327}
328export interface GanttDiagramConfig extends BaseDiagramConfig {
329 titleTopMargin?: number;
330 barHeight?: number;
331 barGap?: number;
332 topPadding?: number;
333 rightPadding?: number;
334 leftPadding?: number;
335 gridLineStartPadding?: number;
336 fontSize?: number;
337 sectionFontSize?: string | number;
338 numberSectionStyles?: number;
339 axisFormat?: string;
340 tickInterval?: string;
341 topAxis?: boolean;
342 displayMode?: string;
343}
344export interface SequenceDiagramConfig extends BaseDiagramConfig {
345 arrowMarkerAbsolute?: boolean;
346 hideUnusedParticipants?: boolean;
347 activationWidth?: number;
348 diagramMarginX?: number;
349 diagramMarginY?: number;
350 actorMargin?: number;
351 width?: number;
352 height?: number;
353 boxMargin?: number;
354 boxTextMargin?: number;
355 noteMargin?: number;
356 messageMargin?: number;
357 messageAlign?: string;
358 mirrorActors?: boolean;
359 forceMenus?: boolean;
360 bottomMarginAdj?: number;
361 rightAngles?: boolean;
362 showSequenceNumbers?: boolean;
363 actorFontSize?: string | number;
364 actorFontFamily?: string;
365 actorFontWeight?: string | number;
366 noteFontSize?: string | number;
367 noteFontFamily?: string;
368 noteFontWeight?: string | number;
369 noteAlign?: string;
370 messageFontSize?: string | number;
371 messageFontFamily?: string;
372 messageFontWeight?: string | number;
373 wrap?: boolean;
374 wrapPadding?: number;
375 labelBoxWidth?: number;
376 labelBoxHeight?: number;
377 messageFont?: FontCalculator;
378 noteFont?: FontCalculator;
379 actorFont?: FontCalculator;
380}
381export interface FlowchartDiagramConfig extends BaseDiagramConfig {
382 titleTopMargin?: number;
383 arrowMarkerAbsolute?: boolean;
384 diagramPadding?: number;
385 htmlLabels?: boolean;
386 nodeSpacing?: number;
387 rankSpacing?: number;
388 curve?: string;
389 padding?: number;
390 defaultRenderer?: string;
391 wrappingWidth?: number;
392}
393export interface FontConfig {
394 fontSize?: string | number;
395 fontFamily?: string;
396 fontWeight?: string | number;
397}
398export type FontCalculator = () => Partial<FontConfig>;
399export {};