2016-01-27 15:02:41 +01:00
! function ( t ) { if ( "object" == typeof exports && "undefined" != typeof module ) module . exports = t ( ) ; else if ( "function" == typeof define && define . amd ) define ( [ ] , t ) ; else { var e ; "undefined" != typeof window ? e = window : "undefined" != typeof global ? e = global : "undefined" != typeof self && ( e = self ) , e . mermaid = t ( ) } } ( function ( ) { var define , module , exports ; return function t ( e , r , n ) { function i ( s , o ) { if ( ! r [ s ] ) { if ( ! e [ s ] ) { var u = "function" == typeof require && require ; if ( ! o && u ) return u ( s , ! 0 ) ; if ( a ) return a ( s , ! 0 ) ; var c = new Error ( "Cannot find module '" + s + "'" ) ; throw c . code = "MODULE_NOT_FOUND" , c } var l = r [ s ] = { exports : { } } ; e [ s ] [ 0 ] . call ( l . exports , function ( t ) { var r = e [ s ] [ 1 ] [ t ] ; return i ( r ? r : t ) } , l , l . exports , t , e , r , n ) } return r [ s ] . exports } for ( var a = "function" == typeof require && require , s = 0 ; s < n . length ; s ++ ) i ( n [ s ] ) ; return i } ( { 1 : [ function ( ) { } , { } ] , 2 : [ function ( t , e , r ) { ( function ( t ) { function e ( t , e ) { for ( var r = 0 , n = t . length - 1 ; n >= 0 ; n -- ) { var i = t [ n ] ; "." === i ? t . splice ( n , 1 ) : ".." === i ? ( t . splice ( n , 1 ) , r ++ ) : r && ( t . splice ( n , 1 ) , r -- ) } if ( e ) for ( ; r -- ; r ) t . unshift ( ".." ) ; return t } function n ( t , e ) { if ( t . filter ) return t . filter ( e ) ; for ( var r = [ ] , n = 0 ; n < t . length ; n ++ ) e ( t [ n ] , n , t ) && r . push ( t [ n ] ) ; return r } var i = /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/ , a = function ( t ) { return i . exec ( t ) . slice ( 1 ) } ; r . resolve = function ( ) { for ( var r = "" , i = ! 1 , a = arguments . length - 1 ; a >= - 1 && ! i ; a -- ) { var s = a >= 0 ? arguments [ a ] : t . cwd ( ) ; if ( "string" != typeof s ) throw new TypeError ( "Arguments to path.resolve must be strings" ) ; s && ( r = s + "/" + r , i = "/" === s . charAt ( 0 ) ) } return r = e ( n ( r . split ( "/" ) , function ( t ) { return ! ! t } ) , ! i ) . join ( "/" ) , ( i ? "/" : "" ) + r || "." } , r . normalize = function ( t ) { var i = r . isAbsolute ( t ) , a = "/" === s ( t , - 1 ) ; return t = e ( n ( t . split ( "/" ) , function ( t ) { return ! ! t } ) , ! i ) . join ( "/" ) , t || i || ( t = "." ) , t && a && ( t += "/" ) , ( i ? "/" : "" ) + t } , r . isAbsolute = function ( t ) { return "/" === t . charAt ( 0 ) } , r . join = function ( ) { var t = Array . prototype . slice . call ( arguments , 0 ) ; return r . normalize ( n ( t , function ( t ) { if ( "string" != typeof t ) throw new TypeError ( "Arguments to path.join must be strings" ) ; return t } ) . join ( "/" ) ) } , r . relative = function ( t , e ) { function n ( t ) { for ( var e = 0 ; e < t . length && "" === t [ e ] ; e ++ ) ; for ( var r = t . length - 1 ; r >= 0 && "" === t [ r ] ; r -- ) ; return e > r ? [ ] : t . slice ( e , r - e + 1 ) } t = r . resolve ( t ) . substr ( 1 ) , e = r . resolve ( e ) . substr ( 1 ) ; for ( var i = n ( t . split ( "/" ) ) , a = n ( e . split ( "/" ) ) , s = Math . min ( i . length , a . length ) , o = s , u = 0 ; s > u ; u ++ ) if ( i [ u ] !== a [ u ] ) { o = u ; break } for ( var c = [ ] , u = o ; u < i . length ; u ++ ) c . push ( ".." ) ; return c = c . concat ( a . slice ( o ) ) , c . join ( "/" ) } , r . sep = "/" , r . delimiter = ":" , r . dirname = function ( t ) { var e = a ( t ) , r = e [ 0 ] , n = e [ 1 ] ; return r || n ? ( n && ( n = n . substr ( 0 , n . length - 1 ) ) , r + n ) : "." } , r . basename = function ( t , e ) { var r = a ( t ) [ 2 ] ; return e && r . substr ( - 1 * e . length ) === e && ( r = r . substr ( 0 , r . length - e . length ) ) , r } , r . extname = function ( t ) { return a ( t ) [ 3 ] } ; var s = "b" === "ab" . substr ( - 1 ) ? function ( t , e , r ) { return t . substr ( e , r ) } : function ( t , e , r ) { return 0 > e && ( e = t . length + e ) , t . substr ( e , r ) } } ) . call ( this , t ( "_process" ) ) } , { _process : 3 } ] , 3 : [ function ( t , e ) { function r ( ) { } var n = e . exports = { } ; n . nextTick = function ( ) { var t = "undefined" != typeof window && window . setImmediate , e = "undefined" != typeof window && window . MutationObserver , r = "undefined" != typeof window && window . postMessage && window . addEventListener ; if ( t ) return function ( t ) { return window . setImmediate ( t ) } ; var n = [ ] ; if ( e ) { var i = document . createElement ( "div" ) , a = new MutationObserver ( function ( ) { var t = n . slice ( ) ; n . length = 0 , t . forEach ( function ( t ) { t ( ) } ) } ) ; return a . observe ( i , { attributes : ! 0 } ) , function ( t ) { n . length || i . setAttribute ( "yes" , "no" ) , n . push ( t ) } } return r ? ( window . addEventListener ( "message" , function ( t ) { var e = t . source ; if ( ( e === window || null === e ) && "process-tick" === t . data && ( t . stopPropagation ( ) , n . length > 0 ) ) { var r = n . shift ( ) ; r ( ) } } , ! 0 ) , function ( t ) { n . push ( t ) , window . postMessage ( "process-tick" , "*" ) } ) : function ( t ) { setTimeout ( t , 0 ) } } ( ) , n . title = "browser" , n . browser = ! 0 , n . env = { } , n . argv = [ ] , n . on = r , n . addListener = r , n . once = r , n . off = r , n . removeListener = r , n . removeAllListeners = r , n . emit = r , n . binding = function ( ) { throw new Error ( "process.binding is not supported" ) } , n . cwd = function ( ) { return "/" } , n . chdir = function ( ) { throw new Error ( "process.chdir is not supported" ) } } , { } ] , 4 : [ function ( t , e ) { e . exports = { graphlib : t ( "./lib/graphlib" ) , dagre : t ( "./lib/dagre" ) , intersect : t ( "./lib/intersect" ) , render : t ( "./lib/render" ) , util : t ( " . / lib /
var n = u . values ( r ) ; return e ? u . filter ( n , function ( t ) { return t . w === e } ) : n } } , r . prototype . nodeEdges = function ( t , e ) { var r = this . inEdges ( t , e ) ; return r ? r . concat ( this . outEdges ( t , e ) ) : void 0 } } , { "./lodash" : 50 } ] , 48 : [ function ( t , e ) { e . exports = { Graph : t ( "./graph" ) , version : t ( "./version" ) } } , { "./graph" : 47 , "./version" : 51 } ] , 49 : [ function ( t , e ) { function r ( t ) { var e = { options : { directed : t . isDirected ( ) , multigraph : t . isMultigraph ( ) , compound : t . isCompound ( ) } , nodes : n ( t ) , edges : i ( t ) } ; return s . isUndefined ( t . graph ( ) ) || ( e . value = s . clone ( t . graph ( ) ) ) , e } function n ( t ) { return s . map ( t . nodes ( ) , function ( e ) { var r = t . node ( e ) , n = t . parent ( e ) , i = { v : e } ; return s . isUndefined ( r ) || ( i . value = r ) , s . isUndefined ( n ) || ( i . parent = n ) , i } ) } function i ( t ) { return s . map ( t . edges ( ) , function ( e ) { var r = t . edge ( e ) , n = { v : e . v , w : e . w } ; return s . isUndefined ( e . name ) || ( n . name = e . name ) , s . isUndefined ( r ) || ( n . value = r ) , n } ) } function a ( t ) { var e = new o ( t . options ) . setGraph ( t . value ) ; return s . each ( t . nodes , function ( t ) { e . setNode ( t . v , t . value ) , t . parent && e . setParent ( t . v , t . parent ) } ) , s . each ( t . edges , function ( t ) { e . setEdge ( { v : t . v , w : t . w , name : t . name } , t . value ) } ) , e } var s = t ( "./lodash" ) , o = t ( "./graph" ) ; e . exports = { write : r , read : a } } , { "./graph" : 47 , "./lodash" : 50 } ] , 50 : [ function ( t , e ) { var r ; if ( "function" == typeof t ) try { r = t ( "lodash" ) } catch ( n ) { } r || ( r = window . _ ) , e . exports = r } , { lodash : 52 } ] , 51 : [ function ( t , e ) { e . exports = "1.0.7" } , { } ] , 52 : [ function ( t , e , r ) { ( function ( t ) { ( function ( ) { function n ( t , e ) { if ( t !== e ) { var r = null === t , n = t === k , i = t === t , a = null === e , s = e === k , o = e === e ; if ( t > e && ! a || ! i || r && ! s && o || n && o ) return 1 ; if ( e > t && ! r || ! o || a && ! n && i || s && i ) return - 1 } return 0 } function i ( t , e , r ) { for ( var n = t . length , i = r ? n : - 1 ; r ? i -- : ++ i < n ; ) if ( e ( t [ i ] , i , t ) ) return i ; return - 1 } function a ( t , e , r ) { if ( e !== e ) return m ( t , r ) ; for ( var n = r - 1 , i = t . length ; ++ n < i ; ) if ( t [ n ] === e ) return n ; return - 1 } function s ( t ) { return "function" == typeof t || ! 1 } function o ( t ) { return null == t ? "" : t + "" } function u ( t , e ) { for ( var r = - 1 , n = t . length ; ++ r < n && e . indexOf ( t . charAt ( r ) ) > - 1 ; ) ; return r } function c ( t , e ) { for ( var r = t . length ; r -- && e . indexOf ( t . charAt ( r ) ) > - 1 ; ) ; return r } function l ( t , e ) { return n ( t . criteria , e . criteria ) || t . index - e . index } function h ( t , e , r ) { for ( var i = - 1 , a = t . criteria , s = e . criteria , o = a . length , u = r . length ; ++ i < o ; ) { var c = n ( a [ i ] , s [ i ] ) ; if ( c ) { if ( i >= u ) return c ; var l = r [ i ] ; return c * ( "asc" === l || l === ! 0 ? 1 : - 1 ) } } return t . index - e . index } function d ( t ) { return Gt [ t ] } function f ( t ) { return $t [ t ] } function p ( t , e , r ) { return e ? t = zt [ t ] : r && ( t = Zt [ t ] ) , "\\" + t } function g ( t ) { return "\\" + Zt [ t ] } function m ( t , e , r ) { for ( var n = t . length , i = e + ( r ? 0 : - 1 ) ; r ? i -- : ++ i < n ; ) { var a = t [ i ] ; if ( a !== a ) return i } return - 1 } function y ( t ) { return ! ! t && "object" == typeof t } function v ( t ) { return 160 >= t && t >= 9 && 13 >= t || 32 == t || 160 == t || 5760 == t || 6158 == t || t >= 8192 && ( 8202 >= t || 8232 == t || 8233 == t || 8239 == t || 8287 == t || 12288 == t || 65279 == t ) } function b ( t , e ) { for ( var r = - 1 , n = t . length , i = - 1 , a = [ ] ; ++ r < n ; ) t [ r ] === e && ( t [ r ] = G , a [ ++ i ] = r ) ; return a } function _ ( t , e ) { for ( var r , n = - 1 , i = t . length , a = - 1 , s = [ ] ; ++ n < i ; ) { var o = t [ n ] , u = e ? e ( o , n , t ) : o ; n && r === u || ( r = u , s [ ++ a ] = o ) } return s } function A ( t ) { for ( var e = - 1 , r = t . length ; ++ e < r && v ( t . charCodeAt ( e ) ) ; ) ; return e } function w ( t ) { for ( var e = t . length ; e -- && v ( t . charCodeAt ( e ) ) ; ) ; return e } function x ( t ) { return Ht [ t ] } function E ( t ) { function e ( t ) { if ( y ( t ) && ! To ( t ) && ! ( t instanceof K ) ) { if ( t instanceof v ) return t ; if ( ts . call ( t , "__chain__" ) && ts . call ( t , "__wrapped__" ) ) return fn ( t ) } return new v ( t ) } function r ( ) { } function v ( t , e , r ) { this . _ _wrapped _ _ = t , this . _ _actions _ _ = r || [ ] , this . _ _chain _ _ = ! ! e } function K ( t ) { this . _ _wrapped _ _ = t , this . _ _actions _ _ = [ ] , this . _ _dir _ _ = 1 , this . _ _filtered _ _ = ! 1 , this . _ _iteratees _ _ = [ ] , this . _ _takeCount _ _ = Cs , this . _ _views _ _ = [ ] } function et ( ) { var t = new K ( this . _ _wrapped _ _ ) ; return t . _ _actions _ _ = te ( this . _ _actions _ _ ) , t . _ _dir _ _ = this . _ _dir _ _ , t . _ _filtered _ _ = this . _ _filtered _ _ , t . _ _iteratees _ _ = te ( this . _ _iteratees _ _ ) , t . _ _takeCount _ _ = this . _ _takeCount _ _ , t . _ _views _ _ = te ( this . _ _views _ _ ) , t } function nt ( ) { if ( this . _ _filtered _ _ ) { var t = new K ( this ) ; t . _ _dir _ _ = - 1 , t . _ _filtered _ _ = ! 0 } else t = this . clone ( ) , t . _ _dir _ _ *= - 1 ; return t } function Gt ( ) { var t = this . _ _wrapped _ _ . value ( ) , e = this . _ _dir _ _ , r = To ( t ) , n = 0 > e , i = r ? t . length : 0 , a = $r ( 0 , i , this . _ _views _ _ ) , s = a . start , o = a . end , u = o - s , c = n ? o : s - 1 , l = this . _ _iteratees _ _ , h = l . length , d = 0 , f = ws ( u , this . _ _takeCount _ _ ) ; if ( ! r || j > i || i == u && f == u ) return rr ( n && r ? t . rev
2015-10-19 22:08:17 +02:00
2016-01-27 15:02:41 +01:00
for ( var o in t ) s && Kr ( o , e ) || "constructor" == o && ( i || ! ts . call ( t , o ) ) || a . push ( o ) ; return a } function ea ( t ) { t = hn ( t ) ; for ( var e = - 1 , r = jo ( t ) , n = r . length , i = ja ( n ) ; ++ e < n ; ) { var a = r [ e ] ; i [ e ] = [ a , t [ a ] ] } return i } function ra ( t , e , r ) { var n = null == t ? k : t [ e ] ; return n === k && ( null == t || Qr ( e , t ) || ( e = dn ( e ) , t = 1 == e . length ? t : Ie ( t , ze ( e , 0 , - 1 ) ) , n = null == t ? k : t [ Dn ( e ) ] ) , n = n === k ? r : n ) , Oi ( n ) ? n . call ( t ) : n } function na ( t , e , r ) { if ( null == t ) return t ; var n = e + "" ; e = null != t [ n ] || Qr ( e , t ) ? [ n ] : dn ( e ) ; for ( var i = - 1 , a = e . length , s = a - 1 , o = t ; null != o && ++ i < a ; ) { var u = e [ i ] ; Ii ( o ) && ( i == s ? o [ u ] = r : null == o [ u ] && ( o [ u ] = Kr ( e [ i + 1 ] ) ? [ ] : { } ) ) , o = o [ u ] } return t } function ia ( t , e , r , n ) { var i = To ( t ) || Vi ( t ) ; if ( e = jr ( e , n , 4 ) , null == r ) if ( i || Ii ( t ) ) { var a = t . constructor ; r = i ? To ( t ) ? new a : [ ] : Is ( Oi ( a ) ? a . prototype : k ) } else r = { } ; return ( i ? ee : Be ) ( t , function ( t , n , i ) { return e ( r , t , n , i ) } ) , r } function aa ( t ) { return tr ( t , jo ( t ) ) } function sa ( t ) { return tr ( t , ta ( t ) ) } function oa ( t , e , r ) { return e = + e || 0 , r === k ? ( r = e , e = 0 ) : r = + r || 0 , t >= ws ( e , r ) && t < As ( e , r ) } function ua ( t , e , r ) { r && Jr ( t , e , r ) && ( e = r = k ) ; var n = null == t , i = null == e ; if ( null == r && ( i && "boolean" == typeof t ? ( r = t , t = 1 ) : "boolean" == typeof e && ( r = e , i = ! 0 ) ) , n && i && ( e = 1 , i = ! 1 ) , t = + t || 0 , i ? ( e = t , t = 0 ) : e = + e || 0 , r || t % 1 || e % 1 ) { var a = ks ( ) ; return ws ( t + a * ( e - t + os ( "1e-" + ( ( a + "" ) . length - 1 ) ) ) , e ) } return He ( t , e ) } function ca ( t ) { return t = o ( t ) , t && t . charAt ( 0 ) . toUpperCase ( ) + t . slice ( 1 ) } function la ( t ) { return t = o ( t ) , t && t . replace ( Mt , d ) . replace ( Tt , "" ) } function ha ( t , e , r ) { t = o ( t ) , e += "" ; var n = t . length ; return r = r === k ? n : ws ( 0 > r ? 0 : + r || 0 , n ) , r -= e . length , r >= 0 && t . indexOf ( e , r ) == r } function da ( t ) { return t = o ( t ) , t && _t . test ( t ) ? t . replace ( vt , f ) : t } function fa ( t ) { return t = o ( t ) , t && Ft . test ( t ) ? t . replace ( Ct , p ) : t || "(?:)" } function pa ( t , e , r ) { t = o ( t ) , e = + e ; var n = t . length ; if ( n >= e || ! bs ( e ) ) return t ; var i = ( e - n ) / 2 , a = ys ( i ) , s = gs ( i ) ; return r = Lr ( "" , s , r ) , r . slice ( 0 , a ) + t + r } function ga ( t , e , r ) { return ( r ? Jr ( t , e , r ) : null == e ) ? e = 0 : e && ( e = + e ) , t = ba ( t ) , Es ( t , e || ( Ot . test ( t ) ? 16 : 10 ) ) } function ma ( t , e ) { var r = "" ; if ( t = o ( t ) , e = + e , 1 > e || ! t || ! bs ( e ) ) return r ; do e % 2 && ( r += t ) , e = ys ( e / 2 ) , t += t ; while ( e ) ; return r } function ya ( t , e , r ) { return t = o ( t ) , r = null == r ? 0 : ws ( 0 > r ? 0 : + r || 0 , t . length ) , t . lastIndexOf ( e , r ) == r } function va ( t , r , n ) { var i = e . templateSettings ; n && Jr ( t , r , n ) && ( r = n = k ) , t = o ( t ) , r = me ( ye ( { } , n || r ) , i , ge ) ; var a , s , u = me ( ye ( { } , r . imports ) , i . imports , ge ) , c = jo ( u ) , l = tr ( u , c ) , h = 0 , d = r . interpolate || Rt , f = "__p += '" , p = Wa ( ( r . escape || Rt ) . source + "|" + d . source + "|" + ( d === xt ? Bt : Rt ) . source + "|" + ( r . evaluate || Rt ) . source + "|$" , "g" ) , m = "//# sourceURL=" + ( "sourceURL" in r ? r . sourceURL : "lodash.templateSources[" + ++ Ut + "]" ) + "\n" ; t . replace ( p , function ( e , r , n , i , o , u ) { return n || ( n = i ) , f += t . slice ( h , u ) . replace ( Pt , g ) , r && ( a = ! 0 , f += "' +\n__e(" + r + ") +\n'" ) , o && ( s = ! 0 , f += "';\n" + o + ";\n__p += '" ) , n && ( f += "' +\n((__t = (" + n + ")) == null ? '' : __t) +\n'" ) , h = u + e . length , e } ) , f += "';\n" ; var y = r . variable ; y || ( f = "with (obj) {\n" + f + "\n}\n" ) , f = ( s ? f . replace ( pt , "" ) : f ) . replace ( gt , "$1" ) . replace ( mt , "$1;" ) , f = "function(" + ( y || "obj" ) + ") {\n" + ( y ? "" : "obj || (obj = {});\n" ) + "var __t, __p = ''" + ( a ? ", __e = _.escape" : "" ) + ( s ? ", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n" : ";\n" ) + f + "return __p\n}" ; var v = Ko ( function ( ) { return Va ( c , m + "return " + f ) . apply ( k , l ) } ) ; if ( v . source = f , Bi ( v ) ) throw v ; return v } function ba ( t , e , r ) { var n = t ; return ( t = o ( t ) ) ? ( r ? Jr ( n , e , r ) : null == e ) ? t . slice ( A ( t ) , w ( t ) + 1 ) : ( e += "" , t . slice ( u ( t , e ) , c ( t , e ) + 1 ) ) : t } function _a ( t , e , r ) { var n = t ; return t = o ( t ) , t ? t . slice ( ( r ? Jr ( n , e , r ) : null == e ) ? A ( t ) : u ( t , e + "" ) ) : t } function Aa ( t , e , r ) { var n = t ; return t = o ( t ) , t ? ( r ? Jr ( n , e , r ) : null == e ) ? t . slice ( 0 , w ( t ) + 1 ) : t . slice ( 0 , c ( t , e + "" ) + 1 ) : t } function wa ( t , e , r ) { r && Jr ( t , e , r ) && ( e = k ) ; var n = M , i = R ; if ( null != e ) if ( Ii ( e ) ) { var a = "separator" in e ? e . separator : a ; n = "length" in e ? + e . length || 0 : n , i = "omission" in e ? o ( e . omission ) : i } else n = + e || 0 ; if ( t = o ( t ) , n >= t . length ) return t ; var s = n - i . length ; if ( 1 > s ) return i ; var u = t . slice ( 0 , s ) ; if ( null == a ) return u + i ; if ( Ui ( a ) ) { if ( t . slice ( s ) . search ( a ) ) { var c , l , h = t . slice ( 0 , s ) ; for ( a . global || ( a = Wa ( a . source , ( Lt . exec ( a ) || "" ) + "g" ) ) , a . lastIndex = 0 ; c = a . exec ( h ) ; ) l = c . index ; u = u . slice ( 0 , null == l ? s : l ) } } else if ( t . indexOf ( a , s ) != s ) { var d = u . lastIndexOf ( a ) ; d > - 1 && ( u = u . slice ( 0 , d ) ) } return u + i } function xa ( t ) { return t = o ( t ) , t && bt . test ( t ) ? t . replace ( yt , x ) : t } function Ea ( t , e , r ) { return r && Jr ( t , e , r ) && ( e = k ) , t = o ( t ) , t . match ( e || qt ) || [ ] } function ka ( t
weight : 0 , minlen : r } ) ) ; var h = u . addBorderNode ( t , "_bt" ) , d = u . addBorderNode ( t , "_bb" ) , f = t . node ( c ) ; t . setParent ( h , c ) , f . borderTop = h , t . setParent ( d , c ) , f . borderBottom = d , o . each ( l , function ( o ) { n ( t , e , r , i , a , s , o ) ; var u = t . node ( o ) , l = u . borderTop ? u . borderTop : o , f = u . borderBottom ? u . borderBottom : o , p = u . borderTop ? i : 2 * i , g = l !== f ? 1 : a - s [ c ] + 1 ; t . setEdge ( h , l , { weight : p , minlen : g , nestingEdge : ! 0 } ) , t . setEdge ( f , d , { weight : p , minlen : g , nestingEdge : ! 0 } ) } ) , t . parent ( c ) || t . setEdge ( e , h , { weight : 0 , minlen : a + s [ c ] } ) } function i ( t ) { function e ( n , i ) { var a = t . children ( n ) ; a && a . length && o . each ( a , function ( t ) { e ( t , i + 1 ) } ) , r [ n ] = i } var r = { } ; return o . each ( t . children ( ) , function ( t ) { e ( t , 1 ) } ) , r } function a ( t ) { return o . reduce ( t . edges ( ) , function ( e , r ) { return e + t . edge ( r ) . weight } , 0 ) } function s ( t ) { var e = t . graph ( ) ; t . removeNode ( e . nestingRoot ) , delete e . nestingRoot , o . each ( t . edges ( ) , function ( e ) { var r = t . edge ( e ) ; r . nestingEdge && t . removeEdge ( e ) } ) } var o = t ( "./lodash" ) , u = t ( "./util" ) ; e . exports = { run : r , cleanup : s } } , { "./lodash" : 62 , "./util" : 81 } ] , 64 : [ function ( t , e ) { "use strict" ; function r ( t ) { t . graph ( ) . dummyChains = [ ] , a . each ( t . edges ( ) , function ( e ) { n ( t , e ) } ) } function n ( t , e ) { var r = e . v , n = t . node ( r ) . rank , i = e . w , a = t . node ( i ) . rank , o = e . name , u = t . edge ( e ) , c = u . labelRank ; if ( a !== n + 1 ) { t . removeEdge ( e ) ; var l , h , d ; for ( d = 0 , ++ n ; a > n ; ++ d , ++ n ) u . points = [ ] , h = { width : 0 , height : 0 , edgeLabel : u , edgeObj : e , rank : n } , l = s . addDummyNode ( t , "edge" , h , "_d" ) , n === c && ( h . width = u . width , h . height = u . height , h . dummy = "edge-label" , h . labelpos = u . labelpos ) , t . setEdge ( r , l , { weight : u . weight } , o ) , 0 === d && t . graph ( ) . dummyChains . push ( l ) , r = l ; t . setEdge ( r , i , { weight : u . weight } , o ) } } function i ( t ) { a . each ( t . graph ( ) . dummyChains , function ( e ) { var r , n = t . node ( e ) , i = n . edgeLabel ; for ( t . setEdge ( n . edgeObj , i ) ; n . dummy ; ) r = t . successors ( e ) [ 0 ] , t . removeNode ( e ) , i . points . push ( { x : n . x , y : n . y } ) , "edge-label" === n . dummy && ( i . x = n . x , i . y = n . y , i . width = n . width , i . height = n . height ) , e = r , n = t . node ( e ) } ) } var a = t ( "./lodash" ) , s = t ( "./util" ) ; e . exports = { run : r , undo : i } } , { "./lodash" : 62 , "./util" : 81 } ] , 65 : [ function ( t , e ) { function r ( t , e , r ) { var i , a = { } ; n . each ( r , function ( r ) { for ( var n , s , o = t . parent ( r ) ; o ; ) { if ( n = t . parent ( o ) , n ? ( s = a [ n ] , a [ n ] = o ) : ( s = i , i = o ) , s && s !== o ) return void e . setEdge ( s , o ) ; o = n } } ) } var n = t ( "../lodash" ) ; e . exports = r } , { "../lodash" : 62 } ] , 66 : [ function ( t , e ) { function r ( t , e ) { return n . map ( e , function ( e ) { var r = t . inEdges ( e ) ; if ( r . length ) { var i = n . reduce ( r , function ( e , r ) { var n = t . edge ( r ) , i = t . node ( r . v ) ; return { sum : e . sum + n . weight * i . order , weight : e . weight + n . weight } } , { sum : 0 , weight : 0 } ) ; return { v : e , barycenter : i . sum / i . weight , weight : i . weight } } return { v : e } } ) } var n = t ( "../lodash" ) ; e . exports = r } , { "../lodash" : 62 } ] , 67 : [ function ( t , e ) { function r ( t , e , r ) { var s = n ( t ) , o = new a ( { compound : ! 0 } ) . setGraph ( { root : s } ) . setDefaultNodeLabel ( function ( e ) { return t . node ( e ) } ) ; return i . each ( t . nodes ( ) , function ( n ) { var a = t . node ( n ) , u = t . parent ( n ) ; ( a . rank === e || a . minRank <= e && e <= a . maxRank ) && ( o . setNode ( n ) , o . setParent ( n , u || s ) , i . each ( t [ r ] ( n ) , function ( e ) { var r = e . v === n ? e . w : e . v , a = o . edge ( r , n ) , s = i . isUndefined ( a ) ? 0 : a . weight ; o . setEdge ( r , n , { weight : t . edge ( e ) . weight + s } ) } ) , i . has ( a , "minRank" ) && o . setNode ( n , { borderLeft : a . borderLeft [ e ] , borderRight : a . borderRight [ e ] } ) ) } ) , o } function n ( t ) { for ( var e ; t . hasNode ( e = i . uniqueId ( "_root" ) ) ; ) ; return e } var i = t ( "../lodash" ) , a = t ( "../graphlib" ) . Graph ; e . exports = r } , { "../graphlib" : 59 , "../lodash" : 62 } ] , 68 : [ function ( t , e ) { "use strict" ; function r ( t , e ) { for ( var r = 0 , i = 1 ; i < e . length ; ++ i ) r += n ( t , e [ i - 1 ] , e [ i ] ) ; return r } function n ( t , e , r ) { for ( var n = i . zipObject ( r , i . map ( r , function ( t , e ) { return e } ) ) , a = i . flatten ( i . map ( e , function ( e ) { return i . chain ( t . outEdges ( e ) ) . map ( function ( e ) { return { pos : n [ e . w ] , weight : t . edge ( e ) . weight } } ) . sortBy ( "pos" ) . value ( ) } ) , ! 0 ) , s = 1 ; s < r . length ; ) s <<= 1 ; var o = 2 * s - 1 ; s -= 1 ; var u = i . map ( new Array ( o ) , function ( ) { return 0 } ) , c = 0 ; return i . each ( a . forEach ( function ( t ) { var e = t . pos + s ; u [ e ] += t . weight ; for ( var r = 0 ; e > 0 ; ) e % 2 && ( r += u [ e + 1 ] ) , e = e - 1 >> 1 , u [ e ] += t . weight ; c += t . weight * r } ) ) , c } var i = t ( "../lodash" ) ; e . exports = r } , { "../lodash" : 62 } ] , 69 : [ function ( t , e ) { "use strict" ; function r ( t ) { var e = f . maxRank ( t ) , r = n ( t , s . range ( 1 , e + 1 ) , "inEdges" ) , c = n ( t , s . range ( e - 1 , - 1 , - 1 ) , "outEdges" ) , l = o ( t ) ; a ( t , l ) ; for ( var h , d = Number . POSITIVE _INFINITY , p = 0 , g = 0 ; 4 > g ; ++ p , ++ g ) { i ( p % 2 ? r : c , p % 4 >= 2 ) , l = f . buildLayerMatrix ( t ) ; var m = u ( t , l ) ; d > m && ( g = 0 , h = s . cloneDeep ( l ) , d = m ) } a ( t , h ) } function n ( t
"▱" : "fltns" , "ƒ" : "fnof" , "𝔽 " : "Fopf" , "𝕗 " : "fopf" , "∀" : "forall" , "⋔" : "fork" , "⫙" : "forkv" , "ℱ " : "Fscr" , "⨍" : "fpartint" , "½" : "half" , "⅓" : "frac13" , "¼" : "frac14" , "⅕" : "frac15" , "⅙" : "frac16" , "⅛" : "frac18" , "⅔" : "frac23" , "⅖" : "frac25" , "¾" : "frac34" , "⅗" : "frac35" , "⅜" : "frac38" , "⅘" : "frac45" , "⅚" : "frac56" , "⅝" : "frac58" , "⅞" : "frac78" , "⁄ " : "frasl" , "⌢" : "frown" , "𝒻 " : "fscr" , "ǵ" : "gacute" , "Γ" : "Gamma" , "γ " : "gamma" , "Ϝ " : "Gammad" , "⪆" : "gap" , "Ğ" : "Gbreve" , "ğ" : "gbreve" , "Ģ" : "Gcedil" , "Ĝ" : "Gcirc" , "ĝ" : "gcirc" , "Г" : "Gcy" , "г " : "gcy" , "Ġ" : "Gdot" , "ġ" : "gdot" , "≥" : "ge" , "≧" : "gE" , "⪌" : "gEl" , "⋛" : "gel" , "⩾" : "ges" , "⪩" : "gescc" , "⪀" : "gesdot" , "⪂" : "gesdoto" , "⪄" : "gesdotol" , "⋛︀" : "gesl" , "⪔" : "gesles" , "𝔊 " : "Gfr" , "𝔤 " : "gfr" , "≫" : "gg" , "⋙" : "Gg" , "ℷ" : "gimel" , "Ѓ" : "GJcy" , "ѓ" : "gjcy" , "⪥" : "gla" , "≷" : "gl" , "⪒" : "glE" , "⪤" : "glj" , "⪊" : "gnap" , "⪈" : "gne" , "≩" : "gnE" , "⋧" : "gnsim" , "𝔾 " : "Gopf" , "𝕘 " : "gopf" , "⪢" : "GreaterGreater" , "≳" : "gsim" , "𝒢 " : "Gscr" , "ℊ " : "gscr" , "⪎" : "gsime" , "⪐" : "gsiml" , "⪧" : "gtcc" , "⩺" : "gtcir" , ">" : "gt" , "⋗" : "gtdot" , "⦕" : "gtlPar" , "⩼" : "gtquest" , "⥸" : "gtrarr" , "≩︀" : "gvnE" , " " : "hairsp" , "ℋ " : "Hscr" , "Ъ" : "HARDcy" , "ъ" : "hardcy" , "⥈" : "harrcir" , "↔" : "harr" , "↭" : "harrw" , "^" : "Hat" , "ℏ" : "hbar" , "Ĥ" : "Hcirc" , "ĥ" : "hcirc" , "♥" : "hearts" , "…" : "mldr" , "⊹" : "hercon" , "𝔥 " : "hfr" , "ℌ " : "Hfr" , "⤥" : "searhk" , "⤦" : "swarhk" , "⇿" : "hoarr" , "∻" : "homtht" , "↩" : "larrhk" , "↪" : "rarrhk" , "𝕙 " : "hopf" , "ℍ " : "Hopf" , "―" : "horbar" , "𝒽 " : "hscr" , "Ħ" : "Hstrok" , "ħ" : "hstrok" , "⁃ " : "hybull" , "Í" : "Iacute" , "í" : "iacute" , " " : "ic" , "Î" : "Icirc" , "î" : "icirc" , "И" : "Icy" , "и" : "icy" , "İ" : "Idot" , "Е " : "IEcy" , "е " : "iecy" , "¡" : "iexcl" , "𝔦 " : "ifr" , "ℑ " : "Im" , "Ì" : "Igrave" , "ì" : "igrave" , "ⅈ " : "ii" , "⨌" : "qint" , "∭" : "tint" , "⧜" : "iinfin" , "℩" : "iiota" , "IJ" : "IJlig" , "ij" : "ijlig" , "Ī" : "Imacr" , "ī" : "imacr" , "ℐ " : "Iscr" , "ı " : "imath" , "⊷" : "imof" , "Ƶ" : "imped" , "℅" : "incare" , "∞" : "infin" , "⧝" : "infintie" , "⊺" : "intcal" , "∫" : "int" , "∬" : "Int" , "ℤ " : "Zopf" , "⨗" : "intlarhk" , "⨼" : "iprod" , " " : "it" , "Ё" : "IOcy" , "ё" : "iocy" , "Į" : "Iogon" , "į" : "iogon" , "𝕀 " : "Iopf" , "𝕚 " : "iopf" , "Ι " : "Iota" , "ι " : "iota" , "¿" : "iquest" , "𝒾 " : "iscr" , "⋵" : "isindot" , "⋹" : "isinE" , "⋴" : "isins" , "⋳" : "isinsv" , "Ĩ" : "Itilde" , "ĩ" : "itilde" , "І " : "Iukcy" , "і " : "iukcy" , "Ï" : "Iuml" , "ï" : "iuml" , "Ĵ" : "Jcirc" , "ĵ" : "jcirc" , "Й" : "Jcy" , "й" : "jcy" , "𝔍 " : "Jfr" , "𝔧 " : "jfr" , "ȷ" : "jmath" , "𝕁 " : "Jopf" , "𝕛 " : "jopf" , "𝒥 " : "Jscr" , "𝒿 " : "jscr" , "Ј " : "Jsercy" , "ј " : "jsercy" , "Є" : "Jukcy" , "є" : "jukcy" , "Κ " : "Kappa" , "κ" : "kappa" , "ϰ" : "kappav" , "Ķ" : "Kcedil" , "ķ" : "kcedil" , "К " : "Kcy" , "к" : "kcy" , "𝔎 " : "Kfr" , "𝔨 " : "kfr" , "ĸ" : "kgreen" , "Х " : "KHcy" , "х " : "khcy" , "Ќ" : "KJcy" , "ќ" : "kjcy" , "𝕂 " : "Kopf" , "𝕜 " : "kopf" , "𝒦 " : "Kscr" , "𝓀 " : "kscr" , "⇚" : "lAarr" , "Ĺ" : "Lacute" , "ĺ" : "lacute" , "⦴" : "laemptyv" , "ℒ " : "Lscr" , "Λ" : "Lambda" , "λ" : "lambda" , "⟨" : "lang" , "⟪" : "Lang" , "⦑" : "langd" , "⪅" : "lap" , "«" : "laquo" , "⇤" : "larrb" , "⤟" : "larrbfs" , "←" : "larr" , "↞" : "Larr" , "⤝" : "larrfs" , "↫" : "larrlp" , "⤹" : "larrpl" , "⥳" : "larrsim" , "↢" : "larrtl" , "⤙" : "latail" , "⤛" : "lAtail" , "⪫" : "lat" , "⪭" : "late" , "⪭︀" : "lates" , "⤌" : "lbarr" , "⤎" : "lBarr" , "❲ " : "lbbrk" , "{" : "lcub" , "[" : "lsqb" , "⦋" : "lbrke" , "⦏" : "lbrksld" , "⦍" : "lbrkslu" , "Ľ" : "Lcaron" , "ľ" : "lcaron" , "Ļ" : "Lcedil" , "ļ" : "lcedil" , "⌈" : "lceil" , "Л" : "Lcy" , "л" : "lcy" , "⤶" : "ldca" , "“" : "ldquo" , "⥧" : "ldrdhar" , "⥋" : "ldrushar" , "↲" : "ldsh" , "≤" : "le" , "≦" : "lE" , "⇆" : "lrarr" , "⟦" : "lobrk" , "⥡" : "LeftDownTeeVector" , "⥙" : "LeftDownVectorBar" , "⌊" : "lfloor" , "↼" : "lharu" , "⇇" : "llarr" , "⇋" : "lrhar" , "⥎" : "LeftRightVector" , "↤" : "mapstoleft" , "⥚" : "LeftTeeVector" , "⋋" : "lthree" , "⧏" : "LeftTriangleBar" , "⊲" : "vltri" , "⊴" : "ltrie" , "⥑" : "LeftUpDownVector" , "⥠" : "LeftUpTeeVector" , "⥘" : "LeftUpVectorBar" , "↿" : "uharl" , "⥒" : "LeftVectorBar" , "⪋" : "lEg" , "⋚" : "leg" , "⩽" : "les" , "⪨" : "lescc" , "⩿" : "lesdot" , "⪁" : "lesdoto" , "⪃" : "lesdotor" , "⋚︀" : "lesg" , "⪓" : "lesges" , "⋖" : "ltdot" , "≶" : "lg" , "⪡" : "LessLess" , "≲" : "lsim" , "⥼" : "lfisht" , "𝔏 " : "Lfr" , "𝔩 " : "lfr" , "⪑" : "lgE" , "⥢" : "lHar" , "⥪" : "lharul" , "▄" : "lhblk" , "Љ" : "LJcy" , "љ" : "ljcy" , "≪" : "ll" , " <EFBFBD> <EFBFBD>
rfisht : "⥽" , rfloor : "⌋" , rfr : "𝔯 " , Rfr : "ℜ " , rHar : "⥤" , rhard : "⇁" , rharu : "⇀" , rharul : "⥬" , Rho : "Ρ " , rho : "ρ " , rhov : "ϱ " , RightAngleBracket : "⟩" , RightArrowBar : "⇥" , rightarrow : "→" , RightArrow : "→" , Rightarrow : "⇒" , RightArrowLeftArrow : "⇄" , rightarrowtail : "↣" , RightCeiling : "⌉" , RightDoubleBracket : "⟧" , RightDownTeeVector : "⥝" , RightDownVectorBar : "⥕" , RightDownVector : "⇂" , RightFloor : "⌋" , rightharpoondown : "⇁" , rightharpoonup : "⇀" , rightleftarrows : "⇄" , rightleftharpoons : "⇌" , rightrightarrows : "⇉" , rightsquigarrow : "↝" , RightTeeArrow : "↦" , RightTee : "⊢" , RightTeeVector : "⥛" , rightthreetimes : "⋌" , RightTriangleBar : "⧐" , RightTriangle : "⊳" , RightTriangleEqual : "⊵" , RightUpDownVector : "⥏" , RightUpTeeVector : "⥜" , RightUpVectorBar : "⥔" , RightUpVector : "↾" , RightVectorBar : "⥓" , RightVector : "⇀" , ring : "˚" , risingdotseq : "≓" , rlarr : "⇄" , rlhar : "⇌" , rlm : " " , rmoustache : "⎱" , rmoust : "⎱" , rnmid : "⫮" , roang : "⟭" , roarr : "⇾" , robrk : "⟧" , ropar : "⦆" , ropf : "𝕣 " , Ropf : "ℝ " , roplus : "⨮" , rotimes : "⨵" , RoundImplies : "⥰" , rpar : ")" , rpargt : "⦔" , rppolint : "⨒" , rrarr : "⇉" , Rrightarrow : "⇛" , rsaquo : "› " , rscr : "𝓇 " , Rscr : "ℛ " , rsh : "↱" , Rsh : "↱" , rsqb : "]" , rsquo : "’ " , rsquor : "’ " , rthree : "⋌" , rtimes : "⋊" , rtri : "▹" , rtrie : "⊵" , rtrif : "▸" , rtriltri : "⧎" , RuleDelayed : "⧴" , ruluhar : "⥨" , rx : "℞" , Sacute : "Ś" , sacute : "ś" , sbquo : "‚ " , scap : "⪸" , Scaron : "Š" , scaron : "š" , Sc : "⪼" , sc : "≻" , sccue : "≽" , sce : "⪰" , scE : "⪴" , Scedil : "Ş" , scedil : "ş" , Scirc : "Ŝ" , scirc : "ŝ" , scnap : "⪺" , scnE : "⪶" , scnsim : "⋩" , scpolint : "⨓" , scsim : "≿" , Scy : "С " , scy : "с " , sdotb : "⊡" , sdot : "⋅" , sdote : "⩦" , searhk : "⤥" , searr : "↘" , seArr : "⇘" , searrow : "↘" , sect : "§" , semi : ";" , seswar : "⤩" , setminus : "∖ " , setmn : "∖ " , sext : "✶" , Sfr : "𝔖 " , sfr : "𝔰 " , sfrown : "⌢" , sharp : "♯" , SHCHcy : "Щ" , shchcy : "щ" , SHcy : "Ш" , shcy : "ш" , ShortDownArrow : "↓" , ShortLeftArrow : "←" , shortmid : "∣ " , shortparallel : "∥" , ShortRightArrow : "→" , ShortUpArrow : "↑" , shy : " " , Sigma : "Σ" , sigma : "σ " , sigmaf : "ς" , sigmav : "ς" , sim : "∼ " , simdot : "⩪" , sime : "≃" , simeq : "≃" , simg : "⪞" , simgE : "⪠" , siml : "⪝" , simlE : "⪟" , simne : "≆" , simplus : "⨤" , simrarr : "⥲" , slarr : "←" , SmallCircle : "∘" , smallsetminus : "∖ " , smashp : "⨳" , smeparsl : "⧤" , smid : "∣ " , smile : "⌣" , smt : "⪪" , smte : "⪬" , smtes : "⪬︀" , SOFTcy : "Ь " , softcy : "ь" , solbar : "⌿" , solb : "⧄" , sol : "/" , Sopf : "𝕊 " , sopf : "𝕤 " , spades : "♠" , spadesuit : "♠" , spar : "∥" , sqcap : "⊓" , sqcaps : "⊓︀" , sqcup : "⊔" , sqcups : "⊔︀" , Sqrt : "√" , sqsub : "⊏" , sqsube : "⊑" , sqsubset : "⊏" , sqsubseteq : "⊑" , sqsup : "⊐" , sqsupe : "⊒" , sqsupset : "⊐" , sqsupseteq : "⊒" , square : "□" , Square : "□" , SquareIntersection : "⊓" , SquareSubset : "⊏" , SquareSubsetEqual : "⊑" , SquareSuperset : "⊐" , SquareSupersetEqual : "⊒" , SquareUnion : "⊔" , squarf : "▪" , squ : "□" , squf : "▪" , srarr : "→" , Sscr : "𝒮 " , sscr : "𝓈 " , ssetmn : "∖ " , ssmile : "⌣" , sstarf : "⋆" , Star : "⋆" , star : "☆" , starf : "★" , straightepsilon : "ϵ" , straightphi : "ϕ" , strns : "¯" , sub : "⊂" , Sub : "⋐" , subdot : "⪽" , subE : "⫅" , sube : "⊆" , subedot : "⫃" , submult : "⫁" , subnE : "⫋" , subne : "⊊" , subplus : "⪿" , subrarr : "⥹" , subset : "⊂" , Subset : "⋐" , subseteq : "⊆" , subseteqq : "⫅" , SubsetEqual : "⊆" , subsetneq : "⊊" , subsetneqq : "⫋" , subsim : "⫇" , subsub : "⫕" , subsup : "⫓" , succapprox : "⪸" , succ : "≻" , succcurlyeq : "≽" , Succeeds : "≻" , SucceedsEqual : "⪰" , SucceedsSlantEqual : "≽" , SucceedsTilde : "≿" , succeq : "⪰" , succnapprox : "⪺" , succneqq : "⪶" , succnsim : "⋩" , succsim : "≿" , SuchThat : "∋" , sum : "∑" , Sum : "∑" , sung : "♪" , sup1 : "¹" , sup2 : "²" , sup3 : "³" , sup : "⊃" , Sup : "⋑" , supdot : "⪾" , supdsub : "⫘" , supE : "⫆" , supe : "⊇" , supedot : "⫄" , Superset : "⊃" , SupersetEqual : "⊇" , suphsol : "⟉" , suphsub : "⫗" , suplarr : "⥻" , supmult : "⫂" , supnE : "⫌" , supne : "⊋" , supplus : "⫀" , supset : "⊃" , Supset : "⋑" , supseteq : "⊇" , supseteqq : "⫆" , supsetneq : "⊋" , supsetneqq : "⫌" , supsim : "⫈" , supsub : "⫔" , supsup : "⫖" , swarhk : "⤦" , swarr : "↙" , swArr : "⇙" , swarrow : "↙" , swnwar : "⤪" , szlig : "ß" , Tab : " " , target : "⌖" , Tau : "Τ " , tau : "τ" , tbrk : "⎴" , Tcaron : "Ť" , tcaron : "ť" , Tcedil : "Ţ" , tcedil : "ţ" , Tcy : "Т " , tcy : "т" , tdot : "⃛" , telrec : "⌕" , Tfr : "𝔗 " , tfr : "𝔱 " , there4 : "∴" , therefore : "∴" , Therefore : "∴" , Theta : "Θ" , theta : " θ
} } function Me ( t , e ) { R ( 0 , [ t , t . length ] , 0 , e ) } function Re ( t ) { return Ue . call ( this , t , this . week ( ) , this . weekday ( ) , this . localeData ( ) . _week . dow , this . localeData ( ) . _week . doy ) } function Pe ( t ) { return Ue . call ( this , t , this . isoWeek ( ) , this . isoWeekday ( ) , 1 , 4 ) } function qe ( ) { return bt ( this . year ( ) , 1 , 4 ) } function je ( ) { var t = this . localeData ( ) . _week ; return bt ( this . year ( ) , t . dow , t . doy ) } function Ue ( t , e , r , n , i ) { var a ; return null == t ? vt ( this , n , i ) . year : ( a = bt ( t , n , i ) , e > a && ( e = a ) , Ye . call ( this , t , e , r , n , i ) ) } function Ye ( t , e , r , n , i ) { var a = yt ( t , e , r , n , i ) , s = dt ( a . year , 0 , a . dayOfYear ) ; return this . year ( s . getUTCFullYear ( ) ) , this . month ( s . getUTCMonth ( ) ) , this . date ( s . getUTCDate ( ) ) , this } function Ve ( t ) { return null == t ? Math . ceil ( ( this . month ( ) + 1 ) / 3 ) : this . month ( 3 * ( t - 1 ) + this . month ( ) % 3 ) } function Ge ( t ) { return vt ( t , this . _week . dow , this . _week . doy ) . week } function $e ( ) { return this . _week . dow } function He ( ) { return this . _week . doy } function We ( t ) { var e = this . localeData ( ) . week ( this ) ; return null == t ? e : this . add ( 7 * ( t - e ) , "d" ) } function ze ( t ) { var e = vt ( this , 1 , 4 ) . week ; return null == t ? e : this . add ( 7 * ( t - e ) , "d" ) } function Ze ( t , e ) { return "string" != typeof t ? t : isNaN ( t ) ? ( t = e . weekdaysParse ( t ) , "number" == typeof t ? t : null ) : parseInt ( t , 10 ) } function Xe ( t , e ) { return i ( this . _weekdays ) ? this . _weekdays [ t . day ( ) ] : this . _weekdays [ this . _weekdays . isFormat . test ( e ) ? "format" : "standalone" ] [ t . day ( ) ] } function Ke ( t ) { return this . _weekdaysShort [ t . day ( ) ] } function Je ( t ) { return this . _weekdaysMin [ t . day ( ) ] } function Qe ( t , e , r ) { var n , i , a ; for ( this . _weekdaysParse || ( this . _weekdaysParse = [ ] , this . _minWeekdaysParse = [ ] , this . _shortWeekdaysParse = [ ] , this . _fullWeekdaysParse = [ ] ) , n = 0 ; 7 > n ; n ++ ) { if ( i = Lt ( [ 2e3 , 1 ] ) . day ( n ) , r && ! this . _fullWeekdaysParse [ n ] && ( this . _fullWeekdaysParse [ n ] = new RegExp ( "^" + this . weekdays ( i , "" ) . replace ( "." , ".?" ) + "$" , "i" ) , this . _shortWeekdaysParse [ n ] = new RegExp ( "^" + this . weekdaysShort ( i , "" ) . replace ( "." , ".?" ) + "$" , "i" ) , this . _minWeekdaysParse [ n ] = new RegExp ( "^" + this . weekdaysMin ( i , "" ) . replace ( "." , ".?" ) + "$" , "i" ) ) , this . _weekdaysParse [ n ] || ( a = "^" + this . weekdays ( i , "" ) + "|^" + this . weekdaysShort ( i , "" ) + "|^" + this . weekdaysMin ( i , "" ) , this . _weekdaysParse [ n ] = new RegExp ( a . replace ( "." , "" ) , "i" ) ) , r && "dddd" === e && this . _fullWeekdaysParse [ n ] . test ( t ) ) return n ; if ( r && "ddd" === e && this . _shortWeekdaysParse [ n ] . test ( t ) ) return n ; if ( r && "dd" === e && this . _minWeekdaysParse [ n ] . test ( t ) ) return n ; if ( ! r && this . _weekdaysParse [ n ] . test ( t ) ) return n } } function tr ( t ) { if ( ! this . isValid ( ) ) return null != t ? this : 0 / 0 ; var e = this . _isUTC ? this . _d . getUTCDay ( ) : this . _d . getDay ( ) ; return null != t ? ( t = Ze ( t , this . localeData ( ) ) , this . add ( t - e , "d" ) ) : e } function er ( t ) { if ( ! this . isValid ( ) ) return null != t ? this : 0 / 0 ; var e = ( this . day ( ) + 7 - this . localeData ( ) . _week . dow ) % 7 ; return null == t ? e : this . add ( t - e , "d" ) } function rr ( t ) { return this . isValid ( ) ? null == t ? this . day ( ) || 7 : this . day ( this . day ( ) % 7 ? t : t - 7 ) : null != t ? this : 0 / 0 } function nr ( t ) { var e = Math . round ( ( this . clone ( ) . startOf ( "day" ) - this . clone ( ) . startOf ( "year" ) ) / 864e5 ) + 1 ; return null == t ? e : this . add ( t - e , "d" ) } function ir ( ) { return this . hours ( ) % 12 || 12 } function ar ( t , e ) { R ( t , 0 , 0 , function ( ) { return this . localeData ( ) . meridiem ( this . hours ( ) , this . minutes ( ) , e ) } ) } function sr ( t , e ) { return e . _meridiemParse } function or ( t ) { return "p" === ( t + "" ) . toLowerCase ( ) . charAt ( 0 ) } function ur ( t , e , r ) { return t > 11 ? r ? "pm" : "PM" : r ? "am" : "AM" } function cr ( t , e ) { e [ Sn ] = b ( 1e3 * ( "0." + t ) ) } function lr ( ) { return this . _isUTC ? "UTC" : "" } function hr ( ) { return this . _isUTC ? "Coordinated Universal Time" : "" } function dr ( t ) { return Lt ( 1e3 * t ) } function fr ( ) { return Lt . apply ( null , arguments ) . parseZone ( ) } function pr ( t , e , r ) { var n = this . _calendar [ t ] ; return B ( n ) ? n . call ( e , r ) : n } function gr ( t ) { var e = this . _longDateFormat [ t ] , r = this . _longDateFormat [ t . toUpperCase ( ) ] ; return e || ! r ? e : ( this . _longDateFormat [ t ] = r . replace ( /MMMM|MM|DD|dddd/g , function ( t ) { return t . slice ( 1 ) } ) , this . _longDateFormat [ t ] ) } function mr ( ) { return this . _invalidDate } function yr ( t ) { return this . _ordinal . replace ( "%d" , t ) } function vr ( t ) { return t } function br ( t , e , r , n ) { var i = this . _relativeTime [ r ] ; return B ( i ) ? i ( t , e , r , n ) : i . replace ( /%d/i , t ) } function _r ( t , e ) { var r = this . _relativeTime [ t > 0 ? "future" : "past" ] ; return B ( r ) ? r ( e ) : r . replace ( /%s/i , e ) } function Ar ( t ) { var e , r ; for ( r in t ) e = t [ r ] , B ( e ) ? this [ r ] = e : this [ "_" + r ] = e ; this . _ordinalParseLenient = new RegExp ( this . _ordinalPa
p = ! 1 } ) ; var v = s . node ( ) . getBBox ( ) ; return s . insert ( "rect" , ":first-child" ) . attr ( "x" , 0 ) . attr ( "y" , 0 ) . attr ( "width" , v . width + 2 * l . padding ) . attr ( "height" , v . height + l . padding + . 5 * l . dividerMargin ) , d . attr ( "x2" , v . width + 2 * l . padding ) , m . attr ( "x2" , v . width + 2 * l . padding ) , a . width = v . width + 2 * l . padding , a . height = v . height + l . padding + . 5 * l . dividerMargin , i [ n ] = a , c ++ , a } ; e . exports . setConf = function ( t ) { var e = Object . keys ( t ) ; e . forEach ( function ( e ) { l [ e ] = t [ e ] } ) } , e . exports . draw = function ( t , e ) { r . yy . clear ( ) , r . parse ( t ) , u . info ( "Rendering diagram " + t ) ; var i = a . select ( "#" + e ) ; d ( i ) ; var s = new o . graphlib . Graph ( { multigraph : ! 0 } ) ; s . setGraph ( { isMultiGraph : ! 0 } ) , s . setDefaultEdgeLabel ( function ( ) { return { } } ) ; var c , l = n . getClasses ( ) , f = Object . keys ( l ) ; for ( c = 0 ; c < f . length ; c ++ ) { var m = l [ f [ c ] ] , y = g ( i , m ) ; s . setNode ( y . id , y ) , u . info ( "Org height: " + y . height ) } var v = n . getRelations ( ) , c = 0 ; v . forEach ( function ( t ) { c += 1 , u . info ( "tjoho" + h ( t . id1 ) + h ( t . id2 ) + JSON . stringify ( t ) ) , s . setEdge ( h ( t . id1 ) , h ( t . id2 ) , { relation : t } ) } ) , o . layout ( s ) , s . nodes ( ) . forEach ( function ( t ) { "undefined" != typeof t && ( u . debug ( "Node " + t + ": " + JSON . stringify ( s . node ( t ) ) ) , a . select ( "#" + t ) . attr ( "transform" , "translate(" + ( s . node ( t ) . x - s . node ( t ) . width / 2 ) + "," + ( s . node ( t ) . y - s . node ( t ) . height / 2 ) + " )" ) ) } ) , s . edges ( ) . forEach ( function ( t ) { u . debug ( "Edge " + t . v + " -> " + t . w + ": " + JSON . stringify ( s . edge ( t ) ) ) , p ( i , s . edge ( t ) , s . edge ( t ) . relation ) } ) , i . attr ( "height" , "100%" ) , i . attr ( "width" , "100%" ) } } , { "../../d3" : 107 , "../../logger" : 126 , "./classDb" : 108 , "./parser/classDiagram" : 110 , dagre : 53 } ] , 110 : [ function ( t , e , r ) { ( function ( n ) { "use strict" ; var i = function ( ) { function t ( ) { this . yy = { } } var e = function ( t , e , r , n ) { for ( r = r || { } , n = t . length ; n -- ; r [ t [ n ] ] = e ) ; return r } , r = [ 1 , 11 ] , n = [ 1 , 12 ] , i = [ 1 , 13 ] , a = [ 1 , 15 ] , s = [ 1 , 16 ] , o = [ 1 , 17 ] , u = [ 6 , 8 ] , c = [ 1 , 26 ] , l = [ 1 , 27 ] , h = [ 1 , 28 ] , d = [ 1 , 29 ] , f = [ 1 , 30 ] , p = [ 1 , 31 ] , g = [ 6 , 8 , 13 , 17 , 23 , 26 , 27 , 28 , 29 , 30 , 31 ] , m = [ 6 , 8 , 13 , 17 , 23 , 26 , 27 , 28 , 29 , 30 , 31 , 45 , 46 , 47 ] , y = [ 23 , 45 , 46 , 47 ] , v = [ 23 , 30 , 31 , 45 , 46 , 47 ] , b = [ 23 , 26 , 27 , 28 , 29 , 45 , 46 , 47 ] , _ = [ 6 , 8 , 13 ] , A = [ 1 , 46 ] , w = { trace : function ( ) { } , yy : { } , symbols _ : { error : 2 , mermaidDoc : 3 , graphConfig : 4 , CLASS _DIAGRAM : 5 , NEWLINE : 6 , statements : 7 , EOF : 8 , statement : 9 , className : 10 , alphaNumToken : 11 , relationStatement : 12 , LABEL : 13 , classStatement : 14 , methodStatement : 15 , CLASS : 16 , STRUCT _START : 17 , members : 18 , STRUCT _STOP : 19 , MEMBER : 20 , SEPARATOR : 21 , relation : 22 , STR : 23 , relationType : 24 , lineType : 25 , AGGREGATION : 26 , EXTENSION : 27 , COMPOSITION : 28 , DEPENDENCY : 29 , LINE : 30 , DOTTED _LINE : 31 , commentToken : 32 , textToken : 33 , graphCodeTokens : 34 , textNoTagsToken : 35 , TAGSTART : 36 , TAGEND : 37 , "==" : 38 , "--" : 39 , PCT : 40 , DEFAULT : 41 , SPACE : 42 , MINUS : 43 , keywords : 44 , UNICODE _TEXT : 45 , NUM : 46 , ALPHA : 47 , $accept : 0 , $end : 1 } , terminals _ : { 2 : "error" , 5 : "CLASS_DIAGRAM" , 6 : "NEWLINE" , 8 : "EOF" , 13 : "LABEL" , 16 : "CLASS" , 17 : "STRUCT_START" , 19 : "STRUCT_STOP" , 20 : "MEMBER" , 21 : "SEPARATOR" , 23 : "STR" , 26 : "AGGREGATION" , 27 : "EXTENSION" , 28 : "COMPOSITION" , 29 : "DEPENDENCY" , 30 : "LINE" , 31 : "DOTTED_LINE" , 34 : "graphCodeTokens" , 36 : "TAGSTART" , 37 : "TAGEND" , 38 : "==" , 39 : "--" , 40 : "PCT" , 41 : "DEFAULT" , 42 : "SPACE" , 43 : "MINUS" , 44 : "keywords" , 45 : "UNICODE_TEXT" , 46 : "NUM" , 47 : "ALPHA" } , productions _ : [ 0 , [ 3 , 1 ] , [ 4 , 4 ] , [ 7 , 1 ] , [ 7 , 3 ] , [ 10 , 2 ] , [ 10 , 1 ] , [ 9 , 1 ] , [ 9 , 2 ] , [ 9 , 1 ] , [ 9 , 1 ] , [ 14 , 2 ] , [ 14 , 5 ] , [ 18 , 1 ] , [ 18 , 2 ] , [ 15 , 1 ] , [ 15 , 2 ] , [ 15 , 1 ] , [ 15 , 1 ] , [ 12 , 3 ] , [ 12 , 4 ] , [ 12 , 4 ] , [ 12 , 5 ] , [ 22 , 3 ] , [ 22 , 2 ] , [ 22 , 2 ] , [ 22 , 1 ] , [ 24 , 1 ] , [ 24 , 1 ] , [ 24 , 1 ] , [ 24 , 1 ] , [ 25 , 1 ] , [ 25 , 1 ] , [ 32 , 1 ] , [ 32 , 1 ] , [ 33 , 1 ] , [ 33 , 1 ] , [ 33 , 1 ] , [ 33 , 1 ] , [ 33 , 1 ] , [ 33 , 1 ] , [ 33 , 1 ] , [ 35 , 1 ] , [ 35 , 1 ] , [ 35 , 1 ] , [ 35 , 1 ] , [ 11 , 1 ] , [ 11 , 1 ] , [ 11 , 1 ] ] , performAction : function ( t , e , r , n , i , a ) { var s = a . length - 1 ; switch ( i ) { case 5 : this . $ = a [ s - 1 ] + a [ s ] ; break ; case 6 : this . $ = a [ s ] ; break ; case 7 : n . addRelation ( a [ s ] ) ; break ; case 8 : a [ s - 1 ] . title = n . cleanupLabel ( a [ s ] ) , n . addRelation ( a [ s - 1 ] ) ; break ; case 12 : n . addMembers ( a [ s - 3 ] , a [ s - 1 ] ) ; break ; case 13 : this . $ = [ a [ s ] ] ; break ; case 14 : a [ s ] . push ( a [ s - 1 ] ) , this . $ = a [ s ] ; break ; case 15 : break ; case 16 : n . addMembers ( a [ s - 1 ] , n . cleanupLabel ( a [ s ] ) ) ; break ; case 17 : console . warn ( "Member" , a [ s ] ) ; break ; case 18 : break ; case 19 : this . $ = { id1 : a [ s - 2 ] , id2 : a [ s ] , relation : a [ s - 1 ] , relationTitle1 : "none" , relationTitle2 : "none" } ; break ; case 20 : this . $ = { id1 : a [ s - 3 ] , id2 : a [ s ] , relation : a [ s - 1 ] , relationTitle1 : a [ s - 2 ] , relationTitle2 : "none" } ; break ; case 21 : this . $ = { id1 : a [ s - 3 ] , id2 : a [ s ] , relation : a [ s - 2 ] , relationTitle1 : "none" , relationTitle2 : a [ s - 1 ] } ; break ; case 22 : this . $ = { id1 : a [ s - 4 ] , id2 : a [ s ] , relation : a [ s - 2 ] , rel
s } , r . draw = function ( t , e , u ) { c . debug ( "Drawing flowchart" ) ; var h ; n . clear ( ) , h = u ? a . parser : i . parser , h . yy = n ; try { h . parse ( t ) } catch ( d ) { c . debug ( "Parsing failed" ) } var f ; f = n . getDirection ( ) , "undefined" == typeof f && ( f = "TD" ) ; var p , g = new o . graphlib . Graph ( { multigraph : ! 0 , compound : ! 0 } ) . setGraph ( { rankdir : f , marginx : 20 , marginy : 20 } ) . setDefaultEdgeLabel ( function ( ) { return { } } ) , m = n . getSubGraphs ( ) , y = 0 ; for ( y = m . length - 1 ; y >= 0 ; y -- ) p = m [ y ] , n . addVertex ( p . id , p . title , "group" , void 0 ) ; var v = n . getVertices ( ) , b = n . getEdges ( ) ; y = 0 ; var _ ; for ( y = m . length - 1 ; y >= 0 ; y -- ) for ( p = m [ y ] , s . selectAll ( "cluster" ) . append ( "text" ) , _ = 0 ; _ < p . nodes . length ; _ ++ ) g . setParent ( p . nodes [ _ ] , p . id ) ; r . addVertices ( v , g ) , r . addEdges ( b , g ) ; var A = new o . render ; A . shapes ( ) . question = function ( t , e , r ) { var n = e . width , i = e . height , a = . 8 * ( n + i ) , s = [ { x : a / 2 , y : 0 } , { x : a , y : - a / 2 } , { x : a / 2 , y : - a } , { x : 0 , y : - a / 2 } ] , u = t . insert ( "polygon" , ":first-child" ) . attr ( "points" , s . map ( function ( t ) { return t . x + "," + t . y } ) . join ( " " ) ) . attr ( "rx" , 5 ) . attr ( "ry" , 5 ) . attr ( "transform" , "translate(" + - a / 2 + "," + 2 * a / 4 + ")" ) ; return r . intersect = function ( t ) { return o . intersect . polygon ( r , s , t ) } , u } , A . shapes ( ) . rect _left _inv _arrow = function ( t , e , r ) { var n = e . width , i = e . height , a = [ { x : - i / 2 , y : 0 } , { x : n , y : 0 } , { x : n , y : - i } , { x : - i / 2 , y : - i } , { x : 0 , y : - i / 2 } ] , s = t . insert ( "polygon" , ":first-child" ) . attr ( "points" , a . map ( function ( t ) { return t . x + "," + t . y } ) . join ( " " ) ) . attr ( "transform" , "translate(" + - n / 2 + "," + 2 * i / 4 + ")" ) ; return r . intersect = function ( t ) { return o . intersect . polygon ( r , a , t ) } , s } , A . shapes ( ) . rect _right _inv _arrow = function ( t , e , r ) { var n = e . width , i = e . height , a = [ { x : 0 , y : 0 } , { x : n + i / 2 , y : 0 } , { x : n , y : - i / 2 } , { x : n + i / 2 , y : - i } , { x : 0 , y : - i } ] , s = t . insert ( "polygon" , ":first-child" ) . attr ( "points" , a . map ( function ( t ) { return t . x + "," + t . y } ) . join ( " " ) ) . attr ( "transform" , "translate(" + - n / 2 + "," + 2 * i / 4 + ")" ) ; return r . intersect = function ( t ) { return o . intersect . polygon ( r , a , t ) } , s } , A . arrows ( ) . none = function ( t , e , r , n ) { var i = t . append ( "marker" ) . attr ( "id" , e ) . attr ( "viewBox" , "0 0 10 10" ) . attr ( "refX" , 9 ) . attr ( "refY" , 5 ) . attr ( "markerUnits" , "strokeWidth" ) . attr ( "markerWidth" , 8 ) . attr ( "markerHeight" , 6 ) . attr ( "orient" , "auto" ) , a = i . append ( "path" ) . attr ( "d" , "M 0 0 L 0 0 L 0 0 z" ) ; o . util . applyStyle ( a , r [ n + "Style" ] ) } ; var w = s . select ( "#" + e ) , x = s . select ( "#" + e + " g" ) ; for ( A ( x , g ) , x . selectAll ( "g.node" ) . attr ( "title" , function ( ) { return n . getTooltip ( this . id ) } ) , l . useMaxWidth ? ( w . attr ( "height" , "100%" ) , w . attr ( "width" , l . width ) , w . attr ( "viewBox" , "0 0 " + ( g . graph ( ) . width + 20 ) + " " + ( g . graph ( ) . height + 20 ) ) , w . attr ( "style" , "max-width:" + ( g . graph ( ) . width + 20 ) + "px;" ) ) : ( w . attr ( "height" , g . graph ( ) . height ) , "undefined" == typeof l . width ? w . attr ( "width" , g . graph ( ) . width ) : w . attr ( "width" , l . width ) , w . attr ( "viewBox" , "0 0 " + ( g . graph ( ) . width + 20 ) + " " + ( g . graph ( ) . height + 20 ) ) ) , n . indexNodes ( "subGraph" + y ) , y = 0 ; y < m . length ; y ++ ) if ( p = m [ y ] , "undefined" !== p . title ) { var E = document . querySelectorAll ( "#" + e + " #" + p . id + " rect" ) , k = document . querySelectorAll ( "#" + e + " #" + p . id ) , D = E [ 0 ] . x . baseVal . value , C = E [ 0 ] . y . baseVal . value , F = E [ 0 ] . width . baseVal . value , T = s . select ( k [ 0 ] ) , S = T . append ( "text" ) ; S . attr ( "x" , D + F / 2 ) , S . attr ( "y" , C + 14 ) , S . attr ( "fill" , "black" ) , S . attr ( "stroke" , "none" ) , S . attr ( "id" , e + "Text" ) , S . style ( "text-anchor" , "middle" ) , S . text ( "undefined" == typeof p . title ? "Undef" : p . title ) } } } , { "../../d3" : 107 , "../../logger" : 126 , "./dagre-d3" : 114 , "./graphDb" : 116 , "./parser/dot" : 117 , "./parser/flow" : 118 } ] , 116 : [ function ( require , module , exports ) { ( function ( global ) { "use strict" ; var Logger = require ( "../../logger" ) , log = new Logger . Log , d3 = require ( "../../d3" ) , vertices = { } , edges = [ ] , classes = [ ] , subGraphs = [ ] , tooltips = { } , subCount = 0 , direction , funs = [ ] ; exports . addVertex = function ( t , e , r , n ) { var i ; "undefined" != typeof t && 0 !== t . trim ( ) . length && ( "undefined" == typeof vertices [ t ] && ( vertices [ t ] = { id : t , styles : [ ] , classes : [ ] } ) , "undefined" != typeof e && ( i = e . trim ( ) , '"' === i [ 0 ] && '"' === i [ i . length - 1 ] && ( i = i . substring ( 1 , i . length - 1 ) ) , vertices [ t ] . text = i ) , "undefined" != typeof r && ( vertices [ t ] . type = r ) , "undefined" != typeof r && ( vertices [ t ] . type = r ) , "undefined" != typeof n && null !== n && n . forEach ( function ( e ) { vertices [ t ] . styles . push ( e ) } ) ) } , exports . addLink = function ( t , e , r , n ) { log . debug ( "Got edge" , t , e ) ; var i = { start : t , end : e , type : void 0 , text : "" } ; n = r . text , "undefined" != typeof n && ( i . text = n . trim ( ) , '"' === i . text [ 0 ] && '"' === i . text [ i . text . length - 1 ] && ( i . text = i . text . sub
performAction : function ( t , e , r , n , i , a ) { var s = a . length - 1 ; switch ( i ) { case 2 : this . $ = [ ] ; break ; case 3 : a [ s ] !== [ ] && a [ s - 1 ] . push ( a [ s ] ) , this . $ = a [ s - 1 ] ; break ; case 4 : case 57 : case 59 : case 60 : case 92 : case 94 : case 95 : case 108 : this . $ = a [ s ] ; break ; case 11 : n . setDirection ( a [ s - 1 ] ) , this . $ = a [ s - 1 ] ; break ; case 12 : n . setDirection ( "LR" ) , this . $ = a [ s - 1 ] ; break ; case 13 : n . setDirection ( "RL" ) , this . $ = a [ s - 1 ] ; break ; case 14 : n . setDirection ( "BT" ) , this . $ = a [ s - 1 ] ; break ; case 15 : n . setDirection ( "TB" ) , this . $ = a [ s - 1 ] ; break ; case 30 : this . $ = a [ s - 1 ] ; break ; case 31 : case 32 : case 33 : case 34 : case 35 : this . $ = [ ] ; break ; case 36 : this . $ = n . addSubGraph ( a [ s - 1 ] , a [ s - 3 ] ) ; break ; case 37 : this . $ = n . addSubGraph ( a [ s - 1 ] , void 0 ) ; break ; case 41 : n . addLink ( a [ s - 2 ] , a [ s ] , a [ s - 1 ] ) , this . $ = [ a [ s - 2 ] , a [ s ] ] ; break ; case 42 : this . $ = [ a [ s ] ] ; break ; case 43 : this . $ = a [ s - 3 ] , n . addVertex ( a [ s - 3 ] , a [ s - 1 ] , "square" ) ; break ; case 44 : this . $ = a [ s - 4 ] , n . addVertex ( a [ s - 4 ] , a [ s - 2 ] , "square" ) ; break ; case 45 : this . $ = a [ s - 5 ] , n . addVertex ( a [ s - 5 ] , a [ s - 2 ] , "circle" ) ; break ; case 46 : this . $ = a [ s - 6 ] , n . addVertex ( a [ s - 6 ] , a [ s - 3 ] , "circle" ) ; break ; case 47 : this . $ = a [ s - 3 ] , n . addVertex ( a [ s - 3 ] , a [ s - 1 ] , "ellipse" ) ; break ; case 48 : this . $ = a [ s - 4 ] , n . addVertex ( a [ s - 4 ] , a [ s - 2 ] , "ellipse" ) ; break ; case 49 : this . $ = a [ s - 3 ] , n . addVertex ( a [ s - 3 ] , a [ s - 1 ] , "round" ) ; break ; case 50 : this . $ = a [ s - 4 ] , n . addVertex ( a [ s - 4 ] , a [ s - 2 ] , "round" ) ; break ; case 51 : this . $ = a [ s - 3 ] , n . addVertex ( a [ s - 3 ] , a [ s - 1 ] , "diamond" ) ; break ; case 52 : this . $ = a [ s - 4 ] , n . addVertex ( a [ s - 4 ] , a [ s - 2 ] , "diamond" ) ; break ; case 53 : this . $ = a [ s - 3 ] , n . addVertex ( a [ s - 3 ] , a [ s - 1 ] , "odd" ) ; break ; case 54 : this . $ = a [ s - 4 ] , n . addVertex ( a [ s - 4 ] , a [ s - 2 ] , "odd" ) ; break ; case 55 : this . $ = a [ s ] , n . addVertex ( a [ s ] ) ; break ; case 56 : this . $ = a [ s - 1 ] , n . addVertex ( a [ s - 1 ] ) ; break ; case 58 : case 93 : case 96 : case 109 : this . $ = a [ s - 1 ] + "" + a [ s ] ; break ; case 61 : this . $ = "v" ; break ; case 62 : this . $ = "-" ; break ; case 63 : a [ s - 1 ] . text = a [ s ] , this . $ = a [ s - 1 ] ; break ; case 64 : case 65 : a [ s - 2 ] . text = a [ s - 1 ] , this . $ = a [ s - 2 ] ; break ; case 66 : this . $ = a [ s ] ; break ; case 67 : this . $ = { type : "arrow" , stroke : "normal" , text : a [ s - 1 ] } ; break ; case 68 : this . $ = { type : "arrow_circle" , stroke : "normal" , text : a [ s - 1 ] } ; break ; case 69 : this . $ = { type : "arrow_cross" , stroke : "normal" , text : a [ s - 1 ] } ; break ; case 70 : this . $ = { type : "arrow_open" , stroke : "normal" , text : a [ s - 1 ] } ; break ; case 71 : this . $ = { type : "arrow" , stroke : "dotted" , text : a [ s - 1 ] } ; break ; case 72 : this . $ = { type : "arrow_circle" , stroke : "dotted" , text : a [ s - 1 ] } ; break ; case 73 : this . $ = { type : "arrow_cross" , stroke : "dotted" , text : a [ s - 1 ] } ; break ; case 74 : this . $ = { type : "arrow_open" , stroke : "dotted" , text : a [ s - 1 ] } ; break ; case 75 : this . $ = { type : "arrow" , stroke : "thick" , text : a [ s - 1 ] } ; break ; case 76 : this . $ = { type : "arrow_circle" , stroke : "thick" , text : a [ s - 1 ] } ; break ; case 77 : this . $ = { type : "arrow_cross" , stroke : "thick" , text : a [ s - 1 ] } ; break ; case 78 : this . $ = { type : "arrow_open" , stroke : "thick" , text : a [ s - 1 ] } ; break ; case 79 : this . $ = { type : "arrow" , stroke : "normal" } ; break ; case 80 : this . $ = { type : "arrow_circle" , stroke : "normal" } ; break ; case 81 : this . $ = { type : "arrow_cross" , stroke : "normal" } ; break ; case 82 : this . $ = { type : "arrow_open" , stroke : "normal" } ; break ; case 83 : this . $ = { type : "arrow" , stroke : "dotted" } ; break ; case 84 : this . $ = { type : "arrow_circle" , stroke : "dotted" } ; break ; case 85 : this . $ = { type : "arrow_cross" , stroke : "dotted" } ; break ; case 86 : this . $ = { type : "arrow_open" , stroke : "dotted" } ; break ; case 87 : this . $ = { type : "arrow" , stroke : "thick" } ; break ; case 88 : this . $ = { type : "arrow_circle" , stroke : "thick" } ; break ; case 89 : this . $ = { type : "arrow_cross" , stroke : "thick" } ; break ; case 90 : this . $ = { type : "arrow_open" , stroke : "thick" } ; break ; case 91 : this . $ = a [ s - 1 ] ; break ; case 110 : case 111 : this . $ = a [ s - 4 ] , n . addClass ( a [ s - 2 ] , a [ s ] ) ; break ; case 112 : this . $ = a [ s - 4 ] , n . setClass ( a [ s - 2 ] , a [ s ] ) ; break ; case 113 : this . $ = a [ s - 4 ] , n . setClickEvent ( a [ s - 2 ] , a [ s ] , void 0 , void 0 ) ; break ; case 114 : this . $ = a [ s - 6 ] , n . setClickEvent ( a [ s - 4 ] , a [ s - 2 ] , void 0 , a [ s ] ) ; break ; case 115 : this . $ = a [ s - 4 ] , n . setClickEvent ( a [ s - 2 ] , void 0 , a [ s ] , void 0 ) ; break ; case 116 : this . $ = a [ s - 6 ] , n . setClickEvent ( a [ s - 4 ] , void 0 , a [ s - 2 ] , a [ s ] ) ; break ; case 117 : this . $ = a [ s - 4 ] , n . addVertex ( a [ s - 2 ] , void 0 , void 0 , a [ s ] ) ; break ; case 118 : case 119 : case 120 : this . $ = a [ s - 4 ] , n . updateLink ( a [ s - 2 ] , a [ s ] ) ; break ; case 122 : this . $ = [ a [ s ] ] ; break ; case 123 : a [ s - 2 ] . push ( a [ s ] ) , this . $ = a [ s - 2 ] ; break ; case 125 : this . $ = a [ s - 1 ] + a [ s ] } } , table : [ { 3 : 1 , 4 : 2 , 9 : r , 10 : n , 12 : i } , { 1 : [ 3 ] } , e ( a , s , { 5 : 6 } ) , { 4 : 7 , 9 : r , 10 : n , 12 : i } , { 4 : 8 , 9 : r , 10 :
e . mermaidAPI . parseError ( t , r ) } } ) . call ( this , "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : { } ) } , { "../../logger" : 126 , moment : 105 } ] , 120 : [ function ( t , e ) { "use strict" ; var r = t ( "./parser/gantt" ) . parser ; r . yy = t ( "./ganttDb" ) ; var n , i = t ( "../../d3" ) , a = t ( "moment" ) , s = { titleTopMargin : 25 , barHeight : 20 , barGap : 4 , topPadding : 50 , sidePadding : 75 , gridLineStartPadding : 35 , fontSize : 11 , fontFamily : '"Open-Sans", "sans-serif"' } ; e . exports . setConf = function ( t ) { var e = Object . keys ( t ) ; e . forEach ( function ( e ) { s [ e ] = t [ e ] } ) } ; var o ; e . exports . draw = function ( t , e ) { function u ( t , e , r ) { var n = s . barHeight , a = n + s . barGap , o = s . topPadding , u = s . sidePadding , f = i . scale . linear ( ) . domain ( [ 0 , x . length ] ) . range ( [ "#00B9FA" , "#F95002" ] ) . interpolate ( i . interpolateHcl ) ; l ( u , o , e , r ) , c ( t , a , o , u , n , f , e , r ) , h ( a , o , u , n , f ) , d ( u , o , e , r ) } function c ( t , e , r , n , i , a , o ) { b . append ( "g" ) . selectAll ( "rect" ) . data ( t ) . enter ( ) . append ( "rect" ) . attr ( "x" , 0 ) . attr ( "y" , function ( t , n ) { return n * e + r - 2 } ) . attr ( "width" , function ( ) { return o - n / 2 } ) . attr ( "height" , e ) . attr ( "class" , function ( t ) { for ( var e = 0 ; e < x . length ; e ++ ) if ( t . type === x [ e ] ) return "section section" + e % s . numberSectionStyles ; return "section section0" } ) ; var u = b . append ( "g" ) . selectAll ( "rect" ) . data ( t ) . enter ( ) ; u . append ( "rect" ) . attr ( "rx" , 3 ) . attr ( "ry" , 3 ) . attr ( "x" , function ( t ) { return w ( t . startTime ) + n } ) . attr ( "y" , function ( t , n ) { return n * e + r } ) . attr ( "width" , function ( t ) { return w ( t . endTime ) - w ( t . startTime ) } ) . attr ( "height" , i ) . attr ( "class" , function ( t ) { for ( var e = "task " , r = 0 , n = 0 ; n < x . length ; n ++ ) t . type === x [ n ] && ( r = n % s . numberSectionStyles ) ; return t . active ? t . crit ? e + " activeCrit" + r : e + " active" + r : t . done ? t . crit ? e + " doneCrit" + r : e + " done" + r : t . crit ? e + " crit" + r : e + " task" + r } ) , u . append ( "text" ) . text ( function ( t ) { return t . task } ) . attr ( "font-size" , s . fontSize ) . attr ( "x" , function ( t ) { var e = w ( t . startTime ) , r = w ( t . endTime ) , i = this . getBBox ( ) . width ; return i > r - e ? r + i + 1.5 * s . sidePadding > o ? e + n - 5 : r + n + 5 : ( r - e ) / 2 + e + n } ) . attr ( "y" , function ( t , n ) { return n * e + s . barHeight / 2 + ( s . fontSize / 2 - 2 ) + r } ) . attr ( "text-height" , i ) . attr ( "class" , function ( t ) { for ( var e = w ( t . startTime ) , r = w ( t . endTime ) , n = this . getBBox ( ) . width , i = 0 , a = 0 ; a < x . length ; a ++ ) t . type === x [ a ] && ( i = a % s . numberSectionStyles ) ; var u = "" ; return t . active && ( u = t . crit ? "activeCritText" + i : "activeText" + i ) , t . done ? u = t . crit ? u + " doneCritText" + i : u + " doneText" + i : t . crit && ( u = u + " critText" + i ) , n > r - e ? r + n + 1.5 * s . sidePadding > o ? "taskTextOutsideLeft taskTextOutside" + i + " " + u : "taskTextOutsideRight taskTextOutside" + i + " " + u : "taskText taskText" + i + " " + u } ) } function l ( t , e , r , a ) { var o , u = [ [ ".%L" , function ( t ) { return t . getMilliseconds ( ) } ] , [ ":%S" , function ( t ) { return t . getSeconds ( ) } ] , [ "h1 %I:%M" , function ( t ) { return t . getMinutes ( ) } ] ] , c = [ [ "%Y" , function ( ) { return ! 0 } ] ] , l = [ [ "%I:%M" , function ( t ) { return t . getHours ( ) } ] , [ "%a %d" , function ( t ) { return t . getDay ( ) && 1 != t . getDate ( ) } ] , [ "%b %d" , function ( t ) { return 1 != t . getDate ( ) } ] , [ "%B" , function ( t ) { return t . getMonth ( ) } ] ] ; "undefined" != typeof s . axisFormatter && ( l = [ ] , s . axisFormatter . forEach ( function ( t ) { var e = [ ] ; e [ 0 ] = t [ 0 ] , e [ 1 ] = t [ 1 ] , l . push ( e ) } ) ) , o = u . concat ( l ) . concat ( c ) ; var h = i . svg . axis ( ) . scale ( w ) . orient ( "bottom" ) . tickSize ( - a + e + s . gridLineStartPadding , 0 , 0 ) . tickFormat ( i . time . format . multi ( o ) ) ; n > 7 && 230 > n && ( h = h . ticks ( i . time . monday . range ) ) , b . append ( "g" ) . attr ( "class" , "grid" ) . attr ( "transform" , "translate(" + t + ", " + ( a - 50 ) + ")" ) . call ( h ) . selectAll ( "text" ) . style ( "text-anchor" , "middle" ) . attr ( "fill" , "#000" ) . attr ( "stroke" , "none" ) . attr ( "font-size" , 10 ) . attr ( "dy" , "1em" ) } function h ( t , e ) { for ( var r = [ ] , n = 0 , i = 0 ; i < x . length ; i ++ ) r [ i ] = [ x [ i ] , g ( x [ i ] , k ) ] ; b . append ( "g" ) . selectAll ( "text" ) . data ( r ) . enter ( ) . append ( "text" ) . text ( function ( t ) { return t [ 0 ] } ) . attr ( "x" , 10 ) . attr ( "y" , function ( i , a ) { if ( ! ( a > 0 ) ) return i [ 1 ] * t / 2 + e ; for ( var s = 0 ; a > s ; s ++ ) return n += r [ a - 1 ] [ 1 ] , i [ 1 ] * t / 2 + n * t + e } ) . attr ( "class" , function ( t ) { for ( var e = 0 ; e < x . length ; e ++ ) if ( t [ 0 ] === x [ e ] ) return "sectionTitle sectionTitle" + e % s . numberSectionStyles ; return "sectionTitle" } ) } function d ( t , e , r , n ) { var i = b . append ( "g" ) . attr ( "class" , "today" ) , a = new Date ; i . append ( "line" ) . attr ( "x1" , w ( a ) + t ) . attr ( "x2" , w ( a ) + t ) . attr ( "y1" , s . titleTopMargin ) . attr ( "y2" , n - s . titleTopMargin ) . attr ( "class" , "today" ) } function f ( t ) { for ( var e = { } , r = [ ] , n = 0 , i = t . length ; i > n ; ++ n ) e . hasOwnProperty ( t [ n ] ) || ( e [ t [ n ] ] = ! 0 , r . push ( t [ n ] ) ) ; return r } fun
2015-12-26 10:59:44 +01:00
2016-01-27 15:02:41 +01:00
} , newLoop : function ( t ) { this . list . push ( { startx : void 0 , starty : this . verticalPos , stopx : void 0 , stopy : void 0 , title : t } ) } , endLoop : function ( ) { var t = this . list . pop ( ) ; return t } , addElseToLoop : function ( t ) { var e = this . list . pop ( ) ; e . elsey = r . bounds . getVerticalPos ( ) , e . elseText = t , this . list . push ( e ) } , bumpVerticalPos : function ( t ) { this . verticalPos = this . verticalPos + t , this . data . stopy = this . verticalPos } , getVerticalPos : function ( ) { return this . verticalPos } , getBounds : function ( ) { return this . data } } ; var c = function ( t , e , n , a , s ) { var o = i . getNoteRect ( ) ; o . x = e , o . y = n , o . width = s || u . width , o [ "class" ] = "note" ; var c = t . append ( "g" ) , l = i . drawRect ( c , o ) , h = i . getTextObj ( ) ; h . x = e - 4 , h . y = n - 13 , h . textMargin = u . noteMargin , h . dy = "1em" , h . text = a . message , h [ "class" ] = "noteText" ; var d = i . drawText ( c , h , o . width - u . noteMargin ) , f = d [ 0 ] [ 0 ] . getBBox ( ) . height ; ! s && f > u . width ? ( d . remove ( ) , c = t . append ( "g" ) , d = i . drawText ( c , h , 2 * o . width - u . noteMargin ) , f = d [ 0 ] [ 0 ] . getBBox ( ) . height , l . attr ( "width" , 2 * o . width ) , r . bounds . insert ( e , n , e + 2 * o . width , n + 2 * u . noteMargin + f ) ) : r . bounds . insert ( e , n , e + o . width , n + 2 * u . noteMargin + f ) , l . attr ( "height" , f + 2 * u . noteMargin ) , r . bounds . bumpVerticalPos ( f + 2 * u . noteMargin ) } , l = function ( t , e , i , a , s ) { var o , c = t . append ( "g" ) , l = e + ( i - e ) / 2 , h = c . append ( "text" ) . attr ( "x" , l ) . attr ( "y" , a - 7 ) . style ( "text-anchor" , "middle" ) . attr ( "class" , "messageText" ) . text ( s . message ) ; o = "undefined" != typeof h [ 0 ] [ 0 ] . getBBox ? h [ 0 ] [ 0 ] . getBBox ( ) . width : h [ 0 ] [ 0 ] . getBoundingClientRect ( ) ; var d ; if ( e === i ) { d = c . append ( "path" ) . attr ( "d" , "M " + e + "," + a + " C " + ( e + 60 ) + "," + ( a - 10 ) + " " + ( e + 60 ) + "," + ( a + 30 ) + " " + e + "," + ( a + 20 ) ) , r . bounds . bumpVerticalPos ( 30 ) ; var f = Math . max ( o / 2 , 100 ) ; r . bounds . insert ( e - f , r . bounds . getVerticalPos ( ) - 10 , i + f , r . bounds . getVerticalPos ( ) ) } else d = c . append ( "line" ) , d . attr ( "x1" , e ) , d . attr ( "y1" , a ) , d . attr ( "x2" , i ) , d . attr ( "y2" , a ) , r . bounds . insert ( e , r . bounds . getVerticalPos ( ) - 10 , i , r . bounds . getVerticalPos ( ) ) ; s . type === n . yy . LINETYPE . DOTTED || s . type === n . yy . LINETYPE . DOTTED _CROSS || s . type === n . yy . LINETYPE . DOTTED _OPEN ? ( d . style ( "stroke-dasharray" , "3, 3" ) , d . attr ( "class" , "messageLine1" ) ) : d . attr ( "class" , "messageLine0" ) ; var p = "" ; u . arrowMarkerAbsolute && ( p = window . location . protocol + "//" + window . location . host + window . location . pathname + window . location . search , p = p . replace ( /\(/g , "\\(" ) , p = p . replace ( /\)/g , "\\)" ) ) , d . attr ( "stroke-width" , 2 ) , d . attr ( "stroke" , "black" ) , d . style ( "fill" , "none" ) , ( s . type === n . yy . LINETYPE . SOLID || s . type === n . yy . LINETYPE . DOTTED ) && d . attr ( "marker-end" , "url(" + p + "#arrowhead)" ) , ( s . type === n . yy . LINETYPE . SOLID _CROSS || s . type === n . yy . LINETYPE . DOTTED _CROSS ) && d . attr ( "marker-end" , "url(" + p + "#crosshead)" ) } ; e . exports . drawActors = function ( t , e , n , a ) { var s ; for ( s = 0 ; s < n . length ; s ++ ) { var o = n [ s ] ; e [ o ] . x = s * u . actorMargin + s * u . width , e [ o ] . y = a , e [ o ] . width = u . diagramMarginY , e [ o ] . height = u . diagramMarginY , i . drawActor ( t , e [ o ] . x , a , e [ o ] . description , u ) , r . bounds . insert ( e [ o ] . x , a , e [ o ] . x + u . width , u . height ) } r . bounds . bumpVerticalPos ( u . height ) } , e . exports . setConf = function ( t ) { var e = Object . keys ( t ) ; e . forEach ( function ( e ) { u [ e ] = t [ e ] } ) } , e . exports . draw = function ( t , s ) { n . yy . clear ( ) , n . parse ( t + "\n" ) , r . bounds . init ( ) ; var h , d , f , p = a . select ( "#" + s ) , g = n . yy . getActors ( ) , m = n . yy . getActorKeys ( ) , y = n . yy . getMessages ( ) ; e . exports . drawActors ( p , g , m , 0 ) , i . insertArrowHead ( p ) , i . insertArrowCrossHead ( p ) , y . forEach ( function ( t ) { var e ; switch ( t . type ) { case n . yy . LINETYPE . NOTE : r . bounds . bumpVerticalPos ( u . boxMargin ) , h = g [ t . from ] . x , d = g [ t . to ] . x , t . placement === n . yy . PLACEMENT . RIGHTOF ? c ( p , h + ( u . width + u . actorMargin ) / 2 , r . bounds . getVerticalPos ( ) , t ) : t . placement === n . yy . PLACEMENT . LEFTOF ? c ( p , h - ( u . width + u . actorMargin ) / 2 , r . bounds . getVerticalPos ( ) , t ) : t . to === t . from ? c ( p , h , r . bounds . getVerticalPos ( ) , t ) : ( f = Math . abs ( h - d ) + u . actorMargin , c ( p , ( h + d + u . width - f ) / 2 , r . bounds . getVerticalPos ( ) , t , f ) ) ; break ; case n . yy . LINETYPE . LOOP _START : r . bounds . bumpVerticalPos ( u . boxMargin ) , r . bounds . newLoop ( t . message ) , r . bounds . bumpVerticalPos ( u . boxMargin + u . boxTextMargin ) ; break ; case n . yy . LINETYPE . LOOP _END : e = r . bounds . endLoop ( ) , i . drawLoop ( p , e , "loop" , u ) , r . bounds . bumpVerticalPos ( u . boxMargin ) ; break ; case n . yy . LINETYPE . OPT _START : r . bounds . bumpVerticalPos ( u . boxMargin ) , r . bounds . newLoop ( t . message ) , r . bounds . bumpVerticalPos ( u . boxMargin + u . boxTextMargin ) ; break ; case n . yy . LINETYPE . OPT _END : e = r . bounds . endLoop ( ) , i . drawLoop ( p , e , "opt" , u ) , r . bounds . bumpVerticalPos