mirror of
https://github.com/mermaid-js/mermaid.git
synced 2025-09-19 07:19:41 +02:00
diagramStates should not be global; pass it into functions; minor comment fixes
This commit is contained in:

parent
13f3008f82
commit
fcec9adbcd
@@ -58,7 +58,6 @@ const G_EDGE_LABELTYPE = 'text';
|
|||||||
const G_EDGE_THICKNESS = 'normal';
|
const G_EDGE_THICKNESS = 'normal';
|
||||||
|
|
||||||
// --------------------------------------
|
// --------------------------------------
|
||||||
let diagramStates = [];
|
|
||||||
// List of nodes created from the parsed diagram statement items
|
// List of nodes created from the parsed diagram statement items
|
||||||
let nodeDb = {};
|
let nodeDb = {};
|
||||||
|
|
||||||
@@ -91,7 +90,6 @@ export const getClasses = function (text, diagramObj) {
|
|||||||
diagramObj.parser.parse(text);
|
diagramObj.parser.parse(text);
|
||||||
// must run extract() to turn the parsed statements into states, relationships, classes, etc.
|
// must run extract() to turn the parsed statements into states, relationships, classes, etc.
|
||||||
diagramObj.db.extract(diagramObj.db.getRootDocV2());
|
diagramObj.db.extract(diagramObj.db.getRootDocV2());
|
||||||
|
|
||||||
return diagramObj.db.getClasses();
|
return diagramObj.db.getClasses();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
return e;
|
return e;
|
||||||
@@ -99,7 +97,7 @@ export const getClasses = function (text, diagramObj) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get classes from the db info item.
|
* Get classes from the db for the info item.
|
||||||
* If there aren't any or if dbInfoItem isn't defined, return an empty string.
|
* If there aren't any or if dbInfoItem isn't defined, return an empty string.
|
||||||
* Else create 1 string from the list of classes found
|
* Else create 1 string from the list of classes found
|
||||||
*
|
*
|
||||||
@@ -124,7 +122,7 @@ function getClassesFromDbInfo(dbInfoItem) {
|
|||||||
*
|
*
|
||||||
* @param itemId
|
* @param itemId
|
||||||
* @param counter
|
* @param counter
|
||||||
* @param type
|
* @param {string | null} type
|
||||||
* @param typeSpacer
|
* @param typeSpacer
|
||||||
* @returns {string}
|
* @returns {string}
|
||||||
*/
|
*/
|
||||||
@@ -139,10 +137,11 @@ export function stateDomId(itemId = '', counter = 0, type = '', typeSpacer = DOM
|
|||||||
* @param g - graph
|
* @param g - graph
|
||||||
* @param {object} parent
|
* @param {object} parent
|
||||||
* @param {object} parsedItem - parsed statement item
|
* @param {object} parsedItem - parsed statement item
|
||||||
|
* @param {object[]} diagramStates - the list of all known states for the diagram
|
||||||
* @param {object} diagramDb
|
* @param {object} diagramDb
|
||||||
* @param {boolean} altFlag - for clusters, add the "statediagram-cluster-alt" CSS class
|
* @param {boolean} altFlag - for clusters, add the "statediagram-cluster-alt" CSS class
|
||||||
*/
|
*/
|
||||||
const setupNode = (g, parent, parsedItem, diagramDb, altFlag) => {
|
const setupNode = (g, parent, parsedItem, diagramStates, diagramDb, altFlag) => {
|
||||||
const itemId = parsedItem.id;
|
const itemId = parsedItem.id;
|
||||||
const classStr = getClassesFromDbInfo(diagramStates[itemId]);
|
const classStr = getClassesFromDbInfo(diagramStates[itemId]);
|
||||||
|
|
||||||
@@ -299,7 +298,7 @@ const setupNode = (g, parent, parsedItem, diagramDb, altFlag) => {
|
|||||||
}
|
}
|
||||||
if (parsedItem.doc) {
|
if (parsedItem.doc) {
|
||||||
log.trace('Adding nodes children ');
|
log.trace('Adding nodes children ');
|
||||||
setupDoc(g, parsedItem, parsedItem.doc, diagramDb, !altFlag);
|
setupDoc(g, parsedItem, parsedItem.doc, diagramStates, diagramDb, !altFlag);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -310,25 +309,26 @@ const setupNode = (g, parent, parsedItem, diagramDb, altFlag) => {
|
|||||||
* @param g
|
* @param g
|
||||||
* @param parentParsedItem - parsed Item that is the parent of this document (doc)
|
* @param parentParsedItem - parsed Item that is the parent of this document (doc)
|
||||||
* @param doc - the document to set up
|
* @param doc - the document to set up
|
||||||
|
* @param {object} diagramStates - the list of all known states for the diagram
|
||||||
* @param diagramDb
|
* @param diagramDb
|
||||||
* @param altFlag
|
* @param {boolean} altFlag
|
||||||
* @todo This duplicates some of what is done in stateDb.js extract method
|
* @todo This duplicates some of what is done in stateDb.js extract method
|
||||||
*/
|
*/
|
||||||
const setupDoc = (g, parentParsedItem, doc, diagramDb, altFlag) => {
|
const setupDoc = (g, parentParsedItem, doc, diagramStates, diagramDb, altFlag) => {
|
||||||
// graphItemCount = 0;
|
// graphItemCount = 0;
|
||||||
log.trace('items', doc);
|
log.trace('items', doc);
|
||||||
doc.forEach((item) => {
|
doc.forEach((item) => {
|
||||||
switch (item.stmt) {
|
switch (item.stmt) {
|
||||||
case STMT_STATE:
|
case STMT_STATE:
|
||||||
setupNode(g, parentParsedItem, item, diagramDb, altFlag);
|
setupNode(g, parentParsedItem, item, diagramStates, diagramDb, altFlag);
|
||||||
break;
|
break;
|
||||||
case DEFAULT_STATE_TYPE:
|
case DEFAULT_STATE_TYPE:
|
||||||
setupNode(g, parentParsedItem, item, diagramDb, altFlag);
|
setupNode(g, parentParsedItem, item, diagramStates, diagramDb, altFlag);
|
||||||
break;
|
break;
|
||||||
case STMT_RELATION:
|
case STMT_RELATION:
|
||||||
{
|
{
|
||||||
setupNode(g, parentParsedItem, item.state1, diagramDb, altFlag);
|
setupNode(g, parentParsedItem, item.state1, diagramStates, diagramDb, altFlag);
|
||||||
setupNode(g, parentParsedItem, item.state2, diagramDb, altFlag);
|
setupNode(g, parentParsedItem, item.state2, diagramStates, diagramDb, altFlag);
|
||||||
const edgeData = {
|
const edgeData = {
|
||||||
id: 'edge' + graphItemCount,
|
id: 'edge' + graphItemCount,
|
||||||
arrowhead: 'normal',
|
arrowhead: 'normal',
|
||||||
@@ -417,7 +417,7 @@ export const draw = function (text, id, _version, diag) {
|
|||||||
return {};
|
return {};
|
||||||
});
|
});
|
||||||
|
|
||||||
setupNode(g, undefined, diag.db.getRootDocV2(), diag.db, true);
|
setupNode(g, undefined, diag.db.getRootDocV2(), diagramStates, diag.db, true);
|
||||||
|
|
||||||
// Set up an SVG group so that we can translate the final graph.
|
// Set up an SVG group so that we can translate the final graph.
|
||||||
let sandboxElement;
|
let sandboxElement;
|
||||||
|
Reference in New Issue
Block a user