refactor: Move setWrap to individual diagrams as necessary.

This commit is contained in:
Sidharth Vinod
2023-08-26 23:27:25 +05:30
parent 04ce5d6a9a
commit 066e0967de
4 changed files with 16 additions and 15 deletions

View File

@@ -47,13 +47,10 @@ export class Diagram {
this.db.clear?.(); this.db.clear?.();
const config = configApi.getConfig(); const config = configApi.getConfig();
this.init?.(config); this.init?.(config);
// These 2 blocks were added for legacy compatibility. Do not add more such blocks. Use frontmatter instead. // This block was added for legacy compatibility. Use frontmatter instead of adding more special cases.
if (this.metadata.title) { if (this.metadata.title) {
this.db.setDiagramTitle?.(this.metadata.title); this.db.setDiagramTitle?.(this.metadata.title);
} }
if (config.wrap) {
this.db.setWrap?.(config.wrap);
}
this.parser.parse(this.text); this.parser.parse(this.text);
} }

View File

@@ -1,3 +1,4 @@
/* eslint-disable @typescript-eslint/no-explicit-any */
import type { Diagram } from '../Diagram.js'; import type { Diagram } from '../Diagram.js';
import type { BaseDiagramConfig, MermaidConfig } from '../config.type.js'; import type { BaseDiagramConfig, MermaidConfig } from '../config.type.js';
import type * as d3 from 'd3'; import type * as d3 from 'd3';
@@ -29,7 +30,6 @@ export interface DiagramDB {
getAccDescription?: () => string; getAccDescription?: () => string;
setDisplayMode?: (title: string) => void; setDisplayMode?: (title: string) => void;
setWrap?: (wrap: boolean) => void;
bindFunctions?: (element: Element) => void; bindFunctions?: (element: Element) => void;
} }

View File

@@ -1,17 +1,18 @@
// @ts-ignore: JISON doesn't support types // @ts-ignore: JISON doesn't support types
import c4Parser from './parser/c4Diagram.jison'; import parser from './parser/c4Diagram.jison';
import c4Db from './c4Db.js'; import db from './c4Db.js';
import c4Renderer from './c4Renderer.js'; import renderer from './c4Renderer.js';
import c4Styles from './styles.js'; import styles from './styles.js';
import type { MermaidConfig } from '../../config.type.js'; import type { MermaidConfig } from '../../config.type.js';
import type { DiagramDefinition } from '../../diagram-api/types.js'; import type { DiagramDefinition } from '../../diagram-api/types.js';
export const diagram: DiagramDefinition = { export const diagram: DiagramDefinition = {
parser: c4Parser, parser,
db: c4Db, db,
renderer: c4Renderer, renderer,
styles: c4Styles, styles,
init: (cnf: MermaidConfig) => { init: ({ c4, wrap }: MermaidConfig) => {
c4Renderer.setConf(cnf.c4); renderer.setConf(c4);
db.setWrap(wrap);
}, },
}; };

View File

@@ -10,4 +10,7 @@ export const diagram: DiagramDefinition = {
db, db,
renderer, renderer,
styles, styles,
init: ({ wrap }) => {
db.setWrap(wrap);
},
}; };