diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3bd832749..a530e188c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,20 +14,14 @@ jobs: - name: Setup Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: + cache: yarn node-version: ${{ matrix.node-version }} - name: Install Yarn run: npm i yarn --global - - name: Cache Node Modules - uses: actions/cache@v2 - with: - path: .cache - key: ${{ runner.OS }}-build-${{ hashFiles('**/yarn.lock') }} - - name: Install Packages run: | - yarn config set cache-folder $GITHUB_WORKSPACE/.cache/yarn yarn install --frozen-lockfile env: CYPRESS_CACHE_FOLDER: .cache/Cypress diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index e003a81a5..0a01f3039 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -14,20 +14,14 @@ jobs: - name: Setup Node.js ${{ matrix.node-version }} uses: actions/setup-node@v2 with: + cache: yarn node-version: ${{ matrix.node-version }} - name: Install Yarn run: npm i yarn --global - - name: Cache Node Modules - uses: actions/cache@v2 - with: - path: .cache - key: ${{ runner.OS }}-build-${{ hashFiles('**/yarn.lock') }} - - name: Install Packages run: | - yarn config set cache-folder $GITHUB_WORKSPACE/.cache/yarn yarn install --frozen-lockfile env: CYPRESS_CACHE_FOLDER: .cache/Cypress diff --git a/cypress/integration/rendering/flowchart-v2.spec.js b/cypress/integration/rendering/flowchart-v2.spec.js index 00d0d4a77..af83eb555 100644 --- a/cypress/integration/rendering/flowchart-v2.spec.js +++ b/cypress/integration/rendering/flowchart-v2.spec.js @@ -101,7 +101,7 @@ describe('Flowchart v2', () => { const style = svg.attr('style'); expect(style).to.match(/^max-width: [\d.]+px;$/); const maxWidthValue = parseFloat(style.match(/[\d.]+/g).join('')); - expect(maxWidthValue).to.be.within(300 * .95-1, 300 * 1.05); + expect(maxWidthValue).to.be.within(290 * .95-1, 290 * 1.05); }); }); it('8: should render a flowchart when useMaxWidth is false', () => { @@ -121,7 +121,7 @@ describe('Flowchart v2', () => { const width = parseFloat(svg.attr('width')); // use within because the absolute value can be slightly different depending on the environment ±5% expect(height).to.be.within(446 * .95, 446 * 1.05); - expect(width).to.be.within(300 * .95-1, 300 * 1.05); + expect(width).to.be.within(290 * .95-1, 290 * 1.05); expect(svg).to.not.have.attr('style'); }); }); diff --git a/cypress/integration/rendering/sequencediagram.spec.js b/cypress/integration/rendering/sequencediagram.spec.js index 0ec283c16..7a35f79c5 100644 --- a/cypress/integration/rendering/sequencediagram.spec.js +++ b/cypress/integration/rendering/sequencediagram.spec.js @@ -584,7 +584,7 @@ context('Sequence diagram', () => { expect(svg).to.have.attr('width', '100%'); expect(svg).to.have.attr('height'); const height = parseFloat(svg.attr('height')); - expect(height).to.eq(920); + expect(height).to.be.within(920, 960); const style = svg.attr('style'); expect(style).to.match(/^max-width: [\d.]+px;$/); const maxWidthValue = parseFloat(style.match(/[\d.]+/g).join('')); @@ -624,7 +624,7 @@ context('Sequence diagram', () => { .should((svg) => { const height = parseFloat(svg.attr('height')); const width = parseFloat(svg.attr('width')); - expect(height).to.eq(920); + expect(height).to.be.within(920, 960); // use within because the absolute value can be slightly different depending on the environment ±5% expect(width).to.be.within(820 * .95, 820 * 1.05); expect(svg).to.not.have.attr('style'); diff --git a/cypress/integration/rendering/stateDiagram-v2.spec.js b/cypress/integration/rendering/stateDiagram-v2.spec.js index 21806dd2a..d72ca0b90 100644 --- a/cypress/integration/rendering/stateDiagram-v2.spec.js +++ b/cypress/integration/rendering/stateDiagram-v2.spec.js @@ -452,7 +452,7 @@ stateDiagram-v2 expect(svg).to.have.attr('width', '100%'); expect(svg).to.have.attr('height'); const height = parseFloat(svg.attr('height')); - expect(height).to.eq(177); + expect(height).to.be.within(177, 178); const style = svg.attr('style'); expect(style).to.match(/^max-width: [\d.]+px;$/); const maxWidthValue = parseFloat(style.match(/[\d.]+/g).join('')); @@ -474,7 +474,7 @@ stateDiagram-v2 .should((svg) => { const height = parseFloat(svg.attr('height')); const width = parseFloat(svg.attr('width')); - expect(height).to.eq(177); + expect(height).to.be.within(177, 178); // use within because the absolute value can be slightly different depending on the environment ±5% expect(width).to.be.within(135 * .95, 135 * 1.05); expect(svg).to.not.have.attr('style'); diff --git a/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level other, missspelling -- should handle a click on a node with a bound function (failed).png b/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level other, missspelling -- should handle a click on a node with a bound function (failed).png deleted file mode 100644 index 957ec89ad..000000000 Binary files a/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level other, missspelling -- should handle a click on a node with a bound function (failed).png and /dev/null differ diff --git a/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level other, missspelling -- should handle a click on a node with a bound function where the node starts with a number (failed).png b/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level other, missspelling -- should handle a click on a node with a bound function where the node starts with a number (failed).png deleted file mode 100644 index 48b4c6847..000000000 Binary files a/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level other, missspelling -- should handle a click on a node with a bound function where the node starts with a number (failed).png and /dev/null differ diff --git a/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level other, missspelling -- should handle a click on a task with a bound function (failed) (1).png b/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level other, missspelling -- should handle a click on a task with a bound function (failed) (1).png deleted file mode 100644 index c3d480c22..000000000 Binary files a/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level other, missspelling -- should handle a click on a task with a bound function (failed) (1).png and /dev/null differ diff --git a/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level other, missspelling -- should handle a click on a task with a bound function (failed).png b/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level other, missspelling -- should handle a click on a task with a bound function (failed).png deleted file mode 100644 index 377b324e6..000000000 Binary files a/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level other, missspelling -- should handle a click on a task with a bound function (failed).png and /dev/null differ diff --git a/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level tight -- should handle a click on a node with a bound function where the node starts with a number (failed).png b/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level tight -- should handle a click on a node with a bound function where the node starts with a number (failed).png deleted file mode 100644 index a4d447ba4..000000000 Binary files a/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level tight -- should handle a click on a node with a bound function where the node starts with a number (failed).png and /dev/null differ diff --git a/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level tight -- should handle a click on a node without a bound function (failed).png b/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level tight -- should handle a click on a node without a bound function (failed).png deleted file mode 100644 index ba6295fff..000000000 Binary files a/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level tight -- should handle a click on a node without a bound function (failed).png and /dev/null differ diff --git a/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level tight -- should handle a click on a task with a bound function (failed) (1).png b/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level tight -- should handle a click on a task with a bound function (failed) (1).png deleted file mode 100644 index 438daca60..000000000 Binary files a/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level tight -- should handle a click on a task with a bound function (failed) (1).png and /dev/null differ diff --git a/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level tight -- should handle a click on a task with a bound function (failed).png b/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level tight -- should handle a click on a task with a bound function (failed).png deleted file mode 100644 index e4bb4ab4c..000000000 Binary files a/cypress/screenshots/other/interaction.spec.js/Interaction -- Interaction - security level tight -- should handle a click on a task with a bound function (failed).png and /dev/null differ diff --git a/cypress/screenshots/other/webpackUsage.spec.js/Sequencediagram -- should handle html escapings properly (failed).png b/cypress/screenshots/other/webpackUsage.spec.js/Sequencediagram -- should handle html escapings properly (failed).png deleted file mode 100644 index ab89ebb17..000000000 Binary files a/cypress/screenshots/other/webpackUsage.spec.js/Sequencediagram -- should handle html escapings properly (failed).png and /dev/null differ diff --git a/cypress/screenshots/rendering/classDiagram.spec.js/Class diagram -- 17 should render a class diagram when useMaxWidth is true (default) (failed).png b/cypress/screenshots/rendering/classDiagram.spec.js/Class diagram -- 17 should render a class diagram when useMaxWidth is true (default) (failed).png deleted file mode 100644 index fa92a0856..000000000 Binary files a/cypress/screenshots/rendering/classDiagram.spec.js/Class diagram -- 17 should render a class diagram when useMaxWidth is true (default) (failed).png and /dev/null differ diff --git a/cypress/screenshots/rendering/classDiagram.spec.js/Class diagram -- 18 should render a class diagram when useMaxWidth is false (failed).png b/cypress/screenshots/rendering/classDiagram.spec.js/Class diagram -- 18 should render a class diagram when useMaxWidth is false (failed).png deleted file mode 100644 index cabb87f37..000000000 Binary files a/cypress/screenshots/rendering/classDiagram.spec.js/Class diagram -- 18 should render a class diagram when useMaxWidth is false (failed).png and /dev/null differ diff --git a/cypress/screenshots/rendering/sequencediagram.spec.js/Sequence diagram -- svg size -- should render a sequence diagram when useMaxWidth is false (failed).png b/cypress/screenshots/rendering/sequencediagram.spec.js/Sequence diagram -- svg size -- should render a sequence diagram when useMaxWidth is false (failed).png deleted file mode 100644 index e1b151c2a..000000000 Binary files a/cypress/screenshots/rendering/sequencediagram.spec.js/Sequence diagram -- svg size -- should render a sequence diagram when useMaxWidth is false (failed).png and /dev/null differ diff --git a/cypress/screenshots/rendering/sequencediagram.spec.js/Sequence diagram -- svg size -- should render a sequence diagram when useMaxWidth is true (default) (failed).png b/cypress/screenshots/rendering/sequencediagram.spec.js/Sequence diagram -- svg size -- should render a sequence diagram when useMaxWidth is true (default) (failed).png deleted file mode 100644 index 8746e5d59..000000000 Binary files a/cypress/screenshots/rendering/sequencediagram.spec.js/Sequence diagram -- svg size -- should render a sequence diagram when useMaxWidth is true (default) (failed).png and /dev/null differ diff --git a/cypress/screenshots/rendering/stateDiagram-v2.spec.js/State diagram -- v2 should render a state diagram when useMaxWidth is false (failed).png b/cypress/screenshots/rendering/stateDiagram-v2.spec.js/State diagram -- v2 should render a state diagram when useMaxWidth is false (failed).png deleted file mode 100644 index 3b3bb09a6..000000000 Binary files a/cypress/screenshots/rendering/stateDiagram-v2.spec.js/State diagram -- v2 should render a state diagram when useMaxWidth is false (failed).png and /dev/null differ diff --git a/cypress/screenshots/rendering/stateDiagram-v2.spec.js/State diagram -- v2 should render a state diagram when useMaxWidth is true (default) (failed).png b/cypress/screenshots/rendering/stateDiagram-v2.spec.js/State diagram -- v2 should render a state diagram when useMaxWidth is true (default) (failed).png deleted file mode 100644 index 4751deb60..000000000 Binary files a/cypress/screenshots/rendering/stateDiagram-v2.spec.js/State diagram -- v2 should render a state diagram when useMaxWidth is true (default) (failed).png and /dev/null differ diff --git a/dist/mermaid.core.js b/dist/mermaid.core.js index b4a474e70..490839c0e 100644 --- a/dist/mermaid.core.js +++ b/dist/mermaid.core.js @@ -3283,10 +3283,8 @@ var rectWithTitle = function rectWithTitle(parent, node) { var halfPadding = node.padding / 2; - Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])(descr).attr('transform', 'translate( ' + ( // (titleBox.width - bbox.width) / 2 + - bbox.width > titleBox.width ? 0 : (titleBox.width - bbox.width) / 2) + ', ' + (titleBox.height + halfPadding + 5) + ')'); - Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])(text).attr('transform', 'translate( ' + ( // (titleBox.width - bbox.width) / 2 + - bbox.width < titleBox.width ? 0 : -(titleBox.width - bbox.width) / 2) + ', ' + 0 + ')'); // Get the size of the label + Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])(descr).attr('transform', 'translate( ' + (bbox.width > titleBox.width ? 0 : (titleBox.width - bbox.width) / 2) + ', ' + (titleBox.height + halfPadding + 5) + ')'); + Object(d3__WEBPACK_IMPORTED_MODULE_0__["select"])(text).attr('transform', 'translate( ' + (bbox.width < titleBox.width ? 0 : -(titleBox.width - bbox.width) / 2) + ', ' + 0 + ')'); // Get the size of the label // Bounding box for title and text bbox = label.node().getBBox(); // Center the label @@ -3989,7 +3987,7 @@ var config = { * call to mermaidAPI.initialize. Calls to mermaidAPI.reinitialize cannot make changes to * the `secure` keys in the current currentConfig. This prevents malicious graph directives from * overriding a site's default security. - * **Notes**: + * **Notes**: * * Default value: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize'] */ diff --git a/dist/mermaid.core.js.map b/dist/mermaid.core.js.map index 08c6d1960..eb6896371 100644 --- a/dist/mermaid.core.js.map +++ b/dist/mermaid.core.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://mermaid/webpack/universalModuleDefinition","webpack://mermaid/webpack/bootstrap","webpack://mermaid/./node_modules/path-browserify/index.js","webpack://mermaid/./node_modules/process/browser.js","webpack://mermaid/(webpack)/buildin/module.js","webpack://mermaid/./src/config.js","webpack://mermaid/./src/dagre-wrapper/clusters.js","webpack://mermaid/./src/dagre-wrapper/createLabel.js","webpack://mermaid/./src/dagre-wrapper/edges.js","webpack://mermaid/./src/dagre-wrapper/index.js","webpack://mermaid/./src/dagre-wrapper/intersect/index.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-circle.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-ellipse.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-line.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-node.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-polygon.js","webpack://mermaid/./src/dagre-wrapper/intersect/intersect-rect.js","webpack://mermaid/./src/dagre-wrapper/markers.js","webpack://mermaid/./src/dagre-wrapper/mermaid-graphlib.js","webpack://mermaid/./src/dagre-wrapper/nodes.js","webpack://mermaid/./src/dagre-wrapper/shapes/note.js","webpack://mermaid/./src/dagre-wrapper/shapes/util.js","webpack://mermaid/./src/defaultConfig.js","webpack://mermaid/./src/diagrams/class/classDb.js","webpack://mermaid/./src/diagrams/class/classRenderer-v2.js","webpack://mermaid/./src/diagrams/class/classRenderer.js","webpack://mermaid/./src/diagrams/class/parser/classDiagram.jison","webpack://mermaid/./src/diagrams/class/styles.js","webpack://mermaid/./src/diagrams/class/svgDraw.js","webpack://mermaid/./src/diagrams/common/common.js","webpack://mermaid/./src/diagrams/er/erDb.js","webpack://mermaid/./src/diagrams/er/erMarkers.js","webpack://mermaid/./src/diagrams/er/erRenderer.js","webpack://mermaid/./src/diagrams/er/parser/erDiagram.jison","webpack://mermaid/./src/diagrams/er/styles.js","webpack://mermaid/./src/diagrams/flowchart/flowChartShapes.js","webpack://mermaid/./src/diagrams/flowchart/flowDb.js","webpack://mermaid/./src/diagrams/flowchart/flowRenderer-v2.js","webpack://mermaid/./src/diagrams/flowchart/flowRenderer.js","webpack://mermaid/./src/diagrams/flowchart/parser/flow.jison","webpack://mermaid/./src/diagrams/flowchart/styles.js","webpack://mermaid/./src/diagrams/gantt/ganttDb.js","webpack://mermaid/./src/diagrams/gantt/ganttRenderer.js","webpack://mermaid/./src/diagrams/gantt/parser/gantt.jison","webpack://mermaid/./src/diagrams/gantt/styles.js","webpack://mermaid/./src/diagrams/git/gitGraphAst.js","webpack://mermaid/./src/diagrams/git/gitGraphRenderer.js","webpack://mermaid/./src/diagrams/git/parser/gitGraph.jison","webpack://mermaid/./src/diagrams/git/styles.js","webpack://mermaid/./src/diagrams/info/infoDb.js","webpack://mermaid/./src/diagrams/info/infoRenderer.js","webpack://mermaid/./src/diagrams/info/parser/info.jison","webpack://mermaid/./src/diagrams/info/styles.js","webpack://mermaid/./src/diagrams/pie/parser/pie.jison","webpack://mermaid/./src/diagrams/pie/pieDb.js","webpack://mermaid/./src/diagrams/pie/pieRenderer.js","webpack://mermaid/./src/diagrams/pie/styles.js","webpack://mermaid/./src/diagrams/requirement/parser/requirementDiagram.jison","webpack://mermaid/./src/diagrams/requirement/requirementDb.js","webpack://mermaid/./src/diagrams/requirement/requirementMarkers.js","webpack://mermaid/./src/diagrams/requirement/requirementRenderer.js","webpack://mermaid/./src/diagrams/requirement/styles.js","webpack://mermaid/./src/diagrams/sequence/parser/sequenceDiagram.jison","webpack://mermaid/./src/diagrams/sequence/sequenceDb.js","webpack://mermaid/./src/diagrams/sequence/sequenceRenderer.js","webpack://mermaid/./src/diagrams/sequence/styles.js","webpack://mermaid/./src/diagrams/sequence/svgDraw.js","webpack://mermaid/./src/diagrams/state/id-cache.js","webpack://mermaid/./src/diagrams/state/parser/stateDiagram.jison","webpack://mermaid/./src/diagrams/state/shapes.js","webpack://mermaid/./src/diagrams/state/stateDb.js","webpack://mermaid/./src/diagrams/state/stateRenderer-v2.js","webpack://mermaid/./src/diagrams/state/stateRenderer.js","webpack://mermaid/./src/diagrams/state/styles.js","webpack://mermaid/./src/diagrams/user-journey/journeyDb.js","webpack://mermaid/./src/diagrams/user-journey/journeyRenderer.js","webpack://mermaid/./src/diagrams/user-journey/parser/journey.jison","webpack://mermaid/./src/diagrams/user-journey/styles.js","webpack://mermaid/./src/diagrams/user-journey/svgDraw.js","webpack://mermaid/./src/errorRenderer.js","webpack://mermaid/./src/logger.js","webpack://mermaid/./src/mermaid.js","webpack://mermaid/./src/mermaidAPI.js","webpack://mermaid/./src/styles.js","webpack://mermaid/./src/themes/index.js","webpack://mermaid/./src/themes/theme-base.js","webpack://mermaid/./src/themes/theme-dark.js","webpack://mermaid/./src/themes/theme-default.js","webpack://mermaid/./src/themes/theme-forest.js","webpack://mermaid/./src/themes/theme-helpers.js","webpack://mermaid/./src/themes/theme-neutral.js","webpack://mermaid/./src/utils.js","webpack://mermaid/external \"@braintree/sanitize-url\"","webpack://mermaid/external \"d3\"","webpack://mermaid/external \"dagre\"","webpack://mermaid/external \"dagre-d3\"","webpack://mermaid/external \"dagre-d3/lib/label/add-html-label.js\"","webpack://mermaid/external \"dompurify\"","webpack://mermaid/external \"graphlib\"","webpack://mermaid/external \"khroma\"","webpack://mermaid/external \"moment-mini\"","webpack://mermaid/external \"stylis\""],"names":["defaultConfig","Object","freeze","config","siteConfig","assignWithDepth","configFromInitialize","directives","currentConfig","updateCurrentConfig","siteCfg","_directives","cfg","sumOfDirectives","i","length","d","sanitize","theme","tmpConfigFromInitialize","themeVariables","getThemeVariables","setSiteConfig","conf","saveConfigFromInitilize","updateSiteConfig","getSiteConfig","setConfig","getConfig","options","keys","secure","forEach","key","log","debug","indexOf","addDirective","directive","fontFamily","push","reset","rect","parent","node","trace","id","shapeSvg","insert","attr","class","label","text","appendChild","createLabel","labelText","labelStyle","undefined","bbox","getBBox","evaluate","flowchart","htmlLabels","div","children","dv","select","getBoundingClientRect","width","height","padding","halfPadding","diff","JSON","stringify","style","rx","ry","x","y","rectBox","intersect","point","intersectRect","noteGroup","roundedWithTitle","classes","innerRect","append","divider","shapes","clusterElems","insertCluster","elem","shape","getClusterTitleWidth","removeChild","clear","positionCluster","info","el","applyStyle","dom","styleFn","addHtmlLabel","fo","document","createElementNS","labelClass","isNode","html","_vertexText","isTitle","vertexText","replace","s","vertexNode","svgLabel","setAttribute","rows","split","Array","isArray","j","tspan","setAttributeNS","textContent","trim","edgeLabels","terminalLabels","insertEdgeLabel","edge","labelElement","edgeLabel","startLabelLeft","startLabelElement","startEdgeLabelLeft","inner","slBox","startLeft","startLabelRight","startEdgeLabelRight","startRight","endLabelLeft","endLabelElement","endEdgeLabelLeft","endLeft","endLabelRight","endEdgeLabelRight","endRight","positionEdgeLabel","paths","path","updatedPath","originalPath","pos","utils","calcLabelPosition","calcTerminalLabelPosition","outsideNode","dx","Math","abs","dy","w","h","intersection","outsidePoint","insidePoint","warn","r","Q","R","q","res","_x","_y","cutPathAtIntersect","_points","boundryNode","points","lastPointOutside","isInside","inter","pointPresent","p","find","e","insertEdge","clusterDb","diagramType","graph","pointsHasChanged","tail","v","head","slice","unshift","toCluster","fromCluster","reverse","lineData","filter","Number","isNaN","curve","curveBasis","lineFunction","line","strokeClasses","thickness","pattern","svgPath","url","state","arrowMarkerAbsolute","window","location","protocol","host","pathname","search","arrowTypeStart","arrowTypeEnd","recursiveRender","_elem","diagramtype","parentCluster","graphlib","json","write","dir","rankdir","nodes","edges","clusters","edgePaths","data","parse","clusterData","setNode","setParent","clusterNode","o","newEl","updateNodeBounds","setNodeElem","findNonClusterChild","insertNode","name","dagre","layout","sortNodesByHierarchy","positionNode","n","type","render","markers","insertMarkers","clearNodes","clearEdges","clearClusters","clearGraphlib","adjustClustersAndEdges","circle","ellipse","polygon","intersectCircle","intersectEllipse","cx","cy","px","py","det","sqrt","intersectLine","p1","p2","q1","q2","a1","a2","b1","b2","c1","c2","r1","r2","r3","r4","denom","offset","num","sameSign","module","exports","intersectNode","intersectPolygon","polyPoints","x1","y1","intersections","minX","POSITIVE_INFINITY","minY","entry","min","left","top","sort","pdx","pdy","distp","qdx","qdy","distq","sx","sy","markerArray","markerName","extension","composition","aggregation","dependency","cross","barb","decendants","parents","isDecendant","ancenstorId","edgeInCluster","clusterId","copy","newGraph","rootId","setEdge","error","removeNode","extractDecendants","concat","validate","_id","getAnchorId","externalConnections","depth","d1","d2","removeEdge","extractor","hasChildren","graphSettings","clusterGraph","Graph","multigraph","compound","setGraph","nodesep","ranksep","marginx","marginy","setDefaultEdgeLabel","sorter","result","assign","sorted","question","labelHelper","questionElem","insertPolygonShape","choice","domId","map","join","hexagon","f","m","hex","rect_left_inv_arrow","lean_right","lean_left","trapezoid","inv_trapezoid","rect_right_inv_arrow","cylinder","rectWithTitle","innerLine","text2","flat","title","textRows","titleBox","descr","stadium","subroutine","start","forkJoin","end","innerCircle","class_box","rowPadding","lineHeight","topLine","bottomLine","maxWidth","maxHeight","labelContainer","verticalPos","hasInterface","classData","annotations","interfaceLabelText","interfaceLabel","interfaceBBox","classTitleString","classTitleLabel","classTitleBBox","classAttributes","members","str","parsedText","parseMember","displayText","lbl","classMethods","methods","diffX","note","fork","nodeElems","link","linkTarget","tooltip","haveCallback","_classes","element","themeCSS","maxTextSize","logLevel","securityLevel","startOnLoad","deterministicIds","deterministicIDSeed","diagramPadding","nodeSpacing","rankSpacing","useMaxWidth","defaultRenderer","sequence","activationWidth","diagramMarginX","diagramMarginY","actorMargin","boxMargin","boxTextMargin","noteMargin","messageMargin","messageAlign","mirrorActors","bottomMarginAdj","rightAngles","showSequenceNumbers","actorFontSize","actorFontFamily","actorFontWeight","noteFontSize","noteFontFamily","noteFontWeight","noteAlign","messageFontSize","messageFontFamily","messageFontWeight","wrap","wrapPadding","labelBoxWidth","labelBoxHeight","messageFont","fontSize","fontWeight","noteFont","actorFont","gantt","titleTopMargin","barHeight","barGap","topPadding","rightPadding","leftPadding","gridLineStartPadding","sectionFontSize","numberSectionStyles","axisFormat","topAxis","useWidth","journey","leftMargin","taskFontSize","taskFontFamily","taskMargin","textPlacement","actorColours","sectionFills","sectionColours","git","dividerMargin","sizeUnit","textHeight","titleShift","forkWidth","forkHeight","miniPadding","fontSizeFactor","labelHeight","edgeLengthFactor","compositTitleSize","radius","er","layoutDirection","minEntityWidth","minEntityHeight","entityPadding","stroke","fill","pie","requirement","rect_fill","text_color","rect_border_size","rect_border_color","rect_min_width","rect_min_height","rect_padding","line_height","keyify","obj","prefix","reduce","configKeys","MERMAID_DOM_ID_PREFIX","relations","classCounter","funs","parseDirective","statement","context","mermaidAPI","splitClassNameAndType","genericType","className","addClass","classId","cssClasses","lookUpDomId","classKeys","setupToolTips","getClass","getClasses","getRelations","addRelation","relation","id1","id2","addAnnotation","annotation","validatedClassName","addMember","member","theClass","memberString","startsWith","endsWith","substring","addMembers","cleanupLabel","substr","setCssClass","ids","match","setTooltip","configApi","common","sanitizeText","setLink","linkStr","target","formatUrl","setClickEvent","functionName","functionArgs","setClickFunc","elemId","argList","item","charAt","querySelector","addEventListener","runFunc","bindFunctions","fun","lineType","LINE","DOTTED_LINE","relationType","AGGREGATION","EXTENSION","COMPOSITION","DEPENDENCY","tooltipElem","_groups","svg","selectAll","on","transition","duration","scrollX","right","scrollY","body","scrollTop","classed","parser","yy","classDb","idCache","addClasses","g","vertex","cssClassStr","styles","radious","_shape","addRelations","cnt","defaultStyle","defaultLabelStyle","edgeData","arrowhead","relationTitle1","relationTitle2","getArrowMarker","type1","type2","getStylesFromArray","interpolate","interpolateToCurve","curveLinear","defaultInterpolate","arrowheadStyle","labelpos","labelType","lineBreakRegex","getGraphId","setConf","cnf","drawOld","diagram","isMultiGraph","classDef","svgDraw","drawClass","drawEdge","svgBounds","configureSvgSize","vBox","draw","_label","labels","querySelectorAll","k","dim","insertBefore","firstChild","marker","getStyles","nodeBorder","classText","mainBkg","lineColor","edgeCount","getRelationType","l","labelPosition","p1_card_x","p1_card_y","p2_card_x","p2_card_y","cardinality_1_point","calcCardinalityPosition","cardinality_2_point","bounds","classInfo","isFirst","titleText2","classTitle","titleHeight","membersLine","addTspan","membersBox","methodsLine","method","classBox","rectWidth","childNodes","fieldRegEx","methodRegEx","fieldMatch","methodMatch","buildFieldDisplay","buildMethodDisplay","buildLegacyDisplay","visibility","fieldType","parseGenericTypes","fieldName","err","cssStyle","methodName","parameters","classifier","returnType","parseClassifier","memberText","methodStart","methodEnd","firstChar","textEl","txt","tSpan","cleanedText","getRows","breakToPlaceholder","removeScript","rs","idx","sanitizeMore","level","placeholderToBreak","DOMPurify","hasBreaks","test","splitBreaks","getUrl","useAbsolute","val","entities","relationships","Cardinality","ZERO_OR_ONE","ZERO_OR_MORE","ONE_OR_MORE","ONLY_ONE","Identification","NON_IDENTIFYING","IDENTIFYING","addEntity","attributes","getEntities","addAttributes","entityName","attribs","entity","attributeName","addRelationship","entA","rolA","entB","rSpec","rel","entityA","roleA","entityB","relSpec","getRelationships","setTitle","getTitle","ERMarkers","ONLY_ONE_START","ONLY_ONE_END","ZERO_OR_ONE_START","ZERO_OR_ONE_END","ONE_OR_MORE_START","ONE_OR_MORE_END","ZERO_OR_MORE_START","ZERO_OR_MORE_END","drawAttributes","groupNode","entityTextNode","heightPadding","widthPadding","attrFontSize","labelBBox","attributeNodes","maxTypeWidth","maxNameWidth","cumulativeHeight","attrNum","attrPrefix","typeNode","attributeType","nameNode","tn","nn","typeBBox","nameBBox","max","bBox","spareWidth","heightOffset","attribStyle","nodePair","alignY","typeRect","parseFloat","drawEntities","svgNode","firstOne","textId","textNode","entityWidth","entityHeight","rectNode","rectBBox","adjustEntities","getEdgeName","addRelationships","relationship","relCnt","drawRelationshipFromLayout","relType","erDb","cardA","erMarkers","cardB","len","getTotalLength","labelPoint","getPointAtLength","labelId","labelNode","erParser","directed","edgesep","firstEntity","tertiaryColor","dagreD3","addToRender","addToRenderV2","addShape","vertexCounter","vertices","subGraphs","subGraphLookup","tooltips","subCount","firstGraphFlag","direction","version","veritceKeys","addVertex","addSingleLink","_start","_end","linktext","addLink","updateLinkInterpolate","positions","interp","updateLink","isSubstringInArray","textStyles","newStyle1","newStyle2","setDirection","setClass","setClickFun","getTooltip","getDirection","getVertices","getEdges","ver","setGen","addSubGraph","list","_title","uniq","a","prims","boolean","number","string","objs","nodeList","stmt","value","hasOwnProperty","apply","nl","subGraph","makeUniq","getPosForId","secCount","posCrossRef","indexNodes2","count","posCount","childPos","getDepthFirstPos","indexNodes","getSubGraphs","firstGraph","destructStartLink","_str","countChar","char","destructEndLink","dots","destructLink","_startStr","startInfo","exists","allSgs","sg","allSubgraphs","lex","addVertices","vert","svgId","classStr","parentNode","flowDb","addEdges","linkIdCnt","defaultStyles","linkIdBase","linkId","linkNameStart","linkNameEnd","minlen","flow","subG","linkNode","Render","flowChartShapes","arrows","none","normal","util","clusterRects","clusterEl","xPos","baseVal","yPos","cluster","te","classList","add","nodeTextColor","textColor","titleColor","arrowheadColor","edgeLabelBackground","clusterBkg","clusterBorder","border2","dateFormat","todayMarker","excludes","sections","tasks","currentSection","tags","inclusiveEndDates","lastOrder","taskCnt","lastTask","lastTaskID","rawTasks","setAxisFormat","getAxisFormat","setTodayMarker","getTodayMarker","setDateFormat","enableInclusiveEndDates","endDatesAreInclusive","enableTopAxis","topAxisEnabled","getDateFormat","setExcludes","toLowerCase","getExcludes","addSection","getSections","getTasks","allItemsPricessed","compileTasks","maxDepth","iterationCount","isInvalidDate","date","isoWeekday","format","checkTaskDates","task","manualEndTime","startTime","moment","endTime","renderEndTime","fixTaskDates","toDate","invalid","getStartDate","prevTime","re","afterStatement","exec","latestEndingTask","findTaskById","dt","Date","setHours","mDate","isValid","durationToDate","durationStatement","relativeTime","getEndDate","inclusive","parseId","idStr","compileData","prevTask","dataStr","ds","getTaskTags","endTimeData","parseData","prevTaskId","startData","taskDb","addTask","rawTask","section","processed","raw","taskInfo","active","done","crit","milestone","order","addTaskOrg","newTask","description","compileTask","allProcessed","_linkStr","sanitizeUrl","pushFun","open","callbackFunction","matchFound","t","regex","RegExp","shift","ganttDb","getElementById","parentElement","offsetWidth","taskArray","timeScale","scaleTime","domain","rangeRound","categories","catsUnfiltered","checkUnique","taskCompare","b","taskA","taskB","makeGant","pageWidth","pageHeight","gap","colorScale","scaleLinear","range","interpolateHcl","makeGrid","drawRects","vertLabels","drawToday","theArray","theGap","theTopPad","theSidePad","theBarHeight","theColorScale","enter","rectangles","toString","secNum","taskClass","startX","endX","textWidth","taskType","bottomXAxis","axisBottom","tickSize","tickFormat","timeFormat","call","topXAxis","axisTop","numOccurances","prevGap","getCount","todayG","today","todayLine","arr","hash","getCounts","word","sectionBkgColor","sectionBkgColor2","altSectionBkgColor","ganttFontSize","gridColor","todayLineColor","taskTextDarkColor","taskTextClickableColor","taskTextColor","taskBkgColor","taskBorderColor","taskTextOutsideColor","activeTaskBkgColor","activeTaskBorderColor","doneTaskBorderColor","doneTaskBkgColor","critBorderColor","critBkgColor","commits","branches","master","curBranch","seq","getId","random","isfastforwardable","currentCommit","otherCommit","isReachableFrom","currentSeq","otherSeq","uniqBy","fn","recordMap","create","out","setOptions","rawOptString","message","getOptions","commit","msg","branch","merge","otherBranch","checkout","commitRef","ref","parentCount","parseInt","upsert","newval","index","splice","prettyPrintCommitHistory","commitArr","c","newCommit","nextCommit","prettyPrint","getCommitsArray","getBranchesAsObjArray","branchArr","getBranches","getCommits","getCurrentBranch","getHead","allCommitsDict","branchNum","nodeFillColor","nodeStrokeWidth","nodeStrokeColor","lineStrokeWidth","branchOffset","branchColors","nodeRadius","nodeLabel","apiConfig","svgCreateDefs","svgDrawLine","colorIdx","color","lineGen","round","getElementCoords","coords","ctm","getCTM","xn","yn","svgDrawLineForCommits","fromId","toId","fromBbox","toBbox","lineStart","lineEnd","cloneNode","selector","renderCommitHistory","commitid","numCommits","size","branchName","renderLines","branchColor","lineDrawn","gitGraphParser","db","setMessage","getMessage","setInfo","inf","getInfo","infoParser","showData","setShowData","toggle","getShowData","cleanupValue","pieParser","pieData","margin","legendRectSize","legendSpacing","sum","myGeneratedColors","pie1","pie2","pie3","pie4","pie5","pie6","pie7","pie8","pie9","pie10","pie11","pie12","scaleOrdinal","d3pie","dataReady","entries","arcGenerator","arc","innerRadius","outerRadius","toFixed","centroid","legend","horz","pieStrokeColor","pieStrokeWidth","pieOpacity","pieTitleTextSize","pieTitleTextColor","pieSectionTextColor","pieSectionTextSize","pieLegendTextColor","pieLegendTextSize","latestRequirement","requirements","latestElement","elements","RequirementType","REQUIREMENT","FUNCTIONAL_REQUIREMENT","INTERFACE_REQUIREMENT","PERFORMANCE_REQUIREMENT","PHYSICAL_REQUIREMENT","DESIGN_CONSTRAINT","RiskLevel","LOW_RISK","MED_RISK","HIGH_RISK","VerifyType","VERIFY_ANALYSIS","VERIFY_DEMONSTRATION","VERIFY_INSPECTION","VERIFY_TEST","Relationships","CONTAINS","COPIES","DERIVES","SATISFIES","VERIFIES","REFINES","TRACES","addRequirement","risk","verifyMethod","getRequirements","setNewReqId","setNewReqText","setNewReqRisk","setNewReqVerifyMethod","addElement","docRef","getElements","setNewElementType","setNewElementDocRef","src","dst","req","ReqMarkers","ARROW","insertLineEndings","containsNode","newRectNode","newTitleNode","txts","textStr","yPadding","linePadding","totalY","titleNode","newBodyNode","yStart","currentRow","charLimit","wrappedTxts","currentTextLen","firstPart","lastStr","addEdgeLabel","elementString","requirementDb","drawReqs","reqs","reqName","titleNodeInfo","bodyNode","drawElements","els","elName","relationColor","requirementBackground","requirementBorderColor","requirementBorderSize","requirementTextColor","relationLabelBackground","relationLabelColor","prevActor","actors","messages","notes","titleWrapped","sequenceNumbersEnabled","wrapEnabled","addActor","old","autoWrap","nextActor","activationCount","part","LINETYPE","ACTIVE_START","from","actor","ACTIVE_END","addMessage","idFrom","idTo","answer","to","addSignal","messageType","Error","token","loc","first_line","last_line","first_column","last_column","expected","getMessages","getActors","getActor","getActorKeys","getTitleWrapped","enableSequenceNumbers","setWrap","wrapSetting","parseMessage","SOLID","DOTTED","NOTE","SOLID_CROSS","DOTTED_CROSS","SOLID_OPEN","DOTTED_OPEN","LOOP_START","LOOP_END","ALT_START","ALT_ELSE","ALT_END","OPT_START","OPT_END","PAR_START","PAR_AND","PAR_END","RECT_START","RECT_END","SOLID_POINT","DOTTED_POINT","ARROWTYPE","FILLED","OPEN","PLACEMENT","LEFTOF","RIGHTOF","OVER","addNote","placement","titleWrap","param","signalType","loopText","optText","altText","parText","sequenceDb","startx","stopx","starty","stopy","sequenceItems","activations","models","getHeight","loops","it","acc","actorModel","addLoop","loopModel","msgModel","noteModel","lastActor","lastLoop","lastMessage","lastNote","init","updateVal","updateBounds","_self","updateFn","updateItemBounds","_startx","_stopx","_starty","_stopy","newActivation","actorRect","stackedSize","actorActivations","anchored","anchorElement","endActivation","lastActorActivationIdx","activation","lastIndexOf","createLoop","newLoop","endLoop","pop","addSectionToLoop","loop","sectionTitles","getVerticalPos","bumpVerticalPos","bump","getBounds","drawNote","getNoteRect","rectElem","drawRect","textObj","getTextObj","anchor","textMargin","valign","textElem","drawText","curr","drawMessage","sequenceIndex","lines","textDims","calculateTextDimensions","totalOffset","lineStarty","fromBounds","toBounds","drawActors","actorKeys","prevWidth","prevMargin","drawActor","activationBounds","actorObj","adjustLoopHeightForWrap","loopWidths","preMargin","postMargin","addLoopFn","heightAdjust","loopWidth","textConf","wrapLabel","maxMessageWidthPerActor","getMaxMessageWidthPerActor","calculateActorMargins","calculateLoopBounds","insertArrowHead","insertArrowCrossHead","insertArrowFilledHead","insertSequenceNumber","activeEnd","activationData","drawActivation","drawLoop","drawBackgroundRect","includes","box","actorLines","extraVertForTitle","isNote","isMessage","textFont","wrappedMessage","messageDimensions","messageWidth","actorToMessageWidth","prop","actDims","actorKey","actorWidth","buildNoteModel","shouldWrap","textDimensions","buildMessageModel","process","fromIdx","toIdx","allBounds","boundedWidth","msgDims","stack","current","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","toAdd","enabled","stk","actorBorder","actorBkg","actorTextColor","actorLineColor","signalColor","sequenceNumberColor","signalTextColor","labelBoxBorderColor","labelBoxBkgColor","labelTextColor","loopTextColor","noteBorderColor","noteBkgColor","noteTextColor","activationBkgColor","activationBorderColor","rectData","textData","prevTextHeight","textElems","yfunc","dominantBaseline","alignmentBaseline","span","drawLabel","txtObject","genPoints","cut","actorCnt","center","_drawTextCandidateFunc","drawLoopLine","sectionHeight","lower","defs","byText","content","textAttrs","_setTextAttrs","byTspan","byFo","toText","fromTextAttrsDict","set","get","drawStartState","drawDivider","drawSimpleState","stateDef","drawDescrState","descriptions","isSecond","descrLine","descrBox","addTitleAndBox","altBkg","pad","dblPad","orgBox","orgWidth","orgX","titleWidth","graphBox","doc","lineY","drawEndState","drawForkJoinState","parentId","tmp","nText","_drawLongText","_text","tHeight","textBounds","drawState","stateInfo","stateBox","stateDb","titleRows","boundstmp","boxHeight","heightAdj","clone","rootDoc","setRootDoc","getRootDoc","docTranslator","first","state1","state2","currentDoc","newNode","generateId","docNode","getRootDocV2","extract","_doc","addState","newDoc","states","documents","root","currentDocument","startCnt","endCnt","addDescription","des","getState","getStates","logDocuments","_id1","_id2","_descr","theState","dividerCnt","getDividerId","trimColon","nodeDb","setupNode","altFlag","getDir","nodeData","noteData","groupData","position","arrowType","setupDoc","startId","endId","defaultDir","transformationLog","renderDoc","svgWidth","getLabelWidth","edgeFreeDoc","ranker","nodeSep","sub","boxBounds","noteDef","nodeCount","svgElem","dividers","pWidth","pShift","getAttribute","transitionColor","stateLabelColor","background","labelBackgroundColor","transitionLabelColor","tertiaryTextColor","specialStateColor","innerEndBackground","compositeBackground","stateBkg","stateBorder","compositeTitleBackground","altBackground","allItemsProcessed","updateActors","tempActors","people","unique","Set","taskData","pieces","score","peeps","peopleList","journeyDb","drawActorLegend","person","colour","circleData","drawCircle","labelData","LEFT_MARGIN","initGraphics","actorNames","actorPos","actorName","drawTasks","fills","textColours","lastSection","sectionVHeight","taskPos","sectionNumber","drawSection","taskActors","drawTask","faceColor","fillType0","fillType1","fillType2","fillType3","fillType4","fillType5","fillType6","fillType7","actor0","actor1","actor2","actor3","actor4","actor5","drawFace","faceData","circleElement","face","smile","d3arc","startAngle","PI","endAngle","sad","ambivalent","labelMargin","taskCount","graphics","LEVELS","fatal","setLogLevel","console","bind","time","arguments","mermaid","sequenceConfig","callback","Node","ganttConfig","idGeneratior","initIdGeneratior","next","innerHTML","entityDecode","detectInit","svgCode","parseError","initialize","contentLoaded","graphInit","reinitialize","graphType","detectType","gitGraphAst","flowParser","sequenceParser","ganttParser","classParser","stateParser","infoDb","pieDb","journeyParser","requirementParser","encodeEntities","innerTxt","isInt","decodeEntities","_txt","cb","container","existingSvg","remove","userStyles","altFontFamily","flowRenderer","stylis","serialize","compile","rules","style1","createElement","gitGraphRenderer","flowRendererV2","sequenceDiagram","sequenceRenderer","ganttRenderer","classRenderer","classRendererV2","stateRenderer","stateRendererV2","infoRenderer","pkg","pieRenderer","erRenderer","journeyRenderer","requirementRenderer","errorRenderer","currentDirective","args","handleDirective","directiveSanitizer","updateRendererConfigs","default","globalReset","themes","classDiagram","stateDiagram","calcThemeVariables","userOverRides","calcColors","errorBkgColor","errorTextColor","base","baseThemeVariables","dark","darkThemeVariables","defaultThemeVariables","forest","forestThemeVariables","neutral","neutralThemeVariables","Theme","darkMode","primaryColor","primaryTextColor","secondaryColor","adjust","primaryBorderColor","mkBorder","secondaryBorderColor","tertiaryBorderColor","secondaryTextColor","invert","nodeBkg","defaultLinkColor","darken","lighten","taskTextLightColor","compositeBorder","overrides","updateColors","userOverrides","calculate","secondBkg","mainContrastColor","darkTextColor","border1","rgba","labelBackground","labelColor","col","contrast","critical","d3CurveTypes","curveBasisClosed","curveBasisOpen","curveLinearClosed","curveMonotoneX","curveMonotoneY","curveNatural","curveStep","curveStepAfter","curveStepBefore","directiveWithoutOpen","anyComment","inits","detectDirective","results","commentWithoutDirectives","source","lastIndex","memoize","resolver","cache","defaultCurve","curveName","toUpperCase","arrPaths","fnName","params","distance","pow","traverseEdge","prevPoint","totalDistance","remainingDistance","vectorDistance","distanceRatio","isRelationTypePresent","initialPosition","distanceToCardinalityPoint","angle","atan2","cardinalityPosition","sin","cos","terminalMarkerSize","makeid","characters","charactersLength","floor","clobber","drawSimpleText","joinWith","words","completedLines","nextLine","wordLength","calculateTextWidth","nextLineLength","breakString","hyphenatedStrings","remainingWord","Boolean","currentWord","isLastWord","hyphenCharacter","currentLine","character","lineWidth","currentCharacter","isLastLine","hyphenatedNextLine","calculateTextHeight","fontFamilies","dims","cheight","d3Attrs","d3Elem","attrs","calculateSvgSizeAttrs","Map","deterministic","seed","now","decoder","escape","unescape","arg"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;QCVA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;;;;;;;;;;;;;;;;AClFA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,MAAM;AAChB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oCAAoC,8BAA8B;AAClE;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,oBAAoB;AAC9B;AACA;;AAEA;AACA,UAAU,UAAU;AACpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,sBAAsB;AACrD;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,2BAA2B,QAAQ;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,eAAe;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7SA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU;;;;;;;;;;;;ACvLtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrBA;AACA;AACA;CAGA;;AAEO,IAAMA,aAAa,GAAGC,MAAM,CAACC,MAAP,CAAcC,sDAAd,CAAtB;AAEP,IAAIC,UAAU,GAAGC,8DAAe,CAAC,EAAD,EAAKL,aAAL,CAAhC;AACA,IAAIM,oBAAJ;AACA,IAAIC,UAAU,GAAG,EAAjB;AACA,IAAIC,aAAa,GAAGH,8DAAe,CAAC,EAAD,EAAKL,aAAL,CAAnC;AAEO,IAAMS,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,OAAD,EAAUC,WAAV,EAA0B;AAC3D;AACA,MAAIC,GAAG,GAAGP,8DAAe,CAAC,EAAD,EAAKK,OAAL,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lK,MAAM,GAAG;AACb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEe,OAAK,EAAE,SAfM;AAgBbE,gBAAc,EAAEF,+CAAK,CAAC,SAAD,CAAL,CAAiBG,iBAAjB,EAhBH;AAiBb8Z,UAAQ,EAAE1X,SAjBG;;AAkBb;AACA2X,aAAW,EAAE,KAnBA;;AAqBb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACE7Y,YAAU,EAAE,6CA7BC;;AA+Bb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACE8Y,UAAQ,EAAE,CA7CG;;AA+Cb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEC,eAAa,EAAE,QA1DF;;AA4Db;AACF;AACA;AACA;AACA;AACA;AACA;AACEC,aAAW,EAAE,IAnEA;;AAqEb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEhO,qBAAmB,EAAE,KAjFR;;AAmFb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEExL,QAAM,EAAE,CAAC,QAAD,EAAW,eAAX,EAA4B,aAA5B,EAA2C,aAA3C,CA7FK;;AA+Fb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEyZ,kBAAgB,EAAE,KAzGL;;AA2Gb;AACF;AACA;AACA;AACEC,qBAAmB,EAAEhY,SA/GR;;AAiHb;AACF;AACA;AACEI,WAAS,EAAE;AACT;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACI6X,kBAAc,EAAE,CAZP;;AAcT;AACJ;AACA;AACA;AACA;AACA;AACA;AACI5X,cAAU,EAAE,IArBH;;AAuBT;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACI6X,eAAW,EAAE,EAlCJ;;AAoCT;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,eAAW,EAAE,EA/CJ;;AAiDT;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACI/O,SAAK,EAAE,OA1DE;AA2DT;AACA;AACAvI,WAAO,EAAE,EA7DA;;AA+DT;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIuX,eAAW,EAAE,IA3EJ;;AA6ET;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,mBAAe,EAAE;AA1FR,GApHE;;AAiNb;AACF;AACA;AACEC,UAAQ,EAAE;AACR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,mBAAe,EAAE,EATT;;AAWR;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,kBAAc,EAAE,EAlBR;;AAoBR;AACJ;AACA;AACA;AACA;AACA;AACA;AACIC,kBAAc,EAAE,EA3BR;;AA6BR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,eAAW,EAAE,EArCL;;AAuCR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACI/X,SAAK,EAAE,GA/CC;;AAiDR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,UAAM,EAAE,EAzDA;;AA2DR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACI+X,aAAS,EAAE,EAnEH;;AAqER;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,iBAAa,EAAE,CA7EP;;AA+ER;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,cAAU,EAAE,EAvFJ;;AAyFR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,iBAAa,EAAE,EAjGP;;AAmGR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,gBAAY,EAAE,QA3GN;;AA6GR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,gBAAY,EAAE,IArHN;;AAuHR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIC,mBAAe,EAAE,CAlIT;;AAoIR;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACIb,eA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AAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mJAAmJ;AACnJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,0BAA0B,EAAE;AAC1C,MAAM;AACN,WAAW,qpCAAqpC;AAChqC,aAAa,orBAAorB;AACjsB;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,qB;AACvB;AACA;AACA,6C;AACA;AACA;AACA,2CAA2C,4C;AAC3C;AACA;AACA,qBAAqB,iC;AACrB;AACA;AACA,e;AACA;AACA;AACA,wB;AACA;AACA;AACA,4B;AACA;AACA;AACA,wB;AACA;AACA;AACA,2CAA2C,0B;AAC3C;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,iDAAiD,wBAAwB;AACzE;AACA;AACA,sBAAsB,mCAAmC;AACzD;AACA;AACA,mC;AACA;AACA;AACA,mB;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,kCAAkC;AAClC;AACA;AACA,WAAW,8F;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW,6F;AACX;AACA;AACA,WAAW,8F;AACX;AACA;AACA,SAAS,+C;AACT;AACA;AACA,SAAS,6C;AACT;AACA;AACA,SAAS,6C;AACT;AACA;AACA,SAAS,2C;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,qCAAqC;AACvD;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,+BAA+B;AACjD;AACA;AACA,kBAAkB,uCAAuC;AACzD;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,+CAA+C;AACjE;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,SAAS,kCAAkC,EAAE,MAAM,EAAE,QAAQ,EAAE,kCAAkC,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,sBAAsB,mBAAmB,sKAAsK,EAAE,UAAU,EAAE,gBAAgB,EAAE,SAAS,EAAE,UAAU,EAAE,oBAAoB,eAAe,UAAU,oGAAoG,gFAAgF,GAAG,8CAA8C,8BAA8B,2BAA2B,EAAE,8CAA8C,EAAE,8CAA8C,EAAE,8CAA8C,EAAE,UAAU,eAAe,wDAAwD,gBAAgB,UAAU,mHAAmH,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,gLAAgL,gBAAgB,wDAAwD,EAAE,4DAA4D,gBAAgB,oBAAoB,eAAe,kCAAkC,oGAAoG,oBAAoB,GAAG,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,oBAAoB,EAAE,2BAA2B,4CAA4C,UAAU,EAAE,UAAU,gBAAgB,8CAA8C,EAAE,wDAAwD,eAAe,kCAAkC,iBAAiB,2BAA2B,EAAE,aAAa,EAAE,8CAA8C,eAAe,UAAU,gBAAgB,oBAAoB,gBAAgB,oBAAoB,gBAAgB,oBAAoB,0DAA0D,8CAA8C,6BAA6B,UAAU,GAAG,UAAU,EAAE,uBAAuB,yDAAyD,WAAW,8BAA8B,WAAW,8BAA8B,WAAW,iBAAiB,cAAc,gBAAgB,UAAU,4CAA4C,WAAW;AACpnF,iBAAiB,gFAAgF;AACjG;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,WAAW;AACX;AACA;AACA;AACA,qCAAqC,W;AACrC;AACA,qCAAqC,W;AACrC;AACA,wBAAwB,6BAA6B,W;AACrD;AACA,wBAAwB,iBAAiB,W;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kCAAkC;AAChE;AACA;AACA;AACA;AACA;AACA,wCAAwC,kBAAkB;AAC1D;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB,iBAAiB,8BAA8B,mBAAmB,yBAAyB,6HAA6H,oBAAoB,WAAW,yBAAyB,0fAA0f,EAAE,MAAM,YAAY,EAAE;AACjzB,aAAa,iBAAiB,gCAAgC,mBAAmB,gCAAgC,mBAAmB,8BAA8B,kBAAkB,kCAAkC,kBAAkB,qCAAqC,SAAS,kCAAkC,WAAW,2CAA2C,YAAY,kCAAkC,aAAa,kCAAkC,WAAW,kCAAkC,YAAY;AACpgB,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE;AACA;AACA,6BAA6B,8CAA8C;AAC3E;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAO,CAAC,0DAAI,eAAe,mBA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AEA+kB,iEAAgB,CAACrD,GAAD,EAAM3hB,MAAN,EAAcD,KAAd,EAAqB7C,IAAI,CAACsa,WAA1B,CAAhB;AAEAmK,KAAG,CAAC/iB,IAAJ,CAAS,SAAT,YAAuBmmB,SAAS,CAACtkB,CAAV,GAAcR,OAArC,cAAgD8kB,SAAS,CAACrkB,CAAV,GAAcT,OAA9D,cAAyEF,KAAzE,cAAkFC,MAAlF;AACD,CAtFM,C,CAsFJ;;AAEY;AACbskB,SAAO,EAAPA,OADa;AAEbY,MAAI,EAAJA;AAFa,CAAf,E;;;;;;;;;;;ACvfA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mJAAmJ;AACnJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,0BAA0B,EAAE;AAC1C,MAAM;AACN,WAAW,4mBAA4mB;AACvnB,aAAa,oUAAoU;AACjV;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uEAAuE;;AAEvE;AACA;;AAEA,2CAA2C;AAC3C;AACA;AACA,0CAA0C;;AAE1C;AACA;AACA,wB;AACA;AACA;AACA,sB;AACA;AACA;AACA,iBAAiB,oCAAoC;AACrD;AACA;AACA,mB;AACA;AACA;AACA,uBAAuB,e;AACvB;AACA;AACA,WAAW,kD;AACX;AACA;AACA,e;AACA;AACA;;AAEA,kBAAkB;AAClB,kEAAkE;;AAElE;AACA;AACA,qC;AACA;AACA;AACA,sC;AACA;AACA;AACA,qC;AACA;AACA;AACA,kC;AACA;AACA;AACA,4C;AACA;AACA;AACA,wC;AACA;AACA;AACA,mC;AACA;AACA;AACA,iB;AACA;AACA;AACA,uBAAuB,qB;AACvB;AACA;AACA,6C;AACA;AACA;AACA,2CAA2C,4C;AAC3C;AACA;AACA,qBAAqB,8B;AACrB;AACA;AACA,CAAC;AACD,SAAS,0BAA0B,EAAE,MAAM,cAAc,IAAI,GAAG,0BAA0B,EAAE,cAAc,EAAE,UAAU,EAAE,qEAAqE,EAAE,QAAQ,EAAE,uBAAuB,gCAAgC,QAAQ,gBAAgB,oCAAoC,uDAAuD,kDAAkD,8CAA8C,UAAU,EAAE,gBAAgB,EAAE,UAAU,eAAe,aAAa,EAAE,mCAAmC,EAAE,0BAA0B,uEAAuE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,gBAAgB,mCAAmC,EAAE,gBAAgB,EAAE,UAAU,EAAE,kCAAkC,8BAA8B,UAAU,EAAE,0BAA0B,gBAAgB,UAAU,8BAA8B,UAAU;AAC38B,iBAAiB,mEAAmE;AACpF;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,qCAAqC,W;AACrC;AACA,qCAAqC,W;AACrC;AACA,wBAAwB,6BAA6B,W;AACrD;AACA,wBAAwB,iBAAiB,W;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,W;AAC7B;AACA;AACA;AACA,mB;AACA;AACA;AACA;AACA,yBAAyB,W;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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Q,EAARA,QAHa;AAIbtX,YAAU,EAAVA,UAJa;AAKb4G,MAAI,EAAJA;AALa,CAAf,E;;;;;;;;;;;AC9fA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mJAAmJ;AACnJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,0BAA0B,EAAE;AAC1C,MAAM;AACN,WAAW,qzDAAqzD;AACh0D,aAAa,wkCAAwkC;AACrlC;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,qB;AACvB;AACA;AACA,6C;AACA;AACA;AACA,2CAA2C,4C;AAC3C;AACA;AACA,qBAAqB,qC;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,8CAA8C,WAAW,qD;AACrG;AACA;AACA,8CAA8C,gDAAgD,WAAW,yD;AACzG;AACA;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA,gCAAgC;AAChC;AACA;AACA,kCAAkC,qDAAqD;AACvF;AACA;AACA,oBAAoB;AACpB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA,uBAAuB;AACvB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,4CAA4C,WAAW;AACvD;AACA;AACA,kCAAkC,UAAU;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,qCAAqC;AACvD;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,+CAA+C;AACjE;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,+BAA+B;AACjD;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,uCAAuC;AACzD;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,8CAA8C;AAChE;AACA;AACA,kBAAkB,4CAA4C;AAC9D;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;AACD,SAAS,iDAAiD,EAAE,MAAM,EAAE,QAAQ,EAAE,kDAAkD,YAAY,MAAM,GAAG,eAAe,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,SAAS,EAAE,QAAQ,EAAE,gTAAgT,EAAE,sBAAsB,6DAA6D,uCAAuC,sFAAsF,0DAA0D,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,oCAAoC,6BAA6B,aAAa,GAAG,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,4KAA4K,2EAA2E,WAAW,gBAAgB,yOAAyO,mPAAmP,2BAA2B,EAAE,kBAAkB,yDAAyD,WAAW,eAAe,cAAc,iBAAiB,6IAA6I,0DAA0D,6BAA6B,GAAG,mSAAmS,iJAAiJ,mSAAmS,aAAa,OAAO,gBAAgB,QAAQ,GAAG,0JAA0J,EAAE,6BAA6B,EAAE,0JAA0J,EAAE,+IAA+I,eAAe,sBAAsB,iBAAiB,WAAW,iBAAiB,oJAAoJ,iBAAiB,WAAW,mSAAmS,iIAAiI,EAAE,mSAAmS,EAAE,8SAA8S,EAAE,mSAAmS,EAAE,mSAAmS,EAAE,mSAAmS,EAAE,mSAAmS,EAAE,8SAA8S,EAAE,mSAAmS,EAAE,mSAAmS,EAAE,mSAAmS,+BAA+B,aAAa,EAAE,SAAS,2CAA2C,cAAc,iBAAiB,WAAW,GAAG,WAAW,EAAE,mSAAmS,EAAE,+RAA+R,qWAAqW,0TAA0T,EAAE,mTAAmT,EAAE,cAAc,EAAE,oJAAoJ,EAAE,WAAW,EAAE,WAAW,EAAE,sBAAsB,kBAAkB,WAAW,EAAE,oJAAoJ,EAAE,oJAAoJ,EAAE,WAAW,eAAe,WAAW,GAAG,sBAAsB,EAAE,WAAW,kBAAkB,sBAAsB,eAAe,2HAA2H,GAAG,+RAA+R,EAAE,mSAAmS,EAAE,+RAA+R,EAAE,+RAA+R,EAAE,+RAA+R,EAAE,+RAA+R,EAAE,+RAA+R,EAAE,+RAA+R,EAAE,mSAAmS,EAAE,+RAA+R,EAAE,0SAA0S,EAAE,0SAA0S,EAAE,2BAA2B,eAAe,QAAQ,iCAAiC,+RAA+R,gCAAgC,mSAAmS,aAAa,OAAO,iBAAiB,uIAAuI,EAAE,mHAAmH,EAAE,mHAAmH,EAAE,8HAA8H,EAAE,8HAA8H,EAAE,WAAW,EAAE,mHAAmH,EAAE,mHAAmH,EAAE,+IAA+I,gBAAgB,WAAW,gBAAgB,WAAW,+CAA+C,WAAW,gCAAgC,+RAA+R,sFAAsF,+RAA+R,4JAA4J,+RAA+R,EAAE,mTAAmT,8BAA8B,QAAQ,kBAAkB,qGAAqG,iNAAiN,QAAQ,iBAAiB,QAAQ,GAAG,WAAW,gBAAgB,QAAQ,GAAG,WAAW,+BAA+B,QAAQ,gBAAgB,QAAQ,gBAAgB,yIAAyI,iBAAiB,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,2BAA2B,gBAAgB,4GAA4G,kBAAkB,+IAA+I,EAAE,+IAA+I,uEAAuE,OAAO,kBAAkB,qGAAqG,iBAAiB,oJAAoJ,iBAAiB,oJAAoJ,GAAG,mTAAmT,EAAE,mHAAmH,EAAE,mHAAmH,8BAA8B,QAAQ,iBAAiB,QAAQ;AACr2kB,iBAAiB,mCAAmC;AACpD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,WAAW;AACX;AACA;AACA;AACA,qCAAqC,W;AACrC;AACA,qCAAqC,W;AACrC;AACA,wBAAwB,6BAA6B,W;AACrD;AACA,wBAAwB,iBAAiB,W;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA,2BAA2B,Y;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB,iBAAiB,8BAA8B,mBAAmB,yBAAyB,mBAAmB,0xBAA0xB,mzJAAmzJ,UAAU;AACttL,aAAa,mBAAmB,6BAA6B,kBAAkB,gCAAgC,mBAAmB,gCAAgC,mBAAmB,8BAA8B,iBAAiB,kCAAkC,iBAAiB,qCAAqC,SAAS,kCAAkC,UAAU,kCAAkC,WAAW,6BAA6B,QAAQ,6DAA6D,WAAW,gCAAgC,YAAY;AACvjB,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE;AACA;AACA,6BAA6B,8CAA8C;AAC3E;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAO,CAAC,0DAAI,eAAe,mBAAO,CAAC,qDAAM;AAC1D;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA,C;;;;;;;;;;;;;AC7/BA;AAAA,IAAMS,SAAS,GAAG,SAAZA,SAAY,CAACnoB,OAAD;AAAA,8CAECA,OAAO,CAACU,UAFT,2BAGLV,OAAO,CAAC85B,aAAR,IAAyB95B,OAAO,CAAC+5B,SAH5B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hBAA+hB;AAC1iB,aAAa,oVAAoV;AACjW;AACA;AACA;;AAEA;AACA;AACA;AACA,iB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,aAAa;AACb;AACA;AACA,oCAAoC;AACpC;AACA;AACA,iCAAiC;AACjC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,2CAA2C;AAC7D;AACA;AACA,kBAAkB,+CAA+C;AACjE;AACA;AACA,kBAAkB,yCAAyC;AAC3D;AACA;AACA,kBAAkB,6CAA6C;AAC/D;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qB;AACvB;AACA;AACA,6C;AACA;AACA;AACA,2CAA2C,4C;AAC3C;AACA;AACA,qBAAqB,iC;AACrB;AACA;AACA,CAAC;AACD,SAAS,0BAA0B,EAAE,MAAM,EAAE,0BAA0B,cAAc,IAAI,GAAG,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE,oIAAoI,EAAE,uBAAuB,gCAAgC,QAAQ,gBAAgB,mGAAmG,yJAAyJ,UAAU,gBAAgB,oBAAoB,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,0CAA0C,oBAAoB,gBAAgB,UAAU,iBAAiB,aAAa,EAAE,UAAU,eAAe,UAAU,8BAA8B,UAAU,GAAG,UAAU;AAC33B,iBAAiB,qCAAqC;AACtD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,qCAAqC,W;AACrC;AACA,qCAAqC,W;AACrC;AACA,wBAAwB,6BAA6B,W;A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ACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,0BAA0B,EAAE;AAC1C,MAAM;AACN,WAAW,uSAAuS;AAClT,aAAa,0JAA0J;AACvK;AACA;AACA;;AAEA;AACA;AACA;AACA,iB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,yBAAyB;AACzB;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,SAAS,YAAY,EAAE,MAAM,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,QAAQ,EAAE,QAAQ,cAAc,gBAAgB,gBAAgB,sBAAsB,EAAE,QAAQ,EAAE,gFAAgF,eAAe,SAAS,eAAe,UAAU,gBAAgB,0BAA0B,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,0BAA0B,EAAE,QAAQ,eAAe,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,UAAU,EAAE,oBAAoB,EAAE,UAAU,EAAE,UAAU;AAC1lB,iBAAiB,2GAA2G;AAC5H;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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EAAPA,OADa;AAEbY,MAAI,EAAJA;AAFa,CAAf,E;;;;;;;;;;;ACpDA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mJAAmJ;AACnJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,0BAA0B,EAAE;AAC1C,MAAM;AACN,WAAW,mHAAmH;AAC9H,aAAa,gDAAgD;AAC7D;AACA;AACA;;AAEA;AACA;AACA;AACA,W;AACA;AACA;;AAEA;AACA;AACA,kB;AACA;AACA;AACA,CAAC;AACD,SAAS,YAAY,EAAE,MAAM,cAAc,IAAI,GAAG,iCAAiC,EAAE,QAAQ;AAC7F,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,aAAa,WAAW;AACxB,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,CAAC;;;AAGD,IAAI,IAAgE;AACpE;AACA;AACA,6BAA6B,8CAA8C;AAC3E;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAO,CAAC,0DAAI,eAAe,mBAAO,CAAC,qDAAM;AAC1D;AACA;AACA,IAAI,KAA6B,IAAI,4CAAY;AACjD;AACA;AACA,C;;;;;;;;;;;;;AC7mBA;AAAA,IAAMS,SAAS,GAAG,SAAZA,SAAY;AAAA;AAAA,CAAlB;;AAEeA,wEAAf,E;;;;;;;;;;;ACFA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mJAAmJ;AACnJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,0BAA0B,EAAE;AAC1C,MAAM;AACN,WAAW,sPAAsP,mHAAmH;AACpX,aAAa,wGAAwG,2FAA2F;AAChN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iD;AACA;AACA;AACA,sBAAsB,oB;AACtB;AACA;AACA,uBAAuB,qB;AACvB;AACA;AACA,6C;AACA;AACA;AACA,2CAA2C,4C;AAC3C;AACA;AACA,qBAAqB,+B;AACrB;AACA;AACA,CAAC;AACD,SAAS,mDAAmD,EAAE,MAAM,EAAE,oDAAoD,EAAE,oDAAoD,YAAY,cAAc,6CAA6C,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,YAAY,kDAAkD,aAAa,KAAK,GAAG,uBAAuB,iCAAiC,0BAA0B,EAAE,UAAU,EAAE,UAAU,0BAA0B,kDAAkD,iBAAiB,gBAAgB,wDAAwD,aAAa,EAAE,UAAU;AAClqB,iBAAiB,qCAAqC;AACtD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AA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WAAW,SAAS;AACvE,cAAc,0BAA0B,EAAE;AAC1C,MAAM;AACN,WAAW,6iCAA6iC;AACxjC,aAAa,yrBAAyrB;AACtsB;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,qB;AACvB;AACA;AACA,6C;AACA;AACA;AACA,2CAA2C,4C;AAC3C;AACA;AACA,qBAAqB,+B;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0B;AACA;AACA;AACA,4B;AACA;AACA;AACA,4B;AACA;AACA;AACA,oC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gC;AACA;AACA;AACA,kC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,SAAS,yBAAyB,EAAE,MAAM,EAAE,iCAAiC,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,0BAA0B,EAAE,QAAQ,EAAE,8HAA8H,EAAE,uBAAuB,mBAAmB,QAAQ,EAAE,SAAS,EAAE,8HAA8H,EAAE,8HAA8H,EAAE,8HAA8H,EAAE,8HAA8H,EAAE,8HAA8H,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,oBAAoB,+HAA+H,gBAAgB,eAAe,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,uDAAuD,EAAE,uDAAuD,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,oGAAoG,UAAU,eAAe,+CAA+C,EAAE,iCAAiC,EAAE,oBAAoB,EAAE,oBAAoB,gBAAgB,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,+CAA+C,8BAA8B,UAAU,EAAE,UAAU,EAAE,iCAAiC,4CAA4C,oBAAoB,EAAE,0BAA0B,EAAE,oCAAoC,EAAE,8CAA8C,gBAAgB,4BAA4B,EAAE,6BAA6B,gBAAgB,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,gDAAgD,EAAE,gDAAgD,EAAE,gDAAgD,EAAE,gDAAgD,EAAE,kCAAkC,EAAE,kCAAkC;AAC5qF,iBAAiB,2QAA2Q;AAC5R;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,qCAAqC,W;AACrC;AACA,qCAAqC,W;AACrC;AACA,wBAAwB,6BAA6B,W;AACrD;AACA,wBAAwB,iBAAiB,W;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8B;AACA;AACA,yB;AACA;AACA,0B;AACA;AACA,wCAAwC;AACxC;AACA;AACA,CAAC;AACD,iBAAiB,kBAAk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4CA;;;AACevrB,wEAAf,E;;;;;;;;;;;AC7CA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mJAAmJ;AACnJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,0BAA0B,EAAE;AAC1C,MAAM;AACN,WAAW,g1BAAg1B;AAC31B,aAAa,yhBAAyhB;AACtiB;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,c;AAClB;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,W;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA,SAAS,+BAA+B;AACxC;AACA;;AAEA,oBAAoB,0FAA0F;AAC9G,iBAAiB,qEAAqE;AACtF;AACA;AACA;;AAEA,oBAAoB,wFAAwF;AAC5G,iBAAiB,oFAAoF;AACrG;AACA;AACA;;AAEA,oBAAoB,uFAAuF;AAC3G,iBAAiB,mFAAmF;AACpG;AACA;AACA;;AAEA;AACA,oBAAoB,uFAAuF;AAC3G;AACA;AACA,iBAAiB,gDAAgD;AACjE;AACA;AACA;;AAEA;AACA,oBAAoB,uFAAuF;AAC3G;AACA;AACA,iBAAiB,gDAAgD;AACjE;AACA;AACA;AACA,4BAA4B,gFAAgF,W;AAC5G;AACA;AACA,4BAA4B,kFAAkF,W;AAC9G;AACA;;AAEA,uBAAuB,sEAAsE;AAC7F;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB,qFAAqF;AAC5G;AACA;AACA,6B;AACA;AACA;AACA,iB;AACA;AACA;AACA,8B;AACA;AACA;AACA,+B;AACA;AACA;AACA,8BAA8B,4FAA4F;AAC1H,gBAAgB;AAChB;AACA;AACA;AACA,8BAA8B,4FAA4F;AAC1H,eAAe;AACf;AACA;AACA;AACA,8BAA8B,4FAA4F;AAC1H;AACA;AACA,QAAQ;AACR;AACA;AACA,iC;AACA;AACA;AACA,kC;AACA;AACA;AACA,4B;AACA;AACA;AACA,6B;AACA;AACA;AACA,kC;AACA;AACA;AACA,mC;AACA;AACA;AACA,kC;AACA;AACA;AACA,mC;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qB;AACvB;AACA;AACA,6C;AACA;AACA;AACA,2CAA2C,4C;AAC3C;AACA;AACA,qBAAqB,oC;AACrB;AACA;AACA,CAAC;AACD,SAAS,sCAAsC,EAAE,MAAM,EAAE,sCAAsC,EAAE,sCAAsC,EAAE,uCAAuC,uDAAuD,KAAK,GAAG,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,sJAAsJ,EAAE,uBAAuB,iCAAiC,6HAA6H,4BAA4B,aAAa,EAAE,SAAS,gBAAgB,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,gBAAgB,sFAAsF,EAAE,oCAAoC,iDAAiD,SAAS,EAAE,gBAAgB,EAAE,SAAS,eAAe,mBAAmB,gBAAgB,SAAS,EAAE,SAAS,gBAAgB,SAAS,EAAE,SAAS,YAAY,KAAK,aAAa,KAAK,aAAa,KAAK,aAAa,WAAW,aAAa,WAAW,GAAG,iCAAiC,kHAAkH,aAAa,EAAE,mBAAmB,EAAE,UAAU,EAAE,UAAU,gBAAgB,aAAa,EAAE,UAAU,EAAE,UAAU,0DAA0D,wJAAwJ,EAAE,wJAAwJ,EAAE,wJAAwJ,EAAE,UAAU,EAAE,kKAAkK,EAAE,UAAU,EAAE,kKAAkK,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,oBAAoB,EAAE,SAAS,EAAE,UAAU,0DAA0D,WAAW,gBAAgB,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,wCAAwC,YAAY,aAAa,YAAY,GAAG,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU;AAC5vF,iBAAiB,yKAAyK;AAC1L;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,qCAAqC,W;AACrC;AACA,qCAAqC,W;AACrC;AACA,wBAAwB,6BAA6B,W;AACrD;AACA,wBAAwB,iBAAiB,W;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,W;AAC1B;AACA,wCAAwC,qBAAqB,W;AAC7D;AACA,yBAAyB,iBAAiB,oBAAoB,W;AAC9D;AACA,yBAAyB,iBAAiB,U;AAC1C;AACA,4BAA4B,W;AAC5B;AACA,4BAA4B,W;AAC5B;AACA,4BAA4B,W;AAC5B;AACA,4BAA4B,W;AAC5B;AACA,4BAA4B,W;AAC5B;AACA,4BAA4B,W;AAC5B;AACA,4BAA4B,W;AAC5B;AACA,yBAAyB,W;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,W;AAC1B;AACA,0BAA0B,W;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,W;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB,kBAAkB,gCAAgC,oBAAoB,uFAAuF,oBAAoB,kDAAkD,iCAAiC,sKAAsK,8MAA8M,qBAAqB,yCAAyC,4I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CA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,W;AACrC;AACA,qCAAqC,W;AACrC;AACA,wBAAwB,6BAA6B,W;AACrD;AACA,wBAAwB,iBAAiB,W;AACzC;AACA;AACA;AACA;AACA;AACA,4BAA4B,mCAAmC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA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ACA;AACA;;AAEA;AACA,UAAU;AACV;AACA,eAAe,kCAAkC;AACjD,iBAAiB,kCAAkC;AACnD;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mJAAmJ;AACnJ,SAAS;;AAET;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,YAAY,IAAI,WAAW,SAAS;AACvE,cAAc,0BAA0B,EAAE;AAC1C,MAAM;AACN,WAAW,8VAA8V;AACzW,aAAa,gMAAgM;AAC7M;AACA;AACA;;AAEA;AACA;AACA;AACA,iB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,gCAAgC;AAChC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,uBAAuB,qB;AACvB;AACA;AACA,6C;AACA;AACA;AACA,2CAA2C,4C;AAC3C;AACA;AACA,qBAAqB,mC;AACrB;AACA;AACA,CAAC;AACD,SAAS,0BAA0B,EAAE,MAAM,cAAc,IAAI,GAAG,0BAA0B,EAAE,cAAc,EAAE,UAAU,EAAE,6EAA6E,EAAE,QAAQ,EAAE,uBAAuB,gCAAgC,QAAQ,gBAAgB,4CAA4C,wDAAwD,UAAU,gBAAgB,UAAU,EAAE,gBAAgB,EAAE,UAAU,0CAA0C,aAAa,EAAE,UAAU,EAAE,UAAU;AACrhB,iBAAiB,qCAAqC;AACtD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC;AACjC,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL,qDAAqD;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,UAAU,wBAAwB;AAClC;AACA;AACA;AACA,qCAAqC,W;AACrC;AACA,q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","file":"mermaid.core.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"mermaid\"] = factory();\n\telse\n\t\troot[\"mermaid\"] = factory();\n})(typeof self !== \"undefined\" ? self : this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/mermaid.js\");\n","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// path.resolve([from ...], to)\n// posix version\nexports.resolve = function() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : process.cwd();\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexports.normalize = function(path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexports.isAbsolute = function(path) {\n return path.charAt(0) === '/';\n};\n\n// posix version\nexports.join = function() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n};\n\n\n// path.relative(from, to)\n// posix version\nexports.relative = function(from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n}\n\n// Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\nexports.basename = function (path, ext) {\n var f = basename(path);\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n};\n\nfunction filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b'\n ? function (str, start, len) { return str.substr(start, len) }\n : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n;\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","import { assignWithDepth } from './utils';\nimport { log } from './logger';\nimport theme from './themes';\nimport config from './defaultConfig';\n\n// debugger;\n\nexport const defaultConfig = Object.freeze(config);\n\nlet siteConfig = assignWithDepth({}, defaultConfig);\nlet configFromInitialize;\nlet directives = [];\nlet currentConfig = assignWithDepth({}, defaultConfig);\n\nexport const updateCurrentConfig = (siteCfg, _directives) => {\n // start with config beeing the siteConfig\n let cfg = assignWithDepth({}, siteCfg);\n // let sCfg = assignWithDepth(defaultConfig, siteConfigDelta);\n\n // Join directives\n let sumOfDirectives = {};\n for (let i = 0; i < _directives.length; i++) {\n const d = _directives[i];\n sanitize(d);\n\n // Apply the data from the directive where the the overrides the themeVaraibles\n sumOfDirectives = assignWithDepth(sumOfDirectives, d);\n }\n\n cfg = assignWithDepth(cfg, sumOfDirectives);\n\n if (sumOfDirectives.theme) {\n const tmpConfigFromInitialize = assignWithDepth({}, configFromInitialize);\n const themeVariables = assignWithDepth(\n tmpConfigFromInitialize.themeVariables || {},\n sumOfDirectives.themeVariables\n );\n cfg.themeVariables = theme[cfg.theme].getThemeVariables(themeVariables);\n }\n\n currentConfig = cfg;\n return cfg;\n};\n/**\n *## setSiteConfig\n *| Function | Description | Type | Values |\n *| --------- | ------------------- | ------- | ------------------ |\n *| setSiteConfig|Sets the siteConfig to desired values | Put Request | Any Values, except ones in secure array|\n ***Notes:**\n *Sets the siteConfig. The siteConfig is a protected configuration for repeat use. Calls to reset() will reset\n *the currentConfig to siteConfig. Calls to reset(configApi.defaultConfig) will reset siteConfig and currentConfig\n *to the defaultConfig\n *Note: currentConfig is set in this function\n **Default value: At default, will mirror Global Config**\n * @param conf - the base currentConfig to use as siteConfig\n * @returns {*} - the siteConfig\n */\nexport const setSiteConfig = (conf) => {\n siteConfig = assignWithDepth({}, defaultConfig);\n siteConfig = assignWithDepth(siteConfig, conf);\n\n if (conf.theme) {\n siteConfig.themeVariables = theme[conf.theme].getThemeVariables(conf.themeVariables);\n }\n\n currentConfig = updateCurrentConfig(siteConfig, directives);\n return siteConfig;\n};\n\nexport const saveConfigFromInitilize = (conf) => {\n configFromInitialize = assignWithDepth({}, conf);\n};\n\nexport const updateSiteConfig = (conf) => {\n siteConfig = assignWithDepth(siteConfig, conf);\n updateCurrentConfig(siteConfig, directives);\n\n return siteConfig;\n};\n/**\n *## getSiteConfig\n *| Function | Description | Type | Values |\n *| --------- | ------------------- | ------- | ------------------ |\n *| setSiteConfig|Returns the current siteConfig base configuration | Get Request | Returns Any Values in siteConfig|\n ***Notes**:\n *Returns **any** values in siteConfig.\n * @returns {*}\n */\nexport const getSiteConfig = () => {\n return assignWithDepth({}, siteConfig);\n};\n/**\n *## setConfig\n *| Function | Description | Type | Values |\n *| --------- | ------------------- | ------- | ------------------ |\n *| setSiteConfig|Sets the siteConfig to desired values | Put Request| Any Values, except ones in secure array|\n ***Notes**:\n *Sets the currentConfig. The parameter conf is sanitized based on the siteConfig.secure keys. Any\n *values found in conf with key found in siteConfig.secure will be replaced with the corresponding\n *siteConfig value.\n * @param conf - the potential currentConfig\n * @returns {*} - the currentConfig merged with the sanitized conf\n */\nexport const setConfig = (conf) => {\n // sanitize(conf);\n // Object.keys(conf).forEach(key => {\n // const manipulator = manipulators[key];\n // conf[key] = manipulator ? manipulator(conf[key]) : conf[key];\n // });\n\n assignWithDepth(currentConfig, conf);\n\n return getConfig();\n};\n\n/**\n * ## getConfig\n *| Function | Description | Type | Return Values |\n *| --------- | ------------------- | ------- | ------------------ |\n *| getConfig |Obtains the currentConfig | Get Request | Any Values from currentConfig|\n ***Notes**:\n *Returns **any** the currentConfig\n * @returns {*} - the currentConfig\n */\nexport const getConfig = () => {\n return assignWithDepth({}, currentConfig);\n};\n/**\n *## sanitize\n *| Function | Description | Type | Values |\n *| --------- | ------------------- | ------- | ------------------ |\n *| sanitize |Sets the siteConfig to desired values. | Put Request |None|\n *Ensures options parameter does not attempt to override siteConfig secure keys\n *Note: modifies options in-place\n * @param options - the potential setConfig parameter\n */\nexport const sanitize = (options) => {\n // Checking that options are not in the list of excluded options\n Object.keys(siteConfig.secure).forEach((key) => {\n if (typeof options[siteConfig.secure[key]] !== 'undefined') {\n // DO NOT attempt to print options[siteConfig.secure[key]] within `${}` as a malicious script\n // can exploit the logger's attempt to stringify the value and execute arbitrary code\n log.debug(\n `Denied attempt to modify a secure key ${siteConfig.secure[key]}`,\n options[siteConfig.secure[key]]\n );\n delete options[siteConfig.secure[key]];\n }\n });\n\n // Check that there no attempts of prototype pollution\n Object.keys(options).forEach((key) => {\n if (key.indexOf('__') === 0) {\n delete options[key];\n }\n });\n // Check that there no attempts of xss, there should be no tags at all in the directive\n // blocking data urls as base64 urls can contain svgs with inline script tags\n Object.keys(options).forEach((key) => {\n if (typeof options[key] === 'string') {\n if (\n options[key].indexOf('<') > -1 ||\n options[key].indexOf('>') > -1 ||\n options[key].indexOf('url(data:') > -1\n ) {\n delete options[key];\n }\n }\n if (typeof options[key] === 'object') {\n sanitize(options[key]);\n }\n });\n};\n\nexport const addDirective = (directive) => {\n if (directive.fontFamily) {\n if (!directive.themeVariables) {\n directive.themeVariables = { fontFamily: directive.fontFamily };\n } else {\n if (!directive.themeVariables.fontFamily) {\n directive.themeVariables = { fontFamily: directive.fontFamily };\n }\n }\n }\n directives.push(directive);\n updateCurrentConfig(siteConfig, directives);\n};\n\n/**\n *## reset\n *| Function | Description | Type | Required | Values |\n *| --------- | ------------------- | ------- | -------- | ------------------ |\n *| reset|Resets currentConfig to conf| Put Request | Required | None|\n *\n *| Parameter | Description |Type | Required | Values|\n *| --- | --- | --- | --- | --- |\n *| conf| base set of values, which currentConfig coul be **reset** to.| Dictionary | Required | Any Values, with respect to the secure Array|\n *\n **Notes :\n (default: current siteConfig ) (optional, default `getSiteConfig()`)\n * @param conf the base currentConfig to reset to (default: current siteConfig ) (optional, default `getSiteConfig()`)\n */\nexport const reset = () => {\n // Replace current config with siteConfig\n directives = [];\n updateCurrentConfig(siteConfig, directives);\n};\n","import intersectRect from './intersect/intersect-rect';\nimport { log } from '../logger';\nimport createLabel from './createLabel';\nimport { select } from 'd3';\nimport { getConfig } from '../config';\nimport { evaluate } from '../diagrams/common/common';\n\nconst rect = (parent, node) => {\n log.trace('Creating subgraph rect for ', node.id, node);\n\n // Add outer g element\n const shapeSvg = parent\n .insert('g')\n .attr('class', 'cluster' + (node.class ? ' ' + node.class : ''))\n .attr('id', node.id);\n\n // add the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n\n // Create the label and insert it after the rect\n const label = shapeSvg.insert('g').attr('class', 'cluster-label');\n\n const text = label\n .node()\n .appendChild(createLabel(node.labelText, node.labelStyle, undefined, true));\n\n // Get the size of the label\n let bbox = text.getBBox();\n\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = text.children[0];\n const dv = select(text);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n\n const width = node.width <= bbox.width + padding ? bbox.width + padding : node.width;\n if (node.width <= bbox.width + padding) {\n node.diff = (bbox.width - node.width) / 2;\n } else {\n node.diff = -node.padding / 2;\n }\n\n log.trace('Data ', node, JSON.stringify(node));\n // center the rect around its coordinate\n rect\n .attr('style', node.style)\n .attr('rx', node.rx)\n .attr('ry', node.ry)\n .attr('x', node.x - width / 2)\n .attr('y', node.y - node.height / 2 - halfPadding)\n .attr('width', width)\n .attr('height', node.height + padding);\n\n // Center the label\n label.attr(\n 'transform',\n 'translate(' +\n (node.x - bbox.width / 2) +\n ', ' +\n (node.y - node.height / 2 + node.padding / 3) +\n ')'\n );\n\n const rectBox = rect.node().getBBox();\n node.width = rectBox.width;\n node.height = rectBox.height;\n\n node.intersect = function (point) {\n return intersectRect(node, point);\n };\n\n return shapeSvg;\n};\n\n/**\n * Non visiable cluster where the note is group with its\n */\nconst noteGroup = (parent, node) => {\n // Add outer g element\n const shapeSvg = parent.insert('g').attr('class', 'note-cluster').attr('id', node.id);\n\n // add the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n\n // center the rect around its coordinate\n rect\n .attr('rx', node.rx)\n .attr('ry', node.ry)\n .attr('x', node.x - node.width / 2 - halfPadding)\n .attr('y', node.y - node.height / 2 - halfPadding)\n .attr('width', node.width + padding)\n .attr('height', node.height + padding)\n .attr('fill', 'none');\n\n const rectBox = rect.node().getBBox();\n node.width = rectBox.width;\n node.height = rectBox.height;\n\n node.intersect = function (point) {\n return intersectRect(node, point);\n };\n\n return shapeSvg;\n};\nconst roundedWithTitle = (parent, node) => {\n // Add outer g element\n const shapeSvg = parent.insert('g').attr('class', node.classes).attr('id', node.id);\n\n // add the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n\n // Create the label and insert it after the rect\n const label = shapeSvg.insert('g').attr('class', 'cluster-label');\n const innerRect = shapeSvg.append('rect');\n\n const text = label\n .node()\n .appendChild(createLabel(node.labelText, node.labelStyle, undefined, true));\n\n // Get the size of the label\n let bbox = text.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = text.children[0];\n const dv = select(text);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n bbox = text.getBBox();\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n\n const width = node.width <= bbox.width + node.padding ? bbox.width + node.padding : node.width;\n if (node.width <= bbox.width + node.padding) {\n node.diff = (bbox.width + node.padding * 0 - node.width) / 2;\n } else {\n node.diff = -node.padding / 2;\n }\n\n // center the rect around its coordinate\n rect\n .attr('class', 'outer')\n .attr('x', node.x - width / 2 - halfPadding)\n .attr('y', node.y - node.height / 2 - halfPadding)\n .attr('width', width + padding)\n .attr('height', node.height + padding);\n innerRect\n .attr('class', 'inner')\n .attr('x', node.x - width / 2 - halfPadding)\n .attr('y', node.y - node.height / 2 - halfPadding + bbox.height - 1)\n .attr('width', width + padding)\n .attr('height', node.height + padding - bbox.height - 3);\n\n // Center the label\n label.attr(\n 'transform',\n 'translate(' +\n (node.x - bbox.width / 2) +\n ', ' +\n (node.y -\n node.height / 2 -\n node.padding / 3 +\n (evaluate(getConfig().flowchart.htmlLabels) ? 5 : 3)) +\n ')'\n );\n\n const rectBox = rect.node().getBBox();\n node.height = rectBox.height;\n\n node.intersect = function (point) {\n return intersectRect(node, point);\n };\n\n return shapeSvg;\n};\n\nconst divider = (parent, node) => {\n // Add outer g element\n const shapeSvg = parent.insert('g').attr('class', node.classes).attr('id', node.id);\n\n // add the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n\n const padding = 0 * node.padding;\n const halfPadding = padding / 2;\n\n // center the rect around its coordinate\n rect\n .attr('class', 'divider')\n .attr('x', node.x - node.width / 2 - halfPadding)\n .attr('y', node.y - node.height / 2)\n .attr('width', node.width + padding)\n .attr('height', node.height + padding);\n\n const rectBox = rect.node().getBBox();\n node.width = rectBox.width;\n node.height = rectBox.height;\n node.diff = -node.padding / 2;\n node.intersect = function (point) {\n return intersectRect(node, point);\n };\n\n return shapeSvg;\n};\n\nconst shapes = { rect, roundedWithTitle, noteGroup, divider };\n\nlet clusterElems = {};\n\nexport const insertCluster = (elem, node) => {\n log.trace('Inserting cluster');\n const shape = node.shape || 'rect';\n clusterElems[node.id] = shapes[shape](elem, node);\n};\nexport const getClusterTitleWidth = (elem, node) => {\n const label = createLabel(node.labelText, node.labelStyle, undefined, true);\n elem.node().appendChild(label);\n const width = label.getBBox().width;\n elem.node().removeChild(label);\n return width;\n};\n\nexport const clear = () => {\n clusterElems = {};\n};\n\nexport const positionCluster = (node) => {\n log.info('Position cluster (' + node.id + ', ' + node.x + ', ' + node.y + ')');\n const el = clusterElems[node.id];\n\n el.attr('transform', 'translate(' + node.x + ', ' + node.y + ')');\n};\n","import { select } from 'd3';\nimport { log } from '../logger'; // eslint-disable-line\nimport { evaluate } from '../diagrams/common/common';\n// let vertexNode;\n// if (evaluate(getConfig().flowchart.htmlLabels)) {\n// // TODO: addHtmlLabel accepts a labelStyle. Do we possibly have that?\n// const node = {\n// label: vertexText.replace(/fa[lrsb]?:fa-[\\w-]+/g, s => ``)\n// };\n// vertexNode = addHtmlLabel(svg, node).node();\n// vertexNode.parentNode.removeChild(vertexNode);\n// } else {\n// const svgLabel = document.createElementNS('http://www.w3.org/2000/svg', 'text');\n// svgLabel.setAttribute('style', styles.labelStyle.replace('color:', 'fill:'));\n\n// const rows = vertexText.split(common.lineBreakRegex);\n\n// for (let j = 0; j < rows.length; j++) {\n// const tspan = document.createElementNS('http://www.w3.org/2000/svg', 'tspan');\n// tspan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n// tspan.setAttribute('dy', '1em');\n// tspan.setAttribute('x', '1');\n// tspan.textContent = rows[j];\n// svgLabel.appendChild(tspan);\n// }\n// vertexNode = svgLabel;\n// }\nimport { getConfig } from '../config';\n\nfunction applyStyle(dom, styleFn) {\n if (styleFn) {\n dom.attr('style', styleFn);\n }\n}\n\nfunction addHtmlLabel(node) {\n // var fo = root.append('foreignObject').attr('width', '100000');\n\n // var div = fo.append('xhtml:div');\n // div.attr('xmlns', 'http://www.w3.org/1999/xhtml');\n\n // var label = node.label;\n // switch (typeof label) {\n // case 'function':\n // div.insert(label);\n // break;\n // case 'object':\n // // Currently we assume this is a DOM object.\n // div.insert(function() {\n // return label;\n // });\n // break;\n // default:\n // div.html(label);\n // }\n\n // applyStyle(div, node.labelStyle);\n // div.style('display', 'inline-block');\n // // Fix for firefox\n // div.style('white-space', 'nowrap');\n\n // var client = div.node().getBoundingClientRect();\n // fo.attr('width', client.width).attr('height', client.height);\n const fo = select(document.createElementNS('http://www.w3.org/2000/svg', 'foreignObject'));\n const div = fo.append('xhtml:div');\n\n const label = node.label;\n const labelClass = node.isNode ? 'nodeLabel' : 'edgeLabel';\n div.html(\n '' +\n label +\n ''\n );\n\n applyStyle(div, node.labelStyle);\n div.style('display', 'inline-block');\n // Fix for firefox\n div.style('white-space', 'nowrap');\n div.attr('xmlns', 'http://www.w3.org/1999/xhtml');\n return fo.node();\n}\n\nconst createLabel = (_vertexText, style, isTitle, isNode) => {\n let vertexText = _vertexText || '';\n if (typeof vertexText === 'object') vertexText = vertexText[0];\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n // TODO: addHtmlLabel accepts a labelStyle. Do we possibly have that?\n vertexText = vertexText.replace(/\\\\n|\\n/g, '
');\n log.info('vertexText' + vertexText);\n const node = {\n isNode,\n label: vertexText.replace(\n /fa[lrsb]?:fa-[\\w-]+/g,\n (s) => ``\n ),\n labelStyle: style.replace('fill:', 'color:'),\n };\n let vertexNode = addHtmlLabel(node);\n // vertexNode.parentNode.removeChild(vertexNode);\n return vertexNode;\n } else {\n const svgLabel = document.createElementNS('http://www.w3.org/2000/svg', 'text');\n svgLabel.setAttribute('style', style.replace('color:', 'fill:'));\n let rows = [];\n if (typeof vertexText === 'string') {\n rows = vertexText.split(/\\\\n|\\n|/gi);\n } else if (Array.isArray(vertexText)) {\n rows = vertexText;\n } else {\n rows = [];\n }\n\n for (let j = 0; j < rows.length; j++) {\n const tspan = document.createElementNS('http://www.w3.org/2000/svg', 'tspan');\n tspan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n tspan.setAttribute('dy', '1em');\n tspan.setAttribute('x', '0');\n if (isTitle) {\n tspan.setAttribute('class', 'title-row');\n } else {\n tspan.setAttribute('class', 'row');\n }\n tspan.textContent = rows[j].trim();\n svgLabel.appendChild(tspan);\n }\n return svgLabel;\n }\n};\n\nexport default createLabel;\n","import { log } from '../logger'; // eslint-disable-line\nimport createLabel from './createLabel';\n// import { line, curveBasis, curveLinear, select } from 'd3';\nimport { line, curveBasis, select } from 'd3';\nimport { getConfig } from '../config';\nimport utils from '../utils';\nimport { evaluate } from '../diagrams/common/common';\n\nlet edgeLabels = {};\nlet terminalLabels = {};\n\nexport const clear = () => {\n edgeLabels = {};\n terminalLabels = {};\n};\n\nexport const insertEdgeLabel = (elem, edge) => {\n // Create the actual text element\n const labelElement = createLabel(edge.label, edge.labelStyle);\n\n // Create outer g, edgeLabel, this will be positioned after graph layout\n const edgeLabel = elem.insert('g').attr('class', 'edgeLabel');\n\n // Create inner g, label, this will be positioned now for centering the text\n const label = edgeLabel.insert('g').attr('class', 'label');\n label.node().appendChild(labelElement);\n\n // Center the label\n let bbox = labelElement.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = labelElement.children[0];\n const dv = select(labelElement);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n label.attr('transform', 'translate(' + -bbox.width / 2 + ', ' + -bbox.height / 2 + ')');\n\n // Make element accessible by id for positioning\n edgeLabels[edge.id] = edgeLabel;\n\n // Update the abstract data of the edge with the new information about its width and height\n edge.width = bbox.width;\n edge.height = bbox.height;\n\n if (edge.startLabelLeft) {\n // Create the actual text element\n const startLabelElement = createLabel(edge.startLabelLeft, edge.labelStyle);\n const startEdgeLabelLeft = elem.insert('g').attr('class', 'edgeTerminals');\n const inner = startEdgeLabelLeft.insert('g').attr('class', 'inner');\n inner.node().appendChild(startLabelElement);\n const slBox = startLabelElement.getBBox();\n inner.attr('transform', 'translate(' + -slBox.width / 2 + ', ' + -slBox.height / 2 + ')');\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].startLeft = startEdgeLabelLeft;\n }\n if (edge.startLabelRight) {\n // Create the actual text element\n const startLabelElement = createLabel(edge.startLabelRight, edge.labelStyle);\n const startEdgeLabelRight = elem.insert('g').attr('class', 'edgeTerminals');\n const inner = startEdgeLabelRight.insert('g').attr('class', 'inner');\n startEdgeLabelRight.node().appendChild(startLabelElement);\n inner.node().appendChild(startLabelElement);\n const slBox = startLabelElement.getBBox();\n inner.attr('transform', 'translate(' + -slBox.width / 2 + ', ' + -slBox.height / 2 + ')');\n\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].startRight = startEdgeLabelRight;\n }\n if (edge.endLabelLeft) {\n // Create the actual text element\n const endLabelElement = createLabel(edge.endLabelLeft, edge.labelStyle);\n const endEdgeLabelLeft = elem.insert('g').attr('class', 'edgeTerminals');\n const inner = endEdgeLabelLeft.insert('g').attr('class', 'inner');\n inner.node().appendChild(endLabelElement);\n const slBox = endLabelElement.getBBox();\n inner.attr('transform', 'translate(' + -slBox.width / 2 + ', ' + -slBox.height / 2 + ')');\n\n endEdgeLabelLeft.node().appendChild(endLabelElement);\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].endLeft = endEdgeLabelLeft;\n }\n if (edge.endLabelRight) {\n // Create the actual text element\n const endLabelElement = createLabel(edge.endLabelRight, edge.labelStyle);\n const endEdgeLabelRight = elem.insert('g').attr('class', 'edgeTerminals');\n const inner = endEdgeLabelRight.insert('g').attr('class', 'inner');\n\n inner.node().appendChild(endLabelElement);\n const slBox = endLabelElement.getBBox();\n inner.attr('transform', 'translate(' + -slBox.width / 2 + ', ' + -slBox.height / 2 + ')');\n\n endEdgeLabelRight.node().appendChild(endLabelElement);\n if (!terminalLabels[edge.id]) {\n terminalLabels[edge.id] = {};\n }\n terminalLabels[edge.id].endRight = endEdgeLabelRight;\n }\n};\n\nexport const positionEdgeLabel = (edge, paths) => {\n log.info('Moving label abc78 ', edge.id, edge.label, edgeLabels[edge.id]);\n let path = paths.updatedPath ? paths.updatedPath : paths.originalPath;\n if (edge.label) {\n const el = edgeLabels[edge.id];\n let x = edge.x;\n let y = edge.y;\n if (path) {\n // // debugger;\n const pos = utils.calcLabelPosition(path);\n log.info('Moving label from (', x, ',', y, ') to (', pos.x, ',', pos.y, ') abc78');\n // x = pos.x;\n // y = pos.y;\n }\n el.attr('transform', 'translate(' + x + ', ' + y + ')');\n }\n\n //let path = paths.updatedPath ? paths.updatedPath : paths.originalPath;\n if (edge.startLabelLeft) {\n const el = terminalLabels[edge.id].startLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n // debugger;\n const pos = utils.calcTerminalLabelPosition(0, 'start_left', path);\n x = pos.x;\n y = pos.y;\n }\n el.attr('transform', 'translate(' + x + ', ' + y + ')');\n }\n if (edge.startLabelRight) {\n const el = terminalLabels[edge.id].startRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n // debugger;\n const pos = utils.calcTerminalLabelPosition(0, 'start_right', path);\n x = pos.x;\n y = pos.y;\n }\n el.attr('transform', 'translate(' + x + ', ' + y + ')');\n }\n if (edge.endLabelLeft) {\n const el = terminalLabels[edge.id].endLeft;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n // debugger;\n const pos = utils.calcTerminalLabelPosition(0, 'end_left', path);\n x = pos.x;\n y = pos.y;\n }\n el.attr('transform', 'translate(' + x + ', ' + y + ')');\n }\n if (edge.endLabelRight) {\n const el = terminalLabels[edge.id].endRight;\n let x = edge.x;\n let y = edge.y;\n if (path) {\n // debugger;\n const pos = utils.calcTerminalLabelPosition(0, 'end_right', path);\n x = pos.x;\n y = pos.y;\n }\n el.attr('transform', 'translate(' + x + ', ' + y + ')');\n }\n};\n\n// const getRelationType = function(type) {\n// switch (type) {\n// case stateDb.relationType.AGGREGATION:\n// return 'aggregation';\n// case stateDb.relationType.EXTENSION:\n// return 'extension';\n// case stateDb.relationType.COMPOSITION:\n// return 'composition';\n// case stateDb.relationType.DEPENDENCY:\n// return 'dependency';\n// }\n// };\n\nconst outsideNode = (node, point) => {\n // log.warn('Checking bounds ', node, point);\n const x = node.x;\n const y = node.y;\n const dx = Math.abs(point.x - x);\n const dy = Math.abs(point.y - y);\n const w = node.width / 2;\n const h = node.height / 2;\n if (dx >= w || dy >= h) {\n return true;\n }\n return false;\n};\n\nexport const intersection = (node, outsidePoint, insidePoint) => {\n log.warn(`intersection calc abc89:\n outsidePoint: ${JSON.stringify(outsidePoint)}\n insidePoint : ${JSON.stringify(insidePoint)}\n node : x:${node.x} y:${node.y} w:${node.width} h:${node.height}`);\n const x = node.x;\n const y = node.y;\n\n const dx = Math.abs(x - insidePoint.x);\n // const dy = Math.abs(y - insidePoint.y);\n const w = node.width / 2;\n let r = insidePoint.x < outsidePoint.x ? w - dx : w + dx;\n const h = node.height / 2;\n\n // const edges = {\n // x1: x - w,\n // x2: x + w,\n // y1: y - h,\n // y2: y + h\n // };\n\n // if (\n // outsidePoint.x === edges.x1 ||\n // outsidePoint.x === edges.x2 ||\n // outsidePoint.y === edges.y1 ||\n // outsidePoint.y === edges.y2\n // ) {\n // log.warn('abc89 calc equals on edge', outsidePoint, edges);\n // return outsidePoint;\n // }\n\n const Q = Math.abs(outsidePoint.y - insidePoint.y);\n const R = Math.abs(outsidePoint.x - insidePoint.x);\n // log.warn();\n if (Math.abs(y - outsidePoint.y) * w > Math.abs(x - outsidePoint.x) * h) { // eslint-disable-line\n // Intersection is top or bottom of rect.\n // let q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y : y - h - outsidePoint.y;\n let q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y : y - h - outsidePoint.y;\n r = (R * q) / Q;\n const res = {\n x: insidePoint.x < outsidePoint.x ? insidePoint.x + r : insidePoint.x - R + r,\n y: insidePoint.y < outsidePoint.y ? insidePoint.y + Q - q : insidePoint.y - Q + q,\n };\n\n if (r === 0) {\n res.x = outsidePoint.x;\n res.y = outsidePoint.y;\n }\n if (R === 0) {\n res.x = outsidePoint.x;\n }\n if (Q === 0) {\n res.y = outsidePoint.y;\n }\n\n log.warn(`abc89 topp/bott calc, Q ${Q}, q ${q}, R ${R}, r ${r}`, res);\n\n return res;\n } else {\n // Intersection onn sides of rect\n if (insidePoint.x < outsidePoint.x) {\n r = outsidePoint.x - w - x;\n } else {\n // r = outsidePoint.x - w - x;\n r = x - w - outsidePoint.x;\n }\n let q = (Q * r) / R;\n // OK let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x + dx - w;\n // OK let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : outsidePoint.x + r;\n let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x - R + r;\n // let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : outsidePoint.x + r;\n let _y = insidePoint.y < outsidePoint.y ? insidePoint.y + q : insidePoint.y - q;\n log.warn(`sides calc abc89, Q ${Q}, q ${q}, R ${R}, r ${r}`, { _x, _y });\n if (r === 0) {\n _x = outsidePoint.x;\n _y = outsidePoint.y;\n }\n if (R === 0) {\n _x = outsidePoint.x;\n }\n if (Q === 0) {\n _y = outsidePoint.y;\n }\n\n return { x: _x, y: _y };\n }\n};\n/**\n * This function will page a path and node where the last point(s) in the path is inside the node\n * and return an update path ending by the border of the node.\n * @param {*} points\n * @param {*} boundryNode\n * @returns\n */\nconst cutPathAtIntersect = (_points, boundryNode) => {\n log.warn('abc88 cutPathAtIntersect', _points, boundryNode);\n let points = [];\n let lastPointOutside = _points[0];\n let isInside = false;\n _points.forEach((point) => {\n // const node = clusterDb[edge.toCluster].node;\n log.info('abc88 checking point', point, boundryNode);\n\n // check if point is inside the boundry rect\n if (!outsideNode(boundryNode, point) && !isInside) {\n // First point inside the rect found\n // Calc the intersection coord between the point anf the last opint ouside the rect\n const inter = intersection(boundryNode, lastPointOutside, point);\n log.warn('abc88 inside', point, lastPointOutside, inter);\n log.warn('abc88 intersection', inter);\n\n // // Check case where the intersection is the same as the last point\n let pointPresent = false;\n points.forEach((p) => {\n pointPresent = pointPresent || (p.x === inter.x && p.y === inter.y);\n });\n // // if (!pointPresent) {\n if (!points.find((e) => e.x === inter.x && e.y === inter.y)) {\n points.push(inter);\n } else {\n log.warn('abc88 no intersect', inter, points);\n }\n // points.push(inter);\n isInside = true;\n } else {\n // Outside\n log.warn('abc88 outside', point, lastPointOutside);\n lastPointOutside = point;\n // points.push(point);\n if (!isInside) points.push(point);\n }\n });\n log.warn('abc88 returning points', points);\n return points;\n};\n\n//(edgePaths, e, edge, clusterDb, diagramtype, graph)\nexport const insertEdge = function (elem, e, edge, clusterDb, diagramType, graph) {\n let points = edge.points;\n let pointsHasChanged = false;\n const tail = graph.node(e.v);\n var head = graph.node(e.w);\n\n log.info('abc88 InsertEdge: ', edge);\n if (head.intersect && tail.intersect) {\n points = points.slice(1, edge.points.length - 1);\n points.unshift(tail.intersect(points[0]));\n log.info(\n 'Last point',\n points[points.length - 1],\n head,\n head.intersect(points[points.length - 1])\n );\n points.push(head.intersect(points[points.length - 1]));\n }\n if (edge.toCluster) {\n log.info('to cluster abc88', clusterDb[edge.toCluster]);\n points = cutPathAtIntersect(edge.points, clusterDb[edge.toCluster].node);\n // log.trace('edge', edge);\n // points = [];\n // let lastPointOutside; // = edge.points[0];\n // let isInside = false;\n // edge.points.forEach(point => {\n // const node = clusterDb[edge.toCluster].node;\n // log.warn('checking from', edge.fromCluster, point, node);\n\n // if (!outsideNode(node, point) && !isInside) {\n // log.trace('inside', edge.toCluster, point, lastPointOutside);\n\n // // First point inside the rect\n // const inter = intersection(node, lastPointOutside, point);\n\n // let pointPresent = false;\n // points.forEach(p => {\n // pointPresent = pointPresent || (p.x === inter.x && p.y === inter.y);\n // });\n // // if (!pointPresent) {\n // if (!points.find(e => e.x === inter.x && e.y === inter.y)) {\n // points.push(inter);\n // } else {\n // log.warn('no intersect', inter, points);\n // }\n // isInside = true;\n // } else {\n // // outtside\n // lastPointOutside = point;\n // if (!isInside) points.push(point);\n // }\n // });\n pointsHasChanged = true;\n }\n\n if (edge.fromCluster) {\n log.info('from cluster abc88', clusterDb[edge.fromCluster]);\n points = cutPathAtIntersect(points.reverse(), clusterDb[edge.fromCluster].node).reverse();\n // log.warn('edge', edge);\n // log.warn('from cluster', clusterDb[edge.fromCluster], points);\n // const updatedPoints = [];\n // let lastPointOutside = edge.points[edge.points.length - 1];\n // let isInside = false;\n // for (let i = points.length - 1; i >= 0; i--) {\n // const point = points[i];\n // const node = clusterDb[edge.fromCluster].node;\n // log.warn('checking to', edge.fromCluster, point, node);\n\n // if (!outsideNode(node, point) && !isInside) {\n // log.warn('inside', edge.fromCluster, point, node);\n\n // // First point inside the rect\n // const inter = intersection(node, lastPointOutside, point);\n // log.warn('intersect', intersection(node, lastPointOutside, point));\n // let pointPresent = false;\n // points.forEach(p => {\n // pointPresent = pointPresent || (p.x === inter.x && p.y === inter.y);\n // });\n // // if (!pointPresent) {\n // if (!points.find(e => e.x === inter.x && e.y === inter.y)) {\n // updatedPoints.unshift(inter);\n // log.warn('Adding point -updated = ', updatedPoints);\n // } else {\n // log.warn('no intersect', inter, points);\n // }\n // // points.push(insterection);\n // isInside = true;\n // } else {\n // // at the outside\n // // if (!isInside) updatedPoints.unshift(point);\n // updatedPoints.unshift(point);\n // log.warn('Outside point', point, updatedPoints);\n // }\n // lastPointOutside = point;\n // }\n // points = updatedPoints;\n // points = edge.points;\n pointsHasChanged = true;\n }\n\n // The data for our line\n const lineData = points.filter((p) => !Number.isNaN(p.y));\n\n // This is the accessor function we talked about above\n let curve;\n // Currently only flowcharts get the curve from the settings, perhaps this should\n // be expanded to a common setting? Restricting it for now in order not to cause side-effects that\n // have not been thought through\n if (diagramType === 'graph' || diagramType === 'flowchart') {\n curve = edge.curve || curveBasis;\n } else {\n curve = curveBasis;\n }\n // curve = curveLinear;\n const lineFunction = line()\n .x(function (d) {\n return d.x;\n })\n .y(function (d) {\n return d.y;\n })\n .curve(curve);\n\n // Contruct stroke classes based on properties\n let strokeClasses;\n switch (edge.thickness) {\n case 'normal':\n strokeClasses = 'edge-thickness-normal';\n break;\n case 'thick':\n strokeClasses = 'edge-thickness-thick';\n break;\n default:\n strokeClasses = '';\n }\n switch (edge.pattern) {\n case 'solid':\n strokeClasses += ' edge-pattern-solid';\n break;\n case 'dotted':\n strokeClasses += ' edge-pattern-dotted';\n break;\n case 'dashed':\n strokeClasses += ' edge-pattern-dashed';\n break;\n }\n\n const svgPath = elem\n .append('path')\n .attr('d', lineFunction(lineData))\n .attr('id', edge.id)\n .attr('class', ' ' + strokeClasses + (edge.classes ? ' ' + edge.classes : ''))\n .attr('style', edge.style);\n\n // DEBUG code, adds a red circle at each edge coordinate\n // edge.points.forEach(point => {\n // elem\n // .append('circle')\n // .style('stroke', 'red')\n // .style('fill', 'red')\n // .attr('r', 1)\n // .attr('cx', point.x)\n // .attr('cy', point.y);\n // });\n\n let url = '';\n if (getConfig().state.arrowMarkerAbsolute) {\n url =\n window.location.protocol +\n '//' +\n window.location.host +\n window.location.pathname +\n window.location.search;\n url = url.replace(/\\(/g, '\\\\(');\n url = url.replace(/\\)/g, '\\\\)');\n }\n log.info('arrowTypeStart', edge.arrowTypeStart);\n log.info('arrowTypeEnd', edge.arrowTypeEnd);\n\n switch (edge.arrowTypeStart) {\n case 'arrow_cross':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-crossStart' + ')');\n break;\n case 'arrow_point':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-pointStart' + ')');\n break;\n case 'arrow_barb':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-barbStart' + ')');\n break;\n case 'arrow_circle':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-circleStart' + ')');\n break;\n case 'aggregation':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-aggregationStart' + ')');\n break;\n case 'extension':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-extensionStart' + ')');\n break;\n case 'composition':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-compositionStart' + ')');\n break;\n case 'dependency':\n svgPath.attr('marker-start', 'url(' + url + '#' + diagramType + '-dependencyStart' + ')');\n break;\n default:\n }\n switch (edge.arrowTypeEnd) {\n case 'arrow_cross':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-crossEnd' + ')');\n break;\n case 'arrow_point':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-pointEnd' + ')');\n break;\n case 'arrow_barb':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-barbEnd' + ')');\n break;\n case 'arrow_circle':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-circleEnd' + ')');\n break;\n case 'aggregation':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-aggregationEnd' + ')');\n break;\n case 'extension':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-extensionEnd' + ')');\n break;\n case 'composition':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-compositionEnd' + ')');\n break;\n case 'dependency':\n svgPath.attr('marker-end', 'url(' + url + '#' + diagramType + '-dependencyEnd' + ')');\n break;\n default:\n }\n let paths = {};\n if (pointsHasChanged) {\n paths.updatedPath = points;\n }\n paths.originalPath = edge.points;\n return paths;\n};\n","import dagre from 'dagre';\nimport graphlib from 'graphlib';\nimport insertMarkers from './markers';\nimport { updateNodeBounds } from './shapes/util';\nimport {\n clear as clearGraphlib,\n clusterDb,\n adjustClustersAndEdges,\n findNonClusterChild,\n sortNodesByHierarchy,\n} from './mermaid-graphlib';\nimport { insertNode, positionNode, clear as clearNodes, setNodeElem } from './nodes';\nimport { insertCluster, clear as clearClusters } from './clusters';\nimport { insertEdgeLabel, positionEdgeLabel, insertEdge, clear as clearEdges } from './edges';\nimport { log } from '../logger';\n\nconst recursiveRender = (_elem, graph, diagramtype, parentCluster) => {\n log.info('Graph in recursive render: XXX', graphlib.json.write(graph), parentCluster);\n const dir = graph.graph().rankdir;\n log.trace('Dir in recursive render - dir:', dir);\n\n const elem = _elem.insert('g').attr('class', 'root'); // eslint-disable-line\n if (!graph.nodes()) {\n log.info('No nodes found for', graph);\n } else {\n log.info('Recursive render XXX', graph.nodes());\n }\n if (graph.edges().length > 0) {\n log.trace('Recursive edges', graph.edge(graph.edges()[0]));\n }\n const clusters = elem.insert('g').attr('class', 'clusters'); // eslint-disable-line\n const edgePaths = elem.insert('g').attr('class', 'edgePaths');\n const edgeLabels = elem.insert('g').attr('class', 'edgeLabels');\n const nodes = elem.insert('g').attr('class', 'nodes');\n\n // Insert nodes, this will insert them into the dom and each node will get a size. The size is updated\n // to the abstract node and is later used by dagre for the layout\n graph.nodes().forEach(function (v) {\n const node = graph.node(v);\n if (typeof parentCluster !== 'undefined') {\n const data = JSON.parse(JSON.stringify(parentCluster.clusterData));\n // data.clusterPositioning = true;\n log.info('Setting data for cluster XXX (', v, ') ', data, parentCluster);\n graph.setNode(parentCluster.id, data);\n if (!graph.parent(v)) {\n log.trace('Setting parent', v, parentCluster.id);\n graph.setParent(v, parentCluster.id, data);\n }\n }\n log.info('(Insert) Node XXX' + v + ': ' + JSON.stringify(graph.node(v)));\n if (node && node.clusterNode) {\n // const children = graph.children(v);\n log.info('Cluster identified', v, node.width, graph.node(v));\n const o = recursiveRender(nodes, node.graph, diagramtype, graph.node(v));\n const newEl = o.elem;\n updateNodeBounds(node, newEl);\n node.diff = o.diff || 0;\n log.info('Node bounds (abc123)', v, node, node.width, node.x, node.y);\n setNodeElem(newEl, node);\n\n log.warn('Recursive render complete ', newEl, node);\n } else {\n if (graph.children(v).length > 0) {\n // This is a cluster but not to be rendered recusively\n // Render as before\n log.info('Cluster - the non recursive path XXX', v, node.id, node, graph);\n log.info(findNonClusterChild(node.id, graph));\n clusterDb[node.id] = { id: findNonClusterChild(node.id, graph), node };\n // insertCluster(clusters, graph.node(v));\n } else {\n log.info('Node - the non recursive path', v, node.id, node);\n insertNode(nodes, graph.node(v), dir);\n }\n }\n });\n\n // Insert labels, this will insert them into the dom so that the width can be calculated\n // Also figure out which edges point to/from clusters and adjust them accordingly\n // Edges from/to clusters really points to the first child in the cluster.\n // TODO: pick optimal child in the cluster to us as link anchor\n graph.edges().forEach(function (e) {\n const edge = graph.edge(e.v, e.w, e.name);\n log.info('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(e));\n log.info('Edge ' + e.v + ' -> ' + e.w + ': ', e, ' ', JSON.stringify(graph.edge(e)));\n\n // Check if link is either from or to a cluster\n log.info('Fix', clusterDb, 'ids:', e.v, e.w, 'Translateing: ', clusterDb[e.v], clusterDb[e.w]);\n insertEdgeLabel(edgeLabels, edge);\n });\n\n graph.edges().forEach(function (e) {\n log.info('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(e));\n });\n log.info('#############################################');\n log.info('### Layout ###');\n log.info('#############################################');\n log.info(graph);\n dagre.layout(graph);\n log.info('Graph after layout:', graphlib.json.write(graph));\n // Move the nodes to the correct place\n let diff = 0;\n sortNodesByHierarchy(graph).forEach(function (v) {\n const node = graph.node(v);\n log.info('Position ' + v + ': ' + JSON.stringify(graph.node(v)));\n log.info(\n 'Position ' + v + ': (' + node.x,\n ',' + node.y,\n ') width: ',\n node.width,\n ' height: ',\n node.height\n );\n if (node && node.clusterNode) {\n // clusterDb[node.id].node = node;\n\n positionNode(node);\n } else {\n // Non cluster node\n if (graph.children(v).length > 0) {\n // A cluster in the non-recurive way\n // positionCluster(node);\n insertCluster(clusters, node);\n clusterDb[node.id].node = node;\n } else {\n positionNode(node);\n }\n }\n });\n\n // Move the edge labels to the correct place after layout\n graph.edges().forEach(function (e) {\n const edge = graph.edge(e);\n log.info('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(edge), edge);\n\n const paths = insertEdge(edgePaths, e, edge, clusterDb, diagramtype, graph);\n positionEdgeLabel(edge, paths);\n });\n\n graph.nodes().forEach(function (v) {\n const n = graph.node(v);\n log.info(v, n.type, n.diff);\n if (n.type === 'group') {\n diff = n.diff;\n }\n });\n return { elem, diff };\n};\n\nexport const render = (elem, graph, markers, diagramtype, id) => {\n insertMarkers(elem, markers, diagramtype, id);\n clearNodes();\n clearEdges();\n clearClusters();\n clearGraphlib();\n\n log.warn('Graph at first:', graphlib.json.write(graph));\n adjustClustersAndEdges(graph);\n log.warn('Graph after:', graphlib.json.write(graph));\n // log.warn('Graph ever after:', graphlib.json.write(graph.node('A').graph));\n recursiveRender(elem, graph, diagramtype);\n};\n\n// const shapeDefinitions = {};\n// export const addShape = ({ shapeType: fun }) => {\n// shapeDefinitions[shapeType] = fun;\n// };\n\n// const arrowDefinitions = {};\n// export const addArrow = ({ arrowType: fun }) => {\n// arrowDefinitions[arrowType] = fun;\n// };\n","/*\n * Borrowed with love from from dagrge-d3. Many thanks to cpettitt!\n */\n\nimport node from './intersect-node.js';\nimport circle from './intersect-circle.js';\nimport ellipse from './intersect-ellipse.js';\nimport polygon from './intersect-polygon.js';\nimport rect from './intersect-rect.js';\n\nexport default {\n node,\n circle,\n ellipse,\n polygon,\n rect,\n};\n","import intersectEllipse from './intersect-ellipse';\n\nfunction intersectCircle(node, rx, point) {\n return intersectEllipse(node, rx, rx, point);\n}\n\nexport default intersectCircle;\n","function intersectEllipse(node, rx, ry, point) {\n // Formulae from: http://mathworld.wolfram.com/Ellipse-LineIntersection.html\n\n var cx = node.x;\n var cy = node.y;\n\n var px = cx - point.x;\n var py = cy - point.y;\n\n var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px);\n\n var dx = Math.abs((rx * ry * px) / det);\n if (point.x < cx) {\n dx = -dx;\n }\n var dy = Math.abs((rx * ry * py) / det);\n if (point.y < cy) {\n dy = -dy;\n }\n\n return { x: cx + dx, y: cy + dy };\n}\n\nexport default intersectEllipse;\n","/*\n * Returns the point at which two lines, p and q, intersect or returns\n * undefined if they do not intersect.\n */\nfunction intersectLine(p1, p2, q1, q2) {\n // Algorithm from J. Avro, (ed.) Graphics Gems, No 2, Morgan Kaufmann, 1994,\n // p7 and p473.\n\n var a1, a2, b1, b2, c1, c2;\n var r1, r2, r3, r4;\n var denom, offset, num;\n var x, y;\n\n // Compute a1, b1, c1, where line joining points 1 and 2 is F(x,y) = a1 x +\n // b1 y + c1 = 0.\n a1 = p2.y - p1.y;\n b1 = p1.x - p2.x;\n c1 = p2.x * p1.y - p1.x * p2.y;\n\n // Compute r3 and r4.\n r3 = a1 * q1.x + b1 * q1.y + c1;\n r4 = a1 * q2.x + b1 * q2.y + c1;\n\n // Check signs of r3 and r4. If both point 3 and point 4 lie on\n // same side of line 1, the line segments do not intersect.\n if (r3 !== 0 && r4 !== 0 && sameSign(r3, r4)) {\n return /*DONT_INTERSECT*/;\n }\n\n // Compute a2, b2, c2 where line joining points 3 and 4 is G(x,y) = a2 x + b2 y + c2 = 0\n a2 = q2.y - q1.y;\n b2 = q1.x - q2.x;\n c2 = q2.x * q1.y - q1.x * q2.y;\n\n // Compute r1 and r2\n r1 = a2 * p1.x + b2 * p1.y + c2;\n r2 = a2 * p2.x + b2 * p2.y + c2;\n\n // Check signs of r1 and r2. If both point 1 and point 2 lie\n // on same side of second line segment, the line segments do\n // not intersect.\n if (r1 !== 0 && r2 !== 0 && sameSign(r1, r2)) {\n return /*DONT_INTERSECT*/;\n }\n\n // Line segments intersect: compute intersection point.\n denom = a1 * b2 - a2 * b1;\n if (denom === 0) {\n return /*COLLINEAR*/;\n }\n\n offset = Math.abs(denom / 2);\n\n // The denom/2 is to get rounding instead of truncating. It\n // is added or subtracted to the numerator, depending upon the\n // sign of the numerator.\n num = b1 * c2 - b2 * c1;\n x = num < 0 ? (num - offset) / denom : (num + offset) / denom;\n\n num = a2 * c1 - a1 * c2;\n y = num < 0 ? (num - offset) / denom : (num + offset) / denom;\n\n return { x: x, y: y };\n}\n\nfunction sameSign(r1, r2) {\n return r1 * r2 > 0;\n}\n\nexport default intersectLine;\n","module.exports = intersectNode;\n\nfunction intersectNode(node, point) {\n // console.info('Intersect Node');\n return node.intersect(point);\n}\n","/* eslint \"no-console\": off */\n\nimport intersectLine from './intersect-line';\n\nexport default intersectPolygon;\n\n/*\n * Returns the point ({x, y}) at which the point argument intersects with the\n * node argument assuming that it has the shape specified by polygon.\n */\nfunction intersectPolygon(node, polyPoints, point) {\n var x1 = node.x;\n var y1 = node.y;\n\n var intersections = [];\n\n var minX = Number.POSITIVE_INFINITY;\n var minY = Number.POSITIVE_INFINITY;\n if (typeof polyPoints.forEach === 'function') {\n polyPoints.forEach(function (entry) {\n minX = Math.min(minX, entry.x);\n minY = Math.min(minY, entry.y);\n });\n } else {\n minX = Math.min(minX, polyPoints.x);\n minY = Math.min(minY, polyPoints.y);\n }\n\n var left = x1 - node.width / 2 - minX;\n var top = y1 - node.height / 2 - minY;\n\n for (var i = 0; i < polyPoints.length; i++) {\n var p1 = polyPoints[i];\n var p2 = polyPoints[i < polyPoints.length - 1 ? i + 1 : 0];\n var intersect = intersectLine(\n node,\n point,\n { x: left + p1.x, y: top + p1.y },\n { x: left + p2.x, y: top + p2.y }\n );\n if (intersect) {\n intersections.push(intersect);\n }\n }\n\n if (!intersections.length) {\n // console.log('NO INTERSECTION FOUND, RETURN NODE CENTER', node);\n return node;\n }\n\n if (intersections.length > 1) {\n // More intersections, find the one nearest to edge end point\n intersections.sort(function (p, q) {\n var pdx = p.x - point.x;\n var pdy = p.y - point.y;\n var distp = Math.sqrt(pdx * pdx + pdy * pdy);\n\n var qdx = q.x - point.x;\n var qdy = q.y - point.y;\n var distq = Math.sqrt(qdx * qdx + qdy * qdy);\n\n return distp < distq ? -1 : distp === distq ? 0 : 1;\n });\n }\n return intersections[0];\n}\n","const intersectRect = (node, point) => {\n var x = node.x;\n var y = node.y;\n\n // Rectangle intersection algorithm from:\n // http://math.stackexchange.com/questions/108113/find-edge-between-two-boxes\n var dx = point.x - x;\n var dy = point.y - y;\n var w = node.width / 2;\n var h = node.height / 2;\n\n var sx, sy;\n if (Math.abs(dy) * w > Math.abs(dx) * h) {\n // Intersection is top or bottom of rect.\n if (dy < 0) {\n h = -h;\n }\n sx = dy === 0 ? 0 : (h * dx) / dy;\n sy = h;\n } else {\n // Intersection is left or right of rect.\n if (dx < 0) {\n w = -w;\n }\n sx = w;\n sy = dx === 0 ? 0 : (w * dy) / dx;\n }\n\n return { x: x + sx, y: y + sy };\n};\n\nexport default intersectRect;\n","/**\n * Setup arrow head and define the marker. The result is appended to the svg.\n */\n\nimport { log } from '../logger';\n\n// Only add the number of markers that the diagram needs\nconst insertMarkers = (elem, markerArray, type, id) => {\n markerArray.forEach((markerName) => {\n markers[markerName](elem, type, id);\n });\n};\n\nconst extension = (elem, type, id) => {\n log.trace('Making markers for ', id);\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-extensionStart')\n .attr('class', 'marker extension ' + type)\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 1,7 L18,13 V 1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-extensionEnd')\n .attr('class', 'marker extension ' + type)\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 1,1 V 13 L18,7 Z'); // this is actual shape for arrowhead\n};\n\nconst composition = (elem, type) => {\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-compositionStart')\n .attr('class', 'marker composition ' + type)\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-compositionEnd')\n .attr('class', 'marker composition ' + type)\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n};\nconst aggregation = (elem, type) => {\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-aggregationStart')\n .attr('class', 'marker aggregation ' + type)\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-aggregationEnd')\n .attr('class', 'marker aggregation ' + type)\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n};\nconst dependency = (elem, type) => {\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-dependencyStart')\n .attr('class', 'marker dependency ' + type)\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 5,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-dependencyEnd')\n .attr('class', 'marker dependency ' + type)\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L14,7 L9,1 Z');\n};\nconst point = (elem, type) => {\n elem\n .append('marker')\n .attr('id', type + '-pointEnd')\n .attr('class', 'marker ' + type)\n .attr('viewBox', '0 0 10 10')\n .attr('refX', 9)\n .attr('refY', 5)\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('markerWidth', 12)\n .attr('markerHeight', 12)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 0 0 L 10 5 L 0 10 z')\n .attr('class', 'arrowMarkerPath')\n .style('stroke-width', 1)\n .style('stroke-dasharray', '1,0');\n elem\n .append('marker')\n .attr('id', type + '-pointStart')\n .attr('class', 'marker ' + type)\n .attr('viewBox', '0 0 10 10')\n .attr('refX', 0)\n .attr('refY', 5)\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('markerWidth', 12)\n .attr('markerHeight', 12)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 0 5 L 10 10 L 10 0 z')\n .attr('class', 'arrowMarkerPath')\n .style('stroke-width', 1)\n .style('stroke-dasharray', '1,0');\n};\nconst circle = (elem, type) => {\n elem\n .append('marker')\n .attr('id', type + '-circleEnd')\n .attr('class', 'marker ' + type)\n .attr('viewBox', '0 0 10 10')\n .attr('refX', 11)\n .attr('refY', 5)\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('markerWidth', 11)\n .attr('markerHeight', 11)\n .attr('orient', 'auto')\n .append('circle')\n .attr('cx', '5')\n .attr('cy', '5')\n .attr('r', '5')\n .attr('class', 'arrowMarkerPath')\n .style('stroke-width', 1)\n .style('stroke-dasharray', '1,0');\n\n elem\n .append('marker')\n .attr('id', type + '-circleStart')\n .attr('class', 'marker ' + type)\n .attr('viewBox', '0 0 10 10')\n .attr('refX', -1)\n .attr('refY', 5)\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('markerWidth', 11)\n .attr('markerHeight', 11)\n .attr('orient', 'auto')\n .append('circle')\n .attr('cx', '5')\n .attr('cy', '5')\n .attr('r', '5')\n .attr('class', 'arrowMarkerPath')\n .style('stroke-width', 1)\n .style('stroke-dasharray', '1,0');\n};\nconst cross = (elem, type) => {\n elem\n .append('marker')\n .attr('id', type + '-crossEnd')\n .attr('class', 'marker cross ' + type)\n .attr('viewBox', '0 0 11 11')\n .attr('refX', 12)\n .attr('refY', 5.2)\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('markerWidth', 11)\n .attr('markerHeight', 11)\n .attr('orient', 'auto')\n .append('path')\n // .attr('stroke', 'black')\n .attr('d', 'M 1,1 l 9,9 M 10,1 l -9,9')\n .attr('class', 'arrowMarkerPath')\n .style('stroke-width', 2)\n .style('stroke-dasharray', '1,0');\n\n elem\n .append('marker')\n .attr('id', type + '-crossStart')\n .attr('class', 'marker cross ' + type)\n .attr('viewBox', '0 0 11 11')\n .attr('refX', -1)\n .attr('refY', 5.2)\n .attr('markerUnits', 'userSpaceOnUse')\n .attr('markerWidth', 11)\n .attr('markerHeight', 11)\n .attr('orient', 'auto')\n .append('path')\n // .attr('stroke', 'black')\n .attr('d', 'M 1,1 l 9,9 M 10,1 l -9,9')\n .attr('class', 'arrowMarkerPath')\n .style('stroke-width', 2)\n .style('stroke-dasharray', '1,0');\n};\nconst barb = (elem, type) => {\n elem\n .append('defs')\n .append('marker')\n .attr('id', type + '-barbEnd')\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 14)\n .attr('markerUnits', 'strokeWidth')\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 19,7 L9,13 L14,7 L9,1 Z');\n};\n\n// TODO rename the class diagram markers to something shape descriptive and semanitc free\nconst markers = {\n extension,\n composition,\n aggregation,\n dependency,\n point,\n circle,\n cross,\n barb,\n};\nexport default insertMarkers;\n","/**\n * Decorates with functions required by mermaids dagre-wrapper.\n */\nimport { log } from '../logger';\nimport graphlib from 'graphlib';\n\nexport let clusterDb = {};\nlet decendants = {};\nlet parents = {};\n\nexport const clear = () => {\n decendants = {};\n parents = {};\n clusterDb = {};\n};\n\nconst isDecendant = (id, ancenstorId) => {\n // if (id === ancenstorId) return true;\n\n log.trace(\n 'In isDecendant',\n ancenstorId,\n ' ',\n id,\n ' = ',\n decendants[ancenstorId].indexOf(id) >= 0\n );\n if (decendants[ancenstorId].indexOf(id) >= 0) return true;\n\n return false;\n};\n\nconst edgeInCluster = (edge, clusterId) => {\n log.info('Decendants of ', clusterId, ' is ', decendants[clusterId]);\n log.info('Edge is ', edge);\n // Edges to/from the cluster is not in the cluster, they are in the parent\n if (edge.v === clusterId) return false;\n if (edge.w === clusterId) return false;\n\n if (!decendants[clusterId]) {\n log.debug('Tilt, ', clusterId, ',not in decendants');\n return false;\n }\n log.info('Here ');\n\n if (decendants[clusterId].indexOf(edge.v) >= 0) return true;\n if (isDecendant(edge.v, clusterId)) return true;\n if (isDecendant(edge.w, clusterId)) return true;\n if (decendants[clusterId].indexOf(edge.w) >= 0) return true;\n\n return false;\n};\n\nconst copy = (clusterId, graph, newGraph, rootId) => {\n log.warn(\n 'Copying children of ',\n clusterId,\n 'root',\n rootId,\n 'data',\n graph.node(clusterId),\n rootId\n );\n const nodes = graph.children(clusterId) || [];\n\n // Include cluster node if it is not the root\n if (clusterId !== rootId) {\n nodes.push(clusterId);\n }\n\n log.warn('Copying (nodes) clusterId', clusterId, 'nodes', nodes);\n\n nodes.forEach((node) => {\n if (graph.children(node).length > 0) {\n copy(node, graph, newGraph, rootId);\n } else {\n const data = graph.node(node);\n log.info('cp ', node, ' to ', rootId, ' with parent ', clusterId); //,node, data, ' parent is ', clusterId);\n newGraph.setNode(node, data);\n if (rootId !== graph.parent(node)) {\n log.warn('Setting parent', node, graph.parent(node));\n newGraph.setParent(node, graph.parent(node));\n }\n\n if (clusterId !== rootId && node !== clusterId) {\n log.debug('Setting parent', node, clusterId);\n newGraph.setParent(node, clusterId);\n } else {\n log.info('In copy ', clusterId, 'root', rootId, 'data', graph.node(clusterId), rootId);\n log.debug(\n 'Not Setting parent for node=',\n node,\n 'cluster!==rootId',\n clusterId !== rootId,\n 'node!==clusterId',\n node !== clusterId\n );\n }\n const edges = graph.edges(node);\n log.debug('Copying Edges', edges);\n edges.forEach((edge) => {\n log.info('Edge', edge);\n const data = graph.edge(edge.v, edge.w, edge.name);\n log.info('Edge data', data, rootId);\n try {\n // Do not copy edges in and out of the root cluster, they belong to the parent graph\n if (edgeInCluster(edge, rootId)) {\n log.info('Copying as ', edge.v, edge.w, data, edge.name);\n newGraph.setEdge(edge.v, edge.w, data, edge.name);\n log.info('newGraph edges ', newGraph.edges(), newGraph.edge(newGraph.edges()[0]));\n } else {\n log.info(\n 'Skipping copy of edge ',\n edge.v,\n '-->',\n edge.w,\n ' rootId: ',\n rootId,\n ' clusterId:',\n clusterId\n );\n }\n } catch (e) {\n log.error(e);\n }\n });\n }\n log.debug('Removing node', node);\n graph.removeNode(node);\n });\n};\nexport const extractDecendants = (id, graph) => {\n // log.debug('Extracting ', id);\n const children = graph.children(id);\n let res = [].concat(children);\n\n for (let i = 0; i < children.length; i++) {\n parents[children[i]] = id;\n res = res.concat(extractDecendants(children[i], graph));\n }\n\n return res;\n};\n\n/**\n * Validates the graph, checking that all parent child relation points to existing nodes and that\n * edges between nodes also ia correct. When not correct the function logs the discrepancies.\n * @param {graphlib graph} g\n */\nexport const validate = (graph) => {\n const edges = graph.edges();\n log.trace('Edges: ', edges);\n for (let i = 0; i < edges.length; i++) {\n if (graph.children(edges[i].v).length > 0) {\n log.trace('The node ', edges[i].v, ' is part of and edge even though it has children');\n return false;\n }\n if (graph.children(edges[i].w).length > 0) {\n log.trace('The node ', edges[i].w, ' is part of and edge even though it has children');\n return false;\n }\n }\n return true;\n};\n\n/**\n * Finds a child that is not a cluster. When faking a edge between a node and a cluster.\n * @param {Finds a } id\n * @param {*} graph\n */\nexport const findNonClusterChild = (id, graph) => {\n // const node = graph.node(id);\n log.trace('Searching', id);\n // const children = graph.children(id).reverse();\n const children = graph.children(id); //.reverse();\n log.trace('Searching children of id ', id, children);\n if (children.length < 1) {\n log.trace('This is a valid node', id);\n return id;\n }\n for (let i = 0; i < children.length; i++) {\n const _id = findNonClusterChild(children[i], graph);\n if (_id) {\n log.trace('Found replacement for', id, ' => ', _id);\n return _id;\n }\n }\n};\n\nconst getAnchorId = (id) => {\n if (!clusterDb[id]) {\n return id;\n }\n // If the cluster has no external connections\n if (!clusterDb[id].externalConnections) {\n return id;\n }\n\n // Return the replacement node\n if (clusterDb[id]) {\n return clusterDb[id].id;\n }\n return id;\n};\n\nexport const adjustClustersAndEdges = (graph, depth) => {\n if (!graph || depth > 10) {\n log.debug('Opting out, no graph ');\n return;\n } else {\n log.debug('Opting in, graph ');\n }\n // Go through the nodes and for each cluster found, save a replacment node, this can be used when\n // faking a link to a cluster\n graph.nodes().forEach(function (id) {\n const children = graph.children(id);\n if (children.length > 0) {\n log.warn(\n 'Cluster identified',\n id,\n ' Replacement id in edges: ',\n findNonClusterChild(id, graph)\n );\n decendants[id] = extractDecendants(id, graph);\n clusterDb[id] = { id: findNonClusterChild(id, graph), clusterData: graph.node(id) };\n }\n });\n\n // Check incoming and outgoing edges for each cluster\n graph.nodes().forEach(function (id) {\n const children = graph.children(id);\n const edges = graph.edges();\n if (children.length > 0) {\n log.debug('Cluster identified', id, decendants);\n edges.forEach((edge) => {\n // log.debug('Edge, decendants: ', edge, decendants[id]);\n\n // Check if any edge leaves the cluster (not the actual cluster, thats a link from the box)\n if (edge.v !== id && edge.w !== id) {\n // Any edge where either the one of the nodes is decending to the cluster but not the other\n // if (decendants[id].indexOf(edge.v) < 0 && decendants[id].indexOf(edge.w) < 0) {\n\n const d1 = isDecendant(edge.v, id);\n const d2 = isDecendant(edge.w, id);\n\n // d1 xor d2 - if either d1 is true and d2 is false or the other way around\n if (d1 ^ d2) {\n log.warn('Edge: ', edge, ' leaves cluster ', id);\n log.warn('Decendants of XXX ', id, ': ', decendants[id]);\n clusterDb[id].externalConnections = true;\n }\n }\n });\n } else {\n log.debug('Not a cluster ', id, decendants);\n }\n });\n\n // For clusters with incoming and/or outgoing edges translate those edges to a real node\n // in the cluster inorder to fake the edge\n graph.edges().forEach(function (e) {\n const edge = graph.edge(e);\n log.warn('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(e));\n log.warn('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(graph.edge(e)));\n\n let v = e.v;\n let w = e.w;\n // Check if link is either from or to a cluster\n log.warn(\n 'Fix XXX',\n clusterDb,\n 'ids:',\n e.v,\n e.w,\n 'Translateing: ',\n clusterDb[e.v],\n ' --- ',\n clusterDb[e.w]\n );\n if (clusterDb[e.v] || clusterDb[e.w]) {\n log.warn('Fixing and trixing - removing XXX', e.v, e.w, e.name);\n v = getAnchorId(e.v);\n w = getAnchorId(e.w);\n graph.removeEdge(e.v, e.w, e.name);\n if (v !== e.v) edge.fromCluster = e.v;\n if (w !== e.w) edge.toCluster = e.w;\n log.warn('Fix Replacing with XXX', v, w, e.name);\n graph.setEdge(v, w, edge, e.name);\n }\n });\n log.warn('Adjusted Graph', graphlib.json.write(graph));\n extractor(graph, 0);\n\n log.trace(clusterDb);\n\n // Remove references to extracted cluster\n // graph.edges().forEach(edge => {\n // if (isDecendant(edge.v, clusterId) || isDecendant(edge.w, clusterId)) {\n // graph.removeEdge(edge);\n // }\n // });\n};\n\nexport const extractor = (graph, depth) => {\n log.warn('extractor - ', depth, graphlib.json.write(graph), graph.children('D'));\n if (depth > 10) {\n log.error('Bailing out');\n return;\n }\n // For clusters without incoming and/or outgoing edges, create a new cluster-node\n // containing the nodes and edges in the custer in a new graph\n // for (let i = 0;)\n let nodes = graph.nodes();\n let hasChildren = false;\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n const children = graph.children(node);\n hasChildren = hasChildren || children.length > 0;\n }\n\n if (!hasChildren) {\n log.debug('Done, no node has children', graph.nodes());\n return;\n }\n // const clusters = Object.keys(clusterDb);\n // clusters.forEach(clusterId => {\n log.debug('Nodes = ', nodes, depth);\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n\n log.debug(\n 'Extracting node',\n node,\n clusterDb,\n clusterDb[node] && !clusterDb[node].externalConnections,\n !graph.parent(node),\n graph.node(node),\n graph.children('D'),\n ' Depth ',\n depth\n );\n // Note that the node might have been removed after the Object.keys call so better check\n // that it still is in the game\n if (!clusterDb[node]) {\n // Skip if the node is not a cluster\n log.debug('Not a cluster', node, depth);\n // break;\n } else if (\n !clusterDb[node].externalConnections &&\n // !graph.parent(node) &&\n graph.children(node) &&\n graph.children(node).length > 0\n ) {\n log.warn(\n 'Cluster without external connections, without a parent and with children',\n node,\n depth\n );\n\n const graphSettings = graph.graph();\n let dir = graphSettings.rankdir === 'TB' ? 'LR' : 'TB';\n if (clusterDb[node]) {\n if (clusterDb[node].clusterData && clusterDb[node].clusterData.dir) {\n dir = clusterDb[node].clusterData.dir;\n log.warn('Fixing dir', clusterDb[node].clusterData.dir, dir);\n }\n }\n\n const clusterGraph = new graphlib.Graph({\n multigraph: true,\n compound: true,\n })\n .setGraph({\n rankdir: dir, // Todo: set proper spacing\n nodesep: 50,\n ranksep: 50,\n marginx: 8,\n marginy: 8,\n })\n .setDefaultEdgeLabel(function () {\n return {};\n });\n\n log.warn('Old graph before copy', graphlib.json.write(graph));\n copy(node, graph, clusterGraph, node);\n graph.setNode(node, {\n clusterNode: true,\n id: node,\n clusterData: clusterDb[node].clusterData,\n labelText: clusterDb[node].labelText,\n graph: clusterGraph,\n });\n log.warn('New graph after copy node: (', node, ')', graphlib.json.write(clusterGraph));\n log.debug('Old graph after copy', graphlib.json.write(graph));\n } else {\n log.warn(\n 'Cluster ** ',\n node,\n ' **not meeting the criteria !externalConnections:',\n !clusterDb[node].externalConnections,\n ' no parent: ',\n !graph.parent(node),\n ' children ',\n graph.children(node) && graph.children(node).length > 0,\n graph.children('D'),\n depth\n );\n log.debug(clusterDb);\n }\n }\n\n nodes = graph.nodes();\n log.warn('New list of nodes', nodes);\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n const data = graph.node(node);\n log.warn(' Now next level', node, data);\n if (data.clusterNode) {\n extractor(data.graph, depth + 1);\n }\n }\n};\n\nconst sorter = (graph, nodes) => {\n if (nodes.length === 0) return [];\n let result = Object.assign(nodes);\n nodes.forEach((node) => {\n const children = graph.children(node);\n const sorted = sorter(graph, children);\n result = result.concat(sorted);\n });\n\n return result;\n};\n\nexport const sortNodesByHierarchy = (graph) => sorter(graph, graph.children());\n","import { select } from 'd3';\nimport { log } from '../logger'; // eslint-disable-line\nimport { labelHelper, updateNodeBounds, insertPolygonShape } from './shapes/util';\nimport { getConfig } from '../config';\nimport intersect from './intersect/index.js';\nimport createLabel from './createLabel';\nimport note from './shapes/note';\nimport { parseMember } from '../diagrams/class/svgDraw';\nimport { evaluate } from '../diagrams/common/common';\n\nconst question = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const s = w + h;\n const points = [\n { x: s / 2, y: 0 },\n { x: s, y: -s / 2 },\n { x: s / 2, y: -s },\n { x: 0, y: -s / 2 },\n ];\n\n log.info('Question main (Circle)');\n\n const questionElem = insertPolygonShape(shapeSvg, s, s, points);\n questionElem.attr('style', node.style);\n updateNodeBounds(node, questionElem);\n\n node.intersect = function (point) {\n log.warn('Intersect called');\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst choice = (parent, node) => {\n const shapeSvg = parent\n .insert('g')\n .attr('class', 'node default')\n .attr('id', node.domId || node.id);\n\n const s = 28;\n const points = [\n { x: 0, y: s / 2 },\n { x: s / 2, y: 0 },\n { x: 0, y: -s / 2 },\n { x: -s / 2, y: 0 },\n ];\n\n const choice = shapeSvg.insert('polygon', ':first-child').attr(\n 'points',\n points\n .map(function (d) {\n return d.x + ',' + d.y;\n })\n .join(' ')\n );\n // center the circle around its coordinate\n choice.attr('class', 'state-start').attr('r', 7).attr('width', 28).attr('height', 28);\n node.width = 28;\n node.height = 28;\n\n node.intersect = function (point) {\n return intersect.circle(node, 14, point);\n };\n\n return shapeSvg;\n};\n\nconst hexagon = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const f = 4;\n const h = bbox.height + node.padding;\n const m = h / f;\n const w = bbox.width + 2 * m + node.padding;\n const points = [\n { x: m, y: 0 },\n { x: w - m, y: 0 },\n { x: w, y: -h / 2 },\n { x: w - m, y: -h },\n { x: m, y: -h },\n { x: 0, y: -h / 2 },\n ];\n\n const hex = insertPolygonShape(shapeSvg, w, h, points);\n hex.attr('style', node.style);\n updateNodeBounds(node, hex);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst rect_left_inv_arrow = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: -h / 2, y: 0 },\n { x: w, y: 0 },\n { x: w, y: -h },\n { x: -h / 2, y: -h },\n { x: 0, y: -h / 2 },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n\n node.width = w + h;\n node.height = h;\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst lean_right = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: (-2 * h) / 6, y: 0 },\n { x: w - h / 6, y: 0 },\n { x: w + (2 * h) / 6, y: -h },\n { x: h / 6, y: -h },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst lean_left = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: (2 * h) / 6, y: 0 },\n { x: w + h / 6, y: 0 },\n { x: w - (2 * h) / 6, y: -h },\n { x: -h / 6, y: -h },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst trapezoid = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: (-2 * h) / 6, y: 0 },\n { x: w + (2 * h) / 6, y: 0 },\n { x: w - h / 6, y: -h },\n { x: h / 6, y: -h },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst inv_trapezoid = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: h / 6, y: 0 },\n { x: w - h / 6, y: 0 },\n { x: w + (2 * h) / 6, y: -h },\n { x: (-2 * h) / 6, y: -h },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst rect_right_inv_arrow = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: 0, y: 0 },\n { x: w + h / 2, y: 0 },\n { x: w, y: -h / 2 },\n { x: w + h / 2, y: -h },\n { x: 0, y: -h },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst cylinder = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const rx = w / 2;\n const ry = rx / (2.5 + w / 50);\n const h = bbox.height + ry + node.padding;\n\n const shape =\n 'M 0,' +\n ry +\n ' a ' +\n rx +\n ',' +\n ry +\n ' 0,0,0 ' +\n w +\n ' 0 a ' +\n rx +\n ',' +\n ry +\n ' 0,0,0 ' +\n -w +\n ' 0 l 0,' +\n h +\n ' a ' +\n rx +\n ',' +\n ry +\n ' 0,0,0 ' +\n w +\n ' 0 l 0,' +\n -h;\n\n const el = shapeSvg\n .attr('label-offset-y', ry)\n .insert('path', ':first-child')\n .attr('style', node.style)\n .attr('d', shape)\n .attr('transform', 'translate(' + -w / 2 + ',' + -(h / 2 + ry) + ')');\n\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n const pos = intersect.rect(node, point);\n const x = pos.x - node.x;\n\n if (\n rx != 0 &&\n (Math.abs(x) < node.width / 2 ||\n (Math.abs(x) == node.width / 2 && Math.abs(pos.y - node.y) > node.height / 2 - ry))\n ) {\n // ellipsis equation: x*x / a*a + y*y / b*b = 1\n // solve for y to get adjustion value for pos.y\n let y = ry * ry * (1 - (x * x) / (rx * rx));\n if (y != 0) y = Math.sqrt(y);\n y = ry - y;\n if (point.y - node.y > 0) y = -y;\n\n pos.y += y;\n }\n\n return pos;\n };\n\n return shapeSvg;\n};\n\nconst rect = (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = labelHelper(parent, node, 'node ' + node.classes, true);\n\n log.trace('Classes = ', node.classes);\n // add the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n\n rect\n .attr('class', 'basic label-container')\n .attr('style', node.style)\n .attr('rx', node.rx)\n .attr('ry', node.ry)\n .attr('x', -bbox.width / 2 - halfPadding)\n .attr('y', -bbox.height / 2 - halfPadding)\n .attr('width', bbox.width + node.padding)\n .attr('height', bbox.height + node.padding);\n\n updateNodeBounds(node, rect);\n\n node.intersect = function (point) {\n return intersect.rect(node, point);\n };\n\n return shapeSvg;\n};\n\nconst rectWithTitle = (parent, node) => {\n // const { shapeSvg, bbox, halfPadding } = labelHelper(parent, node, 'node ' + node.classes);\n\n let classes;\n if (!node.classes) {\n classes = 'node default';\n } else {\n classes = 'node ' + node.classes;\n }\n // Add outer g element\n const shapeSvg = parent\n .insert('g')\n .attr('class', classes)\n .attr('id', node.domId || node.id);\n\n // Create the title label and insert it after the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n // const innerRect = shapeSvg.insert('rect');\n const innerLine = shapeSvg.insert('line');\n\n const label = shapeSvg.insert('g').attr('class', 'label');\n\n const text2 = node.labelText.flat ? node.labelText.flat() : node.labelText;\n // const text2 = typeof text2prim === 'object' ? text2prim[0] : text2prim;\n\n let title = '';\n if (typeof text2 === 'object') {\n title = text2[0];\n } else {\n title = text2;\n }\n log.info('Label text abc79', title, text2, typeof text2 === 'object');\n\n const text = label.node().appendChild(createLabel(title, node.labelStyle, true, true));\n let bbox;\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = text.children[0];\n const dv = select(text);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n log.info('Text 2', text2);\n const textRows = text2.slice(1, text2.length);\n let titleBox = text.getBBox();\n const descr = label\n .node()\n .appendChild(\n createLabel(textRows.join ? textRows.join('
') : textRows, node.labelStyle, true, true)\n );\n\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = descr.children[0];\n const dv = select(descr);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n // bbox = label.getBBox();\n // log.info(descr);\n const halfPadding = node.padding / 2;\n select(descr).attr(\n 'transform',\n 'translate( ' +\n // (titleBox.width - bbox.width) / 2 +\n (bbox.width > titleBox.width ? 0 : (titleBox.width - bbox.width) / 2) +\n ', ' +\n (titleBox.height + halfPadding + 5) +\n ')'\n );\n select(text).attr(\n 'transform',\n 'translate( ' +\n // (titleBox.width - bbox.width) / 2 +\n (bbox.width < titleBox.width ? 0 : -(titleBox.width - bbox.width) / 2) +\n ', ' +\n 0 +\n ')'\n );\n // Get the size of the label\n\n // Bounding box for title and text\n bbox = label.node().getBBox();\n\n // Center the label\n label.attr(\n 'transform',\n 'translate(' + -bbox.width / 2 + ', ' + (-bbox.height / 2 - halfPadding + 3) + ')'\n );\n\n rect\n .attr('class', 'outer title-state')\n .attr('x', -bbox.width / 2 - halfPadding)\n .attr('y', -bbox.height / 2 - halfPadding)\n .attr('width', bbox.width + node.padding)\n .attr('height', bbox.height + node.padding);\n\n innerLine\n .attr('class', 'divider')\n .attr('x1', -bbox.width / 2 - halfPadding)\n .attr('x2', bbox.width / 2 + halfPadding)\n .attr('y1', -bbox.height / 2 - halfPadding + titleBox.height + halfPadding)\n .attr('y2', -bbox.height / 2 - halfPadding + titleBox.height + halfPadding);\n\n updateNodeBounds(node, rect);\n\n node.intersect = function (point) {\n return intersect.rect(node, point);\n };\n\n return shapeSvg;\n};\n\nconst stadium = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const h = bbox.height + node.padding;\n const w = bbox.width + h / 4 + node.padding;\n\n // add the rect\n const rect = shapeSvg\n .insert('rect', ':first-child')\n .attr('style', node.style)\n .attr('rx', h / 2)\n .attr('ry', h / 2)\n .attr('x', -w / 2)\n .attr('y', -h / 2)\n .attr('width', w)\n .attr('height', h);\n\n updateNodeBounds(node, rect);\n\n node.intersect = function (point) {\n return intersect.rect(node, point);\n };\n\n return shapeSvg;\n};\n\nconst circle = (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = labelHelper(parent, node, undefined, true);\n const circle = shapeSvg.insert('circle', ':first-child');\n\n // center the circle around its coordinate\n circle\n .attr('style', node.style)\n .attr('rx', node.rx)\n .attr('ry', node.ry)\n .attr('r', bbox.width / 2 + halfPadding)\n .attr('width', bbox.width + node.padding)\n .attr('height', bbox.height + node.padding);\n\n log.info('Circle main');\n\n updateNodeBounds(node, circle);\n\n node.intersect = function (point) {\n log.info('Circle intersect', node, bbox.width / 2 + halfPadding, point);\n return intersect.circle(node, bbox.width / 2 + halfPadding, point);\n };\n\n return shapeSvg;\n};\n\nconst subroutine = (parent, node) => {\n const { shapeSvg, bbox } = labelHelper(parent, node, undefined, true);\n\n const w = bbox.width + node.padding;\n const h = bbox.height + node.padding;\n const points = [\n { x: 0, y: 0 },\n { x: w, y: 0 },\n { x: w, y: -h },\n { x: 0, y: -h },\n { x: 0, y: 0 },\n { x: -8, y: 0 },\n { x: w + 8, y: 0 },\n { x: w + 8, y: -h },\n { x: -8, y: -h },\n { x: -8, y: 0 },\n ];\n\n const el = insertPolygonShape(shapeSvg, w, h, points);\n el.attr('style', node.style);\n updateNodeBounds(node, el);\n\n node.intersect = function (point) {\n return intersect.polygon(node, points, point);\n };\n\n return shapeSvg;\n};\n\nconst start = (parent, node) => {\n const shapeSvg = parent\n .insert('g')\n .attr('class', 'node default')\n .attr('id', node.domId || node.id);\n const circle = shapeSvg.insert('circle', ':first-child');\n\n // center the circle around its coordinate\n circle.attr('class', 'state-start').attr('r', 7).attr('width', 14).attr('height', 14);\n\n updateNodeBounds(node, circle);\n\n node.intersect = function (point) {\n return intersect.circle(node, 7, point);\n };\n\n return shapeSvg;\n};\n\nconst forkJoin = (parent, node, dir) => {\n const shapeSvg = parent\n .insert('g')\n .attr('class', 'node default')\n .attr('id', node.domId || node.id);\n\n let width = 70;\n let height = 10;\n\n if (dir === 'LR') {\n width = 10;\n height = 70;\n }\n\n const shape = shapeSvg\n .append('rect')\n .attr('x', (-1 * width) / 2)\n .attr('y', (-1 * height) / 2)\n .attr('width', width)\n .attr('height', height)\n .attr('class', 'fork-join');\n\n updateNodeBounds(node, shape);\n node.height = node.height + node.padding / 2;\n node.width = node.width + node.padding / 2;\n node.intersect = function (point) {\n return intersect.rect(node, point);\n };\n\n return shapeSvg;\n};\n\nconst end = (parent, node) => {\n const shapeSvg = parent\n .insert('g')\n .attr('class', 'node default')\n .attr('id', node.domId || node.id);\n const innerCircle = shapeSvg.insert('circle', ':first-child');\n const circle = shapeSvg.insert('circle', ':first-child');\n\n circle.attr('class', 'state-start').attr('r', 7).attr('width', 14).attr('height', 14);\n\n innerCircle.attr('class', 'state-end').attr('r', 5).attr('width', 10).attr('height', 10);\n\n updateNodeBounds(node, circle);\n\n node.intersect = function (point) {\n return intersect.circle(node, 7, point);\n };\n\n return shapeSvg;\n};\n\nconst class_box = (parent, node) => {\n const halfPadding = node.padding / 2;\n const rowPadding = 4;\n const lineHeight = 8;\n\n let classes;\n if (!node.classes) {\n classes = 'node default';\n } else {\n classes = 'node ' + node.classes;\n }\n // Add outer g element\n const shapeSvg = parent\n .insert('g')\n .attr('class', classes)\n .attr('id', node.domId || node.id);\n\n // Create the title label and insert it after the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n const topLine = shapeSvg.insert('line');\n const bottomLine = shapeSvg.insert('line');\n let maxWidth = 0;\n let maxHeight = rowPadding;\n\n const labelContainer = shapeSvg.insert('g').attr('class', 'label');\n let verticalPos = 0;\n const hasInterface = node.classData.annotations && node.classData.annotations[0];\n\n // 1. Create the labels\n const interfaceLabelText = node.classData.annotations[0]\n ? '«' + node.classData.annotations[0] + '»'\n : '';\n const interfaceLabel = labelContainer\n .node()\n .appendChild(createLabel(interfaceLabelText, node.labelStyle, true, true));\n let interfaceBBox = interfaceLabel.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = interfaceLabel.children[0];\n const dv = select(interfaceLabel);\n interfaceBBox = div.getBoundingClientRect();\n dv.attr('width', interfaceBBox.width);\n dv.attr('height', interfaceBBox.height);\n }\n if (node.classData.annotations[0]) {\n maxHeight += interfaceBBox.height + rowPadding;\n maxWidth += interfaceBBox.width;\n }\n\n let classTitleString = node.classData.id;\n\n if (node.classData.type !== undefined && node.classData.type !== '') {\n classTitleString += '<' + node.classData.type + '>';\n }\n const classTitleLabel = labelContainer\n .node()\n .appendChild(createLabel(classTitleString, node.labelStyle, true, true));\n select(classTitleLabel).attr('class', 'classTitle');\n let classTitleBBox = classTitleLabel.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = classTitleLabel.children[0];\n const dv = select(classTitleLabel);\n classTitleBBox = div.getBoundingClientRect();\n dv.attr('width', classTitleBBox.width);\n dv.attr('height', classTitleBBox.height);\n }\n maxHeight += classTitleBBox.height + rowPadding;\n if (classTitleBBox.width > maxWidth) {\n maxWidth = classTitleBBox.width;\n }\n const classAttributes = [];\n node.classData.members.forEach((str) => {\n const parsedText = parseMember(str).displayText;\n const lbl = labelContainer\n .node()\n .appendChild(createLabel(parsedText, node.labelStyle, true, true));\n let bbox = lbl.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = lbl.children[0];\n const dv = select(lbl);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n if (bbox.width > maxWidth) {\n maxWidth = bbox.width;\n }\n maxHeight += bbox.height + rowPadding;\n classAttributes.push(lbl);\n });\n\n maxHeight += lineHeight;\n\n const classMethods = [];\n node.classData.methods.forEach((str) => {\n const parsedText = parseMember(str).displayText;\n const lbl = labelContainer\n .node()\n .appendChild(createLabel(parsedText, node.labelStyle, true, true));\n let bbox = lbl.getBBox();\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = lbl.children[0];\n const dv = select(lbl);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n if (bbox.width > maxWidth) {\n maxWidth = bbox.width;\n }\n maxHeight += bbox.height + rowPadding;\n\n classMethods.push(lbl);\n });\n\n maxHeight += lineHeight;\n\n // 2. Position the labels\n\n // position the interface label\n if (hasInterface) {\n let diffX = (maxWidth - interfaceBBox.width) / 2;\n select(interfaceLabel).attr(\n 'transform',\n 'translate( ' + ((-1 * maxWidth) / 2 + diffX) + ', ' + (-1 * maxHeight) / 2 + ')'\n );\n verticalPos = interfaceBBox.height + rowPadding;\n }\n // Positin the class title label\n let diffX = (maxWidth - classTitleBBox.width) / 2;\n select(classTitleLabel).attr(\n 'transform',\n 'translate( ' +\n ((-1 * maxWidth) / 2 + diffX) +\n ', ' +\n ((-1 * maxHeight) / 2 + verticalPos) +\n ')'\n );\n verticalPos += classTitleBBox.height + rowPadding;\n\n topLine\n .attr('class', 'divider')\n .attr('x1', -maxWidth / 2 - halfPadding)\n .attr('x2', maxWidth / 2 + halfPadding)\n .attr('y1', -maxHeight / 2 - halfPadding + lineHeight + verticalPos)\n .attr('y2', -maxHeight / 2 - halfPadding + lineHeight + verticalPos);\n\n verticalPos += lineHeight;\n\n classAttributes.forEach((lbl) => {\n select(lbl).attr(\n 'transform',\n 'translate( ' +\n -maxWidth / 2 +\n ', ' +\n ((-1 * maxHeight) / 2 + verticalPos + lineHeight / 2) +\n ')'\n );\n verticalPos += classTitleBBox.height + rowPadding;\n });\n\n verticalPos += lineHeight;\n bottomLine\n .attr('class', 'divider')\n .attr('x1', -maxWidth / 2 - halfPadding)\n .attr('x2', maxWidth / 2 + halfPadding)\n .attr('y1', -maxHeight / 2 - halfPadding + lineHeight + verticalPos)\n .attr('y2', -maxHeight / 2 - halfPadding + lineHeight + verticalPos);\n\n verticalPos += lineHeight;\n\n classMethods.forEach((lbl) => {\n select(lbl).attr(\n 'transform',\n 'translate( ' + -maxWidth / 2 + ', ' + ((-1 * maxHeight) / 2 + verticalPos) + ')'\n );\n verticalPos += classTitleBBox.height + rowPadding;\n });\n //\n // let bbox;\n // if (evaluate(getConfig().flowchart.htmlLabels)) {\n // const div = interfaceLabel.children[0];\n // const dv = select(interfaceLabel);\n // bbox = div.getBoundingClientRect();\n // dv.attr('width', bbox.width);\n // dv.attr('height', bbox.height);\n // }\n // bbox = labelContainer.getBBox();\n\n // log.info('Text 2', text2);\n // const textRows = text2.slice(1, text2.length);\n // let titleBox = text.getBBox();\n // const descr = label\n // .node()\n // .appendChild(createLabel(textRows.join('
'), node.labelStyle, true, true));\n\n // if (evaluate(getConfig().flowchart.htmlLabels)) {\n // const div = descr.children[0];\n // const dv = select(descr);\n // bbox = div.getBoundingClientRect();\n // dv.attr('width', bbox.width);\n // dv.attr('height', bbox.height);\n // }\n // // bbox = label.getBBox();\n // // log.info(descr);\n // select(descr).attr(\n // 'transform',\n // 'translate( ' +\n // // (titleBox.width - bbox.width) / 2 +\n // (bbox.width > titleBox.width ? 0 : (titleBox.width - bbox.width) / 2) +\n // ', ' +\n // (titleBox.height + halfPadding + 5) +\n // ')'\n // );\n // select(text).attr(\n // 'transform',\n // 'translate( ' +\n // // (titleBox.width - bbox.width) / 2 +\n // (bbox.width < titleBox.width ? 0 : -(titleBox.width - bbox.width) / 2) +\n // ', ' +\n // 0 +\n // ')'\n // );\n // // Get the size of the label\n\n // // Bounding box for title and text\n // bbox = label.node().getBBox();\n\n // // Center the label\n // label.attr(\n // 'transform',\n // 'translate(' + -bbox.width / 2 + ', ' + (-bbox.height / 2 - halfPadding + 3) + ')'\n // );\n\n rect\n .attr('class', 'outer title-state')\n .attr('x', -maxWidth / 2 - halfPadding)\n .attr('y', -(maxHeight / 2) - halfPadding)\n .attr('width', maxWidth + node.padding)\n .attr('height', maxHeight + node.padding);\n\n // innerLine\n // .attr('class', 'divider')\n // .attr('x1', -bbox.width / 2 - halfPadding)\n // .attr('x2', bbox.width / 2 + halfPadding)\n // .attr('y1', -bbox.height / 2 - halfPadding + titleBox.height + halfPadding)\n // .attr('y2', -bbox.height / 2 - halfPadding + titleBox.height + halfPadding);\n\n updateNodeBounds(node, rect);\n\n node.intersect = function (point) {\n return intersect.rect(node, point);\n };\n\n return shapeSvg;\n};\n\nconst shapes = {\n question,\n rect,\n rectWithTitle,\n choice,\n circle,\n stadium,\n hexagon,\n rect_left_inv_arrow,\n lean_right,\n lean_left,\n trapezoid,\n inv_trapezoid,\n rect_right_inv_arrow,\n cylinder,\n start,\n end,\n note,\n subroutine,\n fork: forkJoin,\n join: forkJoin,\n class_box,\n};\n\nlet nodeElems = {};\n\nexport const insertNode = (elem, node, dir) => {\n let newEl;\n let el;\n\n // Add link when appropriate\n if (node.link) {\n newEl = elem\n .insert('svg:a')\n .attr('xlink:href', node.link)\n .attr('target', node.linkTarget || '_blank');\n el = shapes[node.shape](newEl, node, dir);\n } else {\n el = shapes[node.shape](elem, node, dir);\n newEl = el;\n }\n if (node.tooltip) {\n el.attr('title', node.tooltip);\n }\n if (node.class) {\n el.attr('class', 'node default ' + node.class);\n }\n\n nodeElems[node.id] = newEl;\n\n if (node.haveCallback) {\n nodeElems[node.id].attr('class', nodeElems[node.id].attr('class') + ' clickable');\n }\n};\nexport const setNodeElem = (elem, node) => {\n nodeElems[node.id] = elem;\n};\nexport const clear = () => {\n nodeElems = {};\n};\n\nexport const positionNode = (node) => {\n const el = nodeElems[node.id];\n log.trace(\n 'Transforming node',\n node.diff,\n node,\n 'translate(' + (node.x - node.width / 2 - 5) + ', ' + node.width / 2 + ')'\n );\n const padding = 8;\n const diff = node.diff || 0;\n if (node.clusterNode) {\n el.attr(\n 'transform',\n 'translate(' +\n (node.x + diff - node.width / 2) +\n ', ' +\n (node.y - node.height / 2 - padding) +\n ')'\n );\n } else {\n el.attr('transform', 'translate(' + node.x + ', ' + node.y + ')');\n }\n return diff;\n};\n","import { updateNodeBounds, labelHelper } from './util';\nimport { log } from '../../logger'; // eslint-disable-line\nimport intersect from '../intersect/index.js';\n\nconst note = (parent, node) => {\n const { shapeSvg, bbox, halfPadding } = labelHelper(parent, node, 'node ' + node.classes, true);\n\n log.info('Classes = ', node.classes);\n // add the rect\n const rect = shapeSvg.insert('rect', ':first-child');\n\n rect\n .attr('rx', node.rx)\n .attr('ry', node.ry)\n .attr('x', -bbox.width / 2 - halfPadding)\n .attr('y', -bbox.height / 2 - halfPadding)\n .attr('width', bbox.width + node.padding)\n .attr('height', bbox.height + node.padding);\n\n updateNodeBounds(node, rect);\n\n node.intersect = function (point) {\n return intersect.rect(node, point);\n };\n\n return shapeSvg;\n};\n\nexport default note;\n","import createLabel from '../createLabel';\nimport { getConfig } from '../../config';\nimport { select } from 'd3';\nimport { evaluate } from '../../diagrams/common/common';\nexport const labelHelper = (parent, node, _classes, isNode) => {\n let classes;\n if (!_classes) {\n classes = 'node default';\n } else {\n classes = _classes;\n }\n // Add outer g element\n const shapeSvg = parent\n .insert('g')\n .attr('class', classes)\n .attr('id', node.domId || node.id);\n\n // Create the label and insert it after the rect\n const label = shapeSvg.insert('g').attr('class', 'label').attr('style', node.labelStyle);\n\n const text = label\n .node()\n .appendChild(createLabel(node.labelText, node.labelStyle, false, isNode));\n\n // Get the size of the label\n let bbox = text.getBBox();\n\n if (evaluate(getConfig().flowchart.htmlLabels)) {\n const div = text.children[0];\n const dv = select(text);\n bbox = div.getBoundingClientRect();\n dv.attr('width', bbox.width);\n dv.attr('height', bbox.height);\n }\n\n const halfPadding = node.padding / 2;\n\n // Center the label\n label.attr('transform', 'translate(' + -bbox.width / 2 + ', ' + -bbox.height / 2 + ')');\n\n return { shapeSvg, bbox, halfPadding, label };\n};\n\nexport const updateNodeBounds = (node, element) => {\n const bbox = element.node().getBBox();\n node.width = bbox.width;\n node.height = bbox.height;\n};\n\nexport function insertPolygonShape(parent, w, h, points) {\n return parent\n .insert('polygon', ':first-child')\n .attr(\n 'points',\n points\n .map(function (d) {\n return d.x + ',' + d.y;\n })\n .join(' ')\n )\n .attr('class', 'label-container')\n .attr('transform', 'translate(' + -w / 2 + ',' + h / 2 + ')');\n}\n","import theme from './themes';\n/**\n * **Configuration methods in Mermaid version 8.6.0 have been updated, to learn more[[click here](8.6.0_docs.md)].**\n *\n * ## **What follows are config instructions for older versions**\n *\n * These are the default options which can be overridden with the initialization call like so:\n *\n * **Example 1:**\n *
\n * mermaid.initialize({\n *   flowchart:{\n *     htmlLabels: false\n *   }\n * });\n * 
\n *\n * **Example 2:**\n *
\n * <script>\n *   var config = {\n *     startOnLoad:true,\n *     flowchart:{\n *       useMaxWidth:true,\n *       htmlLabels:true,\n *       curve:'cardinal',\n *     },\n *\n *     securityLevel:'loose',\n *   };\n *   mermaid.initialize(config);\n * </script>\n * 
\n * A summary of all options and their defaults is found [here](#mermaidapi-configuration-defaults). A description of each option follows below.\n *\n * @name Configuration\n */\nconst config = {\n /**\n * theme , the CSS style sheet\n *\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | theme | Built in Themes | string | Optional | 'default', 'forest', 'dark', 'neutral', 'null'|\n *\n * **Notes:** To disable any pre-defined mermaid theme, use \"null\".\n *\n *
\n   *  \"theme\": \"forest\",\n   *  \"themeCSS\": \".node rect { fill: red; }\"\n   * 
\n */\n theme: 'default',\n themeVariables: theme['default'].getThemeVariables(),\n themeCSS: undefined,\n /* **maxTextSize** - The maximum allowed size of the users text diamgram */\n maxTextSize: 50000,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | fontFamily | specifies the font to be used in the rendered diagrams| string | Required | Any Posiable CSS FontFamily |\n *\n * **Notes:**\n * Default value: '\"trebuchet ms\", verdana, arial, sans-serif;'.\n */\n fontFamily: '\"trebuchet ms\", verdana, arial, sans-serif;',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | logLevel |This option decides the amount of logging to be used.| string \\| number | Required | 1, 2, 3, 4, 5 |\n *\n *\n * **Notes:**\n *\n * - debug: 1\n * - info: 2\n * - warn: 3\n * - error: 4\n * - fatal: 5 (default)\n */\n logLevel: 5,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | securitylevel | Level of trust for parsed diagram|string | Required | 'strict', 'loose', 'antiscript' |\n *\n * **Notes**:\n *\n * - **strict**: (**default**) tags in text are encoded, click functionality is disabled\n * - **loose**: tags in text are allowed, click functionality is enabled\n * - **antiscript**: html tags in text are allowed, (only script element is removed), click functionality is enabled\n */\n securityLevel: 'strict',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | startOnLoad | Dictates whether mermaind starts on Page load | boolean | Required | true, false |\n *\n * **Notes:** Default value: true\n */\n startOnLoad: true,\n\n /**\n * | Parameter | Description |Type | Required |Values|\n * | --- | --- | --- | --- | --- |\n * | arrowMarkerAbsolute | Controls whether or arrow markers in html code are absolute paths or anchors | boolean | Required | true, false |\n *\n *\n * **Notes**:\n *\n * This matters if you are using base tag settings.\n *\n * Default value: false\n */\n arrowMarkerAbsolute: false,\n\n /**\n * This option controls which currentConfig keys are considered _secure_ and can only be changed via\n * call to mermaidAPI.initialize. Calls to mermaidAPI.reinitialize cannot make changes to\n * the `secure` keys in the current currentConfig. This prevents malicious graph directives from\n * overriding a site's default security.\n\n * **Notes**:\n *\n * Default value: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize']\n */\n secure: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize'],\n\n /**\n * This option controls if the generated ids of nodes in the SVG are generated randomly or based on a seed.\n * If set to false, the IDs are generated based on the current date and thus are not deterministic. This is the default behaviour.\n *\n * **Notes**:\n *\n * This matters if your files are checked into sourcecontrol e.g. git and should not change unless content is changed.\n *\n * Default value: false\n */\n deterministicIds: false,\n\n /**\n * This option is the optional seed for deterministic ids. if set to undefined but deterministicIds is true, a simple number iterator is used.\n * You can set this attribute to base the seed on a static string.\n */\n deterministicIDSeed: undefined,\n\n /**\n * The object containing configurations specific for flowcharts\n */\n flowchart: {\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n *\n * The amount of padding around the diagram as a whole so that embedded diagrams have margins, expressed in pixels\n *\n * Default value: 8\n */\n diagramPadding: 8,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | htmlLabels | Flag for setting whether or not a html tag should be used for rendering labels on the edges. | boolean| Required | true, false |\n *\n * **Notes:** Default value: true.\n */\n htmlLabels: true,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | nodeSpacing | Defines the spacing between nodes on the same level | Integer | Required | Any positive Number |\n *\n * **Notes:**\n *\n * Pertains to horizontal spacing for TB (top to bottom) or BT (bottom to top) graphs, and the vertical spacing for LR as well as RL graphs.**\n *\n * Default value: 50\n */\n nodeSpacing: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | rankSpacing | Defines the spacing between nodes on different levels | Integer | Required | Any Positive Number |\n *\n * **Notes**:\n *\n * pertains to vertical spacing for TB (top to bottom) or BT (bottom to top), and the horizontal spacing for LR as well as RL graphs.\n *\n * Default value 50\n */\n rankSpacing: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | curve | Defines how mermaid renders curves for flowcharts. | string | Required | 'basis', 'linear', 'cardinal'|\n *\n * **Notes:**\n *\n * Default Vaue: 'basis'\n */\n curve: 'basis',\n // Only used in new experimental rendering\n // represents the padding between the labels and the shape\n padding: 15,\n\n /**\n * | Parameter | Description | Type | Required | Values|\n * | --- | --- | --- | --- | --- |\n * | useMaxWidth | See notes | boolean | 4 | true, false |\n *\n * **Notes:**\n *\n * When this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n\n /**\n * | Parameter | Description | Type | Required | Values|\n * | --- | --- | --- | --- | --- |\n * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper |\n *\n * **Notes:**\n *\n * Decides which rendering engine that is to be used for the rendering. Legal values are:\n * * dagre-d3\n * * dagre-wrapper - wrapper for dagre implemented in mermaid\n *\n * Default value: 'dagre-d3'\n */\n defaultRenderer: 'dagre-d3',\n },\n\n /**\n * The object containing configurations specific for sequence diagrams\n */\n sequence: {\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | activationWidth | Width of the activation rect | Integer | Required | Any Positive Value |\n *\n *\n * **Notes:** Default value :10\n */\n activationWidth: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 50\n */\n diagramMarginX: 50,\n\n /**\n *| Parameter | Description | Type | Required | Values |\n *| --- | --- | --- | --- | --- |\n *| diagramMarginY | Margin to the over and under the sequence diagram | Integer | Required | Any Positive Value |\n *\n * **Notes:** Default value: 10\n */\n diagramMarginY: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | actorMargin | Margin between actors | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 50\n */\n actorMargin: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | width | Width of actor boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 150\n */\n width: 150,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | height | Height of actor boxes | Integer | Required | Any Positive Value|\n *\n * **Notes:**\n * Default value: 65\n */\n height: 65,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 10\n */\n boxMargin: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 5\n */\n boxTextMargin: 5,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | noteMargin | margin around notes | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 10\n */\n noteMargin: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | messageMargin | Space between messages | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 35\n */\n messageMargin: 35,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | messageAlign | Multiline message alignment | string | Required | 'left', 'center', 'right' |\n *\n * **Notes:**\n * Default value: 'center'\n */\n messageAlign: 'center',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | mirrorActors | Mirror actors under diagram | boolean | Required | true, false |\n *\n * **Notes:**\n * Default value: true\n */\n mirrorActors: true,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n *\n * Depending on css styling this might need adjustment.\n *\n * Default value: 1\n */\n bottomMarginAdj: 1,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | useMaxWidth | See Notes | boolean | Required | true, false |\n *\n * **Notes:**\n * When this flag is set to true, the height and width is set to 100% and is then scaling with the\n * available space. If set to false, the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | rightAngles | display curve arrows as right angles | boolean | Required | true, false |\n *\n * **Notes:**\n *\n * This will display arrows that start and begin at the same node as right angles, rather than a curve\n *\n * Default value: false\n */\n rightAngles: false,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | showSequenceNumbers | This will show the node numbers | boolean | Required | true, false |\n *\n * **Notes:**\n * Default value: false\n */\n showSequenceNumbers: false,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | actorFontSize| This sets the font size of the actor's description | Integer | Require | Any Positive Value |\n *\n ***Notes:**\n ***Default value 14**..\n */\n actorFontSize: 14,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | actorFontFamily |This sets the font family of the actor's description | string | Required | Any Posiable CSS FontFamily |\n *\n * **Notes:**\n * Default value: \"'Open-Sans\", \"sans-serif\"'\n */\n actorFontFamily: '\"Open-Sans\", \"sans-serif\"',\n\n /**\n * This sets the font weight of the actor's description\n *\n * **Notes:**\n * Default value: 400.\n */\n actorFontWeight: 400,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | noteFontSize | This sets the font size of actor-attached notes | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 14\n */\n noteFontSize: 14,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | noteFontFamily| This sets the font family of actor-attached notes. | string | Required | Any Posiable CSS FontFamily |\n *\n * **Notes:**\n * Default value: ''\"trebuchet ms\", verdana, arial, sans-serif'\n */\n noteFontFamily: '\"trebuchet ms\", verdana, arial, sans-serif',\n\n /**\n * This sets the font weight of the note's description\n *\n * **Notes:**\n * Default value: 400\n */\n noteFontWeight: 400,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | noteAlign | This sets the text alignment of actor-attached notes | string | required | 'left', 'center', 'right'|\n *\n * **Notes:**\n * Default value: 'center'\n */\n noteAlign: 'center',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | messageFontSize | This sets the font size of actor messages | Integer | Required | Any Positive Number |\n *\n * **Notes:**\n * Default value: 16\n */\n messageFontSize: 16,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | messageFontFamily | This sets the font family of actor messages | string | Required | Any Posiable CSS FontFamily |\n *\n * **Notes:**\n * Default value: '\"trebuchet ms\", verdana, arial, sans-serif'\n */\n messageFontFamily: '\"trebuchet ms\", verdana, arial, sans-serif',\n\n /**\n * This sets the font weight of the message's description\n *\n * **Notes:**\n * Default value: 400.\n */\n messageFontWeight: 400,\n\n /**\n * This sets the auto-wrap state for the diagram\n *\n * **Notes:**\n * Default value: false.\n */\n wrap: false,\n\n /**\n * This sets the auto-wrap padding for the diagram (sides only)\n *\n * **Notes:**\n * Default value: 0.\n */\n wrapPadding: 10,\n\n /**\n * This sets the width of the loop-box (loop, alt, opt, par)\n *\n * **Notes:**\n * Default value: 50.\n */\n labelBoxWidth: 50,\n\n /**\n * This sets the height of the loop-box (loop, alt, opt, par)\n *\n * **Notes:**\n * Default value: 20.\n */\n labelBoxHeight: 20,\n\n messageFont: function () {\n return {\n fontFamily: this.messageFontFamily,\n fontSize: this.messageFontSize,\n fontWeight: this.messageFontWeight,\n };\n },\n noteFont: function () {\n return {\n fontFamily: this.noteFontFamily,\n fontSize: this.noteFontSize,\n fontWeight: this.noteFontWeight,\n };\n },\n actorFont: function () {\n return {\n fontFamily: this.actorFontFamily,\n fontSize: this.actorFontSize,\n fontWeight: this.actorFontWeight,\n };\n },\n },\n\n /**\n * The object containing configurations specific for gantt diagrams\n */\n gantt: {\n /**\n * ### titleTopMargin\n *\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | titleTopMargin | Margin top for the text over the gantt diagram | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 25\n */\n titleTopMargin: 25,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | barHeight | The height of the bars in the graph | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 20\n */\n barHeight: 20,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | barGap | The margin between the different activities in the gantt diagram | Integer | Optional | Any Positive Value |\n *\n * **Notes:**\n * Default value: 4\n */\n barGap: 4,\n\n /**\n * | Parameter | Description | Type | Required | Values|\n * | --- | --- | --- | --- | --- |\n * | topPadding | Margin between title and gantt diagram and between axis and gantt diagram. | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 50\n */\n topPadding: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values|\n * | --- | --- | --- | --- | --- |\n * | rightPadding | The space allocated for the section name to the right of the activities | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 75\n */\n rightPadding: 75,\n\n /**\n * | Parameter | Description | Type | Required | Values|\n * | --- | --- | --- | --- | --- |\n * | leftPadding | The space allocated for the section name to the left of the activities | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 75\n */\n leftPadding: 75,\n\n /**\n * | Parameter | Description | Type | Required | Values|\n * | --- | --- | --- | --- | --- |\n * | gridLineStartPadding | Vertical starting position of the grid lines | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 35\n */\n gridLineStartPadding: 35,\n\n /**\n * | Parameter | Description | Type | Required | Values|\n * | --- | --- | --- | --- | --- |\n * | fontSize | Font size | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 11\n */\n fontSize: 11,\n\n /**\n * | Parameter | Description | Type | Required | Values|\n * | --- | --- | --- | --- | --- |\n * | sectionFontSize | Font size for secions| Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 11\n */\n sectionFontSize: 11,\n\n /**\n * | Parameter | Description | Type | Required | Values|\n * | --- | --- | --- | --- | --- |\n * | numberSectionStyles | The number of alternating section styles | Integer | 4 | Any Positive Value |\n *\n * **Notes:**\n * Default value: 4\n */\n numberSectionStyles: 4,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | axisFormat | Datetime format of the axis | 3 | Required | Date in yy-mm-dd |\n *\n * **Notes:**\n *\n * This might need adjustment to match your locale and preferences\n *\n * Default value: '%Y-%m-%d'.\n */\n axisFormat: '%Y-%m-%d',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | useMaxWidth | See notes | boolean | 4 | true, false |\n *\n * **Notes:**\n *\n * When this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n\n /**\n *| Parameter | Description |Type | Required | Values|\n *| --- | --- | --- | --- | --- |\n *| topAxis | See notes | Boolean | 4 | True, False |\n *\n ***Notes:** when this flag is set date labels will be added to the\ntop of the chart\n *\n ***Default value false**.\n */\n topAxis: false,\n\n useWidth: undefined,\n },\n\n /**\n * The object containing configurations specific for journey diagrams\n */\n journey: {\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 50\n */\n diagramMarginX: 50,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | diagramMarginY | Margin to the over and under the sequence diagram. | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 10\n */\n diagramMarginY: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | actorMargin | Margin between actors | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 50\n */\n leftMargin: 150,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | width | Width of actor boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 150\n */\n width: 150,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | height | Height of actor boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 65\n */\n height: 50,\n\n /**\n *| Parameter | Description |Type | Required | Values|\n *| --- | --- | --- | --- | --- |\n *| boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 10\n */\n boxMargin: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 5\n */\n boxTextMargin: 5,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | noteMargin | Margin around notes | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Default value: 10\n */\n noteMargin: 10,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | messageMargin |Space between messages. | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n *\n * Space between messages.\n *\n * Default value: 35\n */\n messageMargin: 35,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | messageAlign | Multiline message alignment | 3 | 4 | 'left', 'center', 'right' |\n *\n * **Notes:**\n * Default value: 'center'\n */\n messageAlign: 'center',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | 4 | Any Positive Value |\n *\n * **Notes:**\n *\n * Depending on css styling this might need adjustment.\n *\n * Default value: 1\n */\n bottomMarginAdj: 1,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | useMaxWidth | See notes | boolean | 4 | true, false |\n *\n * **Notes:**\n *\n * When this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | rightAngles | Curved Arrows become Right Angles | 3 | 4 | true, false |\n *\n * **Notes:**\n *\n * This will display arrows that start and begin at the same node as right angles, rather than a curves\n *\n * Default value: false\n */\n rightAngles: false,\n taskFontSize: 14,\n taskFontFamily: '\"Open-Sans\", \"sans-serif\"',\n taskMargin: 50,\n // width of activation box\n activationWidth: 10,\n\n // text placement as: tspan | fo | old only text as before\n textPlacement: 'fo',\n actorColours: ['#8FBC8F', '#7CFC00', '#00FFFF', '#20B2AA', '#B0E0E6', '#FFFFE0'],\n\n sectionFills: ['#191970', '#8B008B', '#4B0082', '#2F4F4F', '#800000', '#8B4513', '#00008B'],\n sectionColours: ['#fff'],\n },\n class: {\n arrowMarkerAbsolute: false,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | useMaxWidth | See notes | boolean | 4 | true, false |\n *\n * **Notes:**\n *\n * When this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n /**\n * | Parameter | Description | Type | Required | Values|\n * | --- | --- | --- | --- | --- |\n * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper |\n *\n * **Notes:**\n *\n * Decides which rendering engine that is to be used for the rendering. Legal values are:\n * * dagre-d3\n * * dagre-wrapper - wrapper for dagre implemented in mermaid\n *\n * Default value: 'dagre-d3'\n */\n defaultRenderer: 'dagre-d3',\n },\n git: {\n arrowMarkerAbsolute: false,\n\n useWidth: undefined,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | useMaxWidth | See notes | boolean | 4 | true, false |\n *\n * **Notes:**\n *\n * When this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n },\n state: {\n dividerMargin: 10,\n sizeUnit: 5,\n padding: 8,\n textHeight: 10,\n titleShift: -15,\n noteMargin: 10,\n forkWidth: 70,\n forkHeight: 7,\n // Used\n miniPadding: 2,\n // Font size factor, this is used to guess the width of the edges labels before rendering by dagre\n // layout. This might need updating if/when switching font\n fontSizeFactor: 5.02,\n fontSize: 24,\n labelHeight: 16,\n edgeLengthFactor: '20',\n compositTitleSize: 35,\n radius: 5,\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | useMaxWidth | See notes | boolean | 4 | true, false |\n *\n * **Notes:**\n *\n * When this flag is set the height and width is set to 100% and is then scaling with the\n * available space if not the absolute space required is used.\n *\n * Default value: true\n */\n useMaxWidth: true,\n /**\n * | Parameter | Description | Type | Required | Values|\n * | --- | --- | --- | --- | --- |\n * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper |\n *\n * **Notes:**\n *\n * Decides which rendering engine that is to be used for the rendering. Legal values are:\n * * dagre-d3\n * * dagre-wrapper - wrapper for dagre implemented in mermaid\n *\n * Default value: 'dagre-d3'\n */\n defaultRenderer: 'dagre-wrapper',\n },\n\n /**\n * The object containing configurations specific for entity relationship diagrams\n */\n er: {\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n *\n * The amount of padding around the diagram as a whole so that embedded diagrams have margins, expressed in pixels\n *\n * Default value: 20\n */\n diagramPadding: 20,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | layoutDirection | Directional bias for layout of entities. | string | Required | \"TB\", \"BT\", \"LR\", \"RL\" |\n *\n * **Notes:**\n *\n * 'TB' for Top-Bottom, 'BT'for Bottom-Top, 'LR' for Left-Right, or 'RL' for Right to Left.\n *\n * T = top, B = bottom, L = left, and R = right.\n *\n * Default value: 'TB'\n */\n layoutDirection: 'TB',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | minEntityWidth | The mimimum width of an entity box | Integer | Required | Any Positive Value |\n *\n * **Notes:**\n * Expressed in pixels.\n * Default value: 100\n */\n minEntityWidth: 100,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | minEntityHeight| The minimum height of an entity box | Integer | 4 | Any Positive Value |\n *\n * **Notes:**\n * Expressed in pixels\n * Default value: 75\n */\n minEntityHeight: 75,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | entityPadding | Minimum internal padding betweentext in box and box borders | Integer | 4 | Any Positive Value |\n *\n * **Notes:**\n *\n * The minimum internal padding betweentext in an entity box and the enclosing box borders, expressed in pixels.\n *\n * Default value: 15\n */\n entityPadding: 15,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | stroke | Stroke color of box edges and lines | string | 4 | Any recognized color |\n *\n * **Notes:**\n * Default value: 'gray'\n */\n stroke: 'gray',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | fill | Fill color of entity boxes | string | 4 | Any recognized color |\n *\n * **Notes:**\n * Default value: 'honeydew'\n */\n fill: 'honeydew',\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | fontSize | Font Size in pixels | Integer | | Any Positive Value |\n *\n * **Notes:**\n *\n * Font size (expressed as an integer representing a number of pixels)\n * Default value: 12\n */\n fontSize: 12,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | useMaxWidth | See Notes | boolean | Required | true, false |\n *\n * **Notes:**\n *\n * When this flag is set to true, the diagram width is locked to 100% and\n * scaled based on available space. If set to false, the diagram reserves its\n * absolute width.\n *\n * Default value: true\n */\n useMaxWidth: true,\n },\n\n /**\n * The object containing configurations specific for pie diagrams\n */\n pie: {\n useWidth: undefined,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | useMaxWidth | See Notes | boolean | Required | true, false |\n *\n * **Notes:**\n *\n * When this flag is set to true, the diagram width is locked to 100% and\n * scaled based on available space. If set to false, the diagram reserves its\n * absolute width.\n *\n * Default value: true\n */\n useMaxWidth: true,\n },\n\n /**\n * The object containing configurations specific for req diagrams\n */\n requirement: {\n useWidth: undefined,\n\n /**\n * | Parameter | Description | Type | Required | Values |\n * | --- | --- | --- | --- | --- |\n * | useMaxWidth | See Notes | boolean | Required | true, false |\n *\n * **Notes:**\n *\n * When this flag is set to true, the diagram width is locked to 100% and\n * scaled based on available space. If set to false, the diagram reserves its\n * absolute width.\n *\n * Default value: true\n */\n useMaxWidth: true,\n\n rect_fill: '#f9f9f9',\n text_color: '#333',\n rect_border_size: '0.5px',\n rect_border_color: '#bbb',\n rect_min_width: 200,\n rect_min_height: 200,\n fontSize: 14,\n rect_padding: 10,\n line_height: 20,\n },\n};\n\nconfig.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\nconfig.git.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n\nconst keyify = (obj, prefix = '') =>\n Object.keys(obj).reduce((res, el) => {\n if (Array.isArray(obj[el])) {\n return res;\n } else if (typeof obj[el] === 'object' && obj[el] !== null) {\n return [...res, prefix + el, ...keyify(obj[el], '')];\n }\n return [...res, prefix + el];\n }, []);\n\nexport const configKeys = keyify(config, '');\nexport default config;\n","import { select } from 'd3';\nimport { log } from '../../logger';\nimport * as configApi from '../../config';\nimport common from '../common/common';\nimport utils from '../../utils';\nimport mermaidAPI from '../../mermaidAPI';\n\nconst MERMAID_DOM_ID_PREFIX = 'classid-';\n\nlet relations = [];\nlet classes = {};\nlet classCounter = 0;\n\nlet funs = [];\n\nexport const parseDirective = function (statement, context, type) {\n mermaidAPI.parseDirective(this, statement, context, type);\n};\n\nconst splitClassNameAndType = function (id) {\n let genericType = '';\n let className = id;\n\n if (id.indexOf('~') > 0) {\n let split = id.split('~');\n className = split[0];\n\n genericType = split[1];\n }\n\n return { className: className, type: genericType };\n};\n\n/**\n * Function called by parser when a node definition has been found.\n * @param id\n * @public\n */\nexport const addClass = function (id) {\n let classId = splitClassNameAndType(id);\n // Only add class if not exists\n if (typeof classes[classId.className] !== 'undefined') return;\n\n classes[classId.className] = {\n id: classId.className,\n type: classId.type,\n cssClasses: [],\n methods: [],\n members: [],\n annotations: [],\n domId: MERMAID_DOM_ID_PREFIX + classId.className + '-' + classCounter,\n };\n\n classCounter++;\n};\n\n/**\n * Function to lookup domId from id in the graph definition.\n * @param id\n * @public\n */\nexport const lookUpDomId = function (id) {\n const classKeys = Object.keys(classes);\n for (let i = 0; i < classKeys.length; i++) {\n if (classes[classKeys[i]].id === id) {\n return classes[classKeys[i]].domId;\n }\n }\n};\n\nexport const clear = function () {\n relations = [];\n classes = {};\n funs = [];\n funs.push(setupToolTips);\n};\n\nexport const getClass = function (id) {\n return classes[id];\n};\nexport const getClasses = function () {\n return classes;\n};\n\nexport const getRelations = function () {\n return relations;\n};\n\nexport const addRelation = function (relation) {\n log.debug('Adding relation: ' + JSON.stringify(relation));\n addClass(relation.id1);\n addClass(relation.id2);\n\n relation.id1 = splitClassNameAndType(relation.id1).className;\n relation.id2 = splitClassNameAndType(relation.id2).className;\n\n relations.push(relation);\n};\n\n/**\n * Adds an annotation to the specified class\n * Annotations mark special properties of the given type (like 'interface' or 'service')\n * @param className The class name\n * @param annotation The name of the annotation without any brackets\n * @public\n */\nexport const addAnnotation = function (className, annotation) {\n const validatedClassName = splitClassNameAndType(className).className;\n classes[validatedClassName].annotations.push(annotation);\n};\n\n/**\n * Adds a member to the specified class\n * @param className The class name\n * @param member The full name of the member.\n * If the member is enclosed in <> it is treated as an annotation\n * If the member is ending with a closing bracket ) it is treated as a method\n * Otherwise the member will be treated as a normal property\n * @public\n */\nexport const addMember = function (className, member) {\n const validatedClassName = splitClassNameAndType(className).className;\n const theClass = classes[validatedClassName];\n\n if (typeof member === 'string') {\n // Member can contain white spaces, we trim them out\n const memberString = member.trim();\n\n if (memberString.startsWith('<<') && memberString.endsWith('>>')) {\n // Remove leading and trailing brackets\n theClass.annotations.push(memberString.substring(2, memberString.length - 2));\n } else if (memberString.indexOf(')') > 0) {\n theClass.methods.push(memberString);\n } else if (memberString) {\n theClass.members.push(memberString);\n }\n }\n};\n\nexport const addMembers = function (className, members) {\n if (Array.isArray(members)) {\n members.reverse();\n members.forEach((member) => addMember(className, member));\n }\n};\n\nexport const cleanupLabel = function (label) {\n if (label.substring(0, 1) === ':') {\n return label.substr(1).trim();\n } else {\n return label.trim();\n }\n};\n\n/**\n * Called by parser when a special node is found, e.g. a clickable element.\n * @param ids Comma separated list of ids\n * @param className Class to add\n */\nexport const setCssClass = function (ids, className) {\n ids.split(',').forEach(function (_id) {\n let id = _id;\n if (_id[0].match(/\\d/)) id = MERMAID_DOM_ID_PREFIX + id;\n if (typeof classes[id] !== 'undefined') {\n classes[id].cssClasses.push(className);\n }\n });\n};\n\n/**\n * Called by parser when a tooltip is found, e.g. a clickable element.\n * @param ids Comma separated list of ids\n * @param tooltip Tooltip to add\n */\nconst setTooltip = function (ids, tooltip) {\n const config = configApi.getConfig();\n ids.split(',').forEach(function (id) {\n if (typeof tooltip !== 'undefined') {\n classes[id].tooltip = common.sanitizeText(tooltip, config);\n }\n });\n};\n\n/**\n * Called by parser when a link is found. Adds the URL to the vertex data.\n * @param ids Comma separated list of ids\n * @param linkStr URL to create a link for\n * @param target Target of the link, _blank by default as originally defined in the svgDraw.js file\n */\nexport const setLink = function (ids, linkStr, target) {\n const config = configApi.getConfig();\n ids.split(',').forEach(function (_id) {\n let id = _id;\n if (_id[0].match(/\\d/)) id = MERMAID_DOM_ID_PREFIX + id;\n if (typeof classes[id] !== 'undefined') {\n classes[id].link = utils.formatUrl(linkStr, config);\n if (typeof target === 'string') {\n classes[id].linkTarget = target;\n } else {\n classes[id].linkTarget = '_blank';\n }\n }\n });\n setCssClass(ids, 'clickable');\n};\n\n/**\n * Called by parser when a click definition is found. Registers an event handler.\n * @param ids Comma separated list of ids\n * @param functionName Function to be called on click\n * @param functionArgs Function args the function should be called with\n */\nexport const setClickEvent = function (ids, functionName, functionArgs) {\n ids.split(',').forEach(function (id) {\n setClickFunc(id, functionName, functionArgs);\n classes[id].haveCallback = true;\n });\n setCssClass(ids, 'clickable');\n};\n\nconst setClickFunc = function (domId, functionName, functionArgs) {\n const config = configApi.getConfig();\n let id = domId;\n let elemId = lookUpDomId(id);\n\n if (config.securityLevel !== 'loose') {\n return;\n }\n if (typeof functionName === 'undefined') {\n return;\n }\n if (typeof classes[id] !== 'undefined') {\n let argList = [];\n if (typeof functionArgs === 'string') {\n /* Splits functionArgs by ',', ignoring all ',' in double quoted strings */\n argList = functionArgs.split(/,(?=(?:(?:[^\"]*\"){2})*[^\"]*$)/);\n for (let i = 0; i < argList.length; i++) {\n let item = argList[i].trim();\n /* Removes all double quotes at the start and end of an argument */\n /* This preserves all starting and ending whitespace inside */\n if (item.charAt(0) === '\"' && item.charAt(item.length - 1) === '\"') {\n item = item.substr(1, item.length - 2);\n }\n argList[i] = item;\n }\n }\n\n /* if no arguments passed into callback, default to passing in id */\n if (argList.length === 0) {\n argList.push(elemId);\n }\n\n funs.push(function () {\n const elem = document.querySelector(`[id=\"${elemId}\"]`);\n if (elem !== null) {\n elem.addEventListener(\n 'click',\n function () {\n utils.runFunc(functionName, ...argList);\n },\n false\n );\n }\n });\n }\n};\n\nexport const bindFunctions = function (element) {\n funs.forEach(function (fun) {\n fun(element);\n });\n};\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 setupToolTips = function (element) {\n let tooltipElem = select('.mermaidTooltip');\n if ((tooltipElem._groups || tooltipElem)[0][0] === null) {\n tooltipElem = select('body').append('div').attr('class', 'mermaidTooltip').style('opacity', 0);\n }\n\n const svg = select(element).select('svg');\n\n const nodes = svg.selectAll('g.node');\n nodes\n .on('mouseover', function () {\n const el = select(this);\n const title = el.attr('title');\n // Dont try to draw a tooltip if no data is provided\n if (title === null) {\n return;\n }\n const rect = this.getBoundingClientRect();\n\n tooltipElem.transition().duration(200).style('opacity', '.9');\n tooltipElem\n .html(el.attr('title'))\n .style('left', window.scrollX + rect.left + (rect.right - rect.left) / 2 + 'px')\n .style('top', window.scrollY + rect.top - 14 + document.body.scrollTop + 'px');\n el.classed('hover', true);\n })\n .on('mouseout', function () {\n tooltipElem.transition().duration(500).style('opacity', 0);\n const el = select(this);\n el.classed('hover', false);\n });\n};\nfuns.push(setupToolTips);\n\nexport default {\n parseDirective,\n getConfig: () => configApi.getConfig().class,\n addClass,\n bindFunctions,\n clear,\n getClass,\n getClasses,\n addAnnotation,\n getRelations,\n addRelation,\n addMember,\n addMembers,\n cleanupLabel,\n lineType,\n relationType,\n setClickEvent,\n setCssClass,\n setLink,\n setTooltip,\n lookUpDomId,\n};\n","import { select } from 'd3';\nimport dagre from 'dagre';\nimport graphlib from 'graphlib';\nimport { log } from '../../logger';\nimport classDb, { lookUpDomId } from './classDb';\nimport { parser } from './parser/classDiagram';\nimport svgDraw from './svgDraw';\nimport { getConfig } from '../../config';\nimport { render } from '../../dagre-wrapper/index.js';\n// import addHtmlLabel from 'dagre-d3/lib/label/add-html-label.js';\nimport { curveLinear } from 'd3';\nimport { interpolateToCurve, getStylesFromArray, configureSvgSize } from '../../utils';\nimport common from '../common/common';\n\nparser.yy = classDb;\n\nlet idCache = {};\nconst padding = 20;\n\nconst conf = {\n dividerMargin: 10,\n padding: 5,\n textHeight: 10,\n};\n\n/**\n * Function that adds the vertices found during parsing to the graph to be rendered.\n * @param vert Object containing the vertices.\n * @param g The graph that is to be drawn.\n */\nexport const addClasses = function (classes, g) {\n // const svg = select(`[id=\"${svgId}\"]`);\n const keys = Object.keys(classes);\n log.info('keys:', keys);\n log.info(classes);\n\n // Iterate through each item in the vertex object (containing all the vertices found) in the graph definition\n keys.forEach(function (id) {\n const vertex = classes[id];\n\n /**\n * Variable for storing the classes for the vertex\n * @type {string}\n */\n let cssClassStr = '';\n if (vertex.cssClasses.length > 0) {\n cssClassStr = cssClassStr + ' ' + vertex.cssClasses.join(' ');\n }\n // if (vertex.classes.length > 0) {\n // classStr = vertex.classes.join(' ');\n // }\n\n const styles = { labelStyle: '' }; //getStylesFromArray(vertex.styles);\n\n // Use vertex id as text in the box if no text is provided by the graph definition\n let vertexText = vertex.text !== undefined ? vertex.text : vertex.id;\n\n // We create a SVG label, either by delegating to addHtmlLabel or manually\n // let vertexNode;\n // if (evaluate(getConfig().flowchart.htmlLabels)) {\n // const node = {\n // label: vertexText.replace(\n // /fa[lrsb]?:fa-[\\w-]+/g,\n // s => ``\n // )\n // };\n // vertexNode = addHtmlLabel(svg, node).node();\n // vertexNode.parentNode.removeChild(vertexNode);\n // } else {\n // const svgLabel = document.createElementNS('http://www.w3.org/2000/svg', 'text');\n // svgLabel.setAttribute('style', styles.labelStyle.replace('color:', 'fill:'));\n\n // const rows = vertexText.split(common.lineBreakRegex);\n\n // for (let j = 0; j < rows.length; j++) {\n // const tspan = document.createElementNS('http://www.w3.org/2000/svg', 'tspan');\n // tspan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n // tspan.setAttribute('dy', '1em');\n // tspan.setAttribute('x', '1');\n // tspan.textContent = rows[j];\n // svgLabel.appendChild(tspan);\n // }\n // vertexNode = svgLabel;\n // }\n\n let radious = 0;\n let _shape = '';\n // Set the shape based parameters\n switch (vertex.type) {\n case 'class':\n _shape = 'class_box';\n break;\n default:\n _shape = 'class_box';\n }\n // Add the node\n g.setNode(vertex.id, {\n labelStyle: styles.labelStyle,\n shape: _shape,\n labelText: vertexText,\n classData: vertex,\n rx: radious,\n ry: radious,\n class: cssClassStr,\n style: styles.style,\n id: vertex.id,\n domId: vertex.domId,\n haveCallback: vertex.haveCallback,\n link: vertex.link,\n width: vertex.type === 'group' ? 500 : undefined,\n type: vertex.type,\n padding: getConfig().flowchart.padding,\n });\n\n log.info('setNode', {\n labelStyle: styles.labelStyle,\n shape: _shape,\n labelText: vertexText,\n rx: radious,\n ry: radious,\n class: cssClassStr,\n style: styles.style,\n id: vertex.id,\n width: vertex.type === 'group' ? 500 : undefined,\n type: vertex.type,\n padding: getConfig().flowchart.padding,\n });\n });\n};\n\n/**\n * Add edges to graph based on parsed graph defninition\n * @param {Object} edges The edges to add to the graph\n * @param {Object} g The graph object\n */\nexport const addRelations = function (relations, g) {\n let cnt = 0;\n\n let defaultStyle;\n let defaultLabelStyle;\n\n // if (typeof relations.defaultStyle !== 'undefined') {\n // const defaultStyles = getStylesFromArray(relations.defaultStyle);\n // defaultStyle = defaultStyles.style;\n // defaultLabelStyle = defaultStyles.labelStyle;\n // }\n\n relations.forEach(function (edge) {\n cnt++;\n const edgeData = {};\n //Set relationship style and line type\n edgeData.classes = 'relation';\n edgeData.pattern = edge.relation.lineType == 1 ? 'dashed' : 'solid';\n\n edgeData.id = 'id' + cnt;\n // Set link type for rendering\n if (edge.type === 'arrow_open') {\n edgeData.arrowhead = 'none';\n } else {\n edgeData.arrowhead = 'normal';\n }\n\n log.info(edgeData, edge);\n //Set edge extra labels\n //edgeData.startLabelLeft = edge.relationTitle1;\n edgeData.startLabelRight = edge.relationTitle1 === 'none' ? '' : edge.relationTitle1;\n edgeData.endLabelLeft = edge.relationTitle2 === 'none' ? '' : edge.relationTitle2;\n //edgeData.endLabelRight = edge.relationTitle2;\n\n //Set relation arrow types\n edgeData.arrowTypeStart = getArrowMarker(edge.relation.type1);\n edgeData.arrowTypeEnd = getArrowMarker(edge.relation.type2);\n let style = '';\n let labelStyle = '';\n\n if (typeof edge.style !== 'undefined') {\n const styles = getStylesFromArray(edge.style);\n style = styles.style;\n labelStyle = styles.labelStyle;\n } else {\n style = 'fill:none';\n if (typeof defaultStyle !== 'undefined') {\n style = defaultStyle;\n }\n if (typeof defaultLabelStyle !== 'undefined') {\n labelStyle = defaultLabelStyle;\n }\n }\n\n edgeData.style = style;\n edgeData.labelStyle = labelStyle;\n\n if (typeof edge.interpolate !== 'undefined') {\n edgeData.curve = interpolateToCurve(edge.interpolate, curveLinear);\n } else if (typeof relations.defaultInterpolate !== 'undefined') {\n edgeData.curve = interpolateToCurve(relations.defaultInterpolate, curveLinear);\n } else {\n edgeData.curve = interpolateToCurve(conf.curve, curveLinear);\n }\n\n edge.text = edge.title;\n if (typeof edge.text === 'undefined') {\n if (typeof edge.style !== 'undefined') {\n edgeData.arrowheadStyle = 'fill: #333';\n }\n } else {\n edgeData.arrowheadStyle = 'fill: #333';\n edgeData.labelpos = 'c';\n\n if (getConfig().flowchart.htmlLabels && false) { // eslint-disable-line\n edgeData.labelType = 'html';\n edgeData.label = '' + edge.text + '';\n } else {\n edgeData.labelType = 'text';\n edgeData.label = edge.text.replace(common.lineBreakRegex, '\\n');\n\n if (typeof edge.style === 'undefined') {\n edgeData.style = edgeData.style || 'stroke: #333; stroke-width: 1.5px;fill:none';\n }\n\n edgeData.labelStyle = edgeData.labelStyle.replace('color:', 'fill:');\n }\n }\n // Add the edge to the graph\n g.setEdge(edge.id1, edge.id2, edgeData, cnt);\n });\n};\n\n// Todo optimize\nconst getGraphId = function (label) {\n const keys = Object.keys(idCache);\n\n for (let i = 0; i < keys.length; i++) {\n if (idCache[keys[i]].label === label) {\n return keys[i];\n }\n }\n\n return undefined;\n};\n\nexport const setConf = function (cnf) {\n const keys = Object.keys(cnf);\n\n keys.forEach(function (key) {\n conf[key] = cnf[key];\n });\n};\n\n/**\n * Draws a flowchart in the tag with id: id based on the graph definition in text.\n * @param text\n * @param id\n */\nexport const drawOld = function (text, id) {\n idCache = {};\n parser.yy.clear();\n parser.parse(text);\n\n log.info('Rendering diagram ' + text);\n\n // Fetch the default direction, use TD if none was found\n const diagram = select(`[id='${id}']`);\n // insertMarkers(diagram);\n\n // Layout graph, Create a new directed graph\n const g = new graphlib.Graph({\n multigraph: true,\n });\n\n // Set an object for the graph label\n g.setGraph({\n isMultiGraph: true,\n });\n\n // Default to assigning a new object as a label for each new edge.\n g.setDefaultEdgeLabel(function () {\n return {};\n });\n\n const classes = classDb.getClasses();\n log.info('classes:');\n log.info(classes);\n const keys = Object.keys(classes);\n for (let i = 0; i < keys.length; i++) {\n const classDef = classes[keys[i]];\n const node = svgDraw.drawClass(diagram, classDef, conf);\n idCache[node.id] = node;\n\n // Add nodes to the graph. The first argument is the node id. The second is\n // metadata about the node. In this case we're going to add labels to each of\n // our nodes.\n g.setNode(node.id, node);\n\n log.info('Org height: ' + node.height);\n }\n\n const relations = classDb.getRelations();\n log.info('relations:', relations);\n relations.forEach(function (relation) {\n log.info(\n 'tjoho' + getGraphId(relation.id1) + getGraphId(relation.id2) + JSON.stringify(relation)\n );\n g.setEdge(\n getGraphId(relation.id1),\n getGraphId(relation.id2),\n {\n relation: relation,\n },\n relation.title || 'DEFAULT'\n );\n });\n\n dagre.layout(g);\n g.nodes().forEach(function (v) {\n if (typeof v !== 'undefined' && typeof g.node(v) !== 'undefined') {\n log.debug('Node ' + v + ': ' + JSON.stringify(g.node(v)));\n select('#' + lookUpDomId(v)).attr(\n 'transform',\n 'translate(' +\n (g.node(v).x - g.node(v).width / 2) +\n ',' +\n (g.node(v).y - g.node(v).height / 2) +\n ' )'\n );\n }\n });\n\n g.edges().forEach(function (e) {\n if (typeof e !== 'undefined' && typeof g.edge(e) !== 'undefined') {\n log.debug('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(g.edge(e)));\n svgDraw.drawEdge(diagram, g.edge(e), g.edge(e).relation, conf);\n }\n });\n\n const svgBounds = diagram.node().getBBox();\n const width = svgBounds.width + padding * 2;\n const height = svgBounds.height + padding * 2;\n\n configureSvgSize(diagram, height, width, conf.useMaxWidth);\n\n // Ensure the viewBox includes the whole svgBounds area with extra space for padding\n const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`;\n log.debug(`viewBox ${vBox}`);\n diagram.attr('viewBox', vBox);\n};\n\nexport const draw = function (text, id) {\n log.info('Drawing class');\n classDb.clear();\n // const parser = classDb.parser;\n // parser.yy = classDb;\n\n // Parse the graph definition\n // try {\n parser.parse(text);\n // } catch (err) {\n // log.debug('Parsing failed');\n // }\n\n // Fetch the default direction, use TD if none was found\n let dir = 'TD';\n\n const conf = getConfig().flowchart;\n log.info('config:', conf);\n const nodeSpacing = conf.nodeSpacing || 50;\n const rankSpacing = conf.rankSpacing || 50;\n\n // Create the input mermaid.graph\n const g = new graphlib.Graph({\n multigraph: true,\n compound: true,\n })\n .setGraph({\n rankdir: dir,\n nodesep: nodeSpacing,\n ranksep: rankSpacing,\n marginx: 8,\n marginy: 8,\n })\n .setDefaultEdgeLabel(function () {\n return {};\n });\n\n // let subG;\n // const subGraphs = flowDb.getSubGraphs();\n // log.info('Subgraphs - ', subGraphs);\n // for (let i = subGraphs.length - 1; i >= 0; i--) {\n // subG = subGraphs[i];\n // log.info('Subgraph - ', subG);\n // flowDb.addVertex(subG.id, subG.title, 'group', undefined, subG.classes);\n // }\n\n // Fetch the verices/nodes and edges/links from the parsed graph definition\n const classes = classDb.getClasses();\n const relations = classDb.getRelations();\n\n log.info(relations);\n // let i = 0;\n // for (i = subGraphs.length - 1; i >= 0; i--) {\n // subG = subGraphs[i];\n\n // selectAll('cluster').append('text');\n\n // for (let j = 0; j < subG.nodes.length; j++) {\n // g.setParent(subG.nodes[j], subG.id);\n // }\n // }\n addClasses(classes, g, id);\n addRelations(relations, g);\n\n // Add custom shapes\n // flowChartShapes.addToRenderV2(addShape);\n\n // Set up an SVG group so that we can translate the final graph.\n const svg = select(`[id=\"${id}\"]`);\n svg.attr('xmlns:xlink', 'http://www.w3.org/1999/xlink');\n\n // Run the renderer. This is what draws the final graph.\n const element = select('#' + id + ' g');\n render(element, g, ['aggregation', 'extension', 'composition', 'dependency'], 'classDiagram', id);\n\n // element.selectAll('g.node').attr('title', function() {\n // return flowDb.getTooltip(this.id);\n // });\n\n const padding = 8;\n const svgBounds = svg.node().getBBox();\n const width = svgBounds.width + padding * 2;\n const height = svgBounds.height + padding * 2;\n log.debug(\n `new ViewBox 0 0 ${width} ${height}`,\n `translate(${padding - g._label.marginx}, ${padding - g._label.marginy})`\n );\n\n configureSvgSize(svg, height, width, conf.useMaxWidth);\n\n svg.attr('viewBox', `0 0 ${width} ${height}`);\n svg\n .select('g')\n .attr('transform', `translate(${padding - g._label.marginx}, ${padding - svgBounds.y})`);\n\n // Index nodes\n // flowDb.indexNodes('subGraph' + i);\n\n // Add label rects for non html labels\n if (!conf.htmlLabels) {\n const labels = document.querySelectorAll('[id=\"' + id + '\"] .edgeLabel .label');\n for (let k = 0; k < labels.length; k++) {\n const label = labels[k];\n\n // Get dimensions of label\n const dim = label.getBBox();\n\n const rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');\n rect.setAttribute('rx', 0);\n rect.setAttribute('ry', 0);\n rect.setAttribute('width', dim.width);\n rect.setAttribute('height', dim.height);\n rect.setAttribute('style', 'fill:#e8e8e8;');\n\n label.insertBefore(rect, label.firstChild);\n }\n }\n\n // If node has a link, wrap it in an anchor SVG object.\n // const keys = Object.keys(classes);\n // keys.forEach(function(key) {\n // const vertex = classes[key];\n\n // if (vertex.link) {\n // const node = select('#' + id + ' [id=\"' + key + '\"]');\n // if (node) {\n // const link = document.createElementNS('http://www.w3.org/2000/svg', 'a');\n // link.setAttributeNS('http://www.w3.org/2000/svg', 'class', vertex.classes.join(' '));\n // link.setAttributeNS('http://www.w3.org/2000/svg', 'href', vertex.link);\n // link.setAttributeNS('http://www.w3.org/2000/svg', 'rel', 'noopener');\n\n // const linkNode = node.insert(function() {\n // return link;\n // }, ':first-child');\n\n // const shape = node.select('.label-container');\n // if (shape) {\n // linkNode.append(function() {\n // return shape.node();\n // });\n // }\n\n // const label = node.select('.label');\n // if (label) {\n // linkNode.append(function() {\n // return label.node();\n // });\n // }\n // }\n // }\n // });\n};\n\nexport default {\n setConf,\n draw,\n};\nfunction getArrowMarker(type) {\n let marker;\n switch (type) {\n case 0:\n marker = 'aggregation';\n break;\n case 1:\n marker = 'extension';\n break;\n case 2:\n marker = 'composition';\n break;\n case 3:\n marker = 'dependency';\n break;\n default:\n marker = 'none';\n }\n return marker;\n}\n","import { select } from 'd3';\nimport dagre from 'dagre';\nimport graphlib from 'graphlib';\nimport { log } from '../../logger';\nimport classDb, { lookUpDomId } from './classDb';\nimport { parser } from './parser/classDiagram';\nimport svgDraw from './svgDraw';\nimport { configureSvgSize } from '../../utils';\n\nparser.yy = classDb;\n\nlet idCache = {};\nconst padding = 20;\n\nconst conf = {\n dividerMargin: 10,\n padding: 5,\n textHeight: 10,\n};\n\n// Todo optimize\nconst getGraphId = function (label) {\n const keys = Object.keys(idCache);\n\n for (let i = 0; i < keys.length; i++) {\n if (idCache[keys[i]].label === label) {\n return keys[i];\n }\n }\n\n return undefined;\n};\n\n/**\n * Setup arrow head and define the marker. The result is appended to the svg.\n */\nconst insertMarkers = function (elem) {\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'extensionStart')\n .attr('class', 'extension')\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 1,7 L18,13 V 1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'extensionEnd')\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 1,1 V 13 L18,7 Z'); // this is actual shape for arrowhead\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'compositionStart')\n .attr('class', 'extension')\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'compositionEnd')\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'aggregationStart')\n .attr('class', 'extension')\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'aggregationEnd')\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'dependencyStart')\n .attr('class', 'extension')\n .attr('refX', 0)\n .attr('refY', 7)\n .attr('markerWidth', 190)\n .attr('markerHeight', 240)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 5,7 L9,13 L1,7 L9,1 Z');\n\n elem\n .append('defs')\n .append('marker')\n .attr('id', 'dependencyEnd')\n .attr('refX', 19)\n .attr('refY', 7)\n .attr('markerWidth', 20)\n .attr('markerHeight', 28)\n .attr('orient', 'auto')\n .append('path')\n .attr('d', 'M 18,7 L9,13 L14,7 L9,1 Z');\n};\n\nexport const setConf = function (cnf) {\n const keys = Object.keys(cnf);\n\n keys.forEach(function (key) {\n conf[key] = cnf[key];\n });\n};\n\n/**\n * Draws a flowchart in the tag with id: id based on the graph definition in text.\n * @param text\n * @param id\n */\nexport const draw = function (text, id) {\n idCache = {};\n parser.yy.clear();\n parser.parse(text);\n\n log.info('Rendering diagram ' + text);\n\n // Fetch the default direction, use TD if none was found\n const diagram = select(`[id='${id}']`);\n diagram.attr('xmlns:xlink', 'http://www.w3.org/1999/xlink');\n insertMarkers(diagram);\n\n // Layout graph, Create a new directed graph\n const g = new graphlib.Graph({\n multigraph: true,\n });\n\n // Set an object for the graph label\n g.setGraph({\n isMultiGraph: true,\n });\n\n // Default to assigning a new object as a label for each new edge.\n g.setDefaultEdgeLabel(function () {\n return {};\n });\n\n const classes = classDb.getClasses();\n const keys = Object.keys(classes);\n\n for (let i = 0; i < keys.length; i++) {\n const classDef = classes[keys[i]];\n const node = svgDraw.drawClass(diagram, classDef, conf);\n idCache[node.id] = node;\n\n // Add nodes to the graph. The first argument is the node id. The second is\n // metadata about the node. In this case we're going to add labels to each of\n // our nodes.\n g.setNode(node.id, node);\n\n log.info('Org height: ' + node.height);\n }\n\n const relations = classDb.getRelations();\n relations.forEach(function (relation) {\n log.info(\n 'tjoho' + getGraphId(relation.id1) + getGraphId(relation.id2) + JSON.stringify(relation)\n );\n g.setEdge(\n getGraphId(relation.id1),\n getGraphId(relation.id2),\n {\n relation: relation,\n },\n relation.title || 'DEFAULT'\n );\n });\n\n dagre.layout(g);\n g.nodes().forEach(function (v) {\n if (typeof v !== 'undefined' && typeof g.node(v) !== 'undefined') {\n log.debug('Node ' + v + ': ' + JSON.stringify(g.node(v)));\n select('#' + lookUpDomId(v)).attr(\n 'transform',\n 'translate(' +\n (g.node(v).x - g.node(v).width / 2) +\n ',' +\n (g.node(v).y - g.node(v).height / 2) +\n ' )'\n );\n }\n });\n\n g.edges().forEach(function (e) {\n if (typeof e !== 'undefined' && typeof g.edge(e) !== 'undefined') {\n log.debug('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(g.edge(e)));\n svgDraw.drawEdge(diagram, g.edge(e), g.edge(e).relation, conf);\n }\n });\n\n const svgBounds = diagram.node().getBBox();\n const width = svgBounds.width + padding * 2;\n const height = svgBounds.height + padding * 2;\n\n configureSvgSize(diagram, height, width, conf.useMaxWidth);\n\n // Ensure the viewBox includes the whole svgBounds area with extra space for padding\n const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${width} ${height}`;\n log.debug(`viewBox ${vBox}`);\n diagram.attr('viewBox', vBox);\n};\n\nexport default {\n setConf,\n draw,\n};\n","/* parser generated by jison 0.4.18 */\n/*\n Returns a Parser object of the following structure:\n\n Parser: {\n yy: {}\n }\n\n Parser.prototype: {\n yy: {},\n trace: function(),\n symbols_: {associative list: name ==> number},\n terminals_: {associative list: number ==> name},\n productions_: [...],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),\n table: [...],\n defaultActions: {...},\n parseError: function(str, hash),\n parse: function(input),\n\n lexer: {\n EOF: 1,\n parseError: function(str, hash),\n setInput: function(input),\n input: function(),\n unput: function(str),\n more: function(),\n less: function(n),\n pastInput: function(),\n upcomingInput: function(),\n showPosition: function(),\n test_match: function(regex_match_array, rule_index),\n next: function(),\n lex: function(),\n begin: function(condition),\n popState: function(),\n _currentRules: function(),\n topState: function(),\n pushState: function(condition),\n\n options: {\n ranges: boolean (optional: true ==> token location info will include a .range[] member)\n flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)\n backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)\n },\n\n performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),\n rules: [...],\n conditions: {associative list: name ==> set},\n }\n }\n\n\n token location info (@$, _$, etc.): {\n first_line: n,\n last_line: n,\n first_column: n,\n last_column: n,\n range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)\n }\n\n\n the parseError function receives a 'hash' object with these members for lexer and parser errors: {\n text: (matched text)\n token: (the produced terminal token, if any)\n line: (yylineno)\n }\n while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {\n loc: (yylloc)\n expected: (string describing the set of expected tokens)\n recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)\n }\n*/\nvar parser = (function(){\nvar o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,7],$V1=[1,6],$V2=[1,14],$V3=[1,25],$V4=[1,28],$V5=[1,26],$V6=[1,27],$V7=[1,29],$V8=[1,30],$V9=[1,31],$Va=[1,32],$Vb=[1,35],$Vc=[1,36],$Vd=[1,37],$Ve=[1,38],$Vf=[10,19],$Vg=[1,50],$Vh=[1,51],$Vi=[1,52],$Vj=[1,53],$Vk=[1,54],$Vl=[1,55],$Vm=[10,19,26,33,34,42,45,46,47,48,49,50,55,57],$Vn=[10,19,24,26,33,34,38,42,45,46,47,48,49,50,55,57,72,73,74,75],$Vo=[10,13,17,19],$Vp=[42,72,73,74,75],$Vq=[42,49,50,72,73,74,75],$Vr=[42,45,46,47,48,72,73,74,75],$Vs=[10,19,26],$Vt=[1,87];\nvar parser = {trace: function trace () { },\nyy: {},\nsymbols_: {\"error\":2,\"start\":3,\"mermaidDoc\":4,\"directive\":5,\"graphConfig\":6,\"openDirective\":7,\"typeDirective\":8,\"closeDirective\":9,\"NEWLINE\":10,\":\":11,\"argDirective\":12,\"open_directive\":13,\"type_directive\":14,\"arg_directive\":15,\"close_directive\":16,\"CLASS_DIAGRAM\":17,\"statements\":18,\"EOF\":19,\"statement\":20,\"className\":21,\"alphaNumToken\":22,\"classLiteralName\":23,\"GENERICTYPE\":24,\"relationStatement\":25,\"LABEL\":26,\"classStatement\":27,\"methodStatement\":28,\"annotationStatement\":29,\"clickStatement\":30,\"cssClassStatement\":31,\"CLASS\":32,\"STYLE_SEPARATOR\":33,\"STRUCT_START\":34,\"members\":35,\"STRUCT_STOP\":36,\"ANNOTATION_START\":37,\"ANNOTATION_END\":38,\"MEMBER\":39,\"SEPARATOR\":40,\"relation\":41,\"STR\":42,\"relationType\":43,\"lineType\":44,\"AGGREGATION\":45,\"EXTENSION\":46,\"COMPOSITION\":47,\"DEPENDENCY\":48,\"LINE\":49,\"DOTTED_LINE\":50,\"CALLBACK\":51,\"LINK\":52,\"LINK_TARGET\":53,\"CLICK\":54,\"CALLBACK_NAME\":55,\"CALLBACK_ARGS\":56,\"HREF\":57,\"CSSCLASS\":58,\"commentToken\":59,\"textToken\":60,\"graphCodeTokens\":61,\"textNoTagsToken\":62,\"TAGSTART\":63,\"TAGEND\":64,\"==\":65,\"--\":66,\"PCT\":67,\"DEFAULT\":68,\"SPACE\":69,\"MINUS\":70,\"keywords\":71,\"UNICODE_TEXT\":72,\"NUM\":73,\"ALPHA\":74,\"BQUOTE_STR\":75,\"$accept\":0,\"$end\":1},\nterminals_: {2:\"error\",10:\"NEWLINE\",11:\":\",13:\"open_directive\",14:\"type_directive\",15:\"arg_directive\",16:\"close_directive\",17:\"CLASS_DIAGRAM\",19:\"EOF\",24:\"GENERICTYPE\",26:\"LABEL\",32:\"CLASS\",33:\"STYLE_SEPARATOR\",34:\"STRUCT_START\",36:\"STRUCT_STOP\",37:\"ANNOTATION_START\",38:\"ANNOTATION_END\",39:\"MEMBER\",40:\"SEPARATOR\",42:\"STR\",45:\"AGGREGATION\",46:\"EXTENSION\",47:\"COMPOSITION\",48:\"DEPENDENCY\",49:\"LINE\",50:\"DOTTED_LINE\",51:\"CALLBACK\",52:\"LINK\",53:\"LINK_TARGET\",54:\"CLICK\",55:\"CALLBACK_NAME\",56:\"CALLBACK_ARGS\",57:\"HREF\",58:\"CSSCLASS\",61:\"graphCodeTokens\",63:\"TAGSTART\",64:\"TAGEND\",65:\"==\",66:\"--\",67:\"PCT\",68:\"DEFAULT\",69:\"SPACE\",70:\"MINUS\",71:\"keywords\",72:\"UNICODE_TEXT\",73:\"NUM\",74:\"ALPHA\",75:\"BQUOTE_STR\"},\nproductions_: [0,[3,1],[3,2],[4,1],[5,4],[5,6],[7,1],[8,1],[12,1],[9,1],[6,4],[18,1],[18,2],[18,3],[21,1],[21,1],[21,2],[21,2],[21,2],[20,1],[20,2],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[27,2],[27,4],[27,5],[27,7],[29,4],[35,1],[35,2],[28,1],[28,2],[28,1],[28,1],[25,3],[25,4],[25,4],[25,5],[41,3],[41,2],[41,2],[41,1],[43,1],[43,1],[43,1],[43,1],[44,1],[44,1],[30,3],[30,4],[30,3],[30,4],[30,4],[30,5],[30,3],[30,4],[30,4],[30,5],[30,3],[30,4],[30,4],[30,5],[31,3],[59,1],[59,1],[60,1],[60,1],[60,1],[60,1],[60,1],[60,1],[60,1],[62,1],[62,1],[62,1],[62,1],[22,1],[22,1],[22,1],[23,1]],\nperformAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {\n/* this == yyval */\n\nvar $0 = $$.length - 1;\nswitch (yystate) {\ncase 6:\n yy.parseDirective('%%{', 'open_directive'); \nbreak;\ncase 7:\n yy.parseDirective($$[$0], 'type_directive'); \nbreak;\ncase 8:\n $$[$0] = $$[$0].trim().replace(/'/g, '\"'); yy.parseDirective($$[$0], 'arg_directive'); \nbreak;\ncase 9:\n yy.parseDirective('}%%', 'close_directive', 'class'); \nbreak;\ncase 14: case 15:\n this.$=$$[$0]; \nbreak;\ncase 16:\n this.$=$$[$0-1]+$$[$0]; \nbreak;\ncase 17: case 18:\n this.$=$$[$0-1]+'~'+$$[$0]; \nbreak;\ncase 19:\n yy.addRelation($$[$0]); \nbreak;\ncase 20:\n $$[$0-1].title = yy.cleanupLabel($$[$0]); yy.addRelation($$[$0-1]); \nbreak;\ncase 27:\nyy.addClass($$[$0]);\nbreak;\ncase 28:\nyy.addClass($$[$0-2]);yy.setCssClass($$[$0-2], $$[$0]);\nbreak;\ncase 29:\n/*console.log($$[$0-3],JSON.stringify($$[$0-1]));*/yy.addClass($$[$0-3]);yy.addMembers($$[$0-3],$$[$0-1]);\nbreak;\ncase 30:\nyy.addClass($$[$0-5]);yy.setCssClass($$[$0-5], $$[$0-3]);yy.addMembers($$[$0-5],$$[$0-1]);\nbreak;\ncase 31:\n yy.addAnnotation($$[$0],$$[$0-2]); \nbreak;\ncase 32:\n this.$ = [$$[$0]]; \nbreak;\ncase 33:\n $$[$0].push($$[$0-1]);this.$=$$[$0];\nbreak;\ncase 34:\n/*console.log('Rel found',$$[$0]);*/\nbreak;\ncase 35:\nyy.addMember($$[$0-1],yy.cleanupLabel($$[$0]));\nbreak;\ncase 36:\n/*console.warn('Member',$$[$0]);*/\nbreak;\ncase 37:\n/*console.log('sep found',$$[$0]);*/\nbreak;\ncase 38:\n this.$ = {'id1':$$[$0-2],'id2':$$[$0], relation:$$[$0-1], relationTitle1:'none', relationTitle2:'none'}; \nbreak;\ncase 39:\n this.$ = {id1:$$[$0-3], id2:$$[$0], relation:$$[$0-1], relationTitle1:$$[$0-2], relationTitle2:'none'}\nbreak;\ncase 40:\n this.$ = {id1:$$[$0-3], id2:$$[$0], relation:$$[$0-2], relationTitle1:'none', relationTitle2:$$[$0-1]}; \nbreak;\ncase 41:\n this.$ = {id1:$$[$0-4], id2:$$[$0], relation:$$[$0-2], relationTitle1:$$[$0-3], relationTitle2:$$[$0-1]} \nbreak;\ncase 42:\n this.$={type1:$$[$0-2],type2:$$[$0],lineType:$$[$0-1]}; \nbreak;\ncase 43:\n this.$={type1:'none',type2:$$[$0],lineType:$$[$0-1]}; \nbreak;\ncase 44:\n this.$={type1:$$[$0-1],type2:'none',lineType:$$[$0]}; \nbreak;\ncase 45:\n this.$={type1:'none',type2:'none',lineType:$$[$0]}; \nbreak;\ncase 46:\n this.$=yy.relationType.AGGREGATION;\nbreak;\ncase 47:\n this.$=yy.relationType.EXTENSION;\nbreak;\ncase 48:\n this.$=yy.relationType.COMPOSITION;\nbreak;\ncase 49:\n this.$=yy.relationType.DEPENDENCY;\nbreak;\ncase 50:\nthis.$=yy.lineType.LINE;\nbreak;\ncase 51:\nthis.$=yy.lineType.DOTTED_LINE;\nbreak;\ncase 52: case 58:\nthis.$ = $$[$0-2];yy.setClickEvent($$[$0-1], $$[$0]);\nbreak;\ncase 53: case 59:\nthis.$ = $$[$0-3];yy.setClickEvent($$[$0-2], $$[$0-1]);yy.setTooltip($$[$0-2], $$[$0]);\nbreak;\ncase 54: case 62:\nthis.$ = $$[$0-2];yy.setLink($$[$0-1], $$[$0]);\nbreak;\ncase 55:\nthis.$ = $$[$0-3];yy.setLink($$[$0-2], $$[$0-1],$$[$0]);\nbreak;\ncase 56: case 64:\nthis.$ = $$[$0-3];yy.setLink($$[$0-2], $$[$0-1]);yy.setTooltip($$[$0-2], $$[$0]);\nbreak;\ncase 57: case 65:\nthis.$ = $$[$0-4];yy.setLink($$[$0-3], $$[$0-2], $$[$0]);yy.setTooltip($$[$0-3], $$[$0-1]);\nbreak;\ncase 60:\nthis.$ = $$[$0-3];yy.setClickEvent($$[$0-2], $$[$0-1], $$[$0]);\nbreak;\ncase 61:\nthis.$ = $$[$0-4];yy.setClickEvent($$[$0-3], $$[$0-2], $$[$0-1]);yy.setTooltip($$[$0-3], $$[$0]);\nbreak;\ncase 63:\nthis.$ = $$[$0-3];yy.setLink($$[$0-2], $$[$0-1], $$[$0]);\nbreak;\ncase 66:\nyy.setCssClass($$[$0-1], $$[$0]);\nbreak;\n}\n},\ntable: [{3:1,4:2,5:3,6:4,7:5,13:$V0,17:$V1},{1:[3]},{1:[2,1]},{3:8,4:2,5:3,6:4,7:5,13:$V0,17:$V1},{1:[2,3]},{8:9,14:[1,10]},{10:[1,11]},{14:[2,6]},{1:[2,2]},{9:12,11:[1,13],16:$V2},o([11,16],[2,7]),{5:23,7:5,13:$V0,18:15,20:16,21:24,22:33,23:34,25:17,27:18,28:19,29:20,30:21,31:22,32:$V3,37:$V4,39:$V5,40:$V6,51:$V7,52:$V8,54:$V9,58:$Va,72:$Vb,73:$Vc,74:$Vd,75:$Ve},{10:[1,39]},{12:40,15:[1,41]},{10:[2,9]},{19:[1,42]},{10:[1,43],19:[2,11]},o($Vf,[2,19],{26:[1,44]}),o($Vf,[2,21]),o($Vf,[2,22]),o($Vf,[2,23]),o($Vf,[2,24]),o($Vf,[2,25]),o($Vf,[2,26]),o($Vf,[2,34],{41:45,43:48,44:49,26:[1,47],42:[1,46],45:$Vg,46:$Vh,47:$Vi,48:$Vj,49:$Vk,50:$Vl}),{21:56,22:33,23:34,72:$Vb,73:$Vc,74:$Vd,75:$Ve},o($Vf,[2,36]),o($Vf,[2,37]),{22:57,72:$Vb,73:$Vc,74:$Vd},{21:58,22:33,23:34,72:$Vb,73:$Vc,74:$Vd,75:$Ve},{21:59,22:33,23:34,72:$Vb,73:$Vc,74:$Vd,75:$Ve},{21:60,22:33,23:34,72:$Vb,73:$Vc,74:$Vd,75:$Ve},{42:[1,61]},o($Vm,[2,14],{22:33,23:34,21:62,24:[1,63],72:$Vb,73:$Vc,74:$Vd,75:$Ve}),o($Vm,[2,15],{24:[1,64]}),o($Vn,[2,80]),o($Vn,[2,81]),o($Vn,[2,82]),o([10,19,24,26,33,34,42,45,46,47,48,49,50,55,57],[2,83]),o($Vo,[2,4]),{9:65,16:$V2},{16:[2,8]},{1:[2,10]},{5:23,7:5,13:$V0,18:66,19:[2,12],20:16,21:24,22:33,23:34,25:17,27:18,28:19,29:20,30:21,31:22,32:$V3,37:$V4,39:$V5,40:$V6,51:$V7,52:$V8,54:$V9,58:$Va,72:$Vb,73:$Vc,74:$Vd,75:$Ve},o($Vf,[2,20]),{21:67,22:33,23:34,42:[1,68],72:$Vb,73:$Vc,74:$Vd,75:$Ve},{41:69,43:48,44:49,45:$Vg,46:$Vh,47:$Vi,48:$Vj,49:$Vk,50:$Vl},o($Vf,[2,35]),{44:70,49:$Vk,50:$Vl},o($Vp,[2,45],{43:71,45:$Vg,46:$Vh,47:$Vi,48:$Vj}),o($Vq,[2,46]),o($Vq,[2,47]),o($Vq,[2,48]),o($Vq,[2,49]),o($Vr,[2,50]),o($Vr,[2,51]),o($Vf,[2,27],{33:[1,72],34:[1,73]}),{38:[1,74]},{42:[1,75]},{42:[1,76]},{55:[1,77],57:[1,78]},{22:79,72:$Vb,73:$Vc,74:$Vd},o($Vm,[2,16]),o($Vm,[2,17]),o($Vm,[2,18]),{10:[1,80]},{19:[2,13]},o($Vs,[2,38]),{21:81,22:33,23:34,72:$Vb,73:$Vc,74:$Vd,75:$Ve},{21:82,22:33,23:34,42:[1,83],72:$Vb,73:$Vc,74:$Vd,75:$Ve},o($Vp,[2,44],{43:84,45:$Vg,46:$Vh,47:$Vi,48:$Vj}),o($Vp,[2,43]),{22:85,72:$Vb,73:$Vc,74:$Vd},{35:86,39:$Vt},{21:88,22:33,23:34,72:$Vb,73:$Vc,74:$Vd,75:$Ve},o($Vf,[2,52],{42:[1,89]}),o($Vf,[2,54],{42:[1,91],53:[1,90]}),o($Vf,[2,58],{42:[1,92],56:[1,93]}),o($Vf,[2,62],{42:[1,95],53:[1,94]}),o($Vf,[2,66]),o($Vo,[2,5]),o($Vs,[2,40]),o($Vs,[2,39]),{21:96,22:33,23:34,72:$Vb,73:$Vc,74:$Vd,75:$Ve},o($Vp,[2,42]),o($Vf,[2,28],{34:[1,97]}),{36:[1,98]},{35:99,36:[2,32],39:$Vt},o($Vf,[2,31]),o($Vf,[2,53]),o($Vf,[2,55]),o($Vf,[2,56],{53:[1,100]}),o($Vf,[2,59]),o($Vf,[2,60],{42:[1,101]}),o($Vf,[2,63]),o($Vf,[2,64],{53:[1,102]}),o($Vs,[2,41]),{35:103,39:$Vt},o($Vf,[2,29]),{36:[2,33]},o($Vf,[2,57]),o($Vf,[2,61]),o($Vf,[2,65]),{36:[1,104]},o($Vf,[2,30])],\ndefaultActions: {2:[2,1],4:[2,3],7:[2,6],8:[2,2],14:[2,9],41:[2,8],42:[2,10],66:[2,13],99:[2,33]},\nparseError: function parseError (str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n},\nparse: function parse(input) {\n var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer = Object.create(this.lexer);\n var sharedState = { yy: {} };\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.options.ranges;\n if (typeof sharedState.yy.parseError === 'function') {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n function lex() {\n var token;\n token = tstack.pop() || lexer.lex() || EOF;\n if (typeof token !== 'number') {\n if (token instanceof Array) {\n tstack = token;\n token = tstack.pop();\n }\n token = self.symbols_[token] || token;\n }\n return token;\n }\n var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;\n while (true) {\n state = stack[stack.length - 1];\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == 'undefined') {\n symbol = lex();\n }\n action = table[state] && table[state][symbol];\n }\n if (typeof action === 'undefined' || !action.length || !action[0]) {\n var errStr = '';\n expected = [];\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push('\\'' + this.terminals_[p] + '\\'');\n }\n }\n if (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.showPosition() + '\\nExpecting ' + expected.join(', ') + ', got \\'' + (this.terminals_[symbol] || symbol) + '\\'';\n } else {\n errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\\'' + (this.terminals_[symbol] || symbol) + '\\'');\n }\n this.parseError(errStr, {\n text: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: expected\n });\n }\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);\n }\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.yylloc;\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n break;\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n if (ranges) {\n yyval._$.range = [\n lstack[lstack.length - (len || 1)].range[0],\n lstack[lstack.length - 1].range[1]\n ];\n }\n r = this.performAction.apply(yyval, [\n yytext,\n yyleng,\n yylineno,\n sharedState.yy,\n action[1],\n vstack,\n lstack\n ].concat(args));\n if (typeof r !== 'undefined') {\n return r;\n }\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n case 3:\n return true;\n }\n }\n return true;\n}};\n\n/* generated by jison-lex 0.3.4 */\nvar lexer = (function(){\nvar lexer = ({\n\nEOF:1,\n\nparseError:function parseError(str, hash) {\n if (this.yy.parser) {\n this.yy.parser.parseError(str, hash);\n } else {\n throw new Error(str);\n }\n },\n\n// resets the lexer, sets new input\nsetInput:function (input, yy) {\n this.yy = yy || this.yy || {};\n this._input = input;\n this._more = this._backtrack = this.done = false;\n this.yylineno = this.yyleng = 0;\n this.yytext = this.matched = this.match = '';\n this.conditionStack = ['INITIAL'];\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0\n };\n if (this.options.ranges) {\n this.yylloc.range = [0,0];\n }\n this.offset = 0;\n return this;\n },\n\n// consumes and returns one char from the input\ninput:function () {\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n var lines = ch.match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n } else {\n this.yylloc.last_column++;\n }\n if (this.options.ranges) {\n this.yylloc.range[1]++;\n }\n\n this._input = this._input.slice(1);\n return ch;\n },\n\n// unshifts one char (or a string) into the input\nunput:function (ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n //this.yyleng -= len;\n this.offset -= len;\n var oldLines = this.match.split(/(?:\\r\\n?|\\n)/g);\n this.match = this.match.substr(0, this.match.length - 1);\n this.matched = this.matched.substr(0, this.matched.length - 1);\n\n if (lines.length - 1) {\n this.yylineno -= lines.length - 1;\n }\n var r = this.yylloc.range;\n\n this.yylloc = {\n first_line: this.yylloc.first_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.first_column,\n last_column: lines ?\n (lines.length === oldLines.length ? this.yylloc.first_column : 0)\n + oldLines[oldLines.length - lines.length].length - lines[0].length :\n this.yylloc.first_column - len\n };\n\n if (this.options.ranges) {\n this.yylloc.range = [r[0], r[0] + this.yyleng - len];\n }\n this.yyleng = this.yytext.length;\n return this;\n },\n\n// When called from action, caches matched text and appends it on next action\nmore:function () {\n this._more = true;\n return this;\n },\n\n// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.\nreject:function () {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n\n }\n return this;\n },\n\n// retain first n characters of the match\nless:function (n) {\n this.unput(this.match.slice(n));\n },\n\n// displays already matched input, i.e. for error messages\npastInput:function () {\n var past = this.matched.substr(0, this.matched.length - this.match.length);\n return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\\n/g, \"\");\n },\n\n// displays upcoming input, i.e. for error messages\nupcomingInput:function () {\n var next = this.match;\n if (next.length < 20) {\n next += this._input.substr(0, 20-next.length);\n }\n return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\\n/g, \"\");\n },\n\n// displays the character position where the lexing error occurred, i.e. for error messages\nshowPosition:function () {\n var pre = this.pastInput();\n var c = new Array(pre.length + 1).join(\"-\");\n return pre + this.upcomingInput() + \"\\n\" + c + \"^\";\n },\n\n// test the lexed token: return FALSE when not a match, otherwise return token\ntest_match:function(match, indexed_rule) {\n var token,\n lines,\n backup;\n\n if (this.options.backtrack_lexer) {\n // save context\n backup = {\n yylineno: this.yylineno,\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column\n },\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n yy: this.yy,\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n if (this.options.ranges) {\n backup.yylloc.range = this.yylloc.range.slice(0);\n }\n }\n\n lines = match[0].match(/(?:\\r\\n?|\\n).*/g);\n if (lines) {\n this.yylineno += lines.length;\n }\n this.yylloc = {\n first_line: this.yylloc.last_line,\n last_line: this.yylineno + 1,\n first_column: this.yylloc.last_column,\n last_column: lines ?\n lines[lines.length - 1].length - lines[lines.length - 1].match(/\\r?\\n?/)[0].length :\n this.yylloc.last_column + match[0].length\n };\n this.yytext += match[0];\n this.match += match[0];\n this.matches = match;\n this.yyleng = this.yytext.length;\n if (this.options.ranges) {\n this.yylloc.range = [this.offset, this.offset += this.yyleng];\n }\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match[0].length);\n this.matched += match[0];\n token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);\n if (this.done && this._input) {\n this.done = false;\n }\n if (token) {\n return token;\n } else if (this._backtrack) {\n // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n return false; // rule action called reject() implying the next rule should be tested instead.\n }\n return false;\n },\n\n// return next match in input\nnext:function () {\n if (this.done) {\n return this.EOF;\n }\n if (!this._input) {\n this.done = true;\n }\n\n var token,\n match,\n tempMatch,\n index;\n if (!this._more) {\n this.yytext = '';\n this.match = '';\n }\n var rules = this._currentRules();\n for (var i = 0; i < rules.length; i++) {\n tempMatch = this._input.match(this.rules[rules[i]]);\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rules[i]);\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = false;\n continue; // rule action called reject() implying a rule MISmatch.\n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n if (match) {\n token = this.test_match(match, rules[index]);\n if (token !== false) {\n return token;\n }\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n if (this._input === \"\") {\n return this.EOF;\n } else {\n return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\\n' + this.showPosition(), {\n text: \"\",\n token: null,\n line: this.yylineno\n });\n }\n },\n\n// return next match that has a token\nlex:function lex () {\n var r = this.next();\n if (r) {\n return r;\n } else {\n return this.lex();\n }\n },\n\n// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)\nbegin:function begin (condition) {\n this.conditionStack.push(condition);\n },\n\n// pop the previously active lexer condition state off the condition stack\npopState:function popState () {\n var n = this.conditionStack.length - 1;\n if (n > 0) {\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n\n// produce the lexer rule set which is active for the currently active lexer condition state\n_currentRules:function _currentRules () {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;\n } else {\n return this.conditions[\"INITIAL\"].rules;\n }\n },\n\n// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available\ntopState:function topState (n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return \"INITIAL\";\n }\n },\n\n// alias for begin(condition)\npushState:function pushState (condition) {\n this.begin(condition);\n },\n\n// return the number of states currently on the stack\nstateStackSize:function stateStackSize() {\n return this.conditionStack.length;\n },\noptions: {},\nperformAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {\nvar YYSTATE=YY_START;\nswitch($avoiding_name_collisions) {\ncase 0: this.begin('open_directive'); return 13; \nbreak;\ncase 1: this.begin('type_directive'); return 14; \nbreak;\ncase 2: this.popState(); this.begin('arg_directive'); return 11; \nbreak;\ncase 3: this.popState(); this.popState(); return 16; \nbreak;\ncase 4:return 15;\nbreak;\ncase 5:/* skip comments */\nbreak;\ncase 6:/* skip comments */\nbreak;\ncase 7:return 10;\nbreak;\ncase 8:/* skip whitespace */\nbreak;\ncase 9:return 17;\nbreak;\ncase 10:return 17;\nbreak;\ncase 11: this.begin(\"struct\"); /*console.log('Starting struct');*/ return 34;\nbreak;\ncase 12:return \"EOF_IN_STRUCT\";\nbreak;\ncase 13:return \"OPEN_IN_STRUCT\";\nbreak;\ncase 14: /*console.log('Ending struct');*/this.popState(); return 36;\nbreak;\ncase 15:/* nothing */\nbreak;\ncase 16: /*console.log('lex-member: ' + yy_.yytext);*/ return \"MEMBER\";\nbreak;\ncase 17:return 32;\nbreak;\ncase 18:return 58;\nbreak;\ncase 19:return 51;\nbreak;\ncase 20:return 52;\nbreak;\ncase 21:return 54;\nbreak;\ncase 22:return 37;\nbreak;\ncase 23:return 38;\nbreak;\ncase 24:this.begin(\"generic\");\nbreak;\ncase 25:this.popState();\nbreak;\ncase 26:return \"GENERICTYPE\";\nbreak;\ncase 27:this.begin(\"string\");\nbreak;\ncase 28:this.popState();\nbreak;\ncase 29:return \"STR\";\nbreak;\ncase 30:this.begin(\"bqstring\");\nbreak;\ncase 31:this.popState();\nbreak;\ncase 32:return \"BQUOTE_STR\";\nbreak;\ncase 33:this.begin(\"href\");\nbreak;\ncase 34:this.popState();\nbreak;\ncase 35:return 57;\nbreak;\ncase 36:this.begin(\"callback_name\");\nbreak;\ncase 37:this.popState();\nbreak;\ncase 38:this.popState(); this.begin(\"callback_args\");\nbreak;\ncase 39:return 55;\nbreak;\ncase 40:this.popState();\nbreak;\ncase 41:return 56;\nbreak;\ncase 42:return 53;\nbreak;\ncase 43:return 53;\nbreak;\ncase 44:return 53;\nbreak;\ncase 45:return 53;\nbreak;\ncase 46:return 46;\nbreak;\ncase 47:return 46;\nbreak;\ncase 48:return 48;\nbreak;\ncase 49:return 48;\nbreak;\ncase 50:return 47;\nbreak;\ncase 51:return 45;\nbreak;\ncase 52:return 49;\nbreak;\ncase 53:return 50;\nbreak;\ncase 54:return 26;\nbreak;\ncase 55:return 33;\nbreak;\ncase 56:return 70;\nbreak;\ncase 57:return 'DOT';\nbreak;\ncase 58:return 'PLUS';\nbreak;\ncase 59:return 67;\nbreak;\ncase 60:return 'EQUALS';\nbreak;\ncase 61:return 'EQUALS';\nbreak;\ncase 62:return 74;\nbreak;\ncase 63:return 'PUNCTUATION';\nbreak;\ncase 64:return 73;\nbreak;\ncase 65:return 72;\nbreak;\ncase 66:return 69;\nbreak;\ncase 67:return 19;\nbreak;\n}\n},\nrules: [/^(?:%%\\{)/,/^(?:((?:(?!\\}%%)[^:.])*))/,/^(?::)/,/^(?:\\}%%)/,/^(?:((?:(?!\\}%%).|\\n)*))/,/^(?:%%(?!\\{)*[^\\n]*(\\r?\\n?)+)/,/^(?:%%[^\\n]*(\\r?\\n)*)/,/^(?:(\\r?\\n)+)/,/^(?:\\s+)/,/^(?:classDiagram-v2\\b)/,/^(?:classDiagram\\b)/,/^(?:[{])/,/^(?:$)/,/^(?:[{])/,/^(?:[}])/,/^(?:[\\n])/,/^(?:[^{}\\n]*)/,/^(?:class\\b)/,/^(?:cssClass\\b)/,/^(?:callback\\b)/,/^(?:link\\b)/,/^(?:click\\b)/,/^(?:<<)/,/^(?:>>)/,/^(?:[~])/,/^(?:[~])/,/^(?:[^~]*)/,/^(?:[\"])/,/^(?:[\"])/,/^(?:[^\"]*)/,/^(?:[`])/,/^(?:[`])/,/^(?:[^`]+)/,/^(?:href[\\s]+[\"])/,/^(?:[\"])/,/^(?:[^\"]*)/,/^(?:call[\\s]+)/,/^(?:\\([\\s]*\\))/,/^(?:\\()/,/^(?:[^(]*)/,/^(?:\\))/,/^(?:[^)]*)/,/^(?:_self\\b)/,/^(?:_blank\\b)/,/^(?:_parent\\b)/,/^(?:_top\\b)/,/^(?:\\s*<\\|)/,/^(?:\\s*\\|>)/,/^(?:\\s*>)/,/^(?:\\s*<)/,/^(?:\\s*\\*)/,/^(?:\\s*o\\b)/,/^(?:--)/,/^(?:\\.\\.)/,/^(?::{1}[^:\\n;]+)/,/^(?::{3})/,/^(?:-)/,/^(?:\\.)/,/^(?:\\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:\\w+)/,/^(?:[!\"#$%&'*+,-.`?\\\\/])/,/^(?:[0-9]+)/,/^(?:[\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6]|[\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377]|[\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5]|[\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA]|[\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE]|[\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA]|[\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0]|[\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977]|[\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2]|[\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A]|[\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39]|[\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8]|[\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C]|[\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C]|[\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99]|[\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0]|[\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D]|[\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3]|[\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10]|[\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1]|[\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81]|[\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3]|[\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6]|[\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A]|[\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081]|[\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D]|[\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0]|[\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310]|[\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C]|[\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711]|[\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7]|[\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C]|[\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16]|[\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF]|[\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC]|[\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D]|[\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D]|[\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3]|[\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F]|[\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128]|[\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184]|[\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3]|[\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6]|[\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE]|[\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C]|[\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D]|[\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC]|[\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B]|[\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788]|[\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805]|[\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB]|[\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28]|[\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5]|[\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4]|[\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E]|[\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D]|[\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36]|[\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D]|[\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC]|[\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF]|[\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC])/,/^(?:\\s)/,/^(?:$)/],\nconditions: {\"arg_directive\":{\"rules\":[3,4],\"inclusive\":false},\"type_directive\":{\"rules\":[2,3],\"inclusive\":false},\"open_directive\":{\"rules\":[1],\"inclusive\":false},\"callback_args\":{\"rules\":[40,41],\"inclusive\":false},\"callback_name\":{\"rules\":[37,38,39],\"inclusive\":false},\"href\":{\"rules\":[34,35],\"inclusive\":false},\"struct\":{\"rules\":[12,13,14,15,16],\"inclusive\":false},\"generic\":{\"rules\":[25,26],\"inclusive\":false},\"bqstring\":{\"rules\":[31,32],\"inclusive\":false},\"string\":{\"rules\":[28,29],\"inclusive\":false},\"INITIAL\":{\"rules\":[0,5,6,7,8,9,10,11,17,18,19,20,21,22,23,24,27,30,33,36,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67],\"inclusive\":true}}\n});\nreturn lexer;\n})();\nparser.lexer = lexer;\nfunction Parser () {\n this.yy = {};\n}\nParser.prototype = parser;parser.Parser = Parser;\nreturn new Parser;\n})();\n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\nexports.parser = parser;\nexports.Parser = parser.Parser;\nexports.parse = function () { return parser.parse.apply(parser, arguments); };\nexports.main = function commonjsMain (args) {\n if (!args[1]) {\n console.log('Usage: '+args[0]+' FILE');\n process.exit(1);\n }\n var source = require('fs').readFileSync(require('path').normalize(args[1]), \"utf8\");\n return exports.parser.parse(source);\n};\nif (typeof module !== 'undefined' && require.main === module) {\n exports.main(process.argv.slice(1));\n}\n}","const getStyles = (options) =>\n `g.classGroup text {\n fill: ${options.nodeBorder};\n fill: ${options.classText};\n stroke: none;\n font-family: ${options.fontFamily};\n font-size: 10px;\n\n .title {\n font-weight: bolder;\n }\n\n}\n\n.classTitle {\n font-weight: bolder;\n}\n.node rect,\n .node circle,\n .node ellipse,\n .node polygon,\n .node path {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n stroke-width: 1px;\n }\n\n\n.divider {\n stroke: ${options.nodeBorder};\n stroke: 1;\n}\n\ng.clickable {\n cursor: pointer;\n}\n\ng.classGroup rect {\n fill: ${options.mainBkg};\n stroke: ${options.nodeBorder};\n}\n\ng.classGroup line {\n stroke: ${options.nodeBorder};\n stroke-width: 1;\n}\n\n.classLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: ${options.mainBkg};\n opacity: 0.5;\n}\n\n.classLabel .label {\n fill: ${options.nodeBorder};\n font-size: 10px;\n}\n\n.relation {\n stroke: ${options.lineColor};\n stroke-width: 1;\n fill: none;\n}\n\n.dashed-line{\n stroke-dasharray: 3;\n}\n\n#compositionStart, .composition {\n fill: ${options.lineColor} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#compositionEnd, .composition {\n fill: ${options.lineColor} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n fill: ${options.lineColor} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#dependencyStart, .dependency {\n fill: ${options.lineColor} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#extensionStart, .extension {\n fill: ${options.lineColor} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#extensionEnd, .extension {\n fill: ${options.lineColor} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#aggregationStart, .aggregation {\n fill: ${options.mainBkg} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n#aggregationEnd, .aggregation {\n fill: ${options.mainBkg} !important;\n stroke: ${options.lineColor} !important;\n stroke-width: 1;\n}\n\n.edgeTerminals {\n font-size: 11px;\n}\n\n`;\n\nexport default getStyles;\n","import { line, curveBasis } from 'd3';\nimport { lookUpDomId, relationType } from './classDb';\nimport utils from '../../utils';\nimport { log } from '../../logger';\n\nlet edgeCount = 0;\nexport const drawEdge = function (elem, path, relation, conf) {\n const getRelationType = function (type) {\n switch (type) {\n case relationType.AGGREGATION:\n return 'aggregation';\n case relationType.EXTENSION:\n return 'extension';\n case relationType.COMPOSITION:\n return 'composition';\n case relationType.DEPENDENCY:\n return 'dependency';\n }\n };\n\n path.points = path.points.filter((p) => !Number.isNaN(p.y));\n\n // The data for our line\n const lineData = path.points;\n\n // This is the accessor function we talked about above\n const lineFunction = line()\n .x(function (d) {\n return d.x;\n })\n .y(function (d) {\n return d.y;\n })\n .curve(curveBasis);\n\n const svgPath = elem\n .append('path')\n .attr('d', lineFunction(lineData))\n .attr('id', 'edge' + edgeCount)\n .attr('class', 'relation');\n let url = '';\n if (conf.arrowMarkerAbsolute) {\n url =\n window.location.protocol +\n '//' +\n window.location.host +\n window.location.pathname +\n window.location.search;\n url = url.replace(/\\(/g, '\\\\(');\n url = url.replace(/\\)/g, '\\\\)');\n }\n\n if (relation.relation.lineType == 1) {\n svgPath.attr('class', 'relation dashed-line');\n }\n if (relation.relation.type1 !== 'none') {\n svgPath.attr(\n 'marker-start',\n 'url(' + url + '#' + getRelationType(relation.relation.type1) + 'Start' + ')'\n );\n }\n if (relation.relation.type2 !== 'none') {\n svgPath.attr(\n 'marker-end',\n 'url(' + url + '#' + getRelationType(relation.relation.type2) + 'End' + ')'\n );\n }\n\n let x, y;\n const l = path.points.length;\n // Calculate Label position\n let labelPosition = utils.calcLabelPosition(path.points);\n x = labelPosition.x;\n y = labelPosition.y;\n\n let p1_card_x, p1_card_y;\n let p2_card_x, p2_card_y;\n\n if (l % 2 !== 0 && l > 1) {\n let cardinality_1_point = utils.calcCardinalityPosition(\n relation.relation.type1 !== 'none',\n path.points,\n path.points[0]\n );\n let cardinality_2_point = utils.calcCardinalityPosition(\n relation.relation.type2 !== 'none',\n path.points,\n path.points[l - 1]\n );\n\n log.debug('cardinality_1_point ' + JSON.stringify(cardinality_1_point));\n log.debug('cardinality_2_point ' + JSON.stringify(cardinality_2_point));\n\n p1_card_x = cardinality_1_point.x;\n p1_card_y = cardinality_1_point.y;\n p2_card_x = cardinality_2_point.x;\n p2_card_y = cardinality_2_point.y;\n }\n\n if (typeof relation.title !== 'undefined') {\n const g = elem.append('g').attr('class', 'classLabel');\n const label = g\n .append('text')\n .attr('class', 'label')\n .attr('x', x)\n .attr('y', y)\n .attr('fill', 'red')\n .attr('text-anchor', 'middle')\n .text(relation.title);\n\n window.label = label;\n const bounds = label.node().getBBox();\n\n g.insert('rect', ':first-child')\n .attr('class', 'box')\n .attr('x', bounds.x - conf.padding / 2)\n .attr('y', bounds.y - conf.padding / 2)\n .attr('width', bounds.width + conf.padding)\n .attr('height', bounds.height + conf.padding);\n }\n\n log.info('Rendering relation ' + JSON.stringify(relation));\n if (typeof relation.relationTitle1 !== 'undefined' && relation.relationTitle1 !== 'none') {\n const g = elem.append('g').attr('class', 'cardinality');\n g.append('text')\n .attr('class', 'type1')\n .attr('x', p1_card_x)\n .attr('y', p1_card_y)\n .attr('fill', 'black')\n .attr('font-size', '6')\n .text(relation.relationTitle1);\n }\n if (typeof relation.relationTitle2 !== 'undefined' && relation.relationTitle2 !== 'none') {\n const g = elem.append('g').attr('class', 'cardinality');\n g.append('text')\n .attr('class', 'type2')\n .attr('x', p2_card_x)\n .attr('y', p2_card_y)\n .attr('fill', 'black')\n .attr('font-size', '6')\n .text(relation.relationTitle2);\n }\n\n edgeCount++;\n};\n\nexport const drawClass = function (elem, classDef, conf) {\n log.info('Rendering class ' + classDef);\n\n const id = classDef.id;\n const classInfo = {\n id: id,\n label: classDef.id,\n width: 0,\n height: 0,\n };\n\n // add class group\n const g = elem.append('g').attr('id', lookUpDomId(id)).attr('class', 'classGroup');\n\n // add title\n let title;\n if (classDef.link) {\n title = g\n .append('svg:a')\n .attr('xlink:href', classDef.link)\n .attr('target', classDef.linkTarget)\n .append('text')\n .attr('y', conf.textHeight + conf.padding)\n .attr('x', 0);\n } else {\n title = g\n .append('text')\n .attr('y', conf.textHeight + conf.padding)\n .attr('x', 0);\n }\n\n // add annotations\n let isFirst = true;\n classDef.annotations.forEach(function (member) {\n const titleText2 = title.append('tspan').text('«' + member + '»');\n if (!isFirst) titleText2.attr('dy', conf.textHeight);\n isFirst = false;\n });\n\n let classTitleString = classDef.id;\n\n if (classDef.type !== undefined && classDef.type !== '') {\n classTitleString += '<' + classDef.type + '>';\n }\n\n const classTitle = title.append('tspan').text(classTitleString).attr('class', 'title');\n\n // If class has annotations the title needs to have an offset of the text height\n if (!isFirst) classTitle.attr('dy', conf.textHeight);\n\n const titleHeight = title.node().getBBox().height;\n\n const membersLine = g\n .append('line') // text label for the x axis\n .attr('x1', 0)\n .attr('y1', conf.padding + titleHeight + conf.dividerMargin / 2)\n .attr('y2', conf.padding + titleHeight + conf.dividerMargin / 2);\n\n const members = g\n .append('text') // text label for the x axis\n .attr('x', conf.padding)\n .attr('y', titleHeight + conf.dividerMargin + conf.textHeight)\n .attr('fill', 'white')\n .attr('class', 'classText');\n\n isFirst = true;\n classDef.members.forEach(function (member) {\n addTspan(members, member, isFirst, conf);\n isFirst = false;\n });\n\n const membersBox = members.node().getBBox();\n\n const methodsLine = g\n .append('line') // text label for the x axis\n .attr('x1', 0)\n .attr('y1', conf.padding + titleHeight + conf.dividerMargin + membersBox.height)\n .attr('y2', conf.padding + titleHeight + conf.dividerMargin + membersBox.height);\n\n const methods = g\n .append('text') // text label for the x axis\n .attr('x', conf.padding)\n .attr('y', titleHeight + 2 * conf.dividerMargin + membersBox.height + conf.textHeight)\n .attr('fill', 'white')\n .attr('class', 'classText');\n\n isFirst = true;\n\n classDef.methods.forEach(function (method) {\n addTspan(methods, method, isFirst, conf);\n isFirst = false;\n });\n\n const classBox = g.node().getBBox();\n var cssClassStr = ' ';\n\n if (classDef.cssClasses.length > 0) {\n cssClassStr = cssClassStr + classDef.cssClasses.join(' ');\n }\n\n const rect = g\n .insert('rect', ':first-child')\n .attr('x', 0)\n .attr('y', 0)\n .attr('width', classBox.width + 2 * conf.padding)\n .attr('height', classBox.height + conf.padding + 0.5 * conf.dividerMargin)\n .attr('class', cssClassStr);\n\n const rectWidth = rect.node().getBBox().width;\n\n // Center title\n // We subtract the width of each text element from the class box width and divide it by 2\n title.node().childNodes.forEach(function (x) {\n x.setAttribute('x', (rectWidth - x.getBBox().width) / 2);\n });\n\n if (classDef.tooltip) {\n title.insert('title').text(classDef.tooltip);\n }\n\n membersLine.attr('x2', rectWidth);\n methodsLine.attr('x2', rectWidth);\n\n classInfo.width = rectWidth;\n classInfo.height = classBox.height + conf.padding + 0.5 * conf.dividerMargin;\n\n return classInfo;\n};\n\nexport const parseMember = function (text) {\n const fieldRegEx = /(\\+|-|~|#)?(\\w+)(~\\w+~|\\[\\])?\\s+(\\w+)/;\n const methodRegEx = /^([+|\\-|~|#])?(\\w+) *\\( *(.*)\\) *(\\*|\\$)? *(\\w*[~|[\\]]*\\s*\\w*~?)$/;\n\n let fieldMatch = text.match(fieldRegEx);\n let methodMatch = text.match(methodRegEx);\n\n if (fieldMatch && !methodMatch) {\n return buildFieldDisplay(fieldMatch);\n } else if (methodMatch) {\n return buildMethodDisplay(methodMatch);\n } else {\n return buildLegacyDisplay(text);\n }\n};\n\nconst buildFieldDisplay = function (parsedText) {\n let displayText = '';\n\n try {\n let visibility = parsedText[1] ? parsedText[1].trim() : '';\n let fieldType = parsedText[2] ? parsedText[2].trim() : '';\n let genericType = parsedText[3] ? parseGenericTypes(parsedText[3].trim()) : '';\n let fieldName = parsedText[4] ? parsedText[4].trim() : '';\n\n displayText = visibility + fieldType + genericType + ' ' + fieldName;\n } catch (err) {\n displayText = parsedText;\n }\n\n return {\n displayText: displayText,\n cssStyle: '',\n };\n};\n\nconst buildMethodDisplay = function (parsedText) {\n let cssStyle = '';\n let displayText = '';\n\n try {\n let visibility = parsedText[1] ? parsedText[1].trim() : '';\n let methodName = parsedText[2] ? parsedText[2].trim() : '';\n let parameters = parsedText[3] ? parseGenericTypes(parsedText[3].trim()) : '';\n let classifier = parsedText[4] ? parsedText[4].trim() : '';\n let returnType = parsedText[5] ? ' : ' + parseGenericTypes(parsedText[5]).trim() : '';\n\n displayText = visibility + methodName + '(' + parameters + ')' + returnType;\n\n cssStyle = parseClassifier(classifier);\n } catch (err) {\n displayText = parsedText;\n }\n\n return {\n displayText: displayText,\n cssStyle: cssStyle,\n };\n};\n\nconst buildLegacyDisplay = function (text) {\n // if for some reason we dont have any match, use old format to parse text\n let displayText = '';\n let cssStyle = '';\n let memberText = '';\n let returnType = '';\n let methodStart = text.indexOf('(');\n let methodEnd = text.indexOf(')');\n\n if (methodStart > 1 && methodEnd > methodStart && methodEnd <= text.length) {\n let visibility = '';\n let methodName = '';\n\n let firstChar = text.substring(0, 1);\n if (firstChar.match(/\\w/)) {\n methodName = text.substring(0, methodStart).trim();\n } else {\n if (firstChar.match(/\\+|-|~|#/)) {\n visibility = firstChar;\n }\n\n methodName = text.substring(1, methodStart).trim();\n }\n\n let parameters = text.substring(methodStart + 1, methodEnd);\n let classifier = text.substring(methodEnd + 1, 1);\n cssStyle = parseClassifier(classifier);\n\n displayText = visibility + methodName + '(' + parseGenericTypes(parameters.trim()) + ')';\n\n if (methodEnd < memberText.length) {\n returnType = text.substring(methodEnd + 2).trim();\n if (returnType !== '') {\n returnType = ' : ' + parseGenericTypes(returnType);\n }\n }\n } else {\n // finally - if all else fails, just send the text back as written (other than parsing for generic types)\n displayText = parseGenericTypes(text);\n }\n\n return {\n displayText: displayText,\n cssStyle: cssStyle,\n };\n};\n\nconst addTspan = function (textEl, txt, isFirst, conf) {\n let member = parseMember(txt);\n\n const tSpan = textEl.append('tspan').attr('x', conf.padding).text(member.displayText);\n\n if (member.cssStyle !== '') {\n tSpan.attr('style', member.cssStyle);\n }\n\n if (!isFirst) {\n tSpan.attr('dy', conf.textHeight);\n }\n};\n\nconst parseGenericTypes = function (text) {\n let cleanedText = text;\n\n if (text.indexOf('~') != -1) {\n cleanedText = cleanedText.replace('~', '<');\n cleanedText = cleanedText.replace('~', '>');\n\n return parseGenericTypes(cleanedText);\n } else {\n return cleanedText;\n }\n};\n\nconst parseClassifier = function (classifier) {\n switch (classifier) {\n case '*':\n return 'font-style:italic;';\n case '$':\n return 'text-decoration:underline;';\n default:\n return '';\n }\n};\n\nexport default {\n drawClass,\n drawEdge,\n parseMember,\n};\n","import DOMPurify from 'dompurify';\n\nexport const getRows = (s) => {\n if (!s) return 1;\n let str = breakToPlaceholder(s);\n str = str.replace(/\\\\n/g, '#br#');\n return str.split('#br#');\n};\n\nexport const removeScript = (txt) => {\n var rs = '';\n var idx = 0;\n\n while (idx >= 0) {\n idx = txt.indexOf('= 0) {\n rs += txt.substr(0, idx);\n txt = txt.substr(idx + 1);\n\n idx = txt.indexOf('');\n if (idx >= 0) {\n idx += 9;\n txt = txt.substr(idx);\n }\n } else {\n rs += txt;\n idx = -1;\n break;\n }\n }\n\n rs = rs.replace(/javascript:/g, '#');\n rs = rs.replace(/onerror=/g, 'onerror:');\n rs = rs.replace(/