develop
{"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/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 \"entity-decode/browser\"","webpack://mermaid/external \"graphlib\"","webpack://mermaid/external \"khroma\"","webpack://mermaid/external \"moment-mini\"","webpack://mermaid/external \"stylis\""],"names":["defaultConfig","Object","freeze","config","siteConfig","assignWithDepth","directives","currentConfig","updateCurrentConfig","siteCfg","_directives","cfg","themeVariables","i","length","d","sanitize","theme","getThemeVariables","tVars","variables","setSiteConfig","conf","console","warn","updateSiteConfig","getSiteConfig","setConfig","getConfig","options","keys","secure","forEach","key","logger","debug","addDirective","directive","push","reset","rect","parent","node","log","trace","id","shapeSvg","insert","attr","label","text","appendChild","createLabel","labelText","labelStyle","undefined","bbox","getBBox","flowchart","htmlLabels","div","children","dv","select","getBoundingClientRect","width","height","padding","halfPadding","JSON","stringify","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","style","_vertexText","isTitle","vertexText","replace","s","vertexNode","svgLabel","setAttribute","rows","split","Array","isArray","j","tspan","setAttributeNS","textContent","trim","edgeLabels","insertEdgeLabel","edge","labelElement","edgeLabel","positionEdgeLabel","points","pos","utils","calcLabelPosition","outsideNode","dx","Math","abs","dy","w","h","intersection","outsidePoint","insidePoint","r","edges","x1","x2","y1","y2","Q","R","q","res","insertEdge","e","clusterDb","diagramType","graph","pointsHasChanged","tail","v","head","slice","unshift","toCluster","lastPointOutside","isInside","inter","pointPresent","p","find","fromCluster","updatedPoints","insterection","lineData","filter","Number","isNaN","lineFunction","line","curve","curveBasis","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","clusters","edgePaths","data","parse","clusterData","setNode","setParent","clusterNode","newEl","updateNodeBounds","setNodeElem","findNonClusterChild","insertNode","name","dagre","layout","positionNode","updatedPath","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","intersections","minX","POSITIVE_INFINITY","minY","entry","min","left","top","sort","pdx","pdy","distp","qdx","qdy","distq","sx","sy","markerArray","type","markerName","extension","composition","aggregation","dependency","cross","barb","decendants","parents","isDecendant","ancenstorId","indexOf","edgeInCluster","clusterId","copy","newGraph","rootId","setEdge","error","removeNode","extractDecendants","concat","validate","_id","getAnchorId","externalConnections","depth","d1","d2","extractor","removeEdge","hasChildren","graphSettings","clusterGraph","Graph","multigraph","compound","setGraph","nodesep","ranksep","marginx","marginy","setDefaultEdgeLabel","question","labelHelper","questionElem","insertPolygonShape","hexagon","f","m","hex","rect_left_inv_arrow","lean_right","lean_left","trapezoid","inv_trapezoid","rect_right_inv_arrow","cylinder","rectWithTitle","innerLine","text2","flat","textRows","titleBox","descr","join","stadium","subroutine","start","forkJoin","end","innerCircle","class_box","rowPadding","lineHeight","topLine","bottomLine","maxWidth","maxHeight","labelContainer","verticalPos","hasInterface","classData","annotations","interfaceLabel","interfaceBBox","classTitleLabel","classTitleBBox","classAttributes","members","str","lbl","classMethods","methods","diffX","note","fork","nodeElems","_classes","element","map","themeCSS","maxTextSize","fontFamily","logLevel","securityLevel","startOnLoad","diagramPadding","nodeSpacing","rankSpacing","sequence","activationWidth","diagramMarginX","diagramMarginY","actorMargin","boxMargin","boxTextMargin","noteMargin","messageMargin","messageAlign","mirrorActors","bottomMarginAdj","useMaxWidth","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","leftPadding","gridLineStartPadding","numberSectionStyles","axisFormat","journey","class","git","dividerMargin","sizeUnit","textHeight","titleShift","forkWidth","forkHeight","miniPadding","fontSizeFactor","labelHeight","edgeLengthFactor","compositTitleSize","radius","er","layoutDirection","minEntityWidth","minEntityHeight","entityPadding","stroke","fill","MERMAID_DOM_ID_PREFIX","configApi","relations","classCounter","funs","parseDirective","statement","context","mermaidAPI","splitClassNameAndType","genericType","className","addClass","classId","cssClasses","domId","lookUpDomId","classKeys","setupToolTips","getClass","getClasses","getRelations","addRelation","relation","id1","id2","addAnnotation","annotation","validatedClassName","addMember","member","theClass","memberString","startsWith","endsWith","substring","addMembers","reverse","cleanupLabel","substr","setCssClass","ids","match","setLink","linkStr","tooltip","link","formatUrl","common","sanitizeText","setClickEvent","functionName","setClickFunc","elemId","querySelector","addEventListener","runFunc","bindFunctions","fun","lineType","LINE","DOTTED_LINE","relationType","AGGREGATION","EXTENSION","COMPOSITION","DEPENDENCY","tooltipElem","_groups","svg","selectAll","on","title","transition","duration","scrollX","right","scrollY","body","scrollTop","classed","parser","yy","classDb","idCache","addClasses","g","vertex","classStr","styles","radious","_shape","addRelations","cnt","defaultStyle","defaultLabelStyle","edgeData","arrowhead","getArrowMarker","type1","type2","getStylesFromArray","interpolate","interpolateToCurve","curveLinear","defaultInterpolate","arrowheadStyle","labelpos","labelType","lineBreakRegex","getGraphId","setConf","cnf","drawOld","diagram","isMultiGraph","classDef","svgDraw","drawClass","drawEdge","svgBounds","vBox","draw","_label","labels","querySelectorAll","k","dim","insertBefore","firstChild","marker","getStyles","nodeBorder","classText","mainBkg","lineColor","edgeCount","path","getRelationType","l","labelPosition","p1_card_x","p1_card_y","p2_card_x","p2_card_y","cardinality_1_point","calcCardinalityPosition","cardinality_2_point","bounds","relationTitle1","relationTitle2","classInfo","isFirst","titleText2","classTitleString","classTitle","titleHeight","membersLine","addTspan","membersBox","methodsLine","method","classBox","cssClassStr","rectWidth","childNodes","parseMember","fieldRegEx","methodRegEx","fieldMatch","methodMatch","buildFieldDisplay","buildMethodDisplay","buildLegacyDisplay","parsedText","displayText","visibility","fieldType","parseGenericTypes","fieldName","err","cssStyle","methodName","parameters","classifier","returnType","parseClassifier","memberText","methodStart","methodEnd","firstChar","textEl","txt","tSpan","cleanedText","getRows","breakToPlaceholder","removeScript","rs","idx","level","placeholderToBreak","hasBreaks","test","splitBreaks","entities","relationships","Cardinality","ZERO_OR_ONE","ZERO_OR_MORE","ONE_OR_MORE","ONLY_ONE","Identification","NON_IDENTIFYING","IDENTIFYING","addEntity","getEntities","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","drawEntities","svgNode","firstOne","groupNode","textId","textNode","textBBox","entityWidth","max","entityHeight","rectNode","rectBBox","adjustEntities","getEdgeName","addRelationships","relationship","relCnt","drawRelationshipFromLayout","relType","erDb","cardA","erMarkers","cardB","len","getTotalLength","labelPoint","getPointAtLength","labelId","labelNode","labelBBox","erParser","directed","edgesep","firstEntity","tertiaryColor","dagreD3","addToRender","addToRenderV2","addShape","vertices","subGraphs","subGraphLookup","tooltips","subCount","firstGraphFlag","direction","addVertex","addSingleLink","_start","_end","linktext","addLink","updateLinkInterpolate","positions","interp","updateLink","isSubstringInArray","textStyles","newStyle1","newStyle2","setDirection","setClass","setTooltip","setClickFun","target","linkTarget","getTooltip","getDirection","getVertices","getEdges","addSubGraph","list","_title","uniq","a","prims","boolean","number","string","objs","item","hasOwnProperty","nodeList","apply","subGraph","getPosForId","secCount","posCrossRef","indexNodes2","result","count","posCount","childPos","getDepthFirstPos","indexNodes","getSubGraphs","firstGraph","destructStartLink","_str","destructEndLink","destructLink","_startStr","startInfo","lex","addVertices","vert","svgId","parentNode","addEdges","defaultStyles","linkId","linkNameStart","linkNameEnd","flowDb","flow","subG","linkNode","Render","flowChartShapes","arrows","none","normal","util","clusterRects","clusterEl","xPos","baseVal","value","yPos","cluster","te","classList","add","nodeTextColor","textColor","arrowheadColor","edgeLabelBackground","clusterBkg","clusterBorder","titleColor","border2","dateFormat","todayMarker","excludes","sections","tasks","currentSection","tags","inclusiveEndDates","lastOrder","taskCnt","lastTask","lastTaskID","rawTasks","setAxisFormat","getAxisFormat","setTodayMarker","getTodayMarker","setDateFormat","enableInclusiveEndDates","endDatesAreInclusive","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","functionArgs","argList","charAt","callbackFunction","matchFound","t","regex","RegExp","shift","ganttDb","rightPadding","getElementById","parentElement","offsetWidth","useWidth","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","xAxis","axisBottom","tickSize","tickFormat","timeFormat","call","numOccurances","prevGap","getCount","todayG","today","todayLine","arr","hash","getCounts","obj","word","sectionBkgColor","sectionBkgColor2","altSectionBkgColor","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","reduce","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","o","getCurrentBranch","getHead","allCommitsDict","branchNum","nodeFillColor","nodeStrokeWidth","nodeStrokeColor","lineStrokeWidth","branchOffset","leftMargin","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","ver","gitGraphParser","db","assign","setMessage","getMessage","setInfo","inf","getInfo","infoParser","cleanupValue","pie","pieParser","pieData","margin","legendRectSize","legendSpacing","sum","scaleOrdinal","schemeSet2","d3pie","dataReady","entries","arcGenerator","arc","innerRadius","outerRadius","toFixed","centroid","legend","horz","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","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","val","updateBounds","_self","updateFn","updateItemBounds","n","_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","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","textPlacement","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","stmt","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","nodeData","noteData","groupData","position","arrowType","setupDoc","startId","endId","transformationLog","renderDoc","getLabelWidth","edgeFreeDoc","ranker","nodeSep","sub","boxBounds","noteDef","nodeCount","svgElem","dividers","pWidth","pShift","getAttribute","labelColor","background","tertiaryTextColor","primaryBorderColor","altBackground","allItemsProcessed","updateActors","tempActors","people","unique","Set","taskData","pieces","score","peeps","peopleList","journeyDb","taskMargin","taskFontSize","taskFontFamily","actorColours","sectionFills","sectionColours","drawActorLegend","person","colour","circleData","drawCircle","labelData","LEFT_MARGIN","initGraphics","actorNames","actorPos","actorName","drawTasks","fills","textColours","lastSection","sectionVHeight","taskPos","sectionNumber","drawSection","taskActors","drawTask","fillType0","fillType1","fillType2","fillType3","fillType4","fillType5","fillType6","fillType7","drawFace","faceData","circleElement","face","smile","d3arc","startAngle","PI","endAngle","sad","ambivalent","labelMargin","taskCount","graphics","LEVELS","fatal","setLogLevel","bind","time","arguments","mermaid","sequenceConfig","callback","Node","ganttConfig","now","innerHTML","decode","detectInit","svgCode","parseError","initialize","contentLoaded","graphInit","reinitialize","graphType","detectType","gitGraphAst","flowParser","sequenceParser","ganttParser","classParser","stateParser","infoDb","pieDb","journeyParser","encodeEntities","innerTxt","isInt","decodeEntities","_txt","cb","container","primaryColor","existingSvg","remove","userStyles","altFontFamily","flowRenderer","stylis","Stylis","rules","style1","createElement","gitGraphRenderer","flowRendererV2","sequenceDiagram","sequenceRenderer","ganttRenderer","classRenderer","classRendererV2","stateRenderer","stateRendererV2","infoRenderer","pkg","version","pieRenderer","erRenderer","journeyRenderer","errorRenderer","currentDirective","args","handleDirective","updateRendererConfigs","default","globalReset","themes","classDiagram","stateDiagram","calcThemeVariables","userOverRides","calcColors","errorBkgColor","errorTextColor","base","baseThemeVariables","dark","darkThemeVariables","defaultThemeVariables","forest","forestThemeVariables","neutral","neutralThemeVariables","Theme","darkMode","primaryTextColor","secondaryColor","adjust","mkBorder","secondaryBorderColor","tertiaryBorderColor","secondaryTextColor","invert","nodeBkg","defaultLinkColor","darken","lighten","taskTextLightColor","overrides","updateColors","userOverrides","calculate","secondBkg","mainContrastColor","darkTextColor","border1","rgba","labelBackground","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","makeid","characters","charactersLength","floor","dst","src","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","bBox"],"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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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,UAAU,GAAG,EAAjB;AACA,IAAIC,aAAa,GAAGF,8DAAe,CAAC,EAAD,EAAKL,aAAL,CAAnC;AAEO,IAAMQ,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,OAAD,EAAUC,WAAV,EAA0B;AAC3D,MAAIC,GAA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E,2BAA2B,6BAA6B,iCAAiC,GAAG,UAAU,EAAE,UAAU,gBAAgB,iCAAiC,EAAE,2CAA2C,eAAe,kCAAkC,iBAAiB,2BAA2B,EAAE,aAAa,EAAE,iCAAiC,eAAe,UAAU,gBAAgB,UAAU,wEAAwE,iCAAiC,6BAA6B,UAAU,GAAG,UAAU,EAAE,uBAAuB,0DAA0D,aAAa,gBAAgB,UAAU,EAAE,UAAU;AACtnE,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;AACA;AACA;AACA;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,8QAA8Q,EAAE,MAAM,YAAY,EAAE;AACrkB,aAAa,UAAU,kCAAkC,YAAY,kCAAkC,WAAW,2CAA2C,mBAAmB,8BAA8B,mBAAmB,gCAAgC,kBAAkB,gCAAgC,YAAY;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AI;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,kfAAkf;AAC7f,aAAa,+QAA+Q;AAC5R;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;AACA,iBAAiB,oCAAoC;AACrD;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,0CAA0C,wCAAwC,6BAA6B,UAAU,EAAE,gBAAgB,EAAE,UAAU,eAAe,aAAa,EAAE,0BAA0B,uEAAuE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,kCAAkC,8BAA8B,UAAU,EAAE,0BAA0B,EAAE,UAAU;AAC3uB,iBAAiB,+CAA+C;AAChE;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;A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CAAC/C,IAAN,EAAP;AACD,WAFD;AAGD;;AAED,YAAMO,MAAK,GAAGP,IAAI,CAACqB,MAAL,CAAY,QAAZ,CAAd;;AACA,YAAId,MAAJ,EAAW;AACTiwB,kBAAQ,CAAC/tB,MAAT,CAAgB,YAAW;AACzB,mBAAOlC,MAAK,CAACP,IAAN,EAAP;AACD,WAFD;AAGD;AACF;AACF;AACF,GAjCD;AAkCD,CA3NM;AA6NQ;AACbohB,SAAO,EAAPA,OADa;AAEbwO,aAAW,EAAXA,WAFa;AAGbI,UAAQ,EAARA,QAHa;AAIbvU,YAAU,EAAVA,UAJa;AAKbsG,MAAI,EAAJA;AALa,CAAf,E;;;;;;;;;;;ACjfA;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,wqDAAwqD;AACnrD,aAAa,08BAA08B;AACv9B;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;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,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,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,uQAAuQ,EAAE,sBAAsB,6DAA6D,uCAAuC,sFAAsF,0DAA0D,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,oCAAoC,eAAe,aAAa,GAAG,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,eAAe,UAAU,gBAAgB,2NAA2N,mPAAmP,0BAA0B,EAAE,gBAAgB,yDAAyD,UAAU,eAAe,cAAc,iBAAiB,0IAA0I,yDAAyD,6BAA6B,GAAG,0RAA0R,8IAA8I,0RAA0R,aAAa,OAAO,gBAAgB,QAAQ,GAAG,sKAAsK,EAAE,6BAA6B,EAAE,sKAAsK,EAAE,2JAA2J,EAAE,2JAA2J,EAAE,8HAA8H,EAAE,0RAA0R,EAAE,qSAAqS,EAAE,0RAA0R,EAAE,0RAA0R,EAAE,0RAA0R,EAAE,0RAA0R,EAAE,qSAAqS,EAAE,0RAA0R,EAAE,0RAA0R,EAAE,0RAA0R,+BAA+B,aAAa,EAAE,SAAS,2CAA2C,cAAc,gBAAgB,WAAW,GAAG,WAAW,EAAE,0RAA0R,EAAE,uRAAuR,qjBAAqjB,kTAAkT,EAAE,0QAA0Q,EAAE,cAAc,EAAE,+JAA+J,EAAE,WAAW,kFAAkF,WAAW,EAAE,sBAAsB,kBAAkB,WAAW,EAAE,+JAA+J,EAAE,+JAA+J,EAAE,+JAA+J,eAAe,uHAAuH,GAAG,uRAAuR,EAAE,0RAA0R,EAAE,uRAAuR,EAAE,uRAAuR,EAAE,uRAAuR,EAAE,uRAAuR,EAAE,uRAAuR,EAAE,uRAAuR,EAAE,0RAA0R,EAAE,uRAAuR,EAAE,kSAAkS,EAAE,kSAAkS,EAAE,2BAA2B,eAAe,QAAQ,+BAA+B,uRAAuR,+BAA+B,0RAA0R,aAAa,OAAO,iBAAiB,oIAAoI,EAAE,+GAA+G,kBAAkB,+GAA+G,EAAE,0HAA0H,EAAE,0HAA0H,EAAE,WAAW,EAAE,+GAA+G,EAAE,+GAA+G,EAAE,2JAA2J,EAAE,sKAAsK,gBAAgB,uRAAuR,sFAAsF,uRAAuR,yJAAyJ,uRAAuR,EAAE,0QAA0Q,8BAA8B,QAAQ,kBAAkB,iGAAiG,iNAAiN,QAAQ,iBAAiB,QAAQ,GAAG,WAAW,gBAAgB,QAAQ,GAAG,WAAW,+BAA+B,QAAQ,gBAAgB,QAAQ,gBAAgB,oJAAoJ,gBAAgB,+JAA+J,gBAAgB,WAAW,GAAG,WAAW,EAAE,WAAW,EAAE,2BAA2B,gBAAgB,wGAAwG,kBAAkB,2JAA2J,EAAE,2JAA2J,EAAE,WAAW,EAAE,sBAAsB,yCAAyC,OAAO,kBAAkB,iGAAiG,iBAAiB,+JAA+J,iBAAiB,+JAA+J,8BAA8B,WAAW,iBAAiB,0QAA0Q,EAAE,+GAA+G,EAAE,+GAA+G,EAAE,WAAW,8BAA8B,QAAQ,iBAAiB,QAAQ;AACn+jB,iBAAiB,kCAAkC;AACnD;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,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,qgBAAqgB,25KAA25K,UAAU;AACziM,aAAa,mBAAmB,6BAA6B,kBAAkB,gCAAgC,mBAAmB,gCAAgC,mBAAmB,8BAA8B,WAAW,6BAA6B,QAAQ,6DAA6D,WAAW,gCAAgC,YAAY;AACvX,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,CA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bW,MAAI,EAAJA;AAFa,CAAf,E;;;;;;;;;;;AC9dA;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,khBAAkhB;AAC7hB,aAAa,uUAAuU;AACpV;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,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,6HAA6H,EAAE,uBAAuB,gCAAgC,QAAQ,gBAAgB,4FAA4F,2IAA2I,UAAU,gBAAgB,oBAAoB,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,0CAA0C,oBAAoB,gBAAgB,UAAU,iBAAiB,aAAa,EAAE,UAAU,eAAe,UAAU,8BAA8B,UAAU,GAAG,UAAU;AAC/1B,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;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,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,CAAC;AACD,iBAAiB,kBAAkB,gCAAgC,oBAAoB,0BAA0B,qBAAqB,8TAA8T,yDAAyD,2BAA2B,6BAA6B,qDAAqD,2BAA2B,kBAAkB,kBAAkB;AACzqB,aAAa,mBAAmB,6BAA6B,kBAAkB,gCAAgC,mBAAmB,gCAAgC,mBAAmB,8BAA8B,iBAAiB,kCAAkC,iBAAiB,qCAAqC,SAAS,kCAAkC,UAAU,kCAAkC,YAAY;AAC/Z,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,C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APA,OADa;AAEbW,MAAI,EAAJA;AAFa,CAAf,E;;;;;;;;;;;ACjVA;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,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;AA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S,aALT,EAKwB,QALxB,EAMGxD,IANH,CAMQ,OAAO2iC,GANf;AAQAzkB,OAAG,CAACpe,IAAJ,CAAS,QAAT,EAAmB,GAAnB;AACAoe,OAAG,CAACpe,IAAJ,CAAS,OAAT,EAAkB,GAAlB,EArBE,CAsBF;AACD,GAvBD,CAuBE,OAAO2G,CAAP,EAAU;AACVzH,kDAAM,CAACgR,KAAP,CAAa,oCAAb;AACAhR,kDAAM,CAACgR,KAAP,CAAavJ,CAAC,CAAC23B,OAAf;AACD;AACF,CA5BM;AA8BQ;AACbxd,SAAO,EAAPA,OADa;AAEbW,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,wOAAwO,mHAAmH;AACtW,aAAa,2FAA2F,2FAA2F;AACnM;AACA;AACA;;AAEA;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,cAAc,KAAK,6CAA6C,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,cAAc,uDAAuD,GAAG,uBAAuB,iCAAiC,0BAA0B,EAAE,UAAU,EAAE,UAAU,8BAA8B,gBAAgB,uDAAuD,aAAa,EAAE,UAAU;AAChlB,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;AA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,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,6yBAA6yB;AACxzB,aAAa,sfAAsf;AACngB;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;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,kEAAkE,EAAE,oCAAoC,2CAA2C,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,sFAAsF,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,SAAS,0DAA0D,UAAU,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;AACpsF,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,CAAC;AACD,iBAAiB,kBAAkB,gCAAgC,oBAAoB,uFAAuF,oBAAoB,kDAAkD,iCAAiC,sKAAsK,8MAA8M,qBAAqB,gCAAgC,+GAA+G;AAC7yB,aAAa,kBAAkB,gCAAgC,mBAAmB,kCAAkC,kBAAkB,kCAAkC,OAAO,mCAAmC,UAAU,sCAAsC,SAAS,mCAAmC,YAAY;AAC1T,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,0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A;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;A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,QAAR,CAAiB38B,OAAjB,EAA0B8S,IAA1B,EAAgCz1B,IAAhC;AACA6kB,UAAM,CAACpjB,MAAP,CAAcg0B,IAAI,CAACtyB,CAAnB,EAAsBsyB,IAAI,CAACryB,CAA3B,EAA8BqyB,IAAI,CAACtyB,CAAL,GAASsyB,IAAI,CAAC9yB,KAAd,GAAsB3C,IAAI,CAAC49C,UAAzD,EAAqE,MAAM,IAAI,EAA/E,EA1CqC,CA0C+C;AACrF;AACF,CAvDM;AAyDQ;AACbp7B,SAAO,EAAPA,OADa;AAEbW,MAAI,EAAJA;AAFa,CAAf,E;;;;;;;;;;;AC5RA;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,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,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,CAAC;AACD,iBAAiB,kBAAkB,gCAAgC,oBAAoB,yBAAyB,oBAAoB,2FAA2F,2BAA2B,kBAAkB,kBAAkB;AAC9R,aAAa,kBAAkB,8BAA8B,mBAAmB,gCAAgC,kBAAkB,gCAAgC,YAAY;AAC9K,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;;;;;;;;;;;;;AC9pBA;AAAA,IAAMS,SAAS,GAAG,SAAZA,SAAY,CAAArjB,OAAO;AAAA,wIAIZA,OAAO,CAACuyB,SAJI,iFAWXvyB,OAAO,CAACuyB,SAXG,6CAebvyB,OAAO,CAACuyB,SAfK,qFAsBZvyB,OAAO,CAACuyB,SAtBI,6KAmCbvyB,OAAO,CAACwjB,OAnCK,4BAoCXxjB,OAAO,CAACsjB,UApC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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 { logger } 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 directives = [];\nlet currentConfig = assignWithDepth({}, defaultConfig);\n\nexport const updateCurrentConfig = (siteCfg, _directives) => {\n let cfg = assignWithDepth({}, siteCfg);\n\n // Apply directives\n let themeVariables = {};\n for (let i = 0; i < _directives.length; i++) {\n const d = _directives[i];\n sanitize(d);\n cfg = assignWithDepth(cfg, d);\n if (d.theme) {\n cfg.themeVariables = theme[cfg.theme].getThemeVariables(d.themeVariables);\n }\n }\n if (cfg.theme && theme[cfg.theme]) {\n let tVars = assignWithDepth({}, cfg.themeVariables);\n tVars = assignWithDepth(tVars, themeVariables);\n const variables = theme[cfg.theme].getThemeVariables(tVars);\n cfg.themeVariables = variables;\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 console.warn('Setting site config');\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};\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 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 logger.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\nexport const addDirective = directive => {\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 { logger as log } from '../logger'; // eslint-disable-line\nimport createLabel from './createLabel';\nimport { select } from 'd3';\nimport { getConfig } from '../config';\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')\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 (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 log.trace('Data ', node, JSON.stringify(node));\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\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 + 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\n .insert('g')\n .attr('class', 'note-cluster')\n .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\n .insert('g')\n .attr('class', node.classes)\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 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 (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 // center the rect around its coordinate\n rect\n .attr('class', 'outer')\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 innerRect\n .attr('class', 'inner')\n .attr('x', node.x - node.width / 2 - halfPadding)\n .attr('y', node.y - node.height / 2 - halfPadding + bbox.height - 1)\n .attr('width', node.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 - node.height / 2 - node.padding / 3 + (getConfig().flowchart.htmlLabels ? 5 : 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\nconst divider = (parent, node) => {\n // Add outer g element\n const shapeSvg = parent\n .insert('g')\n .attr('class', node.classes)\n .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\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');\n const el = clusterElems[node.id];\n\n el.attr('transform', 'translate(' + node.x + ', ' + node.y + ')');\n};\n","import { select } from 'd3';\nimport { logger } from '../logger'; // eslint-disable-line\n// let vertexNode;\n// if (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('' + label + '');\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 (getConfig().flowchart.htmlLabels) {\n // TODO: addHtmlLabel accepts a labelStyle. Do we possibly have that?\n vertexText = vertexText.replace(/\\\\n|\\n/g, '
');\n logger.info('vertexText' + vertexText);\n const node = {\n isNode,\n label: vertexText.replace(\n /fa[lrsb]?:fa-[\\w-]+/g,\n s => ``\n )\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 { logger } from '../logger'; // eslint-disable-line\nimport createLabel from './createLabel';\nimport { line, curveBasis, select } from 'd3';\nimport { getConfig } from '../config';\nimport utils from '../utils';\n// import { calcLabelPosition } from '../utils';\n\nlet edgeLabels = {};\n\nexport const clear = () => {\n edgeLabels = {};\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 (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\nexport const positionEdgeLabel = (edge, points) => {\n logger.info('Moving label', edge.id, edge.label, edgeLabels[edge.id]);\n if (edge.label) {\n const el = edgeLabels[edge.id];\n let x = edge.x;\n let y = edge.y;\n if (points) {\n // debugger;\n const pos = utils.calcLabelPosition(points);\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 // logger.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 logger.warn('intersection calc o:', outsidePoint, ' i:', insidePoint, node);\n const x = node.x;\n const y = node.y;\n\n const dx = Math.abs(x - insidePoint.x);\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 logger.warn('calc equals on edge');\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 - r : insidePoint.x - r,\n y: outsidePoint.y + q\n };\n logger.warn(`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 // q = (Q * r) / R;\n // q = 2;\n // r = (R * q) / Q;\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 = (Q * r) / R);\n logger.warn(`sides calc, Q ${Q}, q ${q}, R ${R}, r ${r}`, {\n x: insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x + dx - w,\n y: insidePoint.y < outsidePoint.y ? insidePoint.y + q : insidePoint.y - q\n });\n\n return {\n x: insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x + dx - w,\n y: insidePoint.y < outsidePoint.y ? insidePoint.y + q : insidePoint.y - q\n };\n }\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 if (head.intersect && tail.intersect) {\n points = points.slice(1, edge.points.length - 1);\n points.unshift(tail.intersect(points[0]));\n logger.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 logger.trace('edge', edge);\n logger.trace('to cluster', clusterDb[edge.toCluster]);\n points = [];\n let lastPointOutside;\n let isInside = false;\n edge.points.forEach(point => {\n const node = clusterDb[edge.toCluster].node;\n\n if (!outsideNode(node, point) && !isInside) {\n logger.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 logger.warn('no intersect', inter, points);\n }\n isInside = true;\n } else {\n if (!isInside) points.push(point);\n }\n lastPointOutside = point;\n });\n pointsHasChanged = true;\n }\n\n if (edge.fromCluster) {\n logger.trace('edge', edge);\n logger.warn('from cluster', clusterDb[edge.fromCluster]);\n const updatedPoints = [];\n let lastPointOutside;\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\n if (!outsideNode(node, point) && !isInside) {\n logger.warn('inside', edge.fromCluster, point, node);\n\n // First point inside the rect\n const insterection = intersection(node, lastPointOutside, point);\n // logger.trace('intersect', intersection(node, lastPointOutside, point));\n updatedPoints.unshift(insterection);\n // points.push(insterection);\n isInside = true;\n } else {\n // at the outside\n logger.trace('Outside point', point);\n if (!isInside) updatedPoints.unshift(point);\n }\n lastPointOutside = point;\n }\n points = updatedPoints;\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 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 // 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\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 logger.info('arrowTypeStart', edge.arrowTypeStart);\n logger.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\n if (pointsHasChanged) {\n return points;\n }\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} 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 { logger as log } from '../logger';\n\nconst recursiveRender = (_elem, graph, diagramtype, parentCluster) => {\n log.info('Graph in recursive render:', graphlib.json.write(graph), parentCluster);\n const dir = graph.graph().rankdir;\n log.warn('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', graph.nodes());\n }\n if (graph.edges().length > 0) {\n log.info('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', data);\n graph.setNode(parentCluster.id, data);\n graph.setParent(v, parentCluster.id, data);\n }\n log.info('(Insert) Node ' + v + ': ' + JSON.stringify(graph.node(v)));\n if (node && node.clusterNode) {\n // const children = graph.children(v);\n log.info('Cluster identified', v, node, graph.node(v));\n const newEl = recursiveRender(nodes, node.graph, diagramtype, graph.node(v));\n updateNodeBounds(node, newEl);\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', 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 graph.nodes().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 updatedPath = insertEdge(edgePaths, e, edge, clusterDb, diagramtype, graph);\n positionEdgeLabel(edge, updatedPath);\n });\n\n return elem;\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 before:', graphlib.json.write(graph));\n adjustClustersAndEdges(graph);\n log.warn('Graph after:', graphlib.json.write(graph));\n log.warn('Graph ever after:', graph.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 { logger } 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 logger.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 { logger as 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.debug(\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.info(\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.debug('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 log.debug('Setting parent', node, graph.parent(node));\n if (rootId !== 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.debug('Edge: ', edge, ' leaves cluster ', id);\n log.debug('Decendants of ', id, ': ', decendants[id]);\n clusterDb[id].externalConnections = true;\n }\n }\n });\n }\n });\n\n extractor(graph, 0);\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.trace('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(e));\n log.trace('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.trace('Fix', clusterDb, 'ids:', e.v, e.w, 'Translateing: ', clusterDb[e.v], clusterDb[e.w]);\n if (clusterDb[e.v] || clusterDb[e.w]) {\n log.warn('Fixing and trixing - removing', 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('Replacing with', v, w, e.name);\n graph.setEdge(v, w, edge, e.name);\n }\n });\n log.warn('Adjusted Graph', graphlib.json.write(graph));\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.debug('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.debug(\n 'Cluster without external connections, without a parent and with children',\n node,\n depth\n );\n\n const graphSettings = graph.graph();\n\n const clusterGraph = new graphlib.Graph({\n multigraph: true,\n compound: true\n })\n .setGraph({\n rankdir: graphSettings.rankdir === 'TB' ? 'LR' : 'TB',\n // 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.debug('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.debug('New graph after copy', graphlib.json.write(clusterGraph));\n log.debug('Old graph after copy', graphlib.json.write(graph));\n } else {\n log.debug(\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.debug('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.debug(' Now next leveö', node, data);\n if (data.clusterNode) {\n extractor(data.graph, depth + 1);\n }\n }\n};\n","import { select } from 'd3';\nimport { logger } 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';\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 logger.info('Question main (Circle)');\n\n const questionElem = insertPolygonShape(shapeSvg, s, s, points);\n updateNodeBounds(node, questionElem);\n node.intersect = function(point) {\n logger.warn('Intersect called');\n return intersect.polygon(node, points, 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 const hex = insertPolygonShape(shapeSvg, w, h, points);\n updateNodeBounds(node, hex);\n\n node.intersect = function(point) {\n return intersect.polygon(node, 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 updateNodeBounds(node, el);\n\n node.intersect = function(point) {\n return intersect.polygon(node, point);\n };\n\n return shapeSvg;\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 updateNodeBounds(node, el);\n\n node.intersect = function(point) {\n return intersect.polygon(node, 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 updateNodeBounds(node, el);\n\n node.intersect = function(point) {\n return intersect.polygon(node, 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 const el = insertPolygonShape(shapeSvg, w, h, points);\n updateNodeBounds(node, el);\n\n node.intersect = function(point) {\n return intersect.polygon(node, 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 const el = insertPolygonShape(shapeSvg, w, h, points);\n updateNodeBounds(node, el);\n\n node.intersect = function(point) {\n return intersect.polygon(node, point);\n };\n\n return shapeSvg;\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 const el = insertPolygonShape(shapeSvg, w, h, points);\n updateNodeBounds(node, el);\n\n node.intersect = function(point) {\n return intersect.polygon(node, point);\n };\n\n return shapeSvg;\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('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 logger.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('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};\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.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();\n logger.info('Label text', text2[0]);\n\n const text = label.node().appendChild(createLabel(text2[0], node.labelStyle, true, true));\n let bbox;\n if (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 logger.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 (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 // logger.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('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};\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('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 logger.info('Circle main');\n\n updateNodeBounds(node, circle);\n\n node.intersect = function(point) {\n logger.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 const el = insertPolygonShape(shapeSvg, w, h, points);\n updateNodeBounds(node, el);\n\n node.intersect = function(point) {\n return intersect.polygon(node, 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.id);\n const circle = shapeSvg.insert('circle', ':first-child');\n\n // center the circle around its coordinate\n circle\n .attr('class', 'state-start')\n .attr('r', 7)\n .attr('width', 14)\n .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.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 .style('stroke', 'black')\n .style('fill', 'black')\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.id);\n const innerCircle = shapeSvg.insert('circle', ':first-child');\n const circle = shapeSvg.insert('circle', ':first-child');\n\n circle\n .attr('class', 'state-start')\n .attr('r', 7)\n .attr('width', 14)\n .attr('height', 14);\n\n innerCircle\n .attr('class', 'state-end')\n .attr('r', 5)\n .attr('width', 10)\n .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.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 interfaceLabel = labelContainer\n .node()\n .appendChild(createLabel(node.classData.annotations[0], node.labelStyle, true, true));\n const interfaceBBox = interfaceLabel.getBBox();\n if (node.classData.annotations[0]) {\n maxHeight += interfaceBBox.height + rowPadding;\n maxWidth += interfaceBBox.width;\n }\n\n const classTitleLabel = labelContainer\n .node()\n .appendChild(createLabel(node.labelText, node.labelStyle, true, true));\n const classTitleBBox = classTitleLabel.getBBox();\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 lbl = labelContainer.node().appendChild(createLabel(str, node.labelStyle, true, true));\n const bbox = lbl.getBBox();\n if (bbox.width > maxWidth) {\n maxWidth = bbox.width;\n }\n maxHeight += bbox.height + rowPadding;\n classAttributes.push(lbl);\n });\n\n const classMethods = [];\n node.classData.methods.forEach(str => {\n const lbl = labelContainer.node().appendChild(createLabel(str, node.labelStyle, true, true));\n const bbox = lbl.getBBox();\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 select(interfaceLabel).attr(\n 'transform',\n 'translate( ' +\n -(maxWidth + node.padding - interfaceBBox.width / 2) / 2 +\n ', ' +\n (-1 * maxHeight) / 2 +\n ')'\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 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 (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 // logger.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 (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 // // logger.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 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 nodeElems[node.id] = shapes[node.shape](elem, node, dir);\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 logger.trace(\n 'Transforming node',\n node,\n 'translate(' + (node.x - node.width / 2 - 5) + ', ' + (node.y - node.height / 2 - 5) + ')'\n );\n const padding = 8;\n if (node.clusterNode) {\n el.attr(\n 'transform',\n 'translate(' +\n (node.x - node.width / 2 - padding) +\n ', ' +\n (node.y - node.height / 2 - padding) +\n ')'\n );\n } else {\n el.attr('transform', 'translate(' + node.x + ', ' + node.y + ')');\n }\n};\n","import { updateNodeBounds, labelHelper } from './util';\nimport { logger } 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 logger.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';\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.id);\n\n // Create the label and insert it after the rect\n const label = shapeSvg.insert('g').attr('class', 'label');\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 (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 * These are the default options which can be overridden with the initialization call like so:\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 /** theme , the CSS style sheet\n *\n * theme , the CSS style sheet\n *\n *| Parameter | Description |Type | Required | Values|\n *| --- | --- | --- | --- | --- |\n *| Theme |Built in Themes| String | Optional | Values include, default, forest, dark, neutral, null|\n *\n ***Notes:**To disable any pre-defined mermaid theme, use \"null\".\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 | Verdana, Arial, Trebuchet MS,|\n *\n ***notes: Default value is \\\\\"trebuchet ms\\\\\".\n */\n fontFamily: '\"trebuchet ms\", verdana, arial;',\n\n /**\n *| Parameter | Description |Type | Required | Values|\n *| --- | --- | --- | --- | --- |\n *| logLevel |This option decides the amount of logging to be used.| String | Required | 1, 2, 3, 4, 5 |\n *\n *\n ***Notes:**\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 *- **strict**: (**default**) tags in text are encoded, click functionality is disabeled\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:**\n ***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**: This matters if you are using base tag settings.\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 secure: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize'],\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:**The amount of padding around the diagram as a whole so that embedded diagrams have margins, expressed in pixels\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 Numbers |\n *\n ***Notes:\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 ***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 Numbers |\n *\n ***Notes: 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 ***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 *Default Vaue: Linear**\n */\n curve: 'linear',\n // Only used in new experimental rendering\n // repreesents the padding between the labels and the shape\n padding: 15\n },\n\n /**\n * The object containing configurations specific for sequence diagrams\n */\n sequence: {\n /**\n * widt of the activation rect\n * **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 Values |\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 Values|\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 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 *\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 *\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 *\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 ***Default value 35**.\n */\n messageMargin: 35,\n\n /**\n *| Parameter | Description |Type | Required | Values|\n *| --- | --- | --- | --- | --- |\n *| messageAlign | Multiline message alignment | Integer | Required | left, center, right |\n *\n ***Notes:**center **default**\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 *\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:**Depending on css styling this might need adjustment.\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 ***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 ***Default value false**.\n */\n rightAngles: false,\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 *| 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 *| Parameter | Description |Type | Required | Values|\n *| --- | --- | --- | --- | --- |\n *| actorFontFamily |This sets the font family of the actor's description | 3 | 4 | Open-Sans, Sans-Serif |\n *\n ***Notes:**\n ***Default value \"Open-Sans\", \"sans-serif\"**.\n */\n actorFontFamily: '\"Open-Sans\", \"sans-serif\"',\n /**\n * This sets the font weight of the actor's description\n * **Default value 400.\n */\n actorFontWeight: 400,\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 *| Parameter | Description |Type | Required | Values|\n *| --- | --- | --- | --- | --- |\n *| noteFontFamily| This sets the font family of actor-attached notes. | String | Required | trebuchet ms, verdana, arial |\n *\n ***Notes:**\n ***Default value: trebuchet ms **.\n */\n noteFontFamily: '\"trebuchet ms\", verdana, arial',\n /**\n * This sets the font weight of the note's description\n * **Default value 400.\n */\n noteFontWeight: 400,\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 *| 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 *| Parameter | Description |Type | Required | Values|\n *| --- | --- | --- | --- | --- |\n *| messageFontFamily | This sets the font family of actor messages. | String| Required | trebuchet ms\", verdana, aria |\n *\n ***Notes:**\n ***Default value:\"trebuchet ms**.\n */\n messageFontFamily: '\"trebuchet ms\", verdana, arial',\n /**\n * This sets the font weight of the message's description\n * **Default value 400.\n */\n messageFontWeight: 400,\n /**\n * This sets the auto-wrap state for the diagram\n * **Default value false.\n */\n wrap: false,\n /**\n * This sets the auto-wrap padding for the diagram (sides only)\n * **Default value 10.\n */\n wrapPadding: 10,\n /**\n * This sets the width of the loop-box (loop, alt, opt, par)\n * **Default value 50.\n */\n labelBoxWidth: 50,\n /**\n * This sets the height of the loop-box (loop, alt, opt, par)\n * **Default value 20.\n */\n labelBoxHeight: 20,\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 *| 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 *| fontFamily | font Family | string | required |\"Open-Sans\", \"sans-serif\" |\n *\n ***Notes:**\n *\n ***Default value '\"Open-Sans\", \"sans-serif\"'**.\n */\n fontFamily: '\"Open-Sans\", \"sans-serif\"',\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 ***Default value '%Y-%m-%d'**.\n */\n axisFormat: '%Y-%m-%d'\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 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 */\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 ***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:**default: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:**Depending on css styling this might need adjustment.\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:**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:**This will display arrows that start and begin at the same node as right angles, rather than a curves\n ***Default value false**.\n */\n rightAngles: false\n },\n class: {\n arrowMarkerAbsolute: false\n },\n git: {\n arrowMarkerAbsolute: false\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\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:**The amount of padding around the diagram as a whole so that embedded diagrams have margins, expressed in pixels\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 *'TB' for Top-Bottom, 'BT'for Bottom-Top, 'LR' for Left-Right, or 'RL' for Right to Left.\n * T = top, B = bottom, L = left, and R = right.\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:**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:**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:**The minimum internal padding betweentext in an entity box and the enclosing box borders, expressed in pixels.\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 ***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:**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 *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 ***Default value: true**.\n */\n useMaxWidth: true\n }\n};\n\nconfig.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\nconfig.git.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n\nexport default config;\n","import { select } from 'd3';\nimport { logger } 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\nconst config = configApi.getConfig();\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 logger.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 <
\n *\n * <script>\n * var config = {\n * theme:'default',\n * logLevel:'fatal',\n * securityLevel:'strict',\n * startOnLoad:true,\n * arrowMarkerAbsolute:false,\n *\n * er:{\n * diagramPadding:20,\n * layoutDirection:'TB',\n * minEntityWidth:100,\n * minEntityHeight:75,\n * entityPadding:15,\n * stroke:'gray',\n * fill:'honeydew',\n * fontSize:12,\n * useMaxWidth:true,\n * },\n * flowchart:{\n * diagramPadding:8,\n * htmlLabels:true,\n * curve:'linear',\n * },\n * sequence:{\n * diagramMarginX:50,\n * diagramMarginY:10,\n * actorMargin:50,\n * width:150,\n * height:65,\n * boxMargin:10,\n * boxTextMargin:5,\n * noteMargin:10,\n * messageMargin:35,\n * messageAlign:'center',\n * mirrorActors:true,\n * bottomMarginAdj:1,\n * useMaxWidth:true,\n * rightAngles:false,\n * showSequenceNumbers:false,\n * },\n * gantt:{\n * titleTopMargin:25,\n * barHeight:20,\n * barGap:4,\n * topPadding:50,\n * leftPadding:75,\n * gridLineStartPadding:35,\n * fontSize:11,\n * fontFamily:'\"Open-Sans\", \"sans-serif\"',\n * numberSectionStyles:4,\n * axisFormat:'%Y-%m-%d',\n * }\n * };\n * mermaid.initialize(config);\n * </script>\n *\n */\n","import classDiagram from './diagrams/class/styles';\nimport er from './diagrams/er/styles';\nimport flowchart from './diagrams/flowchart/styles';\nimport gantt from './diagrams/gantt/styles';\nimport git from './diagrams/git/styles';\nimport info from './diagrams/info/styles';\nimport pie from './diagrams/pie/styles';\nimport sequence from './diagrams/sequence/styles';\nimport stateDiagram from './diagrams/state/styles';\nimport journey from './diagrams/user-journey/styles';\n\nconst themes = {\n flowchart,\n 'flowchart-v2': flowchart,\n sequence,\n gantt,\n classDiagram,\n 'classDiagram-v2': classDiagram,\n class: classDiagram,\n stateDiagram,\n state: stateDiagram,\n git,\n info,\n pie,\n er,\n journey\n};\n\nexport const calcThemeVariables = (theme, userOverRides) => theme.calcColors(userOverRides);\n\nconst getStyles = (type, userStyles, options) => {\n return ` {\n font-family: ${options.fontFamily};\n font-size: ${options.fontSize};\n fill: ${options.textColor}\n }\n\n /* Classes common for multiple diagrams */\n\n .error-icon {\n fill: ${options.errorBkgColor};\n }\n .error-text {\n fill: ${options.errorTextColor};\n stroke: ${options.errorTextColor};\n }\n\n .edge-thickness-normal {\n stroke-width: 2px;\n }\n .edge-thickness-thick {\n stroke-width: 3.5px\n }\n .edge-pattern-solid {\n stroke-dasharray: 0;\n }\n\n .edge-pattern-dashed{\n stroke-dasharray: 3;\n }\n .edge-pattern-dotted {\n stroke-dasharray: 2;\n }\n\n .marker {\n fill: ${options.lineColor};\n }\n .marker.cross {\n stroke: ${options.lineColor};\n }\n\n svg {\n font-family: ${options.fontFamily};\n font-size: ${options.fontSize};\n }\n\n ${themes[type](options)}\n\n ${userStyles}\n\n ${type} { fill: apa;}\n`;\n};\n\nexport default getStyles;\n","import { getThemeVariables as baseThemeVariables } from './theme-base';\nimport { getThemeVariables as darkThemeVariables } from './theme-dark';\nimport { getThemeVariables as defaultThemeVariables } from './theme-default';\nimport { getThemeVariables as forestThemeVariables } from './theme-forest';\nimport { getThemeVariables as neutralThemeVariables } from './theme-neutral';\n\nexport default {\n base: {\n getThemeVariables: baseThemeVariables\n },\n dark: {\n getThemeVariables: darkThemeVariables\n },\n default: {\n getThemeVariables: defaultThemeVariables\n },\n forest: {\n getThemeVariables: forestThemeVariables\n },\n neutral: {\n getThemeVariables: neutralThemeVariables\n }\n};\n","import { darken, lighten, adjust, invert } from 'khroma';\nimport { mkBorder } from './theme-helpers';\nclass Theme {\n constructor() {\n /** # Base variables */\n /** * background - used to know what the background color is of the diagram. This is used for deducing colors for istance line color. Defaulr value is #f4f4f4. */\n this.background = '#f4f4f4';\n this.darkMode = false;\n\n // this.background = '#0c0c0c';\n // this.darkMode = true;\n this.primaryColor = '#fff4dd';\n // this.background = '#0c0c0c';\n // this.primaryColor = '#1f1f00';\n\n this.noteBkgColor = '#fff5ad';\n this.noteTextColor = '#333';\n\n // dark\n\n // this.primaryColor = '#034694';\n // this.primaryColor = '#f2ee7e';\n // this.primaryColor = '#9f33be';\n // this.primaryColor = '#f0fff0';\n // this.primaryColor = '#fa255e';\n // this.primaryColor = '#ECECFF';\n\n // this.secondaryColor = '#c39ea0';\n // this.tertiaryColor = '#f8e5e5';\n\n // this.secondaryColor = '#dfdfde';\n // this.tertiaryColor = '#CCCCFF';\n\n this.fontFamily = '\"trebuchet ms\", verdana, arial';\n this.fontSize = '16px';\n // this.updateColors();\n }\n updateColors() {\n // The || is to make sure that if the variable has been defiend by a user override that value is to be used\n\n /* Main */\n this.primaryTextColor = this.primaryTextColor || (this.darkMode ? '#ddd' : '#333'); // invert(this.primaryColor);\n this.secondaryColor = this.secondaryColor || adjust(this.primaryColor, { h: -120 });\n this.tertiaryColor = this.tertiaryColor || adjust(this.primaryColor, { h: 180, l: 5 });\n\n this.primaryBorderColor = this.primaryBorderColor || mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor =\n this.secondaryBorderColor || mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor =\n this.tertiaryBorderColor || mkBorder(this.tertiaryColor, this.darkMode);\n this.noteBorderColor = this.noteBorderColor || mkBorder(this.noteBkgColor, this.darkMode);\n\n this.secondaryTextColor = this.secondaryTextColor || invert(this.secondaryColor);\n this.tertiaryTextColor = this.tertiaryTextColor || invert(this.tertiaryColor);\n this.lineColor = this.lineColor || invert(this.background);\n this.textColor = this.textColor || this.primaryTextColor;\n\n /* Flowchart variables */\n this.nodeBkg = this.nodeBkg || this.primaryColor;\n this.mainBkg = this.mainBkg || this.primaryColor;\n this.nodeBorder = this.nodeBorder || this.primaryBorderColor;\n this.clusterBkg = this.clusterBkg || this.tertiaryColor;\n this.clusterBorder = this.clusterBorder || this.tertiaryBorderColor;\n this.defaultLinkColor = this.defaultLinkColor || this.lineColor;\n this.titleColor = this.titleColor || this.tertiaryTextColor;\n this.edgeLabelBackground =\n this.edgeLabelBackground || this.darkMode\n ? darken(this.secondaryColor, 30)\n : this.secondaryColor;\n this.nodeTextColor = this.nodeTextColor || this.primaryTextColor;\n /* Sequence Diagram variables */\n\n // this.actorBorder = lighten(this.border1, 0.5);\n this.actorBorder = this.actorBorder || this.primaryBorderColor;\n this.actorBkg = this.actorBkg || this.mainBkg;\n this.actorTextColor = this.actorTextColor || this.primaryTextColor;\n this.actorLineColor = this.actorLineColor || 'grey';\n this.labelBoxBkgColor = this.labelBoxBkgColor || this.actorBkg;\n this.signalColor = this.signalColor || this.textColor;\n this.signalTextColor = this.signalTextColor || this.textColor;\n this.labelBoxBorderColor = this.labelBoxBorderColor || this.actorBorder;\n this.labelTextColor = this.labelTextColor || this.actorTextColor;\n this.loopTextColor = this.loopTextColor || this.actorTextColor;\n this.activationBorderColor = this.activationBorderColor || darken(this.secondaryColor, 10);\n this.activationBkgColor = this.activationBkgColor || this.secondaryColor;\n this.sequenceNumberColor = this.sequenceNumberColor || invert(this.lineColor);\n\n /* Gantt chart variables */\n\n this.sectionBkgColor = this.sectionBkgColor || this.tertiaryColor;\n this.altSectionBkgColor = this.altSectionBkgColor || 'white';\n this.sectionBkgColor = this.sectionBkgColor || this.secondaryColor;\n this.sectionBkgColor2 = this.sectionBkgColor2 || this.primaryColor;\n this.taskBorderColor = this.taskBorderColor || this.primaryBorderColor;\n this.taskBkgColor = this.taskBkgColor || this.primaryColor;\n this.activeTaskBorderColor = this.activeTaskBorderColor || this.primaryColor;\n this.activeTaskBkgColor = this.activeTaskBkgColor || lighten(this.primaryColor, 23);\n this.gridColor = this.gridColor || 'lightgrey';\n this.doneTaskBkgColor = this.doneTaskBkgColor || 'lightgrey';\n this.doneTaskBorderColor = this.doneTaskBorderColor || 'grey';\n this.critBorderColor = this.critBorderColor || '#ff8888';\n this.critBkgColor = this.critBkgColor || 'red';\n this.todayLineColor = this.todayLineColor || 'red';\n this.taskTextColor = this.taskTextColor || this.textColor;\n this.taskTextOutsideColor = this.taskTextOutsideColor || this.textColor;\n this.taskTextLightColor = this.taskTextLightColor || this.textColor;\n this.taskTextColor = this.taskTextColor || this.primaryTextColor;\n this.taskTextDarkColor = this.taskTextDarkColor || this.textColor;\n this.taskTextClickableColor = this.taskTextClickableColor || '#003163';\n\n /* state colors */\n this.labelColor = this.labelColor || this.primaryTextColor;\n this.altBackground = this.altBackground || this.tertiaryColor;\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n\n /* class */\n this.classText = this.classText || this.textColor;\n\n /* user-journey */\n this.fillType0 = this.fillType0 || this.primaryColor;\n this.fillType1 = this.fillType1 || this.secondaryColor;\n this.fillType2 = this.fillType2 || adjust(this.primaryColor, { h: 64 });\n this.fillType3 = this.fillType3 || adjust(this.secondaryColor, { h: 64 });\n this.fillType4 = this.fillType4 || adjust(this.primaryColor, { h: -64 });\n this.fillType5 = this.fillType5 || adjust(this.secondaryColor, { h: -64 });\n this.fillType6 = this.fillType6 || adjust(this.primaryColor, { h: 128 });\n this.fillType7 = this.fillType7 || adjust(this.secondaryColor, { h: 128 });\n }\n calculate(overrides) {\n if (typeof overrides !== 'object') {\n // Calculate colors form base colors\n this.updateColors();\n return;\n }\n\n const keys = Object.keys(overrides);\n\n // Copy values from overrides, this is mainly for base colors\n keys.forEach(k => {\n this[k] = overrides[k];\n });\n\n // Calculate colors form base colors\n this.updateColors();\n // Copy values from overrides again in case of an override of derived value\n keys.forEach(k => {\n this[k] = overrides[k];\n });\n }\n}\n\nexport const getThemeVariables = userOverrides => {\n const theme = new Theme();\n theme.calculate(userOverrides);\n return theme;\n};\n","import { invert, lighten, darken, rgba, adjust } from 'khroma';\nimport { mkBorder } from './theme-helpers';\nclass Theme {\n constructor() {\n this.background = '#333';\n this.primaryColor = '#1f2020';\n this.secondaryColor = lighten(this.primaryColor, 16);\n\n this.tertiaryColor = adjust(this.primaryColor, { h: -160 });\n this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n this.primaryTextColor = invert(this.primaryColor);\n this.secondaryTextColor = invert(this.secondaryColor);\n this.tertiaryTextColor = invert(this.tertiaryColor);\n this.lineColor = invert(this.background);\n this.textColor = invert(this.background);\n\n this.mainBkg = '#1f2020';\n this.secondBkg = 'calculated';\n this.mainContrastColor = 'lightgrey';\n this.darkTextColor = lighten(invert('#323D47'), 10);\n this.lineColor = 'calculated';\n this.border1 = '#81B1DB';\n this.border2 = rgba(255, 255, 255, 0.25);\n this.arrowheadColor = 'calculated';\n this.fontFamily = '\"trebuchet ms\", verdana, arial';\n this.fontSize = '16px';\n this.labelBackground = '#181818';\n this.textColor = '#ccc';\n /* Flowchart variables */\n\n this.nodeBkg = 'calculated';\n this.nodeBorder = 'calculated';\n this.clusterBkg = 'calculated';\n this.clusterBorder = 'calculated';\n this.defaultLinkColor = 'calculated';\n this.titleColor = '#F9FFFE';\n this.edgeLabelBackground = 'calculated';\n\n /* Sequence Diagram variables */\n\n this.actorBorder = 'calculated';\n this.actorBkg = 'calculated';\n this.actorTextColor = 'calculated';\n this.actorLineColor = 'calculated';\n this.signalColor = 'calculated';\n this.signalTextColor = 'calculated';\n this.labelBoxBkgColor = 'calculated';\n this.labelBoxBorderColor = 'calculated';\n this.labelTextColor = 'calculated';\n this.loopTextColor = 'calculated';\n this.noteBorderColor = 'calculated';\n this.noteBkgColor = '#fff5ad';\n this.noteTextColor = 'calculated';\n this.activationBorderColor = 'calculated';\n this.activationBkgColor = 'calculated';\n this.sequenceNumberColor = 'black';\n\n /* Gantt chart variables */\n\n this.sectionBkgColor = darken('#EAE8D9', 30);\n this.altSectionBkgColor = 'calculated';\n this.sectionBkgColor2 = '#EAE8D9';\n this.taskBorderColor = rgba(255, 255, 255, 70);\n this.taskBkgColor = 'calculated';\n this.taskTextColor = 'calculated';\n this.taskTextLightColor = 'calculated';\n this.taskTextOutsideColor = 'calculated';\n this.taskTextClickableColor = '#003163';\n this.activeTaskBorderColor = rgba(255, 255, 255, 50);\n this.activeTaskBkgColor = '#81B1DB';\n this.gridColor = 'calculated';\n this.doneTaskBkgColor = 'calculated';\n this.doneTaskBorderColor = 'grey';\n this.critBorderColor = '#E83737';\n this.critBkgColor = '#E83737';\n this.taskTextDarkColor = 'calculated';\n this.todayLineColor = '#DB5757';\n\n /* state colors */\n this.labelColor = 'calculated';\n\n this.errorBkgColor = '#a44141';\n this.errorTextColor = '#ddd';\n }\n updateColors() {\n this.secondBkg = lighten(this.mainBkg, 16);\n this.lineColor = this.mainContrastColor;\n this.arrowheadColor = this.mainContrastColor;\n /* Flowchart variables */\n\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.edgeLabelBackground = lighten(this.labelBackground, 25);\n\n /* Sequence Diagram variables */\n\n this.actorBorder = this.border1;\n this.actorBkg = this.mainBkg;\n this.actorTextColor = this.mainContrastColor;\n this.actorLineColor = this.mainContrastColor;\n this.signalColor = this.mainContrastColor;\n this.signalTextColor = this.mainContrastColor;\n this.labelBoxBkgColor = this.actorBkg;\n this.labelBoxBorderColor = this.actorBorder;\n this.labelTextColor = this.mainContrastColor;\n this.loopTextColor = this.mainContrastColor;\n this.noteBorderColor = this.border2;\n this.noteTextColor = this.mainBkg;\n this.activationBorderColor = this.border1;\n this.activationBkgColor = this.secondBkg;\n\n /* Gantt chart variables */\n\n this.altSectionBkgColor = this.background;\n this.taskBkgColor = lighten(this.mainBkg, 23);\n this.taskTextColor = this.darkTextColor;\n this.taskTextLightColor = this.mainContrastColor;\n this.taskTextOutsideColor = this.taskTextLightColor;\n this.gridColor = this.mainContrastColor;\n this.doneTaskBkgColor = this.mainContrastColor;\n this.taskTextDarkColor = this.darkTextColor;\n\n /* state colors */\n this.labelColor = this.textColor;\n this.altBackground = lighten(this.background, 20);\n\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust(this.primaryColor, { h: 64 });\n this.fillType3 = adjust(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust(this.primaryColor, { h: -64 });\n this.fillType5 = adjust(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust(this.primaryColor, { h: 128 });\n this.fillType7 = adjust(this.secondaryColor, { h: 128 });\n /* class */\n this.classText = this.primaryTextColor;\n }\n calculate(overrides) {\n if (typeof overrides !== 'object') {\n // Calculate colors form base colors\n this.updateColors();\n return;\n }\n\n const keys = Object.keys(overrides);\n\n // Copy values from overrides, this is mainly for base colors\n keys.forEach(k => {\n this[k] = overrides[k];\n });\n\n // Calculate colors form base colors\n this.updateColors();\n // Copy values from overrides again in case of an override of derived value\n keys.forEach(k => {\n this[k] = overrides[k];\n });\n }\n}\n\nexport const getThemeVariables = userOverrides => {\n const theme = new Theme();\n theme.calculate(userOverrides);\n console.info('Theme(dark)', { userOverrides, theme });\n return theme;\n};\n","import { invert, lighten, rgba, adjust } from 'khroma';\nimport { mkBorder } from './theme-helpers';\n\nclass Theme {\n constructor() {\n /* Base variables */\n this.background = '#f4f4f4';\n this.primaryColor = '#ECECFF';\n\n this.secondaryColor = adjust(this.primaryColor, { h: 120 });\n this.secondaryColor = '#ffffde';\n this.tertiaryColor = adjust(this.primaryColor, { h: -160 });\n this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n // this.noteBorderColor = mkBorder(this.noteBkgColor, this.darkMode);\n\n this.primaryTextColor = invert(this.primaryColor);\n this.secondaryTextColor = invert(this.secondaryColor);\n this.tertiaryTextColor = invert(this.tertiaryColor);\n this.lineColor = invert(this.background);\n this.textColor = invert(this.background);\n\n this.background = 'white';\n this.mainBkg = '#ECECFF';\n this.secondBkg = '#ffffde';\n this.lineColor = '#333333';\n this.border1 = '#9370DB';\n this.border2 = '#aaaa33';\n this.arrowheadColor = '#333333';\n this.fontFamily = '\"trebuchet ms\", verdana, arial';\n this.fontSize = '16px';\n this.labelBackground = '#e8e8e8';\n this.textColor = '#333';\n\n /* Flowchart variables */\n\n this.nodeBkg = 'calculated';\n this.nodeBorder = 'calculated';\n this.clusterBkg = 'calculated';\n this.clusterBorder = 'calculated';\n this.defaultLinkColor = 'calculated';\n this.titleColor = 'calculated';\n this.edgeLabelBackground = 'calculated';\n\n /* Sequence Diagram variables */\n\n this.actorBorder = 'calculated';\n this.actorBkg = 'calculated';\n this.actorTextColor = 'black';\n this.actorLineColor = 'grey';\n this.signalColor = 'calculated';\n this.signalTextColor = 'calculated';\n this.labelBoxBkgColor = 'calculated';\n this.labelBoxBorderColor = 'calculated';\n this.labelTextColor = 'calculated';\n this.loopTextColor = 'calculated';\n this.noteBorderColor = 'calculated';\n this.noteBkgColor = '#fff5ad';\n this.noteTextColor = 'calculated';\n this.activationBorderColor = '#666';\n this.activationBkgColor = '#f4f4f4';\n this.sequenceNumberColor = 'white';\n\n /* Gantt chart variables */\n\n this.sectionBkgColor = 'calculated';\n this.altSectionBkgColor = 'calculated';\n this.sectionBkgColor2 = 'calculated';\n this.taskBorderColor = 'calculated';\n this.taskBkgColor = 'calculated';\n this.taskTextLightColor = 'calculated';\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextDarkColor = 'calculated';\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.taskTextClickableColor = 'calculated';\n this.activeTaskBorderColor = 'calculated';\n this.activeTaskBkgColor = 'calculated';\n this.gridColor = 'calculated';\n this.doneTaskBkgColor = 'calculated';\n this.doneTaskBorderColor = 'calculated';\n this.critBorderColor = 'calculated';\n this.critBkgColor = 'calculated';\n this.todayLineColor = 'calculated';\n\n this.sectionBkgColor = rgba(102, 102, 255, 0.49);\n this.altSectionBkgColor = 'white';\n this.sectionBkgColor2 = '#fff400';\n this.taskBorderColor = '#534fbc';\n this.taskBkgColor = '#8a90dd';\n this.taskTextLightColor = 'white';\n this.taskTextColor = 'calculated';\n this.taskTextDarkColor = 'black';\n this.taskTextOutsideColor = 'calculated';\n this.taskTextClickableColor = '#003163';\n this.activeTaskBorderColor = '#534fbc';\n this.activeTaskBkgColor = '#bfc7ff';\n this.gridColor = 'lightgrey';\n this.doneTaskBkgColor = 'lightgrey';\n this.doneTaskBorderColor = 'grey';\n this.critBorderColor = '#ff8888';\n this.critBkgColor = 'red';\n this.todayLineColor = 'red';\n\n /* state colors */\n this.labelColor = 'black';\n this.errorBkgColor = '#552222';\n this.errorTextColor = '#552222';\n this.updateColors();\n }\n updateColors() {\n /* Flowchart variables */\n\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1; // border 1\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.titleColor = this.textColor;\n this.edgeLabelBackground = this.labelBackground;\n\n /* Sequence Diagram variables */\n\n // this.actorBorder = lighten(this.border1, 0.5);\n this.actorBorder = lighten(this.border1, 23);\n this.actorBkg = this.mainBkg;\n this.labelBoxBkgColor = this.actorBkg;\n this.signalColor = this.textColor;\n this.signalTextColor = this.textColor;\n this.labelBoxBorderColor = this.actorBorder;\n this.labelTextColor = this.actorTextColor;\n this.loopTextColor = this.actorTextColor;\n this.noteBorderColor = this.border2;\n this.noteTextColor = this.actorTextColor;\n\n /* Gantt chart variables */\n\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextOutsideColor = this.taskTextDarkColor;\n\n /* state colors */\n /* class */\n this.classText = this.primaryTextColor;\n /* journey */\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust(this.primaryColor, { h: 64 });\n this.fillType3 = adjust(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust(this.primaryColor, { h: -64 });\n this.fillType5 = adjust(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust(this.primaryColor, { h: 128 });\n this.fillType7 = adjust(this.secondaryColor, { h: 128 });\n }\n calculate(overrides) {\n if (typeof overrides !== 'object') {\n // Calculate colors form base colors\n this.updateColors();\n return;\n }\n\n const keys = Object.keys(overrides);\n\n // Copy values from overrides, this is mainly for base colors\n keys.forEach(k => {\n this[k] = overrides[k];\n });\n\n // Calculate colors form base colors\n this.updateColors();\n // Copy values from overrides again in case of an override of derived value\n keys.forEach(k => {\n this[k] = overrides[k];\n });\n }\n}\n\nexport const getThemeVariables = userOverrides => {\n const theme = new Theme();\n theme.calculate(userOverrides);\n // console.info('Theme(default)', { userOverrides, theme });\n return theme;\n};\n","import { darken, lighten, adjust, invert } from 'khroma';\nimport { mkBorder } from './theme-helpers';\nclass Theme {\n constructor() {\n /* Base vales */\n this.background = '#f4f4f4';\n this.primaryColor = '#cde498';\n this.secondaryColor = '#cdffb2';\n this.background = 'white';\n this.mainBkg = '#cde498';\n this.secondBkg = '#cdffb2';\n this.lineColor = 'green';\n this.border1 = '#13540c';\n this.border2 = '#6eaa49';\n this.arrowheadColor = 'green';\n this.fontFamily = '\"trebuchet ms\", verdana, arial';\n this.fontSize = '16px';\n\n this.tertiaryColor = lighten('#cde498', 10);\n this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n this.primaryTextColor = invert(this.primaryColor);\n this.secondaryTextColor = invert(this.secondaryColor);\n this.tertiaryTextColor = invert(this.primaryColor);\n this.lineColor = invert(this.background);\n this.textColor = invert(this.background);\n\n /* Flowchart variables */\n this.nodeBkg = 'calculated';\n this.nodeBorder = 'calculated';\n this.clusterBkg = 'calculated';\n this.clusterBorder = 'calculated';\n this.defaultLinkColor = 'calculated';\n this.titleColor = '#333';\n this.edgeLabelBackground = '#e8e8e8';\n\n /* Sequence Diagram variables */\n\n this.actorBorder = 'calculated';\n this.actorBkg = 'calculated';\n this.actorTextColor = 'black';\n this.actorLineColor = 'grey';\n this.signalColor = '#333';\n this.signalTextColor = '#333';\n this.labelBoxBkgColor = 'calculated';\n this.labelBoxBorderColor = '#326932';\n this.labelTextColor = 'calculated';\n this.loopTextColor = 'calculated';\n this.noteBorderColor = 'calculated';\n this.noteBkgColor = '#fff5ad';\n this.noteTextColor = 'calculated';\n this.activationBorderColor = '#666';\n this.activationBkgColor = '#f4f4f4';\n this.sequenceNumberColor = 'white';\n\n /* Gantt chart variables */\n\n this.sectionBkgColor = '#6eaa49';\n this.altSectionBkgColor = 'white';\n this.sectionBkgColor2 = '#6eaa49';\n this.taskBorderColor = 'calculated';\n this.taskBkgColor = '#487e3a';\n this.taskTextLightColor = 'white';\n this.taskTextColor = 'calculated';\n this.taskTextDarkColor = 'black';\n this.taskTextOutsideColor = 'calculated';\n this.taskTextClickableColor = '#003163';\n this.activeTaskBorderColor = 'calculated';\n this.activeTaskBkgColor = 'calculated';\n this.gridColor = 'lightgrey';\n this.doneTaskBkgColor = 'lightgrey';\n this.doneTaskBorderColor = 'grey';\n this.critBorderColor = '#ff8888';\n this.critBkgColor = 'red';\n this.todayLineColor = 'red';\n\n /* state colors */\n this.labelColor = 'black';\n\n this.errorBkgColor = '#552222';\n this.errorTextColor = '#552222';\n }\n updateColors() {\n /* Flowchart variables */\n\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n\n /* Sequence Diagram variables */\n\n this.actorBorder = darken(this.mainBkg, 20);\n this.actorBkg = this.mainBkg;\n this.labelBoxBkgColor = this.actorBkg;\n this.labelTextColor = this.actorTextColor;\n this.loopTextColor = this.actorTextColor;\n this.noteBorderColor = this.border2;\n this.noteTextColor = this.actorTextColor;\n\n /* Gantt chart variables */\n\n this.taskBorderColor = this.border1;\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.activeTaskBorderColor = this.taskBorderColor;\n this.activeTaskBkgColor = this.mainBkg;\n\n /* state colors */\n /* class */\n this.classText = this.primaryTextColor;\n /* journey */\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust(this.primaryColor, { h: 64 });\n this.fillType3 = adjust(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust(this.primaryColor, { h: -64 });\n this.fillType5 = adjust(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust(this.primaryColor, { h: 128 });\n this.fillType7 = adjust(this.secondaryColor, { h: 128 });\n }\n calculate(overrides) {\n if (typeof overrides !== 'object') {\n // Calculate colors form base colors\n this.updateColors();\n return;\n }\n\n const keys = Object.keys(overrides);\n\n // Copy values from overrides, this is mainly for base colors\n keys.forEach(k => {\n this[k] = overrides[k];\n });\n\n // Calculate colors form base colors\n this.updateColors();\n // Copy values from overrides again in case of an override of derived value\n keys.forEach(k => {\n this[k] = overrides[k];\n });\n }\n}\n\nexport const getThemeVariables = userOverrides => {\n const theme = new Theme();\n theme.calculate(userOverrides);\n console.info('Theme(forest)', { userOverrides, theme });\n return theme;\n};\n","import { adjust } from 'khroma';\n\nexport const mkBorder = (col, darkMode) =>\n darkMode ? adjust(col, { s: -40, l: 10 }) : adjust(col, { s: -40, l: -10 });\n","import { invert, darken, lighten, adjust } from 'khroma';\nimport { mkBorder } from './theme-helpers';\n\n// const Color = require ( 'khroma/dist/color' ).default\n// Color.format.hex.stringify(Color.parse('hsl(210, 66.6666666667%, 95%)')); // => \"#EAF2FB\"\n\nclass Theme {\n constructor() {\n this.primaryColor = '#eee';\n this.contrast = '#26a';\n this.secondaryColor = lighten(this.contrast, 55);\n this.background = '#ffffff';\n\n // this.secondaryColor = adjust(this.primaryColor, { h: 120 });\n this.tertiaryColor = adjust(this.primaryColor, { h: -160 });\n console.warn('primary color', this.primaryColor, 'tertiary - color', this.tertiaryColor);\n this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n // this.noteBorderColor = mkBorder(this.noteBkgColor, this.darkMode);\n\n this.primaryTextColor = invert(this.primaryColor);\n this.secondaryTextColor = invert(this.secondaryColor);\n this.tertiaryTextColor = invert(this.tertiaryColor);\n this.lineColor = invert(this.background);\n this.textColor = invert(this.background);\n\n this.altBackground = lighten(this.contrast, 55);\n this.mainBkg = '#eee';\n this.secondBkg = 'calculated';\n this.lineColor = '#666';\n this.border1 = '#999';\n this.border2 = 'calculated';\n this.note = '#ffa';\n this.text = '#333';\n this.critical = '#d42';\n this.done = '#bbb';\n this.arrowheadColor = '#333333';\n this.fontFamily = '\"trebuchet ms\", verdana, arial';\n this.fontSize = '16px';\n\n /* Flowchart variables */\n\n this.nodeBkg = 'calculated';\n this.nodeBorder = 'calculated';\n this.clusterBkg = 'calculated';\n this.clusterBorder = 'calculated';\n this.defaultLinkColor = 'calculated';\n this.titleColor = 'calculated';\n this.edgeLabelBackground = 'white';\n\n /* Sequence Diagram variables */\n\n this.actorBorder = 'calculated';\n this.actorBkg = 'calculated';\n this.actorTextColor = 'calculated';\n this.actorLineColor = 'calculated';\n this.signalColor = 'calculated';\n this.signalTextColor = 'calculated';\n this.labelBoxBkgColor = 'calculated';\n this.labelBoxBorderColor = 'calculated';\n this.labelTextColor = 'calculated';\n this.loopTextColor = 'calculated';\n this.noteBorderColor = 'calculated';\n this.noteBkgColor = 'calculated';\n this.noteTextColor = 'calculated';\n this.activationBorderColor = '#666';\n this.activationBkgColor = '#f4f4f4';\n this.sequenceNumberColor = 'white';\n\n /* Gantt chart variables */\n\n this.sectionBkgColor = 'calculated';\n this.altSectionBkgColor = 'white';\n this.sectionBkgColor2 = 'calculated';\n this.taskBorderColor = 'calculated';\n this.taskBkgColor = 'calculated';\n this.taskTextLightColor = 'white';\n this.taskTextColor = 'calculated';\n this.taskTextDarkColor = 'calculated';\n this.taskTextOutsideColor = 'calculated';\n this.taskTextClickableColor = '#003163';\n this.activeTaskBorderColor = 'calculated';\n this.activeTaskBkgColor = 'calculated';\n this.gridColor = 'calculated';\n this.doneTaskBkgColor = 'calculated';\n this.doneTaskBorderColor = 'calculated';\n this.critBkgColor = 'calculated';\n this.critBorderColor = 'calculated';\n this.todayLineColor = 'calculated';\n\n /* state colors */\n this.labelColor = 'black';\n\n this.errorBkgColor = '#552222';\n this.errorTextColor = '#552222';\n }\n updateColors() {\n this.secondBkg = lighten(this.contrast, 55);\n this.border2 = this.contrast;\n\n /* Flowchart variables */\n\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.titleColor = this.text;\n\n /* Sequence Diagram variables */\n\n this.actorBorder = lighten(this.border1, 23);\n this.actorBkg = this.mainBkg;\n this.actorTextColor = this.text;\n this.actorLineColor = this.lineColor;\n this.signalColor = this.text;\n this.signalTextColor = this.text;\n this.labelBoxBkgColor = this.actorBkg;\n this.labelBoxBorderColor = this.actorBorder;\n this.labelTextColor = this.text;\n this.loopTextColor = this.text;\n this.noteBorderColor = darken(this.note, 60);\n this.noteBkgColor = this.note;\n this.noteTextColor = this.actorTextColor;\n\n /* Gantt chart variables */\n\n this.sectionBkgColor = lighten(this.contrast, 30);\n this.sectionBkgColor2 = lighten(this.contrast, 30);\n\n this.taskBorderColor = darken(this.contrast, 10);\n\n this.taskBkgColor = this.contrast;\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextDarkColor = this.text;\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.activeTaskBorderColor = this.taskBorderColor;\n this.activeTaskBkgColor = this.mainBkg;\n this.gridColor = lighten(this.border1, 30);\n\n this.doneTaskBkgColor = this.done;\n this.doneTaskBorderColor = this.lineColor;\n this.critBkgColor = this.critical;\n this.critBorderColor = darken(this.critBkgColor, 10);\n\n this.todayLineColor = this.critBkgColor;\n\n /* state colors */\n /* class */\n this.classText = this.primaryTextColor;\n /* journey */\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust(this.primaryColor, { h: 64 });\n this.fillType3 = adjust(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust(this.primaryColor, { h: -64 });\n this.fillType5 = adjust(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust(this.primaryColor, { h: 128 });\n this.fillType7 = adjust(this.secondaryColor, { h: 128 });\n }\n calculate(overrides) {\n if (typeof overrides !== 'object') {\n // Calculate colors form base colors\n this.updateColors();\n return;\n }\n\n const keys = Object.keys(overrides);\n\n // Copy values from overrides, this is mainly for base colors\n keys.forEach(k => {\n this[k] = overrides[k];\n });\n\n // Calculate colors form base colors\n this.updateColors();\n // Copy values from overrides again in case of an override of derived value\n keys.forEach(k => {\n this[k] = overrides[k];\n });\n }\n}\n\nexport const getThemeVariables = userOverrides => {\n const theme = new Theme();\n theme.calculate(userOverrides);\n console.info('Theme(neutral)', { userOverrides, theme });\n return theme;\n};\n","import {\n curveBasis,\n curveBasisClosed,\n curveBasisOpen,\n curveLinear,\n curveLinearClosed,\n curveMonotoneX,\n curveMonotoneY,\n curveNatural,\n curveStep,\n curveStepAfter,\n curveStepBefore,\n select\n} from 'd3';\nimport { logger } from './logger';\nimport { sanitizeUrl } from '@braintree/sanitize-url';\nimport common from './diagrams/common/common';\n// import cryptoRandomString from 'crypto-random-string';\n\n// Effectively an enum of the supported curve types, accessible by name\nconst d3CurveTypes = {\n curveBasis: curveBasis,\n curveBasisClosed: curveBasisClosed,\n curveBasisOpen: curveBasisOpen,\n curveLinear: curveLinear,\n curveLinearClosed: curveLinearClosed,\n curveMonotoneX: curveMonotoneX,\n curveMonotoneY: curveMonotoneY,\n curveNatural: curveNatural,\n curveStep: curveStep,\n curveStepAfter: curveStepAfter,\n curveStepBefore: curveStepBefore\n};\nconst directive = /[%]{2}[{]\\s*(?:(?:(\\w+)\\s*:|(\\w+))\\s*(?:(?:(\\w+))|((?:(?![}][%]{2}).|\\r?\\n)*))?\\s*)(?:[}][%]{2})?/gi;\nconst directiveWithoutOpen = /\\s*(?:(?:(\\w+)(?=:):|(\\w+))\\s*(?:(?:(\\w+))|((?:(?![}][%]{2}).|\\r?\\n)*))?\\s*)(?:[}][%]{2})?/gi;\nconst anyComment = /\\s*%%.*\\n/gm;\n\n/**\n * @function detectInit\n * Detects the init config object from the text\n * ```mermaid\n * %%{init: {\"theme\": \"debug\", \"logLevel\": 1 }}%%\n * graph LR\n * a-->b\n * b-->c\n * c-->d\n * d-->e\n * e-->f\n * f-->g\n * g-->h\n * ```\n * or\n * ```mermaid\n * %%{initialize: {\"theme\": \"dark\", logLevel: \"debug\" }}%%\n * graph LR\n * a-->b\n * b-->c\n * c-->d\n * d-->e\n * e-->f\n * f-->g\n * g-->h\n * ```\n *\n * @param {string} text The text defining the graph\n * @returns {object} the json object representing the init passed to mermaid.initialize()\n */\nexport const detectInit = function(text) {\n let inits = detectDirective(text, /(?:init\\b)|(?:initialize\\b)/);\n let results = {};\n if (Array.isArray(inits)) {\n let args = inits.map(init => init.args);\n results = assignWithDepth(results, [...args]);\n } else {\n results = inits.args;\n }\n if (results) {\n let type = detectType(text);\n ['config'].forEach(prop => {\n if (typeof results[prop] !== 'undefined') {\n if (type === 'flowchart-v2') {\n type = 'flowchart';\n }\n results[type] = results[prop];\n delete results[prop];\n }\n });\n }\n return results;\n};\n\n/**\n * @function detectDirective\n * Detects the directive from the text. Text can be single line or multiline. If type is null or omitted\n * the first directive encountered in text will be returned\n * ```mermaid\n * graph LR\n * %%{somedirective}%%\n * a-->b\n * b-->c\n * c-->d\n * d-->e\n * e-->f\n * f-->g\n * g-->h\n * ```\n *\n * @param {string} text The text defining the graph\n * @param {string|RegExp} type The directive to return (default: null)\n * @returns {object | Array} An object or Array representing the directive(s): { type: string, args: object|null } matched by the input type\n * if a single directive was found, that directive object will be returned.\n */\nexport const detectDirective = function(text, type = null) {\n try {\n const commentWithoutDirectives = new RegExp(\n `[%]{2}(?![{]${directiveWithoutOpen.source})(?=[}][%]{2}).*\\n`,\n 'ig'\n );\n text = text\n .trim()\n .replace(commentWithoutDirectives, '')\n .replace(/'/gm, '\"');\n logger.debug(\n `Detecting diagram directive${type !== null ? ' type:' + type : ''} based on the text:${text}`\n );\n let match,\n result = [];\n while ((match = directive.exec(text)) !== null) {\n // This is necessary to avoid infinite loops with zero-width matches\n if (match.index === directive.lastIndex) {\n directive.lastIndex++;\n }\n if (\n (match && !type) ||\n (type && match[1] && match[1].match(type)) ||\n (type && match[2] && match[2].match(type))\n ) {\n let type = match[1] ? match[1] : match[2];\n let args = match[3] ? match[3].trim() : match[4] ? JSON.parse(match[4].trim()) : null;\n result.push({ type, args });\n }\n }\n if (result.length === 0) {\n result.push({ type: text, args: null });\n }\n\n return result.length === 1 ? result[0] : result;\n } catch (error) {\n logger.error(\n `ERROR: ${error.message} - Unable to parse directive${\n type !== null ? ' type:' + type : ''\n } based on the text:${text}`\n );\n return { type: null, args: null };\n }\n};\n\n/**\n * @function detectType\n * Detects the type of the graph text. Takes into consideration the possible existence of an %%init\n * directive\n * ```mermaid\n * %%{initialize: {\"startOnLoad\": true, logLevel: \"fatal\" }}%%\n * graph LR\n * a-->b\n * b-->c\n * c-->d\n * d-->e\n * e-->f\n * f-->g\n * g-->h\n * ```\n *\n * @param {string} text The text defining the graph\n * @returns {string} A graph definition key\n */\nexport const detectType = function(text) {\n text = text.replace(directive, '').replace(anyComment, '\\n');\n logger.debug('Detecting diagram type based on the text ' + text);\n if (text.match(/^\\s*sequenceDiagram/)) {\n return 'sequence';\n }\n\n if (text.match(/^\\s*gantt/)) {\n return 'gantt';\n }\n if (text.match(/^\\s*classDiagram-v2/)) {\n return 'classDiagram';\n }\n if (text.match(/^\\s*classDiagram/)) {\n return 'class';\n }\n\n if (text.match(/^\\s*stateDiagram-v2/)) {\n return 'stateDiagram';\n }\n\n if (text.match(/^\\s*stateDiagram/)) {\n return 'state';\n }\n\n if (text.match(/^\\s*gitGraph/)) {\n return 'git';\n }\n if (text.match(/^\\s*flowchart/)) {\n return 'flowchart-v2';\n }\n\n if (text.match(/^\\s*info/)) {\n return 'info';\n }\n if (text.match(/^\\s*pie/)) {\n return 'pie';\n }\n\n if (text.match(/^\\s*erDiagram/)) {\n return 'er';\n }\n\n if (text.match(/^\\s*journey/)) {\n return 'journey';\n }\n\n return 'flowchart';\n};\n\nconst memoize = (fn, resolver) => {\n let cache = {};\n return (...args) => {\n let n = resolver ? resolver.apply(this, args) : args[0];\n if (n in cache) {\n return cache[n];\n } else {\n let result = fn(...args);\n cache[n] = result;\n return result;\n }\n };\n};\n\n/**\n * @function isSubstringInArray\n * Detects whether a substring in present in a given array\n * @param {string} str The substring to detect\n * @param {array} arr The array to search\n * @returns {number} the array index containing the substring or -1 if not present\n **/\nexport const isSubstringInArray = function(str, arr) {\n for (let i = 0; i < arr.length; i++) {\n if (arr[i].match(str)) return i;\n }\n return -1;\n};\n\nexport const interpolateToCurve = (interpolate, defaultCurve) => {\n if (!interpolate) {\n return defaultCurve;\n }\n const curveName = `curve${interpolate.charAt(0).toUpperCase() + interpolate.slice(1)}`;\n return d3CurveTypes[curveName] || defaultCurve;\n};\n\nexport const formatUrl = (linkStr, config) => {\n let url = linkStr.trim();\n\n if (url) {\n if (config.securityLevel !== 'loose') {\n return sanitizeUrl(url);\n }\n\n return url;\n }\n};\n\nexport const runFunc = (functionName, ...params) => {\n const arrPaths = functionName.split('.');\n\n const len = arrPaths.length - 1;\n const fnName = arrPaths[len];\n\n let obj = window;\n for (let i = 0; i < len; i++) {\n obj = obj[arrPaths[i]];\n if (!obj) return;\n }\n\n obj[fnName](...params);\n};\n\nconst distance = (p1, p2) =>\n p1 && p2 ? Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2)) : 0;\n\nconst traverseEdge = points => {\n let prevPoint;\n let totalDistance = 0;\n\n points.forEach(point => {\n totalDistance += distance(point, prevPoint);\n prevPoint = point;\n });\n\n // Traverse half of total distance along points\n let remainingDistance = totalDistance / 2;\n let center = undefined;\n prevPoint = undefined;\n points.forEach(point => {\n if (prevPoint && !center) {\n const vectorDistance = distance(point, prevPoint);\n if (vectorDistance < remainingDistance) {\n remainingDistance -= vectorDistance;\n } else {\n // The point is remainingDistance from prevPoint in the vector between prevPoint and point\n // Calculate the coordinates\n const distanceRatio = remainingDistance / vectorDistance;\n if (distanceRatio <= 0) center = prevPoint;\n if (distanceRatio >= 1) center = { x: point.x, y: point.y };\n if (distanceRatio > 0 && distanceRatio < 1) {\n center = {\n x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point.x,\n y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point.y\n };\n }\n }\n }\n prevPoint = point;\n });\n return center;\n};\n\nconst calcLabelPosition = points => {\n return traverseEdge(points);\n};\n\nconst calcCardinalityPosition = (isRelationTypePresent, points, initialPosition) => {\n let prevPoint;\n let totalDistance = 0; // eslint-disable-line\n if (points[0] !== initialPosition) {\n points = points.reverse();\n }\n points.forEach(point => {\n totalDistance += distance(point, prevPoint);\n prevPoint = point;\n });\n\n // Traverse only 25 total distance along points to find cardinality point\n const distanceToCardinalityPoint = 25;\n\n let remainingDistance = distanceToCardinalityPoint;\n let center;\n prevPoint = undefined;\n points.forEach(point => {\n if (prevPoint && !center) {\n const vectorDistance = distance(point, prevPoint);\n if (vectorDistance < remainingDistance) {\n remainingDistance -= vectorDistance;\n } else {\n // The point is remainingDistance from prevPoint in the vector between prevPoint and point\n // Calculate the coordinates\n const distanceRatio = remainingDistance / vectorDistance;\n if (distanceRatio <= 0) center = prevPoint;\n if (distanceRatio >= 1) center = { x: point.x, y: point.y };\n if (distanceRatio > 0 && distanceRatio < 1) {\n center = {\n x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point.x,\n y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point.y\n };\n }\n }\n }\n prevPoint = point;\n });\n // if relation is present (Arrows will be added), change cardinality point off-set distance (d)\n let d = isRelationTypePresent ? 10 : 5;\n //Calculate Angle for x and y axis\n let angle = Math.atan2(points[0].y - center.y, points[0].x - center.x);\n let cardinalityPosition = { x: 0, y: 0 };\n //Calculation cardinality position using angle, center point on the line/curve but pendicular and with offset-distance\n cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2;\n cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2;\n return cardinalityPosition;\n};\n\nexport const getStylesFromArray = arr => {\n let style = '';\n let labelStyle = '';\n\n for (let i = 0; i < arr.length; i++) {\n if (typeof arr[i] !== 'undefined') {\n // add text properties to label style definition\n if (arr[i].startsWith('color:') || arr[i].startsWith('text-align:')) {\n labelStyle = labelStyle + arr[i] + ';';\n } else {\n style = style + arr[i] + ';';\n }\n }\n }\n\n return { style: style, labelStyle: labelStyle };\n};\n\nlet cnt = 0;\nexport const generateId = () => {\n cnt++;\n return (\n 'id-' +\n Math.random()\n .toString(36)\n .substr(2, 12) +\n '-' +\n cnt\n );\n};\n\nfunction makeid(length) {\n var result = '';\n var characters = '0123456789abcdef';\n var charactersLength = characters.length;\n for (var i = 0; i < length; i++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n return result;\n}\n\nexport const random = options => {\n return makeid(options.length);\n};\n\n/**\n * @function assignWithDepth\n * Extends the functionality of {@link ObjectConstructor.assign} with the ability to merge arbitrary-depth objects\n * For each key in src with path `k` (recursively) performs an Object.assign(dst[`k`], src[`k`]) with\n * a slight change from the typical handling of undefined for dst[`k`]: instead of raising an error,\n * dst[`k`] is auto-initialized to {} and effectively merged with src[`k`]\n *
\n * Additionally, dissimilar types will not clobber unless the config.clobber parameter === true. Example:\n * ```\n * let config_0 = { foo: { bar: 'bar' }, bar: 'foo' };\n * let config_1 = { foo: 'foo', bar: 'bar' };\n * let result = assignWithDepth(config_0, config_1);\n * console.log(result);\n * //-> result: { foo: { bar: 'bar' }, bar: 'bar' }\n * ```\n *
\n * Traditional Object.assign would have clobbered foo in config_0 with foo in config_1.\n *
\n * If src is a destructured array of objects and dst is not an array, assignWithDepth will apply each element of src to dst\n * in order.\n * @param dst:any - the destination of the merge\n * @param src:any - the source object(s) to merge into destination\n * @param config:{ depth: number, clobber: boolean } - depth: depth to traverse within src and dst for merging -\n * clobber: should dissimilar types clobber (default: { depth: 2, clobber: false })\n * @returns {*}\n */\nexport const assignWithDepth = function(dst, src, config) {\n const { depth, clobber } = Object.assign({ depth: 2, clobber: false }, config);\n if (Array.isArray(src) && !Array.isArray(dst)) {\n src.forEach(s => assignWithDepth(dst, s, config));\n return dst;\n } else if (Array.isArray(src) && Array.isArray(dst)) {\n src.forEach(s => {\n if (dst.indexOf(s) === -1) {\n dst.push(s);\n }\n });\n return dst;\n }\n if (typeof dst === 'undefined' || depth <= 0) {\n if (dst !== undefined && dst !== null && typeof dst === 'object' && typeof src === 'object') {\n return Object.assign(dst, src);\n } else {\n return src;\n }\n }\n if (typeof src !== 'undefined' && typeof dst === 'object' && typeof src === 'object') {\n Object.keys(src).forEach(key => {\n if (\n typeof src[key] === 'object' &&\n (dst[key] === undefined || typeof dst[key] === 'object')\n ) {\n if (dst[key] === undefined) {\n dst[key] = Array.isArray(src[key]) ? [] : {};\n }\n dst[key] = assignWithDepth(dst[key], src[key], { depth: depth - 1, clobber });\n } else if (clobber || (typeof dst[key] !== 'object' && typeof src[key] !== 'object')) {\n dst[key] = src[key];\n }\n });\n }\n return dst;\n};\n\nexport const getTextObj = function() {\n return {\n x: 0,\n y: 0,\n fill: undefined,\n anchor: 'start',\n style: '#666',\n width: 100,\n height: 100,\n textMargin: 0,\n rx: 0,\n ry: 0,\n valign: undefined\n };\n};\n\nexport const drawSimpleText = function(elem, textData) {\n // Remove and ignore br:s\n const nText = textData.text.replace(common.lineBreakRegex, ' ');\n\n const textElem = elem.append('text');\n textElem.attr('x', textData.x);\n textElem.attr('y', textData.y);\n textElem.style('text-anchor', textData.anchor);\n textElem.style('font-family', textData.fontFamily);\n textElem.style('font-size', textData.fontSize);\n textElem.style('font-weight', textData.fontWeight);\n textElem.attr('fill', textData.fill);\n if (typeof textData.class !== 'undefined') {\n textElem.attr('class', textData.class);\n }\n\n const span = textElem.append('tspan');\n span.attr('x', textData.x + textData.textMargin * 2);\n span.attr('fill', textData.fill);\n span.text(nText);\n\n return textElem;\n};\n\nexport const wrapLabel = memoize(\n (label, maxWidth, config) => {\n if (!label) {\n return label;\n }\n config = Object.assign(\n { fontSize: 12, fontWeight: 400, fontFamily: 'Arial', joinWith: '
' },\n config\n );\n if (common.lineBreakRegex.test(label)) {\n return label;\n }\n const words = label.split(' ');\n const completedLines = [];\n let nextLine = '';\n words.forEach((word, index) => {\n const wordLength = calculateTextWidth(`${word} `, config);\n const nextLineLength = calculateTextWidth(nextLine, config);\n if (wordLength > maxWidth) {\n const { hyphenatedStrings, remainingWord } = breakString(word, maxWidth, '-', config);\n completedLines.push(nextLine, ...hyphenatedStrings);\n nextLine = remainingWord;\n } else if (nextLineLength + wordLength >= maxWidth) {\n completedLines.push(nextLine);\n nextLine = word;\n } else {\n nextLine = [nextLine, word].filter(Boolean).join(' ');\n }\n const currentWord = index + 1;\n const isLastWord = currentWord === words.length;\n if (isLastWord) {\n completedLines.push(nextLine);\n }\n });\n return completedLines.filter(line => line !== '').join(config.joinWith);\n },\n (label, maxWidth, config) =>\n `${label}-${maxWidth}-${config.fontSize}-${config.fontWeight}-${config.fontFamily}-${config.joinWith}`\n);\n\nconst breakString = memoize(\n (word, maxWidth, hyphenCharacter = '-', config) => {\n config = Object.assign(\n { fontSize: 12, fontWeight: 400, fontFamily: 'Arial', margin: 0 },\n config\n );\n const characters = word.split('');\n const lines = [];\n let currentLine = '';\n characters.forEach((character, index) => {\n const nextLine = `${currentLine}${character}`;\n const lineWidth = calculateTextWidth(nextLine, config);\n if (lineWidth >= maxWidth) {\n const currentCharacter = index + 1;\n const isLastLine = characters.length === currentCharacter;\n const hyphenatedNextLine = `${nextLine}${hyphenCharacter}`;\n lines.push(isLastLine ? nextLine : hyphenatedNextLine);\n currentLine = '';\n } else {\n currentLine = nextLine;\n }\n });\n return { hyphenatedStrings: lines, remainingWord: currentLine };\n },\n (word, maxWidth, hyphenCharacter = '-', config) =>\n `${word}-${maxWidth}-${hyphenCharacter}-${config.fontSize}-${config.fontWeight}-${config.fontFamily}`\n);\n\n/**\n * This calculates the text's height, taking into account the wrap breaks and\n * both the statically configured height, width, and the length of the text (in pixels).\n *\n * If the wrapped text text has greater height, we extend the height, so it's\n * value won't overflow.\n *\n * @return - The height for the given text\n * @param text the text to measure\n * @param config - the config for fontSize, fontFamily, and fontWeight all impacting the resulting size\n */\nexport const calculateTextHeight = function(text, config) {\n config = Object.assign(\n { fontSize: 12, fontWeight: 400, fontFamily: 'Arial', margin: 15 },\n config\n );\n return calculateTextDimensions(text, config).height;\n};\n\n/**\n * This calculates the width of the given text, font size and family.\n *\n * @return - The width for the given text\n * @param text - The text to calculate the width of\n * @param config - the config for fontSize, fontFamily, and fontWeight all impacting the resulting size\n */\nexport const calculateTextWidth = function(text, config) {\n config = Object.assign({ fontSize: 12, fontWeight: 400, fontFamily: 'Arial' }, config);\n return calculateTextDimensions(text, config).width;\n};\n\n/**\n * This calculates the dimensions of the given text, font size, font family, font weight, and margins.\n *\n * @return - The width for the given text\n * @param text - The text to calculate the width of\n * @param config - the config for fontSize, fontFamily, fontWeight, and margin all impacting the resulting size\n */\nexport const calculateTextDimensions = memoize(\n function(text, config) {\n config = Object.assign({ fontSize: 12, fontWeight: 400, fontFamily: 'Arial' }, config);\n const { fontSize, fontFamily, fontWeight } = config;\n if (!text) {\n return { width: 0, height: 0 };\n }\n\n // We can't really know if the user supplied font family will render on the user agent;\n // thus, we'll take the max width between the user supplied font family, and a default\n // of sans-serif.\n const fontFamilies = ['sans-serif', fontFamily];\n const lines = text.split(common.lineBreakRegex);\n let dims = [];\n\n const body = select('body');\n // We don't want to leak DOM elements - if a removal operation isn't available\n // for any reason, do not continue.\n if (!body.remove) {\n return { width: 0, height: 0, lineHeight: 0 };\n }\n\n const g = body.append('svg');\n\n for (let fontFamily of fontFamilies) {\n let cheight = 0;\n let dim = { width: 0, height: 0, lineHeight: 0 };\n for (let line of lines) {\n const textObj = getTextObj();\n textObj.text = line;\n const textElem = drawSimpleText(g, textObj)\n .style('font-size', fontSize)\n .style('font-weight', fontWeight)\n .style('font-family', fontFamily);\n\n let bBox = (textElem._groups || textElem)[0][0].getBBox();\n dim.width = Math.round(Math.max(dim.width, bBox.width));\n cheight = Math.round(bBox.height);\n dim.height += cheight;\n dim.lineHeight = Math.round(Math.max(dim.lineHeight, cheight));\n }\n dims.push(dim);\n }\n\n g.remove();\n\n let index =\n isNaN(dims[1].height) ||\n isNaN(dims[1].width) ||\n isNaN(dims[1].lineHeight) ||\n (dims[0].height > dims[1].height &&\n dims[0].width > dims[1].width &&\n dims[0].lineHeight > dims[1].lineHeight)\n ? 0\n : 1;\n return dims[index];\n },\n (text, config) => `${text}-${config.fontSize}-${config.fontWeight}-${config.fontFamily}`\n);\n\nexport default {\n assignWithDepth,\n wrapLabel,\n calculateTextHeight,\n calculateTextWidth,\n calculateTextDimensions,\n detectInit,\n detectDirective,\n detectType,\n isSubstringInArray,\n interpolateToCurve,\n calcLabelPosition,\n calcCardinalityPosition,\n formatUrl,\n getStylesFromArray,\n generateId,\n random,\n memoize,\n runFunc\n};\n","module.exports = require(\"@braintree/sanitize-url\");","module.exports = require(\"d3\");","module.exports = require(\"dagre\");","module.exports = require(\"dagre-d3\");","module.exports = require(\"dagre-d3/lib/label/add-html-label.js\");","module.exports = require(\"entity-decode/browser\");","module.exports = require(\"graphlib\");","module.exports = require(\"khroma\");","module.exports = require(\"moment-mini\");","module.exports = require(\"stylis\");"],"sourceRoot":""}
=======
{"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/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 \"entity-decode/browser\"","webpack://mermaid/external \"graphlib\"","webpack://mermaid/external \"khroma\"","webpack://mermaid/external \"moment-mini\"","webpack://mermaid/external \"stylis\""],"names":["defaultConfig","Object","freeze","config","siteConfig","assignWithDepth","directives","currentConfig","updateCurrentConfig","siteCfg","_directives","cfg","themeVariables","i","length","d","sanitize","theme","getThemeVariables","tVars","variables","setSiteConfig","conf","console","warn","updateSiteConfig","getSiteConfig","setConfig","getConfig","options","keys","secure","forEach","key","logger","debug","addDirective","directive","push","reset","rect","parent","node","log","trace","id","shapeSvg","insert","attr","label","text","appendChild","createLabel","labelText","labelStyle","undefined","bbox","getBBox","flowchart","htmlLabels","div","children","dv","select","getBoundingClientRect","width","height","padding","halfPadding","JSON","stringify","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","style","_vertexText","isTitle","vertexText","replace","s","vertexNode","svgLabel","setAttribute","rows","split","Array","isArray","j","tspan","setAttributeNS","textContent","trim","edgeLabels","insertEdgeLabel","edge","labelElement","edgeLabel","positionEdgeLabel","points","pos","utils","calcLabelPosition","outsideNode","dx","Math","abs","dy","w","h","intersection","outsidePoint","insidePoint","r","edges","x1","x2","y1","y2","Q","R","q","res","insertEdge","e","clusterDb","diagramType","graph","pointsHasChanged","tail","v","head","slice","unshift","toCluster","lastPointOutside","isInside","inter","pointPresent","p","find","fromCluster","updatedPoints","insterection","lineData","filter","Number","isNaN","lineFunction","line","curve","curveBasis","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","clusters","edgePaths","data","parse","clusterData","setNode","setParent","clusterNode","newEl","updateNodeBounds","setNodeElem","findNonClusterChild","insertNode","name","dagre","layout","positionNode","updatedPath","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","intersections","minX","POSITIVE_INFINITY","minY","entry","min","left","top","sort","pdx","pdy","distp","qdx","qdy","distq","sx","sy","markerArray","type","markerName","extension","composition","aggregation","dependency","cross","barb","decendants","parents","isDecendant","ancenstorId","indexOf","edgeInCluster","clusterId","copy","newGraph","rootId","setEdge","error","removeNode","extractDecendants","concat","validate","_id","getAnchorId","externalConnections","depth","d1","d2","extractor","removeEdge","hasChildren","graphSettings","clusterGraph","Graph","multigraph","compound","setGraph","nodesep","ranksep","marginx","marginy","setDefaultEdgeLabel","question","labelHelper","questionElem","insertPolygonShape","hexagon","f","m","hex","rect_left_inv_arrow","lean_right","lean_left","trapezoid","inv_trapezoid","rect_right_inv_arrow","cylinder","rectWithTitle","innerLine","text2","flat","textRows","titleBox","descr","join","stadium","subroutine","start","forkJoin","end","innerCircle","class_box","rowPadding","lineHeight","topLine","bottomLine","maxWidth","maxHeight","labelContainer","verticalPos","hasInterface","classData","annotations","interfaceLabel","interfaceBBox","classTitleLabel","classTitleBBox","classAttributes","members","str","lbl","classMethods","methods","diffX","note","fork","nodeElems","_classes","element","map","themeCSS","maxTextSize","fontFamily","logLevel","securityLevel","startOnLoad","diagramPadding","nodeSpacing","rankSpacing","sequence","activationWidth","diagramMarginX","diagramMarginY","actorMargin","boxMargin","boxTextMargin","noteMargin","messageMargin","messageAlign","mirrorActors","bottomMarginAdj","useMaxWidth","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","leftPadding","gridLineStartPadding","numberSectionStyles","axisFormat","journey","class","git","dividerMargin","sizeUnit","textHeight","titleShift","forkWidth","forkHeight","miniPadding","fontSizeFactor","labelHeight","edgeLengthFactor","compositTitleSize","radius","er","layoutDirection","minEntityWidth","minEntityHeight","entityPadding","stroke","fill","MERMAID_DOM_ID_PREFIX","configApi","relations","classCounter","funs","parseDirective","statement","context","mermaidAPI","splitClassNameAndType","genericType","className","addClass","classId","cssClasses","domId","lookUpDomId","classKeys","setupToolTips","getClass","getClasses","getRelations","addRelation","relation","id1","id2","addAnnotation","annotation","validatedClassName","addMember","member","theClass","memberString","startsWith","endsWith","substring","addMembers","reverse","cleanupLabel","substr","setCssClass","ids","match","setLink","linkStr","tooltip","link","formatUrl","common","sanitizeText","setClickEvent","functionName","setClickFunc","elemId","querySelector","addEventListener","runFunc","bindFunctions","fun","lineType","LINE","DOTTED_LINE","relationType","AGGREGATION","EXTENSION","COMPOSITION","DEPENDENCY","tooltipElem","_groups","svg","selectAll","on","title","transition","duration","scrollX","right","scrollY","body","scrollTop","classed","parser","yy","classDb","idCache","addClasses","g","vertex","classStr","styles","radious","_shape","addRelations","cnt","defaultStyle","defaultLabelStyle","edgeData","arrowhead","getArrowMarker","type1","type2","getStylesFromArray","interpolate","interpolateToCurve","curveLinear","defaultInterpolate","arrowheadStyle","labelpos","labelType","lineBreakRegex","getGraphId","setConf","cnf","drawOld","diagram","isMultiGraph","classDef","svgDraw","drawClass","drawEdge","svgBounds","vBox","draw","_label","labels","querySelectorAll","k","dim","insertBefore","firstChild","marker","getStyles","nodeBorder","classText","mainBkg","lineColor","edgeCount","path","getRelationType","l","labelPosition","p1_card_x","p1_card_y","p2_card_x","p2_card_y","cardinality_1_point","calcCardinalityPosition","cardinality_2_point","bounds","relationTitle1","relationTitle2","classInfo","isFirst","titleText2","classTitleString","classTitle","titleHeight","membersLine","addTspan","membersBox","methodsLine","method","classBox","cssClassStr","rectWidth","childNodes","parseMember","fieldRegEx","methodRegEx","fieldMatch","methodMatch","buildFieldDisplay","buildMethodDisplay","buildLegacyDisplay","parsedText","displayText","visibility","fieldType","parseGenericTypes","fieldName","err","cssStyle","methodName","parameters","classifier","returnType","parseClassifier","memberText","methodStart","methodEnd","firstChar","textEl","txt","tSpan","cleanedText","getRows","breakToPlaceholder","removeScript","rs","idx","level","placeholderToBreak","hasBreaks","test","splitBreaks","entities","relationships","Cardinality","ZERO_OR_ONE","ZERO_OR_MORE","ONE_OR_MORE","ONLY_ONE","Identification","NON_IDENTIFYING","IDENTIFYING","addEntity","getEntities","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","drawEntities","svgNode","firstOne","groupNode","textId","textNode","textBBox","entityWidth","max","entityHeight","rectNode","rectBBox","adjustEntities","getEdgeName","addRelationships","relationship","relCnt","drawRelationshipFromLayout","relType","erDb","cardA","erMarkers","cardB","len","getTotalLength","labelPoint","getPointAtLength","labelId","labelNode","labelBBox","erParser","directed","edgesep","firstEntity","tertiaryColor","dagreD3","addToRender","addToRenderV2","addShape","vertices","subGraphs","subGraphLookup","tooltips","subCount","firstGraphFlag","direction","addVertex","addSingleLink","_start","_end","linktext","addLink","updateLinkInterpolate","positions","interp","updateLink","isSubstringInArray","textStyles","newStyle1","newStyle2","setDirection","setClass","setTooltip","setClickFun","target","linkTarget","getTooltip","getDirection","getVertices","getEdges","addSubGraph","list","_title","uniq","a","prims","boolean","number","string","objs","item","hasOwnProperty","nodeList","apply","subGraph","getPosForId","secCount","posCrossRef","indexNodes2","result","count","posCount","childPos","getDepthFirstPos","indexNodes","getSubGraphs","firstGraph","destructStartLink","_str","destructEndLink","destructLink","_startStr","startInfo","lex","addVertices","vert","svgId","parentNode","addEdges","defaultStyles","linkId","linkNameStart","linkNameEnd","flowDb","flow","subG","linkNode","Render","flowChartShapes","arrows","none","normal","util","clusterRects","clusterEl","xPos","baseVal","value","yPos","cluster","te","classList","add","nodeTextColor","textColor","arrowheadColor","edgeLabelBackground","clusterBkg","clusterBorder","titleColor","border2","dateFormat","todayMarker","excludes","sections","tasks","currentSection","tags","inclusiveEndDates","lastOrder","taskCnt","lastTask","lastTaskID","rawTasks","setAxisFormat","getAxisFormat","setTodayMarker","getTodayMarker","setDateFormat","enableInclusiveEndDates","endDatesAreInclusive","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","functionArgs","argList","charAt","callbackFunction","matchFound","t","regex","RegExp","shift","ganttDb","rightPadding","getElementById","parentElement","offsetWidth","useWidth","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","xAxis","axisBottom","tickSize","tickFormat","timeFormat","call","numOccurances","prevGap","getCount","todayG","today","todayLine","arr","hash","getCounts","obj","word","sectionBkgColor","sectionBkgColor2","altSectionBkgColor","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","reduce","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","o","getCurrentBranch","getHead","allCommitsDict","branchNum","nodeFillColor","nodeStrokeWidth","nodeStrokeColor","lineStrokeWidth","branchOffset","leftMargin","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","ver","gitGraphParser","db","assign","setMessage","getMessage","setInfo","inf","getInfo","infoParser","cleanupValue","pie","pieParser","pieData","margin","legendRectSize","legendSpacing","sum","scaleOrdinal","schemeSet2","d3pie","dataReady","entries","arcGenerator","arc","innerRadius","outerRadius","toFixed","centroid","legend","horz","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","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","val","updateBounds","_self","updateFn","updateItemBounds","n","_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","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","textPlacement","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","stmt","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","nodeData","noteData","groupData","position","arrowType","setupDoc","startId","endId","transformationLog","renderDoc","getLabelWidth","edgeFreeDoc","ranker","nodeSep","sub","boxBounds","noteDef","nodeCount","svgElem","dividers","pWidth","pShift","getAttribute","labelColor","background","tertiaryTextColor","primaryBorderColor","altBackground","allItemsProcessed","updateActors","tempActors","people","unique","Set","taskData","pieces","score","peeps","peopleList","journeyDb","taskMargin","taskFontSize","taskFontFamily","actorColours","sectionFills","sectionColours","drawActorLegend","person","colour","circleData","drawCircle","labelData","LEFT_MARGIN","initGraphics","actorNames","actorPos","actorName","drawTasks","fills","textColours","lastSection","sectionVHeight","taskPos","sectionNumber","drawSection","taskActors","drawTask","fillType0","fillType1","fillType2","fillType3","fillType4","fillType5","fillType6","fillType7","drawFace","faceData","circleElement","face","smile","d3arc","startAngle","PI","endAngle","sad","ambivalent","labelMargin","taskCount","graphics","LEVELS","fatal","setLogLevel","bind","time","arguments","mermaid","sequenceConfig","callback","Node","ganttConfig","now","innerHTML","decode","detectInit","svgCode","parseError","initialize","contentLoaded","graphInit","reinitialize","graphType","detectType","gitGraphAst","flowParser","sequenceParser","ganttParser","classParser","stateParser","infoDb","pieDb","journeyParser","encodeEntities","innerTxt","isInt","decodeEntities","_txt","cb","container","primaryColor","existingSvg","remove","userStyles","altFontFamily","flowRenderer","stylis","Stylis","rules","style1","createElement","gitGraphRenderer","flowRendererV2","sequenceDiagram","sequenceRenderer","ganttRenderer","classRenderer","classRendererV2","stateRenderer","stateRendererV2","infoRenderer","pkg","version","pieRenderer","erRenderer","journeyRenderer","errorRenderer","currentDirective","args","handleDirective","updateRendererConfigs","default","globalReset","themes","classDiagram","stateDiagram","calcThemeVariables","userOverRides","calcColors","errorBkgColor","errorTextColor","base","baseThemeVariables","dark","darkThemeVariables","defaultThemeVariables","forest","forestThemeVariables","neutral","neutralThemeVariables","Theme","darkMode","primaryTextColor","secondaryColor","adjust","mkBorder","secondaryBorderColor","tertiaryBorderColor","secondaryTextColor","invert","nodeBkg","defaultLinkColor","darken","lighten","taskTextLightColor","overrides","updateColors","userOverrides","calculate","secondBkg","mainContrastColor","darkTextColor","border1","rgba","labelBackground","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","makeid","characters","charactersLength","floor","dst","src","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","bBox"],"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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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,UAAU,GAAG,EAAjB;AACA,IAAIC,aAAa,GAAGF,8DAAe,CAAC,EAAD,EAAKL,aAAL,CAAnC;AAEO,IAAMQ,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,OAAD,EAAUC,WAAV,EAA0B;AAC3D,MAAIC,GAA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AwlB;AACrmB;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,qC;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;AAClB;AACA;AACA,kBAAkB;AAClB;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,kJAAkJ,EAAE,UAAU,EAAE,gBAAgB,EAAE,SAAS,EAAE,UAAU,EAAE,oBAAoB,eAAe,UAAU,oGAAoG,gFAAgF,GAAG,iCAAiC,8BAA8B,2BAA2B,EAAE,iCAAiC,EAAE,iCAAiC,EAAE,UAAU,eAAe,2CAA2C,0DAA0D,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,4JAA4J,gBAAgB,2CAA2C,EAAE,4DAA4D,gBAAgB,oBAAoB,eAAe,kCAAkC,oGAAoG,oBAAoB,GAAG,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,2BAA2B,6BAA6B,iCAAiC,GAAG,UAAU,EAAE,UAAU,gBAAgB,iCAAiC,EAAE,2CAA2C,eAAe,kCAAkC,iBAAiB,2BAA2B,EAAE,aAAa,EAAE,iCAAiC,eAAe,UAAU,gBAAgB,UAAU,wEAAwE,iCAAiC,6BAA6B,UAAU,GAAG,UAAU,EAAE,uBAAuB,0DAA0D,aAAa,gBAAgB,UAAU,EAAE,UAAU;AACtnE,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;AACA;AACA;AACA;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,8QAA8Q,EAAE,MAAM,YAAY,EAAE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CA;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,kfAAkf;AAC7f,aAAa,+QAA+Q;AAC5R;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;AACA,iBAAiB,oCAAoC;AACrD;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,0CAA0C,wCAAwC,6BAA6B,UAAU,EAAE,gBAAgB,EAAE,UAAU,eAAe,aAAa,EAAE,0BAA0B,uEAAuE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,kCAAkC,8BAA8B,UAAU,EAAE,0BAA0B,EAAE,UAAU;AAC3uB,iBAAiB,+CAA+C;AAChE;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,CAAC;AACD,iBAAiB,kBAAkB,gCAAgC,oBAAoB,yBAAyB,oBAAoB,8GAA8G,cAAc,uCAAuC,aAAa;AACpT,aAAa,kBAAkB,8BAA8B,mBAAmB,gCAAgC,kBAAkB,gCAAgC,YAAY;AAC9K,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;;;;;;;;;;;;;AC9sBA;AAAA,IAAMS,SAAS,GAAG,SAAZA,SAAY,CAAArjB,OAAO;AAAA,+CAGbA,OAAO,CAACwjB,OAHK,4BAIXxjB,OAAO,CAACsjB,UAJG,4DAQbtjB,OAAO,CAACmsB,aARK,yDAUDnsB,OAAO,CAACmsB,aAVP,4GAiBTnsB,OAAO,CAACyjB,SAjBC;AAAA,CAAzB;;AAqBeJ,wEAAf,E;;;;;;;;;;;;ACrBA;AAAA;AAA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A,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;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,8CAA8C;AAChE;AACA;AACA,kBAAkB,4CAA4C;AAC9D;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACt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A;AACA;AACA;AACA;AACA;AACA;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,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,qgBAAqgB,45KAA45K,UAAU;AAC1iM,aAAa,mBAAmB,6BAA6B,kBAAkB,gCAAgC,mBAAmB,gCAAgC,mBAAmB,8BAA8B,WAAW,6BAA6B,QAAQ,6DAA6D,WAAW,gCAAgC,YAAY;AACvX,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;;;;;;;;;;;;;ACjhCA;AAAA,IAAMS,SAAS,GAAG,SAAZA,SAAY,CAAArjB,OAAO;AAAA,8CAENA,OAAO,CAAC0W,UAFF,2BAGZ1W,OAAO,CAACsyB,aAAR,IAAyBtyB,OAAO,CAACuyB,SAHrB,kDAObvyB,OAAO,CAACsyB,aAAR,IAAyBtyB,OAAO,CAACuyB,SAPpB,qHAebvyB,OAAO,CAACwjB,OAfK,4BAgBXxjB,OAAO,CAACsjB,UAhBG,+KA4BbtjB,OAAO,CAACwyB,cA5BK,wDAgCXxyB,OAAO,CAACyjB,SAhCG,kFAqCXzjB,OAAO,CAACyjB,SArCG,8EA0CDzjB,OAAO,CAACyyB,mBA1CP,yEA6CCzyB,OAAO,CAACyyB,mBA7CT,4BA8CXzyB,OAAO,CAACyyB,mBA9CG,oFAoDbzyB,OAAO,CAAC0yB,UApDK,4BAqDX1yB,OAAO,CAAC2yB,aArDG,4EA0Db3yB,OAAO,CAAC4yB,UA1DK,4JAkEN5yB,OAAO,CAAC0W,UAlEF,sDAoEP1W,OAAO,CAACmsB,aApED,sCAqEDnsB,OAAO,CAAC6yB,OArEP;AAAA,CAAzB;;AA4EexP,wEAAf,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5EA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAIyP,UAAU,GAAG,EAAjB;AACA,IAAInZ,UAAU,GAAG,EAAjB;AACA,IAAIoZ,WAAW,GAAG,EAAlB;AACA,IAAIC,QAAQ,GAAG,EAAf;AACA,IAAItT,KAAK,GAAG,EAAZ;AACA,IAAIuT,QAAQ,GAAG,EAAf;AACA,IAAIC,KAAK,GAAG,EAAZ;AACA,IAAIC,cAAc,GAAG,EAArB;AACA,IAAMC,IAAI,GAAG,CAAC,QAAD,EAAW,MAAX,EAAmB,MAAnB,EAA2B,WAA3B,CAAb;AACA,IAAI9X,IAAI,GAAG,EAAX;AACA,IAAI+X,iBAAiB,GAAG,KAAxB,C,CAEA;;AACA,IAAIC,SAAS,GAAG,CAAhB;AAEO,IAAM/X,cAAc,GAAG,SAAjBA,cAAiB,CAASC,SAAT,EAAoBC,OAApB,EAA6BvL,IAA7B,EAAmC;AAC/DwL,qDAAU,CAACH,cAAX,CAA0B,IAA1B,EAAgCC,SAAhC,EAA2CC,OAA3C,EAAoDvL,IAApD;AACD,CAFM;AAIA,IAAMnM,KAAK,GAAG,SAARA,KAAQ,GAAW;AAC9BkvB,UAAQ,GAAG,EAAX;AACAC,OAAK,GAAG,EAAR;AACAC,gBAAc,GAAG,EAAjB;AACA7X,MAAI,GAAG,EAAP;AACAoE,OAAK,GAAG,EAAR;AACA6T,SAAO,GAAG,CAAV;AACAC,UAAQ,GAAG9xB,SAAX;AACA+xB,YAAU,GAAG/xB,SAAb;AACAgyB,UAAQ,GAAG,EAAX;AACAZ,YAAU,GAAG,EAAb;AACAnZ,YAAU,GAAG,EAAb;AACAoZ,aAAW,GAAG,EAAd;AACAC,UAAQ,GAAG,EAAX;AACAK,mBAAiB,GAAG,KAApB;AACAC,WAAS,GAAG,CAAZ;AACD,CAhBM;AAkBA,IAAMK,aAAa,GAAG,SAAhBA,aAAgB,CAASzM,GAAT,EAAc;AACzCvN,YAAU,GAAGuN,GAAb;AACD,CAFM;AAIA,IAAM0M,aAAa,GAAG,SAAhBA,aAAgB,GAAW;AACtC,SAAOja,UAAP;AACD,CAFM;AAIA,IAAMka,cAAc,GAAG,SAAjBA,cAAiB,CAAS3M,GAAT,EAAc;AAC1C6L,aAAW,GAAG7L,GAAd;AACD,CAFM;AAIA,IAAM4M,cAAc,GAAG,SAAjBA,cAAiB,GAAW;AACvC,SAAOf,WAAP;AACD,CAFM;AAIA,IAAMgB,aAAa,GAAG,SAAhBA,aAAgB,CAAS7M,GAAT,EAAc;AACzC4L,YAAU,GAAG5L,GAAb;AACD,CAFM;AAIA,IAAM8M,uBAAuB,GAAG,SAA1BA,uBAA0B,GAAW;AAChDX,mBAAiB,GAAG,IAApB;AACD,CAFM;AAIA,IAAMY,oBAAoB,GAAG,SAAvBA,oBAAuB,GAAW;AAC7C,SAAOZ,iBAAP;AACD,CAFM;AAIA,IAAMa,aAAa,GAAG,SAAhBA,aAAgB,GAAW;AACtC,SAAOpB,UAAP;AACD,CAFM;AAIA,IAAMqB,WAAW,GAAG,SAAdA,WAAc,CAASjN,GAAT,EAAc;AACvC8L,UAAQ,GAAG9L,GAAG,CAACkN,WAAJ,GAAkB7uB,KAAlB,CAAwB,QAAxB,CAAX;AACD,CAFM;AAIA,IAAM8uB,WAAW,GAAG,SAAdA,WAAc,GAAW;AACpC,SAAOrB,QAAP;AACD,CAFM;AAIA,IAAM1J,QAAQ,GAAG,SAAXA,QAAW,CAASpC,GAAT,EAAc;AACpCxH,OAAK,GAAGwH,GAAR;AACD,CAFM;AAIA,IAAMqC,QAAQ,GAAG,SAAXA,QAAW,GAAW;AACjC,SAAO7J,KAAP;AACD,CAFM;AAIA,IAAM4U,UAAU,GAAG,SAAbA,UAAa,CAASpN,GAAT,EAAc;AACtCiM,gBAAc,GAAGjM,GAAjB;AACA+L,UAAQ,CAACxyB,IAAT,CAAcymB,GAAd;AACD,CAHM;AAKA,IAAMqN,WAAW,GAAG,SAAdA,WAAc,GAAW;AACpC,SAAOtB,QAAP;AACD,CAFM;AAIA,IAAMuB,QAAQ,GAAG,SAAXA,QAAW,GAAW;AACjC,MAAIC,iBAAiB,GAAGC,YAAY,EAApC;AACA,MAAMC,QAAQ,GAAG,EAAjB;AACA,MAAIC,cAAc,GAAG,CAArB;;AACA,SAAO,CAACH,iBAAD,IAAsBG,cAAc,GAAGD,QAA9C,EAAwD;AACtDF,qBAAiB,GAAGC,YAAY,EAAhC;AACAE,kBAAc;AACf;;AAED1B,OAAK,GAAGQ,QAAR;AAEA,SAAOR,KAAP;AACD,CAZM;;AAcP,IAAM2B,aAAa,GAAG,SAAhBA,aAAgB,CAASC,IAAT,EAAehC,UAAf,EAA2BE,QAA3B,EAAqC;AACzD,MAAI8B,IAAI,CAACC,UAAL,MAAqB,CAArB,IAA0B/B,QAAQ,CAACliB,OAAT,CAAiB,UAAjB,KAAgC,CAA9D,EAAiE;AAC/D,WAAO,IAAP;AACD;;AACD,MAAIkiB,QAAQ,CAACliB,OAAT,CAAiBgkB,IAAI,CAACE,MAAL,CAAY,MAAZ,EAAoBZ,WAApB,EAAjB,KAAuD,CAA3D,EAA8D;AAC5D,WAAO,IAAP;AACD;;AACD,SAAOpB,QAAQ,CAACliB,OAAT,CAAiBgkB,IAAI,CAACE,MAAL,CAAYlC,UAAU,CAAChtB,IAAX,EAAZ,CAAjB,KAAoD,CAA3D;AACD,CARD;;AAUA,IAAMmvB,cAAc,GAAG,SAAjBA,cAAiB,CAASC,IAAT,EAAepC,UAAf,EAA2BE,QAA3B,EAAqC;AAC1D,MAAI,CAACA,QAAQ,CAAC/zB,MAAV,IAAoBi2B,IAAI,CAACC,aAA7B,EAA4C;AAC5C,MAAIC,SAAS,GAAGC,kDAAM,CAACH,IAAI,CAACE,SAAN,EAAiBtC,UAAjB,EAA6B,IAA7B,CAAtB;AACAsC,WAAS,CAAC/C,GAAV,CAAc,CAAd,EAAiB,GAAjB;AACA,MAAIiD,OAAO,GAAGD,kDAAM,CAACH,IAAI,CAACI,OAAN,EAAexC,UAAf,EAA2B,IAA3B,CAApB;AACA,MAAIyC,aAAa,GAAGC,YAAY,CAACJ,SAAD,EAAYE,OAAZ,EAAqBxC,UAArB,EAAiCE,QAAjC,CAAhC;AACAkC,MAAI,CAACI,OAAL,GAAeA,OAAO,CAACG,MAAR,EAAf;AACAP,MAAI,CAACK,aAAL,GAAqBA,aAArB;AACD,CARD;;AAUA,IAAMC,YAAY,GAAG,SAAfA,YAAe,CAASJ,SAAT,EAAoBE,OAApB,EAA6BxC,UAA7B,EAAyCE,QAAzC,EAAmD;AACtE,MAAI0C,OAAO,GAAG,KAAd;AACA,MAAIH,aAAa,GAAG,IAApB;;AACA,SAAOH,SAAS,IAAIE,OAApB,EAA6B;AAC3B,QAAI,CAACI,OAAL,EAAc;AACZH,mBAAa,GAAGD,OAAO,CAACG,MAAR,EAAhB;AACD;;AACDC,WAAO,GAAGb,aAAa,CAACO,SAAD,EAAYtC,UAAZ,EAAwBE,QAAxB,CAAvB;;AACA,QAAI0C,OAAJ,EAAa;AACXJ,aAAO,CAACjD,GAAR,CAAY,CAAZ,EAAe,GAAf;AACD;;AACD+C,aAAS,CAAC/C,GAAV,CAAc,CAAd,EAAiB,GAAjB;AACD;;AACD,SAAOkD,aAAP;AACD,CAdD;;AAgBA,IAAMI,YAAY,GAAG,SAAfA,YAAe,CAASC,QAAT,EAAmB9C,UAAnB,EAA+Bjd,GAA/B,EAAoC;AACvDA,KAAG,GAAGA,GAAG,CAAC/P,IAAJ,EAAN,CADuD,CAGvD;;AACA,MAAM+vB,EAAE,GAAG,sBAAX;AACA,MAAMC,cAAc,GAAGD,EAAE,CAACE,IAAH,CAAQlgB,GAAG,CAAC/P,IAAJ,EAAR,CAAvB;;AAEA,MAAIgwB,cAAc,KAAK,IAAvB,EAA6B;AAC3B;AACA,QAAIE,gBAAgB,GAAG,IAAvB;AACAF,kBAAc,CAAC,CAAD,CAAd,CAAkBvwB,KAAlB,CAAwB,GAAxB,EAA6BpF,OAA7B,CAAqC,UAASa,EAAT,EAAa;AAChD,UAAIk0B,IAAI,GAAGe,YAAY,CAACj1B,EAAD,CAAvB;;AACA,UAAI,OAAOk0B,IAAP,KAAgB,WAApB,EAAiC;AAC/B,YAAI,CAACc,gBAAL,EAAuB;AACrBA,0BAAgB,GAAGd,IAAnB;AACD,SAFD,MAEO;AACL,cAAIA,IAAI,CAACI,OAAL,GAAeU,gBAAgB,CAACV,OAApC,EAA6C;AAC3CU,4BAAgB,GAAGd,IAAnB;AACD;AACF;AACF;AACF,KAXD;;AAaA,QAAI,CAACc,gBAAL,EAAuB;AACrB,UAAME,EAAE,GAAG,IAAIC,IAAJ,EAAX;AACAD,QAAE,CAACE,QAAH,CAAY,CAAZ,EAAe,CAAf,EAAkB,CAAlB,EAAqB,CAArB;AACA,aAAOF,EAAP;AACD,KAJD,MAIO;AACL,aAAOF,gBAAgB,CAACV,OAAxB;AACD;AACF,GA9BsD,CAgCvD;;;AACA,MAAIe,KAAK,GAAGhB,kDAAM,CAACxf,GAAD,EAAMid,UAAU,CAAChtB,IAAX,EAAN,EAAyB,IAAzB,CAAlB;;AACA,MAAIuwB,KAAK,CAACC,OAAN,EAAJ,EAAqB;AACnB,WAAOD,KAAK,CAACZ,MAAN,EAAP;AACD,GAFD,MAEO;AACLp1B,kDAAM,CAACC,KAAP,CAAa,kBAAkBuV,GAA/B;AACAxV,kDAAM,CAACC,KAAP,CAAa,sBAAsBwyB,UAAU,CAAChtB,IAAX,EAAnC;AACD,GAvCsD,CAyCvD;;;AACA,SAAO,IAAIqwB,IAAJ,EAAP;AACD,CA3CD;;AA6CA,IAAMI,cAAc,GAAG,SAAjBA,cAAiB,CAASC,iBAAT,EAA4BC,YAA5B,EAA0C;AAC/D,MAAID,iBAAiB,KAAK,IAA1B,EAAgC;AAC9B,YAAQA,iBAAiB,CAAC,CAAD,CAAzB;AACE,WAAK,GAAL;AACEC,oBAAY,CAACpE,GAAb,CAAiBmE,iBAAiB,CAAC,CAAD,CAAlC,EAAuC,SAAvC;AACA;;AACF,WAAK,GAAL;AACEC,oBAAY,CAACpE,GAAb,CAAiBmE,iBAAiB,CAAC,CAAD,CAAlC,EAAuC,SAAvC;AACA;;AACF,WAAK,GAAL;AACEC,oBAAY,CAACpE,GAAb,CAAiBmE,iBAAiB,CAAC,CAAD,CAAlC,EAAuC,OAAvC;AACA;;AACF,WAAK,GAAL;AACEC,oBAAY,CAACpE,GAAb,CAAiBmE,iBAAiB,CAAC,CAAD,CAAlC,EAAuC,MAAvC;AACA;;AACF,WAAK,GAAL;AACEC,oBAAY,CAACpE,GAAb,CAAiBmE,iBAAiB,CAAC,CAAD,CAAlC,EAAuC,OAAvC;AACA;AAfJ;AAiBD,GAnB8D,CAoB/D;;;AACA,SAAOC,YAAY,CAAChB,MAAb,EAAP;AACD,CAtBD;;AAwBA,IAAMiB,UAAU,GAAG,SAAbA,UAAa,CAASd,QAAT,EAAmB9C,UAAnB,EAA+Bjd,GAA/B,EAAoC8gB,SAApC,EAA+C;AAChEA,WAAS,GAAGA,SAAS,IAAI,KAAzB;AACA9gB,KAAG,GAAGA,GAAG,CAAC/P,IAAJ,EAAN,CAFgE,CAIhE;;AACA,MAAIuwB,KAAK,GAAGhB,kDAAM,CAACxf,GAAD,EAAMid,UAAU,CAAChtB,IAAX,EAAN,EAAyB,IAAzB,CAAlB;;AACA,MAAIuwB,KAAK,CAACC,OAAN,EAAJ,EAAqB;AACnB,QAAIK,SAAJ,EAAe;AACbN,WAAK,CAAChE,GAAN,CAAU,CAAV,EAAa,GAAb;AACD;;AACD,WAAOgE,KAAK,CAACZ,MAAN,EAAP;AACD;;AAED,SAAOc,cAAc,CAAC,oBAAoBR,IAApB,CAAyBlgB,GAAG,CAAC/P,IAAJ,EAAzB,CAAD,EAAuCuvB,kDAAM,CAACO,QAAD,CAA7C,CAArB;AACD,CAdD;;AAgBA,IAAIrC,OAAO,GAAG,CAAd;;AACA,IAAMqD,OAAO,GAAG,SAAVA,OAAU,CAASC,KAAT,EAAgB;AAC9B,MAAI,OAAOA,KAAP,KAAiB,WAArB,EAAkC;AAChCtD,WAAO,GAAGA,OAAO,GAAG,CAApB;AACA,WAAO,SAASA,OAAhB;AACD;;AACD,SAAOsD,KAAP;AACD,CAND,C,CAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAASC,QAAT,EAAmBC,OAAnB,EAA4B;AAC9C,MAAIC,EAAJ;;AAEA,MAAID,OAAO,CAACvZ,MAAR,CAAe,CAAf,EAAkB,CAAlB,MAAyB,GAA7B,EAAkC;AAChCwZ,MAAE,GAAGD,OAAO,CAACvZ,MAAR,CAAe,CAAf,EAAkBuZ,OAAO,CAAC/3B,MAA1B,CAAL;AACD,GAFD,MAEO;AACLg4B,MAAE,GAAGD,OAAL;AACD;;AAED,MAAM3rB,IAAI,GAAG4rB,EAAE,CAAC1xB,KAAH,CAAS,GAAT,CAAb;AAEA,MAAM2vB,IAAI,GAAG,EAAb,CAX8C,CAa9C;;AACAgC,aAAW,CAAC7rB,IAAD,EAAO6pB,IAAP,EAAa9B,IAAb,CAAX;;AAEA,OAAK,IAAIp0B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGqM,IAAI,CAACpM,MAAzB,EAAiCD,CAAC,EAAlC,EAAsC;AACpCqM,QAAI,CAACrM,CAAD,CAAJ,GAAUqM,IAAI,CAACrM,CAAD,CAAJ,CAAQ8G,IAAR,EAAV;AACD;;AAED,MAAIqxB,WAAW,GAAG,EAAlB;;AACA,UAAQ9rB,IAAI,CAACpM,MAAb;AACE,SAAK,CAAL;AACEi2B,UAAI,CAACl0B,EAAL,GAAU41B,OAAO,EAAjB;AACA1B,UAAI,CAACE,SAAL,GAAiB2B,QAAQ,CAACzB,OAA1B;AACA6B,iBAAW,GAAG9rB,IAAI,CAAC,CAAD,CAAlB;AACA;;AACF,SAAK,CAAL;AACE6pB,UAAI,CAACl0B,EAAL,GAAU41B,OAAO,EAAjB;AACA1B,UAAI,CAACE,SAAL,GAAiBO,YAAY,CAACj0B,SAAD,EAAYoxB,UAAZ,EAAwBznB,IAAI,CAAC,CAAD,CAA5B,CAA7B;AACA8rB,iBAAW,GAAG9rB,IAAI,CAAC,CAAD,CAAlB;AACA;;AACF,SAAK,CAAL;AACE6pB,UAAI,CAACl0B,EAAL,GAAU41B,OAAO,CAACvrB,IAAI,CAAC,CAAD,CAAL,CAAjB;AACA6pB,UAAI,CAACE,SAAL,GAAiBO,YAAY,CAACj0B,SAAD,EAAYoxB,UAAZ,EAAwBznB,IAAI,CAAC,CAAD,CAA5B,CAA7B;AACA8rB,iBAAW,GAAG9rB,IAAI,CAAC,CAAD,CAAlB;AACA;;AACF;AAhBF;;AAmBA,MAAI8rB,WAAJ,EAAiB;AACfjC,QAAI,CAACI,OAAL,GAAeoB,UAAU,CAACxB,IAAI,CAACE,SAAN,EAAiBtC,UAAjB,EAA6BqE,WAA7B,EAA0C9D,iBAA1C,CAAzB;AACA6B,QAAI,CAACC,aAAL,GAAqBE,kDAAM,CAAC8B,WAAD,EAAc,YAAd,EAA4B,IAA5B,CAAN,CAAwCb,OAAxC,EAArB;AACArB,kBAAc,CAACC,IAAD,EAAOpC,UAAP,EAAmBE,QAAnB,CAAd;AACD;;AAED,SAAOkC,IAAP;AACD,CA/CD;;AAiDA,IAAMkC,SAAS,GAAG,SAAZA,SAAY,CAASC,UAAT,EAAqBL,OAArB,EAA8B;AAC9C,MAAIC,EAAJ;;AACA,MAAID,OAAO,CAACvZ,MAAR,CAAe,CAAf,EAAkB,CAAlB,MAAyB,GAA7B,EAAkC;AAChCwZ,MAAE,GAAGD,OAAO,CAACvZ,MAAR,CAAe,CAAf,EAAkBuZ,OAAO,CAAC/3B,MAA1B,CAAL;AACD,GAFD,MAEO;AACLg4B,MAAE,GAAGD,OAAL;AACD;;AAED,MAAM3rB,IAAI,GAAG4rB,EAAE,CAAC1xB,KAAH,CAAS,GAAT,CAAb;AAEA,MAAM2vB,IAAI,GAAG,EAAb,CAV8C,CAY9C;;AACAgC,aAAW,CAAC7rB,IAAD,EAAO6pB,IAAP,EAAa9B,IAAb,CAAX;;AAEA,OAAK,IAAIp0B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGqM,IAAI,CAACpM,MAAzB,EAAiCD,CAAC,EAAlC,EAAsC;AACpCqM,QAAI,CAACrM,CAAD,CAAJ,GAAUqM,IAAI,CAACrM,CAAD,CAAJ,CAAQ8G,IAAR,EAAV;AACD;;AAED,UAAQuF,IAAI,CAACpM,MAAb;AACE,SAAK,CAAL;AACEi2B,UAAI,CAACl0B,EAAL,GAAU41B,OAAO,EAAjB;AACA1B,UAAI,CAACE,SAAL,GAAiB;AACfllB,YAAI,EAAE,aADS;AAEflP,UAAE,EAAEq2B;AAFW,OAAjB;AAIAnC,UAAI,CAACI,OAAL,GAAe;AACbjqB,YAAI,EAAEA,IAAI,CAAC,CAAD;AADG,OAAf;AAGA;;AACF,SAAK,CAAL;AACE6pB,UAAI,CAACl0B,EAAL,GAAU41B,OAAO,EAAjB;AACA1B,UAAI,CAACE,SAAL,GAAiB;AACfllB,YAAI,EAAE,cADS;AAEfonB,iBAAS,EAAEjsB,IAAI,CAAC,CAAD;AAFA,OAAjB;AAIA6pB,UAAI,CAACI,OAAL,GAAe;AACbjqB,YAAI,EAAEA,IAAI,CAAC,CAAD;AADG,OAAf;AAGA;;AACF,SAAK,CAAL;AACE6pB,UAAI,CAACl0B,EAAL,GAAU41B,OAAO,CAACvrB,IAAI,CAAC,CAAD,CAAL,CAAjB;AACA6pB,UAAI,CAACE,SAAL,GAAiB;AACfllB,YAAI,EAAE,cADS;AAEfonB,iBAAS,EAAEjsB,IAAI,CAAC,CAAD;AAFA,OAAjB;AAIA6pB,UAAI,CAACI,OAAL,GAAe;AACbjqB,YAAI,EAAEA,IAAI,CAAC,CAAD;AADG,OAAf;AAGA;;AACF;AA/BF;;AAkCA,SAAO6pB,IAAP;AACD,CAtDD;;AAwDA,IAAI1B,QAAJ;AACA,IAAIC,UAAJ;AACA,IAAIC,QAAQ,GAAG,EAAf;AACA,IAAM6D,MAAM,GAAG,EAAf;AACO,IAAMC,OAAO,GAAG,SAAVA,OAAU,CAASrjB,KAAT,EAAgB9I,IAAhB,EAAsB;AAC3C,MAAMosB,OAAO,GAAG;AACdC,WAAO,EAAEvE,cADK;AAEdjjB,QAAI,EAAEijB,cAFQ;AAGdwE,aAAS,EAAE,KAHG;AAIdxC,iBAAa,EAAE,KAJD;AAKdI,iBAAa,EAAE,IALD;AAMdqC,OAAG,EAAE;AAAEvsB,UAAI,EAAEA;AAAR,KANS;AAOd6pB,QAAI,EAAE/gB,KAPQ;AAQd/Q,WAAO,EAAE;AARK,GAAhB;AAUA,MAAMy0B,QAAQ,GAAGT,SAAS,CAAC3D,UAAD,EAAapoB,IAAb,CAA1B;AACAosB,SAAO,CAACG,GAAR,CAAYxC,SAAZ,GAAwByC,QAAQ,CAACzC,SAAjC;AACAqC,SAAO,CAACG,GAAR,CAAYtC,OAAZ,GAAsBuC,QAAQ,CAACvC,OAA/B;AACAmC,SAAO,CAACz2B,EAAR,GAAa62B,QAAQ,CAAC72B,EAAtB;AACAy2B,SAAO,CAACJ,UAAR,GAAqB5D,UAArB;AACAgE,SAAO,CAACK,MAAR,GAAiBD,QAAQ,CAACC,MAA1B;AACAL,SAAO,CAACM,IAAR,GAAeF,QAAQ,CAACE,IAAxB;AACAN,SAAO,CAACO,IAAR,GAAeH,QAAQ,CAACG,IAAxB;AACAP,SAAO,CAACQ,SAAR,GAAoBJ,QAAQ,CAACI,SAA7B;AACAR,SAAO,CAACS,KAAR,GAAgB5E,SAAhB;AAEAA,WAAS;AAET,MAAMhtB,GAAG,GAAGotB,QAAQ,CAACjzB,IAAT,CAAcg3B,OAAd,CAAZ;AAEAhE,YAAU,GAAGgE,OAAO,CAACz2B,EAArB,CA1B2C,CA2B3C;;AACAu2B,QAAM,CAACE,OAAO,CAACz2B,EAAT,CAAN,GAAqBsF,GAAG,GAAG,CAA3B;AACD,CA7BM;AA+BA,IAAM2vB,YAAY,GAAG,SAAfA,YAAe,CAASj1B,EAAT,EAAa;AACvC,MAAMsF,GAAG,GAAGixB,MAAM,CAACv2B,EAAD,CAAlB;AACA,SAAO0yB,QAAQ,CAACptB,GAAD,CAAf;AACD,CAHM;AAKA,IAAM6xB,UAAU,GAAG,SAAbA,UAAa,CAAShkB,KAAT,EAAgB9I,IAAhB,EAAsB;AAC9C,MAAM+sB,OAAO,GAAG;AACdV,WAAO,EAAEvE,cADK;AAEdjjB,QAAI,EAAEijB,cAFQ;AAGdkF,eAAW,EAAElkB,KAHC;AAId+gB,QAAI,EAAE/gB,KAJQ;AAKd/Q,WAAO,EAAE;AALK,GAAhB;AAOA,MAAMy0B,QAAQ,GAAGf,WAAW,CAACtD,QAAD,EAAWnoB,IAAX,CAA5B;AACA+sB,SAAO,CAAChD,SAAR,GAAoByC,QAAQ,CAACzC,SAA7B;AACAgD,SAAO,CAAC9C,OAAR,GAAkBuC,QAAQ,CAACvC,OAA3B;AACA8C,SAAO,CAACp3B,EAAR,GAAa62B,QAAQ,CAAC72B,EAAtB;AACAo3B,SAAO,CAACN,MAAR,GAAiBD,QAAQ,CAACC,MAA1B;AACAM,SAAO,CAACL,IAAR,GAAeF,QAAQ,CAACE,IAAxB;AACAK,SAAO,CAACJ,IAAR,GAAeH,QAAQ,CAACG,IAAxB;AACAI,SAAO,CAACH,SAAR,GAAoBJ,QAAQ,CAACI,SAA7B;AACAzE,UAAQ,GAAG4E,OAAX;AACAlF,OAAK,CAACzyB,IAAN,CAAW23B,OAAX;AACD,CAlBM;;AAoBP,IAAM1D,YAAY,GAAG,SAAfA,YAAe,GAAW;AAC9B,MAAM4D,WAAW,GAAG,SAAdA,WAAc,CAAShyB,GAAT,EAAc;AAChC,QAAM4uB,IAAI,GAAGxB,QAAQ,CAACptB,GAAD,CAArB;AACA,QAAI8uB,SAAS,GAAG,EAAhB;;AACA,YAAQ1B,QAAQ,CAACptB,GAAD,CAAR,CAAcsxB,GAAd,CAAkBxC,SAAlB,CAA4BllB,IAApC;AACE,WAAK,aAAL;AAAoB;AAClB,cAAM6mB,QAAQ,GAAGd,YAAY,CAACf,IAAI,CAACmC,UAAN,CAA7B;AACAnC,cAAI,CAACE,SAAL,GAAiB2B,QAAQ,CAACzB,OAA1B;AACA;AACD;;AACD,WAAK,cAAL;AACEF,iBAAS,GAAGO,YAAY,CAACj0B,SAAD,EAAYoxB,UAAZ,EAAwBY,QAAQ,CAACptB,GAAD,CAAR,CAAcsxB,GAAd,CAAkBxC,SAAlB,CAA4BkC,SAApD,CAAxB;;AACA,YAAIlC,SAAJ,EAAe;AACb1B,kBAAQ,CAACptB,GAAD,CAAR,CAAc8uB,SAAd,GAA0BA,SAA1B;AACD;;AACD;AAXJ;;AAcA,QAAI1B,QAAQ,CAACptB,GAAD,CAAR,CAAc8uB,SAAlB,EAA6B;AAC3B1B,cAAQ,CAACptB,GAAD,CAAR,CAAcgvB,OAAd,GAAwBoB,UAAU,CAChChD,QAAQ,CAACptB,GAAD,CAAR,CAAc8uB,SADkB,EAEhCtC,UAFgC,EAGhCY,QAAQ,CAACptB,GAAD,CAAR,CAAcsxB,GAAd,CAAkBtC,OAAlB,CAA0BjqB,IAHM,EAIhCgoB,iBAJgC,CAAlC;;AAMA,UAAIK,QAAQ,CAACptB,GAAD,CAAR,CAAcgvB,OAAlB,EAA2B;AACzB5B,gBAAQ,CAACptB,GAAD,CAAR,CAAcqxB,SAAd,GAA0B,IAA1B;AACAjE,gBAAQ,CAACptB,GAAD,CAAR,CAAc6uB,aAAd,GAA8BE,kDAAM,CAClC3B,QAAQ,CAACptB,GAAD,CAAR,CAAcsxB,GAAd,CAAkBtC,OAAlB,CAA0BjqB,IADQ,EAElC,YAFkC,EAGlC,IAHkC,CAAN,CAI5BirB,OAJ4B,EAA9B;AAKArB,sBAAc,CAACvB,QAAQ,CAACptB,GAAD,CAAT,EAAgBwsB,UAAhB,EAA4BE,QAA5B,CAAd;AACD;AACF;;AAED,WAAOU,QAAQ,CAACptB,GAAD,CAAR,CAAcqxB,SAArB;AACD,GApCD;;AAsCA,MAAIY,YAAY,GAAG,IAAnB;;AACA,OAAK,IAAIv5B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG00B,QAAQ,CAACz0B,MAA7B,EAAqCD,CAAC,EAAtC,EAA0C;AACxCs5B,eAAW,CAACt5B,CAAD,CAAX;AAEAu5B,gBAAY,GAAGA,YAAY,IAAI7E,QAAQ,CAAC10B,CAAD,CAAR,CAAY24B,SAA3C;AACD;;AACD,SAAOY,YAAP;AACD,CA9CD;AAgDA;;;;;;;AAKO,IAAM1a,OAAO,GAAG,SAAVA,OAAU,CAASF,GAAT,EAAc6a,QAAd,EAAwB;AAC7C,MAAI1a,OAAO,GAAG0a,QAAd;;AACA,MAAIrd,iDAAA,GAAsBvE,aAAtB,KAAwC,OAA5C,EAAqD;AACnDkH,WAAO,GAAG2a,2EAAW,CAACD,QAAD,CAArB;AACD;;AACD7a,KAAG,CAACpY,KAAJ,CAAU,GAAV,EAAepF,OAAf,CAAuB,UAASa,EAAT,EAAa;AAClC,QAAIy2B,OAAO,GAAGxB,YAAY,CAACj1B,EAAD,CAA1B;;AACA,QAAI,OAAOy2B,OAAP,KAAmB,WAAvB,EAAoC;AAClCiB,aAAO,CAAC13B,EAAD,EAAK,YAAM;AAChBiJ,cAAM,CAAC0uB,IAAP,CAAY7a,OAAZ,EAAqB,OAArB;AACD,OAFM,CAAP;AAGD;AACF,GAPD;AAQAgQ,UAAQ,CAACnQ,GAAD,EAAM,WAAN,CAAR;AACD,CAdM;AAgBP;;;;;;AAKO,IAAMmQ,QAAQ,GAAG,SAAXA,QAAW,CAASnQ,GAAT,EAAc9B,SAAd,EAAyB;AAC/C8B,KAAG,CAACpY,KAAJ,CAAU,GAAV,EAAepF,OAAf,CAAuB,UAASa,EAAT,EAAa;AAClC,QAAIy2B,OAAO,GAAGxB,YAAY,CAACj1B,EAAD,CAA1B;;AACA,QAAI,OAAOy2B,OAAP,KAAmB,WAAvB,EAAoC;AAClCA,aAAO,CAACr0B,OAAR,CAAgB3C,IAAhB,CAAqBob,SAArB;AACD;AACF,GALD;AAMD,CAPM;;AASP,IAAMmS,WAAW,GAAG,SAAdA,WAAc,CAAShtB,EAAT,EAAaqd,YAAb,EAA2Bua,YAA3B,EAAyC;AAC3D,MAAIzd,iDAAA,GAAsBvE,aAAtB,KAAwC,OAA5C,EAAqD;AACnD;AACD;;AACD,MAAI,OAAOyH,YAAP,KAAwB,WAA5B,EAAyC;AACvC;AACD;;AAED,MAAIwa,OAAO,GAAG,EAAd;;AACA,MAAI,OAAOD,YAAP,KAAwB,QAA5B,EAAsC;AACpC;AACAC,WAAO,GAAGD,YAAY,CAACrzB,KAAb,CAAmB,+BAAnB,CAAV;;AACA,SAAK,IAAIvG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG65B,OAAO,CAAC55B,MAA5B,EAAoCD,CAAC,EAArC,EAAyC;AACvC,UAAIiwB,IAAI,GAAG4J,OAAO,CAAC75B,CAAD,CAAP,CAAW8G,IAAX,EAAX;AACA;;AACA;;AACA,UAAImpB,IAAI,CAAC6J,MAAL,CAAY,CAAZ,MAAmB,GAAnB,IAA0B7J,IAAI,CAAC6J,MAAL,CAAY7J,IAAI,CAAChwB,MAAL,GAAc,CAA1B,MAAiC,GAA/D,EAAoE;AAClEgwB,YAAI,GAAGA,IAAI,CAACxR,MAAL,CAAY,CAAZ,EAAewR,IAAI,CAAChwB,MAAL,GAAc,CAA7B,CAAP;AACD;;AACD45B,aAAO,CAAC75B,CAAD,CAAP,GAAaiwB,IAAb;AACD;AACF;AAED;;;AACA,MAAI4J,OAAO,CAAC55B,MAAR,KAAmB,CAAvB,EAA0B;AACxB45B,WAAO,CAACp4B,IAAR,CAAaO,EAAb;AACD;;AAED,MAAIy2B,OAAO,GAAGxB,YAAY,CAACj1B,EAAD,CAA1B;;AACA,MAAI,OAAOy2B,OAAP,KAAmB,WAAvB,EAAoC;AAClCiB,WAAO,CAAC13B,EAAD,EAAK,YAAM;AAChBuF,oDAAK,CAACmY,OAAN,OAAAnY,8CAAK,GAAS8X,YAAT,4BAA0Bwa,OAA1B,GAAL;AACD,KAFM,CAAP;AAGD;AACF,CAlCD;AAoCA;;;;;;;AAKA,IAAMH,OAAO,GAAG,SAAVA,OAAU,CAAS13B,EAAT,EAAa+3B,gBAAb,EAA+B;AAC7Czd,MAAI,CAAC7a,IAAL,CAAU,YAAW;AACnB;AACA,QAAMkD,IAAI,GAAGa,QAAQ,CAACga,aAAT,iBAA+Bxd,EAA/B,SAAb;;AACA,QAAI2C,IAAI,KAAK,IAAb,EAAmB;AACjBA,UAAI,CAAC8a,gBAAL,CAAsB,OAAtB,EAA+B,YAAW;AACxCsa,wBAAgB;AACjB,OAFD;AAGD;AACF,GARD;AASAzd,MAAI,CAAC7a,IAAL,CAAU,YAAW;AACnB;AACA,QAAMkD,IAAI,GAAGa,QAAQ,CAACga,aAAT,iBAA+Bxd,EAA/B,cAAb;;AACA,QAAI2C,IAAI,KAAK,IAAb,EAAmB;AACjBA,UAAI,CAAC8a,gBAAL,CAAsB,OAAtB,EAA+B,YAAW;AACxCsa,wBAAgB;AACjB,OAFD;AAGD;AACF,GARD;AASD,CAnBD;AAqBA;;;;;;;;AAMO,IAAM3a,aAAa,GAAG,SAAhBA,aAAgB,CAAST,GAAT,EAAcU,YAAd,EAA4Bua,YAA5B,EAA0C;AACrEjb,KAAG,CAACpY,KAAJ,CAAU,GAAV,EAAepF,OAAf,CAAuB,UAASa,EAAT,EAAa;AAClCgtB,eAAW,CAAChtB,EAAD,EAAKqd,YAAL,EAAmBua,YAAnB,CAAX;AACD,GAFD;AAGA9K,UAAQ,CAACnQ,GAAD,EAAM,WAAN,CAAR;AACD,CALM;AAOP;;;;;AAIO,IAAMgB,aAAa,GAAG,SAAhBA,aAAgB,CAASrI,OAAT,EAAkB;AAC7CgF,MAAI,CAACnb,OAAL,CAAa,UAASye,GAAT,EAAc;AACzBA,OAAG,CAACtI,OAAD,CAAH;AACD,GAFD;AAGD,CAJM;AAMQ;AACbiF,gBAAc,EAAdA,cADa;AAEbxb,WAAS,EAAE;AAAA,WAAMob,iDAAA,GAAsBhC,KAA5B;AAAA,GAFE;AAGbpV,OAAK,EAALA,KAHa;AAIbgwB,eAAa,EAAbA,aAJa;AAKbG,eAAa,EAAbA,aALa;AAMbF,yBAAuB,EAAvBA,uBANa;AAObC,sBAAoB,EAApBA,oBAPa;AAQbN,eAAa,EAAbA,aARa;AASbC,eAAa,EAAbA,aATa;AAUbC,gBAAc,EAAdA,cAVa;AAWbC,gBAAc,EAAdA,cAXa;AAYbxK,UAAQ,EAARA,QAZa;AAabC,UAAQ,EAARA,QAba;AAcb+K,YAAU,EAAVA,UAda;AAebC,aAAW,EAAXA,WAfa;AAgBbC,UAAQ,EAARA,QAhBa;AAiBbgD,SAAO,EAAPA,OAjBa;AAkBbvB,cAAY,EAAZA,YAlBa;AAmBbkC,YAAU,EAAVA,UAnBa;AAoBbhE,aAAW,EAAXA,WApBa;AAqBbE,aAAW,EAAXA,WArBa;AAsBbjW,eAAa,EAAbA,aAtBa;AAuBbP,SAAO,EAAPA,OAvBa;AAwBbc,eAAa,EAAbA,aAxBa;AAyBb4X,gBAAc,EAAdA;AAzBa,CAAf;;AA4BA,SAASW,WAAT,CAAqB7rB,IAArB,EAA2B6pB,IAA3B,EAAiC9B,IAAjC,EAAuC;AACrC,MAAI4F,UAAU,GAAG,IAAjB;;AACA,SAAOA,UAAP,EAAmB;AACjBA,cAAU,GAAG,KAAb;AACA5F,QAAI,CAACjzB,OAAL,CAAa,UAAS84B,CAAT,EAAY;AACvB,UAAMrvB,OAAO,GAAG,UAAUqvB,CAAV,GAAc,OAA9B;AACA,UAAMC,KAAK,GAAG,IAAIC,MAAJ,CAAWvvB,OAAX,CAAd;;AACA,UAAIyB,IAAI,CAAC,CAAD,CAAJ,CAAQuS,KAAR,CAAcsb,KAAd,CAAJ,EAA0B;AACxBhE,YAAI,CAAC+D,CAAD,CAAJ,GAAU,IAAV;AACA5tB,YAAI,CAAC+tB,KAAL,CAAW,CAAX;AACAJ,kBAAU,GAAG,IAAb;AACD;AACF,KARD;AASD;AACF,C;;;;;;;;;;;;ACtnBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUA;AACA;AACA;AAEA7Y,oDAAM,CAACC,EAAP,GAAYiZ,gDAAZ;AAEA,IAAM55B,IAAI,GAAG;AACX2Z,gBAAc,EAAE,EADL;AAEXC,WAAS,EAAE,EAFA;AAGXC,QAAM,EAAE,CAHG;AAIXC,YAAU,EAAE,EAJD;AAKX+f,cAAY,EAAE,EALH;AAMX9f,aAAW,EAAE,EANF;AAOXC,sBAAoB,EAAE,EAPX;AAQXV,UAAQ,EAAE,EARC;AASXrC,YAAU,EAAE;AATD,CAAb;AAWO,IAAMuL,OAAO,GAAG,SAAVA,OAAU,CAASC,GAAT,EAAc;AACnC,MAAMjiB,IAAI,GAAG7B,MAAM,CAAC6B,IAAP,CAAYiiB,GAAZ,CAAb;AAEAjiB,MAAI,CAACE,OAAL,CAAa,UAASC,GAAT,EAAc;AACzBX,QAAI,CAACW,GAAD,CAAJ,GAAY8hB,GAAG,CAAC9hB,GAAD,CAAf;AACD,GAFD;AAGD,CANM;AAOP,IAAI0G,CAAJ;AACO,IAAM8b,IAAI,GAAG,SAAPA,IAAO,CAASvhB,IAAT,EAAeL,EAAf,EAAmB;AACrCmf,sDAAM,CAACC,EAAP,CAAUrc,KAAV;AACAoc,sDAAM,CAAC7U,KAAP,CAAajK,IAAb;AAEA,MAAMsC,IAAI,GAAGa,QAAQ,CAAC+0B,cAAT,CAAwBv4B,EAAxB,CAAb;AACA8F,GAAC,GAAGnD,IAAI,CAAC61B,aAAL,CAAmBC,WAAvB;;AAEA,MAAI,OAAO3yB,CAAP,KAAa,WAAjB,EAA8B;AAC5BA,KAAC,GAAG,IAAJ;AACD;;AAED,MAAI,OAAOrH,IAAI,CAACi6B,QAAZ,KAAyB,WAA7B,EAA0C;AACxC5yB,KAAC,GAAGrH,IAAI,CAACi6B,QAAT;AACD;;AAED,MAAMC,SAAS,GAAGxZ,oDAAM,CAACC,EAAP,CAAUoU,QAAV,EAAlB,CAfqC,CAiBrC;;AACA,MAAMztB,CAAC,GAAG4yB,SAAS,CAAC16B,MAAV,IAAoBQ,IAAI,CAAC4Z,SAAL,GAAiB5Z,IAAI,CAAC6Z,MAA1C,IAAoD,IAAI7Z,IAAI,CAAC8Z,UAAvE;AAEA5V,MAAI,CAAC0B,YAAL,CAAkB,QAAlB,EAA4B,MAA5B,EApBqC,CAqBrC;;AACA1B,MAAI,CAAC0B,YAAL,CAAkB,SAAlB,EAA6B,SAASyB,CAAT,GAAa,GAAb,GAAmBC,CAAhD;AACA,MAAMwY,GAAG,GAAGrd,iDAAM,iBAASlB,EAAT,SAAlB,CAvBqC,CAyBrC;;AACA,MAAM44B,SAAS,GAAGC,oDAAS,GACxBC,MADe,CACR,CACNzqB,8CAAG,CAACsqB,SAAD,EAAY,UAASz6B,CAAT,EAAY;AACzB,WAAOA,CAAC,CAACk2B,SAAT;AACD,GAFE,CADG,EAIN3K,8CAAG,CAACkP,SAAD,EAAY,UAASz6B,CAAT,EAAY;AACzB,WAAOA,CAAC,CAACo2B,OAAT;AACD,GAFE,CAJG,CADQ,EASfyE,UATe,CASJ,CAAC,CAAD,EAAIjzB,CAAC,GAAGrH,IAAI,CAAC+Z,WAAT,GAAuB/Z,IAAI,CAAC65B,YAAhC,CATI,CAAlB;AAWA,MAAIU,UAAU,GAAG,EAAjB;;AAEA,OAAK,IAAIh7B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG26B,SAAS,CAAC16B,MAA9B,EAAsCD,CAAC,EAAvC,EAA2C;AACzCg7B,cAAU,CAACv5B,IAAX,CAAgBk5B,SAAS,CAAC36B,CAAD,CAAT,CAAakR,IAA7B;AACD;;AAED,MAAM+pB,cAAc,GAAGD,UAAvB,CA3CqC,CA2CF;;AAEnCA,YAAU,GAAGE,WAAW,CAACF,UAAD,CAAxB;;AAEA,WAASG,WAAT,CAAqBxL,CAArB,EAAwByL,CAAxB,EAA2B;AACzB,QAAMC,KAAK,GAAG1L,CAAC,CAACyG,SAAhB;AACA,QAAMkF,KAAK,GAAGF,CAAC,CAAChF,SAAhB;AACA,QAAI1F,MAAM,GAAG,CAAb;;AACA,QAAI2K,KAAK,GAAGC,KAAZ,EAAmB;AACjB5K,YAAM,GAAG,CAAT;AACD,KAFD,MAEO,IAAI2K,KAAK,GAAGC,KAAZ,EAAmB;AACxB5K,YAAM,GAAG,CAAC,CAAV;AACD;;AACD,WAAOA,MAAP;AACD,GAzDoC,CA2DrC;AACA;;;AACAiK,WAAS,CAACnqB,IAAV,CAAe2qB,WAAf;AAEAI,UAAQ,CAACZ,SAAD,EAAY7yB,CAAZ,EAAeC,CAAf,CAAR;;AACA,MAAI,OAAOtH,IAAI,CAACi6B,QAAZ,KAAyB,WAA7B,EAA0C;AACxC/1B,QAAI,CAAC0B,YAAL,CAAkB,OAAlB,EAA2ByB,CAA3B;AACD;;AAEDyY,KAAG,CACAjc,MADH,CACU,MADV,EAEGjC,IAFH,CAEQ8e,oDAAM,CAACC,EAAP,CAAUmJ,QAAV,EAFR,EAGGpoB,IAHH,CAGQ,GAHR,EAGa2F,CAAC,GAAG,CAHjB,EAIG3F,IAJH,CAIQ,GAJR,EAIa1B,IAAI,CAAC2Z,cAJlB,EAKGjY,IALH,CAKQ,OALR,EAKiB,WALjB;;AAOA,WAASo5B,QAAT,CAAkBrH,KAAlB,EAAyBsH,SAAzB,EAAoCC,UAApC,EAAgD;AAC9C,QAAMphB,SAAS,GAAG5Z,IAAI,CAAC4Z,SAAvB;AACA,QAAMqhB,GAAG,GAAGrhB,SAAS,GAAG5Z,IAAI,CAAC6Z,MAA7B;AACA,QAAMC,UAAU,GAAG9Z,IAAI,CAAC8Z,UAAxB;AACA,QAAMC,WAAW,GAAG/Z,IAAI,CAAC+Z,WAAzB;AAEA,QAAMmhB,UAAU,GAAGC,sDAAW,GAC3Bd,MADgB,CACT,CAAC,CAAD,EAAIE,UAAU,CAAC/6B,MAAf,CADS,EAEhB47B,KAFgB,CAEV,CAAC,SAAD,EAAY,SAAZ,CAFU,EAGhBrZ,WAHgB,CAGJsZ,iDAHI,CAAnB;AAKAC,YAAQ,CAACvhB,WAAD,EAAcD,UAAd,EAA0BihB,SAA1B,EAAqCC,UAArC,CAAR;AACAO,aAAS,CAAC9H,KAAD,EAAQwH,GAAR,EAAanhB,UAAb,EAAyBC,WAAzB,EAAsCH,SAAtC,EAAiDshB,UAAjD,EAA6DH,SAA7D,EAAwEC,UAAxE,CAAT;AACAQ,cAAU,CAACP,GAAD,EAAMnhB,UAAN,EAAkBC,WAAlB,EAA+BH,SAA/B,EAA0CshB,UAA1C,CAAV;AACAO,aAAS,CAAC1hB,WAAD,EAAcD,UAAd,EAA0BihB,SAA1B,EAAqCC,UAArC,CAAT;AACD;;AAED,WAASO,SAAT,CAAmBG,QAAnB,EAA6BC,MAA7B,EAAqCC,SAArC,EAAgDC,UAAhD,EAA4DC,YAA5D,EAA0EC,aAA1E,EAAyF10B,CAAzF,EAA4F;AAC1F;AACAyY,OAAG,CACAjc,MADH,CACU,GADV,EAEGkc,SAFH,CAEa,MAFb,EAGGnU,IAHH,CAGQ8vB,QAHR,EAIGM,KAJH,GAKGn4B,MALH,CAKU,MALV,EAMGnC,IANH,CAMQ,GANR,EAMa,CANb,EAOGA,IAPH,CAOQ,GAPR,EAOa,UAASjC,CAAT,EAAYF,CAAZ,EAAe;AACxB;AACAA,OAAC,GAAGE,CAAC,CAACg5B,KAAN;AACA,aAAOl5B,CAAC,GAAGo8B,MAAJ,GAAaC,SAAb,GAAyB,CAAhC;AACD,KAXH,EAYGl6B,IAZH,CAYQ,OAZR,EAYiB,YAAW;AACxB,aAAO2F,CAAC,GAAGrH,IAAI,CAAC65B,YAAL,GAAoB,CAA/B;AACD,KAdH,EAeGn4B,IAfH,CAeQ,QAfR,EAekBi6B,MAflB,EAgBGj6B,IAhBH,CAgBQ,OAhBR,EAgBiB,UAASjC,CAAT,EAAY;AACzB,WAAK,IAAIF,EAAC,GAAG,CAAb,EAAgBA,EAAC,GAAGg7B,UAAU,CAAC/6B,MAA/B,EAAuCD,EAAC,EAAxC,EAA4C;AAC1C,YAAIE,CAAC,CAACgR,IAAF,KAAW8pB,UAAU,CAACh7B,EAAD,CAAzB,EAA8B;AAC5B,iBAAO,oBAAqBA,EAAC,GAAGS,IAAI,CAACia,mBAArC;AACD;AACF;;AACD,aAAO,kBAAP;AACD,KAvBH,EAF0F,CA2B1F;;AACA,QAAMgiB,UAAU,GAAGnc,GAAG,CACnBjc,MADgB,CACT,GADS,EAEhBkc,SAFgB,CAEN,MAFM,EAGhBnU,IAHgB,CAGX8vB,QAHW,EAIhBM,KAJgB,EAAnB;AAMAC,cAAU,CACPp4B,MADH,CACU,MADV,EAEGnC,IAFH,CAEQ,IAFR,EAEc,UAASjC,CAAT,EAAY;AACtB,aAAOA,CAAC,CAAC8B,EAAT;AACD,KAJH,EAKGG,IALH,CAKQ,IALR,EAKc,CALd,EAMGA,IANH,CAMQ,IANR,EAMc,CANd,EAOGA,IAPH,CAOQ,GAPR,EAOa,UAASjC,CAAT,EAAY;AACrB,UAAIA,CAAC,CAAC+4B,SAAN,EAAiB;AACf,eACE2B,SAAS,CAAC16B,CAAC,CAACk2B,SAAH,CAAT,GACAkG,UADA,GAEA,OAAO1B,SAAS,CAAC16B,CAAC,CAACo2B,OAAH,CAAT,GAAuBsE,SAAS,CAAC16B,CAAC,CAACk2B,SAAH,CAAvC,CAFA,GAGA,MAAMmG,YAJR;AAMD;;AACD,aAAO3B,SAAS,CAAC16B,CAAC,CAACk2B,SAAH,CAAT,GAAyBkG,UAAhC;AACD,KAjBH,EAkBGn6B,IAlBH,CAkBQ,GAlBR,EAkBa,UAASjC,CAAT,EAAYF,CAAZ,EAAe;AACxB;AACAA,OAAC,GAAGE,CAAC,CAACg5B,KAAN;AACA,aAAOl5B,CAAC,GAAGo8B,MAAJ,GAAaC,SAApB;AACD,KAtBH,EAuBGl6B,IAvBH,CAuBQ,OAvBR,EAuBiB,UAASjC,CAAT,EAAY;AACzB,UAAIA,CAAC,CAAC+4B,SAAN,EAAiB;AACf,eAAOsD,YAAP;AACD;;AACD,aAAO3B,SAAS,CAAC16B,CAAC,CAACq2B,aAAF,IAAmBr2B,CAAC,CAACo2B,OAAtB,CAAT,GAA0CsE,SAAS,CAAC16B,CAAC,CAACk2B,SAAH,CAA1D;AACD,KA5BH,EA6BGj0B,IA7BH,CA6BQ,QA7BR,EA6BkBo6B,YA7BlB,EA8BGp6B,IA9BH,CA8BQ,kBA9BR,EA8B4B,UAASjC,CAAT,EAAYF,CAAZ,EAAe;AACvC,aACE,CACE46B,SAAS,CAAC16B,CAAC,CAACk2B,SAAH,CAAT,GACAkG,UADA,GAEA,OAAO1B,SAAS,CAAC16B,CAAC,CAACo2B,OAAH,CAAT,GAAuBsE,SAAS,CAAC16B,CAAC,CAACk2B,SAAH,CAAvC,CAHF,EAIEuG,QAJF,KAKA,KALA,GAMA,CAAC38B,CAAC,GAAGo8B,MAAJ,GAAaC,SAAb,GAAyB,MAAME,YAAhC,EAA8CI,QAA9C,EANA,GAOA,IARF;AAUD,KAzCH,EA0CGx6B,IA1CH,CA0CQ,OA1CR,EA0CiB,UAASjC,CAAT,EAAY;AACzB,UAAM0I,GAAG,GAAG,MAAZ;AAEA,UAAI8Y,QAAQ,GAAG,EAAf;;AACA,UAAIxhB,CAAC,CAACkE,OAAF,CAAUnE,MAAV,GAAmB,CAAvB,EAA0B;AACxByhB,gBAAQ,GAAGxhB,CAAC,CAACkE,OAAF,CAAUgR,IAAV,CAAe,GAAf,CAAX;AACD;;AAED,UAAIwnB,MAAM,GAAG,CAAb;;AACA,WAAK,IAAI58B,GAAC,GAAG,CAAb,EAAgBA,GAAC,GAAGg7B,UAAU,CAAC/6B,MAA/B,EAAuCD,GAAC,EAAxC,EAA4C;AAC1C,YAAIE,CAAC,CAACgR,IAAF,KAAW8pB,UAAU,CAACh7B,GAAD,CAAzB,EAA8B;AAC5B48B,gBAAM,GAAG58B,GAAC,GAAGS,IAAI,CAACia,mBAAlB;AACD;AACF;;AAED,UAAImiB,SAAS,GAAG,EAAhB;;AACA,UAAI38B,CAAC,CAAC44B,MAAN,EAAc;AACZ,YAAI54B,CAAC,CAAC84B,IAAN,EAAY;AACV6D,mBAAS,IAAI,aAAb;AACD,SAFD,MAEO;AACLA,mBAAS,GAAG,SAAZ;AACD;AACF,OAND,MAMO,IAAI38B,CAAC,CAAC64B,IAAN,EAAY;AACjB,YAAI74B,CAAC,CAAC84B,IAAN,EAAY;AACV6D,mBAAS,GAAG,WAAZ;AACD,SAFD,MAEO;AACLA,mBAAS,GAAG,OAAZ;AACD;AACF,OANM,MAMA;AACL,YAAI38B,CAAC,CAAC84B,IAAN,EAAY;AACV6D,mBAAS,IAAI,OAAb;AACD;AACF;;AAED,UAAIA,SAAS,CAAC58B,MAAV,KAAqB,CAAzB,EAA4B;AAC1B48B,iBAAS,GAAG,OAAZ;AACD;;AAED,UAAI38B,CAAC,CAAC+4B,SAAN,EAAiB;AACf4D,iBAAS,GAAG,gBAAgBA,SAA5B;AACD;;AAEDA,eAAS,IAAID,MAAb;AAEAC,eAAS,IAAI,MAAMnb,QAAnB;AAEA,aAAO9Y,GAAG,GAAGi0B,SAAb;AACD,KAzFH,EAlC0F,CA6H1F;;AACAH,cAAU,CACPp4B,MADH,CACU,MADV,EAEGnC,IAFH,CAEQ,IAFR,EAEc,UAASjC,CAAT,EAAY;AACtB,aAAOA,CAAC,CAAC8B,EAAF,GAAO,OAAd;AACD,KAJH,EAKGK,IALH,CAKQ,UAASnC,CAAT,EAAY;AAChB,aAAOA,CAAC,CAACg2B,IAAT;AACD,KAPH,EAQG/zB,IARH,CAQQ,WARR,EAQqB1B,IAAI,CAACsZ,QAR1B,EASG5X,IATH,CASQ,GATR,EASa,UAASjC,CAAT,EAAY;AACrB,UAAI48B,MAAM,GAAGlC,SAAS,CAAC16B,CAAC,CAACk2B,SAAH,CAAtB;AACA,UAAI2G,IAAI,GAAGnC,SAAS,CAAC16B,CAAC,CAACq2B,aAAF,IAAmBr2B,CAAC,CAACo2B,OAAtB,CAApB;;AACA,UAAIp2B,CAAC,CAAC+4B,SAAN,EAAiB;AACf6D,cAAM,IAAI,OAAOlC,SAAS,CAAC16B,CAAC,CAACo2B,OAAH,CAAT,GAAuBsE,SAAS,CAAC16B,CAAC,CAACk2B,SAAH,CAAvC,IAAwD,MAAMmG,YAAxE;AACD;;AACD,UAAIr8B,CAAC,CAAC+4B,SAAN,EAAiB;AACf8D,YAAI,GAAGD,MAAM,GAAGP,YAAhB;AACD;;AACD,UAAMS,SAAS,GAAG,KAAKp6B,OAAL,GAAeQ,KAAjC,CATqB,CAWrB;;AACA,UAAI45B,SAAS,GAAGD,IAAI,GAAGD,MAAvB,EAA+B;AAC7B,YAAIC,IAAI,GAAGC,SAAP,GAAmB,MAAMv8B,IAAI,CAAC+Z,WAA9B,GAA4C1S,CAAhD,EAAmD;AACjD,iBAAOg1B,MAAM,GAAGR,UAAT,GAAsB,CAA7B;AACD,SAFD,MAEO;AACL,iBAAOS,IAAI,GAAGT,UAAP,GAAoB,CAA3B;AACD;AACF,OAND,MAMO;AACL,eAAO,CAACS,IAAI,GAAGD,MAAR,IAAkB,CAAlB,GAAsBA,MAAtB,GAA+BR,UAAtC;AACD;AACF,KA9BH,EA+BGn6B,IA/BH,CA+BQ,GA/BR,EA+Ba,UAASjC,CAAT,EAAYF,CAAZ,EAAe;AACxB;AACAA,OAAC,GAAGE,CAAC,CAACg5B,KAAN;AACA,aAAOl5B,CAAC,GAAGo8B,MAAJ,GAAa37B,IAAI,CAAC4Z,SAAL,GAAiB,CAA9B,IAAmC5Z,IAAI,CAACsZ,QAAL,GAAgB,CAAhB,GAAoB,CAAvD,IAA4DsiB,SAAnE;AACD,KAnCH,EAoCGl6B,IApCH,CAoCQ,aApCR,EAoCuBo6B,YApCvB,EAqCGp6B,IArCH,CAqCQ,OArCR,EAqCiB,UAASjC,CAAT,EAAY;AACzB,UAAM48B,MAAM,GAAGlC,SAAS,CAAC16B,CAAC,CAACk2B,SAAH,CAAxB;AACA,UAAI2G,IAAI,GAAGnC,SAAS,CAAC16B,CAAC,CAACo2B,OAAH,CAApB;;AACA,UAAIp2B,CAAC,CAAC+4B,SAAN,EAAiB;AACf8D,YAAI,GAAGD,MAAM,GAAGP,YAAhB;AACD;;AACD,UAAMS,SAAS,GAAG,KAAKp6B,OAAL,GAAeQ,KAAjC;AAEA,UAAIse,QAAQ,GAAG,EAAf;;AACA,UAAIxhB,CAAC,CAACkE,OAAF,CAAUnE,MAAV,GAAmB,CAAvB,EAA0B;AACxByhB,gBAAQ,GAAGxhB,CAAC,CAACkE,OAAF,CAAUgR,IAAV,CAAe,GAAf,CAAX;AACD;;AAED,UAAIwnB,MAAM,GAAG,CAAb;AACAl8B,aAAO,CAACoB,GAAR,CAAYrB,IAAZ;;AACA,WAAK,IAAIT,GAAC,GAAG,CAAb,EAAgBA,GAAC,GAAGg7B,UAAU,CAAC/6B,MAA/B,EAAuCD,GAAC,EAAxC,EAA4C;AAC1C,YAAIE,CAAC,CAACgR,IAAF,KAAW8pB,UAAU,CAACh7B,GAAD,CAAzB,EAA8B;AAC5B48B,gBAAM,GAAG58B,GAAC,GAAGS,IAAI,CAACia,mBAAlB;AACD;AACF;;AAED,UAAIuiB,QAAQ,GAAG,EAAf;;AACA,UAAI/8B,CAAC,CAAC44B,MAAN,EAAc;AACZ,YAAI54B,CAAC,CAAC84B,IAAN,EAAY;AACViE,kBAAQ,GAAG,mBAAmBL,MAA9B;AACD,SAFD,MAEO;AACLK,kBAAQ,GAAG,eAAeL,MAA1B;AACD;AACF;;AAED,UAAI18B,CAAC,CAAC64B,IAAN,EAAY;AACV,YAAI74B,CAAC,CAAC84B,IAAN,EAAY;AACViE,kBAAQ,GAAGA,QAAQ,GAAG,eAAX,GAA6BL,MAAxC;AACD,SAFD,MAEO;AACLK,kBAAQ,GAAGA,QAAQ,GAAG,WAAX,GAAyBL,MAApC;AACD;AACF,OAND,MAMO;AACL,YAAI18B,CAAC,CAAC84B,IAAN,EAAY;AACViE,kBAAQ,GAAGA,QAAQ,GAAG,WAAX,GAAyBL,MAApC;AACD;AACF;;AAED,UAAI18B,CAAC,CAAC+4B,SAAN,EAAiB;AACfgE,gBAAQ,IAAI,gBAAZ;AACD,OA5CwB,CA8CzB;;;AACA,UAAID,SAAS,GAAGD,IAAI,GAAGD,MAAvB,EAA+B;AAC7B,YAAIC,IAAI,GAAGC,SAAP,GAAmB,MAAMv8B,IAAI,CAAC+Z,WAA9B,GAA4C1S,CAAhD,EAAmD;AACjD,iBAAO4Z,QAAQ,GAAG,sCAAX,GAAoDkb,MAApD,GAA6D,GAA7D,GAAmEK,QAA1E;AACD,SAFD,MAEO;AACL,iBACEvb,QAAQ,GACR,uCADA,GAEAkb,MAFA,GAGA,GAHA,GAIAK,QAJA,GAKA,SALA,GAMAD,SAPF;AASD;AACF,OAdD,MAcO;AACL,eAAOtb,QAAQ,GAAG,oBAAX,GAAkCkb,MAAlC,GAA2C,GAA3C,GAAiDK,QAAjD,GAA4D,SAA5D,GAAwED,SAA/E;AACD;AACF,KArGH;AAsGD;;AAED,WAASjB,QAAT,CAAkBO,UAAlB,EAA8BD,SAA9B,EAAyCv0B,CAAzC,EAA4CC,CAA5C,EAA+C;AAC7C,QAAIm1B,KAAK,GAAGC,qDAAU,CAACvC,SAAD,CAAV,CACTwC,QADS,CACA,CAACr1B,CAAD,GAAKs0B,SAAL,GAAiB57B,IAAI,CAACga,oBADtB,EAET4iB,UAFS,CAEEC,qDAAU,CAACnc,oDAAM,CAACC,EAAP,CAAUwT,aAAV,MAA6Bn0B,IAAI,CAACka,UAAlC,IAAgD,UAAjD,CAFZ,CAAZ;AAIA4F,OAAG,CACAjc,MADH,CACU,GADV,EAEGnC,IAFH,CAEQ,OAFR,EAEiB,MAFjB,EAGGA,IAHH,CAGQ,WAHR,EAGqB,eAAem6B,UAAf,GAA4B,IAA5B,IAAoCv0B,CAAC,GAAG,EAAxC,IAA8C,GAHnE,EAIGw1B,IAJH,CAIQL,KAJR,EAKG1c,SALH,CAKa,MALb,EAMG3a,KANH,CAMS,aANT,EAMwB,QANxB,EAOG1D,IAPH,CAOQ,MAPR,EAOgB,MAPhB,EAQGA,IARH,CAQQ,QARR,EAQkB,MARlB,EASGA,IATH,CASQ,WATR,EASqB,EATrB,EAUGA,IAVH,CAUQ,IAVR,EAUc,KAVd;AAWD;;AAED,WAAS85B,UAAT,CAAoBG,MAApB,EAA4BC,SAA5B,EAAuC;AACrC,QAAMmB,aAAa,GAAG,EAAtB;AACA,QAAIC,OAAO,GAAG,CAAd;;AAEA,SAAK,IAAIz9B,GAAC,GAAG,CAAb,EAAgBA,GAAC,GAAGg7B,UAAU,CAAC/6B,MAA/B,EAAuCD,GAAC,EAAxC,EAA4C;AAC1Cw9B,mBAAa,CAACx9B,GAAD,CAAb,GAAmB,CAACg7B,UAAU,CAACh7B,GAAD,CAAX,EAAgB09B,QAAQ,CAAC1C,UAAU,CAACh7B,GAAD,CAAX,EAAgBi7B,cAAhB,CAAxB,CAAnB;AACD;;AAED1a,OAAG,CACAjc,MADH,CACU,GADV,EACe;AADf,KAEGkc,SAFH,CAEa,MAFb,EAGGnU,IAHH,CAGQmxB,aAHR,EAIGf,KAJH,GAKGn4B,MALH,CAKU,UAASpE,CAAT,EAAY;AAClB,UAAMoG,IAAI,GAAGpG,CAAC,CAAC,CAAD,CAAD,CAAKqG,KAAL,CAAW2Y,sDAAM,CAAC6D,cAAlB,CAAb;AACA,UAAMlb,EAAE,GAAG,EAAEvB,IAAI,CAACrG,MAAL,GAAc,CAAhB,IAAqB,CAAhC;AAEA,UAAMmG,QAAQ,GAAGZ,QAAQ,CAACC,eAAT,CAAyB,4BAAzB,EAAuD,MAAvD,CAAjB;AACAW,cAAQ,CAACC,YAAT,CAAsB,IAAtB,EAA4BwB,EAAE,GAAG,IAAjC;;AAEA,WAAK,IAAInB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGJ,IAAI,CAACrG,MAAzB,EAAiCyG,CAAC,EAAlC,EAAsC;AACpC,YAAMC,KAAK,GAAGnB,QAAQ,CAACC,eAAT,CAAyB,4BAAzB,EAAuD,OAAvD,CAAd;AACAkB,aAAK,CAACN,YAAN,CAAmB,oBAAnB,EAAyC,SAAzC;AACAM,aAAK,CAACN,YAAN,CAAmB,GAAnB,EAAwB,IAAxB;AACA,YAAIK,CAAC,GAAG,CAAR,EAAWC,KAAK,CAACN,YAAN,CAAmB,IAAnB,EAAyB,KAAzB;AACXM,aAAK,CAACE,WAAN,GAAoBP,IAAI,CAACI,CAAD,CAAxB;AACAN,gBAAQ,CAAC9D,WAAT,CAAqBqE,KAArB;AACD;;AACD,aAAOP,QAAP;AACD,KArBH,EAsBGjE,IAtBH,CAsBQ,GAtBR,EAsBa,EAtBb,EAuBGA,IAvBH,CAuBQ,GAvBR,EAuBa,UAASjC,CAAT,EAAYF,CAAZ,EAAe;AACxB,UAAIA,CAAC,GAAG,CAAR,EAAW;AACT,aAAK,IAAI0G,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG1G,CAApB,EAAuB0G,CAAC,EAAxB,EAA4B;AAC1B+2B,iBAAO,IAAID,aAAa,CAACx9B,CAAC,GAAG,CAAL,CAAb,CAAqB,CAArB,CAAX;AACA,iBAAQE,CAAC,CAAC,CAAD,CAAD,GAAOk8B,MAAR,GAAkB,CAAlB,GAAsBqB,OAAO,GAAGrB,MAAhC,GAAyCC,SAAhD;AACD;AACF,OALD,MAKO;AACL,eAAQn8B,CAAC,CAAC,CAAD,CAAD,GAAOk8B,MAAR,GAAkB,CAAlB,GAAsBC,SAA7B;AACD;AACF,KAhCH,EAiCGl6B,IAjCH,CAiCQ,OAjCR,EAiCiB,UAASjC,CAAT,EAAY;AACzB,WAAK,IAAIF,GAAC,GAAG,CAAb,EAAgBA,GAAC,GAAGg7B,UAAU,CAAC/6B,MAA/B,EAAuCD,GAAC,EAAxC,EAA4C;AAC1C,YAAIE,CAAC,CAAC,CAAD,CAAD,KAAS86B,UAAU,CAACh7B,GAAD,CAAvB,EAA4B;AAC1B,iBAAO,8BAA+BA,GAAC,GAAGS,IAAI,CAACia,mBAA/C;AACD;AACF;;AACD,aAAO,cAAP;AACD,KAxCH;AAyCD;;AAED,WAASwhB,SAAT,CAAmBI,UAAnB,EAA+BD,SAA/B,EAA0Cv0B,CAA1C,EAA6CC,CAA7C,EAAgD;AAC9C,QAAMgsB,WAAW,GAAGsG,gDAAO,CAACvF,cAAR,EAApB;;AACA,QAAIf,WAAW,KAAK,KAApB,EAA2B;AACzB;AACD;;AAED,QAAM4J,MAAM,GAAGpd,GAAG,CAACjc,MAAJ,CAAW,GAAX,EAAgBnC,IAAhB,CAAqB,OAArB,EAA8B,OAA9B,CAAf;AACA,QAAMy7B,KAAK,GAAG,IAAIzG,IAAJ,EAAd;AACA,QAAM0G,SAAS,GAAGF,MAAM,CAACr5B,MAAP,CAAc,MAAd,CAAlB;AAEAu5B,aAAS,CACN17B,IADH,CACQ,IADR,EACcy4B,SAAS,CAACgD,KAAD,CAAT,GAAmBtB,UADjC,EAEGn6B,IAFH,CAEQ,IAFR,EAEcy4B,SAAS,CAACgD,KAAD,CAAT,GAAmBtB,UAFjC,EAGGn6B,IAHH,CAGQ,IAHR,EAGc1B,IAAI,CAAC2Z,cAHnB,EAIGjY,IAJH,CAIQ,IAJR,EAIc4F,CAAC,GAAGtH,IAAI,CAAC2Z,cAJvB,EAKGjY,IALH,CAKQ,OALR,EAKiB,OALjB;;AAOA,QAAI4xB,WAAW,KAAK,EAApB,EAAwB;AACtB8J,eAAS,CAAC17B,IAAV,CAAe,OAAf,EAAwB4xB,WAAW,CAAC9tB,OAAZ,CAAoB,IAApB,EAA0B,GAA1B,CAAxB;AACD;AACF,GA3ZoC,CA6ZrC;;;AACA,WAASi1B,WAAT,CAAqB4C,GAArB,EAA0B;AACxB,QAAMC,IAAI,GAAG,EAAb;AACA,QAAMrN,MAAM,GAAG,EAAf;;AACA,SAAK,IAAI1wB,GAAC,GAAG,CAAR,EAAW6kB,CAAC,GAAGiZ,GAAG,CAAC79B,MAAxB,EAAgCD,GAAC,GAAG6kB,CAApC,EAAuC,EAAE7kB,GAAzC,EAA4C;AAC1C,UAAI,CAAC+9B,IAAI,CAAC7N,cAAL,CAAoB4N,GAAG,CAAC99B,GAAD,CAAvB,CAAL,EAAkC;AAAE;AAClC;AACA+9B,YAAI,CAACD,GAAG,CAAC99B,GAAD,CAAJ,CAAJ,GAAe,IAAf;AACA0wB,cAAM,CAACjvB,IAAP,CAAYq8B,GAAG,CAAC99B,GAAD,CAAf;AACD;AACF;;AACD,WAAO0wB,MAAP;AACD,GAzaoC,CA2arC;;;AACA,WAASsN,SAAT,CAAmBF,GAAnB,EAAwB;AACtB,QAAI99B,CAAC,GAAG89B,GAAG,CAAC79B,MAAZ,CADsB,CACF;;AACpB,QAAMg+B,GAAG,GAAG,EAAZ,CAFsB,CAEN;;AAChB,WAAOj+B,CAAP,EAAU;AACRi+B,SAAG,CAACH,GAAG,CAAC,EAAE99B,CAAH,CAAJ,CAAH,GAAgB,CAACi+B,GAAG,CAACH,GAAG,CAAC99B,CAAD,CAAJ,CAAH,IAAe,CAAhB,IAAqB,CAArC,CADQ,CACgC;AACzC;;AACD,WAAOi+B,GAAP;AACD,GAnboC,CAqbrC;;;AACA,WAASP,QAAT,CAAkBQ,IAAlB,EAAwBJ,GAAxB,EAA6B;AAC3B,WAAOE,SAAS,CAACF,GAAD,CAAT,CAAeI,IAAf,KAAwB,CAA/B;AACD;AACF,CAzbM;AA2bQ;AACbjb,SAAO,EAAPA,OADa;AAEbW,MAAI,EAAJA;AAFa,CAAf,E;;;;;;;;;;;AC9dA;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,khBAAkhB;AAC7hB,aAAa,uUAAuU;AACpV;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,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,6HAA6H,EAAE,uBAAuB,gCAAgC,QAAQ,gBAAgB,4FAA4F,2IAA2I,UAAU,gBAAgB,oBAAoB,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,0CAA0C,oBAAoB,gBAAgB,UAAU,iBAAiB,aAAa,EAAE,UAAU,eAAe,UAAU,8BAA8B,UAAU,GAAG,UAAU;AAC/1B,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;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,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,CAAC;AACD,iBAAiB,kBAAkB,gCAAgC,oBAAoB,0BAA0B,qBAAqB,8TAA8T,yDAAyD,2BAA2B,6BAA6B,qDAAqD,2BAA2B,kBAAkB,kBAAkB;AACzqB,aAAa,mBAAmB,6BAA6B,kBAAkB,gCAAgC,mBAAmB,gCAAgC,mBAAmB,8BAA8B,iBAAiB,kCAAkC,iBAAiB,qCAAqC,SAA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AAa,gCAAb;AACAhR,kDAAM,CAACgR,KAAP,CAAavJ,CAAC,CAAC23B,OAAf;AACD;AACF,CArCM;AAuCQ;AACbxd,SAAO,EAAPA,OADa;AAEbW,MAAI,EAAJA;AAFa,CAAf,E;;;;;;;;;;;ACjVA;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,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,aAAa,WAAW,kCAAkC,WAAW,kCAAkC,YAAY;AACnH,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;;;;;;;;;;;;;ACvrBA;AAAA,IAAMS,SAAS,GAAG,SAAZA,SAAY;AAAA;AAAA,CAAlB;;AAYeA,wEAAf,E;;;;;;;;;;;;ACZA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAGA;AAEA,IAAIoc,OAAO,GAAG,EAAd;AACA,IAAIx7B,IAAI,GAAG,KAAX;AAEO,IAAMmgC,UAAU,GAAG,SAAbA,UAAa,CAAAld,GAAG,EAAI;AAC/B7mB,gDAAM,CAACC,KAAP,CAAa,yBAAyB4mB,GAAtC;AACAuY,SAAO,GAAGvY,GAAV;AACD,CAHM;AAKA,IAAMmd,UAAU,GAA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CA;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,wOAAwO,mHAAmH;AACtW,aAAa,2FAA2F,2FAA2F;AACnM;AACA;AACA;;AAEA;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,cAAc,KAAK,6CAA6C,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,cAAc,uDAAuD,GAAG,uBAAuB,iCAAiC,0BAA0B,EAAE,UAAU,EAAE,UAAU,8BAA8B,gBAAgB,uDAAuD,aAAa,EAAE,UAAU;AAChlB,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;AACrD;AACA,wBAAwB,iBAAiB,W;AACzC;AACA;AACA;AACA;AACA;AACA,2BAA2B,iCAAiC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,U;AAC7B;AACA,yBAAyB,sB;AACzB;AACA,8B;AACA;AACA,yB;AACA;AACA,sB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,iBAAiB,kBAAkB,gCAAgC,oBAAoB,0BAA0B,oBAAoB;AACrI,aAAa,mBAAmB,6BAA6B,kBAAkB,gCAAgC,mBAAmB,gCAAgC,mBAAmB,8BAA8B,UAAU,+BAA+B,WAAW,kCAAkC,YAAY;AACrT,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;;;;;;;;;;;;;AC/oBA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAGA;AACA;AACA;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,CAAzB;;AAmBe2M,wEAAf,E;;;;;;;;;;;ACnBA;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,6yBAA6yB;AACxzB,aAAa,sfAAsf;AACngB;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;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,kEAAkE,EAAE,oCAAoC,2CAA2C,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,sFAAsF,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,SAAS,0DAA0D,UAAU,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;AACpsF,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,CAAC;AACD,iBAAiB,kBAAkB,gCAAgC,oBAAoB,uFAAuF,oBAAoB,kDAAkD,iCAAiC,sKAAsK,8MAA8M,qBAAqB,gCAAgC,+GAA+G;AAC7yB,aAAa,kBAAkB,gCAAgC,mBAAmB,kCAAkC,kBAAkB,kCAA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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;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;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,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,CAAC;AACD,iBAAiB,kBAAkB,gCAAgC,oBAAoB,yBAAyB,oBAAoB,2FAA2F,2BAA2B,kBAAkB,kBAAkB;AAC9R,aAAa,kBAAkB,8BAA8B,mBAAmB,gCAAgC,kBAAkB,gCAAgC,YAAY;AAC9K,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;;;;;;;;;;;;;AC9pBA;AAAA,IAAMS,SAAS,GAAG,SAAZA,SAAY,CAAArjB,OAAO;AAAA,wIAIZA,OAAO,CAACuyB,SAJI,iFAWXvyB,OAAO,CAACuyB,SAXG,6CAebvyB,OAAO,CA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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 { logger } 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 directives = [];\nlet currentConfig = assignWithDepth({}, defaultConfig);\n\nexport const updateCurrentConfig = (siteCfg, _directives) => {\n let cfg = assignWithDepth({}, siteCfg);\n\n // Apply directives\n let themeVariables = {};\n for (let i = 0; i < _directives.length; i++) {\n const d = _directives[i];\n sanitize(d);\n cfg = assignWithDepth(cfg, d);\n if (d.theme) {\n cfg.themeVariables = theme[cfg.theme].getThemeVariables(d.themeVariables);\n }\n }\n if (cfg.theme && theme[cfg.theme]) {\n let tVars = assignWithDepth({}, cfg.themeVariables);\n tVars = assignWithDepth(tVars, themeVariables);\n const variables = theme[cfg.theme].getThemeVariables(tVars);\n cfg.themeVariables = variables;\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 console.warn('Setting site config');\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};\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 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 logger.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\nexport const addDirective = directive => {\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 )\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 { logger as log } from '../logger'; // eslint-disable-line\nimport createLabel from './createLabel';\nimport { select } from 'd3';\nimport { getConfig } from '../config';\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')\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 (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 log.trace('Data ', node, JSON.stringify(node));\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\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 + 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\n .insert('g')\n .attr('class', 'note-cluster')\n .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\n .insert('g')\n .attr('class', node.classes)\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 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 (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 // center the rect around its coordinate\n rect\n .attr('class', 'outer')\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 innerRect\n .attr('class', 'inner')\n .attr('x', node.x - node.width / 2 - halfPadding)\n .attr('y', node.y - node.height / 2 - halfPadding + bbox.height - 1)\n .attr('width', node.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 - node.height / 2 - node.padding / 3 + (getConfig().flowchart.htmlLabels ? 5 : 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\nconst divider = (parent, node) => {\n // Add outer g element\n const shapeSvg = parent\n .insert('g')\n .attr('class', node.classes)\n .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\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');\n const el = clusterElems[node.id];\n\n el.attr('transform', 'translate(' + node.x + ', ' + node.y + ')');\n};\n","import { select } from 'd3';\nimport { logger } from '../logger'; // eslint-disable-line\n// let vertexNode;\n// if (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('' + label + '');\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 (getConfig().flowchart.htmlLabels) {\n // TODO: addHtmlLabel accepts a labelStyle. Do we possibly have that?\n vertexText = vertexText.replace(/\\\\n|\\n/g, '
');\n logger.info('vertexText' + vertexText);\n const node = {\n isNode,\n label: vertexText.replace(\n /fa[lrsb]?:fa-[\\w-]+/g,\n s => ``\n )\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 { logger } from '../logger'; // eslint-disable-line\nimport createLabel from './createLabel';\nimport { line, curveBasis, select } from 'd3';\nimport { getConfig } from '../config';\nimport utils from '../utils';\n// import { calcLabelPosition } from '../utils';\n\nlet edgeLabels = {};\n\nexport const clear = () => {\n edgeLabels = {};\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 (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\nexport const positionEdgeLabel = (edge, points) => {\n logger.info('Moving label', edge.id, edge.label, edgeLabels[edge.id]);\n if (edge.label) {\n const el = edgeLabels[edge.id];\n let x = edge.x;\n let y = edge.y;\n if (points) {\n // debugger;\n const pos = utils.calcLabelPosition(points);\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 // logger.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 logger.warn('intersection calc o:', outsidePoint, ' i:', insidePoint, node);\n const x = node.x;\n const y = node.y;\n\n const dx = Math.abs(x - insidePoint.x);\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 logger.warn('calc equals on edge');\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 - r : insidePoint.x - r,\n y: outsidePoint.y + q\n };\n logger.warn(`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 // q = (Q * r) / R;\n // q = 2;\n // r = (R * q) / Q;\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 = (Q * r) / R);\n logger.warn(`sides calc, Q ${Q}, q ${q}, R ${R}, r ${r}`, {\n x: insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x + dx - w,\n y: insidePoint.y < outsidePoint.y ? insidePoint.y + q : insidePoint.y - q\n });\n\n return {\n x: insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x + dx - w,\n y: insidePoint.y < outsidePoint.y ? insidePoint.y + q : insidePoint.y - q\n };\n }\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 if (head.intersect && tail.intersect) {\n points = points.slice(1, edge.points.length - 1);\n points.unshift(tail.intersect(points[0]));\n logger.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 logger.trace('edge', edge);\n logger.trace('to cluster', clusterDb[edge.toCluster]);\n points = [];\n let lastPointOutside;\n let isInside = false;\n edge.points.forEach(point => {\n const node = clusterDb[edge.toCluster].node;\n\n if (!outsideNode(node, point) && !isInside) {\n logger.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 logger.warn('no intersect', inter, points);\n }\n isInside = true;\n } else {\n if (!isInside) points.push(point);\n }\n lastPointOutside = point;\n });\n pointsHasChanged = true;\n }\n\n if (edge.fromCluster) {\n logger.trace('edge', edge);\n logger.warn('from cluster', clusterDb[edge.fromCluster]);\n const updatedPoints = [];\n let lastPointOutside;\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\n if (!outsideNode(node, point) && !isInside) {\n logger.warn('inside', edge.fromCluster, point, node);\n\n // First point inside the rect\n const insterection = intersection(node, lastPointOutside, point);\n // logger.trace('intersect', intersection(node, lastPointOutside, point));\n updatedPoints.unshift(insterection);\n // points.push(insterection);\n isInside = true;\n } else {\n // at the outside\n logger.trace('Outside point', point);\n if (!isInside) updatedPoints.unshift(point);\n }\n lastPointOutside = point;\n }\n points = updatedPoints;\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 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 // 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\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 logger.info('arrowTypeStart', edge.arrowTypeStart);\n logger.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\n if (pointsHasChanged) {\n return points;\n }\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} 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 { logger as log } from '../logger';\n\nconst recursiveRender = (_elem, graph, diagramtype, parentCluster) => {\n log.info('Graph in recursive render:', graphlib.json.write(graph), parentCluster);\n const dir = graph.graph().rankdir;\n log.warn('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', graph.nodes());\n }\n if (graph.edges().length > 0) {\n log.info('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', data);\n graph.setNode(parentCluster.id, data);\n graph.setParent(v, parentCluster.id, data);\n }\n log.info('(Insert) Node ' + v + ': ' + JSON.stringify(graph.node(v)));\n if (node && node.clusterNode) {\n // const children = graph.children(v);\n log.info('Cluster identified', v, node, graph.node(v));\n const newEl = recursiveRender(nodes, node.graph, diagramtype, graph.node(v));\n updateNodeBounds(node, newEl);\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', 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 graph.nodes().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 updatedPath = insertEdge(edgePaths, e, edge, clusterDb, diagramtype, graph);\n positionEdgeLabel(edge, updatedPath);\n });\n\n return elem;\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 before:', graphlib.json.write(graph));\n adjustClustersAndEdges(graph);\n log.warn('Graph after:', graphlib.json.write(graph));\n log.warn('Graph ever after:', graph.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 { logger } 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 logger.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 { logger as 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.debug(\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.info(\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.debug('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 log.debug('Setting parent', node, graph.parent(node));\n if (rootId !== 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.debug('Edge: ', edge, ' leaves cluster ', id);\n log.debug('Decendants of ', id, ': ', decendants[id]);\n clusterDb[id].externalConnections = true;\n }\n }\n });\n }\n });\n\n extractor(graph, 0);\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.trace('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(e));\n log.trace('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.trace('Fix', clusterDb, 'ids:', e.v, e.w, 'Translateing: ', clusterDb[e.v], clusterDb[e.w]);\n if (clusterDb[e.v] || clusterDb[e.w]) {\n log.warn('Fixing and trixing - removing', 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('Replacing with', v, w, e.name);\n graph.setEdge(v, w, edge, e.name);\n }\n });\n log.warn('Adjusted Graph', graphlib.json.write(graph));\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.debug('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.debug(\n 'Cluster without external connections, without a parent and with children',\n node,\n depth\n );\n\n const graphSettings = graph.graph();\n\n const clusterGraph = new graphlib.Graph({\n multigraph: true,\n compound: true\n })\n .setGraph({\n rankdir: graphSettings.rankdir === 'TB' ? 'LR' : 'TB',\n // 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.debug('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.debug('New graph after copy', graphlib.json.write(clusterGraph));\n log.debug('Old graph after copy', graphlib.json.write(graph));\n } else {\n log.debug(\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.debug('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.debug(' Now next leveö', node, data);\n if (data.clusterNode) {\n extractor(data.graph, depth + 1);\n }\n }\n};\n","import { select } from 'd3';\nimport { logger } 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';\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 logger.info('Question main (Circle)');\n\n const questionElem = insertPolygonShape(shapeSvg, s, s, points);\n updateNodeBounds(node, questionElem);\n node.intersect = function(point) {\n logger.warn('Intersect called');\n return intersect.polygon(node, points, 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 const hex = insertPolygonShape(shapeSvg, w, h, points);\n updateNodeBounds(node, hex);\n\n node.intersect = function(point) {\n return intersect.polygon(node, 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 updateNodeBounds(node, el);\n\n node.intersect = function(point) {\n return intersect.polygon(node, point);\n };\n\n return shapeSvg;\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 updateNodeBounds(node, el);\n\n node.intersect = function(point) {\n return intersect.polygon(node, 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 updateNodeBounds(node, el);\n\n node.intersect = function(point) {\n return intersect.polygon(node, 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 const el = insertPolygonShape(shapeSvg, w, h, points);\n updateNodeBounds(node, el);\n\n node.intersect = function(point) {\n return intersect.polygon(node, 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 const el = insertPolygonShape(shapeSvg, w, h, points);\n updateNodeBounds(node, el);\n\n node.intersect = function(point) {\n return intersect.polygon(node, point);\n };\n\n return shapeSvg;\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 const el = insertPolygonShape(shapeSvg, w, h, points);\n updateNodeBounds(node, el);\n\n node.intersect = function(point) {\n return intersect.polygon(node, point);\n };\n\n return shapeSvg;\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('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 logger.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('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};\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.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();\n logger.info('Label text', text2[0]);\n\n const text = label.node().appendChild(createLabel(text2[0], node.labelStyle, true, true));\n let bbox;\n if (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 logger.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 (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 // logger.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('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};\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('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 logger.info('Circle main');\n\n updateNodeBounds(node, circle);\n\n node.intersect = function(point) {\n logger.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 const el = insertPolygonShape(shapeSvg, w, h, points);\n updateNodeBounds(node, el);\n\n node.intersect = function(point) {\n return intersect.polygon(node, 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.id);\n const circle = shapeSvg.insert('circle', ':first-child');\n\n // center the circle around its coordinate\n circle\n .attr('class', 'state-start')\n .attr('r', 7)\n .attr('width', 14)\n .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.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 .style('stroke', 'black')\n .style('fill', 'black')\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.id);\n const innerCircle = shapeSvg.insert('circle', ':first-child');\n const circle = shapeSvg.insert('circle', ':first-child');\n\n circle\n .attr('class', 'state-start')\n .attr('r', 7)\n .attr('width', 14)\n .attr('height', 14);\n\n innerCircle\n .attr('class', 'state-end')\n .attr('r', 5)\n .attr('width', 10)\n .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.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 interfaceLabel = labelContainer\n .node()\n .appendChild(createLabel(node.classData.annotations[0], node.labelStyle, true, true));\n const interfaceBBox = interfaceLabel.getBBox();\n if (node.classData.annotations[0]) {\n maxHeight += interfaceBBox.height + rowPadding;\n maxWidth += interfaceBBox.width;\n }\n\n const classTitleLabel = labelContainer\n .node()\n .appendChild(createLabel(node.labelText, node.labelStyle, true, true));\n const classTitleBBox = classTitleLabel.getBBox();\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 lbl = labelContainer.node().appendChild(createLabel(str, node.labelStyle, true, true));\n const bbox = lbl.getBBox();\n if (bbox.width > maxWidth) {\n maxWidth = bbox.width;\n }\n maxHeight += bbox.height + rowPadding;\n classAttributes.push(lbl);\n });\n\n const classMethods = [];\n node.classData.methods.forEach(str => {\n const lbl = labelContainer.node().appendChild(createLabel(str, node.labelStyle, true, true));\n const bbox = lbl.getBBox();\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 select(interfaceLabel).attr(\n 'transform',\n 'translate( ' +\n -(maxWidth + node.padding - interfaceBBox.width / 2) / 2 +\n ', ' +\n (-1 * maxHeight) / 2 +\n ')'\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 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 (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 // logger.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 (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 // // logger.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 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 nodeElems[node.id] = shapes[node.shape](elem, node, dir);\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 logger.trace(\n 'Transforming node',\n node,\n 'translate(' + (node.x - node.width / 2 - 5) + ', ' + (node.y - node.height / 2 - 5) + ')'\n );\n const padding = 8;\n if (node.clusterNode) {\n el.attr(\n 'transform',\n 'translate(' +\n (node.x - node.width / 2 - padding) +\n ', ' +\n (node.y - node.height / 2 - padding) +\n ')'\n );\n } else {\n el.attr('transform', 'translate(' + node.x + ', ' + node.y + ')');\n }\n};\n","import { updateNodeBounds, labelHelper } from './util';\nimport { logger } 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 logger.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';\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.id);\n\n // Create the label and insert it after the rect\n const label = shapeSvg.insert('g').attr('class', 'label');\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 (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 * These are the default options which can be overridden with the initialization call like so:\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 /** theme , the CSS style sheet\n *\n * theme , the CSS style sheet\n *\n *| Parameter | Description |Type | Required | Values|\n *| --- | --- | --- | --- | --- |\n *| Theme |Built in Themes| String | Optional | Values include, default, forest, dark, neutral, null|\n *\n ***Notes:**To disable any pre-defined mermaid theme, use \"null\".\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 | Verdana, Arial, Trebuchet MS,|\n *\n ***notes: Default value is \\\\\"trebuchet ms\\\\\".\n */\n fontFamily: '\"trebuchet ms\", verdana, arial;',\n\n /**\n *| Parameter | Description |Type | Required | Values|\n *| --- | --- | --- | --- | --- |\n *| logLevel |This option decides the amount of logging to be used.| String | Required | 1, 2, 3, 4, 5 |\n *\n *\n ***Notes:**\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 *- **strict**: (**default**) tags in text are encoded, click functionality is disabeled\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:**\n ***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**: This matters if you are using base tag settings.\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 secure: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize'],\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:**The amount of padding around the diagram as a whole so that embedded diagrams have margins, expressed in pixels\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 Numbers |\n *\n ***Notes:\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 ***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 Numbers |\n *\n ***Notes: 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 ***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 *Default Vaue: Linear**\n */\n curve: 'linear',\n // Only used in new experimental rendering\n // repreesents the padding between the labels and the shape\n padding: 15\n },\n\n /**\n * The object containing configurations specific for sequence diagrams\n */\n sequence: {\n /**\n * widt of the activation rect\n * **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 Values |\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 Values|\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 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 *\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 *\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 *\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 ***Default value 35**.\n */\n messageMargin: 35,\n\n /**\n *| Parameter | Description |Type | Required | Values|\n *| --- | --- | --- | --- | --- |\n *| messageAlign | Multiline message alignment | Integer | Required | left, center, right |\n *\n ***Notes:**center **default**\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 *\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:**Depending on css styling this might need adjustment.\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 ***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 ***Default value false**.\n */\n rightAngles: false,\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 *| 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 *| Parameter | Description |Type | Required | Values|\n *| --- | --- | --- | --- | --- |\n *| actorFontFamily |This sets the font family of the actor's description | 3 | 4 | Open-Sans, Sans-Serif |\n *\n ***Notes:**\n ***Default value \"Open-Sans\", \"sans-serif\"**.\n */\n actorFontFamily: '\"Open-Sans\", \"sans-serif\"',\n /**\n * This sets the font weight of the actor's description\n * **Default value 400.\n */\n actorFontWeight: 400,\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 *| Parameter | Description |Type | Required | Values|\n *| --- | --- | --- | --- | --- |\n *| noteFontFamily| This sets the font family of actor-attached notes. | String | Required | trebuchet ms, verdana, arial |\n *\n ***Notes:**\n ***Default value: trebuchet ms **.\n */\n noteFontFamily: '\"trebuchet ms\", verdana, arial',\n /**\n * This sets the font weight of the note's description\n * **Default value 400.\n */\n noteFontWeight: 400,\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 *| 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 *| Parameter | Description |Type | Required | Values|\n *| --- | --- | --- | --- | --- |\n *| messageFontFamily | This sets the font family of actor messages. | String| Required | trebuchet ms\", verdana, aria |\n *\n ***Notes:**\n ***Default value:\"trebuchet ms**.\n */\n messageFontFamily: '\"trebuchet ms\", verdana, arial',\n /**\n * This sets the font weight of the message's description\n * **Default value 400.\n */\n messageFontWeight: 400,\n /**\n * This sets the auto-wrap state for the diagram\n * **Default value false.\n */\n wrap: false,\n /**\n * This sets the auto-wrap padding for the diagram (sides only)\n * **Default value 10.\n */\n wrapPadding: 10,\n /**\n * This sets the width of the loop-box (loop, alt, opt, par)\n * **Default value 50.\n */\n labelBoxWidth: 50,\n /**\n * This sets the height of the loop-box (loop, alt, opt, par)\n * **Default value 20.\n */\n labelBoxHeight: 20,\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 *| 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 *| fontFamily | font Family | string | required |\"Open-Sans\", \"sans-serif\" |\n *\n ***Notes:**\n *\n ***Default value '\"Open-Sans\", \"sans-serif\"'**.\n */\n fontFamily: '\"Open-Sans\", \"sans-serif\"',\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 ***Default value '%Y-%m-%d'**.\n */\n axisFormat: '%Y-%m-%d'\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 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 */\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 ***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:**default: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:**Depending on css styling this might need adjustment.\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:**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:**This will display arrows that start and begin at the same node as right angles, rather than a curves\n ***Default value false**.\n */\n rightAngles: false\n },\n class: {\n arrowMarkerAbsolute: false\n },\n git: {\n arrowMarkerAbsolute: false\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\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:**The amount of padding around the diagram as a whole so that embedded diagrams have margins, expressed in pixels\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 *'TB' for Top-Bottom, 'BT'for Bottom-Top, 'LR' for Left-Right, or 'RL' for Right to Left.\n * T = top, B = bottom, L = left, and R = right.\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:**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:**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:**The minimum internal padding betweentext in an entity box and the enclosing box borders, expressed in pixels.\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 ***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:**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 *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 ***Default value: true**.\n */\n useMaxWidth: true\n }\n};\n\nconfig.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\nconfig.git.arrowMarkerAbsolute = config.arrowMarkerAbsolute;\n\nexport default config;\n","import { select } from 'd3';\nimport { logger } 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\nconst config = configApi.getConfig();\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 logger.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 <
\n *\n * <script>\n * var config = {\n * theme:'default',\n * logLevel:'fatal',\n * securityLevel:'strict',\n * startOnLoad:true,\n * arrowMarkerAbsolute:false,\n *\n * er:{\n * diagramPadding:20,\n * layoutDirection:'TB',\n * minEntityWidth:100,\n * minEntityHeight:75,\n * entityPadding:15,\n * stroke:'gray',\n * fill:'honeydew',\n * fontSize:12,\n * useMaxWidth:true,\n * },\n * flowchart:{\n * diagramPadding:8,\n * htmlLabels:true,\n * curve:'linear',\n * },\n * sequence:{\n * diagramMarginX:50,\n * diagramMarginY:10,\n * actorMargin:50,\n * width:150,\n * height:65,\n * boxMargin:10,\n * boxTextMargin:5,\n * noteMargin:10,\n * messageMargin:35,\n * messageAlign:'center',\n * mirrorActors:true,\n * bottomMarginAdj:1,\n * useMaxWidth:true,\n * rightAngles:false,\n * showSequenceNumbers:false,\n * },\n * gantt:{\n * titleTopMargin:25,\n * barHeight:20,\n * barGap:4,\n * topPadding:50,\n * leftPadding:75,\n * gridLineStartPadding:35,\n * fontSize:11,\n * fontFamily:'\"Open-Sans\", \"sans-serif\"',\n * numberSectionStyles:4,\n * axisFormat:'%Y-%m-%d',\n * }\n * };\n * mermaid.initialize(config);\n * </script>\n *\n */\n","import classDiagram from './diagrams/class/styles';\nimport er from './diagrams/er/styles';\nimport flowchart from './diagrams/flowchart/styles';\nimport gantt from './diagrams/gantt/styles';\nimport git from './diagrams/git/styles';\nimport info from './diagrams/info/styles';\nimport pie from './diagrams/pie/styles';\nimport sequence from './diagrams/sequence/styles';\nimport stateDiagram from './diagrams/state/styles';\nimport journey from './diagrams/user-journey/styles';\n\nconst themes = {\n flowchart,\n 'flowchart-v2': flowchart,\n sequence,\n gantt,\n classDiagram,\n 'classDiagram-v2': classDiagram,\n class: classDiagram,\n stateDiagram,\n state: stateDiagram,\n git,\n info,\n pie,\n er,\n journey\n};\n\nexport const calcThemeVariables = (theme, userOverRides) => theme.calcColors(userOverRides);\n\nconst getStyles = (type, userStyles, options) => {\n return ` {\n font-family: ${options.fontFamily};\n font-size: ${options.fontSize};\n fill: ${options.textColor}\n }\n\n /* Classes common for multiple diagrams */\n\n .error-icon {\n fill: ${options.errorBkgColor};\n }\n .error-text {\n fill: ${options.errorTextColor};\n stroke: ${options.errorTextColor};\n }\n\n .edge-thickness-normal {\n stroke-width: 2px;\n }\n .edge-thickness-thick {\n stroke-width: 3.5px\n }\n .edge-pattern-solid {\n stroke-dasharray: 0;\n }\n\n .edge-pattern-dashed{\n stroke-dasharray: 3;\n }\n .edge-pattern-dotted {\n stroke-dasharray: 2;\n }\n\n .marker {\n fill: ${options.lineColor};\n }\n .marker.cross {\n stroke: ${options.lineColor};\n }\n\n svg {\n font-family: ${options.fontFamily};\n font-size: ${options.fontSize};\n }\n\n ${themes[type](options)}\n\n ${userStyles}\n\n ${type} { fill: apa;}\n`;\n};\n\nexport default getStyles;\n","import { getThemeVariables as baseThemeVariables } from './theme-base';\nimport { getThemeVariables as darkThemeVariables } from './theme-dark';\nimport { getThemeVariables as defaultThemeVariables } from './theme-default';\nimport { getThemeVariables as forestThemeVariables } from './theme-forest';\nimport { getThemeVariables as neutralThemeVariables } from './theme-neutral';\n\nexport default {\n base: {\n getThemeVariables: baseThemeVariables\n },\n dark: {\n getThemeVariables: darkThemeVariables\n },\n default: {\n getThemeVariables: defaultThemeVariables\n },\n forest: {\n getThemeVariables: forestThemeVariables\n },\n neutral: {\n getThemeVariables: neutralThemeVariables\n }\n};\n","import { darken, lighten, adjust, invert } from 'khroma';\nimport { mkBorder } from './theme-helpers';\nclass Theme {\n constructor() {\n /** # Base variables */\n /** * background - used to know what the background color is of the diagram. This is used for deducing colors for istance line color. Defaulr value is #f4f4f4. */\n this.background = '#f4f4f4';\n this.darkMode = false;\n\n // this.background = '#0c0c0c';\n // this.darkMode = true;\n this.primaryColor = '#fff4dd';\n // this.background = '#0c0c0c';\n // this.primaryColor = '#1f1f00';\n\n this.noteBkgColor = '#fff5ad';\n this.noteTextColor = '#333';\n\n // dark\n\n // this.primaryColor = '#034694';\n // this.primaryColor = '#f2ee7e';\n // this.primaryColor = '#9f33be';\n // this.primaryColor = '#f0fff0';\n // this.primaryColor = '#fa255e';\n // this.primaryColor = '#ECECFF';\n\n // this.secondaryColor = '#c39ea0';\n // this.tertiaryColor = '#f8e5e5';\n\n // this.secondaryColor = '#dfdfde';\n // this.tertiaryColor = '#CCCCFF';\n\n this.fontFamily = '\"trebuchet ms\", verdana, arial';\n this.fontSize = '16px';\n // this.updateColors();\n }\n updateColors() {\n // The || is to make sure that if the variable has been defiend by a user override that value is to be used\n\n /* Main */\n this.primaryTextColor = this.primaryTextColor || (this.darkMode ? '#ddd' : '#333'); // invert(this.primaryColor);\n this.secondaryColor = this.secondaryColor || adjust(this.primaryColor, { h: -120 });\n this.tertiaryColor = this.tertiaryColor || adjust(this.primaryColor, { h: 180, l: 5 });\n\n this.primaryBorderColor = this.primaryBorderColor || mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor =\n this.secondaryBorderColor || mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor =\n this.tertiaryBorderColor || mkBorder(this.tertiaryColor, this.darkMode);\n this.noteBorderColor = this.noteBorderColor || mkBorder(this.noteBkgColor, this.darkMode);\n\n this.secondaryTextColor = this.secondaryTextColor || invert(this.secondaryColor);\n this.tertiaryTextColor = this.tertiaryTextColor || invert(this.tertiaryColor);\n this.lineColor = this.lineColor || invert(this.background);\n this.textColor = this.textColor || this.primaryTextColor;\n\n /* Flowchart variables */\n this.nodeBkg = this.nodeBkg || this.primaryColor;\n this.mainBkg = this.mainBkg || this.primaryColor;\n this.nodeBorder = this.nodeBorder || this.primaryBorderColor;\n this.clusterBkg = this.clusterBkg || this.tertiaryColor;\n this.clusterBorder = this.clusterBorder || this.tertiaryBorderColor;\n this.defaultLinkColor = this.defaultLinkColor || this.lineColor;\n this.titleColor = this.titleColor || this.tertiaryTextColor;\n this.edgeLabelBackground =\n this.edgeLabelBackground || this.darkMode\n ? darken(this.secondaryColor, 30)\n : this.secondaryColor;\n this.nodeTextColor = this.nodeTextColor || this.primaryTextColor;\n /* Sequence Diagram variables */\n\n // this.actorBorder = lighten(this.border1, 0.5);\n this.actorBorder = this.actorBorder || this.primaryBorderColor;\n this.actorBkg = this.actorBkg || this.mainBkg;\n this.actorTextColor = this.actorTextColor || this.primaryTextColor;\n this.actorLineColor = this.actorLineColor || 'grey';\n this.labelBoxBkgColor = this.labelBoxBkgColor || this.actorBkg;\n this.signalColor = this.signalColor || this.textColor;\n this.signalTextColor = this.signalTextColor || this.textColor;\n this.labelBoxBorderColor = this.labelBoxBorderColor || this.actorBorder;\n this.labelTextColor = this.labelTextColor || this.actorTextColor;\n this.loopTextColor = this.loopTextColor || this.actorTextColor;\n this.activationBorderColor = this.activationBorderColor || darken(this.secondaryColor, 10);\n this.activationBkgColor = this.activationBkgColor || this.secondaryColor;\n this.sequenceNumberColor = this.sequenceNumberColor || invert(this.lineColor);\n\n /* Gantt chart variables */\n\n this.sectionBkgColor = this.sectionBkgColor || this.tertiaryColor;\n this.altSectionBkgColor = this.altSectionBkgColor || 'white';\n this.sectionBkgColor = this.sectionBkgColor || this.secondaryColor;\n this.sectionBkgColor2 = this.sectionBkgColor2 || this.primaryColor;\n this.taskBorderColor = this.taskBorderColor || this.primaryBorderColor;\n this.taskBkgColor = this.taskBkgColor || this.primaryColor;\n this.activeTaskBorderColor = this.activeTaskBorderColor || this.primaryColor;\n this.activeTaskBkgColor = this.activeTaskBkgColor || lighten(this.primaryColor, 23);\n this.gridColor = this.gridColor || 'lightgrey';\n this.doneTaskBkgColor = this.doneTaskBkgColor || 'lightgrey';\n this.doneTaskBorderColor = this.doneTaskBorderColor || 'grey';\n this.critBorderColor = this.critBorderColor || '#ff8888';\n this.critBkgColor = this.critBkgColor || 'red';\n this.todayLineColor = this.todayLineColor || 'red';\n this.taskTextColor = this.taskTextColor || this.textColor;\n this.taskTextOutsideColor = this.taskTextOutsideColor || this.textColor;\n this.taskTextLightColor = this.taskTextLightColor || this.textColor;\n this.taskTextColor = this.taskTextColor || this.primaryTextColor;\n this.taskTextDarkColor = this.taskTextDarkColor || this.textColor;\n this.taskTextClickableColor = this.taskTextClickableColor || '#003163';\n\n /* state colors */\n this.labelColor = this.labelColor || this.primaryTextColor;\n this.altBackground = this.altBackground || this.tertiaryColor;\n this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;\n this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;\n\n /* class */\n this.classText = this.classText || this.textColor;\n\n /* user-journey */\n this.fillType0 = this.fillType0 || this.primaryColor;\n this.fillType1 = this.fillType1 || this.secondaryColor;\n this.fillType2 = this.fillType2 || adjust(this.primaryColor, { h: 64 });\n this.fillType3 = this.fillType3 || adjust(this.secondaryColor, { h: 64 });\n this.fillType4 = this.fillType4 || adjust(this.primaryColor, { h: -64 });\n this.fillType5 = this.fillType5 || adjust(this.secondaryColor, { h: -64 });\n this.fillType6 = this.fillType6 || adjust(this.primaryColor, { h: 128 });\n this.fillType7 = this.fillType7 || adjust(this.secondaryColor, { h: 128 });\n }\n calculate(overrides) {\n if (typeof overrides !== 'object') {\n // Calculate colors form base colors\n this.updateColors();\n return;\n }\n\n const keys = Object.keys(overrides);\n\n // Copy values from overrides, this is mainly for base colors\n keys.forEach(k => {\n this[k] = overrides[k];\n });\n\n // Calculate colors form base colors\n this.updateColors();\n // Copy values from overrides again in case of an override of derived value\n keys.forEach(k => {\n this[k] = overrides[k];\n });\n }\n}\n\nexport const getThemeVariables = userOverrides => {\n const theme = new Theme();\n theme.calculate(userOverrides);\n return theme;\n};\n","import { invert, lighten, darken, rgba, adjust } from 'khroma';\nimport { mkBorder } from './theme-helpers';\nclass Theme {\n constructor() {\n this.background = '#333';\n this.primaryColor = '#1f2020';\n this.secondaryColor = lighten(this.primaryColor, 16);\n\n this.tertiaryColor = adjust(this.primaryColor, { h: -160 });\n this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n this.primaryTextColor = invert(this.primaryColor);\n this.secondaryTextColor = invert(this.secondaryColor);\n this.tertiaryTextColor = invert(this.tertiaryColor);\n this.lineColor = invert(this.background);\n this.textColor = invert(this.background);\n\n this.mainBkg = '#1f2020';\n this.secondBkg = 'calculated';\n this.mainContrastColor = 'lightgrey';\n this.darkTextColor = lighten(invert('#323D47'), 10);\n this.lineColor = 'calculated';\n this.border1 = '#81B1DB';\n this.border2 = rgba(255, 255, 255, 0.25);\n this.arrowheadColor = 'calculated';\n this.fontFamily = '\"trebuchet ms\", verdana, arial';\n this.fontSize = '16px';\n this.labelBackground = '#181818';\n this.textColor = '#ccc';\n /* Flowchart variables */\n\n this.nodeBkg = 'calculated';\n this.nodeBorder = 'calculated';\n this.clusterBkg = 'calculated';\n this.clusterBorder = 'calculated';\n this.defaultLinkColor = 'calculated';\n this.titleColor = '#F9FFFE';\n this.edgeLabelBackground = 'calculated';\n\n /* Sequence Diagram variables */\n\n this.actorBorder = 'calculated';\n this.actorBkg = 'calculated';\n this.actorTextColor = 'calculated';\n this.actorLineColor = 'calculated';\n this.signalColor = 'calculated';\n this.signalTextColor = 'calculated';\n this.labelBoxBkgColor = 'calculated';\n this.labelBoxBorderColor = 'calculated';\n this.labelTextColor = 'calculated';\n this.loopTextColor = 'calculated';\n this.noteBorderColor = 'calculated';\n this.noteBkgColor = '#fff5ad';\n this.noteTextColor = 'calculated';\n this.activationBorderColor = 'calculated';\n this.activationBkgColor = 'calculated';\n this.sequenceNumberColor = 'black';\n\n /* Gantt chart variables */\n\n this.sectionBkgColor = darken('#EAE8D9', 30);\n this.altSectionBkgColor = 'calculated';\n this.sectionBkgColor2 = '#EAE8D9';\n this.taskBorderColor = rgba(255, 255, 255, 70);\n this.taskBkgColor = 'calculated';\n this.taskTextColor = 'calculated';\n this.taskTextLightColor = 'calculated';\n this.taskTextOutsideColor = 'calculated';\n this.taskTextClickableColor = '#003163';\n this.activeTaskBorderColor = rgba(255, 255, 255, 50);\n this.activeTaskBkgColor = '#81B1DB';\n this.gridColor = 'calculated';\n this.doneTaskBkgColor = 'calculated';\n this.doneTaskBorderColor = 'grey';\n this.critBorderColor = '#E83737';\n this.critBkgColor = '#E83737';\n this.taskTextDarkColor = 'calculated';\n this.todayLineColor = '#DB5757';\n\n /* state colors */\n this.labelColor = 'calculated';\n\n this.errorBkgColor = '#a44141';\n this.errorTextColor = '#ddd';\n }\n updateColors() {\n this.secondBkg = lighten(this.mainBkg, 16);\n this.lineColor = this.mainContrastColor;\n this.arrowheadColor = this.mainContrastColor;\n /* Flowchart variables */\n\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.edgeLabelBackground = lighten(this.labelBackground, 25);\n\n /* Sequence Diagram variables */\n\n this.actorBorder = this.border1;\n this.actorBkg = this.mainBkg;\n this.actorTextColor = this.mainContrastColor;\n this.actorLineColor = this.mainContrastColor;\n this.signalColor = this.mainContrastColor;\n this.signalTextColor = this.mainContrastColor;\n this.labelBoxBkgColor = this.actorBkg;\n this.labelBoxBorderColor = this.actorBorder;\n this.labelTextColor = this.mainContrastColor;\n this.loopTextColor = this.mainContrastColor;\n this.noteBorderColor = this.border2;\n this.noteTextColor = this.mainBkg;\n this.activationBorderColor = this.border1;\n this.activationBkgColor = this.secondBkg;\n\n /* Gantt chart variables */\n\n this.altSectionBkgColor = this.background;\n this.taskBkgColor = lighten(this.mainBkg, 23);\n this.taskTextColor = this.darkTextColor;\n this.taskTextLightColor = this.mainContrastColor;\n this.taskTextOutsideColor = this.taskTextLightColor;\n this.gridColor = this.mainContrastColor;\n this.doneTaskBkgColor = this.mainContrastColor;\n this.taskTextDarkColor = this.darkTextColor;\n\n /* state colors */\n this.labelColor = this.textColor;\n this.altBackground = lighten(this.background, 20);\n\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust(this.primaryColor, { h: 64 });\n this.fillType3 = adjust(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust(this.primaryColor, { h: -64 });\n this.fillType5 = adjust(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust(this.primaryColor, { h: 128 });\n this.fillType7 = adjust(this.secondaryColor, { h: 128 });\n /* class */\n this.classText = this.primaryTextColor;\n }\n calculate(overrides) {\n if (typeof overrides !== 'object') {\n // Calculate colors form base colors\n this.updateColors();\n return;\n }\n\n const keys = Object.keys(overrides);\n\n // Copy values from overrides, this is mainly for base colors\n keys.forEach(k => {\n this[k] = overrides[k];\n });\n\n // Calculate colors form base colors\n this.updateColors();\n // Copy values from overrides again in case of an override of derived value\n keys.forEach(k => {\n this[k] = overrides[k];\n });\n }\n}\n\nexport const getThemeVariables = userOverrides => {\n const theme = new Theme();\n theme.calculate(userOverrides);\n console.info('Theme(dark)', { userOverrides, theme });\n return theme;\n};\n","import { invert, lighten, rgba, adjust } from 'khroma';\nimport { mkBorder } from './theme-helpers';\n\nclass Theme {\n constructor() {\n /* Base variables */\n this.background = '#f4f4f4';\n this.primaryColor = '#ECECFF';\n\n this.secondaryColor = adjust(this.primaryColor, { h: 120 });\n this.secondaryColor = '#ffffde';\n this.tertiaryColor = adjust(this.primaryColor, { h: -160 });\n this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n // this.noteBorderColor = mkBorder(this.noteBkgColor, this.darkMode);\n\n this.primaryTextColor = invert(this.primaryColor);\n this.secondaryTextColor = invert(this.secondaryColor);\n this.tertiaryTextColor = invert(this.tertiaryColor);\n this.lineColor = invert(this.background);\n this.textColor = invert(this.background);\n\n this.background = 'white';\n this.mainBkg = '#ECECFF';\n this.secondBkg = '#ffffde';\n this.lineColor = '#333333';\n this.border1 = '#9370DB';\n this.border2 = '#aaaa33';\n this.arrowheadColor = '#333333';\n this.fontFamily = '\"trebuchet ms\", verdana, arial';\n this.fontSize = '16px';\n this.labelBackground = '#e8e8e8';\n this.textColor = '#333';\n\n /* Flowchart variables */\n\n this.nodeBkg = 'calculated';\n this.nodeBorder = 'calculated';\n this.clusterBkg = 'calculated';\n this.clusterBorder = 'calculated';\n this.defaultLinkColor = 'calculated';\n this.titleColor = 'calculated';\n this.edgeLabelBackground = 'calculated';\n\n /* Sequence Diagram variables */\n\n this.actorBorder = 'calculated';\n this.actorBkg = 'calculated';\n this.actorTextColor = 'black';\n this.actorLineColor = 'grey';\n this.signalColor = 'calculated';\n this.signalTextColor = 'calculated';\n this.labelBoxBkgColor = 'calculated';\n this.labelBoxBorderColor = 'calculated';\n this.labelTextColor = 'calculated';\n this.loopTextColor = 'calculated';\n this.noteBorderColor = 'calculated';\n this.noteBkgColor = '#fff5ad';\n this.noteTextColor = 'calculated';\n this.activationBorderColor = '#666';\n this.activationBkgColor = '#f4f4f4';\n this.sequenceNumberColor = 'white';\n\n /* Gantt chart variables */\n\n this.sectionBkgColor = 'calculated';\n this.altSectionBkgColor = 'calculated';\n this.sectionBkgColor2 = 'calculated';\n this.taskBorderColor = 'calculated';\n this.taskBkgColor = 'calculated';\n this.taskTextLightColor = 'calculated';\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextDarkColor = 'calculated';\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.taskTextClickableColor = 'calculated';\n this.activeTaskBorderColor = 'calculated';\n this.activeTaskBkgColor = 'calculated';\n this.gridColor = 'calculated';\n this.doneTaskBkgColor = 'calculated';\n this.doneTaskBorderColor = 'calculated';\n this.critBorderColor = 'calculated';\n this.critBkgColor = 'calculated';\n this.todayLineColor = 'calculated';\n\n this.sectionBkgColor = rgba(102, 102, 255, 0.49);\n this.altSectionBkgColor = 'white';\n this.sectionBkgColor2 = '#fff400';\n this.taskBorderColor = '#534fbc';\n this.taskBkgColor = '#8a90dd';\n this.taskTextLightColor = 'white';\n this.taskTextColor = 'calculated';\n this.taskTextDarkColor = 'black';\n this.taskTextOutsideColor = 'calculated';\n this.taskTextClickableColor = '#003163';\n this.activeTaskBorderColor = '#534fbc';\n this.activeTaskBkgColor = '#bfc7ff';\n this.gridColor = 'lightgrey';\n this.doneTaskBkgColor = 'lightgrey';\n this.doneTaskBorderColor = 'grey';\n this.critBorderColor = '#ff8888';\n this.critBkgColor = 'red';\n this.todayLineColor = 'red';\n\n /* state colors */\n this.labelColor = 'black';\n this.errorBkgColor = '#552222';\n this.errorTextColor = '#552222';\n this.updateColors();\n }\n updateColors() {\n /* Flowchart variables */\n\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1; // border 1\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.titleColor = this.textColor;\n this.edgeLabelBackground = this.labelBackground;\n\n /* Sequence Diagram variables */\n\n // this.actorBorder = lighten(this.border1, 0.5);\n this.actorBorder = lighten(this.border1, 23);\n this.actorBkg = this.mainBkg;\n this.labelBoxBkgColor = this.actorBkg;\n this.signalColor = this.textColor;\n this.signalTextColor = this.textColor;\n this.labelBoxBorderColor = this.actorBorder;\n this.labelTextColor = this.actorTextColor;\n this.loopTextColor = this.actorTextColor;\n this.noteBorderColor = this.border2;\n this.noteTextColor = this.actorTextColor;\n\n /* Gantt chart variables */\n\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextOutsideColor = this.taskTextDarkColor;\n\n /* state colors */\n /* class */\n this.classText = this.primaryTextColor;\n /* journey */\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust(this.primaryColor, { h: 64 });\n this.fillType3 = adjust(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust(this.primaryColor, { h: -64 });\n this.fillType5 = adjust(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust(this.primaryColor, { h: 128 });\n this.fillType7 = adjust(this.secondaryColor, { h: 128 });\n }\n calculate(overrides) {\n if (typeof overrides !== 'object') {\n // Calculate colors form base colors\n this.updateColors();\n return;\n }\n\n const keys = Object.keys(overrides);\n\n // Copy values from overrides, this is mainly for base colors\n keys.forEach(k => {\n this[k] = overrides[k];\n });\n\n // Calculate colors form base colors\n this.updateColors();\n // Copy values from overrides again in case of an override of derived value\n keys.forEach(k => {\n this[k] = overrides[k];\n });\n }\n}\n\nexport const getThemeVariables = userOverrides => {\n const theme = new Theme();\n theme.calculate(userOverrides);\n // console.info('Theme(default)', { userOverrides, theme });\n return theme;\n};\n","import { darken, lighten, adjust, invert } from 'khroma';\nimport { mkBorder } from './theme-helpers';\nclass Theme {\n constructor() {\n /* Base vales */\n this.background = '#f4f4f4';\n this.primaryColor = '#cde498';\n this.secondaryColor = '#cdffb2';\n this.background = 'white';\n this.mainBkg = '#cde498';\n this.secondBkg = '#cdffb2';\n this.lineColor = 'green';\n this.border1 = '#13540c';\n this.border2 = '#6eaa49';\n this.arrowheadColor = 'green';\n this.fontFamily = '\"trebuchet ms\", verdana, arial';\n this.fontSize = '16px';\n\n this.tertiaryColor = lighten('#cde498', 10);\n this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n this.primaryTextColor = invert(this.primaryColor);\n this.secondaryTextColor = invert(this.secondaryColor);\n this.tertiaryTextColor = invert(this.primaryColor);\n this.lineColor = invert(this.background);\n this.textColor = invert(this.background);\n\n /* Flowchart variables */\n this.nodeBkg = 'calculated';\n this.nodeBorder = 'calculated';\n this.clusterBkg = 'calculated';\n this.clusterBorder = 'calculated';\n this.defaultLinkColor = 'calculated';\n this.titleColor = '#333';\n this.edgeLabelBackground = '#e8e8e8';\n\n /* Sequence Diagram variables */\n\n this.actorBorder = 'calculated';\n this.actorBkg = 'calculated';\n this.actorTextColor = 'black';\n this.actorLineColor = 'grey';\n this.signalColor = '#333';\n this.signalTextColor = '#333';\n this.labelBoxBkgColor = 'calculated';\n this.labelBoxBorderColor = '#326932';\n this.labelTextColor = 'calculated';\n this.loopTextColor = 'calculated';\n this.noteBorderColor = 'calculated';\n this.noteBkgColor = '#fff5ad';\n this.noteTextColor = 'calculated';\n this.activationBorderColor = '#666';\n this.activationBkgColor = '#f4f4f4';\n this.sequenceNumberColor = 'white';\n\n /* Gantt chart variables */\n\n this.sectionBkgColor = '#6eaa49';\n this.altSectionBkgColor = 'white';\n this.sectionBkgColor2 = '#6eaa49';\n this.taskBorderColor = 'calculated';\n this.taskBkgColor = '#487e3a';\n this.taskTextLightColor = 'white';\n this.taskTextColor = 'calculated';\n this.taskTextDarkColor = 'black';\n this.taskTextOutsideColor = 'calculated';\n this.taskTextClickableColor = '#003163';\n this.activeTaskBorderColor = 'calculated';\n this.activeTaskBkgColor = 'calculated';\n this.gridColor = 'lightgrey';\n this.doneTaskBkgColor = 'lightgrey';\n this.doneTaskBorderColor = 'grey';\n this.critBorderColor = '#ff8888';\n this.critBkgColor = 'red';\n this.todayLineColor = 'red';\n\n /* state colors */\n this.labelColor = 'black';\n\n this.errorBkgColor = '#552222';\n this.errorTextColor = '#552222';\n }\n updateColors() {\n /* Flowchart variables */\n\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n\n /* Sequence Diagram variables */\n\n this.actorBorder = darken(this.mainBkg, 20);\n this.actorBkg = this.mainBkg;\n this.labelBoxBkgColor = this.actorBkg;\n this.labelTextColor = this.actorTextColor;\n this.loopTextColor = this.actorTextColor;\n this.noteBorderColor = this.border2;\n this.noteTextColor = this.actorTextColor;\n\n /* Gantt chart variables */\n\n this.taskBorderColor = this.border1;\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.activeTaskBorderColor = this.taskBorderColor;\n this.activeTaskBkgColor = this.mainBkg;\n\n /* state colors */\n /* class */\n this.classText = this.primaryTextColor;\n /* journey */\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust(this.primaryColor, { h: 64 });\n this.fillType3 = adjust(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust(this.primaryColor, { h: -64 });\n this.fillType5 = adjust(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust(this.primaryColor, { h: 128 });\n this.fillType7 = adjust(this.secondaryColor, { h: 128 });\n }\n calculate(overrides) {\n if (typeof overrides !== 'object') {\n // Calculate colors form base colors\n this.updateColors();\n return;\n }\n\n const keys = Object.keys(overrides);\n\n // Copy values from overrides, this is mainly for base colors\n keys.forEach(k => {\n this[k] = overrides[k];\n });\n\n // Calculate colors form base colors\n this.updateColors();\n // Copy values from overrides again in case of an override of derived value\n keys.forEach(k => {\n this[k] = overrides[k];\n });\n }\n}\n\nexport const getThemeVariables = userOverrides => {\n const theme = new Theme();\n theme.calculate(userOverrides);\n console.info('Theme(forest)', { userOverrides, theme });\n return theme;\n};\n","import { adjust } from 'khroma';\n\nexport const mkBorder = (col, darkMode) =>\n darkMode ? adjust(col, { s: -40, l: 10 }) : adjust(col, { s: -40, l: -10 });\n","import { invert, darken, lighten, adjust } from 'khroma';\nimport { mkBorder } from './theme-helpers';\n\n// const Color = require ( 'khroma/dist/color' ).default\n// Color.format.hex.stringify(Color.parse('hsl(210, 66.6666666667%, 95%)')); // => \"#EAF2FB\"\n\nclass Theme {\n constructor() {\n this.primaryColor = '#eee';\n this.contrast = '#26a';\n this.secondaryColor = lighten(this.contrast, 55);\n this.background = '#ffffff';\n\n // this.secondaryColor = adjust(this.primaryColor, { h: 120 });\n this.tertiaryColor = adjust(this.primaryColor, { h: -160 });\n console.warn('primary color', this.primaryColor, 'tertiary - color', this.tertiaryColor);\n this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);\n this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);\n this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);\n // this.noteBorderColor = mkBorder(this.noteBkgColor, this.darkMode);\n\n this.primaryTextColor = invert(this.primaryColor);\n this.secondaryTextColor = invert(this.secondaryColor);\n this.tertiaryTextColor = invert(this.tertiaryColor);\n this.lineColor = invert(this.background);\n this.textColor = invert(this.background);\n\n this.altBackground = lighten(this.contrast, 55);\n this.mainBkg = '#eee';\n this.secondBkg = 'calculated';\n this.lineColor = '#666';\n this.border1 = '#999';\n this.border2 = 'calculated';\n this.note = '#ffa';\n this.text = '#333';\n this.critical = '#d42';\n this.done = '#bbb';\n this.arrowheadColor = '#333333';\n this.fontFamily = '\"trebuchet ms\", verdana, arial';\n this.fontSize = '16px';\n\n /* Flowchart variables */\n\n this.nodeBkg = 'calculated';\n this.nodeBorder = 'calculated';\n this.clusterBkg = 'calculated';\n this.clusterBorder = 'calculated';\n this.defaultLinkColor = 'calculated';\n this.titleColor = 'calculated';\n this.edgeLabelBackground = 'white';\n\n /* Sequence Diagram variables */\n\n this.actorBorder = 'calculated';\n this.actorBkg = 'calculated';\n this.actorTextColor = 'calculated';\n this.actorLineColor = 'calculated';\n this.signalColor = 'calculated';\n this.signalTextColor = 'calculated';\n this.labelBoxBkgColor = 'calculated';\n this.labelBoxBorderColor = 'calculated';\n this.labelTextColor = 'calculated';\n this.loopTextColor = 'calculated';\n this.noteBorderColor = 'calculated';\n this.noteBkgColor = 'calculated';\n this.noteTextColor = 'calculated';\n this.activationBorderColor = '#666';\n this.activationBkgColor = '#f4f4f4';\n this.sequenceNumberColor = 'white';\n\n /* Gantt chart variables */\n\n this.sectionBkgColor = 'calculated';\n this.altSectionBkgColor = 'white';\n this.sectionBkgColor2 = 'calculated';\n this.taskBorderColor = 'calculated';\n this.taskBkgColor = 'calculated';\n this.taskTextLightColor = 'white';\n this.taskTextColor = 'calculated';\n this.taskTextDarkColor = 'calculated';\n this.taskTextOutsideColor = 'calculated';\n this.taskTextClickableColor = '#003163';\n this.activeTaskBorderColor = 'calculated';\n this.activeTaskBkgColor = 'calculated';\n this.gridColor = 'calculated';\n this.doneTaskBkgColor = 'calculated';\n this.doneTaskBorderColor = 'calculated';\n this.critBkgColor = 'calculated';\n this.critBorderColor = 'calculated';\n this.todayLineColor = 'calculated';\n\n /* state colors */\n this.labelColor = 'black';\n\n this.errorBkgColor = '#552222';\n this.errorTextColor = '#552222';\n }\n updateColors() {\n this.secondBkg = lighten(this.contrast, 55);\n this.border2 = this.contrast;\n\n /* Flowchart variables */\n\n this.nodeBkg = this.mainBkg;\n this.nodeBorder = this.border1;\n this.clusterBkg = this.secondBkg;\n this.clusterBorder = this.border2;\n this.defaultLinkColor = this.lineColor;\n this.titleColor = this.text;\n\n /* Sequence Diagram variables */\n\n this.actorBorder = lighten(this.border1, 23);\n this.actorBkg = this.mainBkg;\n this.actorTextColor = this.text;\n this.actorLineColor = this.lineColor;\n this.signalColor = this.text;\n this.signalTextColor = this.text;\n this.labelBoxBkgColor = this.actorBkg;\n this.labelBoxBorderColor = this.actorBorder;\n this.labelTextColor = this.text;\n this.loopTextColor = this.text;\n this.noteBorderColor = darken(this.note, 60);\n this.noteBkgColor = this.note;\n this.noteTextColor = this.actorTextColor;\n\n /* Gantt chart variables */\n\n this.sectionBkgColor = lighten(this.contrast, 30);\n this.sectionBkgColor2 = lighten(this.contrast, 30);\n\n this.taskBorderColor = darken(this.contrast, 10);\n\n this.taskBkgColor = this.contrast;\n this.taskTextColor = this.taskTextLightColor;\n this.taskTextDarkColor = this.text;\n this.taskTextOutsideColor = this.taskTextDarkColor;\n this.activeTaskBorderColor = this.taskBorderColor;\n this.activeTaskBkgColor = this.mainBkg;\n this.gridColor = lighten(this.border1, 30);\n\n this.doneTaskBkgColor = this.done;\n this.doneTaskBorderColor = this.lineColor;\n this.critBkgColor = this.critical;\n this.critBorderColor = darken(this.critBkgColor, 10);\n\n this.todayLineColor = this.critBkgColor;\n\n /* state colors */\n /* class */\n this.classText = this.primaryTextColor;\n /* journey */\n this.fillType0 = this.primaryColor;\n this.fillType1 = this.secondaryColor;\n this.fillType2 = adjust(this.primaryColor, { h: 64 });\n this.fillType3 = adjust(this.secondaryColor, { h: 64 });\n this.fillType4 = adjust(this.primaryColor, { h: -64 });\n this.fillType5 = adjust(this.secondaryColor, { h: -64 });\n this.fillType6 = adjust(this.primaryColor, { h: 128 });\n this.fillType7 = adjust(this.secondaryColor, { h: 128 });\n }\n calculate(overrides) {\n if (typeof overrides !== 'object') {\n // Calculate colors form base colors\n this.updateColors();\n return;\n }\n\n const keys = Object.keys(overrides);\n\n // Copy values from overrides, this is mainly for base colors\n keys.forEach(k => {\n this[k] = overrides[k];\n });\n\n // Calculate colors form base colors\n this.updateColors();\n // Copy values from overrides again in case of an override of derived value\n keys.forEach(k => {\n this[k] = overrides[k];\n });\n }\n}\n\nexport const getThemeVariables = userOverrides => {\n const theme = new Theme();\n theme.calculate(userOverrides);\n console.info('Theme(neutral)', { userOverrides, theme });\n return theme;\n};\n","import {\n curveBasis,\n curveBasisClosed,\n curveBasisOpen,\n curveLinear,\n curveLinearClosed,\n curveMonotoneX,\n curveMonotoneY,\n curveNatural,\n curveStep,\n curveStepAfter,\n curveStepBefore,\n select\n} from 'd3';\nimport { logger } from './logger';\nimport { sanitizeUrl } from '@braintree/sanitize-url';\nimport common from './diagrams/common/common';\n// import cryptoRandomString from 'crypto-random-string';\n\n// Effectively an enum of the supported curve types, accessible by name\nconst d3CurveTypes = {\n curveBasis: curveBasis,\n curveBasisClosed: curveBasisClosed,\n curveBasisOpen: curveBasisOpen,\n curveLinear: curveLinear,\n curveLinearClosed: curveLinearClosed,\n curveMonotoneX: curveMonotoneX,\n curveMonotoneY: curveMonotoneY,\n curveNatural: curveNatural,\n curveStep: curveStep,\n curveStepAfter: curveStepAfter,\n curveStepBefore: curveStepBefore\n};\nconst directive = /[%]{2}[{]\\s*(?:(?:(\\w+)\\s*:|(\\w+))\\s*(?:(?:(\\w+))|((?:(?![}][%]{2}).|\\r?\\n)*))?\\s*)(?:[}][%]{2})?/gi;\nconst directiveWithoutOpen = /\\s*(?:(?:(\\w+)(?=:):|(\\w+))\\s*(?:(?:(\\w+))|((?:(?![}][%]{2}).|\\r?\\n)*))?\\s*)(?:[}][%]{2})?/gi;\nconst anyComment = /\\s*%%.*\\n/gm;\n\n/**\n * @function detectInit\n * Detects the init config object from the text\n * ```mermaid\n * %%{init: {\"theme\": \"debug\", \"logLevel\": 1 }}%%\n * graph LR\n * a-->b\n * b-->c\n * c-->d\n * d-->e\n * e-->f\n * f-->g\n * g-->h\n * ```\n * or\n * ```mermaid\n * %%{initialize: {\"theme\": \"dark\", logLevel: \"debug\" }}%%\n * graph LR\n * a-->b\n * b-->c\n * c-->d\n * d-->e\n * e-->f\n * f-->g\n * g-->h\n * ```\n *\n * @param {string} text The text defining the graph\n * @returns {object} the json object representing the init passed to mermaid.initialize()\n */\nexport const detectInit = function(text) {\n let inits = detectDirective(text, /(?:init\\b)|(?:initialize\\b)/);\n let results = {};\n if (Array.isArray(inits)) {\n let args = inits.map(init => init.args);\n results = assignWithDepth(results, [...args]);\n } else {\n results = inits.args;\n }\n if (results) {\n let type = detectType(text);\n ['config'].forEach(prop => {\n if (typeof results[prop] !== 'undefined') {\n if (type === 'flowchart-v2') {\n type = 'flowchart';\n }\n results[type] = results[prop];\n delete results[prop];\n }\n });\n }\n return results;\n};\n\n/**\n * @function detectDirective\n * Detects the directive from the text. Text can be single line or multiline. If type is null or omitted\n * the first directive encountered in text will be returned\n * ```mermaid\n * graph LR\n * %%{somedirective}%%\n * a-->b\n * b-->c\n * c-->d\n * d-->e\n * e-->f\n * f-->g\n * g-->h\n * ```\n *\n * @param {string} text The text defining the graph\n * @param {string|RegExp} type The directive to return (default: null)\n * @returns {object | Array} An object or Array representing the directive(s): { type: string, args: object|null } matched by the input type\n * if a single directive was found, that directive object will be returned.\n */\nexport const detectDirective = function(text, type = null) {\n try {\n const commentWithoutDirectives = new RegExp(\n `[%]{2}(?![{]${directiveWithoutOpen.source})(?=[}][%]{2}).*\\n`,\n 'ig'\n );\n text = text\n .trim()\n .replace(commentWithoutDirectives, '')\n .replace(/'/gm, '\"');\n logger.debug(\n `Detecting diagram directive${type !== null ? ' type:' + type : ''} based on the text:${text}`\n );\n let match,\n result = [];\n while ((match = directive.exec(text)) !== null) {\n // This is necessary to avoid infinite loops with zero-width matches\n if (match.index === directive.lastIndex) {\n directive.lastIndex++;\n }\n if (\n (match && !type) ||\n (type && match[1] && match[1].match(type)) ||\n (type && match[2] && match[2].match(type))\n ) {\n let type = match[1] ? match[1] : match[2];\n let args = match[3] ? match[3].trim() : match[4] ? JSON.parse(match[4].trim()) : null;\n result.push({ type, args });\n }\n }\n if (result.length === 0) {\n result.push({ type: text, args: null });\n }\n\n return result.length === 1 ? result[0] : result;\n } catch (error) {\n logger.error(\n `ERROR: ${error.message} - Unable to parse directive${\n type !== null ? ' type:' + type : ''\n } based on the text:${text}`\n );\n return { type: null, args: null };\n }\n};\n\n/**\n * @function detectType\n * Detects the type of the graph text. Takes into consideration the possible existence of an %%init\n * directive\n * ```mermaid\n * %%{initialize: {\"startOnLoad\": true, logLevel: \"fatal\" }}%%\n * graph LR\n * a-->b\n * b-->c\n * c-->d\n * d-->e\n * e-->f\n * f-->g\n * g-->h\n * ```\n *\n * @param {string} text The text defining the graph\n * @returns {string} A graph definition key\n */\nexport const detectType = function(text) {\n text = text.replace(directive, '').replace(anyComment, '\\n');\n logger.debug('Detecting diagram type based on the text ' + text);\n if (text.match(/^\\s*sequenceDiagram/)) {\n return 'sequence';\n }\n\n if (text.match(/^\\s*gantt/)) {\n return 'gantt';\n }\n if (text.match(/^\\s*classDiagram-v2/)) {\n return 'classDiagram';\n }\n if (text.match(/^\\s*classDiagram/)) {\n return 'class';\n }\n\n if (text.match(/^\\s*stateDiagram-v2/)) {\n return 'stateDiagram';\n }\n\n if (text.match(/^\\s*stateDiagram/)) {\n return 'state';\n }\n\n if (text.match(/^\\s*gitGraph/)) {\n return 'git';\n }\n if (text.match(/^\\s*flowchart/)) {\n return 'flowchart-v2';\n }\n\n if (text.match(/^\\s*info/)) {\n return 'info';\n }\n if (text.match(/^\\s*pie/)) {\n return 'pie';\n }\n\n if (text.match(/^\\s*erDiagram/)) {\n return 'er';\n }\n\n if (text.match(/^\\s*journey/)) {\n return 'journey';\n }\n\n return 'flowchart';\n};\n\nconst memoize = (fn, resolver) => {\n let cache = {};\n return (...args) => {\n let n = resolver ? resolver.apply(this, args) : args[0];\n if (n in cache) {\n return cache[n];\n } else {\n let result = fn(...args);\n cache[n] = result;\n return result;\n }\n };\n};\n\n/**\n * @function isSubstringInArray\n * Detects whether a substring in present in a given array\n * @param {string} str The substring to detect\n * @param {array} arr The array to search\n * @returns {number} the array index containing the substring or -1 if not present\n **/\nexport const isSubstringInArray = function(str, arr) {\n for (let i = 0; i < arr.length; i++) {\n if (arr[i].match(str)) return i;\n }\n return -1;\n};\n\nexport const interpolateToCurve = (interpolate, defaultCurve) => {\n if (!interpolate) {\n return defaultCurve;\n }\n const curveName = `curve${interpolate.charAt(0).toUpperCase() + interpolate.slice(1)}`;\n return d3CurveTypes[curveName] || defaultCurve;\n};\n\nexport const formatUrl = (linkStr, config) => {\n let url = linkStr.trim();\n\n if (url) {\n if (config.securityLevel !== 'loose') {\n return sanitizeUrl(url);\n }\n\n return url;\n }\n};\n\nexport const runFunc = (functionName, ...params) => {\n const arrPaths = functionName.split('.');\n\n const len = arrPaths.length - 1;\n const fnName = arrPaths[len];\n\n let obj = window;\n for (let i = 0; i < len; i++) {\n obj = obj[arrPaths[i]];\n if (!obj) return;\n }\n\n obj[fnName](...params);\n};\n\nconst distance = (p1, p2) =>\n p1 && p2 ? Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2)) : 0;\n\nconst traverseEdge = points => {\n let prevPoint;\n let totalDistance = 0;\n\n points.forEach(point => {\n totalDistance += distance(point, prevPoint);\n prevPoint = point;\n });\n\n // Traverse half of total distance along points\n let remainingDistance = totalDistance / 2;\n let center = undefined;\n prevPoint = undefined;\n points.forEach(point => {\n if (prevPoint && !center) {\n const vectorDistance = distance(point, prevPoint);\n if (vectorDistance < remainingDistance) {\n remainingDistance -= vectorDistance;\n } else {\n // The point is remainingDistance from prevPoint in the vector between prevPoint and point\n // Calculate the coordinates\n const distanceRatio = remainingDistance / vectorDistance;\n if (distanceRatio <= 0) center = prevPoint;\n if (distanceRatio >= 1) center = { x: point.x, y: point.y };\n if (distanceRatio > 0 && distanceRatio < 1) {\n center = {\n x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point.x,\n y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point.y\n };\n }\n }\n }\n prevPoint = point;\n });\n return center;\n};\n\nconst calcLabelPosition = points => {\n return traverseEdge(points);\n};\n\nconst calcCardinalityPosition = (isRelationTypePresent, points, initialPosition) => {\n let prevPoint;\n let totalDistance = 0; // eslint-disable-line\n if (points[0] !== initialPosition) {\n points = points.reverse();\n }\n points.forEach(point => {\n totalDistance += distance(point, prevPoint);\n prevPoint = point;\n });\n\n // Traverse only 25 total distance along points to find cardinality point\n const distanceToCardinalityPoint = 25;\n\n let remainingDistance = distanceToCardinalityPoint;\n let center;\n prevPoint = undefined;\n points.forEach(point => {\n if (prevPoint && !center) {\n const vectorDistance = distance(point, prevPoint);\n if (vectorDistance < remainingDistance) {\n remainingDistance -= vectorDistance;\n } else {\n // The point is remainingDistance from prevPoint in the vector between prevPoint and point\n // Calculate the coordinates\n const distanceRatio = remainingDistance / vectorDistance;\n if (distanceRatio <= 0) center = prevPoint;\n if (distanceRatio >= 1) center = { x: point.x, y: point.y };\n if (distanceRatio > 0 && distanceRatio < 1) {\n center = {\n x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point.x,\n y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point.y\n };\n }\n }\n }\n prevPoint = point;\n });\n // if relation is present (Arrows will be added), change cardinality point off-set distance (d)\n let d = isRelationTypePresent ? 10 : 5;\n //Calculate Angle for x and y axis\n let angle = Math.atan2(points[0].y - center.y, points[0].x - center.x);\n let cardinalityPosition = { x: 0, y: 0 };\n //Calculation cardinality position using angle, center point on the line/curve but pendicular and with offset-distance\n cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2;\n cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2;\n return cardinalityPosition;\n};\n\nexport const getStylesFromArray = arr => {\n let style = '';\n let labelStyle = '';\n\n for (let i = 0; i < arr.length; i++) {\n if (typeof arr[i] !== 'undefined') {\n // add text properties to label style definition\n if (arr[i].startsWith('color:') || arr[i].startsWith('text-align:')) {\n labelStyle = labelStyle + arr[i] + ';';\n } else {\n style = style + arr[i] + ';';\n }\n }\n }\n\n return { style: style, labelStyle: labelStyle };\n};\n\nlet cnt = 0;\nexport const generateId = () => {\n cnt++;\n return (\n 'id-' +\n Math.random()\n .toString(36)\n .substr(2, 12) +\n '-' +\n cnt\n );\n};\n\nfunction makeid(length) {\n var result = '';\n var characters = '0123456789abcdef';\n var charactersLength = characters.length;\n for (var i = 0; i < length; i++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n return result;\n}\n\nexport const random = options => {\n return makeid(options.length);\n};\n\n/**\n * @function assignWithDepth\n * Extends the functionality of {@link ObjectConstructor.assign} with the ability to merge arbitrary-depth objects\n * For each key in src with path `k` (recursively) performs an Object.assign(dst[`k`], src[`k`]) with\n * a slight change from the typical handling of undefined for dst[`k`]: instead of raising an error,\n * dst[`k`] is auto-initialized to {} and effectively merged with src[`k`]\n *
\n * Additionally, dissimilar types will not clobber unless the config.clobber parameter === true. Example:\n * ```\n * let config_0 = { foo: { bar: 'bar' }, bar: 'foo' };\n * let config_1 = { foo: 'foo', bar: 'bar' };\n * let result = assignWithDepth(config_0, config_1);\n * console.log(result);\n * //-> result: { foo: { bar: 'bar' }, bar: 'bar' }\n * ```\n *
\n * Traditional Object.assign would have clobbered foo in config_0 with foo in config_1.\n *
\n * If src is a destructured array of objects and dst is not an array, assignWithDepth will apply each element of src to dst\n * in order.\n * @param dst:any - the destination of the merge\n * @param src:any - the source object(s) to merge into destination\n * @param config:{ depth: number, clobber: boolean } - depth: depth to traverse within src and dst for merging -\n * clobber: should dissimilar types clobber (default: { depth: 2, clobber: false })\n * @returns {*}\n */\nexport const assignWithDepth = function(dst, src, config) {\n const { depth, clobber } = Object.assign({ depth: 2, clobber: false }, config);\n if (Array.isArray(src) && !Array.isArray(dst)) {\n src.forEach(s => assignWithDepth(dst, s, config));\n return dst;\n } else if (Array.isArray(src) && Array.isArray(dst)) {\n src.forEach(s => {\n if (dst.indexOf(s) === -1) {\n dst.push(s);\n }\n });\n return dst;\n }\n if (typeof dst === 'undefined' || depth <= 0) {\n if (dst !== undefined && dst !== null && typeof dst === 'object' && typeof src === 'object') {\n return Object.assign(dst, src);\n } else {\n return src;\n }\n }\n if (typeof src !== 'undefined' && typeof dst === 'object' && typeof src === 'object') {\n Object.keys(src).forEach(key => {\n if (\n typeof src[key] === 'object' &&\n (dst[key] === undefined || typeof dst[key] === 'object')\n ) {\n if (dst[key] === undefined) {\n dst[key] = Array.isArray(src[key]) ? [] : {};\n }\n dst[key] = assignWithDepth(dst[key], src[key], { depth: depth - 1, clobber });\n } else if (clobber || (typeof dst[key] !== 'object' && typeof src[key] !== 'object')) {\n dst[key] = src[key];\n }\n });\n }\n return dst;\n};\n\nexport const getTextObj = function() {\n return {\n x: 0,\n y: 0,\n fill: undefined,\n anchor: 'start',\n style: '#666',\n width: 100,\n height: 100,\n textMargin: 0,\n rx: 0,\n ry: 0,\n valign: undefined\n };\n};\n\nexport const drawSimpleText = function(elem, textData) {\n // Remove and ignore br:s\n const nText = textData.text.replace(common.lineBreakRegex, ' ');\n\n const textElem = elem.append('text');\n textElem.attr('x', textData.x);\n textElem.attr('y', textData.y);\n textElem.style('text-anchor', textData.anchor);\n textElem.style('font-family', textData.fontFamily);\n textElem.style('font-size', textData.fontSize);\n textElem.style('font-weight', textData.fontWeight);\n textElem.attr('fill', textData.fill);\n if (typeof textData.class !== 'undefined') {\n textElem.attr('class', textData.class);\n }\n\n const span = textElem.append('tspan');\n span.attr('x', textData.x + textData.textMargin * 2);\n span.attr('fill', textData.fill);\n span.text(nText);\n\n return textElem;\n};\n\nexport const wrapLabel = memoize(\n (label, maxWidth, config) => {\n if (!label) {\n return label;\n }\n config = Object.assign(\n { fontSize: 12, fontWeight: 400, fontFamily: 'Arial', joinWith: '
' },\n config\n );\n if (common.lineBreakRegex.test(label)) {\n return label;\n }\n const words = label.split(' ');\n const completedLines = [];\n let nextLine = '';\n words.forEach((word, index) => {\n const wordLength = calculateTextWidth(`${word} `, config);\n const nextLineLength = calculateTextWidth(nextLine, config);\n if (wordLength > maxWidth) {\n const { hyphenatedStrings, remainingWord } = breakString(word, maxWidth, '-', config);\n completedLines.push(nextLine, ...hyphenatedStrings);\n nextLine = remainingWord;\n } else if (nextLineLength + wordLength >= maxWidth) {\n completedLines.push(nextLine);\n nextLine = word;\n } else {\n nextLine = [nextLine, word].filter(Boolean).join(' ');\n }\n const currentWord = index + 1;\n const isLastWord = currentWord === words.length;\n if (isLastWord) {\n completedLines.push(nextLine);\n }\n });\n return completedLines.filter(line => line !== '').join(config.joinWith);\n },\n (label, maxWidth, config) =>\n `${label}-${maxWidth}-${config.fontSize}-${config.fontWeight}-${config.fontFamily}-${config.joinWith}`\n);\n\nconst breakString = memoize(\n (word, maxWidth, hyphenCharacter = '-', config) => {\n config = Object.assign(\n { fontSize: 12, fontWeight: 400, fontFamily: 'Arial', margin: 0 },\n config\n );\n const characters = word.split('');\n const lines = [];\n let currentLine = '';\n characters.forEach((character, index) => {\n const nextLine = `${currentLine}${character}`;\n const lineWidth = calculateTextWidth(nextLine, config);\n if (lineWidth >= maxWidth) {\n const currentCharacter = index + 1;\n const isLastLine = characters.length === currentCharacter;\n const hyphenatedNextLine = `${nextLine}${hyphenCharacter}`;\n lines.push(isLastLine ? nextLine : hyphenatedNextLine);\n currentLine = '';\n } else {\n currentLine = nextLine;\n }\n });\n return { hyphenatedStrings: lines, remainingWord: currentLine };\n },\n (word, maxWidth, hyphenCharacter = '-', config) =>\n `${word}-${maxWidth}-${hyphenCharacter}-${config.fontSize}-${config.fontWeight}-${config.fontFamily}`\n);\n\n/**\n * This calculates the text's height, taking into account the wrap breaks and\n * both the statically configured height, width, and the length of the text (in pixels).\n *\n * If the wrapped text text has greater height, we extend the height, so it's\n * value won't overflow.\n *\n * @return - The height for the given text\n * @param text the text to measure\n * @param config - the config for fontSize, fontFamily, and fontWeight all impacting the resulting size\n */\nexport const calculateTextHeight = function(text, config) {\n config = Object.assign(\n { fontSize: 12, fontWeight: 400, fontFamily: 'Arial', margin: 15 },\n config\n );\n return calculateTextDimensions(text, config).height;\n};\n\n/**\n * This calculates the width of the given text, font size and family.\n *\n * @return - The width for the given text\n * @param text - The text to calculate the width of\n * @param config - the config for fontSize, fontFamily, and fontWeight all impacting the resulting size\n */\nexport const calculateTextWidth = function(text, config) {\n config = Object.assign({ fontSize: 12, fontWeight: 400, fontFamily: 'Arial' }, config);\n return calculateTextDimensions(text, config).width;\n};\n\n/**\n * This calculates the dimensions of the given text, font size, font family, font weight, and margins.\n *\n * @return - The width for the given text\n * @param text - The text to calculate the width of\n * @param config - the config for fontSize, fontFamily, fontWeight, and margin all impacting the resulting size\n */\nexport const calculateTextDimensions = memoize(\n function(text, config) {\n config = Object.assign({ fontSize: 12, fontWeight: 400, fontFamily: 'Arial' }, config);\n const { fontSize, fontFamily, fontWeight } = config;\n if (!text) {\n return { width: 0, height: 0 };\n }\n\n // We can't really know if the user supplied font family will render on the user agent;\n // thus, we'll take the max width between the user supplied font family, and a default\n // of sans-serif.\n const fontFamilies = ['sans-serif', fontFamily];\n const lines = text.split(common.lineBreakRegex);\n let dims = [];\n\n const body = select('body');\n // We don't want to leak DOM elements - if a removal operation isn't available\n // for any reason, do not continue.\n if (!body.remove) {\n return { width: 0, height: 0, lineHeight: 0 };\n }\n\n const g = body.append('svg');\n\n for (let fontFamily of fontFamilies) {\n let cheight = 0;\n let dim = { width: 0, height: 0, lineHeight: 0 };\n for (let line of lines) {\n const textObj = getTextObj();\n textObj.text = line;\n const textElem = drawSimpleText(g, textObj)\n .style('font-size', fontSize)\n .style('font-weight', fontWeight)\n .style('font-family', fontFamily);\n\n let bBox = (textElem._groups || textElem)[0][0].getBBox();\n dim.width = Math.round(Math.max(dim.width, bBox.width));\n cheight = Math.round(bBox.height);\n dim.height += cheight;\n dim.lineHeight = Math.round(Math.max(dim.lineHeight, cheight));\n }\n dims.push(dim);\n }\n\n g.remove();\n\n let index =\n isNaN(dims[1].height) ||\n isNaN(dims[1].width) ||\n isNaN(dims[1].lineHeight) ||\n (dims[0].height > dims[1].height &&\n dims[0].width > dims[1].width &&\n dims[0].lineHeight > dims[1].lineHeight)\n ? 0\n : 1;\n return dims[index];\n },\n (text, config) => `${text}-${config.fontSize}-${config.fontWeight}-${config.fontFamily}`\n);\n\nexport default {\n assignWithDepth,\n wrapLabel,\n calculateTextHeight,\n calculateTextWidth,\n calculateTextDimensions,\n detectInit,\n detectDirective,\n detectType,\n isSubstringInArray,\n interpolateToCurve,\n calcLabelPosition,\n calcCardinalityPosition,\n formatUrl,\n getStylesFromArray,\n generateId,\n random,\n memoize,\n runFunc\n};\n","module.exports = require(\"@braintree/sanitize-url\");","module.exports = require(\"d3\");","module.exports = require(\"dagre\");","module.exports = require(\"dagre-d3\");","module.exports = require(\"dagre-d3/lib/label/add-html-label.js\");","module.exports = require(\"entity-decode/browser\");","module.exports = require(\"graphlib\");","module.exports = require(\"khroma\");","module.exports = require(\"moment-mini\");","module.exports = require(\"stylis\");"],"sourceRoot":""}
>>>>>>> 1592-SVG syntax error with links