{"version":3,"file":"styles-4b120b8d.js","sources":["../src/diagrams/state/parser/stateDiagram.jison","../src/diagrams/state/stateCommon.ts","../src/diagrams/state/stateDb.js","../src/diagrams/state/styles.js"],"sourcesContent":["/** mermaid\n * https://mermaidjs.github.io/\n * (c) 2014-2021 Knut Sveidqvist\n * MIT license.\n *\n * Based on js sequence diagrams jison grammr\n * https://bramp.github.io/js-sequence-diagrams/\n * (c) 2012-2013 Andrew Brampton (bramp.net)\n * Simplified BSD license.\n */\n%lex\n\n%options case-insensitive\n\n// Special states for recognizing aliases\n%x ID\n%x STATE\n%x FORK_STATE\n%x STATE_STRING\n%x STATE_ID\n%x ALIAS\n%x SCALE\n%x acc_title\n%x acc_descr\n%x acc_descr_multiline\n%x CLASSDEF\n%x CLASSDEFID\n%x CLASS\n%x CLASS_STYLE\n%x NOTE\n%x NOTE_ID\n%x NOTE_TEXT\n%x FLOATING_NOTE\n%x FLOATING_NOTE_ID\n%x struct\n%x open_directive\n%x type_directive\n%x arg_directive\n%x close_directive\n\n// A special state for grabbing text up to the first comment/newline\n%x LINE\n\n%%\n\n\"default\" return 'DEFAULT';\n\n.*direction\\s+TB[^\\n]* return 'direction_tb';\n.*direction\\s+BT[^\\n]* return 'direction_bt';\n.*direction\\s+RL[^\\n]* return 'direction_rl';\n.*direction\\s+LR[^\\n]* return 'direction_lr';\n\n\\%\\%\\{ { this.begin('open_directive'); return 'open_directive'; }\n((?:(?!\\}\\%\\%)[^:.])*) { this.begin('type_directive'); return 'type_directive'; }\n\":\" { this.popState(); this.begin('arg_directive'); return ':'; }\n\\}\\%\\% { this.popState(); this.popState(); return 'close_directive'; }\n((?:(?!\\}\\%\\%).|\\n)*) return 'arg_directive';\n\\%\\%(?!\\{)[^\\n]* /* skip comments */\n[^\\}]\\%\\%[^\\n]* /* skip comments */{ /*console.log('Crap after close');*/ }\n\n[\\n]+ return 'NL';\n[\\s]+ /* skip all whitespace */\n((?!\\n)\\s)+ /* skip same-line whitespace */\n\\#[^\\n]* /* skip comments */\n\\%%[^\\n]* /* skip comments */\n\"scale\"\\s+ { this.pushState('SCALE'); /* console.log('Got scale', yytext);*/ return 'scale'; }\n\\d+ return 'WIDTH';\n\\s+\"width\" { this.popState(); }\n\naccTitle\\s*\":\"\\s* { this.begin(\"acc_title\");return 'acc_title'; }\n(?!\\n|;|#)*[^\\n]* { this.popState(); return \"acc_title_value\"; }\naccDescr\\s*\":\"\\s* { this.begin(\"acc_descr\");return 'acc_descr'; }\n(?!\\n|;|#)*[^\\n]* { this.popState(); return \"acc_descr_value\"; }\naccDescr\\s*\"{\"\\s* { this.begin(\"acc_descr_multiline\"); }\n[\\}] { this.popState(); }\n[^\\}]* return \"acc_descr_multiline_value\";\n\n\"classDef\"\\s+ { this.pushState('CLASSDEF'); return 'classDef'; }\nDEFAULT\\s+ { this.popState(); this.pushState('CLASSDEFID'); return 'DEFAULT_CLASSDEF_ID' }\n\\w+\\s+ { this.popState(); this.pushState('CLASSDEFID'); return 'CLASSDEF_ID' }\n[^\\n]* { this.popState(); return 'CLASSDEF_STYLEOPTS' }\n\n\"class\"\\s+ { this.pushState('CLASS'); return 'class'; }\n(\\w+)+((\",\"\\s*\\w+)*) { this.popState(); this.pushState('CLASS_STYLE'); return 'CLASSENTITY_IDS' }\n[^\\n]* { this.popState(); return 'STYLECLASS' }\n\n\"scale\"\\s+ { this.pushState('SCALE'); /* console.log('Got scale', yytext);*/ return 'scale'; }\n\\d+ return 'WIDTH';\n\\s+\"width\" {this.popState();}\n\n\"state\"\\s+ { /* console.log('Starting STATE '); */ this.pushState('STATE'); }\n\n.*\"<>\" {this.popState();yytext=yytext.slice(0,-8).trim(); /*console.warn('Fork Fork: ',yytext);*/return 'FORK';}\n.*\"<>\" {this.popState();yytext=yytext.slice(0,-8).trim();/*console.warn('Fork Join: ',yytext);*/return 'JOIN';}\n.*\"<>\" {this.popState();yytext=yytext.slice(0,-10).trim();/*console.warn('Fork Join: ',yytext);*/return 'CHOICE';}\n.*\"[[fork]]\" {this.popState();yytext=yytext.slice(0,-8).trim();/*console.warn('Fork Fork: ',yytext);*/return 'FORK';}\n.*\"[[join]]\" {this.popState();yytext=yytext.slice(0,-8).trim();/*console.warn('Fork Join: ',yytext);*/return 'JOIN';}\n.*\"[[choice]]\" {this.popState();yytext=yytext.slice(0,-10).trim();/*console.warn('Fork Join: ',yytext);*/return 'CHOICE';}\n\n.*direction\\s+TB[^\\n]* { return 'direction_tb';}\n.*direction\\s+BT[^\\n]* { return 'direction_bt';}\n.*direction\\s+RL[^\\n]* { return 'direction_rl';}\n.*direction\\s+LR[^\\n]* { return 'direction_lr';}\n\n[\"] { /* console.log('Starting STATE_STRING'); */ this.pushState(\"STATE_STRING\"); }\n\\s*\"as\"\\s+ { this.pushState('STATE_ID'); /* console.log('pushState(STATE_ID)'); */ return \"AS\"; }\n[^\\n\\{]* { this.popState(); /* console.log('STATE_ID', yytext); */ return \"ID\"; }\n[\"] { this.popState(); }\n[^\"]* { /* console.log('Long description:', yytext); */ return \"STATE_DESCR\"; }\n[^\\n\\s\\{]+ { /* console.log('COMPOSIT_STATE', yytext); */ return 'COMPOSIT_STATE'; }\n\\n { this.popState(); }\n\\{ { this.popState(); this.pushState('struct'); /* console.log('begin struct', yytext); */ return 'STRUCT_START'; }\n\\%\\%(?!\\{)[^\\n]* /* skip comments inside state*/\n\\} { /*console.log('Ending struct');*/ this.popState(); return 'STRUCT_STOP';} }\n[\\n] /* nothing */\n\n\"note\"\\s+ { this.begin('NOTE'); return 'note'; }\n\"left of\" { this.popState(); this.pushState('NOTE_ID'); return 'left_of'; }\n\"right of\" { this.popState(); this.pushState('NOTE_ID'); return 'right_of'; }\n\\\" { this.popState(); this.pushState('FLOATING_NOTE'); }\n\\s*\"as\"\\s* { this.popState(); this.pushState('FLOATING_NOTE_ID'); return \"AS\"; }\n[\"] /**/\n[^\"]* { /* console.log('Floating note text: ', yytext); */ return \"NOTE_TEXT\"; }\n[^\\n]* { this.popState(); /* console.log('Floating note ID', yytext);*/ return \"ID\"; }\n\\s*[^:\\n\\s\\-]+ { this.popState(); this.pushState('NOTE_TEXT'); /*console.log('Got ID for note', yytext);*/ return 'ID'; }\n\\s*\":\"[^:\\n;]+ { this.popState(); /* console.log('Got NOTE_TEXT for note',yytext);*/yytext = yytext.substr(2).trim(); return 'NOTE_TEXT'; }\n[\\s\\S]*?\"end note\" { this.popState(); /* console.log('Got NOTE_TEXT for note',yytext);*/yytext = yytext.slice(0,-8).trim(); return 'NOTE_TEXT'; }\n\n\"stateDiagram\"\\s+ { /* console.log('Got state diagram', yytext,'#'); */ return 'SD'; }\n\"stateDiagram-v2\"\\s+ { /* console.log('Got state diagram', yytext,'#'); */ return 'SD'; }\n\n\"hide empty description\" { /* console.log('HIDE_EMPTY', yytext,'#'); */ return 'HIDE_EMPTY'; }\n\n\"[*]\" { /* console.log('EDGE_STATE=',yytext); */ return 'EDGE_STATE'; }\n[^:\\n\\s\\-\\{]+ { /* console.log('=>ID=',yytext); */ return 'ID'; }\n// \\s*\":\"[^\\+\\->:\\n;]+ { yytext = yytext.trim(); /* console.log('Descr = ', yytext); */ return 'DESCR'; }\n\\s*\":\"[^:\\n;]+ { yytext = yytext.trim(); /* console.log('Descr = ', yytext); */ return 'DESCR'; }\n\n\"-->\" return '-->';\n\"--\" return 'CONCURRENT';\n\":::\" return 'STYLE_SEPARATOR';\n<> return 'NL';\n. return 'INVALID';\n\n/lex\n\n%left '^'\n\n%start start\n\n%% /* language grammar */\n\n/* $$ is the value of the symbol being evaluated (= what is to the left of the : in the rule */\n\nstart\n\t: SPACE start\n\t| NL start\n\t| directive start\n\t| SD document { /* console.log('--> Root document', $2); */ yy.setRootDoc($2); return $2; }\n\t;\n\ndocument\n\t: /* empty */ { /*console.log('empty document'); */ $$ = [] }\n\t| document line {\n if($2 !='nl'){\n /* console.log(' document: 1: ', $1, ' pushing 2: ', $2); */\n $1.push($2); $$ = $1\n }\n /* console.log('Got document',$1, $2); */\n }\n\t;\n\nline\n\t: SPACE statement { $$ = $2 }\n\t| statement { $$ = $1 }\n\t| NL { $$='nl';}\n\t;\n\nstatement\n\t: classDefStatement\n | cssClassStatement\n\t| idStatement { /* console.log('got id', $1); */\n $$=$1;\n\t }\n\t| idStatement DESCR {\n const stateStmt = $1;\n stateStmt.description = yy.trimColon($2);\n $$ = stateStmt;\n\t }\n\t| idStatement '-->' idStatement\n {\n /* console.info('got ids: 1: ', $1, ' 2:', $2,' 3: ', $3); */\n // console.log(' idStatement --> idStatement : state1 =', $1, ' state2 =', $3);\n $$={ stmt: 'relation', state1: $1, state2: $3};\n }\n\t| idStatement '-->' idStatement DESCR\n {\n const relDescription = yy.trimColon($4);\n /* console.log(' idStatement --> idStatement DESCR : state1 =', $1, ' state2stmt =', $3, ' description: ', relDescription); */\n $$={ stmt: 'relation', state1: $1, state2: $3, description: relDescription};\n }\n | HIDE_EMPTY\n | scale WIDTH\n | COMPOSIT_STATE\n | COMPOSIT_STATE STRUCT_START document STRUCT_STOP\n {\n // console.log('Adding document for state without id ', $1);\n $$={ stmt: 'state', id: $1, type: 'default', description: '', doc: $3 }\n }\n | STATE_DESCR AS ID {\n var id=$3;\n var description = $1.trim();\n if($3.match(':')){\n var parts = $3.split(':');\n id=parts[0];\n description = [description, parts[1]];\n }\n $$={stmt: 'state', id: id, type: 'default', description: description};\n\n }\n | STATE_DESCR AS ID STRUCT_START document STRUCT_STOP\n {\n // console.log('state with id ', $3,' document = ', $5, );\n $$={ stmt: 'state', id: $3, type: 'default', description: $1, doc: $5 }\n }\n | FORK {\n $$={ stmt: 'state', id: $1, type: 'fork' }\n }\n | JOIN {\n $$={ stmt: 'state', id: $1, type: 'join' }\n }\n | CHOICE {\n $$={ stmt: 'state', id: $1, type: 'choice' }\n }\n | CONCURRENT {\n $$={ stmt: 'state', id: yy.getDividerId(), type: 'divider' }\n }\n | note notePosition ID NOTE_TEXT\n {\n /* console.warn('got NOTE, position: ', $2.trim(), 'id = ', $3.trim(), 'note: ', $4);*/\n $$={ stmt: 'state', id: $3.trim(), note:{position: $2.trim(), text: $4.trim()}};\n }\n | note NOTE_TEXT AS ID\n \t| directive\n | direction\n | acc_title acc_title_value { $$=$2.trim();yy.setAccTitle($$); }\n | acc_descr acc_descr_value { $$=$2.trim();yy.setAccDescription($$); }\n | acc_descr_multiline_value { $$=$1.trim();yy.setAccDescription($$); } ;\n\n\nclassDefStatement\n : classDef CLASSDEF_ID CLASSDEF_STYLEOPTS {\n $$ = { stmt: 'classDef', id: $2.trim(), classes: $3.trim() };\n }\n | classDef DEFAULT CLASSDEF_STYLEOPTS {\n $$ = { stmt: 'classDef', id: $2.trim(), classes: $3.trim() };\n }\n ;\n\ncssClassStatement\n : class CLASSENTITY_IDS STYLECLASS {\n //console.log('apply class: id(s): ',$2, ' style class: ', $3);\n $$={ stmt: 'applyClass', id: $2.trim(), styleClass: $3.trim() };\n }\n ;\n\ndirective\n : openDirective typeDirective closeDirective\n | openDirective typeDirective ':' argDirective closeDirective\n ;\ndirection\n : direction_tb\n { yy.setDirection('TB');$$={stmt:'dir', value:'TB'};}\n | direction_bt\n { yy.setDirection('BT');$$={stmt:'dir', value:'BT'};}\n | direction_rl\n { yy.setDirection('RL'); $$={stmt:'dir', value:'RL'};}\n | direction_lr\n { yy.setDirection('LR');$$={stmt:'dir', value:'LR'};}\n ;\n\neol\n : NL\n | ';'\n ;\n\nidStatement\n : ID\n { /* console.log('idStatement id: ', $1); */\n $$={ stmt: 'state', id: $1.trim(), type: 'default', description: '' };\n }\n | EDGE_STATE\n { /* console.log('idStatement id: ', $1); */\n $$={ stmt: 'state', id: $1.trim(), type: 'default', description: '' };\n }\n | ID STYLE_SEPARATOR ID\n { /*console.log('idStatement ID STYLE_SEPARATOR ID'); */\n $$={ stmt: 'state', id: $1.trim(), classes: [$3.trim()], type: 'default', description: '' };\n }\n | EDGE_STATE STYLE_SEPARATOR ID\n { /*console.log('idStatement EDGE_STATE STYLE_SEPARATOR ID'); */\n $$={ stmt: 'state', id: $1.trim(), classes: [$3.trim()], type: 'default', description: '' };\n }\n ;\n\nnotePosition\n : left_of\n | right_of\n ;\n\nopenDirective\n : open_directive { yy.parseDirective('%%{', 'open_directive'); }\n ;\n\ntypeDirective\n : type_directive { yy.parseDirective($1, 'type_directive'); }\n ;\n\nargDirective\n : arg_directive { $1 = $1.trim().replace(/'/g, '\"'); yy.parseDirective($1, 'arg_directive'); }\n ;\n\ncloseDirective\n : close_directive { yy.parseDirective('}%%', 'close_directive', 'state'); }\n ;\n\n%%\n","/**\n * Constants common to all State Diagram code\n */\n\n// default diagram direction\nexport const DEFAULT_DIAGRAM_DIRECTION = 'LR';\n\n// default direction for any nested documents (composites)\nexport const DEFAULT_NESTED_DOC_DIR = 'TB';\n\n// parsed statement type for a state\nexport const STMT_STATE = 'state';\n// parsed statement type for a relation\nexport const STMT_RELATION = 'relation';\n// parsed statement type for a classDef\nexport const STMT_CLASSDEF = 'classDef';\n// parsed statement type for applyClass\nexport const STMT_APPLYCLASS = 'applyClass';\n\nexport const DEFAULT_STATE_TYPE = 'default';\nexport const DIVIDER_TYPE = 'divider';\n\nexport default {\n DEFAULT_DIAGRAM_DIRECTION,\n DEFAULT_NESTED_DOC_DIR,\n STMT_STATE,\n STMT_RELATION,\n STMT_CLASSDEF,\n STMT_APPLYCLASS,\n DEFAULT_STATE_TYPE,\n DIVIDER_TYPE,\n};\n","import { log } from '../../logger';\nimport { generateId } from '../../utils';\nimport mermaidAPI from '../../mermaidAPI';\nimport common from '../common/common';\nimport * as configApi from '../../config';\nimport {\n setAccTitle,\n getAccTitle,\n getAccDescription,\n setAccDescription,\n clear as commonClear,\n setDiagramTitle,\n getDiagramTitle,\n} from '../../commonDb';\n\nimport {\n DEFAULT_DIAGRAM_DIRECTION,\n STMT_STATE,\n STMT_RELATION,\n STMT_CLASSDEF,\n STMT_APPLYCLASS,\n DEFAULT_STATE_TYPE,\n DIVIDER_TYPE,\n} from './stateCommon';\n\nconst START_NODE = '[*]';\nconst START_TYPE = 'start';\nconst END_NODE = START_NODE;\nconst END_TYPE = 'end';\n\nconst COLOR_KEYWORD = 'color';\nconst FILL_KEYWORD = 'fill';\nconst BG_FILL = 'bgFill';\nconst STYLECLASS_SEP = ',';\n\n/**\n * Returns a new list of classes.\n * In the future, this can be replaced with a class common to all diagrams.\n * ClassDef information = { id: id, styles: [], textStyles: [] }\n *\n * @returns {{}}\n */\nfunction newClassesList() {\n return {};\n}\n\nlet direction = DEFAULT_DIAGRAM_DIRECTION;\nlet rootDoc = [];\nlet classes = newClassesList(); // style classes defined by a classDef\n\nconst newDoc = () => {\n return {\n relations: [],\n states: {},\n documents: {},\n };\n};\nlet documents = {\n root: newDoc(),\n};\n\nlet currentDocument = documents.root;\nlet startEndCount = 0;\nlet dividerCnt = 0;\n\nexport const lineType = {\n LINE: 0,\n DOTTED_LINE: 1,\n};\n\nexport const relationType = {\n AGGREGATION: 0,\n EXTENSION: 1,\n COMPOSITION: 2,\n DEPENDENCY: 3,\n};\n\nconst clone = (o) => JSON.parse(JSON.stringify(o));\n\nexport const parseDirective = function (statement, context, type) {\n mermaidAPI.parseDirective(this, statement, context, type);\n};\n\nconst setRootDoc = (o) => {\n log.info('Setting root doc', o);\n // rootDoc = { id: 'root', doc: o };\n rootDoc = o;\n};\n\nconst getRootDoc = () => rootDoc;\n\nconst docTranslator = (parent, node, first) => {\n if (node.stmt === STMT_RELATION) {\n docTranslator(parent, node.state1, true);\n docTranslator(parent, node.state2, false);\n } else {\n if (node.stmt === STMT_STATE) {\n if (node.id === '[*]') {\n node.id = first ? parent.id + '_start' : parent.id + '_end';\n node.start = first;\n } else {\n // This is just a plain state, not a start or end\n node.id = node.id.trim();\n }\n }\n\n if (node.doc) {\n const doc = [];\n // Check for concurrency\n let currentDoc = [];\n let i;\n for (i = 0; i < node.doc.length; i++) {\n if (node.doc[i].type === DIVIDER_TYPE) {\n // debugger;\n const newNode = clone(node.doc[i]);\n newNode.doc = clone(currentDoc);\n doc.push(newNode);\n currentDoc = [];\n } else {\n currentDoc.push(node.doc[i]);\n }\n }\n\n // If any divider was encountered\n if (doc.length > 0 && currentDoc.length > 0) {\n const newNode = {\n stmt: STMT_STATE,\n id: generateId(),\n type: 'divider',\n doc: clone(currentDoc),\n };\n doc.push(clone(newNode));\n node.doc = doc;\n }\n\n node.doc.forEach((docNode) => docTranslator(node, docNode, true));\n }\n }\n};\nconst getRootDocV2 = () => {\n docTranslator({ id: 'root' }, { id: 'root', doc: rootDoc }, true);\n return { id: 'root', doc: rootDoc };\n // Here\n};\n\n/**\n * Convert all of the statements (stmts) that were parsed into states and relationships.\n * This is done because a state diagram may have nested sections,\n * where each section is a 'document' and has its own set of statements.\n * Ex: the section within a fork has its own statements, and incoming and outgoing statements\n * refer to the fork as a whole (document).\n * See the parser grammar: the definition of a document is a document then a 'line', where a line can be a statement.\n * This will push the statement into the the list of statements for the current document.\n *\n * @param _doc\n */\nconst extract = (_doc) => {\n // const res = { states: [], relations: [] };\n let doc;\n if (_doc.doc) {\n doc = _doc.doc;\n } else {\n doc = _doc;\n }\n // let doc = root.doc;\n // if (!doc) {\n // doc = root;\n // }\n log.info(doc);\n clear(true);\n\n log.info('Extract', doc);\n\n doc.forEach((item) => {\n switch (item.stmt) {\n case STMT_STATE:\n addState(\n item.id.trim(),\n item.type,\n item.doc,\n item.description,\n item.note,\n item.classes,\n item.styles,\n item.textStyles\n );\n break;\n case STMT_RELATION:\n addRelation(item.state1, item.state2, item.description);\n break;\n case STMT_CLASSDEF:\n addStyleClass(item.id.trim(), item.classes);\n break;\n case STMT_APPLYCLASS:\n setCssClass(item.id.trim(), item.styleClass);\n break;\n }\n });\n};\n\n/**\n * Function called by parser when a node definition has been found.\n *\n * @param {null | string} id\n * @param {null | string} type\n * @param {null | string} doc\n * @param {null | string | string[]} descr - description for the state. Can be a string or a list or strings\n * @param {null | string} note\n * @param {null | string | string[]} classes - class styles to apply to this state. Can be a string (1 style) or an array of styles. If it's just 1 class, convert it to an array of that 1 class.\n * @param {null | string | string[]} styles - styles to apply to this state. Can be a string (1 style) or an array of styles. If it's just 1 style, convert it to an array of that 1 style.\n * @param {null | string | string[]} textStyles - text styles to apply to this state. Can be a string (1 text test) or an array of text styles. If it's just 1 text style, convert it to an array of that 1 text style.\n */\nexport const addState = function (\n id,\n type = DEFAULT_STATE_TYPE,\n doc = null,\n descr = null,\n note = null,\n classes = null,\n styles = null,\n textStyles = null\n) {\n const trimmedId = id?.trim();\n // add the state if needed\n if (currentDocument.states[trimmedId] === undefined) {\n log.info('Adding state ', trimmedId, descr);\n currentDocument.states[trimmedId] = {\n id: trimmedId,\n descriptions: [],\n type,\n doc,\n note,\n classes: [],\n styles: [],\n textStyles: [],\n };\n } else {\n if (!currentDocument.states[trimmedId].doc) {\n currentDocument.states[trimmedId].doc = doc;\n }\n if (!currentDocument.states[trimmedId].type) {\n currentDocument.states[trimmedId].type = type;\n }\n }\n\n if (descr) {\n log.info('Setting state description', trimmedId, descr);\n if (typeof descr === 'string') {\n addDescription(trimmedId, descr.trim());\n }\n\n if (typeof descr === 'object') {\n descr.forEach((des) => addDescription(trimmedId, des.trim()));\n }\n }\n\n if (note) {\n currentDocument.states[trimmedId].note = note;\n currentDocument.states[trimmedId].note.text = common.sanitizeText(\n currentDocument.states[trimmedId].note.text,\n configApi.getConfig()\n );\n }\n\n if (classes) {\n log.info('Setting state classes', trimmedId, classes);\n const classesList = typeof classes === 'string' ? [classes] : classes;\n classesList.forEach((klass) => setCssClass(trimmedId, klass.trim()));\n }\n\n if (styles) {\n log.info('Setting state styles', trimmedId, styles);\n const stylesList = typeof styles === 'string' ? [styles] : styles;\n stylesList.forEach((style) => setStyle(trimmedId, style.trim()));\n }\n\n if (textStyles) {\n log.info('Setting state styles', trimmedId, styles);\n const textStylesList = typeof textStyles === 'string' ? [textStyles] : textStyles;\n textStylesList.forEach((textStyle) => setTextStyle(trimmedId, textStyle.trim()));\n }\n};\n\nexport const clear = function (saveCommon) {\n documents = {\n root: newDoc(),\n };\n currentDocument = documents.root;\n\n // number of start and end nodes; used to construct ids\n startEndCount = 0;\n classes = newClassesList();\n if (!saveCommon) {\n commonClear();\n }\n};\n\nexport const getState = function (id) {\n return currentDocument.states[id];\n};\n\nexport const getStates = function () {\n return currentDocument.states;\n};\nexport const logDocuments = function () {\n log.info('Documents = ', documents);\n};\nexport const getRelations = function () {\n return currentDocument.relations;\n};\n\n/**\n * If the id is a start node ( [*] ), then return a new id constructed from\n * the start node name and the current start node count.\n * else return the given id\n *\n * @param {string} id\n * @returns {string} - the id (original or constructed)\n */\nfunction startIdIfNeeded(id = '') {\n let fixedId = id;\n if (id === START_NODE) {\n startEndCount++;\n fixedId = `${START_TYPE}${startEndCount}`;\n }\n return fixedId;\n}\n\n/**\n * If the id is a start node ( [*] ), then return the start type ('start')\n * else return the given type\n *\n * @param {string} id\n * @param {string} type\n * @returns {string} - the type that should be used\n */\nfunction startTypeIfNeeded(id = '', type = DEFAULT_STATE_TYPE) {\n return id === START_NODE ? START_TYPE : type;\n}\n\n/**\n * If the id is an end node ( [*] ), then return a new id constructed from\n * the end node name and the current start_end node count.\n * else return the given id\n *\n * @param {string} id\n * @returns {string} - the id (original or constructed)\n */\nfunction endIdIfNeeded(id = '') {\n let fixedId = id;\n if (id === END_NODE) {\n startEndCount++;\n fixedId = `${END_TYPE}${startEndCount}`;\n }\n return fixedId;\n}\n\n/**\n * If the id is an end node ( [*] ), then return the end type\n * else return the given type\n *\n * @param {string} id\n * @param {string} type\n * @returns {string} - the type that should be used\n */\nfunction endTypeIfNeeded(id = '', type = DEFAULT_STATE_TYPE) {\n return id === END_NODE ? END_TYPE : type;\n}\n\n/**\n *\n * @param item1\n * @param item2\n * @param relationTitle\n */\nexport function addRelationObjs(item1, item2, relationTitle) {\n let id1 = startIdIfNeeded(item1.id.trim());\n let type1 = startTypeIfNeeded(item1.id.trim(), item1.type);\n let id2 = startIdIfNeeded(item2.id.trim());\n let type2 = startTypeIfNeeded(item2.id.trim(), item2.type);\n\n addState(\n id1,\n type1,\n item1.doc,\n item1.description,\n item1.note,\n item1.classes,\n item1.styles,\n item1.textStyles\n );\n addState(\n id2,\n type2,\n item2.doc,\n item2.description,\n item2.note,\n item2.classes,\n item2.styles,\n item2.textStyles\n );\n\n currentDocument.relations.push({\n id1,\n id2,\n relationTitle: common.sanitizeText(relationTitle, configApi.getConfig()),\n });\n}\n\n/**\n * Add a relation between two items. The items may be full objects or just the string id of a state.\n *\n * @param {string | object} item1\n * @param {string | object} item2\n * @param {string} title\n */\nexport const addRelation = function (item1, item2, title) {\n if (typeof item1 === 'object') {\n addRelationObjs(item1, item2, title);\n } else {\n const id1 = startIdIfNeeded(item1.trim());\n const type1 = startTypeIfNeeded(item1);\n const id2 = endIdIfNeeded(item2.trim());\n const type2 = endTypeIfNeeded(item2);\n\n addState(id1, type1);\n addState(id2, type2);\n currentDocument.relations.push({\n id1,\n id2,\n title: common.sanitizeText(title, configApi.getConfig()),\n });\n }\n};\n\nexport const addDescription = function (id, descr) {\n const theState = currentDocument.states[id];\n const _descr = descr.startsWith(':') ? descr.replace(':', '').trim() : descr;\n theState.descriptions.push(common.sanitizeText(_descr, configApi.getConfig()));\n};\n\nexport const cleanupLabel = function (label) {\n if (label.substring(0, 1) === ':') {\n return label.substr(2).trim();\n } else {\n return label.trim();\n }\n};\n\nconst getDividerId = () => {\n dividerCnt++;\n return 'divider-id-' + dividerCnt;\n};\n\n/**\n * Called when the parser comes across a (style) class definition\n * @example classDef my-style fill:#f96;\n *\n * @param {string} id - the id of this (style) class\n * @param {string | null} styleAttributes - the string with 1 or more style attributes (each separated by a comma)\n */\nexport const addStyleClass = function (id, styleAttributes = '') {\n // create a new style class object with this id\n if (classes[id] === undefined) {\n classes[id] = { id: id, styles: [], textStyles: [] }; // This is a classDef\n }\n const foundClass = classes[id];\n if (styleAttributes !== undefined && styleAttributes !== null) {\n styleAttributes.split(STYLECLASS_SEP).forEach((attrib) => {\n // remove any trailing ;\n const fixedAttrib = attrib.replace(/([^;]*);/, '$1').trim();\n\n // replace some style keywords\n if (attrib.match(COLOR_KEYWORD)) {\n const newStyle1 = fixedAttrib.replace(FILL_KEYWORD, BG_FILL);\n const newStyle2 = newStyle1.replace(COLOR_KEYWORD, FILL_KEYWORD);\n foundClass.textStyles.push(newStyle2);\n }\n foundClass.styles.push(fixedAttrib);\n });\n }\n};\n\n/**\n * Return all of the style classes\n * @returns {{} | any | classes}\n */\nexport const getClasses = function () {\n return classes;\n};\n\n/**\n * Add a (style) class or css class to a state with the given id.\n * If the state isn't already in the list of known states, add it.\n * Might be called by parser when a style class or CSS class should be applied to a state\n *\n * @param {string | string[]} itemIds The id or a list of ids of the item(s) to apply the css class to\n * @param {string} cssClassName CSS class name\n */\nexport const setCssClass = function (itemIds, cssClassName) {\n itemIds.split(',').forEach(function (id) {\n let foundState = getState(id);\n if (foundState === undefined) {\n const trimmedId = id.trim();\n addState(trimmedId);\n foundState = getState(trimmedId);\n }\n foundState.classes.push(cssClassName);\n });\n};\n\n/**\n * Add a style to a state with the given id.\n * @example style stateId fill:#f9f,stroke:#333,stroke-width:4px\n * where 'style' is the keyword\n * stateId is the id of a state\n * the rest of the string is the styleText (all of the attributes to be applied to the state)\n *\n * @param itemId The id of item to apply the style to\n * @param styleText - the text of the attributes for the style\n */\nexport const setStyle = function (itemId, styleText) {\n const item = getState(itemId);\n if (item !== undefined) {\n item.textStyles.push(styleText);\n }\n};\n\n/**\n * Add a text style to a state with the given id\n *\n * @param itemId The id of item to apply the css class to\n * @param cssClassName CSS class name\n */\nexport const setTextStyle = function (itemId, cssClassName) {\n const item = getState(itemId);\n if (item !== undefined) {\n item.textStyles.push(cssClassName);\n }\n};\n\nconst getDirection = () => direction;\nconst setDirection = (dir) => {\n direction = dir;\n};\n\nconst trimColon = (str) => (str && str[0] === ':' ? str.substr(1).trim() : str.trim());\n\nexport default {\n parseDirective,\n getConfig: () => configApi.getConfig().state,\n addState,\n clear,\n getState,\n getStates,\n getRelations,\n getClasses,\n getDirection,\n addRelation,\n getDividerId,\n setDirection,\n cleanupLabel,\n lineType,\n relationType,\n logDocuments,\n getRootDoc,\n setRootDoc,\n getRootDocV2,\n extract,\n trimColon,\n getAccTitle,\n setAccTitle,\n getAccDescription,\n setAccDescription,\n addStyleClass,\n setCssClass,\n addDescription,\n setDiagramTitle,\n getDiagramTitle,\n};\n","const getStyles = (options) =>\n `\ndefs #statediagram-barbEnd {\n fill: ${options.transitionColor};\n stroke: ${options.transitionColor};\n }\ng.stateGroup text {\n fill: ${options.nodeBorder};\n stroke: none;\n font-size: 10px;\n}\ng.stateGroup text {\n fill: ${options.textColor};\n stroke: none;\n font-size: 10px;\n\n}\ng.stateGroup .state-title {\n font-weight: bolder;\n fill: ${options.stateLabelColor};\n}\n\ng.stateGroup rect {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n}\n\ng.stateGroup line {\n stroke: ${options.lineColor};\n stroke-width: 1;\n}\n\n.transition {\n stroke: ${options.transitionColor};\n stroke-width: 1;\n fill: none;\n}\n\n.stateGroup .composit {\n fill: ${options.background};\n border-bottom: 1px\n}\n\n.stateGroup .alt-composit {\n fill: #e0e0e0;\n border-bottom: 1px\n}\n\n.state-note {\n stroke: ${options.noteBorderColor};\n fill: ${options.noteBkgColor};\n\n text {\n fill: ${options.noteTextColor};\n stroke: none;\n font-size: 10px;\n }\n}\n\n.stateLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: ${options.mainBkg};\n opacity: 0.5;\n}\n\n.edgeLabel .label rect {\n fill: ${options.labelBackgroundColor};\n opacity: 0.5;\n}\n.edgeLabel .label text {\n fill: ${options.transitionLabelColor || options.tertiaryTextColor};\n}\n.label div .edgeLabel {\n color: ${options.transitionLabelColor || options.tertiaryTextColor};\n}\n\n.stateLabel text {\n fill: ${options.stateLabelColor};\n font-size: 10px;\n font-weight: bold;\n}\n\n.node circle.state-start {\n fill: ${options.specialStateColor};\n stroke: ${options.specialStateColor};\n}\n\n.node .fork-join {\n fill: ${options.specialStateColor};\n stroke: ${options.specialStateColor};\n}\n\n.node circle.state-end {\n fill: ${options.innerEndBackground};\n stroke: ${options.background};\n stroke-width: 1.5\n}\n.end-state-inner {\n fill: ${options.compositeBackground || options.background};\n // stroke: ${options.background};\n stroke-width: 1.5\n}\n\n.node rect {\n fill: ${options.stateBkg || options.mainBkg};\n stroke: ${options.stateBorder || options.nodeBorder};\n stroke-width: 1px;\n}\n.node polygon {\n fill: ${options.mainBkg};\n stroke: ${options.stateBorder || options.nodeBorder};;\n stroke-width: 1px;\n}\n#statediagram-barbEnd {\n fill: ${options.lineColor};\n}\n\n.statediagram-cluster rect {\n fill: ${options.compositeTitleBackground};\n stroke: ${options.stateBorder || options.nodeBorder};\n stroke-width: 1px;\n}\n\n.cluster-label, .nodeLabel {\n color: ${options.stateLabelColor};\n}\n\n.statediagram-cluster rect.outer {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-state .divider {\n stroke: ${options.stateBorder || options.nodeBorder};\n}\n\n.statediagram-state .title-state {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-cluster.statediagram-cluster .inner {\n fill: ${options.compositeBackground || options.background};\n}\n.statediagram-cluster.statediagram-cluster-alt .inner {\n fill: ${options.altBackground ? options.altBackground : '#efefef'};\n}\n\n.statediagram-cluster .inner {\n rx:0;\n ry:0;\n}\n\n.statediagram-state rect.basic {\n rx: 5px;\n ry: 5px;\n}\n.statediagram-state rect.divider {\n stroke-dasharray: 10,10;\n fill: ${options.altBackground ? options.altBackground : '#efefef'};\n}\n\n.note-edge {\n stroke-dasharray: 5;\n}\n\n.statediagram-note rect {\n fill: ${options.noteBkgColor};\n stroke: ${options.noteBorderColor};\n stroke-width: 1px;\n rx: 0;\n ry: 0;\n}\n.statediagram-note rect {\n fill: ${options.noteBkgColor};\n stroke: ${options.noteBorderColor};\n stroke-width: 1px;\n rx: 0;\n ry: 0;\n}\n\n.statediagram-note text {\n fill: ${options.noteTextColor};\n}\n\n.statediagram-note .nodeLabel {\n color: ${options.noteTextColor};\n}\n.statediagram .edgeLabel {\n color: red; // ${options.noteTextColor};\n}\n\n#dependencyStart, #dependencyEnd {\n fill: ${options.lineColor};\n stroke: ${options.lineColor};\n stroke-width: 1;\n}\n\n.statediagramTitleText {\n text-anchor: middle;\n font-size: 18px;\n fill: ${options.textColor};\n}\n`;\n\nexport default getStyles;\n"],"names":["o","parser","lexer","classes","styles","configApi.getConfig","commonClear"],"mappings":"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AAE,KAAI,IAAG,GAAE,IAAG,IAAG,GAAE,EAAC,GAAE,CAAC,CAAC,EAAC,GAAE,EAAC,GAAE,GAAE,GAAE,KAAI,GAAE,KAAI,GAAE,GAAE,GAAE,KAAI,IAAG,GAAE,IAAG,IAAG,GAAE,EAAC,GAAE,GAAE,GAAE,KAAI,GAAE,KAAI,GAAE,GAAE,GAAE,KAAI,IAAG,GAAE,IAAG,IAAG,GAAE,EAAC,GAAE,IAAG,GAAE,KAAI,GAAE,KAAI,GAAE,GAAE,GAAE,KAAI,IAAG,GAAE,IAAG,IAAG,GAAE,EAAE,CAAC,GAAE,GAAE,GAAE,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,EAAE,GAAE,KAAI,EAAC,GAAE,GAAE,CAAC,GAAE,EAAC,IAAG,IAAG,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,EAAC,GAAE,EAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,IAAG,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,GAAE,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,IAAG,GAAE,EAAC,IAAG,IAAG,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,IAAG,GAAE,EAAE,CAAC,IAAG,EAAE,GAAE,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,CAAC,CAAC,GAAE,EAAC,GAAE,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,IAAG,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,GAAE,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,IAAG,GAAE,EAAE,KAAI,CAAC,GAAE,CAAC,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,CAAC,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,GAAE,EAAC,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,EAAC,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAC,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,GAAE,EAAC,IAAG,CAAC,GAAE,EAAE,EAAC,CAAC,GAAE,EAAC,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAC,IAAG,IAAG,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAC,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAC,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,GAAE,EAAC,IAAG,CAAC,GAAE,EAAE,EAAC,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,GAAE,EAAC,IAAG,CAAC,GAAE,EAAE,EAAC,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAC,IAAG,IAAG,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,CAAC,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAC,IAAG,IAAG,IAAG,KAAI,IAAG,IAAG,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,KAAI,EAAC,GAAE,GAAE,CAAC,GAAE,EAAC,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAC,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,IAAG,IAAG,IAAG,IAAG,GAAE,EAAC,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,GAAE,EAAC,IAAG,CAAC,GAAE,EAAE,EAAC,CAAC,GAAE,EAAC,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,IAAG,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,GAAE,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,IAAG,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,GAAE,EAAC,IAAG,CAAC,GAAE,EAAE,EAAC,CAAC,GAAE,EAAC,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAC,IAAG,CAAC,GAAE,EAAE,EAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,KAAI,EAAC,GAAE,GAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,GAAE,EAAC,GAAE,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,CAAC,GAAE,EAAE,GAAE,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,IAAG,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,GAAE,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,IAAG,GAAE,EAAE,KAAI,CAAC,GAAE,EAAE,CAAC,CAAC;AAAA,IAC1qE,gBAAgB,EAAC,GAAE,CAAC,GAAE,EAAE,GAAE,GAAE,CAAC,GAAE,CA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"}