Files

8 lines
183 KiB
Plaintext
Raw Permalink Normal View History

2025-11-23 14:59:17 -08:00
{
"version": 3,
"sources": ["../../../src/diagrams/flowchart/flowDb.ts", "../../../src/diagrams/flowchart/flowRenderer-v3-unified.ts", "../../../src/diagrams/flowchart/parser/flow.jison", "../../../src/diagrams/flowchart/parser/flowParser.ts", "../../../src/diagrams/flowchart/styles.ts", "../../../src/diagrams/flowchart/flowDiagram.ts"],
"sourcesContent": ["import { select } from 'd3';\nimport * as yaml from 'js-yaml';\nimport { getConfig, defaultConfig } from '../../diagram-api/diagramAPI.js';\nimport type { DiagramDB } from '../../diagram-api/types.js';\nimport { log } from '../../logger.js';\nimport { isValidShape, type ShapeID } from '../../rendering-util/rendering-elements/shapes.js';\nimport type { Edge, Node } from '../../rendering-util/types.js';\nimport type { EdgeMetaData, NodeMetaData } from '../../types.js';\nimport utils, { getEdgeId } from '../../utils.js';\nimport common from '../common/common.js';\nimport {\n setAccTitle,\n getAccTitle,\n getAccDescription,\n setAccDescription,\n clear as commonClear,\n setDiagramTitle,\n getDiagramTitle,\n} from '../common/commonDb.js';\nimport type {\n FlowClass,\n FlowEdge,\n FlowLink,\n FlowSubGraph,\n FlowText,\n FlowVertex,\n FlowVertexTypeParam,\n} from './types.js';\n\ninterface LinkData {\n id: string;\n}\n\nconst MERMAID_DOM_ID_PREFIX = 'flowchart-';\n\n// We are using arrow functions assigned to class instance fields instead of methods as they are required by flow JISON\nexport class FlowDB implements DiagramDB {\n private vertexCounter = 0;\n private config = getConfig();\n private vertices = new Map<string, FlowVertex>();\n private edges: FlowEdge[] & { defaultInterpolate?: string; defaultStyle?: string[] } = [];\n private classes = new Map<string, FlowClass>();\n private subGraphs: FlowSubGraph[] = [];\n private subGraphLookup = new Map<string, FlowSubGraph>();\n private tooltips = new Map<string, string>();\n private subCount = 0;\n private firstGraphFlag = true;\n private direction: string | undefined;\n private version: string | undefined; // As in graph\n private secCount = -1;\n private posCrossRef: number[] = [];\n\n // Functions to be run after graph rendering\n private funs: ((element: Element) => void)[] = []; // cspell:ignore funs\n\n constructor() {\n this.funs.push(this.setupToolTips.bind(this));\n\n // Needed for JISON since it only supports direct properties\n this.addVertex = this.addVertex.bind(this);\n this.firstGraph = this.firstGraph.bind(this);\n this.setDirection = this.setDirection.bind(this);\n this.addSubGraph = this.addSubGraph.bind(this);\n this.addLink = this.addLink.bind(this);\n this.setLink = this.setLink.bind(this);\n this.updateLink = this.updateLink.bind(this);\n this.addClass = this.addClass.bind(this);\n this.setClass = this.setClass.bind(this);\n this.destructLink = this.destructLink.bind(this);\n this.setClickEvent = this.setClickEvent.bind(this);\n this.setTooltip = this.setTooltip.bind(this);\n this.updateLinkInterpolate = this.updateLinkInterpolate.bind(this);\n this.setClickFun = this.setClickFun.bind(this);\n this.bindFunctions = this.bindFunctions.bind(this);\n\n this.lex = {\n firstGraph: this.firstGraph.bind(this),\n };\n\n this.clear();\n this.setGen('gen-2');\n }\n\n private sanitizeText(txt: string) {\n return common.sanitizeText(txt, this.config);\n }\n\n /**\n * Function to lookup domId from id in the graph definition.\n *\n * @param id - id of the node\n */\n public lookUpDomId(id: string) {\n for (const vertex of this.vertices.values()) {\n if (vertex.id === id) {\n return vertex.domId;\n }\n }\n return id;\n }\n\n /**\n * Function called by parser when a node definition has been found\n */\n public addVertex(\n id: string,\n textObj: FlowText,\n type: FlowVertexTypeParam,\n style: string[],\n classes: string[],\n dir: string,\n props = {},\n metadata: any\n ) {\n if (!id || id.trim().length === 0) {\n return;\n }\n // Extract the metadata from the shapeData, the syntax for adding metadata for nodes and edges is the same\n // so at this point we don't know if it's a node or an edge, but we can still extract the metadata\n let doc;\n if (metadata !== undefined) {\n let yamlData;\n // detect if shapeData contains a newline character\n
"mappings": "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
"names": ["dir", "nodeList", "o", "parser", "lexer"]
}