UNPKG

ngx-markdown

Version:

Angular library that uses marked to parse markdown to html combined with Prism.js for synthax highlights

1 lines 114 kB
{"version":3,"file":"ngx-markdown.mjs","sources":["../../../lib/src/clipboard-button.component.ts","../../../lib/src/clipboard-options.ts","../../../lib/src/katex-options.ts","../../../lib/src/language.pipe.ts","../../../lib/src/prism-plugin.ts","../../../lib/src/marked-extensions.ts","../../../lib/src/marked-options.ts","../../../lib/src/mermaid-options.ts","../../../lib/src/markdown.service.ts","../../../lib/src/markdown.component.ts","../../../lib/src/markdown.pipe.ts","../../../lib/src/provide-markdown.ts","../../../lib/src/markdown.module.ts","../../../lib/ngx-markdown.ts"],"sourcesContent":["import { AsyncPipe } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\r\nimport { merge, of, Subject, timer } from 'rxjs';\r\nimport { distinctUntilChanged, map, mapTo, shareReplay, startWith, switchMap } from 'rxjs/operators';\r\n\r\nconst BUTTON_TEXT_COPY = 'Copy';\r\nconst BUTTON_TEXT_COPIED = 'Copied';\r\n\r\n@Component({\r\n selector: 'markdown-clipboard',\r\n template: `\r\n <button\r\n class=\"markdown-clipboard-button\"\r\n [class.copied]=\"copied$ | async\"\r\n (click)=\"onCopyToClipboardClick()\"\r\n >{{ copiedText$ | async }}</button>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [AsyncPipe],\r\n})\r\nexport class ClipboardButtonComponent {\r\n\r\n private _buttonClick$ = new Subject<void>();\r\n\r\n readonly copied$ = this._buttonClick$.pipe(\r\n switchMap(() => merge(\r\n of(true),\r\n timer(3000).pipe(mapTo(false)),\r\n )),\r\n distinctUntilChanged(),\r\n shareReplay(1),\r\n );\r\n\r\n readonly copiedText$ = this.copied$.pipe(\r\n startWith(false),\r\n map(copied => copied\r\n ? BUTTON_TEXT_COPIED\r\n : BUTTON_TEXT_COPY),\r\n );\r\n\r\n onCopyToClipboardClick(): void {\r\n this._buttonClick$.next();\r\n }\r\n}\r\n","import { InjectionToken, TemplateRef, Type } from '@angular/core';\r\n\r\nexport interface ClipboardOptions {\r\n buttonComponent?: Type<unknown>;\r\n}\r\n\r\nexport interface ClipboardRenderOptions extends ClipboardOptions {\r\n buttonTemplate?: TemplateRef<unknown>;\r\n}\r\n\r\nexport const CLIPBOARD_OPTIONS = new InjectionToken<ClipboardOptions>('CLIPBOARD_OPTIONS');\r\n","/* eslint-disable */\r\nexport class KatexSpecificOptions {\r\n /**\r\n * If `true`, math will be rendered in display mode\r\n * (math in display style and center math on page)\r\n *\r\n * If `false`, math will be rendered in inline mode\r\n * @default false\r\n */\r\n displayMode?: boolean;\r\n /**\r\n * If `true`, KaTeX will throw a `ParseError` when\r\n * it encounters an unsupported command or invalid LaTex\r\n *\r\n * If `false`, KaTeX will render unsupported commands as\r\n * text, and render invalid LaTeX as its source code with\r\n * hover text giving the error, in color given by errorColor\r\n * @default true\r\n */\r\n throwOnError?: boolean;\r\n /**\r\n * A Color string given in format `#XXX` or `#XXXXXX`\r\n */\r\n errorColor?: string;\r\n /**\r\n * A collection of custom macros.\r\n *\r\n * See `src/macros.js` for its usage\r\n */\r\n macros?: any;\r\n /**\r\n * If `true`, `\\color` will work like LaTeX's `\\textcolor`\r\n * and takes 2 arguments\r\n *\r\n * If `false`, `\\color` will work like LaTeX's `\\color`\r\n * and takes 1 argument\r\n *\r\n * In both cases, `\\textcolor` works as in LaTeX\r\n *\r\n * @default false\r\n */\r\n colorIsTextColor?: boolean;\r\n /**\r\n * All user-specified sizes will be caped to `maxSize` ems\r\n *\r\n * If set to Infinity, users can make elements and space\r\n * arbitrarily large\r\n *\r\n * @default Infinity\r\n */\r\n maxSize?: number;\r\n /**\r\n * Limit the number of macro expansions to specified number\r\n *\r\n * If set to `Infinity`, marco expander will try to fully expand\r\n * as in LaTex\r\n *\r\n * @default 1000\r\n */\r\n maxExpand?: number;\r\n /**\r\n * Allowed protocols in `\\href`\r\n *\r\n * Use `_relative` to allow relative urls\r\n *\r\n * Use `*` to allow all protocols\r\n */\r\n allowedProtocols?: string[];\r\n /**\r\n * If `false` or `\"ignore\"`, allow features that make\r\n * writing in LaTex convenient but not supported by LaTex\r\n *\r\n * If `true` or `\"error\"`, throw an error for such transgressions\r\n *\r\n * If `\"warn\"`, warn about behavior via `console.warn`\r\n *\r\n * @default \"warn\"\r\n */\r\n strict?: boolean | string | Function;\r\n}\r\n\r\nexport interface RenderMathInElementSpecificOptionsDelimiters {\r\n /**\r\n * A string which starts the math expression (i.e. the left delimiter)\r\n */\r\n left: string;\r\n /**\r\n * A string which ends the math expression (i.e. the right delimiter)\r\n */\r\n right: string;\r\n /**\r\n * A boolean of whether the math in the expression should be rendered in display mode or not\r\n */\r\n display: boolean\r\n}\r\n\r\nexport interface RenderMathInElementSpecificOptions {\r\n /**\r\n * A list of delimiters to look for math\r\n *\r\n * @default [\r\n * {left: \"$$\", right: \"$$\", display: true},\r\n * {left: \"\\\\(\", right: \"\\\\)\", display: false},\r\n * {left: \"\\\\[\", right: \"\\\\]\", display: true}\r\n * ]\r\n */\r\n delimiters?: ReadonlyArray<RenderMathInElementSpecificOptionsDelimiters> | undefined;\r\n /**\r\n * A list of DOM node types to ignore when recursing through\r\n *\r\n * @default [\"script\", \"noscript\", \"style\", \"textarea\", \"pre\", \"code\"]\r\n */\r\n ignoredTags?: ReadonlyArray<keyof HTMLElementTagNameMap> | undefined;\r\n /**\r\n * A list of DOM node class names to ignore when recursing through\r\n *\r\n * @default []\r\n */\r\n ignoredClasses?: string[] | undefined;\r\n\r\n /**\r\n * A callback method returning a message and an error stack in case of an critical error during rendering\r\n * @param msg Message generated by KaTeX\r\n * @param err Caught error\r\n *\r\n * @default console.error\r\n */\r\n errorCallback?(msg: string, err: Error): void;\r\n}\r\n\r\n/**\r\n * renderMathInElement options contain KaTeX render options and renderMathInElement specific options\r\n */\r\nexport type KatexOptions = KatexSpecificOptions & RenderMathInElementSpecificOptions;\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'language',\r\n})\r\nexport class LanguagePipe implements PipeTransform {\r\n\r\n transform(value: string | null, language: string): string {\r\n if (value == null) {\r\n value = '';\r\n }\r\n if (language == null) {\r\n language = '';\r\n }\r\n if (typeof value !== 'string') {\r\n console.error(`LanguagePipe has been invoked with an invalid value type [${typeof value}]`);\r\n return value;\r\n }\r\n if (typeof language !== 'string') {\r\n console.error(`LanguagePipe has been invoked with an invalid parameter [${typeof language}]`);\r\n return value;\r\n }\r\n return '```' + language + '\\n' + value + '\\n```';\r\n }\r\n}\r\n","export enum PrismPlugin {\r\n CommandLine = 'command-line',\r\n LineHighlight = 'line-highlight',\r\n LineNumbers = 'line-numbers',\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { MarkedExtension } from 'marked';\r\n\r\nexport const MARKED_EXTENSIONS = new InjectionToken<MarkedExtension>('MARKED_EXTENSIONS');\r\n","import { InjectionToken } from '@angular/core';\r\nimport { MarkedOptions } from 'marked';\r\n\r\nexport type { MarkedOptions } from 'marked';\r\n\r\nexport const MARKED_OPTIONS = new InjectionToken<MarkedOptions>('MARKED_OPTIONS');\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const MERMAID_OPTIONS = new InjectionToken<MermaidAPI.MermaidConfig>('MERMAID_OPTIONS');\r\n\r\n/* eslint-disable */\r\nexport namespace MermaidAPI {\r\n /**\r\n * JavaScript function that returns a `FontConfig`.\r\n *\r\n * By default, these return the appropriate `*FontSize`, `*FontFamily`, `*FontWeight`\r\n * values.\r\n *\r\n * For example, the font calculator called `boundaryFont` might be defined as:\r\n *\r\n * ```javascript\r\n * boundaryFont: function () {\r\n * return {\r\n * fontFamily: this.boundaryFontFamily,\r\n * fontSize: this.boundaryFontSize,\r\n * fontWeight: this.boundaryFontWeight,\r\n * };\r\n * }\r\n * ```\r\n *\r\n *\r\n * This interface was referenced by `MermaidConfig`'s JSON-Schema\r\n * via the `definition` \"FontCalculator\".\r\n */\r\n export type FontCalculator = () => Partial<FontConfig>;\r\n /**\r\n * Picks the color of the sankey diagram links, using the colors of the source and/or target of the links.\r\n *\r\n *\r\n * This interface was referenced by `MermaidConfig`'s JSON-Schema\r\n * via the `definition` \"SankeyLinkColor\".\r\n */\r\n export type SankeyLinkColor = 'source' | 'target' | 'gradient';\r\n /**\r\n * Controls the alignment of the Sankey diagrams.\r\n *\r\n * See <https://github.com/d3/d3-sankey#alignments>.\r\n *\r\n *\r\n * This interface was referenced by `MermaidConfig`'s JSON-Schema\r\n * via the `definition` \"SankeyNodeAlignment\".\r\n */\r\n export type SankeyNodeAlignment = 'left' | 'right' | 'center' | 'justify';\r\n /**\r\n * The font size to use\r\n */\r\n export type CSSFontSize = string | number;\r\n\r\n export interface MermaidConfig {\r\n /**\r\n * Theme, the CSS style sheet.\r\n * You may also use `themeCSS` to override this value.\r\n *\r\n */\r\n theme?: 'default' | 'base' | 'dark' | 'forest' | 'neutral' | 'null';\r\n themeVariables?: any;\r\n themeCSS?: string;\r\n /**\r\n * Defines which main look to use for the diagram.\r\n *\r\n */\r\n look?: 'classic' | 'handDrawn';\r\n /**\r\n * Defines the seed to be used when using handDrawn look. This is important for the automated tests as they will always find differences without the seed. The default value is 0 which gives a random seed.\r\n *\r\n */\r\n handDrawnSeed?: number;\r\n /**\r\n * Defines which layout algorithm to use for rendering the diagram.\r\n *\r\n */\r\n layout?: string;\r\n /**\r\n * The maximum allowed size of the users text diagram\r\n */\r\n maxTextSize?: number;\r\n /**\r\n * Defines the maximum number of edges that can be drawn in a graph.\r\n *\r\n */\r\n maxEdges?: number;\r\n elk?: {\r\n /**\r\n * Elk specific option that allows edges to share path where it convenient. It can make for pretty diagrams but can also make it harder to read the diagram.\r\n *\r\n */\r\n mergeEdges?: boolean;\r\n /**\r\n * Elk specific option affecting how nodes are placed.\r\n *\r\n */\r\n nodePlacementStrategy?: 'SIMPLE' | 'NETWORK_SIMPLEX' | 'LINEAR_SEGMENTS' | 'BRANDES_KOEPF';\r\n /**\r\n * This strategy decides how to find cycles in the graph and deciding which edges need adjustment to break loops.\r\n *\r\n */\r\n cycleBreakingStrategy?:\r\n | 'GREEDY'\r\n | 'DEPTH_FIRST'\r\n | 'INTERACTIVE'\r\n | 'MODEL_ORDER'\r\n | 'GREEDY_MODEL_ORDER';\r\n };\r\n darkMode?: boolean;\r\n htmlLabels?: boolean;\r\n /**\r\n * Specifies the font to be used in the rendered diagrams.\r\n * Can be any possible CSS `font-family`.\r\n * See https://developer.mozilla.org/en-US/docs/Web/CSS/font-family\r\n *\r\n */\r\n fontFamily?: string;\r\n altFontFamily?: string;\r\n /**\r\n * This option decides the amount of logging to be used by mermaid.\r\n *\r\n */\r\n logLevel?: 'trace' | 0 | 'debug' | 1 | 'info' | 2 | 'warn' | 3 | 'error' | 4 | 'fatal' | 5;\r\n /**\r\n * Level of trust for parsed diagram\r\n */\r\n securityLevel?: 'strict' | 'loose' | 'antiscript' | 'sandbox';\r\n /**\r\n * Dictates whether mermaid starts on Page load\r\n */\r\n startOnLoad?: boolean;\r\n /**\r\n * Controls whether or arrow markers in html code are absolute paths or anchors.\r\n * This matters if you are using base tag settings.\r\n *\r\n */\r\n arrowMarkerAbsolute?: boolean;\r\n /**\r\n * This option controls which `currentConfig` keys are considered secure and\r\n * can only be changed via call to `mermaid.initialize`.\r\n * This prevents malicious graph directives from overriding a site's default security.\r\n *\r\n */\r\n secure?: string[];\r\n /**\r\n * This option specifies if Mermaid can expect the dependent to include KaTeX stylesheets for browsers\r\n * without their own MathML implementation. If this option is disabled and MathML is not supported, the math\r\n * equations are replaced with a warning. If this option is enabled and MathML is not supported, Mermaid will\r\n * fall back to legacy rendering for KaTeX.\r\n *\r\n */\r\n legacyMathML?: boolean;\r\n /**\r\n * This option forces Mermaid to rely on KaTeX's own stylesheet for rendering MathML. Due to differences between OS\r\n * fonts and browser's MathML implementation, this option is recommended if consistent rendering is important.\r\n * If set to true, ignores legacyMathML.\r\n *\r\n */\r\n forceLegacyMathML?: boolean;\r\n /**\r\n * This option controls if the generated ids of nodes in the SVG are\r\n * generated randomly or based on a seed.\r\n * If set to `false`, the IDs are generated based on the current date and\r\n * thus are not deterministic. This is the default behavior.\r\n *\r\n * This matters if your files are checked into source control e.g. git and\r\n * should not change unless content is changed.\r\n *\r\n */\r\n deterministicIds?: boolean;\r\n /**\r\n * This option is the optional seed for deterministic ids.\r\n * If set to `undefined` but deterministicIds is `true`, a simple number iterator is used.\r\n * You can set this attribute to base the seed on a static string.\r\n *\r\n */\r\n deterministicIDSeed?: string;\r\n flowchart?: FlowchartDiagramConfig;\r\n sequence?: SequenceDiagramConfig;\r\n gantt?: GanttDiagramConfig;\r\n journey?: JourneyDiagramConfig;\r\n timeline?: TimelineDiagramConfig;\r\n class?: ClassDiagramConfig;\r\n state?: StateDiagramConfig;\r\n er?: ErDiagramConfig;\r\n pie?: PieDiagramConfig;\r\n quadrantChart?: QuadrantChartConfig;\r\n xyChart?: XYChartConfig;\r\n requirement?: RequirementDiagramConfig;\r\n architecture?: ArchitectureDiagramConfig;\r\n mindmap?: MindmapDiagramConfig;\r\n kanban?: KanbanDiagramConfig;\r\n gitGraph?: GitGraphDiagramConfig;\r\n c4?: C4DiagramConfig;\r\n sankey?: SankeyDiagramConfig;\r\n packet?: PacketDiagramConfig;\r\n block?: BlockDiagramConfig;\r\n wrap?: boolean;\r\n fontSize?: number;\r\n markdownAutoWrap?: boolean;\r\n /**\r\n * Suppresses inserting 'Syntax error' diagram in the DOM.\r\n * This is useful when you want to control how to handle syntax errors in your application.\r\n *\r\n */\r\n suppressErrorRendering?: boolean;\r\n }\r\n /**\r\n * The object containing configurations specific for flowcharts\r\n *\r\n * This interface was referenced by `MermaidConfig`'s JSON-Schema\r\n * via the `definition` \"FlowchartDiagramConfig\".\r\n */\r\n export interface FlowchartDiagramConfig extends BaseDiagramConfig {\r\n /**\r\n * Margin top for the text over the diagram\r\n */\r\n titleTopMargin?: number;\r\n /**\r\n * Defines a top/bottom margin for subgraph titles\r\n *\r\n */\r\n subGraphTitleMargin?: {\r\n top?: number;\r\n bottom?: number;\r\n };\r\n arrowMarkerAbsolute?: boolean;\r\n /**\r\n * The amount of padding around the diagram as a whole so that embedded\r\n * diagrams have margins, expressed in pixels.\r\n *\r\n */\r\n diagramPadding?: number;\r\n /**\r\n * Flag for setting whether or not a html tag should be used for rendering labels on the edges.\r\n *\r\n */\r\n htmlLabels?: boolean;\r\n /**\r\n * Defines the spacing between nodes on the same level\r\n *\r\n * Pertains to horizontal spacing for TB (top to bottom) or BT (bottom to top) graphs,\r\n * and the vertical spacing for LR as well as RL graphs.\r\n *\r\n */\r\n nodeSpacing?: number;\r\n /**\r\n * Defines the spacing between nodes on different levels\r\n *\r\n * Pertains to horizontal spacing for TB (top to bottom) or BT (bottom to top) graphs,\r\n * and the vertical spacing for LR as well as RL graphs.\r\n *\r\n */\r\n rankSpacing?: number;\r\n /**\r\n * Defines how mermaid renders curves for flowcharts.\r\n *\r\n */\r\n curve?: 'basis' | 'linear' | 'cardinal';\r\n /**\r\n * Represents the padding between the labels and the shape\r\n *\r\n * **Only used in new experimental rendering.**\r\n *\r\n */\r\n padding?: number;\r\n /**\r\n * Decides which rendering engine that is to be used for the rendering.\r\n *\r\n */\r\n defaultRenderer?: 'dagre-d3' | 'dagre-wrapper' | 'elk';\r\n /**\r\n * Width of nodes where text is wrapped.\r\n *\r\n * When using markdown strings the text ius wrapped automatically, this\r\n * value sets the max width of a text before it continues on a new line.\r\n *\r\n */\r\n wrappingWidth?: number;\r\n }\r\n /**\r\n * This interface was referenced by `MermaidConfig`'s JSON-Schema\r\n * via the `definition` \"BaseDiagramConfig\".\r\n */\r\n export interface BaseDiagramConfig {\r\n useWidth?: number;\r\n /**\r\n * When this flag is set to `true`, the height and width is set to 100%\r\n * and is then scaled with the available space.\r\n * If set to `false`, the absolute space required is used.\r\n *\r\n */\r\n useMaxWidth?: boolean;\r\n }\r\n /**\r\n * The object containing configurations specific for sequence diagrams\r\n *\r\n * This interface was referenced by `MermaidConfig`'s JSON-Schema\r\n * via the `definition` \"SequenceDiagramConfig\".\r\n */\r\n export interface SequenceDiagramConfig extends BaseDiagramConfig {\r\n arrowMarkerAbsolute?: boolean;\r\n hideUnusedParticipants?: boolean;\r\n /**\r\n * Width of the activation rect\r\n */\r\n activationWidth?: number;\r\n /**\r\n * Margin to the right and left of the sequence diagram\r\n */\r\n diagramMarginX?: number;\r\n /**\r\n * Margin to the over and under the sequence diagram\r\n */\r\n diagramMarginY?: number;\r\n /**\r\n * Margin between actors\r\n */\r\n actorMargin?: number;\r\n /**\r\n * Width of actor boxes\r\n */\r\n width?: number;\r\n /**\r\n * Height of actor boxes\r\n */\r\n height?: number;\r\n /**\r\n * Margin around loop boxes\r\n */\r\n boxMargin?: number;\r\n /**\r\n * Margin around the text in loop/alt/opt boxes\r\n */\r\n boxTextMargin?: number;\r\n /**\r\n * Margin around notes\r\n */\r\n noteMargin?: number;\r\n /**\r\n * Space between messages.\r\n */\r\n messageMargin?: number;\r\n /**\r\n * Multiline message alignment\r\n */\r\n messageAlign?: 'left' | 'center' | 'right';\r\n /**\r\n * Mirror actors under diagram\r\n *\r\n */\r\n mirrorActors?: boolean;\r\n /**\r\n * forces actor popup menus to always be visible (to support E2E testing).\r\n *\r\n */\r\n forceMenus?: boolean;\r\n /**\r\n * Prolongs the edge of the diagram downwards.\r\n *\r\n * Depending on css styling this might need adjustment.\r\n *\r\n */\r\n bottomMarginAdj?: number;\r\n /**\r\n * Curved Arrows become Right Angles\r\n *\r\n * This will display arrows that start and begin at the same node as\r\n * right angles, rather than as curves.\r\n *\r\n */\r\n rightAngles?: boolean;\r\n /**\r\n * This will show the node numbers\r\n */\r\n showSequenceNumbers?: boolean;\r\n /**\r\n * This sets the font size of the actor's description\r\n */\r\n actorFontSize?: string | number;\r\n /**\r\n * This sets the font family of the actor's description\r\n */\r\n actorFontFamily?: string;\r\n /**\r\n * This sets the font weight of the actor's description\r\n */\r\n actorFontWeight?: string | number;\r\n /**\r\n * This sets the font size of actor-attached notes\r\n */\r\n noteFontSize?: string | number;\r\n /**\r\n * This sets the font family of actor-attached notes\r\n */\r\n noteFontFamily?: string;\r\n /**\r\n * This sets the font weight of actor-attached notes\r\n */\r\n noteFontWeight?: string | number;\r\n /**\r\n * This sets the text alignment of actor-attached notes\r\n */\r\n noteAlign?: 'left' | 'center' | 'right';\r\n /**\r\n * This sets the font size of actor messages\r\n */\r\n messageFontSize?: string | number;\r\n /**\r\n * This sets the font family of actor messages\r\n */\r\n messageFontFamily?: string;\r\n /**\r\n * This sets the font weight of actor messages\r\n */\r\n messageFontWeight?: string | number;\r\n /**\r\n * This sets the auto-wrap state for the diagram\r\n */\r\n wrap?: boolean;\r\n /**\r\n * This sets the auto-wrap padding for the diagram (sides only)\r\n */\r\n wrapPadding?: number;\r\n /**\r\n * This sets the width of the loop-box (loop, alt, opt, par)\r\n */\r\n labelBoxWidth?: number;\r\n /**\r\n * This sets the height of the loop-box (loop, alt, opt, par)\r\n */\r\n labelBoxHeight?: number;\r\n messageFont?: FontCalculator;\r\n noteFont?: FontCalculator;\r\n actorFont?: FontCalculator;\r\n }\r\n /**\r\n * The object containing configurations specific for gantt diagrams\r\n *\r\n *\r\n * This interface was referenced by `MermaidConfig`'s JSON-Schema\r\n * via the `definition` \"GanttDiagramConfig\".\r\n */\r\n export interface GanttDiagramConfig extends BaseDiagramConfig {\r\n /**\r\n * Margin top for the text over the diagram\r\n */\r\n titleTopMargin?: number;\r\n /**\r\n * The height of the bars in the graph\r\n */\r\n barHeight?: number;\r\n /**\r\n * The margin between the different activities in the gantt diagram\r\n */\r\n barGap?: number;\r\n /**\r\n * Margin between title and gantt diagram and between axis and gantt diagram.\r\n *\r\n */\r\n topPadding?: number;\r\n /**\r\n * The space allocated for the section name to the right of the activities\r\n *\r\n */\r\n rightPadding?: number;\r\n /**\r\n * The space allocated for the section name to the left of the activities\r\n *\r\n */\r\n leftPadding?: number;\r\n /**\r\n * Vertical starting position of the grid lines\r\n */\r\n gridLineStartPadding?: number;\r\n /**\r\n * Font size\r\n */\r\n fontSize?: number;\r\n /**\r\n * Font size for sections\r\n */\r\n sectionFontSize?: string | number;\r\n /**\r\n * The number of alternating section styles\r\n */\r\n numberSectionStyles?: number;\r\n /**\r\n * Date/time format of the axis\r\n *\r\n * This might need adjustment to match your locale and preferences.\r\n *\r\n */\r\n axisFormat?: string;\r\n /**\r\n * axis ticks\r\n *\r\n * Pattern is:\r\n *\r\n * ```javascript\r\n * /^([1-9][0-9]*)(millisecond|second|minute|hour|day|week|month)$/\r\n * ```\r\n *\r\n */\r\n tickInterval?: string;\r\n /**\r\n * When this flag is set, date labels will be added to the top of the chart\r\n *\r\n */\r\n topAxis?: boolean;\r\n /**\r\n * Controls the display mode.\r\n *\r\n */\r\n displayMode?: '' | 'compact';\r\n /**\r\n * On which day a week-based interval should start\r\n *\r\n */\r\n weekday?: 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sunday';\r\n }\r\n /**\r\n * The object containing configurations specific for journey diagrams\r\n *\r\n *\r\n * This interface was referenced by `MermaidConfig`'s JSON-Schema\r\n * via the `definition` \"JourneyDiagramConfig\".\r\n */\r\n export interface JourneyDiagramConfig extends BaseDiagramConfig {\r\n /**\r\n * Margin to the right and left of the c4 diagram, must be a positive value.\r\n *\r\n */\r\n diagramMarginX?: number;\r\n /**\r\n * Margin to the over and under the c4 diagram, must be a positive value.\r\n *\r\n */\r\n diagramMarginY?: number;\r\n /**\r\n * Margin between actors\r\n */\r\n leftMargin?: number;\r\n /**\r\n * Width of actor boxes\r\n */\r\n width?: number;\r\n /**\r\n * Height of actor boxes\r\n */\r\n height?: number;\r\n /**\r\n * Margin around loop boxes\r\n */\r\n boxMargin?: number;\r\n /**\r\n * Margin around the text in loop/alt/opt boxes\r\n */\r\n boxTextMargin?: number;\r\n /**\r\n * Margin around notes\r\n */\r\n noteMargin?: number;\r\n /**\r\n * Space between messages.\r\n */\r\n messageMargin?: number;\r\n /**\r\n * Multiline message alignment\r\n */\r\n messageAlign?: 'left' | 'center' | 'right';\r\n /**\r\n * Prolongs the edge of the diagram downwards.\r\n *\r\n * Depending on css styling this might need adjustment.\r\n *\r\n */\r\n bottomMarginAdj?: number;\r\n /**\r\n * Curved Arrows become Right Angles\r\n *\r\n * This will display arrows that start and begin at the same node as\r\n * right angles, rather than as curves.\r\n *\r\n */\r\n rightAngles?: boolean;\r\n taskFontSize?: string | number;\r\n taskFontFamily?: string;\r\n taskMargin?: number;\r\n /**\r\n * Width of activation box\r\n */\r\n activationWidth?: number;\r\n /**\r\n * text placement as: tspan | fo | old only text as before\r\n *\r\n */\r\n textPlacement?: string;\r\n actorColours?: string[];\r\n sectionFills?: string[];\r\n sectionColours?: string[];\r\n }\r\n /**\r\n * This interface was referenced by `MermaidConfig`'s JSON-Schema\r\n * via the `definition` \"TimelineDiagramConfig\".\r\n */\r\n export interface TimelineDiagramConfig extends BaseDiagramConfig {\r\n /**\r\n * Margin to the right and left of the c4 diagram, must be a positive value.\r\n *\r\n */\r\n diagramMarginX?: number;\r\n /**\r\n * Margin to the over and under the c4 diagram, must be a positive value.\r\n *\r\n */\r\n diagramMarginY?: number;\r\n /**\r\n * Margin between actors\r\n */\r\n leftMargin?: number;\r\n /**\r\n * Width of actor boxes\r\n */\r\n width?: number;\r\n /**\r\n * Height of actor boxes\r\n */\r\n height?: number;\r\n padding?: number;\r\n /**\r\n * Margin around loop boxes\r\n */\r\n boxMargin?: number;\r\n /**\r\n * Margin around the text in loop/alt/opt boxes\r\n */\r\n boxTextMargin?: number;\r\n /**\r\n * Margin around notes\r\n */\r\n noteMargin?: number;\r\n /**\r\n * Space between messages.\r\n */\r\n messageMargin?: number;\r\n /**\r\n * Multiline message alignment\r\n */\r\n messageAlign?: 'left' | 'center' | 'right';\r\n /**\r\n * Prolongs the edge of the diagram downwards.\r\n *\r\n * Depending on css styling this might need adjustment.\r\n *\r\n */\r\n bottomMarginAdj?: number;\r\n /**\r\n * Curved Arrows become Right Angles\r\n *\r\n * This will display arrows that start and begin at the same node as\r\n * right angles, rather than as curves.\r\n *\r\n */\r\n rightAngles?: boolean;\r\n taskFontSize?: string | number;\r\n taskFontFamily?: string;\r\n taskMargin?: number;\r\n /**\r\n * Width of activation box\r\n */\r\n activationWidth?: number;\r\n /**\r\n * text placement as: tspan | fo | old only text as before\r\n *\r\n */\r\n textPlacement?: string;\r\n actorColours?: string[];\r\n sectionFills?: string[];\r\n sectionColours?: string[];\r\n disableMulticolor?: boolean;\r\n }\r\n /**\r\n * This interface was referenced by `MermaidConfig`'s JSON-Schema\r\n * via the `definition` \"ClassDiagramConfig\".\r\n */\r\n export interface ClassDiagramConfig extends BaseDiagramConfig {\r\n /**\r\n * Margin top for the text over the diagram\r\n */\r\n titleTopMargin?: number;\r\n /**\r\n * Controls whether or arrow markers in html code are absolute paths or anchors.\r\n * This matters if you are using base tag settings.\r\n *\r\n */\r\n arrowMarkerAbsolute?: boolean;\r\n dividerMargin?: number;\r\n padding?: number;\r\n textHeight?: number;\r\n /**\r\n * Decides which rendering engine that is to be used for the rendering.\r\n *\r\n */\r\n defaultRenderer?: 'dagre-d3' | 'dagre-wrapper' | 'elk';\r\n nodeSpacing?: number;\r\n rankSpacing?: number;\r\n /**\r\n * The amount of padding around the diagram as a whole so that embedded\r\n * diagrams have margins, expressed in pixels.\r\n *\r\n */\r\n diagramPadding?: number;\r\n htmlLabels?: boolean;\r\n hideEmptyMembersBox?: boolean;\r\n }\r\n /**\r\n * The object containing configurations specific for entity relationship diagrams\r\n *\r\n * This interface was referenced by `MermaidConfig`'s JSON-Schema\r\n * via the `definition` \"StateDiagramConfig\".\r\n */\r\n export interface StateDiagramConfig extends BaseDiagramConfig {\r\n /**\r\n * Margin top for the text over the diagram\r\n */\r\n titleTopMargin?: number;\r\n arrowMarkerAbsolute?: boolean;\r\n dividerMargin?: number;\r\n sizeUnit?: number;\r\n padding?: number;\r\n textHeight?: number;\r\n titleShift?: number;\r\n noteMargin?: number;\r\n nodeSpacing?: number;\r\n rankSpacing?: number;\r\n forkWidth?: number;\r\n forkHeight?: number;\r\n miniPadding?: number;\r\n /**\r\n * Font size factor, this is used to guess the width of the edges labels\r\n * before rendering by dagre layout.\r\n * This might need updating if/when switching font\r\n *\r\n */\r\n fontSizeFactor?: number;\r\n fontSize?: number;\r\n labelHeight?: number;\r\n edgeLengthFactor?: string;\r\n compositTitleSize?: number;\r\n radius?: number;\r\n /**\r\n * Decides which rendering engine that is to be used for the rendering.\r\n *\r\n */\r\n defaultRenderer?: 'dagre-d3' | 'dagre-wrapper' | 'elk';\r\n }\r\n /**\r\n * The object containing configurations specific for entity relationship diagrams\r\n *\r\n * This interface was referenced by `MermaidConfig`'s JSON-Schema\r\n * via the `definition` \"ErDiagramConfig\".\r\n */\r\n export interface ErDiagramConfig extends BaseDiagramConfig {\r\n /**\r\n * Margin top for the text over the diagram\r\n */\r\n titleTopMargin?: number;\r\n /**\r\n * The amount of padding around the diagram as a whole so that embedded\r\n * diagrams have margins, expressed in pixels.\r\n *\r\n */\r\n diagramPadding?: number;\r\n /**\r\n * Directional bias for layout of entities\r\n */\r\n layoutDirection?: 'TB' | 'BT' | 'LR' | 'RL';\r\n /**\r\n * The minimum width of an entity box. Expressed in pixels.\r\n */\r\n minEntityWidth?: number;\r\n /**\r\n * The minimum height of an entity box. Expressed in pixels.\r\n */\r\n minEntityHeight?: number;\r\n /**\r\n * The minimum internal padding between text in an entity box and the enclosing box borders.\r\n * Expressed in pixels.\r\n *\r\n */\r\n entityPadding?: number;\r\n /**\r\n * Stroke color of box edges and lines.\r\n */\r\n stroke?: string;\r\n /**\r\n * Fill color of entity boxes\r\n */\r\n fill?: string;\r\n /**\r\n * Font size (expressed as an integer representing a number of pixels)\r\n */\r\n fontSize?: number;\r\n }\r\n /**\r\n * This interface was referenced by `MermaidConfig`'s JSON-Schema\r\n * via the `definition` \"PieDiagramConfig\".\r\n */\r\n export interface PieDiagramConfig extends BaseDiagramConfig {\r\n /**\r\n * Axial position of slice's label from zero at the center to 1 at the outside edges.\r\n *\r\n */\r\n textPosition?: number;\r\n }\r\n /**\r\n * This interface was referenced by `MermaidConfig`'s JSON-Schema\r\n * via the `definition` \"QuadrantChartConfig\".\r\n */\r\n export interface QuadrantChartConfig extends BaseDiagramConfig {\r\n /**\r\n * Width of the chart\r\n */\r\n chartWidth?: number;\r\n /**\r\n * Height of the chart\r\n */\r\n chartHeight?: number;\r\n /**\r\n * Chart title top and bottom padding\r\n */\r\n titleFontSize?: number;\r\n /**\r\n * Padding around the quadrant square\r\n */\r\n titlePadding?: number;\r\n /**\r\n * quadrant title padding from top if the quadrant is rendered on top\r\n */\r\n quadrantPadding?: number;\r\n /**\r\n * Padding around x-axis labels\r\n */\r\n xAxisLabelPadding?: number;\r\n /**\r\n * Padding around y-axis labels\r\n */\r\n yAxisLabelPadding?: number;\r\n /**\r\n * x-axis label font size\r\n */\r\n xAxisLabelFontSize?: number;\r\n /**\r\n * y-axis label font size\r\n */\r\n yAxisLabelFontSize?: number;\r\n /**\r\n * quadrant title font size\r\n */\r\n quadrantLabelFontSize?: number;\r\n /**\r\n * quadrant title padding from top if the quadrant is rendered on top\r\n */\r\n quadrantTextTopPadding?: number;\r\n /**\r\n * padding between point and point label\r\n */\r\n pointTextPadding?: number;\r\n /**\r\n * point title font size\r\n */\r\n pointLabelFontSize?: number;\r\n /**\r\n * radius of the point to be drawn\r\n */\r\n pointRadius?: number;\r\n /**\r\n * position of x-axis labels\r\n */\r\n xAxisPosition?: 'top' | 'bottom';\r\n /**\r\n * position of y-axis labels\r\n */\r\n yAxisPosition?: 'left' | 'right';\r\n /**\r\n * stroke width of edges of the box that are inside the quadrant\r\n */\r\n quadrantInternalBorderStrokeWidth?: number;\r\n /**\r\n * stroke width of edges of the box that are outside the quadrant\r\n */\r\n quadrantExternalBorderStrokeWidth?: number;\r\n }\r\n /**\r\n * This object contains configuration specific to XYCharts\r\n *\r\n * This interface was referenced by `MermaidConfig`'s JSON-Schema\r\n * via the `definition` \"XYChartConfig\".\r\n */\r\n export interface XYChartConfig extends BaseDiagramConfig {\r\n /**\r\n * width of the chart\r\n */\r\n width?: number;\r\n /**\r\n * height of the chart\r\n */\r\n height?: number;\r\n /**\r\n * Font size of the chart title\r\n */\r\n titleFontSize?: number;\r\n /**\r\n * Top and bottom space from the chart title\r\n */\r\n titlePadding?: number;\r\n /**\r\n * Should show the chart title\r\n */\r\n showTitle?: boolean;\r\n xAxis?: XYChartAxisConfig;\r\n yAxis?: XYChartAxisConfig;\r\n /**\r\n * How to plot will be drawn horizontal or vertical\r\n */\r\n chartOrientation?: 'vertical' | 'horizontal';\r\n /**\r\n * Minimum percent of space plots of the chart will take\r\n */\r\n plotReservedSpacePercent?: number;\r\n }\r\n /**\r\n * This object contains configuration for XYChart axis config\r\n *\r\n * This interface was referenced by `MermaidConfig`'s JSON-Schema\r\n * via the `definition` \"XYChartAxisConfig\".\r\n */\r\n export interface XYChartAxisConfig {\r\n /**\r\n * Should show the axis labels (tick text)\r\n */\r\n showLabel?: boolean;\r\n /**\r\n * font size of the axis labels (tick text)\r\n */\r\n labelFontSize?: number;\r\n /**\r\n * top and bottom space from axis label (tick text)\r\n */\r\n labelPadding?: number;\r\n /**\r\n * Should show the axis title\r\n */\r\n showTitle?: boolean;\r\n /**\r\n * font size of the axis title\r\n */\r\n titleFontSize?: number;\r\n /**\r\n * top and bottom space from axis title\r\n */\r\n titlePadding?: number;\r\n /**\r\n * Should show the axis tick lines\r\n */\r\n showTick?: boolean;\r\n /**\r\n * length of the axis tick lines\r\n */\r\n tickLength?: number;\r\n /**\r\n * width of the axis tick lines\r\n */\r\n tickWidth?: number;\r\n /**\r\n * Show line across the axis\r\n */\r\n showAxisLine?: boolean;\r\n /**\r\n * Width of the axis line\r\n */\r\n axisLineWidth?: number;\r\n }\r\n /**\r\n * The object containing configurations specific for req diagrams\r\n *\r\n * This interface was referenced by `MermaidConfig`'s JSON-Schema\r\n * via the `definition` \"RequirementDiagramConfig\".\r\n */\r\n export interface RequirementDiagramConfig extends BaseDiagramConfig {\r\n rect_fill?: string;\r\n text_color?: string;\r\n rect_border_size?: string;\r\n rect_border_color?: string;\r\n rect_min_width?: number;\r\n rect_min_height?: number;\r\n fontSize?: number;\r\n rect_padding?: number;\r\n line_height?: number;\r\n }\r\n /**\r\n * The object containing configurations specific for architecture diagrams\r\n *\r\n * This interface was referenced by `MermaidConfig`'s JSON-Schema\r\n * via the `definition` \"ArchitectureDiagramConfig\".\r\n */\r\n export interface ArchitectureDiagramConfig extends BaseDiagramConfig {\r\n padding?: number;\r\n iconSize?: number;\r\n fontSize?: number;\r\n }\r\n /**\r\n * The object containing configurations specific for mindmap diagrams\r\n *\r\n * This interface was referenced by `MermaidConfig`'s JSON-Schema\r\n * via the `definition` \"MindmapDiagramConfig\".\r\n */\r\n export interface MindmapDiagramConfig extends BaseDiagramConfig {\r\n padding?: number;\r\n maxNodeWidth?: number;\r\n }\r\n /**\r\n * The object containing configurations specific for kanban diagrams\r\n *\r\n * This interface was referenced by `MermaidConfig`'s JSON-Schema\r\n * via the `definition` \"KanbanDiagramConfig\".\r\n */\r\n export interface KanbanDiagramConfig extends BaseDiagramConfig {\r\n padding?: number;\r\n sectionWidth?: number;\r\n ticketBaseUrl?: string;\r\n }\r\n /**\r\n * This interface was referenced by `MermaidConfig`'s JSON-Schema\r\n * via the `definition` \"GitGraphDiagramConfig\".\r\n */\r\n export interface GitGraphDiagramConfig extends BaseDiagramConfig {\r\n /**\r\n * Margin top for the text over the diagram\r\n */\r\n titleTopMargin?: number;\r\n diagramPadding?: number;\r\n nodeLabel?: NodeLabel;\r\n mainBranchName?: string;\r\n mainBranchOrder?: number;\r\n showCommitLabel?: boolean;\r\n showBranches?: boolean;\r\n rotateCommitLabel?: boolean;\r\n parallelCommits?: boolean;\r\n /**\r\n * Controls whether or arrow markers in html code are absolute paths or anchors.\r\n * This matters if you are using base tag settings.\r\n *\r\n */\r\n arrowMarkerAbsolute?: boolean;\r\n }\r\n /**\r\n * This interface was referenced by `MermaidConfig`'s JSON-Schema\r\n * via the `definition` \"NodeLabel\".\r\n */\r\n export interface NodeLabel {\r\n width?: number;\r\n height?: number;\r\n x?: number;\r\n y?: number;\r\n }\r\n /**\r\n * The object containing configurations specific for c4 diagrams\r\n *\r\n * This interface was referenced by `MermaidConfig`'s JSON-Schema\r\n * via the `definition` \"C4DiagramConfig\".\r\n */\r\n export interface C4DiagramConfig extends BaseDiagramConfig {\r\n /**\r\n * Margin to the right and left of the c4 diagram, must be a positive value.\r\n *\r\n */\r\n diagramMarginX?: number;\r\n /**\r\n * Margin to the over and under the c4 diagram, must be a positive value.\r\n *\r\n */\r\n diagramMarginY?: number;\r\n /**\r\n * Margin between shapes\r\n */\r\n c4ShapeMargin?: number;\r\n /**\r\n * Padding between shapes\r\n */\r\n c4ShapePadding?: number;\r\n /**\r\n * Width of person boxes\r\n */\r\n width?: number;\r\n /**\r\n * Height of person boxes\r\n */\r\n height?: number;\r\n /**\r\n * Margin around boxes\r\n */\r\n boxMargin?: number;\r\n /**\r\n * How many shapes to place in each row.\r\n */\r\n c4ShapeInRow?: number;\r\n nextLinePaddingX?: number;\r\n /**\r\n * How many boundaries to place in each row.\r\n */\r\n c4BoundaryInRow?: number;\r\n /**\r\n * This sets the font size of Person shape for the diagram\r\n */\r\n personFontSize?: string | number;\r\n /**\r\n * This sets the font weight of Person shape for the diagram\r\n */\r\n personFontFamily?: string;\r\n /**\r\n * This sets the font weight of Person shape for the diagram\r\n */\r\n personFontWeight?: string | number;\r\n /**\r\n * This sets the font size of External Person shape for the diagram\r\n */\r\n external_personFontSize?: string | number;\r\n /**\r\n * This sets the font family of External Person shape for the diagram\r\n */\r\n external_personFontFamily?: string;\r\n /**\r\n * This sets the font weight of External Person shape for the diagram\r\n */\r\n external_personFontWeight?: string | number;\r\n /**\r\n * This sets the font size of System shape for the diagram\r\n */\r\n systemFontSize?: string | number;\r\n /**\r\n * This sets the font family of System shape for the diagram\r\n */\r\n systemFontFamily?: string;\r\n /**\r\n * This sets the font weight of System shape for the diagram\r\n */\r\n systemFontWeight?: string | number;\r\n /**\r\n * This sets the font size of External System shape for the diagram\r\n */\r\n external_systemFontSize?: string | number;\r\n /**\r\n * This sets the font family of External System shape for the diagram\r\n */\r\n external_systemFontFamily?: string;\r\n /**\r\n * This sets the font weight of External System shape for the diagram\r\n */\r\n external_systemFontWeight?: string | number;\r\n /**\r\n * This sets the font size of System DB shape for the diagram\r\n */\r\n system_dbFontSize?: string | number;\r\n /**\r\n * This sets the font family of System DB shape for the diagram\r\n */\r\n system_dbFontFamily?: string;\r\n /**\r\n * This sets the font weight of System DB shape for the diagram\r\n */\r\n system_dbFontWeight?: string | number;\r\n /**\r\n * This sets the font size of External System DB shape for the diagram\r\n */\r\n external_system_dbFontSize?: string | number;\r\n /**\r\n * This sets the font family of External System DB shape for the diagram\r\n */\r\n external_system_dbFontFamily?: string;\r\n /**\r\n * This sets the font weight of External System DB shape for the diagram\r\n */\r\n external_system_dbFontWeight?: string | number;\r\n /**\r\n * This sets the font size of System Queue shape for the diagram\r\n */\r\n system_queueFontSize?: string | number;\r\n /**\r\n * This sets the font family of System Queue shape for the diagram\r\n */\r\n system_queueFontFamily?: string;\r\n /**\r\n * This sets the font weight of System Queue shape for the diagram\r\n */\r\n system_queueFontWeight?: string | number;\r\n /**\r\n * This sets the font size of External System Queue shape for the diagram\r\n */\r\n external_system_queueFontSize?: string | number;\r\n /**\r\n * This sets the font family of External System Queue shape for the diagram\r\n */\r\n external_system_queueFontFamily?: string;\r\n /**\r\n * This sets the font weight of External System Queue shape for the diagram\r\n */\r\n external_system_queueFontWeight?: string | number;\r\n /**\r\n * This sets the font size of Boundary shape for the diagram\r\n */\r\n boundaryFontSize?: string | number;\r\n /**\r\n * This sets the font family of Boundary shape for the diagram\r\n */\r\n boundaryFontFamily?: string;\r\n /**\r\n * This sets the font weight of Boundary shape for the diagram\r\n */\r\n boundaryFontWeight?: string | number;\r\n /**\r\n * This sets the font size of Message shape for the diagram\r\n */\r\n messageFontSize?: string | number;\r\n /**\r\n * This sets the font family of Message shape for the diagram\r\n */\r\n messageFontFamily?: string;\r\n /**\r\n * This sets the font weight of Message shape for the diagram\r\n */\r\n messageFontWeight?: string | number;\r\n /**\r\n * This sets the font size of Container shape for the diagram\r\n */\r\n containerFontSize?: string | number;\r\n /**\r\n * This sets the font family of Container shape for the diagram\r\n */\r\n containerFontFamily?: string;\r\n /**\r\n * This sets the font weight of Container shape for the diagram\r\n */\r\n containerFontWeight?: string | number;\r\n /**\r\n * This sets the font size of External Container shape for the diagram\r\n */\r\n external_containerFontSize?: string | number;\r\n /**\r\n * This sets the font family of External Container shape for the diagram\r\n */\r\n external_containerFontFamily?: string;\r\n /**\r\n * This sets the font weight of External Container shape for the diagram\r\n */\r\n external_containerFontWeight?: string | number;\r\n /**\r\n * This sets the font size of Container DB shape for the diagram\r\n */\r\n container_dbFontSize?: string | number;\r\n /**\r\n * This sets the font family of Container DB shape for the diagram\r\n */\r\n container_dbFontFamily?: string;\r\n /**\r\n * This sets the font weight of Container DB shape for the diagram\r\n */\r\n container_dbFontWeight?: string | number;\r\n /**\r\n * This sets the font size of External Container DB shape for the diagram\r\n */\r\n external_container_dbFontSize?: string | number;\r\n /**\r\n * This sets the font family of External Container DB shape for the diagram\r\n */\r\n external_container_dbFontFamily?: string;\r\n /**\r\n * This sets the font weight of External Container DB shape for the diagram\r\n */\r\n external_container_dbFontWeight?: string | number;\r\n /**\r\n * This sets the font size of Container Queue shape for the diagram\r\n */\r\n container_queueFontSize?: string | number;\r\n /**\r\n * This sets the font family of Container Queue shape for the diagram\r\n */\r\n container_queueFontFamily?: string;\r\n /**\r\n * This sets the font weight of Container Queue shape for the diagram\r\n */\r\n container_queueFontWeight?: string | number;\r\n /**\r\n * This sets the font size of External Container Queue shape for the diagram\r\n */\r\n external_container_queueFontSize?: string | number;\r\n /**\r\n * This sets the font family of External Container Queue shape for the diagram\r\n */\r\n external_container_queueFontFamily?: string;\r\n /**\r\n * This sets the font weight of External Container Queue shape for the diagram\r\n */\r\n external_container_queueFontWeight?: string | number;\r\n /**\r\n * This sets the font size of Component shape for the diagram\r\n */\r\n componentFontSize?: string | number;\r\n /**\r\n * This sets the font family of Component shape for the diagram\r\n */\r\n componentFontFamily?: string;\r\n /**\r\n * This sets the font weight of Component shape for the diagram\r\n */\r\n componentFontWeight?: string | number;\r\n /**\r\n * This sets the font size of External Component shape for the diagram\r\n */\r\n external_componentFontSize?: string | number;\r\n /**\r\n * This sets the font family of External Component shape for the diagram\r\n */\r\n external_componentFontFamily?: string;\r\n /**\r\n * This sets the font weight of External Component shape for the diagram\r\n */\r\n external_componentFontWeight?: string | number;\r\n /**\r\n * This sets the font size of Component DB shape for the diagram\r\n */\r\n component_dbFontSize?: string | number;\r\n /**\r\n * This sets the font family of Component DB shape for the diagram\r\n */\r\n component_dbFontFamily?: string;\r\n /**\r\n * This sets the font weight of Component DB shape for the diagram\r\n */\r\n component_dbFontWeight?: string | number;\r\n /**\r\n * This sets the font size of External