2023-11-24 16:55:55 +01:00
"use strict" ;
exports . id = 696 ;
exports . ids = [ 696 ] ;
exports . modules = {
/***/ 41644 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
// EXPORTS
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
bK : ( ) => ( /* reexport */ layout )
} ) ;
// UNUSED EXPORTS: acyclic, normalize, rank
// EXTERNAL MODULE: ./node_modules/lodash-es/forEach.js
var forEach = _ _webpack _require _ _ ( 70870 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/uniqueId.js
var uniqueId = _ _webpack _require _ _ ( 66749 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/has.js + 1 modules
var has = _ _webpack _require _ _ ( 17452 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/constant.js
var constant = _ _webpack _require _ _ ( 62002 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/flatten.js
var flatten = _ _webpack _require _ _ ( 27961 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/map.js
var map = _ _webpack _require _ _ ( 43836 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/range.js + 2 modules
var range = _ _webpack _require _ _ ( 74379 ) ;
// EXTERNAL MODULE: ./node_modules/dagre-d3-es/src/graphlib/index.js
var graphlib = _ _webpack _require _ _ ( 45625 ) ;
; // CONCATENATED MODULE: ./node_modules/dagre-d3-es/src/dagre/data/list.js
/ *
* Simple doubly linked list implementation derived from Cormen , et al . ,
* "Introduction to Algorithms" .
* /
class List {
constructor ( ) {
var sentinel = { } ;
sentinel . _next = sentinel . _prev = sentinel ;
this . _sentinel = sentinel ;
}
dequeue ( ) {
var sentinel = this . _sentinel ;
var entry = sentinel . _prev ;
if ( entry !== sentinel ) {
unlink ( entry ) ;
return entry ;
}
}
enqueue ( entry ) {
var sentinel = this . _sentinel ;
if ( entry . _prev && entry . _next ) {
unlink ( entry ) ;
}
entry . _next = sentinel . _next ;
sentinel . _next . _prev = entry ;
sentinel . _next = entry ;
entry . _prev = sentinel ;
}
toString ( ) {
var strs = [ ] ;
var sentinel = this . _sentinel ;
var curr = sentinel . _prev ;
while ( curr !== sentinel ) {
strs . push ( JSON . stringify ( curr , filterOutLinks ) ) ;
curr = curr . _prev ;
}
return '[' + strs . join ( ', ' ) + ']' ;
}
}
function unlink ( entry ) {
entry . _prev . _next = entry . _next ;
entry . _next . _prev = entry . _prev ;
delete entry . _next ;
delete entry . _prev ;
}
function filterOutLinks ( k , v ) {
if ( k !== '_next' && k !== '_prev' ) {
return v ;
}
}
; // CONCATENATED MODULE: ./node_modules/dagre-d3-es/src/dagre/greedy-fas.js
/ *
* A greedy heuristic for finding a feedback arc set for a graph . A feedback
* arc set is a set of edges that can be removed to make a graph acyclic .
* The algorithm comes from : P . Eades , X . Lin , and W . F . Smyth , " A fast and
* effective heuristic for the feedback arc set problem . " This implementation
* adjusts that from the paper to allow for weighted edges .
* /
var DEFAULT _WEIGHT _FN = constant /* default */ . Z ( 1 ) ;
function greedyFAS ( g , weightFn ) {
if ( g . nodeCount ( ) <= 1 ) {
return [ ] ;
}
var state = buildState ( g , weightFn || DEFAULT _WEIGHT _FN ) ;
var results = doGreedyFAS ( state . graph , state . buckets , state . zeroIdx ) ;
// Expand multi-edges
return flatten /* default */ . Z (
map /* default */ . Z ( results , function ( e ) {
return g . outEdges ( e . v , e . w ) ;
} )
) ;
}
function doGreedyFAS ( g , buckets , zeroIdx ) {
var results = [ ] ;
var sources = buckets [ buckets . length - 1 ] ;
var sinks = buckets [ 0 ] ;
var entry ;
while ( g . nodeCount ( ) ) {
while ( ( entry = sinks . dequeue ( ) ) ) {
removeNode ( g , buckets , zeroIdx , entry ) ;
}
while ( ( entry = sources . dequeue ( ) ) ) {
removeNode ( g , buckets , zeroIdx , entry ) ;
}
if ( g . nodeCount ( ) ) {
for ( var i = buckets . length - 2 ; i > 0 ; -- i ) {
entry = buckets [ i ] . dequeue ( ) ;
if ( entry ) {
results = results . concat ( removeNode ( g , buckets , zeroIdx , entry , true ) ) ;
break ;
}
}
}
}
return results ;
}
function removeNode ( g , buckets , zeroIdx , entry , collectPredecessors ) {
var results = collectPredecessors ? [ ] : undefined ;
forEach /* default */ . Z ( g . inEdges ( entry . v ) , function ( edge ) {
var weight = g . edge ( edge ) ;
var uEntry = g . node ( edge . v ) ;
if ( collectPredecessors ) {
results . push ( { v : edge . v , w : edge . w } ) ;
}
uEntry . out -= weight ;
assignBucket ( buckets , zeroIdx , uEntry ) ;
} ) ;
forEach /* default */ . Z ( g . outEdges ( entry . v ) , function ( edge ) {
var weight = g . edge ( edge ) ;
var w = edge . w ;
var wEntry = g . node ( w ) ;
wEntry [ 'in' ] -= weight ;
assignBucket ( buckets , zeroIdx , wEntry ) ;
} ) ;
g . removeNode ( entry . v ) ;
return results ;
}
function buildState ( g , weightFn ) {
var fasGraph = new graphlib /* Graph */ . k ( ) ;
var maxIn = 0 ;
var maxOut = 0 ;
forEach /* default */ . Z ( g . nodes ( ) , function ( v ) {
fasGraph . setNode ( v , { v : v , in : 0 , out : 0 } ) ;
} ) ;
// Aggregate weights on nodes, but also sum the weights across multi-edges
// into a single edge for the fasGraph.
forEach /* default */ . Z ( g . edges ( ) , function ( e ) {
var prevWeight = fasGraph . edge ( e . v , e . w ) || 0 ;
var weight = weightFn ( e ) ;
var edgeWeight = prevWeight + weight ;
fasGraph . setEdge ( e . v , e . w , edgeWeight ) ;
maxOut = Math . max ( maxOut , ( fasGraph . node ( e . v ) . out += weight ) ) ;
maxIn = Math . max ( maxIn , ( fasGraph . node ( e . w ) [ 'in' ] += weight ) ) ;
} ) ;
var buckets = range /* default */ . Z ( maxOut + maxIn + 3 ) . map ( function ( ) {
return new List ( ) ;
} ) ;
var zeroIdx = maxIn + 1 ;
forEach /* default */ . Z ( fasGraph . nodes ( ) , function ( v ) {
assignBucket ( buckets , zeroIdx , fasGraph . node ( v ) ) ;
} ) ;
return { graph : fasGraph , buckets : buckets , zeroIdx : zeroIdx } ;
}
function assignBucket ( buckets , zeroIdx , entry ) {
if ( ! entry . out ) {
buckets [ 0 ] . enqueue ( entry ) ;
} else if ( ! entry [ 'in' ] ) {
buckets [ buckets . length - 1 ] . enqueue ( entry ) ;
} else {
buckets [ entry . out - entry [ 'in' ] + zeroIdx ] . enqueue ( entry ) ;
}
}
; // CONCATENATED MODULE: ./node_modules/dagre-d3-es/src/dagre/acyclic.js
function run ( g ) {
var fas = g . graph ( ) . acyclicer === 'greedy' ? greedyFAS ( g , weightFn ( g ) ) : dfsFAS ( g ) ;
forEach /* default */ . Z ( fas , function ( e ) {
var label = g . edge ( e ) ;
g . removeEdge ( e ) ;
label . forwardName = e . name ;
label . reversed = true ;
g . setEdge ( e . w , e . v , label , uniqueId /* default */ . Z ( 'rev' ) ) ;
} ) ;
function weightFn ( g ) {
return function ( e ) {
return g . edge ( e ) . weight ;
} ;
}
}
function dfsFAS ( g ) {
var fas = [ ] ;
var stack = { } ;
var visited = { } ;
function dfs ( v ) {
if ( has /* default */ . Z ( visited , v ) ) {
return ;
}
visited [ v ] = true ;
stack [ v ] = true ;
forEach /* default */ . Z ( g . outEdges ( v ) , function ( e ) {
if ( has /* default */ . Z ( stack , e . w ) ) {
fas . push ( e ) ;
} else {
dfs ( e . w ) ;
}
} ) ;
delete stack [ v ] ;
}
forEach /* default */ . Z ( g . nodes ( ) , dfs ) ;
return fas ;
}
function undo ( g ) {
forEach /* default */ . Z ( g . edges ( ) , function ( e ) {
var label = g . edge ( e ) ;
if ( label . reversed ) {
g . removeEdge ( e ) ;
var forwardName = label . forwardName ;
delete label . reversed ;
delete label . forwardName ;
g . setEdge ( e . w , e . v , label , forwardName ) ;
}
} ) ;
}
// EXTERNAL MODULE: ./node_modules/lodash-es/merge.js + 6 modules
var merge = _ _webpack _require _ _ ( 59236 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/pick.js + 4 modules
var pick = _ _webpack _require _ _ ( 61666 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/defaults.js
var defaults = _ _webpack _require _ _ ( 3688 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/isSymbol.js
var isSymbol = _ _webpack _require _ _ ( 72714 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_baseExtremum.js
/ * *
* The base implementation of methods like ` _.max ` and ` _.min ` which accepts a
* ` comparator ` to determine the extremum value .
*
* @ private
* @ param { Array } array The array to iterate over .
* @ param { Function } iteratee The iteratee invoked per iteration .
* @ param { Function } comparator The comparator used to compare values .
* @ returns { * } Returns the extremum value .
* /
function baseExtremum ( array , iteratee , comparator ) {
var index = - 1 ,
length = array . length ;
while ( ++ index < length ) {
var value = array [ index ] ,
current = iteratee ( value ) ;
if ( current != null && ( computed === undefined
? ( current === current && ! ( 0 , isSymbol /* default */ . Z ) ( current ) )
: comparator ( current , computed )
) ) {
var computed = current ,
result = value ;
}
}
return result ;
}
/* harmony default export */ const _baseExtremum = ( baseExtremum ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_baseGt.js
/ * *
* The base implementation of ` _.gt ` which doesn ' t coerce arguments .
*
* @ private
* @ param { * } value The value to compare .
* @ param { * } other The other value to compare .
* @ returns { boolean } Returns ` true ` if ` value ` is greater than ` other ` ,
* else ` false ` .
* /
function baseGt ( value , other ) {
return value > other ;
}
/* harmony default export */ const _baseGt = ( baseGt ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/identity.js
var identity = _ _webpack _require _ _ ( 69203 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/max.js
/ * *
* Computes the maximum value of ` array ` . If ` array ` is empty or falsey ,
* ` undefined ` is returned .
*
* @ static
* @ since 0.1 . 0
* @ memberOf _
* @ category Math
* @ param { Array } array The array to iterate over .
* @ returns { * } Returns the maximum value .
* @ example
*
* _ . max ( [ 4 , 2 , 8 , 6 ] ) ;
* // => 8
*
* _ . max ( [ ] ) ;
* // => undefined
* /
function max ( array ) {
return ( array && array . length )
? _baseExtremum ( array , identity /* default */ . Z , _baseGt )
: undefined ;
}
/* harmony default export */ const lodash _es _max = ( max ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/last.js
/ * *
* Gets the last element of ` array ` .
*
* @ static
* @ memberOf _
* @ since 0.1 . 0
* @ category Array
* @ param { Array } array The array to query .
* @ returns { * } Returns the last element of ` array ` .
* @ example
*
* _ . last ( [ 1 , 2 , 3 ] ) ;
* // => 3
* /
function last ( array ) {
var length = array == null ? 0 : array . length ;
return length ? array [ length - 1 ] : undefined ;
}
/* harmony default export */ const lodash _es _last = ( last ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_baseAssignValue.js
var _baseAssignValue = _ _webpack _require _ _ ( 74752 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_baseForOwn.js
var _baseForOwn = _ _webpack _require _ _ ( 2693 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_baseIteratee.js + 16 modules
var _baseIteratee = _ _webpack _require _ _ ( 74765 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/mapValues.js
/ * *
* Creates an object with the same keys as ` object ` and values generated
* by running each own enumerable string keyed property of ` object ` thru
* ` iteratee ` . The iteratee is invoked with three arguments :
* ( value , key , object ) .
*
* @ static
* @ memberOf _
* @ since 2.4 . 0
* @ category Object
* @ param { Object } object The object to iterate over .
* @ param { Function } [ iteratee = _ . identity ] The function invoked per iteration .
* @ returns { Object } Returns the new mapped object .
* @ see _ . mapKeys
* @ example
*
* var users = {
* 'fred' : { 'user' : 'fred' , 'age' : 40 } ,
* 'pebbles' : { 'user' : 'pebbles' , 'age' : 1 }
* } ;
*
* _ . mapValues ( users , function ( o ) { return o . age ; } ) ;
* // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)
*
* // The `_.property` iteratee shorthand.
* _ . mapValues ( users , 'age' ) ;
* // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)
* /
function mapValues ( object , iteratee ) {
var result = { } ;
iteratee = ( 0 , _baseIteratee /* default */ . Z ) ( iteratee , 3 ) ;
( 0 , _baseForOwn /* default */ . Z ) ( object , function ( value , key , object ) {
( 0 , _baseAssignValue /* default */ . Z ) ( result , key , iteratee ( value , key , object ) ) ;
} ) ;
return result ;
}
/* harmony default export */ const lodash _es _mapValues = ( mapValues ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/isUndefined.js
var isUndefined = _ _webpack _require _ _ ( 49360 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_baseLt.js
/ * *
* The base implementation of ` _.lt ` which doesn ' t coerce arguments .
*
* @ private
* @ param { * } value The value to compare .
* @ param { * } other The other value to compare .
* @ returns { boolean } Returns ` true ` if ` value ` is less than ` other ` ,
* else ` false ` .
* /
function baseLt ( value , other ) {
return value < other ;
}
/* harmony default export */ const _baseLt = ( baseLt ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/min.js
/ * *
* Computes the minimum value of ` array ` . If ` array ` is empty or falsey ,
* ` undefined ` is returned .
*
* @ static
* @ since 0.1 . 0
* @ memberOf _
* @ category Math
* @ param { Array } array The array to iterate over .
* @ returns { * } Returns the minimum value .
* @ example
*
* _ . min ( [ 4 , 2 , 8 , 6 ] ) ;
* // => 2
*
* _ . min ( [ ] ) ;
* // => undefined
* /
function min ( array ) {
return ( array && array . length )
? _baseExtremum ( array , identity /* default */ . Z , _baseLt )
: undefined ;
}
/* harmony default export */ const lodash _es _min = ( min ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_root.js
var _root = _ _webpack _require _ _ ( 66092 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/now.js
/ * *
* Gets the timestamp of the number of milliseconds that have elapsed since
* the Unix epoch ( 1 January 1970 00 : 00 : 00 UTC ) .
*
* @ static
* @ memberOf _
* @ since 2.4 . 0
* @ category Date
* @ returns { number } Returns the timestamp .
* @ example
*
* _ . defer ( function ( stamp ) {
* console . log ( _ . now ( ) - stamp ) ;
* } , _ . now ( ) ) ;
* // => Logs the number of milliseconds it took for the deferred invocation.
* /
var now = function ( ) {
return _root /* default */ . Z . Date . now ( ) ;
} ;
/* harmony default export */ const lodash _es _now = ( now ) ;
; // CONCATENATED MODULE: ./node_modules/dagre-d3-es/src/dagre/util.js
/ *
* Adds a dummy node to the graph and return v .
* /
function addDummyNode ( g , type , attrs , name ) {
var v ;
do {
v = uniqueId /* default */ . Z ( name ) ;
} while ( g . hasNode ( v ) ) ;
attrs . dummy = type ;
g . setNode ( v , attrs ) ;
return v ;
}
/ *
* Returns a new graph with only simple edges . Handles aggregation of data
* associated with multi - edges .
* /
function simplify ( g ) {
var simplified = new graphlib /* Graph */ . k ( ) . setGraph ( g . graph ( ) ) ;
forEach /* default */ . Z ( g . nodes ( ) , function ( v ) {
simplified . setNode ( v , g . node ( v ) ) ;
} ) ;
forEach /* default */ . Z ( g . edges ( ) , function ( e ) {
var simpleLabel = simplified . edge ( e . v , e . w ) || { weight : 0 , minlen : 1 } ;
var label = g . edge ( e ) ;
simplified . setEdge ( e . v , e . w , {
weight : simpleLabel . weight + label . weight ,
minlen : Math . max ( simpleLabel . minlen , label . minlen ) ,
} ) ;
} ) ;
return simplified ;
}
function asNonCompoundGraph ( g ) {
var simplified = new graphlib /* Graph */ . k ( { multigraph : g . isMultigraph ( ) } ) . setGraph ( g . graph ( ) ) ;
forEach /* default */ . Z ( g . nodes ( ) , function ( v ) {
if ( ! g . children ( v ) . length ) {
simplified . setNode ( v , g . node ( v ) ) ;
}
} ) ;
forEach /* default */ . Z ( g . edges ( ) , function ( e ) {
simplified . setEdge ( e , g . edge ( e ) ) ;
} ) ;
return simplified ;
}
function successorWeights ( g ) {
var weightMap = _ . map ( g . nodes ( ) , function ( v ) {
var sucs = { } ;
_ . forEach ( g . outEdges ( v ) , function ( e ) {
sucs [ e . w ] = ( sucs [ e . w ] || 0 ) + g . edge ( e ) . weight ;
} ) ;
return sucs ;
} ) ;
return _ . zipObject ( g . nodes ( ) , weightMap ) ;
}
function predecessorWeights ( g ) {
var weightMap = _ . map ( g . nodes ( ) , function ( v ) {
var preds = { } ;
_ . forEach ( g . inEdges ( v ) , function ( e ) {
preds [ e . v ] = ( preds [ e . v ] || 0 ) + g . edge ( e ) . weight ;
} ) ;
return preds ;
} ) ;
return _ . zipObject ( g . nodes ( ) , weightMap ) ;
}
/ *
* Finds where a line starting at point ( { x , y } ) would intersect a rectangle
* ( { x , y , width , height } ) if it were pointing at the rectangle ' s center .
* /
function intersectRect ( rect , point ) {
var x = rect . x ;
var y = rect . y ;
// Rectangle intersection algorithm from:
// http://math.stackexchange.com/questions/108113/find-edge-between-two-boxes
var dx = point . x - x ;
var dy = point . y - y ;
var w = rect . width / 2 ;
var h = rect . height / 2 ;
if ( ! dx && ! dy ) {
throw new Error ( 'Not possible to find intersection inside of the rectangle' ) ;
}
var sx , sy ;
if ( Math . abs ( dy ) * w > Math . abs ( dx ) * h ) {
// Intersection is top or bottom of rect.
if ( dy < 0 ) {
h = - h ;
}
sx = ( h * dx ) / dy ;
sy = h ;
} else {
// Intersection is left or right of rect.
if ( dx < 0 ) {
w = - w ;
}
sx = w ;
sy = ( w * dy ) / dx ;
}
return { x : x + sx , y : y + sy } ;
}
/ *
* Given a DAG with each node assigned "rank" and "order" properties , this
* function will produce a matrix with the ids of each node .
* /
function buildLayerMatrix ( g ) {
var layering = map /* default */ . Z ( range /* default */ . Z ( util _maxRank ( g ) + 1 ) , function ( ) {
return [ ] ;
} ) ;
forEach /* default */ . Z ( g . nodes ( ) , function ( v ) {
var node = g . node ( v ) ;
var rank = node . rank ;
if ( ! isUndefined /* default */ . Z ( rank ) ) {
layering [ rank ] [ node . order ] = v ;
}
} ) ;
return layering ;
}
/ *
* Adjusts the ranks for all nodes in the graph such that all nodes v have
* rank ( v ) >= 0 and at least one node w has rank ( w ) = 0.
* /
function normalizeRanks ( g ) {
var min = lodash _es _min (
map /* default */ . Z ( g . nodes ( ) , function ( v ) {
return g . node ( v ) . rank ;
} )
) ;
forEach /* default */ . Z ( g . nodes ( ) , function ( v ) {
var node = g . node ( v ) ;
if ( has /* default */ . Z ( node , 'rank' ) ) {
node . rank -= min ;
}
} ) ;
}
function removeEmptyRanks ( g ) {
// Ranks may not start at 0, so we need to offset them
var offset = lodash _es _min (
map /* default */ . Z ( g . nodes ( ) , function ( v ) {
return g . node ( v ) . rank ;
} )
) ;
var layers = [ ] ;
forEach /* default */ . Z ( g . nodes ( ) , function ( v ) {
var rank = g . node ( v ) . rank - offset ;
if ( ! layers [ rank ] ) {
layers [ rank ] = [ ] ;
}
layers [ rank ] . push ( v ) ;
} ) ;
var delta = 0 ;
var nodeRankFactor = g . graph ( ) . nodeRankFactor ;
forEach /* default */ . Z ( layers , function ( vs , i ) {
if ( isUndefined /* default */ . Z ( vs ) && i % nodeRankFactor !== 0 ) {
-- delta ;
} else if ( delta ) {
forEach /* default */ . Z ( vs , function ( v ) {
g . node ( v ) . rank += delta ;
} ) ;
}
} ) ;
}
function addBorderNode ( g , prefix , rank , order ) {
var node = {
width : 0 ,
height : 0 ,
} ;
if ( arguments . length >= 4 ) {
node . rank = rank ;
node . order = order ;
}
return addDummyNode ( g , 'border' , node , prefix ) ;
}
function util _maxRank ( g ) {
return lodash _es _max (
map /* default */ . Z ( g . nodes ( ) , function ( v ) {
var rank = g . node ( v ) . rank ;
if ( ! isUndefined /* default */ . Z ( rank ) ) {
return rank ;
}
} )
) ;
}
/ *
* Partition a collection into two groups : ` lhs ` and ` rhs ` . If the supplied
* function returns true for an entry it goes into ` lhs ` . Otherwise it goes
* into ` rhs.
* /
function partition ( collection , fn ) {
var result = { lhs : [ ] , rhs : [ ] } ;
forEach /* default */ . Z ( collection , function ( value ) {
if ( fn ( value ) ) {
result . lhs . push ( value ) ;
} else {
result . rhs . push ( value ) ;
}
} ) ;
return result ;
}
/ *
* Returns a new function that wraps ` fn ` with a timer . The wrapper logs the
* time it takes to execute the function .
* /
function util _time ( name , fn ) {
var start = lodash _es _now ( ) ;
try {
return fn ( ) ;
} finally {
console . log ( name + ' time: ' + ( lodash _es _now ( ) - start ) + 'ms' ) ;
}
}
function notime ( name , fn ) {
return fn ( ) ;
}
; // CONCATENATED MODULE: ./node_modules/dagre-d3-es/src/dagre/add-border-segments.js
function addBorderSegments ( g ) {
function dfs ( v ) {
var children = g . children ( v ) ;
var node = g . node ( v ) ;
if ( children . length ) {
forEach /* default */ . Z ( children , dfs ) ;
}
if ( has /* default */ . Z ( node , 'minRank' ) ) {
node . borderLeft = [ ] ;
node . borderRight = [ ] ;
for ( var rank = node . minRank , maxRank = node . maxRank + 1 ; rank < maxRank ; ++ rank ) {
add _border _segments _addBorderNode ( g , 'borderLeft' , '_bl' , v , node , rank ) ;
add _border _segments _addBorderNode ( g , 'borderRight' , '_br' , v , node , rank ) ;
}
}
}
forEach /* default */ . Z ( g . children ( ) , dfs ) ;
}
function add _border _segments _addBorderNode ( g , prop , prefix , sg , sgNode , rank ) {
var label = { width : 0 , height : 0 , rank : rank , borderType : prop } ;
var prev = sgNode [ prop ] [ rank - 1 ] ;
var curr = addDummyNode ( g , 'border' , label , prefix ) ;
sgNode [ prop ] [ rank ] = curr ;
g . setParent ( curr , sg ) ;
if ( prev ) {
g . setEdge ( prev , curr , { weight : 1 } ) ;
}
}
; // CONCATENATED MODULE: ./node_modules/dagre-d3-es/src/dagre/coordinate-system.js
function adjust ( g ) {
var rankDir = g . graph ( ) . rankdir . toLowerCase ( ) ;
if ( rankDir === 'lr' || rankDir === 'rl' ) {
swapWidthHeight ( g ) ;
}
}
function coordinate _system _undo ( g ) {
var rankDir = g . graph ( ) . rankdir . toLowerCase ( ) ;
if ( rankDir === 'bt' || rankDir === 'rl' ) {
reverseY ( g ) ;
}
if ( rankDir === 'lr' || rankDir === 'rl' ) {
swapXY ( g ) ;
swapWidthHeight ( g ) ;
}
}
function swapWidthHeight ( g ) {
forEach /* default */ . Z ( g . nodes ( ) , function ( v ) {
swapWidthHeightOne ( g . node ( v ) ) ;
} ) ;
forEach /* default */ . Z ( g . edges ( ) , function ( e ) {
swapWidthHeightOne ( g . edge ( e ) ) ;
} ) ;
}
function swapWidthHeightOne ( attrs ) {
var w = attrs . width ;
attrs . width = attrs . height ;
attrs . height = w ;
}
function reverseY ( g ) {
forEach /* default */ . Z ( g . nodes ( ) , function ( v ) {
reverseYOne ( g . node ( v ) ) ;
} ) ;
forEach /* default */ . Z ( g . edges ( ) , function ( e ) {
var edge = g . edge ( e ) ;
forEach /* default */ . Z ( edge . points , reverseYOne ) ;
if ( has /* default */ . Z ( edge , 'y' ) ) {
reverseYOne ( edge ) ;
}
} ) ;
}
function reverseYOne ( attrs ) {
attrs . y = - attrs . y ;
}
function swapXY ( g ) {
forEach /* default */ . Z ( g . nodes ( ) , function ( v ) {
swapXYOne ( g . node ( v ) ) ;
} ) ;
forEach /* default */ . Z ( g . edges ( ) , function ( e ) {
var edge = g . edge ( e ) ;
forEach /* default */ . Z ( edge . points , swapXYOne ) ;
if ( has /* default */ . Z ( edge , 'x' ) ) {
swapXYOne ( edge ) ;
}
} ) ;
}
function swapXYOne ( attrs ) {
var x = attrs . x ;
attrs . x = attrs . y ;
attrs . y = x ;
}
; // CONCATENATED MODULE: ./node_modules/dagre-d3-es/src/dagre/normalize.js
/ *
* Breaks any long edges in the graph into short segments that span 1 layer
* each . This operation is undoable with the denormalize function .
*
* Pre - conditions :
*
* 1. The input graph is a DAG .
* 2. Each node in the graph has a "rank" property .
*
* Post - condition :
*
* 1. All edges in the graph have a length of 1.
* 2. Dummy nodes are added where edges have been split into segments .
* 3. The graph is augmented with a "dummyChains" attribute which contains
* the first dummy in each chain of dummy nodes produced .
* /
function normalize _run ( g ) {
g . graph ( ) . dummyChains = [ ] ;
forEach /* default */ . Z ( g . edges ( ) , function ( edge ) {
normalizeEdge ( g , edge ) ;
} ) ;
}
function normalizeEdge ( g , e ) {
var v = e . v ;
var vRank = g . node ( v ) . rank ;
var w = e . w ;
var wRank = g . node ( w ) . rank ;
var name = e . name ;
var edgeLabel = g . edge ( e ) ;
var labelRank = edgeLabel . labelRank ;
if ( wRank === vRank + 1 ) return ;
g . removeEdge ( e ) ;
var dummy , attrs , i ;
for ( i = 0 , ++ vRank ; vRank < wRank ; ++ i , ++ vRank ) {
edgeLabel . points = [ ] ;
attrs = {
width : 0 ,
height : 0 ,
edgeLabel : edgeLabel ,
edgeObj : e ,
rank : vRank ,
} ;
dummy = addDummyNode ( g , 'edge' , attrs , '_d' ) ;
if ( vRank === labelRank ) {
attrs . width = edgeLabel . width ;
attrs . height = edgeLabel . height ;
// @ts-expect-error
attrs . dummy = 'edge-label' ;
// @ts-expect-error
attrs . labelpos = edgeLabel . labelpos ;
}
g . setEdge ( v , dummy , { weight : edgeLabel . weight } , name ) ;
if ( i === 0 ) {
g . graph ( ) . dummyChains . push ( dummy ) ;
}
v = dummy ;
}
g . setEdge ( v , w , { weight : edgeLabel . weight } , name ) ;
}
function normalize _undo ( g ) {
forEach /* default */ . Z ( g . graph ( ) . dummyChains , function ( v ) {
var node = g . node ( v ) ;
var origLabel = node . edgeLabel ;
var w ;
g . setEdge ( node . edgeObj , origLabel ) ;
while ( node . dummy ) {
w = g . successors ( v ) [ 0 ] ;
g . removeNode ( v ) ;
origLabel . points . push ( { x : node . x , y : node . y } ) ;
if ( node . dummy === 'edge-label' ) {
origLabel . x = node . x ;
origLabel . y = node . y ;
origLabel . width = node . width ;
origLabel . height = node . height ;
}
v = w ;
node = g . node ( v ) ;
}
} ) ;
}
; // CONCATENATED MODULE: ./node_modules/lodash-es/minBy.js
/ * *
* This method is like ` _.min ` except that it accepts ` iteratee ` which is
* invoked for each element in ` array ` to generate the criterion by which
* the value is ranked . The iteratee is invoked with one argument : ( value ) .
*
* @ static
* @ memberOf _
* @ since 4.0 . 0
* @ category Math
* @ param { Array } array The array to iterate over .
* @ param { Function } [ iteratee = _ . identity ] The iteratee invoked per element .
* @ returns { * } Returns the minimum value .
* @ example
*
* var objects = [ { 'n' : 1 } , { 'n' : 2 } ] ;
*
* _ . minBy ( objects , function ( o ) { return o . n ; } ) ;
* // => { 'n': 1 }
*
* // The `_.property` iteratee shorthand.
* _ . minBy ( objects , 'n' ) ;
* // => { 'n': 1 }
* /
function minBy ( array , iteratee ) {
return ( array && array . length )
? _baseExtremum ( array , ( 0 , _baseIteratee /* default */ . Z ) ( iteratee , 2 ) , _baseLt )
: undefined ;
}
/* harmony default export */ const lodash _es _minBy = ( minBy ) ;
; // CONCATENATED MODULE: ./node_modules/dagre-d3-es/src/dagre/rank/util.js
/ *
* Initializes ranks for the input graph using the longest path algorithm . This
* algorithm scales well and is fast in practice , it yields rather poor
* solutions . Nodes are pushed to the lowest layer possible , leaving the bottom
* ranks wide and leaving edges longer than necessary . However , due to its
* speed , this algorithm is good for getting an initial ranking that can be fed
* into other algorithms .
*
* This algorithm does not normalize layers because it will be used by other
* algorithms in most cases . If using this algorithm directly , be sure to
* run normalize at the end .
*
* Pre - conditions :
*
* 1. Input graph is a DAG .
* 2. Input graph node labels can be assigned properties .
*
* Post - conditions :
*
* 1. Each node will be assign an ( unnormalized ) "rank" property .
* /
function longestPath ( g ) {
var visited = { } ;
function dfs ( v ) {
var label = g . node ( v ) ;
if ( has /* default */ . Z ( visited , v ) ) {
return label . rank ;
}
visited [ v ] = true ;
var rank = lodash _es _min (
map /* default */ . Z ( g . outEdges ( v ) , function ( e ) {
return dfs ( e . w ) - g . edge ( e ) . minlen ;
} )
) ;
if (
rank === Number . POSITIVE _INFINITY || // return value of _.map([]) for Lodash 3
rank === undefined || // return value of _.map([]) for Lodash 4
rank === null
) {
// return value of _.map([null])
rank = 0 ;
}
return ( label . rank = rank ) ;
}
forEach /* default */ . Z ( g . sources ( ) , dfs ) ;
}
/ *
* Returns the amount of slack for the given edge . The slack is defined as the
* difference between the length of the edge and its minimum length .
* /
function slack ( g , e ) {
return g . node ( e . w ) . rank - g . node ( e . v ) . rank - g . edge ( e ) . minlen ;
}
; // CONCATENATED MODULE: ./node_modules/dagre-d3-es/src/dagre/rank/feasible-tree.js
/ *
* Constructs a spanning tree with tight edges and adjusted the input node ' s
* ranks to achieve this . A tight edge is one that is has a length that matches
* its "minlen" attribute .
*
* The basic structure for this function is derived from Gansner , et al . , " A
* Technique for Drawing Directed Graphs . "
*
* Pre - conditions :
*
* 1. Graph must be a DAG .
* 2. Graph must be connected .
* 3. Graph must have at least one node .
* 5. Graph nodes must have been previously assigned a "rank" property that
* respects the "minlen" property of incident edges .
* 6. Graph edges must have a "minlen" property .
*
* Post - conditions :
*
* - Graph nodes will have their rank adjusted to ensure that all edges are
* tight .
*
* Returns a tree ( undirected graph ) that is constructed using only "tight"
* edges .
* /
function feasibleTree ( g ) {
var t = new graphlib /* Graph */ . k ( { directed : false } ) ;
// Choose arbitrary node from which to start our tree
var start = g . nodes ( ) [ 0 ] ;
var size = g . nodeCount ( ) ;
t . setNode ( start , { } ) ;
var edge , delta ;
while ( tightTree ( t , g ) < size ) {
edge = findMinSlackEdge ( t , g ) ;
delta = t . hasNode ( edge . v ) ? slack ( g , edge ) : - slack ( g , edge ) ;
shiftRanks ( t , g , delta ) ;
}
return t ;
}
/ *
* Finds a maximal tree of tight edges and returns the number of nodes in the
* tree .
* /
function tightTree ( t , g ) {
function dfs ( v ) {
forEach /* default */ . Z ( g . nodeEdges ( v ) , function ( e ) {
var edgeV = e . v ,
w = v === edgeV ? e . w : edgeV ;
if ( ! t . hasNode ( w ) && ! slack ( g , e ) ) {
t . setNode ( w , { } ) ;
t . setEdge ( v , w , { } ) ;
dfs ( w ) ;
}
} ) ;
}
forEach /* default */ . Z ( t . nodes ( ) , dfs ) ;
return t . nodeCount ( ) ;
}
/ *
* Finds the edge with the smallest slack that is incident on tree and returns
* it .
* /
function findMinSlackEdge ( t , g ) {
return lodash _es _minBy ( g . edges ( ) , function ( e ) {
if ( t . hasNode ( e . v ) !== t . hasNode ( e . w ) ) {
return slack ( g , e ) ;
}
} ) ;
}
function shiftRanks ( t , g , delta ) {
forEach /* default */ . Z ( t . nodes ( ) , function ( v ) {
g . node ( v ) . rank += delta ;
} ) ;
}
// EXTERNAL MODULE: ./node_modules/lodash-es/isArrayLike.js
var isArrayLike = _ _webpack _require _ _ ( 50585 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/keys.js
var keys = _ _webpack _require _ _ ( 17179 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_createFind.js
/ * *
* Creates a ` _.find ` or ` _.findLast ` function .
*
* @ private
* @ param { Function } findIndexFunc The function to find the collection index .
* @ returns { Function } Returns the new find function .
* /
function createFind ( findIndexFunc ) {
return function ( collection , predicate , fromIndex ) {
var iterable = Object ( collection ) ;
if ( ! ( 0 , isArrayLike /* default */ . Z ) ( collection ) ) {
var iteratee = ( 0 , _baseIteratee /* default */ . Z ) ( predicate , 3 ) ;
collection = ( 0 , keys /* default */ . Z ) ( collection ) ;
predicate = function ( key ) { return iteratee ( iterable [ key ] , key , iterable ) ; } ;
}
var index = findIndexFunc ( collection , predicate , fromIndex ) ;
return index > - 1 ? iterable [ iteratee ? collection [ index ] : index ] : undefined ;
} ;
}
/* harmony default export */ const _createFind = ( createFind ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_baseFindIndex.js
var _baseFindIndex = _ _webpack _require _ _ ( 21692 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/toFinite.js + 3 modules
var toFinite = _ _webpack _require _ _ ( 94099 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/toInteger.js
/ * *
* Converts ` value ` to an integer .
*
* * * Note : * * This method is loosely based on
* [ ` ToInteger ` ] ( http : //www.ecma-international.org/ecma-262/7.0/#sec-tointeger).
*
* @ static
* @ memberOf _
* @ since 4.0 . 0
* @ category Lang
* @ param { * } value The value to convert .
* @ returns { number } Returns the converted integer .
* @ example
*
* _ . toInteger ( 3.2 ) ;
* // => 3
*
* _ . toInteger ( Number . MIN _VALUE ) ;
* // => 0
*
* _ . toInteger ( Infinity ) ;
* // => 1.7976931348623157e+308
*
* _ . toInteger ( '3.2' ) ;
* // => 3
* /
function toInteger ( value ) {
var result = ( 0 , toFinite /* default */ . Z ) ( value ) ,
remainder = result % 1 ;
return result === result ? ( remainder ? result - remainder : result ) : 0 ;
}
/* harmony default export */ const lodash _es _toInteger = ( toInteger ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/findIndex.js
/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeMax = Math . max ;
/ * *
* This method is like ` _.find ` except that it returns the index of the first
* element ` predicate ` returns truthy for instead of the element itself .
*
* @ static
* @ memberOf _
* @ since 1.1 . 0
* @ category Array
* @ param { Array } array The array to inspect .
* @ param { Function } [ predicate = _ . identity ] The function invoked per iteration .
* @ param { number } [ fromIndex = 0 ] The index to search from .
* @ returns { number } Returns the index of the found element , else ` -1 ` .
* @ example
*
* var users = [
* { 'user' : 'barney' , 'active' : false } ,
* { 'user' : 'fred' , 'active' : false } ,
* { 'user' : 'pebbles' , 'active' : true }
* ] ;
*
* _ . findIndex ( users , function ( o ) { return o . user == 'barney' ; } ) ;
* // => 0
*
* // The `_.matches` iteratee shorthand.
* _ . findIndex ( users , { 'user' : 'fred' , 'active' : false } ) ;
* // => 1
*
* // The `_.matchesProperty` iteratee shorthand.
* _ . findIndex ( users , [ 'active' , false ] ) ;
* // => 0
*
* // The `_.property` iteratee shorthand.
* _ . findIndex ( users , 'active' ) ;
* // => 2
* /
function findIndex ( array , predicate , fromIndex ) {
var length = array == null ? 0 : array . length ;
if ( ! length ) {
return - 1 ;
}
var index = fromIndex == null ? 0 : lodash _es _toInteger ( fromIndex ) ;
if ( index < 0 ) {
index = nativeMax ( length + index , 0 ) ;
}
return ( 0 , _baseFindIndex /* default */ . Z ) ( array , ( 0 , _baseIteratee /* default */ . Z ) ( predicate , 3 ) , index ) ;
}
/* harmony default export */ const lodash _es _findIndex = ( findIndex ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/find.js
/ * *
* Iterates over elements of ` collection ` , returning the first element
* ` predicate ` returns truthy for . The predicate is invoked with three
* arguments : ( value , index | key , collection ) .
*
* @ static
* @ memberOf _
* @ since 0.1 . 0
* @ category Collection
* @ param { Array | Object } collection The collection to inspect .
* @ param { Function } [ predicate = _ . identity ] The function invoked per iteration .
* @ param { number } [ fromIndex = 0 ] The index to search from .
* @ returns { * } Returns the matched element , else ` undefined ` .
* @ example
*
* var users = [
* { 'user' : 'barney' , 'age' : 36 , 'active' : true } ,
* { 'user' : 'fred' , 'age' : 40 , 'active' : false } ,
* { 'user' : 'pebbles' , 'age' : 1 , 'active' : true }
* ] ;
*
* _ . find ( users , function ( o ) { return o . age < 40 ; } ) ;
* // => object for 'barney'
*
* // The `_.matches` iteratee shorthand.
* _ . find ( users , { 'age' : 1 , 'active' : true } ) ;
* // => object for 'pebbles'
*
* // The `_.matchesProperty` iteratee shorthand.
* _ . find ( users , [ 'active' , false ] ) ;
* // => object for 'fred'
*
* // The `_.property` iteratee shorthand.
* _ . find ( users , 'active' ) ;
* // => object for 'barney'
* /
var find = _createFind ( lodash _es _findIndex ) ;
/* harmony default export */ const lodash _es _find = ( find ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/filter.js + 1 modules
var filter = _ _webpack _require _ _ ( 13445 ) ;
; // CONCATENATED MODULE: ./node_modules/dagre-d3-es/src/graphlib/alg/dijkstra.js
var DEFAULT _WEIGHT _FUNC = constant /* default */ . Z ( 1 ) ;
function dijkstra _dijkstra ( g , source , weightFn , edgeFn ) {
return runDijkstra (
g ,
String ( source ) ,
weightFn || DEFAULT _WEIGHT _FUNC ,
edgeFn ||
function ( v ) {
return g . outEdges ( v ) ;
}
) ;
}
function runDijkstra ( g , source , weightFn , edgeFn ) {
var results = { } ;
var pq = new PriorityQueue ( ) ;
var v , vEntry ;
var updateNeighbors = function ( edge ) {
var w = edge . v !== v ? edge . v : edge . w ;
var wEntry = results [ w ] ;
var weight = weightFn ( edge ) ;
var distance = vEntry . distance + weight ;
if ( weight < 0 ) {
throw new Error (
'dijkstra does not allow negative edge weights. ' +
'Bad edge: ' +
edge +
' Weight: ' +
weight
) ;
}
if ( distance < wEntry . distance ) {
wEntry . distance = distance ;
wEntry . predecessor = v ;
pq . decrease ( w , distance ) ;
}
} ;
g . nodes ( ) . forEach ( function ( v ) {
var distance = v === source ? 0 : Number . POSITIVE _INFINITY ;
results [ v ] = { distance : distance } ;
pq . add ( v , distance ) ;
} ) ;
while ( pq . size ( ) > 0 ) {
v = pq . removeMin ( ) ;
vEntry = results [ v ] ;
if ( vEntry . distance === Number . POSITIVE _INFINITY ) {
break ;
}
edgeFn ( v ) . forEach ( updateNeighbors ) ;
}
return results ;
}
; // CONCATENATED MODULE: ./node_modules/dagre-d3-es/src/graphlib/alg/dijkstra-all.js
function dijkstraAll ( g , weightFunc , edgeFunc ) {
return _ . transform (
g . nodes ( ) ,
function ( acc , v ) {
acc [ v ] = dijkstra ( g , v , weightFunc , edgeFunc ) ;
} ,
{ }
) ;
}
; // CONCATENATED MODULE: ./node_modules/dagre-d3-es/src/graphlib/alg/floyd-warshall.js
var floyd _warshall _DEFAULT _WEIGHT _FUNC = constant /* default */ . Z ( 1 ) ;
function floydWarshall ( g , weightFn , edgeFn ) {
return runFloydWarshall (
g ,
weightFn || floyd _warshall _DEFAULT _WEIGHT _FUNC ,
edgeFn ||
function ( v ) {
return g . outEdges ( v ) ;
}
) ;
}
function runFloydWarshall ( g , weightFn , edgeFn ) {
var results = { } ;
var nodes = g . nodes ( ) ;
nodes . forEach ( function ( v ) {
results [ v ] = { } ;
results [ v ] [ v ] = { distance : 0 } ;
nodes . forEach ( function ( w ) {
if ( v !== w ) {
results [ v ] [ w ] = { distance : Number . POSITIVE _INFINITY } ;
}
} ) ;
edgeFn ( v ) . forEach ( function ( edge ) {
var w = edge . v === v ? edge . w : edge . v ;
var d = weightFn ( edge ) ;
results [ v ] [ w ] = { distance : d , predecessor : v } ;
} ) ;
} ) ;
nodes . forEach ( function ( k ) {
var rowK = results [ k ] ;
nodes . forEach ( function ( i ) {
var rowI = results [ i ] ;
nodes . forEach ( function ( j ) {
var ik = rowI [ k ] ;
var kj = rowK [ j ] ;
var ij = rowI [ j ] ;
var altDistance = ik . distance + kj . distance ;
if ( altDistance < ij . distance ) {
ij . distance = altDistance ;
ij . predecessor = kj . predecessor ;
}
} ) ;
} ) ;
} ) ;
return results ;
}
// EXTERNAL MODULE: ./node_modules/lodash-es/_baseKeys.js + 1 modules
var _baseKeys = _ _webpack _require _ _ ( 39473 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_getTag.js + 3 modules
var _getTag = _ _webpack _require _ _ ( 83970 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_baseGetTag.js + 2 modules
var _baseGetTag = _ _webpack _require _ _ ( 93589 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/isArray.js
var isArray = _ _webpack _require _ _ ( 27771 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/isObjectLike.js
var isObjectLike = _ _webpack _require _ _ ( 18533 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/isString.js
/** `Object#toString` result references. */
var stringTag = '[object String]' ;
/ * *
* Checks if ` value ` is classified as a ` String ` primitive or object .
*
* @ static
* @ since 0.1 . 0
* @ memberOf _
* @ category Lang
* @ param { * } value The value to check .
* @ returns { boolean } Returns ` true ` if ` value ` is a string , else ` false ` .
* @ example
*
* _ . isString ( 'abc' ) ;
* // => true
*
* _ . isString ( 1 ) ;
* // => false
* /
function isString ( value ) {
return typeof value == 'string' ||
( ! ( 0 , isArray /* default */ . Z ) ( value ) && ( 0 , isObjectLike /* default */ . Z ) ( value ) && ( 0 , _baseGetTag /* default */ . Z ) ( value ) == stringTag ) ;
}
/* harmony default export */ const lodash _es _isString = ( isString ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_baseProperty.js
var _baseProperty = _ _webpack _require _ _ ( 54193 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_asciiSize.js
/ * *
* Gets the size of an ASCII ` string ` .
*
* @ private
* @ param { string } string The string inspect .
* @ returns { number } Returns the string size .
* /
var asciiSize = ( 0 , _baseProperty /* default */ . Z ) ( 'length' ) ;
/* harmony default export */ const _asciiSize = ( asciiSize ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_hasUnicode.js
/** Used to compose unicode character classes. */
var rsAstralRange = '\\ud800-\\udfff' ,
rsComboMarksRange = '\\u0300-\\u036f' ,
reComboHalfMarksRange = '\\ufe20-\\ufe2f' ,
rsComboSymbolsRange = '\\u20d0-\\u20ff' ,
rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange ,
rsVarRange = '\\ufe0e\\ufe0f' ;
/** Used to compose unicode capture groups. */
var rsZWJ = '\\u200d' ;
/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */
var reHasUnicode = RegExp ( '[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']' ) ;
/ * *
* Checks if ` string ` contains Unicode symbols .
*
* @ private
* @ param { string } string The string to inspect .
* @ returns { boolean } Returns ` true ` if a symbol is found , else ` false ` .
* /
function hasUnicode ( string ) {
return reHasUnicode . test ( string ) ;
}
/* harmony default export */ const _hasUnicode = ( hasUnicode ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_unicodeSize.js
/** Used to compose unicode character classes. */
var _unicodeSize _rsAstralRange = '\\ud800-\\udfff' ,
_unicodeSize _rsComboMarksRange = '\\u0300-\\u036f' ,
_unicodeSize _reComboHalfMarksRange = '\\ufe20-\\ufe2f' ,
_unicodeSize _rsComboSymbolsRange = '\\u20d0-\\u20ff' ,
_unicodeSize _rsComboRange = _unicodeSize _rsComboMarksRange + _unicodeSize _reComboHalfMarksRange + _unicodeSize _rsComboSymbolsRange ,
_unicodeSize _rsVarRange = '\\ufe0e\\ufe0f' ;
/** Used to compose unicode capture groups. */
var rsAstral = '[' + _unicodeSize _rsAstralRange + ']' ,
rsCombo = '[' + _unicodeSize _rsComboRange + ']' ,
rsFitz = '\\ud83c[\\udffb-\\udfff]' ,
rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')' ,
rsNonAstral = '[^' + _unicodeSize _rsAstralRange + ']' ,
rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}' ,
rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]' ,
_unicodeSize _rsZWJ = '\\u200d' ;
/** Used to compose unicode regexes. */
var reOptMod = rsModifier + '?' ,
rsOptVar = '[' + _unicodeSize _rsVarRange + ']?' ,
rsOptJoin = '(?:' + _unicodeSize _rsZWJ + '(?:' + [ rsNonAstral , rsRegional , rsSurrPair ] . join ( '|' ) + ')' + rsOptVar + reOptMod + ')*' ,
rsSeq = rsOptVar + reOptMod + rsOptJoin ,
rsSymbol = '(?:' + [ rsNonAstral + rsCombo + '?' , rsCombo , rsRegional , rsSurrPair , rsAstral ] . join ( '|' ) + ')' ;
/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */
var reUnicode = RegExp ( rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq , 'g' ) ;
/ * *
* Gets the size of a Unicode ` string ` .
*
* @ private
* @ param { string } string The string inspect .
* @ returns { number } Returns the string size .
* /
function unicodeSize ( string ) {
var result = reUnicode . lastIndex = 0 ;
while ( reUnicode . test ( string ) ) {
++ result ;
}
return result ;
}
/* harmony default export */ const _unicodeSize = ( unicodeSize ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_stringSize.js
/ * *
* Gets the number of symbols in ` string ` .
*
* @ private
* @ param { string } string The string to inspect .
* @ returns { number } Returns the string size .
* /
function stringSize ( string ) {
return _hasUnicode ( string )
? _unicodeSize ( string )
: _asciiSize ( string ) ;
}
/* harmony default export */ const _stringSize = ( stringSize ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/size.js
/** `Object#toString` result references. */
var mapTag = '[object Map]' ,
setTag = '[object Set]' ;
/ * *
* Gets the size of ` collection ` by returning its length for array - like
* values or the number of own enumerable string keyed properties for objects .
*
* @ static
* @ memberOf _
* @ since 0.1 . 0
* @ category Collection
* @ param { Array | Object | string } collection The collection to inspect .
* @ returns { number } Returns the collection size .
* @ example
*
* _ . size ( [ 1 , 2 , 3 ] ) ;
* // => 3
*
* _ . size ( { 'a' : 1 , 'b' : 2 } ) ;
* // => 2
*
* _ . size ( 'pebbles' ) ;
* // => 7
* /
function size ( collection ) {
if ( collection == null ) {
return 0 ;
}
if ( ( 0 , isArrayLike /* default */ . Z ) ( collection ) ) {
return lodash _es _isString ( collection ) ? _stringSize ( collection ) : collection . length ;
}
var tag = ( 0 , _getTag /* default */ . Z ) ( collection ) ;
if ( tag == mapTag || tag == setTag ) {
return collection . size ;
}
return ( 0 , _baseKeys /* default */ . Z ) ( collection ) . length ;
}
/* harmony default export */ const lodash _es _size = ( size ) ;
; // CONCATENATED MODULE: ./node_modules/dagre-d3-es/src/graphlib/alg/topsort.js
topsort _topsort . CycleException = topsort _CycleException ;
function topsort _topsort ( g ) {
var visited = { } ;
var stack = { } ;
var results = [ ] ;
function visit ( node ) {
if ( has /* default */ . Z ( stack , node ) ) {
throw new topsort _CycleException ( ) ;
}
if ( ! has /* default */ . Z ( visited , node ) ) {
stack [ node ] = true ;
visited [ node ] = true ;
forEach /* default */ . Z ( g . predecessors ( node ) , visit ) ;
delete stack [ node ] ;
results . push ( node ) ;
}
}
forEach /* default */ . Z ( g . sinks ( ) , visit ) ;
if ( lodash _es _size ( visited ) !== g . nodeCount ( ) ) {
throw new topsort _CycleException ( ) ;
}
return results ;
}
function topsort _CycleException ( ) { }
topsort _CycleException . prototype = new Error ( ) ; // must be an instance of Error to pass testing
; // CONCATENATED MODULE: ./node_modules/dagre-d3-es/src/graphlib/alg/is-acyclic.js
function isAcyclic ( g ) {
try {
topsort ( g ) ;
} catch ( e ) {
if ( e instanceof CycleException ) {
return false ;
}
throw e ;
}
return true ;
}
; // CONCATENATED MODULE: ./node_modules/dagre-d3-es/src/graphlib/alg/dfs.js
/ *
* A helper that preforms a pre - or post - order traversal on the input graph
* and returns the nodes in the order they were visited . If the graph is
* undirected then this algorithm will navigate using neighbors . If the graph
* is directed then this algorithm will navigate using successors .
*
* Order must be one of "pre" or "post" .
* /
function dfs ( g , vs , order ) {
if ( ! isArray /* default */ . Z ( vs ) ) {
vs = [ vs ] ;
}
var navigation = ( g . isDirected ( ) ? g . successors : g . neighbors ) . bind ( g ) ;
var acc = [ ] ;
var visited = { } ;
forEach /* default */ . Z ( vs , function ( v ) {
if ( ! g . hasNode ( v ) ) {
throw new Error ( 'Graph does not have node: ' + v ) ;
}
doDfs ( g , v , order === 'post' , visited , navigation , acc ) ;
} ) ;
return acc ;
}
function doDfs ( g , v , postorder , visited , navigation , acc ) {
if ( ! has /* default */ . Z ( visited , v ) ) {
visited [ v ] = true ;
if ( ! postorder ) {
acc . push ( v ) ;
}
forEach /* default */ . Z ( navigation ( v ) , function ( w ) {
doDfs ( g , w , postorder , visited , navigation , acc ) ;
} ) ;
if ( postorder ) {
acc . push ( v ) ;
}
}
}
; // CONCATENATED MODULE: ./node_modules/dagre-d3-es/src/graphlib/alg/postorder.js
function postorder ( g , vs ) {
return dfs ( g , vs , 'post' ) ;
}
; // CONCATENATED MODULE: ./node_modules/dagre-d3-es/src/graphlib/alg/preorder.js
function preorder ( g , vs ) {
return dfs ( g , vs , 'pre' ) ;
}
// EXTERNAL MODULE: ./node_modules/dagre-d3-es/src/graphlib/graph.js + 9 modules
var graph = _ _webpack _require _ _ ( 52544 ) ;
; // CONCATENATED MODULE: ./node_modules/dagre-d3-es/src/graphlib/alg/prim.js
function prim ( g , weightFunc ) {
var result = new Graph ( ) ;
var parents = { } ;
var pq = new PriorityQueue ( ) ;
var v ;
function updateNeighbors ( edge ) {
var w = edge . v === v ? edge . w : edge . v ;
var pri = pq . priority ( w ) ;
if ( pri !== undefined ) {
var edgeWeight = weightFunc ( edge ) ;
if ( edgeWeight < pri ) {
parents [ w ] = v ;
pq . decrease ( w , edgeWeight ) ;
}
}
}
if ( g . nodeCount ( ) === 0 ) {
return result ;
}
_ . each ( g . nodes ( ) , function ( v ) {
pq . add ( v , Number . POSITIVE _INFINITY ) ;
result . setNode ( v ) ;
} ) ;
// Start from an arbitrary node
pq . decrease ( g . nodes ( ) [ 0 ] , 0 ) ;
var init = false ;
while ( pq . size ( ) > 0 ) {
v = pq . removeMin ( ) ;
if ( _ . has ( parents , v ) ) {
result . setEdge ( v , parents [ v ] ) ;
} else if ( init ) {
throw new Error ( 'Input graph is not connected: ' + g ) ;
} else {
init = true ;
}
g . nodeEdges ( v ) . forEach ( updateNeighbors ) ;
}
return result ;
}
; // CONCATENATED MODULE: ./node_modules/dagre-d3-es/src/graphlib/alg/index.js
; // CONCATENATED MODULE: ./node_modules/dagre-d3-es/src/dagre/rank/network-simplex.js
// Expose some internals for testing purposes
networkSimplex . initLowLimValues = initLowLimValues ;
networkSimplex . initCutValues = initCutValues ;
networkSimplex . calcCutValue = calcCutValue ;
networkSimplex . leaveEdge = leaveEdge ;
networkSimplex . enterEdge = enterEdge ;
networkSimplex . exchangeEdges = exchangeEdges ;
/ *
* The network simplex algorithm assigns ranks to each node in the input graph
* and iteratively improves the ranking to reduce the length of edges .
*
* Preconditions :
*
* 1. The input graph must be a DAG .
* 2. All nodes in the graph must have an object value .
* 3. All edges in the graph must have "minlen" and "weight" attributes .
*
* Postconditions :
*
* 1. All nodes in the graph will have an assigned "rank" attribute that has
* been optimized by the network simplex algorithm . Ranks start at 0.
*
*
* A rough sketch of the algorithm is as follows :
*
* 1. Assign initial ranks to each node . We use the longest path algorithm ,
* which assigns ranks to the lowest position possible . In general this
* leads to very wide bottom ranks and unnecessarily long edges .
* 2. Construct a feasible tight tree . A tight tree is one such that all
* edges in the tree have no slack ( difference between length of edge
* and minlen for the edge ) . This by itself greatly improves the assigned
* rankings by shorting edges .
* 3. Iteratively find edges that have negative cut values . Generally a
* negative cut value indicates that the edge could be removed and a new
* tree edge could be added to produce a more compact graph .
*
* Much of the algorithms here are derived from Gansner , et al . , " A Technique
* for Drawing Directed Graphs . " The structure of the file roughly follows the
* structure of the overall algorithm .
* /
function networkSimplex ( g ) {
g = simplify ( g ) ;
longestPath ( g ) ;
var t = feasibleTree ( g ) ;
initLowLimValues ( t ) ;
initCutValues ( t , g ) ;
var e , f ;
while ( ( e = leaveEdge ( t ) ) ) {
f = enterEdge ( t , g , e ) ;
exchangeEdges ( t , g , e , f ) ;
}
}
/ *
* Initializes cut values for all edges in the tree .
* /
function initCutValues ( t , g ) {
var vs = postorder ( t , t . nodes ( ) ) ;
vs = vs . slice ( 0 , vs . length - 1 ) ;
forEach /* default */ . Z ( vs , function ( v ) {
assignCutValue ( t , g , v ) ;
} ) ;
}
function assignCutValue ( t , g , child ) {
var childLab = t . node ( child ) ;
var parent = childLab . parent ;
t . edge ( child , parent ) . cutvalue = calcCutValue ( t , g , child ) ;
}
/ *
* Given the tight tree , its graph , and a child in the graph calculate and
* return the cut value for the edge between the child and its parent .
* /
function calcCutValue ( t , g , child ) {
var childLab = t . node ( child ) ;
var parent = childLab . parent ;
// True if the child is on the tail end of the edge in the directed graph
var childIsTail = true ;
// The graph's view of the tree edge we're inspecting
var graphEdge = g . edge ( child , parent ) ;
// The accumulated cut value for the edge between this node and its parent
var cutValue = 0 ;
if ( ! graphEdge ) {
childIsTail = false ;
graphEdge = g . edge ( parent , child ) ;
}
cutValue = graphEdge . weight ;
forEach /* default */ . Z ( g . nodeEdges ( child ) , function ( e ) {
var isOutEdge = e . v === child ,
other = isOutEdge ? e . w : e . v ;
if ( other !== parent ) {
var pointsToHead = isOutEdge === childIsTail ,
otherWeight = g . edge ( e ) . weight ;
cutValue += pointsToHead ? otherWeight : - otherWeight ;
if ( isTreeEdge ( t , child , other ) ) {
var otherCutValue = t . edge ( child , other ) . cutvalue ;
cutValue += pointsToHead ? - otherCutValue : otherCutValue ;
}
}
} ) ;
return cutValue ;
}
function initLowLimValues ( tree , root ) {
if ( arguments . length < 2 ) {
root = tree . nodes ( ) [ 0 ] ;
}
dfsAssignLowLim ( tree , { } , 1 , root ) ;
}
function dfsAssignLowLim ( tree , visited , nextLim , v , parent ) {
var low = nextLim ;
var label = tree . node ( v ) ;
visited [ v ] = true ;
forEach /* default */ . Z ( tree . neighbors ( v ) , function ( w ) {
if ( ! has /* default */ . Z ( visited , w ) ) {
nextLim = dfsAssignLowLim ( tree , visited , nextLim , w , v ) ;
}
} ) ;
label . low = low ;
label . lim = nextLim ++ ;
if ( parent ) {
label . parent = parent ;
} else {
// TODO should be able to remove this when we incrementally update low lim
delete label . parent ;
}
return nextLim ;
}
function leaveEdge ( tree ) {
return lodash _es _find ( tree . edges ( ) , function ( e ) {
return tree . edge ( e ) . cutvalue < 0 ;
} ) ;
}
function enterEdge ( t , g , edge ) {
var v = edge . v ;
var w = edge . w ;
// For the rest of this function we assume that v is the tail and w is the
// head, so if we don't have this edge in the graph we should flip it to
// match the correct orientation.
if ( ! g . hasEdge ( v , w ) ) {
v = edge . w ;
w = edge . v ;
}
var vLabel = t . node ( v ) ;
var wLabel = t . node ( w ) ;
var tailLabel = vLabel ;
var flip = false ;
// If the root is in the tail of the edge then we need to flip the logic that
// checks for the head and tail nodes in the candidates function below.
if ( vLabel . lim > wLabel . lim ) {
tailLabel = wLabel ;
flip = true ;
}
var candidates = filter /* default */ . Z ( g . edges ( ) , function ( edge ) {
return (
flip === isDescendant ( t , t . node ( edge . v ) , tailLabel ) &&
flip !== isDescendant ( t , t . node ( edge . w ) , tailLabel )
) ;
} ) ;
return lodash _es _minBy ( candidates , function ( edge ) {
return slack ( g , edge ) ;
} ) ;
}
function exchangeEdges ( t , g , e , f ) {
var v = e . v ;
var w = e . w ;
t . removeEdge ( v , w ) ;
t . setEdge ( f . v , f . w , { } ) ;
initLowLimValues ( t ) ;
initCutValues ( t , g ) ;
updateRanks ( t , g ) ;
}
function updateRanks ( t , g ) {
var root = lodash _es _find ( t . nodes ( ) , function ( v ) {
return ! g . node ( v ) . parent ;
} ) ;
var vs = preorder ( t , root ) ;
vs = vs . slice ( 1 ) ;
forEach /* default */ . Z ( vs , function ( v ) {
var parent = t . node ( v ) . parent ,
edge = g . edge ( v , parent ) ,
flipped = false ;
if ( ! edge ) {
edge = g . edge ( parent , v ) ;
flipped = true ;
}
g . node ( v ) . rank = g . node ( parent ) . rank + ( flipped ? edge . minlen : - edge . minlen ) ;
} ) ;
}
/ *
* Returns true if the edge is in the tree .
* /
function isTreeEdge ( tree , u , v ) {
return tree . hasEdge ( u , v ) ;
}
/ *
* Returns true if the specified node is descendant of the root node per the
* assigned low and lim attributes in the tree .
* /
function isDescendant ( tree , vLabel , rootLabel ) {
return rootLabel . low <= vLabel . lim && vLabel . lim <= rootLabel . lim ;
}
; // CONCATENATED MODULE: ./node_modules/dagre-d3-es/src/dagre/rank/index.js
/ *
* Assigns a rank to each node in the input graph that respects the "minlen"
* constraint specified on edges between nodes .
*
* This basic structure is derived from Gansner , et al . , " A Technique for
* Drawing Directed Graphs . "
*
* Pre - conditions :
*
* 1. Graph must be a connected DAG
* 2. Graph nodes must be objects
* 3. Graph edges must have "weight" and "minlen" attributes
*
* Post - conditions :
*
* 1. Graph nodes will have a "rank" attribute based on the results of the
* algorithm . Ranks can start at any index ( including negative ) , we ' ll
* fix them up later .
* /
function rank ( g ) {
switch ( g . graph ( ) . ranker ) {
case 'network-simplex' :
networkSimplexRanker ( g ) ;
break ;
case 'tight-tree' :
tightTreeRanker ( g ) ;
break ;
case 'longest-path' :
longestPathRanker ( g ) ;
break ;
default :
networkSimplexRanker ( g ) ;
}
}
// A fast and simple ranker, but results are far from optimal.
var longestPathRanker = longestPath ;
function tightTreeRanker ( g ) {
longestPath ( g ) ;
feasibleTree ( g ) ;
}
function networkSimplexRanker ( g ) {
networkSimplex ( g ) ;
}
// EXTERNAL MODULE: ./node_modules/lodash-es/values.js + 1 modules
var values = _ _webpack _require _ _ ( 34148 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/reduce.js + 2 modules
var reduce = _ _webpack _require _ _ ( 92344 ) ;
; // CONCATENATED MODULE: ./node_modules/dagre-d3-es/src/dagre/nesting-graph.js
/ *
* A nesting graph creates dummy nodes for the tops and bottoms of subgraphs ,
* adds appropriate edges to ensure that all cluster nodes are placed between
* these boundries , and ensures that the graph is connected .
*
* In addition we ensure , through the use of the minlen property , that nodes
* and subgraph border nodes to not end up on the same rank .
*
* Preconditions :
*
* 1. Input graph is a DAG
* 2. Nodes in the input graph has a minlen attribute
*
* Postconditions :
*
* 1. Input graph is connected .
* 2. Dummy nodes are added for the tops and bottoms of subgraphs .
* 3. The minlen attribute for nodes is adjusted to ensure nodes do not
* get placed on the same rank as subgraph border nodes .
*
* The nesting graph idea comes from Sander , " Layout of Compound Directed
* Graphs . "
* /
function nesting _graph _run ( g ) {
var root = addDummyNode ( g , 'root' , { } , '_root' ) ;
var depths = treeDepths ( g ) ;
var height = lodash _es _max ( values /* default */ . Z ( depths ) ) - 1 ; // Note: depths is an Object not an array
var nodeSep = 2 * height + 1 ;
g . graph ( ) . nestingRoot = root ;
// Multiply minlen by nodeSep to align nodes on non-border ranks.
forEach /* default */ . Z ( g . edges ( ) , function ( e ) {
g . edge ( e ) . minlen *= nodeSep ;
} ) ;
// Calculate a weight that is sufficient to keep subgraphs vertically compact
var weight = sumWeights ( g ) + 1 ;
// Create border nodes and link them up
forEach /* default */ . Z ( g . children ( ) , function ( child ) {
nesting _graph _dfs ( g , root , nodeSep , weight , height , depths , child ) ;
} ) ;
// Save the multiplier for node layers for later removal of empty border
// layers.
g . graph ( ) . nodeRankFactor = nodeSep ;
}
function nesting _graph _dfs ( g , root , nodeSep , weight , height , depths , v ) {
var children = g . children ( v ) ;
if ( ! children . length ) {
if ( v !== root ) {
g . setEdge ( root , v , { weight : 0 , minlen : nodeSep } ) ;
}
return ;
}
var top = addBorderNode ( g , '_bt' ) ;
var bottom = addBorderNode ( g , '_bb' ) ;
var label = g . node ( v ) ;
g . setParent ( top , v ) ;
label . borderTop = top ;
g . setParent ( bottom , v ) ;
label . borderBottom = bottom ;
forEach /* default */ . Z ( children , function ( child ) {
nesting _graph _dfs ( g , root , nodeSep , weight , height , depths , child ) ;
var childNode = g . node ( child ) ;
var childTop = childNode . borderTop ? childNode . borderTop : child ;
var childBottom = childNode . borderBottom ? childNode . borderBottom : child ;
var thisWeight = childNode . borderTop ? weight : 2 * weight ;
var minlen = childTop !== childBottom ? 1 : height - depths [ v ] + 1 ;
g . setEdge ( top , childTop , {
weight : thisWeight ,
minlen : minlen ,
nestingEdge : true ,
} ) ;
g . setEdge ( childBottom , bottom , {
weight : thisWeight ,
minlen : minlen ,
nestingEdge : true ,
} ) ;
} ) ;
if ( ! g . parent ( v ) ) {
g . setEdge ( root , top , { weight : 0 , minlen : height + depths [ v ] } ) ;
}
}
function treeDepths ( g ) {
var depths = { } ;
function dfs ( v , depth ) {
var children = g . children ( v ) ;
if ( children && children . length ) {
forEach /* default */ . Z ( children , function ( child ) {
dfs ( child , depth + 1 ) ;
} ) ;
}
depths [ v ] = depth ;
}
forEach /* default */ . Z ( g . children ( ) , function ( v ) {
dfs ( v , 1 ) ;
} ) ;
return depths ;
}
function sumWeights ( g ) {
return reduce /* default */ . Z (
g . edges ( ) ,
function ( acc , e ) {
return acc + g . edge ( e ) . weight ;
} ,
0
) ;
}
function cleanup ( g ) {
var graphLabel = g . graph ( ) ;
g . removeNode ( graphLabel . nestingRoot ) ;
delete graphLabel . nestingRoot ;
forEach /* default */ . Z ( g . edges ( ) , function ( e ) {
var edge = g . edge ( e ) ;
if ( edge . nestingEdge ) {
g . removeEdge ( e ) ;
}
} ) ;
}
// EXTERNAL MODULE: ./node_modules/lodash-es/_baseClone.js + 15 modules
var _baseClone = _ _webpack _require _ _ ( 48451 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/cloneDeep.js
/** Used to compose bitmasks for cloning. */
var CLONE _DEEP _FLAG = 1 ,
CLONE _SYMBOLS _FLAG = 4 ;
/ * *
* This method is like ` _.clone ` except that it recursively clones ` value ` .
*
* @ static
* @ memberOf _
* @ since 1.0 . 0
* @ category Lang
* @ param { * } value The value to recursively clone .
* @ returns { * } Returns the deep cloned value .
* @ see _ . clone
* @ example
*
* var objects = [ { 'a' : 1 } , { 'b' : 2 } ] ;
*
* var deep = _ . cloneDeep ( objects ) ;
* console . log ( deep [ 0 ] === objects [ 0 ] ) ;
* // => false
* /
function cloneDeep ( value ) {
return ( 0 , _baseClone /* default */ . Z ) ( value , CLONE _DEEP _FLAG | CLONE _SYMBOLS _FLAG ) ;
}
/* harmony default export */ const lodash _es _cloneDeep = ( cloneDeep ) ;
; // CONCATENATED MODULE: ./node_modules/dagre-d3-es/src/dagre/order/add-subgraph-constraints.js
function addSubgraphConstraints ( g , cg , vs ) {
var prev = { } ,
rootPrev ;
forEach /* default */ . Z ( vs , function ( v ) {
var child = g . parent ( v ) ,
parent ,
prevChild ;
while ( child ) {
parent = g . parent ( child ) ;
if ( parent ) {
prevChild = prev [ parent ] ;
prev [ parent ] = child ;
} else {
prevChild = rootPrev ;
rootPrev = child ;
}
if ( prevChild && prevChild !== child ) {
cg . setEdge ( prevChild , child ) ;
return ;
}
child = parent ;
}
} ) ;
/ *
function dfs ( v ) {
var children = v ? g . children ( v ) : g . children ( ) ;
if ( children . length ) {
var min = Number . POSITIVE _INFINITY ,
subgraphs = [ ] ;
_ . each ( children , function ( child ) {
var childMin = dfs ( child ) ;
if ( g . children ( child ) . length ) {
subgraphs . push ( { v : child , order : childMin } ) ;
}
min = Math . min ( min , childMin ) ;
} ) ;
_ . reduce ( _ . sortBy ( subgraphs , "order" ) , function ( prev , curr ) {
cg . setEdge ( prev . v , curr . v ) ;
return curr ;
} ) ;
return min ;
}
return g . node ( v ) . order ;
}
dfs ( undefined ) ;
* /
}
; // CONCATENATED MODULE: ./node_modules/dagre-d3-es/src/dagre/order/build-layer-graph.js
/ *
* Constructs a graph that can be used to sort a layer of nodes . The graph will
* contain all base and subgraph nodes from the request layer in their original
* hierarchy and any edges that are incident on these nodes and are of the type
* requested by the "relationship" parameter .
*
* Nodes from the requested rank that do not have parents are assigned a root
* node in the output graph , which is set in the root graph attribute . This
* makes it easy to walk the hierarchy of movable nodes during ordering .
*
* Pre - conditions :
*
* 1. Input graph is a DAG
* 2. Base nodes in the input graph have a rank attribute
* 3. Subgraph nodes in the input graph has minRank and maxRank attributes
* 4. Edges have an assigned weight
*
* Post - conditions :
*
* 1. Output graph has all nodes in the movable rank with preserved
* hierarchy .
* 2. Root nodes in the movable layer are made children of the node
* indicated by the root attribute of the graph .
* 3. Non - movable nodes incident on movable nodes , selected by the
* relationship parameter , are included in the graph ( without hierarchy ) .
* 4. Edges incident on movable nodes , selected by the relationship
* parameter , are added to the output graph .
* 5. The weights for copied edges are aggregated as need , since the output
* graph is not a multi - graph .
* /
function buildLayerGraph ( g , rank , relationship ) {
var root = createRootNode ( g ) ,
result = new graphlib /* Graph */ . k ( { compound : true } )
. setGraph ( { root : root } )
. setDefaultNodeLabel ( function ( v ) {
return g . node ( v ) ;
} ) ;
forEach /* default */ . Z ( g . nodes ( ) , function ( v ) {
var node = g . node ( v ) ,
parent = g . parent ( v ) ;
if ( node . rank === rank || ( node . minRank <= rank && rank <= node . maxRank ) ) {
result . setNode ( v ) ;
result . setParent ( v , parent || root ) ;
// This assumes we have only short edges!
forEach /* default */ . Z ( g [ relationship ] ( v ) , function ( e ) {
var u = e . v === v ? e . w : e . v ,
edge = result . edge ( u , v ) ,
weight = ! isUndefined /* default */ . Z ( edge ) ? edge . weight : 0 ;
result . setEdge ( u , v , { weight : g . edge ( e ) . weight + weight } ) ;
} ) ;
if ( has /* default */ . Z ( node , 'minRank' ) ) {
result . setNode ( v , {
borderLeft : node . borderLeft [ rank ] ,
borderRight : node . borderRight [ rank ] ,
} ) ;
}
}
} ) ;
return result ;
}
function createRootNode ( g ) {
var v ;
while ( g . hasNode ( ( v = uniqueId /* default */ . Z ( '_root' ) ) ) ) ;
return v ;
}
// EXTERNAL MODULE: ./node_modules/lodash-es/_assignValue.js
var _assignValue = _ _webpack _require _ _ ( 72954 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_baseZipObject.js
/ * *
* This base implementation of ` _.zipObject ` which assigns values using ` assignFunc ` .
*
* @ private
* @ param { Array } props The property identifiers .
* @ param { Array } values The property values .
* @ param { Function } assignFunc The function to assign values .
* @ returns { Object } Returns the new object .
* /
function baseZipObject ( props , values , assignFunc ) {
var index = - 1 ,
length = props . length ,
valsLength = values . length ,
result = { } ;
while ( ++ index < length ) {
var value = index < valsLength ? values [ index ] : undefined ;
assignFunc ( result , props [ index ] , value ) ;
}
return result ;
}
/* harmony default export */ const _baseZipObject = ( baseZipObject ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/zipObject.js
/ * *
* This method is like ` _.fromPairs ` except that it accepts two arrays ,
* one of property identifiers and one of corresponding values .
*
* @ static
* @ memberOf _
* @ since 0.4 . 0
* @ category Array
* @ param { Array } [ props = [ ] ] The property identifiers .
* @ param { Array } [ values = [ ] ] The property values .
* @ returns { Object } Returns the new object .
* @ example
*
* _ . zipObject ( [ 'a' , 'b' ] , [ 1 , 2 ] ) ;
* // => { 'a': 1, 'b': 2 }
* /
function zipObject ( props , values ) {
return _baseZipObject ( props || [ ] , values || [ ] , _assignValue /* default */ . Z ) ;
}
/* harmony default export */ const lodash _es _zipObject = ( zipObject ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_baseFlatten.js + 1 modules
var _baseFlatten = _ _webpack _require _ _ ( 10626 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_arrayMap.js
2024-07-20 23:46:21 +02:00
var _arrayMap = _ _webpack _require _ _ ( 27679 ) ;
2023-11-24 16:55:55 +01:00
// EXTERNAL MODULE: ./node_modules/lodash-es/_baseGet.js
var _baseGet = _ _webpack _require _ _ ( 13317 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_baseMap.js
var _baseMap = _ _webpack _require _ _ ( 21018 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_baseSortBy.js
/ * *
* The base implementation of ` _.sortBy ` which uses ` comparer ` to define the
* sort order of ` array ` and replaces criteria objects with their corresponding
* values .
*
* @ private
* @ param { Array } array The array to sort .
* @ param { Function } comparer The function to define sort order .
* @ returns { Array } Returns ` array ` .
* /
function baseSortBy ( array , comparer ) {
var length = array . length ;
array . sort ( comparer ) ;
while ( length -- ) {
array [ length ] = array [ length ] . value ;
}
return array ;
}
/* harmony default export */ const _baseSortBy = ( baseSortBy ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_baseUnary.js
var _baseUnary = _ _webpack _require _ _ ( 21162 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_compareAscending.js
/ * *
* Compares values to sort them in ascending order .
*
* @ private
* @ param { * } value The value to compare .
* @ param { * } other The other value to compare .
* @ returns { number } Returns the sort order indicator for ` value ` .
* /
function compareAscending ( value , other ) {
if ( value !== other ) {
var valIsDefined = value !== undefined ,
valIsNull = value === null ,
valIsReflexive = value === value ,
valIsSymbol = ( 0 , isSymbol /* default */ . Z ) ( value ) ;
var othIsDefined = other !== undefined ,
othIsNull = other === null ,
othIsReflexive = other === other ,
othIsSymbol = ( 0 , isSymbol /* default */ . Z ) ( other ) ;
if ( ( ! othIsNull && ! othIsSymbol && ! valIsSymbol && value > other ) ||
( valIsSymbol && othIsDefined && othIsReflexive && ! othIsNull && ! othIsSymbol ) ||
( valIsNull && othIsDefined && othIsReflexive ) ||
( ! valIsDefined && othIsReflexive ) ||
! valIsReflexive ) {
return 1 ;
}
if ( ( ! valIsNull && ! valIsSymbol && ! othIsSymbol && value < other ) ||
( othIsSymbol && valIsDefined && valIsReflexive && ! valIsNull && ! valIsSymbol ) ||
( othIsNull && valIsDefined && valIsReflexive ) ||
( ! othIsDefined && valIsReflexive ) ||
! othIsReflexive ) {
return - 1 ;
}
}
return 0 ;
}
/* harmony default export */ const _compareAscending = ( compareAscending ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_compareMultiple.js
/ * *
* Used by ` _.orderBy ` to compare multiple properties of a value to another
* and stable sort them .
*
* If ` orders ` is unspecified , all values are sorted in ascending order . Otherwise ,
* specify an order of "desc" for descending or "asc" for ascending sort order
* of corresponding values .
*
* @ private
* @ param { Object } object The object to compare .
* @ param { Object } other The other object to compare .
* @ param { boolean [ ] | string [ ] } orders The order to sort by for each property .
* @ returns { number } Returns the sort order indicator for ` object ` .
* /
function compareMultiple ( object , other , orders ) {
var index = - 1 ,
objCriteria = object . criteria ,
othCriteria = other . criteria ,
length = objCriteria . length ,
ordersLength = orders . length ;
while ( ++ index < length ) {
var result = _compareAscending ( objCriteria [ index ] , othCriteria [ index ] ) ;
if ( result ) {
if ( index >= ordersLength ) {
return result ;
}
var order = orders [ index ] ;
return result * ( order == 'desc' ? - 1 : 1 ) ;
}
}
// Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications
// that causes it, under certain circumstances, to provide the same value for
// `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247
// for more details.
//
// This also ensures a stable sort in V8 and other engines.
// See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.
return object . index - other . index ;
}
/* harmony default export */ const _compareMultiple = ( compareMultiple ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_baseOrderBy.js
/ * *
* The base implementation of ` _.orderBy ` without param guards .
*
* @ private
* @ param { Array | Object } collection The collection to iterate over .
* @ param { Function [ ] | Object [ ] | string [ ] } iteratees The iteratees to sort by .
* @ param { string [ ] } orders The sort orders of ` iteratees ` .
* @ returns { Array } Returns the new sorted array .
* /
function baseOrderBy ( collection , iteratees , orders ) {
if ( iteratees . length ) {
iteratees = ( 0 , _arrayMap /* default */ . Z ) ( iteratees , function ( iteratee ) {
if ( ( 0 , isArray /* default */ . Z ) ( iteratee ) ) {
return function ( value ) {
return ( 0 , _baseGet /* default */ . Z ) ( value , iteratee . length === 1 ? iteratee [ 0 ] : iteratee ) ;
}
}
return iteratee ;
} ) ;
} else {
iteratees = [ identity /* default */ . Z ] ;
}
var index = - 1 ;
iteratees = ( 0 , _arrayMap /* default */ . Z ) ( iteratees , ( 0 , _baseUnary /* default */ . Z ) ( _baseIteratee /* default */ . Z ) ) ;
var result = ( 0 , _baseMap /* default */ . Z ) ( collection , function ( value , key , collection ) {
var criteria = ( 0 , _arrayMap /* default */ . Z ) ( iteratees , function ( iteratee ) {
return iteratee ( value ) ;
} ) ;
return { 'criteria' : criteria , 'index' : ++ index , 'value' : value } ;
} ) ;
return _baseSortBy ( result , function ( object , other ) {
return _compareMultiple ( object , other , orders ) ;
} ) ;
}
/* harmony default export */ const _baseOrderBy = ( baseOrderBy ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_baseRest.js
var _baseRest = _ _webpack _require _ _ ( 69581 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_isIterateeCall.js
var _isIterateeCall = _ _webpack _require _ _ ( 50439 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/sortBy.js
/ * *
* Creates an array of elements , sorted in ascending order by the results of
* running each element in a collection thru each iteratee . This method
* performs a stable sort , that is , it preserves the original sort order of
* equal elements . The iteratees are invoked with one argument : ( value ) .
*
* @ static
* @ memberOf _
* @ since 0.1 . 0
* @ category Collection
* @ param { Array | Object } collection The collection to iterate over .
* @ param { ... ( Function | Function [ ] ) } [ iteratees = [ _ . identity ] ]
* The iteratees to sort by .
* @ returns { Array } Returns the new sorted array .
* @ example
*
* var users = [
* { 'user' : 'fred' , 'age' : 48 } ,
* { 'user' : 'barney' , 'age' : 36 } ,
* { 'user' : 'fred' , 'age' : 30 } ,
* { 'user' : 'barney' , 'age' : 34 }
* ] ;
*
* _ . sortBy ( users , [ function ( o ) { return o . user ; } ] ) ;
* // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]
*
* _ . sortBy ( users , [ 'user' , 'age' ] ) ;
* // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]
* /
var sortBy = ( 0 , _baseRest /* default */ . Z ) ( function ( collection , iteratees ) {
if ( collection == null ) {
return [ ] ;
}
var length = iteratees . length ;
if ( length > 1 && ( 0 , _isIterateeCall /* default */ . Z ) ( collection , iteratees [ 0 ] , iteratees [ 1 ] ) ) {
iteratees = [ ] ;
} else if ( length > 2 && ( 0 , _isIterateeCall /* default */ . Z ) ( iteratees [ 0 ] , iteratees [ 1 ] , iteratees [ 2 ] ) ) {
iteratees = [ iteratees [ 0 ] ] ;
}
return _baseOrderBy ( collection , ( 0 , _baseFlatten /* default */ . Z ) ( iteratees , 1 ) , [ ] ) ;
} ) ;
/* harmony default export */ const lodash _es _sortBy = ( sortBy ) ;
; // CONCATENATED MODULE: ./node_modules/dagre-d3-es/src/dagre/order/cross-count.js
/ *
* A function that takes a layering ( an array of layers , each with an array of
* ordererd nodes ) and a graph and returns a weighted crossing count .
*
* Pre - conditions :
*
* 1. Input graph must be simple ( not a multigraph ) , directed , and include
* only simple edges .
* 2. Edges in the input graph must have assigned weights .
*
* Post - conditions :
*
* 1. The graph and layering matrix are left unchanged .
*
* This algorithm is derived from Barth , et al . , "Bilayer Cross Counting."
* /
function crossCount ( g , layering ) {
var cc = 0 ;
for ( var i = 1 ; i < layering . length ; ++ i ) {
cc += twoLayerCrossCount ( g , layering [ i - 1 ] , layering [ i ] ) ;
}
return cc ;
}
function twoLayerCrossCount ( g , northLayer , southLayer ) {
// Sort all of the edges between the north and south layers by their position
// in the north layer and then the south. Map these edges to the position of
// their head in the south layer.
var southPos = lodash _es _zipObject (
southLayer ,
map /* default */ . Z ( southLayer , function ( v , i ) {
return i ;
} )
) ;
var southEntries = flatten /* default */ . Z (
map /* default */ . Z ( northLayer , function ( v ) {
return lodash _es _sortBy (
map /* default */ . Z ( g . outEdges ( v ) , function ( e ) {
return { pos : southPos [ e . w ] , weight : g . edge ( e ) . weight } ;
} ) ,
'pos'
) ;
} )
) ;
// Build the accumulator tree
var firstIndex = 1 ;
while ( firstIndex < southLayer . length ) firstIndex <<= 1 ;
var treeSize = 2 * firstIndex - 1 ;
firstIndex -= 1 ;
var tree = map /* default */ . Z ( new Array ( treeSize ) , function ( ) {
return 0 ;
} ) ;
// Calculate the weighted crossings
var cc = 0 ;
forEach /* default */ . Z (
// @ts-expect-error
southEntries . forEach ( function ( entry ) {
var index = entry . pos + firstIndex ;
tree [ index ] += entry . weight ;
var weightSum = 0 ;
// @ts-expect-error
while ( index > 0 ) {
// @ts-expect-error
if ( index % 2 ) {
weightSum += tree [ index + 1 ] ;
}
// @ts-expect-error
index = ( index - 1 ) >> 1 ;
tree [ index ] += entry . weight ;
}
cc += entry . weight * weightSum ;
} )
) ;
return cc ;
}
; // CONCATENATED MODULE: ./node_modules/dagre-d3-es/src/dagre/order/init-order.js
/ *
* Assigns an initial order value for each node by performing a DFS search
* starting from nodes in the first rank . Nodes are assigned an order in their
* rank as they are first visited .
*
* This approach comes from Gansner , et al . , " A Technique for Drawing Directed
* Graphs . "
*
* Returns a layering matrix with an array per layer and each layer sorted by
* the order of its nodes .
* /
function initOrder ( g ) {
var visited = { } ;
var simpleNodes = filter /* default */ . Z ( g . nodes ( ) , function ( v ) {
return ! g . children ( v ) . length ;
} ) ;
var maxRank = lodash _es _max (
map /* default */ . Z ( simpleNodes , function ( v ) {
return g . node ( v ) . rank ;
} )
) ;
var layers = map /* default */ . Z ( range /* default */ . Z ( maxRank + 1 ) , function ( ) {
return [ ] ;
} ) ;
function dfs ( v ) {
if ( has /* default */ . Z ( visited , v ) ) return ;
visited [ v ] = true ;
var node = g . node ( v ) ;
layers [ node . rank ] . push ( v ) ;
forEach /* default */ . Z ( g . successors ( v ) , dfs ) ;
}
var orderedVs = lodash _es _sortBy ( simpleNodes , function ( v ) {
return g . node ( v ) . rank ;
} ) ;
forEach /* default */ . Z ( orderedVs , dfs ) ;
return layers ;
}
; // CONCATENATED MODULE: ./node_modules/dagre-d3-es/src/dagre/order/barycenter.js
function barycenter ( g , movable ) {
return map /* default */ . Z ( movable , function ( v ) {
var inV = g . inEdges ( v ) ;
if ( ! inV . length ) {
return { v : v } ;
} else {
var result = reduce /* default */ . Z (
inV ,
function ( acc , e ) {
var edge = g . edge ( e ) ,
nodeU = g . node ( e . v ) ;
return {
sum : acc . sum + edge . weight * nodeU . order ,
weight : acc . weight + edge . weight ,
} ;
} ,
{ sum : 0 , weight : 0 }
) ;
return {
v : v ,
barycenter : result . sum / result . weight ,
weight : result . weight ,
} ;
}
} ) ;
}
; // CONCATENATED MODULE: ./node_modules/dagre-d3-es/src/dagre/order/resolve-conflicts.js
/ *
* Given a list of entries of the form { v , barycenter , weight } and a
* constraint graph this function will resolve any conflicts between the
* constraint graph and the barycenters for the entries . If the barycenters for
* an entry would violate a constraint in the constraint graph then we coalesce
* the nodes in the conflict into a new node that respects the contraint and
* aggregates barycenter and weight information .
*
* This implementation is based on the description in Forster , " A Fast and
* Simple Hueristic for Constrained Two - Level Crossing Reduction , " thought it
* differs in some specific details .
*
* Pre - conditions :
*
* 1. Each entry has the form { v , barycenter , weight } , or if the node has
* no barycenter , then { v } .
*
* Returns :
*
* A new list of entries of the form { vs , i , barycenter , weight } . The list
* ` vs ` may either be a singleton or it may be an aggregation of nodes
* ordered such that they do not violate constraints from the constraint
* graph . The property ` i ` is the lowest original index of any of the
* elements in ` vs ` .
* /
function resolveConflicts ( entries , cg ) {
var mappedEntries = { } ;
forEach /* default */ . Z ( entries , function ( entry , i ) {
var tmp = ( mappedEntries [ entry . v ] = {
indegree : 0 ,
in : [ ] ,
out : [ ] ,
vs : [ entry . v ] ,
i : i ,
} ) ;
if ( ! isUndefined /* default */ . Z ( entry . barycenter ) ) {
// @ts-expect-error
tmp . barycenter = entry . barycenter ;
// @ts-expect-error
tmp . weight = entry . weight ;
}
} ) ;
forEach /* default */ . Z ( cg . edges ( ) , function ( e ) {
var entryV = mappedEntries [ e . v ] ;
var entryW = mappedEntries [ e . w ] ;
if ( ! isUndefined /* default */ . Z ( entryV ) && ! isUndefined /* default */ . Z ( entryW ) ) {
entryW . indegree ++ ;
entryV . out . push ( mappedEntries [ e . w ] ) ;
}
} ) ;
var sourceSet = filter /* default */ . Z ( mappedEntries , function ( entry ) {
// @ts-expect-error
return ! entry . indegree ;
} ) ;
return doResolveConflicts ( sourceSet ) ;
}
function doResolveConflicts ( sourceSet ) {
var entries = [ ] ;
function handleIn ( vEntry ) {
return function ( uEntry ) {
if ( uEntry . merged ) {
return ;
}
if (
isUndefined /* default */ . Z ( uEntry . barycenter ) ||
isUndefined /* default */ . Z ( vEntry . barycenter ) ||
uEntry . barycenter >= vEntry . barycenter
) {
mergeEntries ( vEntry , uEntry ) ;
}
} ;
}
function handleOut ( vEntry ) {
return function ( wEntry ) {
wEntry [ 'in' ] . push ( vEntry ) ;
if ( -- wEntry . indegree === 0 ) {
sourceSet . push ( wEntry ) ;
}
} ;
}
while ( sourceSet . length ) {
var entry = sourceSet . pop ( ) ;
entries . push ( entry ) ;
forEach /* default */ . Z ( entry [ 'in' ] . reverse ( ) , handleIn ( entry ) ) ;
forEach /* default */ . Z ( entry . out , handleOut ( entry ) ) ;
}
return map /* default */ . Z (
filter /* default */ . Z ( entries , function ( entry ) {
return ! entry . merged ;
} ) ,
function ( entry ) {
return pick /* default */ . Z ( entry , [ 'vs' , 'i' , 'barycenter' , 'weight' ] ) ;
}
) ;
}
function mergeEntries ( target , source ) {
var sum = 0 ;
var weight = 0 ;
if ( target . weight ) {
sum += target . barycenter * target . weight ;
weight += target . weight ;
}
if ( source . weight ) {
sum += source . barycenter * source . weight ;
weight += source . weight ;
}
target . vs = source . vs . concat ( target . vs ) ;
target . barycenter = sum / weight ;
target . weight = weight ;
target . i = Math . min ( source . i , target . i ) ;
source . merged = true ;
}
; // CONCATENATED MODULE: ./node_modules/dagre-d3-es/src/dagre/order/sort.js
function sort ( entries , biasRight ) {
var parts = partition ( entries , function ( entry ) {
return has /* default */ . Z ( entry , 'barycenter' ) ;
} ) ;
var sortable = parts . lhs ,
unsortable = lodash _es _sortBy ( parts . rhs , function ( entry ) {
return - entry . i ;
} ) ,
vs = [ ] ,
sum = 0 ,
weight = 0 ,
vsIndex = 0 ;
sortable . sort ( compareWithBias ( ! ! biasRight ) ) ;
vsIndex = consumeUnsortable ( vs , unsortable , vsIndex ) ;
forEach /* default */ . Z ( sortable , function ( entry ) {
vsIndex += entry . vs . length ;
vs . push ( entry . vs ) ;
sum += entry . barycenter * entry . weight ;
weight += entry . weight ;
vsIndex = consumeUnsortable ( vs , unsortable , vsIndex ) ;
} ) ;
var result = { vs : flatten /* default */ . Z ( vs ) } ;
if ( weight ) {
result . barycenter = sum / weight ;
result . weight = weight ;
}
return result ;
}
function consumeUnsortable ( vs , unsortable , index ) {
var last ;
while ( unsortable . length && ( last = lodash _es _last ( unsortable ) ) . i <= index ) {
unsortable . pop ( ) ;
vs . push ( last . vs ) ;
index ++ ;
}
return index ;
}
function compareWithBias ( bias ) {
return function ( entryV , entryW ) {
if ( entryV . barycenter < entryW . barycenter ) {
return - 1 ;
} else if ( entryV . barycenter > entryW . barycenter ) {
return 1 ;
}
return ! bias ? entryV . i - entryW . i : entryW . i - entryV . i ;
} ;
}
; // CONCATENATED MODULE: ./node_modules/dagre-d3-es/src/dagre/order/sort-subgraph.js
function sortSubgraph ( g , v , cg , biasRight ) {
var movable = g . children ( v ) ;
var node = g . node ( v ) ;
var bl = node ? node . borderLeft : undefined ;
var br = node ? node . borderRight : undefined ;
var subgraphs = { } ;
if ( bl ) {
movable = filter /* default */ . Z ( movable , function ( w ) {
return w !== bl && w !== br ;
} ) ;
}
var barycenters = barycenter ( g , movable ) ;
forEach /* default */ . Z ( barycenters , function ( entry ) {
if ( g . children ( entry . v ) . length ) {
var subgraphResult = sortSubgraph ( g , entry . v , cg , biasRight ) ;
subgraphs [ entry . v ] = subgraphResult ;
if ( has /* default */ . Z ( subgraphResult , 'barycenter' ) ) {
mergeBarycenters ( entry , subgraphResult ) ;
}
}
} ) ;
var entries = resolveConflicts ( barycenters , cg ) ;
expandSubgraphs ( entries , subgraphs ) ;
var result = sort ( entries , biasRight ) ;
if ( bl ) {
result . vs = flatten /* default */ . Z ( [ bl , result . vs , br ] ) ;
if ( g . predecessors ( bl ) . length ) {
var blPred = g . node ( g . predecessors ( bl ) [ 0 ] ) ,
brPred = g . node ( g . predecessors ( br ) [ 0 ] ) ;
if ( ! has /* default */ . Z ( result , 'barycenter' ) ) {
result . barycenter = 0 ;
result . weight = 0 ;
}
result . barycenter =
( result . barycenter * result . weight + blPred . order + brPred . order ) / ( result . weight + 2 ) ;
result . weight += 2 ;
}
}
return result ;
}
function expandSubgraphs ( entries , subgraphs ) {
forEach /* default */ . Z ( entries , function ( entry ) {
entry . vs = flatten /* default */ . Z (
entry . vs . map ( function ( v ) {
if ( subgraphs [ v ] ) {
return subgraphs [ v ] . vs ;
}
return v ;
} )
) ;
} ) ;
}
function mergeBarycenters ( target , other ) {
if ( ! isUndefined /* default */ . Z ( target . barycenter ) ) {
target . barycenter =
( target . barycenter * target . weight + other . barycenter * other . weight ) /
( target . weight + other . weight ) ;
target . weight += other . weight ;
} else {
target . barycenter = other . barycenter ;
target . weight = other . weight ;
}
}
; // CONCATENATED MODULE: ./node_modules/dagre-d3-es/src/dagre/order/index.js
/ *
* Applies heuristics to minimize edge crossings in the graph and sets the best
* order solution as an order attribute on each node .
*
* Pre - conditions :
*
* 1. Graph must be DAG
* 2. Graph nodes must be objects with a "rank" attribute
* 3. Graph edges must have the "weight" attribute
*
* Post - conditions :
*
* 1. Graph nodes will have an "order" attribute based on the results of the
* algorithm .
* /
function order ( g ) {
var maxRank = util _maxRank ( g ) ,
downLayerGraphs = buildLayerGraphs ( g , range /* default */ . Z ( 1 , maxRank + 1 ) , 'inEdges' ) ,
upLayerGraphs = buildLayerGraphs ( g , range /* default */ . Z ( maxRank - 1 , - 1 , - 1 ) , 'outEdges' ) ;
var layering = initOrder ( g ) ;
assignOrder ( g , layering ) ;
var bestCC = Number . POSITIVE _INFINITY ,
best ;
for ( var i = 0 , lastBest = 0 ; lastBest < 4 ; ++ i , ++ lastBest ) {
sweepLayerGraphs ( i % 2 ? downLayerGraphs : upLayerGraphs , i % 4 >= 2 ) ;
layering = buildLayerMatrix ( g ) ;
var cc = crossCount ( g , layering ) ;
if ( cc < bestCC ) {
lastBest = 0 ;
best = lodash _es _cloneDeep ( layering ) ;
bestCC = cc ;
}
}
assignOrder ( g , best ) ;
}
function buildLayerGraphs ( g , ranks , relationship ) {
return map /* default */ . Z ( ranks , function ( rank ) {
return buildLayerGraph ( g , rank , relationship ) ;
} ) ;
}
function sweepLayerGraphs ( layerGraphs , biasRight ) {
var cg = new graphlib /* Graph */ . k ( ) ;
forEach /* default */ . Z ( layerGraphs , function ( lg ) {
var root = lg . graph ( ) . root ;
var sorted = sortSubgraph ( lg , root , cg , biasRight ) ;
forEach /* default */ . Z ( sorted . vs , function ( v , i ) {
lg . node ( v ) . order = i ;
} ) ;
addSubgraphConstraints ( lg , cg , sorted . vs ) ;
} ) ;
}
function assignOrder ( g , layering ) {
forEach /* default */ . Z ( layering , function ( layer ) {
forEach /* default */ . Z ( layer , function ( v , i ) {
g . node ( v ) . order = i ;
} ) ;
} ) ;
}
; // CONCATENATED MODULE: ./node_modules/dagre-d3-es/src/dagre/parent-dummy-chains.js
function parentDummyChains ( g ) {
var postorderNums = parent _dummy _chains _postorder ( g ) ;
forEach /* default */ . Z ( g . graph ( ) . dummyChains , function ( v ) {
var node = g . node ( v ) ;
var edgeObj = node . edgeObj ;
var pathData = findPath ( g , postorderNums , edgeObj . v , edgeObj . w ) ;
var path = pathData . path ;
var lca = pathData . lca ;
var pathIdx = 0 ;
var pathV = path [ pathIdx ] ;
var ascending = true ;
while ( v !== edgeObj . w ) {
node = g . node ( v ) ;
if ( ascending ) {
while ( ( pathV = path [ pathIdx ] ) !== lca && g . node ( pathV ) . maxRank < node . rank ) {
pathIdx ++ ;
}
if ( pathV === lca ) {
ascending = false ;
}
}
if ( ! ascending ) {
while (
pathIdx < path . length - 1 &&
g . node ( ( pathV = path [ pathIdx + 1 ] ) ) . minRank <= node . rank
) {
pathIdx ++ ;
}
pathV = path [ pathIdx ] ;
}
g . setParent ( v , pathV ) ;
v = g . successors ( v ) [ 0 ] ;
}
} ) ;
}
// Find a path from v to w through the lowest common ancestor (LCA). Return the
// full path and the LCA.
function findPath ( g , postorderNums , v , w ) {
var vPath = [ ] ;
var wPath = [ ] ;
var low = Math . min ( postorderNums [ v ] . low , postorderNums [ w ] . low ) ;
var lim = Math . max ( postorderNums [ v ] . lim , postorderNums [ w ] . lim ) ;
var parent ;
var lca ;
// Traverse up from v to find the LCA
parent = v ;
do {
parent = g . parent ( parent ) ;
vPath . push ( parent ) ;
} while ( parent && ( postorderNums [ parent ] . low > low || lim > postorderNums [ parent ] . lim ) ) ;
lca = parent ;
// Traverse from w to LCA
parent = w ;
while ( ( parent = g . parent ( parent ) ) !== lca ) {
wPath . push ( parent ) ;
}
return { path : vPath . concat ( wPath . reverse ( ) ) , lca : lca } ;
}
function parent _dummy _chains _postorder ( g ) {
var result = { } ;
var lim = 0 ;
function dfs ( v ) {
var low = lim ;
forEach /* default */ . Z ( g . children ( v ) , dfs ) ;
result [ v ] = { low : low , lim : lim ++ } ;
}
forEach /* default */ . Z ( g . children ( ) , dfs ) ;
return result ;
}
// EXTERNAL MODULE: ./node_modules/lodash-es/_castFunction.js
var _castFunction = _ _webpack _require _ _ ( 68882 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/forOwn.js
/ * *
* Iterates over own enumerable string keyed properties of an object and
* invokes ` iteratee ` for each property . The iteratee is invoked with three
* arguments : ( value , key , object ) . Iteratee functions may exit iteration
* early by explicitly returning ` false ` .
*
* @ static
* @ memberOf _
* @ since 0.3 . 0
* @ category Object
* @ param { Object } object The object to iterate over .
* @ param { Function } [ iteratee = _ . identity ] The function invoked per iteration .
* @ returns { Object } Returns ` object ` .
* @ see _ . forOwnRight
* @ example
*
* function Foo ( ) {
* this . a = 1 ;
* this . b = 2 ;
* }
*
* Foo . prototype . c = 3 ;
*
* _ . forOwn ( new Foo , function ( value , key ) {
* console . log ( key ) ;
* } ) ;
* // => Logs 'a' then 'b' (iteration order is not guaranteed).
* /
function forOwn ( object , iteratee ) {
return object && ( 0 , _baseForOwn /* default */ . Z ) ( object , ( 0 , _castFunction /* default */ . Z ) ( iteratee ) ) ;
}
/* harmony default export */ const lodash _es _forOwn = ( forOwn ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_baseFor.js + 1 modules
var _baseFor = _ _webpack _require _ _ ( 61395 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/keysIn.js + 2 modules
var keysIn = _ _webpack _require _ _ ( 32957 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/forIn.js
/ * *
* Iterates over own and inherited enumerable string keyed properties of an
* object and invokes ` iteratee ` for each property . The iteratee is invoked
* with three arguments : ( value , key , object ) . Iteratee functions may exit
* iteration early by explicitly returning ` false ` .
*
* @ static
* @ memberOf _
* @ since 0.3 . 0
* @ category Object
* @ param { Object } object The object to iterate over .
* @ param { Function } [ iteratee = _ . identity ] The function invoked per iteration .
* @ returns { Object } Returns ` object ` .
* @ see _ . forInRight
* @ example
*
* function Foo ( ) {
* this . a = 1 ;
* this . b = 2 ;
* }
*
* Foo . prototype . c = 3 ;
*
* _ . forIn ( new Foo , function ( value , key ) {
* console . log ( key ) ;
* } ) ;
* // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).
* /
function forIn ( object , iteratee ) {
return object == null
? object
: ( 0 , _baseFor /* default */ . Z ) ( object , ( 0 , _castFunction /* default */ . Z ) ( iteratee ) , keysIn /* default */ . Z ) ;
}
/* harmony default export */ const lodash _es _forIn = ( forIn ) ;
; // CONCATENATED MODULE: ./node_modules/dagre-d3-es/src/dagre/position/bk.js
/ *
* This module provides coordinate assignment based on Brandes and Köpf , " Fast
* and Simple Horizontal Coordinate Assignment . "
* /
/ *
* Marks all edges in the graph with a type - 1 conflict with the "type1Conflict"
* property . A type - 1 conflict is one where a non - inner segment crosses an
* inner segment . An inner segment is an edge with both incident nodes marked
* with the "dummy" property .
*
* This algorithm scans layer by layer , starting with the second , for type - 1
* conflicts between the current layer and the previous layer . For each layer
* it scans the nodes from left to right until it reaches one that is incident
* on an inner segment . It then scans predecessors to determine if they have
* edges that cross that inner segment . At the end a final scan is done for all
* nodes on the current rank to see if they cross the last visited inner
* segment .
*
* This algorithm ( safely ) assumes that a dummy node will only be incident on a
* single node in the layers being scanned .
* /
function findType1Conflicts ( g , layering ) {
var conflicts = { } ;
function visitLayer ( prevLayer , layer ) {
var // last visited node in the previous layer that is incident on an inner
// segment.
k0 = 0 ,
// Tracks the last node in this layer scanned for crossings with a type-1
// segment.
scanPos = 0 ,
prevLayerLength = prevLayer . length ,
lastNode = lodash _es _last ( layer ) ;
forEach /* default */ . Z ( layer , function ( v , i ) {
var w = findOtherInnerSegmentNode ( g , v ) ,
k1 = w ? g . node ( w ) . order : prevLayerLength ;
if ( w || v === lastNode ) {
forEach /* default */ . Z ( layer . slice ( scanPos , i + 1 ) , function ( scanNode ) {
forEach /* default */ . Z ( g . predecessors ( scanNode ) , function ( u ) {
var uLabel = g . node ( u ) ,
uPos = uLabel . order ;
if ( ( uPos < k0 || k1 < uPos ) && ! ( uLabel . dummy && g . node ( scanNode ) . dummy ) ) {
addConflict ( conflicts , u , scanNode ) ;
}
} ) ;
} ) ;
// @ts-expect-error
scanPos = i + 1 ;
k0 = k1 ;
}
} ) ;
return layer ;
}
reduce /* default */ . Z ( layering , visitLayer ) ;
return conflicts ;
}
function findType2Conflicts ( g , layering ) {
var conflicts = { } ;
function scan ( south , southPos , southEnd , prevNorthBorder , nextNorthBorder ) {
var v ;
forEach /* default */ . Z ( range /* default */ . Z ( southPos , southEnd ) , function ( i ) {
v = south [ i ] ;
if ( g . node ( v ) . dummy ) {
forEach /* default */ . Z ( g . predecessors ( v ) , function ( u ) {
var uNode = g . node ( u ) ;
if ( uNode . dummy && ( uNode . order < prevNorthBorder || uNode . order > nextNorthBorder ) ) {
addConflict ( conflicts , u , v ) ;
}
} ) ;
}
} ) ;
}
function visitLayer ( north , south ) {
var prevNorthPos = - 1 ,
nextNorthPos ,
southPos = 0 ;
forEach /* default */ . Z ( south , function ( v , southLookahead ) {
if ( g . node ( v ) . dummy === 'border' ) {
var predecessors = g . predecessors ( v ) ;
if ( predecessors . length ) {
nextNorthPos = g . node ( predecessors [ 0 ] ) . order ;
scan ( south , southPos , southLookahead , prevNorthPos , nextNorthPos ) ;
// @ts-expect-error
southPos = southLookahead ;
prevNorthPos = nextNorthPos ;
}
}
scan ( south , southPos , south . length , nextNorthPos , north . length ) ;
} ) ;
return south ;
}
reduce /* default */ . Z ( layering , visitLayer ) ;
return conflicts ;
}
function findOtherInnerSegmentNode ( g , v ) {
if ( g . node ( v ) . dummy ) {
return lodash _es _find ( g . predecessors ( v ) , function ( u ) {
return g . node ( u ) . dummy ;
} ) ;
}
}
function addConflict ( conflicts , v , w ) {
if ( v > w ) {
var tmp = v ;
v = w ;
w = tmp ;
}
var conflictsV = conflicts [ v ] ;
if ( ! conflictsV ) {
conflicts [ v ] = conflictsV = { } ;
}
conflictsV [ w ] = true ;
}
function hasConflict ( conflicts , v , w ) {
if ( v > w ) {
var tmp = v ;
v = w ;
w = tmp ;
}
return has /* default */ . Z ( conflicts [ v ] , w ) ;
}
/ *
* Try to align nodes into vertical "blocks" where possible . This algorithm
* attempts to align a node with one of its median neighbors . If the edge
* connecting a neighbor is a type - 1 conflict then we ignore that possibility .
* If a previous node has already formed a block with a node after the node
* we ' re trying to form a block with , we also ignore that possibility - our
* blocks would be split in that scenario .
* /
function verticalAlignment ( g , layering , conflicts , neighborFn ) {
var root = { } ,
align = { } ,
pos = { } ;
// We cache the position here based on the layering because the graph and
// layering may be out of sync. The layering matrix is manipulated to
// generate different extreme alignments.
forEach /* default */ . Z ( layering , function ( layer ) {
forEach /* default */ . Z ( layer , function ( v , order ) {
root [ v ] = v ;
align [ v ] = v ;
pos [ v ] = order ;
} ) ;
} ) ;
forEach /* default */ . Z ( layering , function ( layer ) {
var prevIdx = - 1 ;
forEach /* default */ . Z ( layer , function ( v ) {
var ws = neighborFn ( v ) ;
if ( ws . length ) {
ws = lodash _es _sortBy ( ws , function ( w ) {
return pos [ w ] ;
} ) ;
var mp = ( ws . length - 1 ) / 2 ;
for ( var i = Math . floor ( mp ) , il = Math . ceil ( mp ) ; i <= il ; ++ i ) {
var w = ws [ i ] ;
if ( align [ v ] === v && prevIdx < pos [ w ] && ! hasConflict ( conflicts , v , w ) ) {
align [ w ] = v ;
align [ v ] = root [ v ] = root [ w ] ;
prevIdx = pos [ w ] ;
}
}
}
} ) ;
} ) ;
return { root : root , align : align } ;
}
function horizontalCompaction ( g , layering , root , align , reverseSep ) {
// This portion of the algorithm differs from BK due to a number of problems.
// Instead of their algorithm we construct a new block graph and do two
// sweeps. The first sweep places blocks with the smallest possible
// coordinates. The second sweep removes unused space by moving blocks to the
// greatest coordinates without violating separation.
var xs = { } ,
blockG = buildBlockGraph ( g , layering , root , reverseSep ) ,
borderType = reverseSep ? 'borderLeft' : 'borderRight' ;
function iterate ( setXsFunc , nextNodesFunc ) {
var stack = blockG . nodes ( ) ;
var elem = stack . pop ( ) ;
var visited = { } ;
while ( elem ) {
if ( visited [ elem ] ) {
setXsFunc ( elem ) ;
} else {
visited [ elem ] = true ;
stack . push ( elem ) ;
stack = stack . concat ( nextNodesFunc ( elem ) ) ;
}
elem = stack . pop ( ) ;
}
}
// First pass, assign smallest coordinates
function pass1 ( elem ) {
xs [ elem ] = blockG . inEdges ( elem ) . reduce ( function ( acc , e ) {
return Math . max ( acc , xs [ e . v ] + blockG . edge ( e ) ) ;
} , 0 ) ;
}
// Second pass, assign greatest coordinates
function pass2 ( elem ) {
var min = blockG . outEdges ( elem ) . reduce ( function ( acc , e ) {
return Math . min ( acc , xs [ e . w ] - blockG . edge ( e ) ) ;
} , Number . POSITIVE _INFINITY ) ;
var node = g . node ( elem ) ;
if ( min !== Number . POSITIVE _INFINITY && node . borderType !== borderType ) {
xs [ elem ] = Math . max ( xs [ elem ] , min ) ;
}
}
iterate ( pass1 , blockG . predecessors . bind ( blockG ) ) ;
iterate ( pass2 , blockG . successors . bind ( blockG ) ) ;
// Assign x coordinates to all nodes
forEach /* default */ . Z ( align , function ( v ) {
xs [ v ] = xs [ root [ v ] ] ;
} ) ;
return xs ;
}
function buildBlockGraph ( g , layering , root , reverseSep ) {
var blockGraph = new graphlib /* Graph */ . k ( ) ,
graphLabel = g . graph ( ) ,
sepFn = sep ( graphLabel . nodesep , graphLabel . edgesep , reverseSep ) ;
forEach /* default */ . Z ( layering , function ( layer ) {
var u ;
forEach /* default */ . Z ( layer , function ( v ) {
var vRoot = root [ v ] ;
blockGraph . setNode ( vRoot ) ;
if ( u ) {
var uRoot = root [ u ] ,
prevMax = blockGraph . edge ( uRoot , vRoot ) ;
blockGraph . setEdge ( uRoot , vRoot , Math . max ( sepFn ( g , v , u ) , prevMax || 0 ) ) ;
}
u = v ;
} ) ;
} ) ;
return blockGraph ;
}
/ *
* Returns the alignment that has the smallest width of the given alignments .
* /
function findSmallestWidthAlignment ( g , xss ) {
return lodash _es _minBy ( values /* default */ . Z ( xss ) , function ( xs ) {
var max = Number . NEGATIVE _INFINITY ;
var min = Number . POSITIVE _INFINITY ;
lodash _es _forIn ( xs , function ( x , v ) {
var halfWidth = width ( g , v ) / 2 ;
max = Math . max ( x + halfWidth , max ) ;
min = Math . min ( x - halfWidth , min ) ;
} ) ;
return max - min ;
} ) ;
}
/ *
* Align the coordinates of each of the layout alignments such that
* left - biased alignments have their minimum coordinate at the same point as
* the minimum coordinate of the smallest width alignment and right - biased
* alignments have their maximum coordinate at the same point as the maximum
* coordinate of the smallest width alignment .
* /
function alignCoordinates ( xss , alignTo ) {
var alignToVals = values /* default */ . Z ( alignTo ) ,
alignToMin = lodash _es _min ( alignToVals ) ,
alignToMax = lodash _es _max ( alignToVals ) ;
forEach /* default */ . Z ( [ 'u' , 'd' ] , function ( vert ) {
forEach /* default */ . Z ( [ 'l' , 'r' ] , function ( horiz ) {
var alignment = vert + horiz ,
xs = xss [ alignment ] ,
delta ;
if ( xs === alignTo ) return ;
var xsVals = values /* default */ . Z ( xs ) ;
delta = horiz === 'l' ? alignToMin - lodash _es _min ( xsVals ) : alignToMax - lodash _es _max ( xsVals ) ;
if ( delta ) {
xss [ alignment ] = lodash _es _mapValues ( xs , function ( x ) {
return x + delta ;
} ) ;
}
} ) ;
} ) ;
}
function balance ( xss , align ) {
return lodash _es _mapValues ( xss . ul , function ( ignore , v ) {
if ( align ) {
return xss [ align . toLowerCase ( ) ] [ v ] ;
} else {
var xs = lodash _es _sortBy ( map /* default */ . Z ( xss , v ) ) ;
return ( xs [ 1 ] + xs [ 2 ] ) / 2 ;
}
} ) ;
}
function positionX ( g ) {
var layering = buildLayerMatrix ( g ) ;
var conflicts = merge /* default */ . Z ( findType1Conflicts ( g , layering ) , findType2Conflicts ( g , layering ) ) ;
var xss = { } ;
var adjustedLayering ;
forEach /* default */ . Z ( [ 'u' , 'd' ] , function ( vert ) {
adjustedLayering = vert === 'u' ? layering : values /* default */ . Z ( layering ) . reverse ( ) ;
forEach /* default */ . Z ( [ 'l' , 'r' ] , function ( horiz ) {
if ( horiz === 'r' ) {
adjustedLayering = map /* default */ . Z ( adjustedLayering , function ( inner ) {
return values /* default */ . Z ( inner ) . reverse ( ) ;
} ) ;
}
var neighborFn = ( vert === 'u' ? g . predecessors : g . successors ) . bind ( g ) ;
var align = verticalAlignment ( g , adjustedLayering , conflicts , neighborFn ) ;
var xs = horizontalCompaction ( g , adjustedLayering , align . root , align . align , horiz === 'r' ) ;
if ( horiz === 'r' ) {
xs = lodash _es _mapValues ( xs , function ( x ) {
return - x ;
} ) ;
}
xss [ vert + horiz ] = xs ;
} ) ;
} ) ;
var smallestWidth = findSmallestWidthAlignment ( g , xss ) ;
alignCoordinates ( xss , smallestWidth ) ;
return balance ( xss , g . graph ( ) . align ) ;
}
function sep ( nodeSep , edgeSep , reverseSep ) {
return function ( g , v , w ) {
var vLabel = g . node ( v ) ;
var wLabel = g . node ( w ) ;
var sum = 0 ;
var delta ;
sum += vLabel . width / 2 ;
if ( has /* default */ . Z ( vLabel , 'labelpos' ) ) {
switch ( vLabel . labelpos . toLowerCase ( ) ) {
case 'l' :
delta = - vLabel . width / 2 ;
break ;
case 'r' :
delta = vLabel . width / 2 ;
break ;
}
}
if ( delta ) {
sum += reverseSep ? delta : - delta ;
}
delta = 0 ;
sum += ( vLabel . dummy ? edgeSep : nodeSep ) / 2 ;
sum += ( wLabel . dummy ? edgeSep : nodeSep ) / 2 ;
sum += wLabel . width / 2 ;
if ( has /* default */ . Z ( wLabel , 'labelpos' ) ) {
switch ( wLabel . labelpos . toLowerCase ( ) ) {
case 'l' :
delta = wLabel . width / 2 ;
break ;
case 'r' :
delta = - wLabel . width / 2 ;
break ;
}
}
if ( delta ) {
sum += reverseSep ? delta : - delta ;
}
delta = 0 ;
return sum ;
} ;
}
function width ( g , v ) {
return g . node ( v ) . width ;
}
; // CONCATENATED MODULE: ./node_modules/dagre-d3-es/src/dagre/position/index.js
function position ( g ) {
g = asNonCompoundGraph ( g ) ;
positionY ( g ) ;
lodash _es _forOwn ( positionX ( g ) , function ( x , v ) {
g . node ( v ) . x = x ;
} ) ;
}
function positionY ( g ) {
var layering = buildLayerMatrix ( g ) ;
var rankSep = g . graph ( ) . ranksep ;
var prevY = 0 ;
forEach /* default */ . Z ( layering , function ( layer ) {
var maxHeight = lodash _es _max (
map /* default */ . Z ( layer , function ( v ) {
return g . node ( v ) . height ;
} )
) ;
forEach /* default */ . Z ( layer , function ( v ) {
g . node ( v ) . y = prevY + maxHeight / 2 ;
} ) ;
prevY += maxHeight + rankSep ;
} ) ;
}
; // CONCATENATED MODULE: ./node_modules/dagre-d3-es/src/dagre/layout.js
function layout ( g , opts ) {
var time = opts && opts . debugTiming ? util _time : notime ;
time ( 'layout' , function ( ) {
var layoutGraph = time ( ' buildLayoutGraph' , function ( ) {
return buildLayoutGraph ( g ) ;
} ) ;
time ( ' runLayout' , function ( ) {
runLayout ( layoutGraph , time ) ;
} ) ;
time ( ' updateInputGraph' , function ( ) {
updateInputGraph ( g , layoutGraph ) ;
} ) ;
} ) ;
}
function runLayout ( g , time ) {
time ( ' makeSpaceForEdgeLabels' , function ( ) {
makeSpaceForEdgeLabels ( g ) ;
} ) ;
time ( ' removeSelfEdges' , function ( ) {
removeSelfEdges ( g ) ;
} ) ;
time ( ' acyclic' , function ( ) {
run ( g ) ;
} ) ;
time ( ' nestingGraph.run' , function ( ) {
nesting _graph _run ( g ) ;
} ) ;
time ( ' rank' , function ( ) {
rank ( asNonCompoundGraph ( g ) ) ;
} ) ;
time ( ' injectEdgeLabelProxies' , function ( ) {
injectEdgeLabelProxies ( g ) ;
} ) ;
time ( ' removeEmptyRanks' , function ( ) {
removeEmptyRanks ( g ) ;
} ) ;
time ( ' nestingGraph.cleanup' , function ( ) {
cleanup ( g ) ;
} ) ;
time ( ' normalizeRanks' , function ( ) {
normalizeRanks ( g ) ;
} ) ;
time ( ' assignRankMinMax' , function ( ) {
assignRankMinMax ( g ) ;
} ) ;
time ( ' removeEdgeLabelProxies' , function ( ) {
removeEdgeLabelProxies ( g ) ;
} ) ;
time ( ' normalize.run' , function ( ) {
normalize _run ( g ) ;
} ) ;
time ( ' parentDummyChains' , function ( ) {
parentDummyChains ( g ) ;
} ) ;
time ( ' addBorderSegments' , function ( ) {
addBorderSegments ( g ) ;
} ) ;
time ( ' order' , function ( ) {
order ( g ) ;
} ) ;
time ( ' insertSelfEdges' , function ( ) {
insertSelfEdges ( g ) ;
} ) ;
time ( ' adjustCoordinateSystem' , function ( ) {
adjust ( g ) ;
} ) ;
time ( ' position' , function ( ) {
position ( g ) ;
} ) ;
time ( ' positionSelfEdges' , function ( ) {
positionSelfEdges ( g ) ;
} ) ;
time ( ' removeBorderNodes' , function ( ) {
removeBorderNodes ( g ) ;
} ) ;
time ( ' normalize.undo' , function ( ) {
normalize _undo ( g ) ;
} ) ;
time ( ' fixupEdgeLabelCoords' , function ( ) {
fixupEdgeLabelCoords ( g ) ;
} ) ;
time ( ' undoCoordinateSystem' , function ( ) {
coordinate _system _undo ( g ) ;
} ) ;
time ( ' translateGraph' , function ( ) {
translateGraph ( g ) ;
} ) ;
time ( ' assignNodeIntersects' , function ( ) {
assignNodeIntersects ( g ) ;
} ) ;
time ( ' reversePoints' , function ( ) {
reversePointsForReversedEdges ( g ) ;
} ) ;
time ( ' acyclic.undo' , function ( ) {
undo ( g ) ;
} ) ;
}
/ *
* Copies final layout information from the layout graph back to the input
* graph . This process only copies whitelisted attributes from the layout graph
* to the input graph , so it serves as a good place to determine what
* attributes can influence layout .
* /
function updateInputGraph ( inputGraph , layoutGraph ) {
forEach /* default */ . Z ( inputGraph . nodes ( ) , function ( v ) {
var inputLabel = inputGraph . node ( v ) ;
var layoutLabel = layoutGraph . node ( v ) ;
if ( inputLabel ) {
inputLabel . x = layoutLabel . x ;
inputLabel . y = layoutLabel . y ;
if ( layoutGraph . children ( v ) . length ) {
inputLabel . width = layoutLabel . width ;
inputLabel . height = layoutLabel . height ;
}
}
} ) ;
forEach /* default */ . Z ( inputGraph . edges ( ) , function ( e ) {
var inputLabel = inputGraph . edge ( e ) ;
var layoutLabel = layoutGraph . edge ( e ) ;
inputLabel . points = layoutLabel . points ;
if ( has /* default */ . Z ( layoutLabel , 'x' ) ) {
inputLabel . x = layoutLabel . x ;
inputLabel . y = layoutLabel . y ;
}
} ) ;
inputGraph . graph ( ) . width = layoutGraph . graph ( ) . width ;
inputGraph . graph ( ) . height = layoutGraph . graph ( ) . height ;
}
var graphNumAttrs = [ 'nodesep' , 'edgesep' , 'ranksep' , 'marginx' , 'marginy' ] ;
var graphDefaults = { ranksep : 50 , edgesep : 20 , nodesep : 50 , rankdir : 'tb' } ;
var graphAttrs = [ 'acyclicer' , 'ranker' , 'rankdir' , 'align' ] ;
var nodeNumAttrs = [ 'width' , 'height' ] ;
var nodeDefaults = { width : 0 , height : 0 } ;
var edgeNumAttrs = [ 'minlen' , 'weight' , 'width' , 'height' , 'labeloffset' ] ;
var edgeDefaults = {
minlen : 1 ,
weight : 1 ,
width : 0 ,
height : 0 ,
labeloffset : 10 ,
labelpos : 'r' ,
} ;
var edgeAttrs = [ 'labelpos' ] ;
/ *
* Constructs a new graph from the input graph , which can be used for layout .
* This process copies only whitelisted attributes from the input graph to the
* layout graph . Thus this function serves as a good place to determine what
* attributes can influence layout .
* /
function buildLayoutGraph ( inputGraph ) {
var g = new graphlib /* Graph */ . k ( { multigraph : true , compound : true } ) ;
var graph = canonicalize ( inputGraph . graph ( ) ) ;
g . setGraph (
merge /* default */ . Z ( { } , graphDefaults , selectNumberAttrs ( graph , graphNumAttrs ) , pick /* default */ . Z ( graph , graphAttrs ) )
) ;
forEach /* default */ . Z ( inputGraph . nodes ( ) , function ( v ) {
var node = canonicalize ( inputGraph . node ( v ) ) ;
g . setNode ( v , defaults /* default */ . Z ( selectNumberAttrs ( node , nodeNumAttrs ) , nodeDefaults ) ) ;
g . setParent ( v , inputGraph . parent ( v ) ) ;
} ) ;
forEach /* default */ . Z ( inputGraph . edges ( ) , function ( e ) {
var edge = canonicalize ( inputGraph . edge ( e ) ) ;
g . setEdge (
e ,
merge /* default */ . Z ( { } , edgeDefaults , selectNumberAttrs ( edge , edgeNumAttrs ) , pick /* default */ . Z ( edge , edgeAttrs ) )
) ;
} ) ;
return g ;
}
/ *
* This idea comes from the Gansner paper : to account for edge labels in our
* layout we split each rank in half by doubling minlen and halving ranksep .
* Then we can place labels at these mid - points between nodes .
*
* We also add some minimal padding to the width to push the label for the edge
* away from the edge itself a bit .
* /
function makeSpaceForEdgeLabels ( g ) {
var graph = g . graph ( ) ;
graph . ranksep /= 2 ;
forEach /* default */ . Z ( g . edges ( ) , function ( e ) {
var edge = g . edge ( e ) ;
edge . minlen *= 2 ;
if ( edge . labelpos . toLowerCase ( ) !== 'c' ) {
if ( graph . rankdir === 'TB' || graph . rankdir === 'BT' ) {
edge . width += edge . labeloffset ;
} else {
edge . height += edge . labeloffset ;
}
}
} ) ;
}
/ *
* Creates temporary dummy nodes that capture the rank in which each edge ' s
* label is going to , if it has one of non - zero width and height . We do this
* so that we can safely remove empty ranks while preserving balance for the
* label ' s position .
* /
function injectEdgeLabelProxies ( g ) {
forEach /* default */ . Z ( g . edges ( ) , function ( e ) {
var edge = g . edge ( e ) ;
if ( edge . width && edge . height ) {
var v = g . node ( e . v ) ;
var w = g . node ( e . w ) ;
var label = { rank : ( w . rank - v . rank ) / 2 + v . rank , e : e } ;
addDummyNode ( g , 'edge-proxy' , label , '_ep' ) ;
}
} ) ;
}
function assignRankMinMax ( g ) {
var maxRank = 0 ;
forEach /* default */ . Z ( g . nodes ( ) , function ( v ) {
var node = g . node ( v ) ;
if ( node . borderTop ) {
node . minRank = g . node ( node . borderTop ) . rank ;
node . maxRank = g . node ( node . borderBottom ) . rank ;
// @ts-expect-error
maxRank = lodash _es _max ( maxRank , node . maxRank ) ;
}
} ) ;
g . graph ( ) . maxRank = maxRank ;
}
function removeEdgeLabelProxies ( g ) {
forEach /* default */ . Z ( g . nodes ( ) , function ( v ) {
var node = g . node ( v ) ;
if ( node . dummy === 'edge-proxy' ) {
g . edge ( node . e ) . labelRank = node . rank ;
g . removeNode ( v ) ;
}
} ) ;
}
function translateGraph ( g ) {
var minX = Number . POSITIVE _INFINITY ;
var maxX = 0 ;
var minY = Number . POSITIVE _INFINITY ;
var maxY = 0 ;
var graphLabel = g . graph ( ) ;
var marginX = graphLabel . marginx || 0 ;
var marginY = graphLabel . marginy || 0 ;
function getExtremes ( attrs ) {
var x = attrs . x ;
var y = attrs . y ;
var w = attrs . width ;
var h = attrs . height ;
minX = Math . min ( minX , x - w / 2 ) ;
maxX = Math . max ( maxX , x + w / 2 ) ;
minY = Math . min ( minY , y - h / 2 ) ;
maxY = Math . max ( maxY , y + h / 2 ) ;
}
forEach /* default */ . Z ( g . nodes ( ) , function ( v ) {
getExtremes ( g . node ( v ) ) ;
} ) ;
forEach /* default */ . Z ( g . edges ( ) , function ( e ) {
var edge = g . edge ( e ) ;
if ( has /* default */ . Z ( edge , 'x' ) ) {
getExtremes ( edge ) ;
}
} ) ;
minX -= marginX ;
minY -= marginY ;
forEach /* default */ . Z ( g . nodes ( ) , function ( v ) {
var node = g . node ( v ) ;
node . x -= minX ;
node . y -= minY ;
} ) ;
forEach /* default */ . Z ( g . edges ( ) , function ( e ) {
var edge = g . edge ( e ) ;
forEach /* default */ . Z ( edge . points , function ( p ) {
p . x -= minX ;
p . y -= minY ;
} ) ;
if ( has /* default */ . Z ( edge , 'x' ) ) {
edge . x -= minX ;
}
if ( has /* default */ . Z ( edge , 'y' ) ) {
edge . y -= minY ;
}
} ) ;
graphLabel . width = maxX - minX + marginX ;
graphLabel . height = maxY - minY + marginY ;
}
function assignNodeIntersects ( g ) {
forEach /* default */ . Z ( g . edges ( ) , function ( e ) {
var edge = g . edge ( e ) ;
var nodeV = g . node ( e . v ) ;
var nodeW = g . node ( e . w ) ;
var p1 , p2 ;
if ( ! edge . points ) {
edge . points = [ ] ;
p1 = nodeW ;
p2 = nodeV ;
} else {
p1 = edge . points [ 0 ] ;
p2 = edge . points [ edge . points . length - 1 ] ;
}
edge . points . unshift ( intersectRect ( nodeV , p1 ) ) ;
edge . points . push ( intersectRect ( nodeW , p2 ) ) ;
} ) ;
}
function fixupEdgeLabelCoords ( g ) {
forEach /* default */ . Z ( g . edges ( ) , function ( e ) {
var edge = g . edge ( e ) ;
if ( has /* default */ . Z ( edge , 'x' ) ) {
if ( edge . labelpos === 'l' || edge . labelpos === 'r' ) {
edge . width -= edge . labeloffset ;
}
switch ( edge . labelpos ) {
case 'l' :
edge . x -= edge . width / 2 + edge . labeloffset ;
break ;
case 'r' :
edge . x += edge . width / 2 + edge . labeloffset ;
break ;
}
}
} ) ;
}
function reversePointsForReversedEdges ( g ) {
forEach /* default */ . Z ( g . edges ( ) , function ( e ) {
var edge = g . edge ( e ) ;
if ( edge . reversed ) {
edge . points . reverse ( ) ;
}
} ) ;
}
function removeBorderNodes ( g ) {
forEach /* default */ . Z ( g . nodes ( ) , function ( v ) {
if ( g . children ( v ) . length ) {
var node = g . node ( v ) ;
var t = g . node ( node . borderTop ) ;
var b = g . node ( node . borderBottom ) ;
var l = g . node ( lodash _es _last ( node . borderLeft ) ) ;
var r = g . node ( lodash _es _last ( node . borderRight ) ) ;
node . width = Math . abs ( r . x - l . x ) ;
node . height = Math . abs ( b . y - t . y ) ;
node . x = l . x + node . width / 2 ;
node . y = t . y + node . height / 2 ;
}
} ) ;
forEach /* default */ . Z ( g . nodes ( ) , function ( v ) {
if ( g . node ( v ) . dummy === 'border' ) {
g . removeNode ( v ) ;
}
} ) ;
}
function removeSelfEdges ( g ) {
forEach /* default */ . Z ( g . edges ( ) , function ( e ) {
if ( e . v === e . w ) {
var node = g . node ( e . v ) ;
if ( ! node . selfEdges ) {
node . selfEdges = [ ] ;
}
node . selfEdges . push ( { e : e , label : g . edge ( e ) } ) ;
g . removeEdge ( e ) ;
}
} ) ;
}
function insertSelfEdges ( g ) {
var layers = buildLayerMatrix ( g ) ;
forEach /* default */ . Z ( layers , function ( layer ) {
var orderShift = 0 ;
forEach /* default */ . Z ( layer , function ( v , i ) {
var node = g . node ( v ) ;
node . order = i + orderShift ;
forEach /* default */ . Z ( node . selfEdges , function ( selfEdge ) {
addDummyNode (
g ,
'selfedge' ,
{
width : selfEdge . label . width ,
height : selfEdge . label . height ,
rank : node . rank ,
order : i + ++ orderShift ,
e : selfEdge . e ,
label : selfEdge . label ,
} ,
'_se'
) ;
} ) ;
delete node . selfEdges ;
} ) ;
} ) ;
}
function positionSelfEdges ( g ) {
forEach /* default */ . Z ( g . nodes ( ) , function ( v ) {
var node = g . node ( v ) ;
if ( node . dummy === 'selfedge' ) {
var selfNode = g . node ( node . e . v ) ;
var x = selfNode . x + selfNode . width / 2 ;
var y = selfNode . y ;
var dx = node . x - x ;
var dy = selfNode . height / 2 ;
g . setEdge ( node . e , node . label ) ;
g . removeNode ( v ) ;
node . label . points = [
{ x : x + ( 2 * dx ) / 3 , y : y - dy } ,
{ x : x + ( 5 * dx ) / 6 , y : y - dy } ,
{ x : x + dx , y : y } ,
{ x : x + ( 5 * dx ) / 6 , y : y + dy } ,
{ x : x + ( 2 * dx ) / 3 , y : y + dy } ,
] ;
node . label . x = node . x ;
node . label . y = node . y ;
}
} ) ;
}
function selectNumberAttrs ( obj , attrs ) {
return lodash _es _mapValues ( pick /* default */ . Z ( obj , attrs ) , Number ) ;
}
function canonicalize ( attrs ) {
var newAttrs = { } ;
forEach /* default */ . Z ( attrs , function ( v , k ) {
newAttrs [ k . toLowerCase ( ) ] = v ;
} ) ;
return newAttrs ;
}
; // CONCATENATED MODULE: ./node_modules/dagre-d3-es/src/dagre/index.js
/***/ } ) ,
/***/ 52544 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
// EXPORTS
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
k : ( ) => ( /* binding */ Graph )
} ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/has.js + 1 modules
var has = _ _webpack _require _ _ ( 17452 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/constant.js
var constant = _ _webpack _require _ _ ( 62002 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/isFunction.js
var isFunction = _ _webpack _require _ _ ( 73234 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/keys.js
var keys = _ _webpack _require _ _ ( 17179 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/filter.js + 1 modules
var filter = _ _webpack _require _ _ ( 13445 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/isEmpty.js
var isEmpty = _ _webpack _require _ _ ( 79697 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/forEach.js
var forEach = _ _webpack _require _ _ ( 70870 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/isUndefined.js
var isUndefined = _ _webpack _require _ _ ( 49360 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_baseFlatten.js + 1 modules
var _baseFlatten = _ _webpack _require _ _ ( 10626 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_baseRest.js
var _baseRest = _ _webpack _require _ _ ( 69581 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_SetCache.js + 2 modules
var _SetCache = _ _webpack _require _ _ ( 63001 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_baseFindIndex.js
var _baseFindIndex = _ _webpack _require _ _ ( 21692 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_baseIsNaN.js
/ * *
* The base implementation of ` _.isNaN ` without support for number objects .
*
* @ private
* @ param { * } value The value to check .
* @ returns { boolean } Returns ` true ` if ` value ` is ` NaN ` , else ` false ` .
* /
function baseIsNaN ( value ) {
return value !== value ;
}
/* harmony default export */ const _baseIsNaN = ( baseIsNaN ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_strictIndexOf.js
/ * *
* A specialized version of ` _.indexOf ` which performs strict equality
* comparisons of values , i . e . ` === ` .
*
* @ private
* @ param { Array } array The array to inspect .
* @ param { * } value The value to search for .
* @ param { number } fromIndex The index to search from .
* @ returns { number } Returns the index of the matched value , else ` -1 ` .
* /
function strictIndexOf ( array , value , fromIndex ) {
var index = fromIndex - 1 ,
length = array . length ;
while ( ++ index < length ) {
if ( array [ index ] === value ) {
return index ;
}
}
return - 1 ;
}
/* harmony default export */ const _strictIndexOf = ( strictIndexOf ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_baseIndexOf.js
/ * *
* The base implementation of ` _.indexOf ` without ` fromIndex ` bounds checks .
*
* @ private
* @ param { Array } array The array to inspect .
* @ param { * } value The value to search for .
* @ param { number } fromIndex The index to search from .
* @ returns { number } Returns the index of the matched value , else ` -1 ` .
* /
function baseIndexOf ( array , value , fromIndex ) {
return value === value
? _strictIndexOf ( array , value , fromIndex )
: ( 0 , _baseFindIndex /* default */ . Z ) ( array , _baseIsNaN , fromIndex ) ;
}
/* harmony default export */ const _baseIndexOf = ( baseIndexOf ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_arrayIncludes.js
/ * *
* A specialized version of ` _.includes ` for arrays without support for
* specifying an index to search from .
*
* @ private
* @ param { Array } [ array ] The array to inspect .
* @ param { * } target The value to search for .
* @ returns { boolean } Returns ` true ` if ` target ` is found , else ` false ` .
* /
function arrayIncludes ( array , value ) {
var length = array == null ? 0 : array . length ;
return ! ! length && _baseIndexOf ( array , value , 0 ) > - 1 ;
}
/* harmony default export */ const _arrayIncludes = ( arrayIncludes ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_arrayIncludesWith.js
/ * *
* This function is like ` arrayIncludes ` except that it accepts a comparator .
*
* @ private
* @ param { Array } [ array ] The array to inspect .
* @ param { * } target The value to search for .
* @ param { Function } comparator The comparator invoked per element .
* @ returns { boolean } Returns ` true ` if ` target ` is found , else ` false ` .
* /
function arrayIncludesWith ( array , value , comparator ) {
var index = - 1 ,
length = array == null ? 0 : array . length ;
while ( ++ index < length ) {
if ( comparator ( value , array [ index ] ) ) {
return true ;
}
}
return false ;
}
/* harmony default export */ const _arrayIncludesWith = ( arrayIncludesWith ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_cacheHas.js
var _cacheHas = _ _webpack _require _ _ ( 59548 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_Set.js
var _Set = _ _webpack _require _ _ ( 93203 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/noop.js
/ * *
* This method returns ` undefined ` .
*
* @ static
* @ memberOf _
* @ since 2.3 . 0
* @ category Util
* @ example
*
* _ . times ( 2 , _ . noop ) ;
* // => [undefined, undefined]
* /
function noop ( ) {
// No operation performed.
}
/* harmony default export */ const lodash _es _noop = ( noop ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_setToArray.js
var _setToArray = _ _webpack _require _ _ ( 6545 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_createSet.js
/** Used as references for various `Number` constants. */
var INFINITY = 1 / 0 ;
/ * *
* Creates a set object of ` values ` .
*
* @ private
* @ param { Array } values The values to add to the set .
* @ returns { Object } Returns the new set .
* /
var createSet = ! ( _Set /* default */ . Z && ( 1 / ( 0 , _setToArray /* default */ . Z ) ( new _Set /* default */ . Z ( [ , - 0 ] ) ) [ 1 ] ) == INFINITY ) ? lodash _es _noop : function ( values ) {
return new _Set /* default */ . Z ( values ) ;
} ;
/* harmony default export */ const _createSet = ( createSet ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_baseUniq.js
/** Used as the size to enable large array optimizations. */
var LARGE _ARRAY _SIZE = 200 ;
/ * *
* The base implementation of ` _.uniqBy ` without support for iteratee shorthands .
*
* @ private
* @ param { Array } array The array to inspect .
* @ param { Function } [ iteratee ] The iteratee invoked per element .
* @ param { Function } [ comparator ] The comparator invoked per element .
* @ returns { Array } Returns the new duplicate free array .
* /
function baseUniq ( array , iteratee , comparator ) {
var index = - 1 ,
includes = _arrayIncludes ,
length = array . length ,
isCommon = true ,
result = [ ] ,
seen = result ;
if ( comparator ) {
isCommon = false ;
includes = _arrayIncludesWith ;
}
else if ( length >= LARGE _ARRAY _SIZE ) {
var set = iteratee ? null : _createSet ( array ) ;
if ( set ) {
return ( 0 , _setToArray /* default */ . Z ) ( set ) ;
}
isCommon = false ;
includes = _cacheHas /* default */ . Z ;
seen = new _SetCache /* default */ . Z ;
}
else {
seen = iteratee ? [ ] : result ;
}
outer :
while ( ++ index < length ) {
var value = array [ index ] ,
computed = iteratee ? iteratee ( value ) : value ;
value = ( comparator || value !== 0 ) ? value : 0 ;
if ( isCommon && computed === computed ) {
var seenIndex = seen . length ;
while ( seenIndex -- ) {
if ( seen [ seenIndex ] === computed ) {
continue outer ;
}
}
if ( iteratee ) {
seen . push ( computed ) ;
}
result . push ( value ) ;
}
else if ( ! includes ( seen , computed , comparator ) ) {
if ( seen !== result ) {
seen . push ( computed ) ;
}
result . push ( value ) ;
}
}
return result ;
}
/* harmony default export */ const _baseUniq = ( baseUniq ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/isArrayLikeObject.js
var isArrayLikeObject = _ _webpack _require _ _ ( 836 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/union.js
/ * *
* Creates an array of unique values , in order , from all given arrays using
* [ ` SameValueZero ` ] ( http : //ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
* for equality comparisons .
*
* @ static
* @ memberOf _
* @ since 0.1 . 0
* @ category Array
* @ param { ... Array } [ arrays ] The arrays to inspect .
* @ returns { Array } Returns the new array of combined values .
* @ example
*
* _ . union ( [ 2 ] , [ 1 , 2 ] ) ;
* // => [2, 1]
* /
var union = ( 0 , _baseRest /* default */ . Z ) ( function ( arrays ) {
return _baseUniq ( ( 0 , _baseFlatten /* default */ . Z ) ( arrays , 1 , isArrayLikeObject /* default */ . Z , true ) ) ;
} ) ;
/* harmony default export */ const lodash _es _union = ( union ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/values.js + 1 modules
var values = _ _webpack _require _ _ ( 34148 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/reduce.js + 2 modules
var reduce = _ _webpack _require _ _ ( 92344 ) ;
; // CONCATENATED MODULE: ./node_modules/dagre-d3-es/src/graphlib/graph.js
var DEFAULT _EDGE _NAME = '\x00' ;
var GRAPH _NODE = '\x00' ;
var EDGE _KEY _DELIM = '\x01' ;
// Implementation notes:
//
// * Node id query functions should return string ids for the nodes
// * Edge id query functions should return an "edgeObj", edge object, that is
// composed of enough information to uniquely identify an edge: {v, w, name}.
// * Internally we use an "edgeId", a stringified form of the edgeObj, to
// reference edges. This is because we need a performant way to look these
// edges up and, object properties, which have string keys, are the closest
// we're going to get to a performant hashtable in JavaScript.
// Implementation notes:
//
// * Node id query functions should return string ids for the nodes
// * Edge id query functions should return an "edgeObj", edge object, that is
// composed of enough information to uniquely identify an edge: {v, w, name}.
// * Internally we use an "edgeId", a stringified form of the edgeObj, to
// reference edges. This is because we need a performant way to look these
// edges up and, object properties, which have string keys, are the closest
// we're going to get to a performant hashtable in JavaScript.
class Graph {
constructor ( opts = { } ) {
this . _isDirected = has /* default */ . Z ( opts , 'directed' ) ? opts . directed : true ;
this . _isMultigraph = has /* default */ . Z ( opts , 'multigraph' ) ? opts . multigraph : false ;
this . _isCompound = has /* default */ . Z ( opts , 'compound' ) ? opts . compound : false ;
// Label for the graph itself
this . _label = undefined ;
// Defaults to be set when creating a new node
this . _defaultNodeLabelFn = constant /* default */ . Z ( undefined ) ;
// Defaults to be set when creating a new edge
this . _defaultEdgeLabelFn = constant /* default */ . Z ( undefined ) ;
// v -> label
this . _nodes = { } ;
if ( this . _isCompound ) {
// v -> parent
this . _parent = { } ;
// v -> children
this . _children = { } ;
this . _children [ GRAPH _NODE ] = { } ;
}
// v -> edgeObj
this . _in = { } ;
// u -> v -> Number
this . _preds = { } ;
// v -> edgeObj
this . _out = { } ;
// v -> w -> Number
this . _sucs = { } ;
// e -> edgeObj
this . _edgeObjs = { } ;
// e -> label
this . _edgeLabels = { } ;
}
/* === Graph functions ========= */
isDirected ( ) {
return this . _isDirected ;
}
isMultigraph ( ) {
return this . _isMultigraph ;
}
isCompound ( ) {
return this . _isCompound ;
}
setGraph ( label ) {
this . _label = label ;
return this ;
}
graph ( ) {
return this . _label ;
}
/* === Node functions ========== */
setDefaultNodeLabel ( newDefault ) {
if ( ! isFunction /* default */ . Z ( newDefault ) ) {
newDefault = constant /* default */ . Z ( newDefault ) ;
}
this . _defaultNodeLabelFn = newDefault ;
return this ;
}
nodeCount ( ) {
return this . _nodeCount ;
}
nodes ( ) {
return keys /* default */ . Z ( this . _nodes ) ;
}
sources ( ) {
var self = this ;
return filter /* default */ . Z ( this . nodes ( ) , function ( v ) {
return isEmpty /* default */ . Z ( self . _in [ v ] ) ;
} ) ;
}
sinks ( ) {
var self = this ;
return filter /* default */ . Z ( this . nodes ( ) , function ( v ) {
return isEmpty /* default */ . Z ( self . _out [ v ] ) ;
} ) ;
}
setNodes ( vs , value ) {
var args = arguments ;
var self = this ;
forEach /* default */ . Z ( vs , function ( v ) {
if ( args . length > 1 ) {
self . setNode ( v , value ) ;
} else {
self . setNode ( v ) ;
}
} ) ;
return this ;
}
setNode ( v , value ) {
if ( has /* default */ . Z ( this . _nodes , v ) ) {
if ( arguments . length > 1 ) {
this . _nodes [ v ] = value ;
}
return this ;
}
// @ts-expect-error
this . _nodes [ v ] = arguments . length > 1 ? value : this . _defaultNodeLabelFn ( v ) ;
if ( this . _isCompound ) {
this . _parent [ v ] = GRAPH _NODE ;
this . _children [ v ] = { } ;
this . _children [ GRAPH _NODE ] [ v ] = true ;
}
this . _in [ v ] = { } ;
this . _preds [ v ] = { } ;
this . _out [ v ] = { } ;
this . _sucs [ v ] = { } ;
++ this . _nodeCount ;
return this ;
}
node ( v ) {
return this . _nodes [ v ] ;
}
hasNode ( v ) {
return has /* default */ . Z ( this . _nodes , v ) ;
}
removeNode ( v ) {
var self = this ;
if ( has /* default */ . Z ( this . _nodes , v ) ) {
var removeEdge = function ( e ) {
self . removeEdge ( self . _edgeObjs [ e ] ) ;
} ;
delete this . _nodes [ v ] ;
if ( this . _isCompound ) {
this . _removeFromParentsChildList ( v ) ;
delete this . _parent [ v ] ;
forEach /* default */ . Z ( this . children ( v ) , function ( child ) {
self . setParent ( child ) ;
} ) ;
delete this . _children [ v ] ;
}
forEach /* default */ . Z ( keys /* default */ . Z ( this . _in [ v ] ) , removeEdge ) ;
delete this . _in [ v ] ;
delete this . _preds [ v ] ;
forEach /* default */ . Z ( keys /* default */ . Z ( this . _out [ v ] ) , removeEdge ) ;
delete this . _out [ v ] ;
delete this . _sucs [ v ] ;
-- this . _nodeCount ;
}
return this ;
}
setParent ( v , parent ) {
if ( ! this . _isCompound ) {
throw new Error ( 'Cannot set parent in a non-compound graph' ) ;
}
if ( isUndefined /* default */ . Z ( parent ) ) {
parent = GRAPH _NODE ;
} else {
// Coerce parent to string
parent += '' ;
for ( var ancestor = parent ; ! isUndefined /* default */ . Z ( ancestor ) ; ancestor = this . parent ( ancestor ) ) {
if ( ancestor === v ) {
throw new Error ( 'Setting ' + parent + ' as parent of ' + v + ' would create a cycle' ) ;
}
}
this . setNode ( parent ) ;
}
this . setNode ( v ) ;
this . _removeFromParentsChildList ( v ) ;
this . _parent [ v ] = parent ;
this . _children [ parent ] [ v ] = true ;
return this ;
}
_removeFromParentsChildList ( v ) {
delete this . _children [ this . _parent [ v ] ] [ v ] ;
}
parent ( v ) {
if ( this . _isCompound ) {
var parent = this . _parent [ v ] ;
if ( parent !== GRAPH _NODE ) {
return parent ;
}
}
}
children ( v ) {
if ( isUndefined /* default */ . Z ( v ) ) {
v = GRAPH _NODE ;
}
if ( this . _isCompound ) {
var children = this . _children [ v ] ;
if ( children ) {
return keys /* default */ . Z ( children ) ;
}
} else if ( v === GRAPH _NODE ) {
return this . nodes ( ) ;
} else if ( this . hasNode ( v ) ) {
return [ ] ;
}
}
predecessors ( v ) {
var predsV = this . _preds [ v ] ;
if ( predsV ) {
return keys /* default */ . Z ( predsV ) ;
}
}
successors ( v ) {
var sucsV = this . _sucs [ v ] ;
if ( sucsV ) {
return keys /* default */ . Z ( sucsV ) ;
}
}
neighbors ( v ) {
var preds = this . predecessors ( v ) ;
if ( preds ) {
return lodash _es _union ( preds , this . successors ( v ) ) ;
}
}
isLeaf ( v ) {
var neighbors ;
if ( this . isDirected ( ) ) {
neighbors = this . successors ( v ) ;
} else {
neighbors = this . neighbors ( v ) ;
}
return neighbors . length === 0 ;
}
filterNodes ( filter ) {
// @ts-expect-error
var copy = new this . constructor ( {
directed : this . _isDirected ,
multigraph : this . _isMultigraph ,
compound : this . _isCompound ,
} ) ;
copy . setGraph ( this . graph ( ) ) ;
var self = this ;
forEach /* default */ . Z ( this . _nodes , function ( value , v ) {
if ( filter ( v ) ) {
copy . setNode ( v , value ) ;
}
} ) ;
forEach /* default */ . Z ( this . _edgeObjs , function ( e ) {
// @ts-expect-error
if ( copy . hasNode ( e . v ) && copy . hasNode ( e . w ) ) {
copy . setEdge ( e , self . edge ( e ) ) ;
}
} ) ;
var parents = { } ;
function findParent ( v ) {
var parent = self . parent ( v ) ;
if ( parent === undefined || copy . hasNode ( parent ) ) {
parents [ v ] = parent ;
return parent ;
} else if ( parent in parents ) {
return parents [ parent ] ;
} else {
return findParent ( parent ) ;
}
}
if ( this . _isCompound ) {
forEach /* default */ . Z ( copy . nodes ( ) , function ( v ) {
copy . setParent ( v , findParent ( v ) ) ;
} ) ;
}
return copy ;
}
/* === Edge functions ========== */
setDefaultEdgeLabel ( newDefault ) {
if ( ! isFunction /* default */ . Z ( newDefault ) ) {
newDefault = constant /* default */ . Z ( newDefault ) ;
}
this . _defaultEdgeLabelFn = newDefault ;
return this ;
}
edgeCount ( ) {
return this . _edgeCount ;
}
edges ( ) {
return values /* default */ . Z ( this . _edgeObjs ) ;
}
setPath ( vs , value ) {
var self = this ;
var args = arguments ;
reduce /* default */ . Z ( vs , function ( v , w ) {
if ( args . length > 1 ) {
self . setEdge ( v , w , value ) ;
} else {
self . setEdge ( v , w ) ;
}
return w ;
} ) ;
return this ;
}
/ *
* setEdge ( v , w , [ value , [ name ] ] )
* setEdge ( { v , w , [ name ] } , [ value ] )
* /
setEdge ( ) {
var v , w , name , value ;
var valueSpecified = false ;
var arg0 = arguments [ 0 ] ;
if ( typeof arg0 === 'object' && arg0 !== null && 'v' in arg0 ) {
v = arg0 . v ;
w = arg0 . w ;
name = arg0 . name ;
if ( arguments . length === 2 ) {
value = arguments [ 1 ] ;
valueSpecified = true ;
}
} else {
v = arg0 ;
w = arguments [ 1 ] ;
name = arguments [ 3 ] ;
if ( arguments . length > 2 ) {
value = arguments [ 2 ] ;
valueSpecified = true ;
}
}
v = '' + v ;
w = '' + w ;
if ( ! isUndefined /* default */ . Z ( name ) ) {
name = '' + name ;
}
var e = edgeArgsToId ( this . _isDirected , v , w , name ) ;
if ( has /* default */ . Z ( this . _edgeLabels , e ) ) {
if ( valueSpecified ) {
this . _edgeLabels [ e ] = value ;
}
return this ;
}
if ( ! isUndefined /* default */ . Z ( name ) && ! this . _isMultigraph ) {
throw new Error ( 'Cannot set a named edge when isMultigraph = false' ) ;
}
// It didn't exist, so we need to create it.
// First ensure the nodes exist.
this . setNode ( v ) ;
this . setNode ( w ) ;
// @ts-expect-error
this . _edgeLabels [ e ] = valueSpecified ? value : this . _defaultEdgeLabelFn ( v , w , name ) ;
var edgeObj = edgeArgsToObj ( this . _isDirected , v , w , name ) ;
// Ensure we add undirected edges in a consistent way.
v = edgeObj . v ;
w = edgeObj . w ;
Object . freeze ( edgeObj ) ;
this . _edgeObjs [ e ] = edgeObj ;
incrementOrInitEntry ( this . _preds [ w ] , v ) ;
incrementOrInitEntry ( this . _sucs [ v ] , w ) ;
this . _in [ w ] [ e ] = edgeObj ;
this . _out [ v ] [ e ] = edgeObj ;
this . _edgeCount ++ ;
return this ;
}
edge ( v , w , name ) {
var e =
arguments . length === 1
? edgeObjToId ( this . _isDirected , arguments [ 0 ] )
: edgeArgsToId ( this . _isDirected , v , w , name ) ;
return this . _edgeLabels [ e ] ;
}
hasEdge ( v , w , name ) {
var e =
arguments . length === 1
? edgeObjToId ( this . _isDirected , arguments [ 0 ] )
: edgeArgsToId ( this . _isDirected , v , w , name ) ;
return has /* default */ . Z ( this . _edgeLabels , e ) ;
}
removeEdge ( v , w , name ) {
var e =
arguments . length === 1
? edgeObjToId ( this . _isDirected , arguments [ 0 ] )
: edgeArgsToId ( this . _isDirected , v , w , name ) ;
var edge = this . _edgeObjs [ e ] ;
if ( edge ) {
v = edge . v ;
w = edge . w ;
delete this . _edgeLabels [ e ] ;
delete this . _edgeObjs [ e ] ;
decrementOrRemoveEntry ( this . _preds [ w ] , v ) ;
decrementOrRemoveEntry ( this . _sucs [ v ] , w ) ;
delete this . _in [ w ] [ e ] ;
delete this . _out [ v ] [ e ] ;
this . _edgeCount -- ;
}
return this ;
}
inEdges ( v , u ) {
var inV = this . _in [ v ] ;
if ( inV ) {
var edges = values /* default */ . Z ( inV ) ;
if ( ! u ) {
return edges ;
}
return filter /* default */ . Z ( edges , function ( edge ) {
return edge . v === u ;
} ) ;
}
}
outEdges ( v , w ) {
var outV = this . _out [ v ] ;
if ( outV ) {
var edges = values /* default */ . Z ( outV ) ;
if ( ! w ) {
return edges ;
}
return filter /* default */ . Z ( edges , function ( edge ) {
return edge . w === w ;
} ) ;
}
}
nodeEdges ( v , w ) {
var inEdges = this . inEdges ( v , w ) ;
if ( inEdges ) {
return inEdges . concat ( this . outEdges ( v , w ) ) ;
}
}
}
/* Number of nodes in the graph. Should only be changed by the implementation. */
Graph . prototype . _nodeCount = 0 ;
/* Number of edges in the graph. Should only be changed by the implementation. */
Graph . prototype . _edgeCount = 0 ;
function incrementOrInitEntry ( map , k ) {
if ( map [ k ] ) {
map [ k ] ++ ;
} else {
map [ k ] = 1 ;
}
}
function decrementOrRemoveEntry ( map , k ) {
if ( ! -- map [ k ] ) {
delete map [ k ] ;
}
}
function edgeArgsToId ( isDirected , v _ , w _ , name ) {
var v = '' + v _ ;
var w = '' + w _ ;
if ( ! isDirected && v > w ) {
var tmp = v ;
v = w ;
w = tmp ;
}
return v + EDGE _KEY _DELIM + w + EDGE _KEY _DELIM + ( isUndefined /* default */ . Z ( name ) ? DEFAULT _EDGE _NAME : name ) ;
}
function edgeArgsToObj ( isDirected , v _ , w _ , name ) {
var v = '' + v _ ;
var w = '' + w _ ;
if ( ! isDirected && v > w ) {
var tmp = v ;
v = w ;
w = tmp ;
}
var edgeObj = { v : v , w : w } ;
if ( name ) {
edgeObj . name = name ;
}
return edgeObj ;
}
function edgeObjToId ( isDirected , edgeObj ) {
return edgeArgsToId ( isDirected , edgeObj . v , edgeObj . w , edgeObj . name ) ;
}
/***/ } ) ,
/***/ 45625 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ k : ( ) => ( /* reexport safe */ _graph _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . k )
/* harmony export */ } ) ;
/* unused harmony export version */
/* harmony import */ var _graph _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( 52544 ) ;
// Includes only the "core" of graphlib
const version = '2.1.9-pre' ;
/***/ } ) ,
/***/ 63001 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
// EXPORTS
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
Z : ( ) => ( /* binding */ _SetCache )
} ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_MapCache.js + 14 modules
var _MapCache = _ _webpack _require _ _ ( 37834 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_setCacheAdd.js
/** Used to stand-in for `undefined` hash values. */
var HASH _UNDEFINED = '__lodash_hash_undefined__' ;
/ * *
* Adds ` value ` to the array cache .
*
* @ private
* @ name add
* @ memberOf SetCache
* @ alias push
* @ param { * } value The value to cache .
* @ returns { Object } Returns the cache instance .
* /
function setCacheAdd ( value ) {
this . _ _data _ _ . set ( value , HASH _UNDEFINED ) ;
return this ;
}
/* harmony default export */ const _setCacheAdd = ( setCacheAdd ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_setCacheHas.js
/ * *
* Checks if ` value ` is in the array cache .
*
* @ private
* @ name has
* @ memberOf SetCache
* @ param { * } value The value to search for .
* @ returns { number } Returns ` true ` if ` value ` is found , else ` false ` .
* /
function setCacheHas ( value ) {
return this . _ _data _ _ . has ( value ) ;
}
/* harmony default export */ const _setCacheHas = ( setCacheHas ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_SetCache.js
/ * *
*
* Creates an array cache object to store unique values .
*
* @ private
* @ constructor
* @ param { Array } [ values ] The values to cache .
* /
function SetCache ( values ) {
var index = - 1 ,
length = values == null ? 0 : values . length ;
this . _ _data _ _ = new _MapCache /* default */ . Z ;
while ( ++ index < length ) {
this . add ( values [ index ] ) ;
}
}
// Add methods to `SetCache`.
SetCache . prototype . add = SetCache . prototype . push = _setCacheAdd ;
SetCache . prototype . has = _setCacheHas ;
/* harmony default export */ const _SetCache = ( SetCache ) ;
/***/ } ) ,
/***/ 76579 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ Z : ( ) => ( _ _WEBPACK _DEFAULT _EXPORT _ _ )
/* harmony export */ } ) ;
/ * *
* A specialized version of ` _.forEach ` for arrays without support for
* iteratee shorthands .
*
* @ private
* @ param { Array } [ array ] The array to iterate over .
* @ param { Function } iteratee The function invoked per iteration .
* @ returns { Array } Returns ` array ` .
* /
function arrayEach ( array , iteratee ) {
var index = - 1 ,
length = array == null ? 0 : array . length ;
while ( ++ index < length ) {
if ( iteratee ( array [ index ] , index , array ) === false ) {
break ;
}
}
return array ;
}
/* harmony default export */ const _ _WEBPACK _DEFAULT _EXPORT _ _ = ( arrayEach ) ;
/***/ } ) ,
/***/ 68774 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ Z : ( ) => ( _ _WEBPACK _DEFAULT _EXPORT _ _ )
/* harmony export */ } ) ;
/ * *
* A specialized version of ` _.filter ` for arrays without support for
* iteratee shorthands .
*
* @ private
* @ param { Array } [ array ] The array to iterate over .
* @ param { Function } predicate The function invoked per iteration .
* @ returns { Array } Returns the new filtered array .
* /
function arrayFilter ( array , predicate ) {
var index = - 1 ,
length = array == null ? 0 : array . length ,
resIndex = 0 ,
result = [ ] ;
while ( ++ index < length ) {
var value = array [ index ] ;
if ( predicate ( value , index , array ) ) {
result [ resIndex ++ ] = value ;
}
}
return result ;
}
/* harmony default export */ const _ _WEBPACK _DEFAULT _EXPORT _ _ = ( arrayFilter ) ;
/***/ } ) ,
2024-07-20 23:46:21 +02:00
/***/ 27679 :
2023-11-24 16:55:55 +01:00
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ Z : ( ) => ( _ _WEBPACK _DEFAULT _EXPORT _ _ )
/* harmony export */ } ) ;
/ * *
* A specialized version of ` _.map ` for arrays without support for iteratee
* shorthands .
*
* @ private
* @ param { Array } [ array ] The array to iterate over .
* @ param { Function } iteratee The function invoked per iteration .
* @ returns { Array } Returns the new mapped array .
* /
function arrayMap ( array , iteratee ) {
var index = - 1 ,
length = array == null ? 0 : array . length ,
result = Array ( length ) ;
while ( ++ index < length ) {
result [ index ] = iteratee ( array [ index ] , index , array ) ;
}
return result ;
}
/* harmony default export */ const _ _WEBPACK _DEFAULT _EXPORT _ _ = ( arrayMap ) ;
/***/ } ) ,
/***/ 58694 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ Z : ( ) => ( _ _WEBPACK _DEFAULT _EXPORT _ _ )
/* harmony export */ } ) ;
/ * *
* Appends the elements of ` values ` to ` array ` .
*
* @ private
* @ param { Array } array The array to modify .
* @ param { Array } values The values to append .
* @ returns { Array } Returns ` array ` .
* /
function arrayPush ( array , values ) {
var index = - 1 ,
length = values . length ,
offset = array . length ;
while ( ++ index < length ) {
array [ offset + index ] = values [ index ] ;
}
return array ;
}
/* harmony default export */ const _ _WEBPACK _DEFAULT _EXPORT _ _ = ( arrayPush ) ;
/***/ } ) ,
/***/ 48451 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
// EXPORTS
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
Z : ( ) => ( /* binding */ _baseClone )
} ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_Stack.js + 5 modules
var _Stack = _ _webpack _require _ _ ( 31667 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_arrayEach.js
var _arrayEach = _ _webpack _require _ _ ( 76579 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_assignValue.js
var _assignValue = _ _webpack _require _ _ ( 72954 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_copyObject.js
var _copyObject = _ _webpack _require _ _ ( 31899 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/keys.js
var keys = _ _webpack _require _ _ ( 17179 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_baseAssign.js
/ * *
* The base implementation of ` _.assign ` without support for multiple sources
* or ` customizer ` functions .
*
* @ private
* @ param { Object } object The destination object .
* @ param { Object } source The source object .
* @ returns { Object } Returns ` object ` .
* /
function baseAssign ( object , source ) {
return object && ( 0 , _copyObject /* default */ . Z ) ( source , ( 0 , keys /* default */ . Z ) ( source ) , object ) ;
}
/* harmony default export */ const _baseAssign = ( baseAssign ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/keysIn.js + 2 modules
var keysIn = _ _webpack _require _ _ ( 32957 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_baseAssignIn.js
/ * *
* The base implementation of ` _.assignIn ` without support for multiple sources
* or ` customizer ` functions .
*
* @ private
* @ param { Object } object The destination object .
* @ param { Object } source The source object .
* @ returns { Object } Returns ` object ` .
* /
function baseAssignIn ( object , source ) {
return object && ( 0 , _copyObject /* default */ . Z ) ( source , ( 0 , keysIn /* default */ . Z ) ( source ) , object ) ;
}
/* harmony default export */ const _baseAssignIn = ( baseAssignIn ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_cloneBuffer.js
var _cloneBuffer = _ _webpack _require _ _ ( 91050 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_copyArray.js
var _copyArray = _ _webpack _require _ _ ( 87215 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_getSymbols.js
var _getSymbols = _ _webpack _require _ _ ( 95695 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_copySymbols.js
/ * *
* Copies own symbols of ` source ` to ` object ` .
*
* @ private
* @ param { Object } source The object to copy symbols from .
* @ param { Object } [ object = { } ] The object to copy symbols to .
* @ returns { Object } Returns ` object ` .
* /
function copySymbols ( source , object ) {
return ( 0 , _copyObject /* default */ . Z ) ( source , ( 0 , _getSymbols /* default */ . Z ) ( source ) , object ) ;
}
/* harmony default export */ const _copySymbols = ( copySymbols ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_arrayPush.js
var _arrayPush = _ _webpack _require _ _ ( 58694 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_getPrototype.js
var _getPrototype = _ _webpack _require _ _ ( 12513 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/stubArray.js
var stubArray = _ _webpack _require _ _ ( 60532 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_getSymbolsIn.js
/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeGetSymbols = Object . getOwnPropertySymbols ;
/ * *
* Creates an array of the own and inherited enumerable symbols of ` object ` .
*
* @ private
* @ param { Object } object The object to query .
* @ returns { Array } Returns the array of symbols .
* /
var getSymbolsIn = ! nativeGetSymbols ? stubArray /* default */ . Z : function ( object ) {
var result = [ ] ;
while ( object ) {
( 0 , _arrayPush /* default */ . Z ) ( result , ( 0 , _getSymbols /* default */ . Z ) ( object ) ) ;
object = ( 0 , _getPrototype /* default */ . Z ) ( object ) ;
}
return result ;
} ;
/* harmony default export */ const _getSymbolsIn = ( getSymbolsIn ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_copySymbolsIn.js
/ * *
* Copies own and inherited symbols of ` source ` to ` object ` .
*
* @ private
* @ param { Object } source The object to copy symbols from .
* @ param { Object } [ object = { } ] The object to copy symbols to .
* @ returns { Object } Returns ` object ` .
* /
function copySymbolsIn ( source , object ) {
return ( 0 , _copyObject /* default */ . Z ) ( source , _getSymbolsIn ( source ) , object ) ;
}
/* harmony default export */ const _copySymbolsIn = ( copySymbolsIn ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_getAllKeys.js
var _getAllKeys = _ _webpack _require _ _ ( 1808 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_baseGetAllKeys.js
var _baseGetAllKeys = _ _webpack _require _ _ ( 63327 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_getAllKeysIn.js
/ * *
* Creates an array of own and inherited enumerable property names and
* symbols of ` object ` .
*
* @ private
* @ param { Object } object The object to query .
* @ returns { Array } Returns the array of property names and symbols .
* /
function getAllKeysIn ( object ) {
return ( 0 , _baseGetAllKeys /* default */ . Z ) ( object , keysIn /* default */ . Z , _getSymbolsIn ) ;
}
/* harmony default export */ const _getAllKeysIn = ( getAllKeysIn ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_getTag.js + 3 modules
var _getTag = _ _webpack _require _ _ ( 83970 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_initCloneArray.js
/** Used for built-in method references. */
var objectProto = Object . prototype ;
/** Used to check objects for own properties. */
var _initCloneArray _hasOwnProperty = objectProto . hasOwnProperty ;
/ * *
* Initializes an array clone .
*
* @ private
* @ param { Array } array The array to clone .
* @ returns { Array } Returns the initialized clone .
* /
function initCloneArray ( array ) {
var length = array . length ,
result = new array . constructor ( length ) ;
// Add properties assigned by `RegExp#exec`.
if ( length && typeof array [ 0 ] == 'string' && _initCloneArray _hasOwnProperty . call ( array , 'index' ) ) {
result . index = array . index ;
result . input = array . input ;
}
return result ;
}
/* harmony default export */ const _initCloneArray = ( initCloneArray ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_cloneArrayBuffer.js
var _cloneArrayBuffer = _ _webpack _require _ _ ( 41884 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_cloneDataView.js
/ * *
* Creates a clone of ` dataView ` .
*
* @ private
* @ param { Object } dataView The data view to clone .
* @ param { boolean } [ isDeep ] Specify a deep clone .
* @ returns { Object } Returns the cloned data view .
* /
function cloneDataView ( dataView , isDeep ) {
var buffer = isDeep ? ( 0 , _cloneArrayBuffer /* default */ . Z ) ( dataView . buffer ) : dataView . buffer ;
return new dataView . constructor ( buffer , dataView . byteOffset , dataView . byteLength ) ;
}
/* harmony default export */ const _cloneDataView = ( cloneDataView ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_cloneRegExp.js
/** Used to match `RegExp` flags from their coerced string values. */
var reFlags = /\w*$/ ;
/ * *
* Creates a clone of ` regexp ` .
*
* @ private
* @ param { Object } regexp The regexp to clone .
* @ returns { Object } Returns the cloned regexp .
* /
function cloneRegExp ( regexp ) {
var result = new regexp . constructor ( regexp . source , reFlags . exec ( regexp ) ) ;
result . lastIndex = regexp . lastIndex ;
return result ;
}
/* harmony default export */ const _cloneRegExp = ( cloneRegExp ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_Symbol.js
var _Symbol = _ _webpack _require _ _ ( 17685 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_cloneSymbol.js
/** Used to convert symbols to primitives and strings. */
var symbolProto = _Symbol /* default */ . Z ? _Symbol /* default */ . Z . prototype : undefined ,
symbolValueOf = symbolProto ? symbolProto . valueOf : undefined ;
/ * *
* Creates a clone of the ` symbol ` object .
*
* @ private
* @ param { Object } symbol The symbol object to clone .
* @ returns { Object } Returns the cloned symbol object .
* /
function cloneSymbol ( symbol ) {
return symbolValueOf ? Object ( symbolValueOf . call ( symbol ) ) : { } ;
}
/* harmony default export */ const _cloneSymbol = ( cloneSymbol ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_cloneTypedArray.js
var _cloneTypedArray = _ _webpack _require _ _ ( 12701 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_initCloneByTag.js
/** `Object#toString` result references. */
var boolTag = '[object Boolean]' ,
dateTag = '[object Date]' ,
mapTag = '[object Map]' ,
numberTag = '[object Number]' ,
regexpTag = '[object RegExp]' ,
setTag = '[object Set]' ,
stringTag = '[object String]' ,
symbolTag = '[object Symbol]' ;
var arrayBufferTag = '[object ArrayBuffer]' ,
dataViewTag = '[object DataView]' ,
float32Tag = '[object Float32Array]' ,
float64Tag = '[object Float64Array]' ,
int8Tag = '[object Int8Array]' ,
int16Tag = '[object Int16Array]' ,
int32Tag = '[object Int32Array]' ,
uint8Tag = '[object Uint8Array]' ,
uint8ClampedTag = '[object Uint8ClampedArray]' ,
uint16Tag = '[object Uint16Array]' ,
uint32Tag = '[object Uint32Array]' ;
/ * *
* Initializes an object clone based on its ` toStringTag ` .
*
* * * Note : * * This function only supports cloning values with tags of
* ` Boolean ` , ` Date ` , ` Error ` , ` Map ` , ` Number ` , ` RegExp ` , ` Set ` , or ` String ` .
*
* @ private
* @ param { Object } object The object to clone .
* @ param { string } tag The ` toStringTag ` of the object to clone .
* @ param { boolean } [ isDeep ] Specify a deep clone .
* @ returns { Object } Returns the initialized clone .
* /
function initCloneByTag ( object , tag , isDeep ) {
var Ctor = object . constructor ;
switch ( tag ) {
case arrayBufferTag :
return ( 0 , _cloneArrayBuffer /* default */ . Z ) ( object ) ;
case boolTag :
case dateTag :
return new Ctor ( + object ) ;
case dataViewTag :
return _cloneDataView ( object , isDeep ) ;
case float32Tag : case float64Tag :
case int8Tag : case int16Tag : case int32Tag :
case uint8Tag : case uint8ClampedTag : case uint16Tag : case uint32Tag :
return ( 0 , _cloneTypedArray /* default */ . Z ) ( object , isDeep ) ;
case mapTag :
return new Ctor ;
case numberTag :
case stringTag :
return new Ctor ( object ) ;
case regexpTag :
return _cloneRegExp ( object ) ;
case setTag :
return new Ctor ;
case symbolTag :
return _cloneSymbol ( object ) ;
}
}
/* harmony default export */ const _initCloneByTag = ( initCloneByTag ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_initCloneObject.js + 1 modules
var _initCloneObject = _ _webpack _require _ _ ( 73658 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/isArray.js
var isArray = _ _webpack _require _ _ ( 27771 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/isBuffer.js + 1 modules
var isBuffer = _ _webpack _require _ _ ( 77008 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/isObjectLike.js
var isObjectLike = _ _webpack _require _ _ ( 18533 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_baseIsMap.js
/** `Object#toString` result references. */
var _baseIsMap _mapTag = '[object Map]' ;
/ * *
* The base implementation of ` _.isMap ` without Node . js optimizations .
*
* @ private
* @ param { * } value The value to check .
* @ returns { boolean } Returns ` true ` if ` value ` is a map , else ` false ` .
* /
function baseIsMap ( value ) {
return ( 0 , isObjectLike /* default */ . Z ) ( value ) && ( 0 , _getTag /* default */ . Z ) ( value ) == _baseIsMap _mapTag ;
}
/* harmony default export */ const _baseIsMap = ( baseIsMap ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_baseUnary.js
var _baseUnary = _ _webpack _require _ _ ( 21162 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_nodeUtil.js
var _nodeUtil = _ _webpack _require _ _ ( 98351 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/isMap.js
/* Node.js helper references. */
var nodeIsMap = _nodeUtil /* default */ . Z && _nodeUtil /* default */ . Z . isMap ;
/ * *
* Checks if ` value ` is classified as a ` Map ` object .
*
* @ static
* @ memberOf _
* @ since 4.3 . 0
* @ category Lang
* @ param { * } value The value to check .
* @ returns { boolean } Returns ` true ` if ` value ` is a map , else ` false ` .
* @ example
*
* _ . isMap ( new Map ) ;
* // => true
*
* _ . isMap ( new WeakMap ) ;
* // => false
* /
var isMap = nodeIsMap ? ( 0 , _baseUnary /* default */ . Z ) ( nodeIsMap ) : _baseIsMap ;
/* harmony default export */ const lodash _es _isMap = ( isMap ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/isObject.js
var isObject = _ _webpack _require _ _ ( 77226 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_baseIsSet.js
/** `Object#toString` result references. */
var _baseIsSet _setTag = '[object Set]' ;
/ * *
* The base implementation of ` _.isSet ` without Node . js optimizations .
*
* @ private
* @ param { * } value The value to check .
* @ returns { boolean } Returns ` true ` if ` value ` is a set , else ` false ` .
* /
function baseIsSet ( value ) {
return ( 0 , isObjectLike /* default */ . Z ) ( value ) && ( 0 , _getTag /* default */ . Z ) ( value ) == _baseIsSet _setTag ;
}
/* harmony default export */ const _baseIsSet = ( baseIsSet ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/isSet.js
/* Node.js helper references. */
var nodeIsSet = _nodeUtil /* default */ . Z && _nodeUtil /* default */ . Z . isSet ;
/ * *
* Checks if ` value ` is classified as a ` Set ` object .
*
* @ static
* @ memberOf _
* @ since 4.3 . 0
* @ category Lang
* @ param { * } value The value to check .
* @ returns { boolean } Returns ` true ` if ` value ` is a set , else ` false ` .
* @ example
*
* _ . isSet ( new Set ) ;
* // => true
*
* _ . isSet ( new WeakSet ) ;
* // => false
* /
var isSet = nodeIsSet ? ( 0 , _baseUnary /* default */ . Z ) ( nodeIsSet ) : _baseIsSet ;
/* harmony default export */ const lodash _es _isSet = ( isSet ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_baseClone.js
/** Used to compose bitmasks for cloning. */
var CLONE _DEEP _FLAG = 1 ,
CLONE _FLAT _FLAG = 2 ,
CLONE _SYMBOLS _FLAG = 4 ;
/** `Object#toString` result references. */
var argsTag = '[object Arguments]' ,
arrayTag = '[object Array]' ,
_baseClone _boolTag = '[object Boolean]' ,
_baseClone _dateTag = '[object Date]' ,
errorTag = '[object Error]' ,
funcTag = '[object Function]' ,
genTag = '[object GeneratorFunction]' ,
_baseClone _mapTag = '[object Map]' ,
_baseClone _numberTag = '[object Number]' ,
objectTag = '[object Object]' ,
_baseClone _regexpTag = '[object RegExp]' ,
_baseClone _setTag = '[object Set]' ,
_baseClone _stringTag = '[object String]' ,
_baseClone _symbolTag = '[object Symbol]' ,
weakMapTag = '[object WeakMap]' ;
var _baseClone _arrayBufferTag = '[object ArrayBuffer]' ,
_baseClone _dataViewTag = '[object DataView]' ,
_baseClone _float32Tag = '[object Float32Array]' ,
_baseClone _float64Tag = '[object Float64Array]' ,
_baseClone _int8Tag = '[object Int8Array]' ,
_baseClone _int16Tag = '[object Int16Array]' ,
_baseClone _int32Tag = '[object Int32Array]' ,
_baseClone _uint8Tag = '[object Uint8Array]' ,
_baseClone _uint8ClampedTag = '[object Uint8ClampedArray]' ,
_baseClone _uint16Tag = '[object Uint16Array]' ,
_baseClone _uint32Tag = '[object Uint32Array]' ;
/** Used to identify `toStringTag` values supported by `_.clone`. */
var cloneableTags = { } ;
cloneableTags [ argsTag ] = cloneableTags [ arrayTag ] =
cloneableTags [ _baseClone _arrayBufferTag ] = cloneableTags [ _baseClone _dataViewTag ] =
cloneableTags [ _baseClone _boolTag ] = cloneableTags [ _baseClone _dateTag ] =
cloneableTags [ _baseClone _float32Tag ] = cloneableTags [ _baseClone _float64Tag ] =
cloneableTags [ _baseClone _int8Tag ] = cloneableTags [ _baseClone _int16Tag ] =
cloneableTags [ _baseClone _int32Tag ] = cloneableTags [ _baseClone _mapTag ] =
cloneableTags [ _baseClone _numberTag ] = cloneableTags [ objectTag ] =
cloneableTags [ _baseClone _regexpTag ] = cloneableTags [ _baseClone _setTag ] =
cloneableTags [ _baseClone _stringTag ] = cloneableTags [ _baseClone _symbolTag ] =
cloneableTags [ _baseClone _uint8Tag ] = cloneableTags [ _baseClone _uint8ClampedTag ] =
cloneableTags [ _baseClone _uint16Tag ] = cloneableTags [ _baseClone _uint32Tag ] = true ;
cloneableTags [ errorTag ] = cloneableTags [ funcTag ] =
cloneableTags [ weakMapTag ] = false ;
/ * *
* The base implementation of ` _.clone ` and ` _.cloneDeep ` which tracks
* traversed objects .
*
* @ private
* @ param { * } value The value to clone .
* @ param { boolean } bitmask The bitmask flags .
* 1 - Deep clone
* 2 - Flatten inherited properties
* 4 - Clone symbols
* @ param { Function } [ customizer ] The function to customize cloning .
* @ param { string } [ key ] The key of ` value ` .
* @ param { Object } [ object ] The parent object of ` value ` .
* @ param { Object } [ stack ] Tracks traversed objects and their clone counterparts .
* @ returns { * } Returns the cloned value .
* /
function baseClone ( value , bitmask , customizer , key , object , stack ) {
var result ,
isDeep = bitmask & CLONE _DEEP _FLAG ,
isFlat = bitmask & CLONE _FLAT _FLAG ,
isFull = bitmask & CLONE _SYMBOLS _FLAG ;
if ( customizer ) {
result = object ? customizer ( value , key , object , stack ) : customizer ( value ) ;
}
if ( result !== undefined ) {
return result ;
}
if ( ! ( 0 , isObject /* default */ . Z ) ( value ) ) {
return value ;
}
var isArr = ( 0 , isArray /* default */ . Z ) ( value ) ;
if ( isArr ) {
result = _initCloneArray ( value ) ;
if ( ! isDeep ) {
return ( 0 , _copyArray /* default */ . Z ) ( value , result ) ;
}
} else {
var tag = ( 0 , _getTag /* default */ . Z ) ( value ) ,
isFunc = tag == funcTag || tag == genTag ;
if ( ( 0 , isBuffer /* default */ . Z ) ( value ) ) {
return ( 0 , _cloneBuffer /* default */ . Z ) ( value , isDeep ) ;
}
if ( tag == objectTag || tag == argsTag || ( isFunc && ! object ) ) {
result = ( isFlat || isFunc ) ? { } : ( 0 , _initCloneObject /* default */ . Z ) ( value ) ;
if ( ! isDeep ) {
return isFlat
? _copySymbolsIn ( value , _baseAssignIn ( result , value ) )
: _copySymbols ( value , _baseAssign ( result , value ) ) ;
}
} else {
if ( ! cloneableTags [ tag ] ) {
return object ? value : { } ;
}
result = _initCloneByTag ( value , tag , isDeep ) ;
}
}
// Check for circular references and return its corresponding clone.
stack || ( stack = new _Stack /* default */ . Z ) ;
var stacked = stack . get ( value ) ;
if ( stacked ) {
return stacked ;
}
stack . set ( value , result ) ;
if ( lodash _es _isSet ( value ) ) {
value . forEach ( function ( subValue ) {
result . add ( baseClone ( subValue , bitmask , customizer , subValue , value , stack ) ) ;
} ) ;
} else if ( lodash _es _isMap ( value ) ) {
value . forEach ( function ( subValue , key ) {
result . set ( key , baseClone ( subValue , bitmask , customizer , key , value , stack ) ) ;
} ) ;
}
var keysFunc = isFull
? ( isFlat ? _getAllKeysIn : _getAllKeys /* default */ . Z )
: ( isFlat ? keysIn /* default */ . Z : keys /* default */ . Z ) ;
var props = isArr ? undefined : keysFunc ( value ) ;
( 0 , _arrayEach /* default */ . Z ) ( props || value , function ( subValue , key ) {
if ( props ) {
key = subValue ;
subValue = value [ key ] ;
}
// Recursively populate clone (susceptible to call stack limits).
( 0 , _assignValue /* default */ . Z ) ( result , key , baseClone ( subValue , bitmask , customizer , key , value , stack ) ) ;
} ) ;
return result ;
}
/* harmony default export */ const _baseClone = ( baseClone ) ;
/***/ } ) ,
/***/ 49811 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
// EXPORTS
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
Z : ( ) => ( /* binding */ _baseEach )
} ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_baseForOwn.js
var _baseForOwn = _ _webpack _require _ _ ( 2693 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/isArrayLike.js
var isArrayLike = _ _webpack _require _ _ ( 50585 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_createBaseEach.js
/ * *
* Creates a ` baseEach ` or ` baseEachRight ` function .
*
* @ private
* @ param { Function } eachFunc The function to iterate over a collection .
* @ param { boolean } [ fromRight ] Specify iterating from right to left .
* @ returns { Function } Returns the new base function .
* /
function createBaseEach ( eachFunc , fromRight ) {
return function ( collection , iteratee ) {
if ( collection == null ) {
return collection ;
}
if ( ! ( 0 , isArrayLike /* default */ . Z ) ( collection ) ) {
return eachFunc ( collection , iteratee ) ;
}
var length = collection . length ,
index = fromRight ? length : - 1 ,
iterable = Object ( collection ) ;
while ( ( fromRight ? index -- : ++ index < length ) ) {
if ( iteratee ( iterable [ index ] , index , iterable ) === false ) {
break ;
}
}
return collection ;
} ;
}
/* harmony default export */ const _createBaseEach = ( createBaseEach ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_baseEach.js
/ * *
* The base implementation of ` _.forEach ` without support for iteratee shorthands .
*
* @ private
* @ param { Array | Object } collection The collection to iterate over .
* @ param { Function } iteratee The function invoked per iteration .
* @ returns { Array | Object } Returns ` collection ` .
* /
var baseEach = _createBaseEach ( _baseForOwn /* default */ . Z ) ;
/* harmony default export */ const _baseEach = ( baseEach ) ;
/***/ } ) ,
/***/ 21692 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ Z : ( ) => ( _ _WEBPACK _DEFAULT _EXPORT _ _ )
/* harmony export */ } ) ;
/ * *
* The base implementation of ` _.findIndex ` and ` _.findLastIndex ` without
* support for iteratee shorthands .
*
* @ private
* @ param { Array } array The array to inspect .
* @ param { Function } predicate The function invoked per iteration .
* @ param { number } fromIndex The index to search from .
* @ param { boolean } [ fromRight ] Specify iterating from right to left .
* @ returns { number } Returns the index of the matched value , else ` -1 ` .
* /
function baseFindIndex ( array , predicate , fromIndex , fromRight ) {
var length = array . length ,
index = fromIndex + ( fromRight ? 1 : - 1 ) ;
while ( ( fromRight ? index -- : ++ index < length ) ) {
if ( predicate ( array [ index ] , index , array ) ) {
return index ;
}
}
return - 1 ;
}
/* harmony default export */ const _ _WEBPACK _DEFAULT _EXPORT _ _ = ( baseFindIndex ) ;
/***/ } ) ,
/***/ 10626 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
// EXPORTS
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
Z : ( ) => ( /* binding */ _baseFlatten )
} ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_arrayPush.js
var _arrayPush = _ _webpack _require _ _ ( 58694 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_Symbol.js
var _Symbol = _ _webpack _require _ _ ( 17685 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/isArguments.js + 1 modules
var isArguments = _ _webpack _require _ _ ( 29169 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/isArray.js
var isArray = _ _webpack _require _ _ ( 27771 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_isFlattenable.js
/** Built-in value references. */
var spreadableSymbol = _Symbol /* default */ . Z ? _Symbol /* default */ . Z . isConcatSpreadable : undefined ;
/ * *
* Checks if ` value ` is a flattenable ` arguments ` object or array .
*
* @ private
* @ param { * } value The value to check .
* @ returns { boolean } Returns ` true ` if ` value ` is flattenable , else ` false ` .
* /
function isFlattenable ( value ) {
return ( 0 , isArray /* default */ . Z ) ( value ) || ( 0 , isArguments /* default */ . Z ) ( value ) ||
! ! ( spreadableSymbol && value && value [ spreadableSymbol ] ) ;
}
/* harmony default export */ const _isFlattenable = ( isFlattenable ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_baseFlatten.js
/ * *
* The base implementation of ` _.flatten ` with support for restricting flattening .
*
* @ private
* @ param { Array } array The array to flatten .
* @ param { number } depth The maximum recursion depth .
* @ param { boolean } [ predicate = isFlattenable ] The function invoked per iteration .
* @ param { boolean } [ isStrict ] Restrict to values that pass ` predicate ` checks .
* @ param { Array } [ result = [ ] ] The initial result value .
* @ returns { Array } Returns the new flattened array .
* /
function baseFlatten ( array , depth , predicate , isStrict , result ) {
var index = - 1 ,
length = array . length ;
predicate || ( predicate = _isFlattenable ) ;
result || ( result = [ ] ) ;
while ( ++ index < length ) {
var value = array [ index ] ;
if ( depth > 0 && predicate ( value ) ) {
if ( depth > 1 ) {
// Recursively flatten arrays (susceptible to call stack limits).
baseFlatten ( value , depth - 1 , predicate , isStrict , result ) ;
} else {
( 0 , _arrayPush /* default */ . Z ) ( result , value ) ;
}
} else if ( ! isStrict ) {
result [ result . length ] = value ;
}
}
return result ;
}
/* harmony default export */ const _baseFlatten = ( baseFlatten ) ;
/***/ } ) ,
/***/ 2693 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ Z : ( ) => ( _ _WEBPACK _DEFAULT _EXPORT _ _ )
/* harmony export */ } ) ;
/* harmony import */ var _baseFor _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( 61395 ) ;
/* harmony import */ var _keys _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( 17179 ) ;
/ * *
* The base implementation of ` _.forOwn ` without support for iteratee shorthands .
*
* @ private
* @ param { Object } object The object to iterate over .
* @ param { Function } iteratee The function invoked per iteration .
* @ returns { Object } Returns ` object ` .
* /
function baseForOwn ( object , iteratee ) {
return object && ( 0 , _baseFor _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ /* ["default"] */ . Z ) ( object , iteratee , _keys _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ /* ["default"] */ . Z ) ;
}
/* harmony default export */ const _ _WEBPACK _DEFAULT _EXPORT _ _ = ( baseForOwn ) ;
/***/ } ) ,
/***/ 13317 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ Z : ( ) => ( _ _WEBPACK _DEFAULT _EXPORT _ _ )
/* harmony export */ } ) ;
/* harmony import */ var _castPath _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( 22823 ) ;
/* harmony import */ var _toKey _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( 62281 ) ;
/ * *
* The base implementation of ` _.get ` without support for default values .
*
* @ private
* @ param { Object } object The object to query .
* @ param { Array | string } path The path of the property to get .
* @ returns { * } Returns the resolved value .
* /
function baseGet ( object , path ) {
path = ( 0 , _castPath _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ /* ["default"] */ . Z ) ( path , object ) ;
var index = 0 ,
length = path . length ;
while ( object != null && index < length ) {
object = object [ ( 0 , _toKey _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ /* ["default"] */ . Z ) ( path [ index ++ ] ) ] ;
}
return ( index && index == length ) ? object : undefined ;
}
/* harmony default export */ const _ _WEBPACK _DEFAULT _EXPORT _ _ = ( baseGet ) ;
/***/ } ) ,
/***/ 63327 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ Z : ( ) => ( _ _WEBPACK _DEFAULT _EXPORT _ _ )
/* harmony export */ } ) ;
/* harmony import */ var _arrayPush _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( 58694 ) ;
/* harmony import */ var _isArray _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( 27771 ) ;
/ * *
* The base implementation of ` getAllKeys ` and ` getAllKeysIn ` which uses
* ` keysFunc ` and ` symbolsFunc ` to get the enumerable property names and
* symbols of ` object ` .
*
* @ private
* @ param { Object } object The object to query .
* @ param { Function } keysFunc The function to get the keys of ` object ` .
* @ param { Function } symbolsFunc The function to get the symbols of ` object ` .
* @ returns { Array } Returns the array of property names and symbols .
* /
function baseGetAllKeys ( object , keysFunc , symbolsFunc ) {
var result = keysFunc ( object ) ;
return ( 0 , _isArray _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ /* ["default"] */ . Z ) ( object ) ? result : ( 0 , _arrayPush _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ /* ["default"] */ . Z ) ( result , symbolsFunc ( object ) ) ;
}
/* harmony default export */ const _ _WEBPACK _DEFAULT _EXPORT _ _ = ( baseGetAllKeys ) ;
/***/ } ) ,
/***/ 74765 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
// EXPORTS
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
Z : ( ) => ( /* binding */ _baseIteratee )
} ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_Stack.js + 5 modules
var _Stack = _ _webpack _require _ _ ( 31667 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_SetCache.js + 2 modules
var _SetCache = _ _webpack _require _ _ ( 63001 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_arraySome.js
/ * *
* A specialized version of ` _.some ` for arrays without support for iteratee
* shorthands .
*
* @ private
* @ param { Array } [ array ] The array to iterate over .
* @ param { Function } predicate The function invoked per iteration .
* @ returns { boolean } Returns ` true ` if any element passes the predicate check ,
* else ` false ` .
* /
function arraySome ( array , predicate ) {
var index = - 1 ,
length = array == null ? 0 : array . length ;
while ( ++ index < length ) {
if ( predicate ( array [ index ] , index , array ) ) {
return true ;
}
}
return false ;
}
/* harmony default export */ const _arraySome = ( arraySome ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_cacheHas.js
var _cacheHas = _ _webpack _require _ _ ( 59548 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_equalArrays.js
/** Used to compose bitmasks for value comparisons. */
var COMPARE _PARTIAL _FLAG = 1 ,
COMPARE _UNORDERED _FLAG = 2 ;
/ * *
* A specialized version of ` baseIsEqualDeep ` for arrays with support for
* partial deep comparisons .
*
* @ private
* @ param { Array } array The array to compare .
* @ param { Array } other The other array to compare .
* @ param { number } bitmask The bitmask flags . See ` baseIsEqual ` for more details .
* @ param { Function } customizer The function to customize comparisons .
* @ param { Function } equalFunc The function to determine equivalents of values .
* @ param { Object } stack Tracks traversed ` array ` and ` other ` objects .
* @ returns { boolean } Returns ` true ` if the arrays are equivalent , else ` false ` .
* /
function equalArrays ( array , other , bitmask , customizer , equalFunc , stack ) {
var isPartial = bitmask & COMPARE _PARTIAL _FLAG ,
arrLength = array . length ,
othLength = other . length ;
if ( arrLength != othLength && ! ( isPartial && othLength > arrLength ) ) {
return false ;
}
// Check that cyclic values are equal.
var arrStacked = stack . get ( array ) ;
var othStacked = stack . get ( other ) ;
if ( arrStacked && othStacked ) {
return arrStacked == other && othStacked == array ;
}
var index = - 1 ,
result = true ,
seen = ( bitmask & COMPARE _UNORDERED _FLAG ) ? new _SetCache /* default */ . Z : undefined ;
stack . set ( array , other ) ;
stack . set ( other , array ) ;
// Ignore non-index properties.
while ( ++ index < arrLength ) {
var arrValue = array [ index ] ,
othValue = other [ index ] ;
if ( customizer ) {
var compared = isPartial
? customizer ( othValue , arrValue , index , other , array , stack )
: customizer ( arrValue , othValue , index , array , other , stack ) ;
}
if ( compared !== undefined ) {
if ( compared ) {
continue ;
}
result = false ;
break ;
}
// Recursively compare arrays (susceptible to call stack limits).
if ( seen ) {
if ( ! _arraySome ( other , function ( othValue , othIndex ) {
if ( ! ( 0 , _cacheHas /* default */ . Z ) ( seen , othIndex ) &&
( arrValue === othValue || equalFunc ( arrValue , othValue , bitmask , customizer , stack ) ) ) {
return seen . push ( othIndex ) ;
}
} ) ) {
result = false ;
break ;
}
} else if ( ! (
arrValue === othValue ||
equalFunc ( arrValue , othValue , bitmask , customizer , stack )
) ) {
result = false ;
break ;
}
}
stack [ 'delete' ] ( array ) ;
stack [ 'delete' ] ( other ) ;
return result ;
}
/* harmony default export */ const _equalArrays = ( equalArrays ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_Symbol.js
var _Symbol = _ _webpack _require _ _ ( 17685 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_Uint8Array.js
var _Uint8Array = _ _webpack _require _ _ ( 84073 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/eq.js
var eq = _ _webpack _require _ _ ( 79651 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_mapToArray.js
/ * *
* Converts ` map ` to its key - value pairs .
*
* @ private
* @ param { Object } map The map to convert .
* @ returns { Array } Returns the key - value pairs .
* /
function mapToArray ( map ) {
var index = - 1 ,
result = Array ( map . size ) ;
map . forEach ( function ( value , key ) {
result [ ++ index ] = [ key , value ] ;
} ) ;
return result ;
}
/* harmony default export */ const _mapToArray = ( mapToArray ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_setToArray.js
var _setToArray = _ _webpack _require _ _ ( 6545 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_equalByTag.js
/** Used to compose bitmasks for value comparisons. */
var _equalByTag _COMPARE _PARTIAL _FLAG = 1 ,
_equalByTag _COMPARE _UNORDERED _FLAG = 2 ;
/** `Object#toString` result references. */
var boolTag = '[object Boolean]' ,
dateTag = '[object Date]' ,
errorTag = '[object Error]' ,
mapTag = '[object Map]' ,
numberTag = '[object Number]' ,
regexpTag = '[object RegExp]' ,
setTag = '[object Set]' ,
stringTag = '[object String]' ,
symbolTag = '[object Symbol]' ;
var arrayBufferTag = '[object ArrayBuffer]' ,
dataViewTag = '[object DataView]' ;
/** Used to convert symbols to primitives and strings. */
var symbolProto = _Symbol /* default */ . Z ? _Symbol /* default */ . Z . prototype : undefined ,
symbolValueOf = symbolProto ? symbolProto . valueOf : undefined ;
/ * *
* A specialized version of ` baseIsEqualDeep ` for comparing objects of
* the same ` toStringTag ` .
*
* * * Note : * * This function only supports comparing values with tags of
* ` Boolean ` , ` Date ` , ` Error ` , ` Number ` , ` RegExp ` , or ` String ` .
*
* @ private
* @ param { Object } object The object to compare .
* @ param { Object } other The other object to compare .
* @ param { string } tag The ` toStringTag ` of the objects to compare .
* @ param { number } bitmask The bitmask flags . See ` baseIsEqual ` for more details .
* @ param { Function } customizer The function to customize comparisons .
* @ param { Function } equalFunc The function to determine equivalents of values .
* @ param { Object } stack Tracks traversed ` object ` and ` other ` objects .
* @ returns { boolean } Returns ` true ` if the objects are equivalent , else ` false ` .
* /
function equalByTag ( object , other , tag , bitmask , customizer , equalFunc , stack ) {
switch ( tag ) {
case dataViewTag :
if ( ( object . byteLength != other . byteLength ) ||
( object . byteOffset != other . byteOffset ) ) {
return false ;
}
object = object . buffer ;
other = other . buffer ;
case arrayBufferTag :
if ( ( object . byteLength != other . byteLength ) ||
! equalFunc ( new _Uint8Array /* default */ . Z ( object ) , new _Uint8Array /* default */ . Z ( other ) ) ) {
return false ;
}
return true ;
case boolTag :
case dateTag :
case numberTag :
// Coerce booleans to `1` or `0` and dates to milliseconds.
// Invalid dates are coerced to `NaN`.
return ( 0 , eq /* default */ . Z ) ( + object , + other ) ;
case errorTag :
return object . name == other . name && object . message == other . message ;
case regexpTag :
case stringTag :
// Coerce regexes to strings and treat strings, primitives and objects,
// as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring
// for more details.
return object == ( other + '' ) ;
case mapTag :
var convert = _mapToArray ;
case setTag :
var isPartial = bitmask & _equalByTag _COMPARE _PARTIAL _FLAG ;
convert || ( convert = _setToArray /* default */ . Z ) ;
if ( object . size != other . size && ! isPartial ) {
return false ;
}
// Assume cyclic values are equal.
var stacked = stack . get ( object ) ;
if ( stacked ) {
return stacked == other ;
}
bitmask |= _equalByTag _COMPARE _UNORDERED _FLAG ;
// Recursively compare objects (susceptible to call stack limits).
stack . set ( object , other ) ;
var result = _equalArrays ( convert ( object ) , convert ( other ) , bitmask , customizer , equalFunc , stack ) ;
stack [ 'delete' ] ( object ) ;
return result ;
case symbolTag :
if ( symbolValueOf ) {
return symbolValueOf . call ( object ) == symbolValueOf . call ( other ) ;
}
}
return false ;
}
/* harmony default export */ const _equalByTag = ( equalByTag ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_getAllKeys.js
var _getAllKeys = _ _webpack _require _ _ ( 1808 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_equalObjects.js
/** Used to compose bitmasks for value comparisons. */
var _equalObjects _COMPARE _PARTIAL _FLAG = 1 ;
/** Used for built-in method references. */
var objectProto = Object . prototype ;
/** Used to check objects for own properties. */
var _equalObjects _hasOwnProperty = objectProto . hasOwnProperty ;
/ * *
* A specialized version of ` baseIsEqualDeep ` for objects with support for
* partial deep comparisons .
*
* @ private
* @ param { Object } object The object to compare .
* @ param { Object } other The other object to compare .
* @ param { number } bitmask The bitmask flags . See ` baseIsEqual ` for more details .
* @ param { Function } customizer The function to customize comparisons .
* @ param { Function } equalFunc The function to determine equivalents of values .
* @ param { Object } stack Tracks traversed ` object ` and ` other ` objects .
* @ returns { boolean } Returns ` true ` if the objects are equivalent , else ` false ` .
* /
function equalObjects ( object , other , bitmask , customizer , equalFunc , stack ) {
var isPartial = bitmask & _equalObjects _COMPARE _PARTIAL _FLAG ,
objProps = ( 0 , _getAllKeys /* default */ . Z ) ( object ) ,
objLength = objProps . length ,
othProps = ( 0 , _getAllKeys /* default */ . Z ) ( other ) ,
othLength = othProps . length ;
if ( objLength != othLength && ! isPartial ) {
return false ;
}
var index = objLength ;
while ( index -- ) {
var key = objProps [ index ] ;
if ( ! ( isPartial ? key in other : _equalObjects _hasOwnProperty . call ( other , key ) ) ) {
return false ;
}
}
// Check that cyclic values are equal.
var objStacked = stack . get ( object ) ;
var othStacked = stack . get ( other ) ;
if ( objStacked && othStacked ) {
return objStacked == other && othStacked == object ;
}
var result = true ;
stack . set ( object , other ) ;
stack . set ( other , object ) ;
var skipCtor = isPartial ;
while ( ++ index < objLength ) {
key = objProps [ index ] ;
var objValue = object [ key ] ,
othValue = other [ key ] ;
if ( customizer ) {
var compared = isPartial
? customizer ( othValue , objValue , key , other , object , stack )
: customizer ( objValue , othValue , key , object , other , stack ) ;
}
// Recursively compare objects (susceptible to call stack limits).
if ( ! ( compared === undefined
? ( objValue === othValue || equalFunc ( objValue , othValue , bitmask , customizer , stack ) )
: compared
) ) {
result = false ;
break ;
}
skipCtor || ( skipCtor = key == 'constructor' ) ;
}
if ( result && ! skipCtor ) {
var objCtor = object . constructor ,
othCtor = other . constructor ;
// Non `Object` object instances with different constructors are not equal.
if ( objCtor != othCtor &&
( 'constructor' in object && 'constructor' in other ) &&
! ( typeof objCtor == 'function' && objCtor instanceof objCtor &&
typeof othCtor == 'function' && othCtor instanceof othCtor ) ) {
result = false ;
}
}
stack [ 'delete' ] ( object ) ;
stack [ 'delete' ] ( other ) ;
return result ;
}
/* harmony default export */ const _equalObjects = ( equalObjects ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_getTag.js + 3 modules
var _getTag = _ _webpack _require _ _ ( 83970 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/isArray.js
var isArray = _ _webpack _require _ _ ( 27771 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/isBuffer.js + 1 modules
var isBuffer = _ _webpack _require _ _ ( 77008 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/isTypedArray.js + 1 modules
var isTypedArray = _ _webpack _require _ _ ( 18843 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_baseIsEqualDeep.js
/** Used to compose bitmasks for value comparisons. */
var _baseIsEqualDeep _COMPARE _PARTIAL _FLAG = 1 ;
/** `Object#toString` result references. */
var argsTag = '[object Arguments]' ,
arrayTag = '[object Array]' ,
objectTag = '[object Object]' ;
/** Used for built-in method references. */
var _baseIsEqualDeep _objectProto = Object . prototype ;
/** Used to check objects for own properties. */
var _baseIsEqualDeep _hasOwnProperty = _baseIsEqualDeep _objectProto . hasOwnProperty ;
/ * *
* A specialized version of ` baseIsEqual ` for arrays and objects which performs
* deep comparisons and tracks traversed objects enabling objects with circular
* references to be compared .
*
* @ private
* @ param { Object } object The object to compare .
* @ param { Object } other The other object to compare .
* @ param { number } bitmask The bitmask flags . See ` baseIsEqual ` for more details .
* @ param { Function } customizer The function to customize comparisons .
* @ param { Function } equalFunc The function to determine equivalents of values .
* @ param { Object } [ stack ] Tracks traversed ` object ` and ` other ` objects .
* @ returns { boolean } Returns ` true ` if the objects are equivalent , else ` false ` .
* /
function baseIsEqualDeep ( object , other , bitmask , customizer , equalFunc , stack ) {
var objIsArr = ( 0 , isArray /* default */ . Z ) ( object ) ,
othIsArr = ( 0 , isArray /* default */ . Z ) ( other ) ,
objTag = objIsArr ? arrayTag : ( 0 , _getTag /* default */ . Z ) ( object ) ,
othTag = othIsArr ? arrayTag : ( 0 , _getTag /* default */ . Z ) ( other ) ;
objTag = objTag == argsTag ? objectTag : objTag ;
othTag = othTag == argsTag ? objectTag : othTag ;
var objIsObj = objTag == objectTag ,
othIsObj = othTag == objectTag ,
isSameTag = objTag == othTag ;
if ( isSameTag && ( 0 , isBuffer /* default */ . Z ) ( object ) ) {
if ( ! ( 0 , isBuffer /* default */ . Z ) ( other ) ) {
return false ;
}
objIsArr = true ;
objIsObj = false ;
}
if ( isSameTag && ! objIsObj ) {
stack || ( stack = new _Stack /* default */ . Z ) ;
return ( objIsArr || ( 0 , isTypedArray /* default */ . Z ) ( object ) )
? _equalArrays ( object , other , bitmask , customizer , equalFunc , stack )
: _equalByTag ( object , other , objTag , bitmask , customizer , equalFunc , stack ) ;
}
if ( ! ( bitmask & _baseIsEqualDeep _COMPARE _PARTIAL _FLAG ) ) {
var objIsWrapped = objIsObj && _baseIsEqualDeep _hasOwnProperty . call ( object , '__wrapped__' ) ,
othIsWrapped = othIsObj && _baseIsEqualDeep _hasOwnProperty . call ( other , '__wrapped__' ) ;
if ( objIsWrapped || othIsWrapped ) {
var objUnwrapped = objIsWrapped ? object . value ( ) : object ,
othUnwrapped = othIsWrapped ? other . value ( ) : other ;
stack || ( stack = new _Stack /* default */ . Z ) ;
return equalFunc ( objUnwrapped , othUnwrapped , bitmask , customizer , stack ) ;
}
}
if ( ! isSameTag ) {
return false ;
}
stack || ( stack = new _Stack /* default */ . Z ) ;
return _equalObjects ( object , other , bitmask , customizer , equalFunc , stack ) ;
}
/* harmony default export */ const _baseIsEqualDeep = ( baseIsEqualDeep ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/isObjectLike.js
var isObjectLike = _ _webpack _require _ _ ( 18533 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_baseIsEqual.js
/ * *
* The base implementation of ` _.isEqual ` which supports partial comparisons
* and tracks traversed objects .
*
* @ private
* @ param { * } value The value to compare .
* @ param { * } other The other value to compare .
* @ param { boolean } bitmask The bitmask flags .
* 1 - Unordered comparison
* 2 - Partial comparison
* @ param { Function } [ customizer ] The function to customize comparisons .
* @ param { Object } [ stack ] Tracks traversed ` value ` and ` other ` objects .
* @ returns { boolean } Returns ` true ` if the values are equivalent , else ` false ` .
* /
function baseIsEqual ( value , other , bitmask , customizer , stack ) {
if ( value === other ) {
return true ;
}
if ( value == null || other == null || ( ! ( 0 , isObjectLike /* default */ . Z ) ( value ) && ! ( 0 , isObjectLike /* default */ . Z ) ( other ) ) ) {
return value !== value && other !== other ;
}
return _baseIsEqualDeep ( value , other , bitmask , customizer , baseIsEqual , stack ) ;
}
/* harmony default export */ const _baseIsEqual = ( baseIsEqual ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_baseIsMatch.js
/** Used to compose bitmasks for value comparisons. */
var _baseIsMatch _COMPARE _PARTIAL _FLAG = 1 ,
_baseIsMatch _COMPARE _UNORDERED _FLAG = 2 ;
/ * *
* The base implementation of ` _.isMatch ` without support for iteratee shorthands .
*
* @ private
* @ param { Object } object The object to inspect .
* @ param { Object } source The object of property values to match .
* @ param { Array } matchData The property names , values , and compare flags to match .
* @ param { Function } [ customizer ] The function to customize comparisons .
* @ returns { boolean } Returns ` true ` if ` object ` is a match , else ` false ` .
* /
function baseIsMatch ( object , source , matchData , customizer ) {
var index = matchData . length ,
length = index ,
noCustomizer = ! customizer ;
if ( object == null ) {
return ! length ;
}
object = Object ( object ) ;
while ( index -- ) {
var data = matchData [ index ] ;
if ( ( noCustomizer && data [ 2 ] )
? data [ 1 ] !== object [ data [ 0 ] ]
: ! ( data [ 0 ] in object )
) {
return false ;
}
}
while ( ++ index < length ) {
data = matchData [ index ] ;
var key = data [ 0 ] ,
objValue = object [ key ] ,
srcValue = data [ 1 ] ;
if ( noCustomizer && data [ 2 ] ) {
if ( objValue === undefined && ! ( key in object ) ) {
return false ;
}
} else {
var stack = new _Stack /* default */ . Z ;
if ( customizer ) {
var result = customizer ( objValue , srcValue , key , object , source , stack ) ;
}
if ( ! ( result === undefined
? _baseIsEqual ( srcValue , objValue , _baseIsMatch _COMPARE _PARTIAL _FLAG | _baseIsMatch _COMPARE _UNORDERED _FLAG , customizer , stack )
: result
) ) {
return false ;
}
}
}
return true ;
}
/* harmony default export */ const _baseIsMatch = ( baseIsMatch ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/isObject.js
var isObject = _ _webpack _require _ _ ( 77226 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_isStrictComparable.js
/ * *
* Checks if ` value ` is suitable for strict equality comparisons , i . e . ` === ` .
*
* @ private
* @ param { * } value The value to check .
* @ returns { boolean } Returns ` true ` if ` value ` if suitable for strict
* equality comparisons , else ` false ` .
* /
function isStrictComparable ( value ) {
return value === value && ! ( 0 , isObject /* default */ . Z ) ( value ) ;
}
/* harmony default export */ const _isStrictComparable = ( isStrictComparable ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/keys.js
var keys = _ _webpack _require _ _ ( 17179 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_getMatchData.js
/ * *
* Gets the property names , values , and compare flags of ` object ` .
*
* @ private
* @ param { Object } object The object to query .
* @ returns { Array } Returns the match data of ` object ` .
* /
function getMatchData ( object ) {
var result = ( 0 , keys /* default */ . Z ) ( object ) ,
length = result . length ;
while ( length -- ) {
var key = result [ length ] ,
value = object [ key ] ;
result [ length ] = [ key , value , _isStrictComparable ( value ) ] ;
}
return result ;
}
/* harmony default export */ const _getMatchData = ( getMatchData ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_matchesStrictComparable.js
/ * *
* A specialized version of ` matchesProperty ` for source values suitable
* for strict equality comparisons , i . e . ` === ` .
*
* @ private
* @ param { string } key The key of the property to get .
* @ param { * } srcValue The value to match .
* @ returns { Function } Returns the new spec function .
* /
function matchesStrictComparable ( key , srcValue ) {
return function ( object ) {
if ( object == null ) {
return false ;
}
return object [ key ] === srcValue &&
( srcValue !== undefined || ( key in Object ( object ) ) ) ;
} ;
}
/* harmony default export */ const _matchesStrictComparable = ( matchesStrictComparable ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_baseMatches.js
/ * *
* The base implementation of ` _.matches ` which doesn ' t clone ` source ` .
*
* @ private
* @ param { Object } source The object of property values to match .
* @ returns { Function } Returns the new spec function .
* /
function baseMatches ( source ) {
var matchData = _getMatchData ( source ) ;
if ( matchData . length == 1 && matchData [ 0 ] [ 2 ] ) {
return _matchesStrictComparable ( matchData [ 0 ] [ 0 ] , matchData [ 0 ] [ 1 ] ) ;
}
return function ( object ) {
return object === source || _baseIsMatch ( object , source , matchData ) ;
} ;
}
/* harmony default export */ const _baseMatches = ( baseMatches ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_baseGet.js
var _baseGet = _ _webpack _require _ _ ( 13317 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/get.js
/ * *
* Gets the value at ` path ` of ` object ` . If the resolved value is
* ` undefined ` , the ` defaultValue ` is returned in its place .
*
* @ static
* @ memberOf _
* @ since 3.7 . 0
* @ category Object
* @ param { Object } object The object to query .
* @ param { Array | string } path The path of the property to get .
* @ param { * } [ defaultValue ] The value returned for ` undefined ` resolved values .
* @ returns { * } Returns the resolved value .
* @ example
*
* var object = { 'a' : [ { 'b' : { 'c' : 3 } } ] } ;
*
* _ . get ( object , 'a[0].b.c' ) ;
* // => 3
*
* _ . get ( object , [ 'a' , '0' , 'b' , 'c' ] ) ;
* // => 3
*
* _ . get ( object , 'a.b.c' , 'default' ) ;
* // => 'default'
* /
function get ( object , path , defaultValue ) {
var result = object == null ? undefined : ( 0 , _baseGet /* default */ . Z ) ( object , path ) ;
return result === undefined ? defaultValue : result ;
}
/* harmony default export */ const lodash _es _get = ( get ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/hasIn.js + 1 modules
var hasIn = _ _webpack _require _ _ ( 75487 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_isKey.js
var _isKey = _ _webpack _require _ _ ( 99365 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_toKey.js
var _toKey = _ _webpack _require _ _ ( 62281 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_baseMatchesProperty.js
/** Used to compose bitmasks for value comparisons. */
var _baseMatchesProperty _COMPARE _PARTIAL _FLAG = 1 ,
_baseMatchesProperty _COMPARE _UNORDERED _FLAG = 2 ;
/ * *
* The base implementation of ` _.matchesProperty ` which doesn ' t clone ` srcValue ` .
*
* @ private
* @ param { string } path The path of the property to get .
* @ param { * } srcValue The value to match .
* @ returns { Function } Returns the new spec function .
* /
function baseMatchesProperty ( path , srcValue ) {
if ( ( 0 , _isKey /* default */ . Z ) ( path ) && _isStrictComparable ( srcValue ) ) {
return _matchesStrictComparable ( ( 0 , _toKey /* default */ . Z ) ( path ) , srcValue ) ;
}
return function ( object ) {
var objValue = lodash _es _get ( object , path ) ;
return ( objValue === undefined && objValue === srcValue )
? ( 0 , hasIn /* default */ . Z ) ( object , path )
: _baseIsEqual ( srcValue , objValue , _baseMatchesProperty _COMPARE _PARTIAL _FLAG | _baseMatchesProperty _COMPARE _UNORDERED _FLAG ) ;
} ;
}
/* harmony default export */ const _baseMatchesProperty = ( baseMatchesProperty ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/identity.js
var identity = _ _webpack _require _ _ ( 69203 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_baseProperty.js
var _baseProperty = _ _webpack _require _ _ ( 54193 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_basePropertyDeep.js
/ * *
* A specialized version of ` baseProperty ` which supports deep paths .
*
* @ private
* @ param { Array | string } path The path of the property to get .
* @ returns { Function } Returns the new accessor function .
* /
function basePropertyDeep ( path ) {
return function ( object ) {
return ( 0 , _baseGet /* default */ . Z ) ( object , path ) ;
} ;
}
/* harmony default export */ const _basePropertyDeep = ( basePropertyDeep ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/property.js
/ * *
* Creates a function that returns the value at ` path ` of a given object .
*
* @ static
* @ memberOf _
* @ since 2.4 . 0
* @ category Util
* @ param { Array | string } path The path of the property to get .
* @ returns { Function } Returns the new accessor function .
* @ example
*
* var objects = [
* { 'a' : { 'b' : 2 } } ,
* { 'a' : { 'b' : 1 } }
* ] ;
*
* _ . map ( objects , _ . property ( 'a.b' ) ) ;
* // => [2, 1]
*
* _ . map ( _ . sortBy ( objects , _ . property ( [ 'a' , 'b' ] ) ) , 'a.b' ) ;
* // => [1, 2]
* /
function property ( path ) {
return ( 0 , _isKey /* default */ . Z ) ( path ) ? ( 0 , _baseProperty /* default */ . Z ) ( ( 0 , _toKey /* default */ . Z ) ( path ) ) : _basePropertyDeep ( path ) ;
}
/* harmony default export */ const lodash _es _property = ( property ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_baseIteratee.js
/ * *
* The base implementation of ` _.iteratee ` .
*
* @ private
* @ param { * } [ value = _ . identity ] The value to convert to an iteratee .
* @ returns { Function } Returns the iteratee .
* /
function baseIteratee ( value ) {
// Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.
// See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.
if ( typeof value == 'function' ) {
return value ;
}
if ( value == null ) {
return identity /* default */ . Z ;
}
if ( typeof value == 'object' ) {
return ( 0 , isArray /* default */ . Z ) ( value )
? _baseMatchesProperty ( value [ 0 ] , value [ 1 ] )
: _baseMatches ( value ) ;
}
return lodash _es _property ( value ) ;
}
/* harmony default export */ const _baseIteratee = ( baseIteratee ) ;
/***/ } ) ,
/***/ 21018 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ Z : ( ) => ( _ _WEBPACK _DEFAULT _EXPORT _ _ )
/* harmony export */ } ) ;
/* harmony import */ var _baseEach _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( 49811 ) ;
/* harmony import */ var _isArrayLike _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( 50585 ) ;
/ * *
* The base implementation of ` _.map ` without support for iteratee shorthands .
*
* @ private
* @ param { Array | Object } collection The collection to iterate over .
* @ param { Function } iteratee The function invoked per iteration .
* @ returns { Array } Returns the new mapped array .
* /
function baseMap ( collection , iteratee ) {
var index = - 1 ,
result = ( 0 , _isArrayLike _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ /* ["default"] */ . Z ) ( collection ) ? Array ( collection . length ) : [ ] ;
( 0 , _baseEach _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ /* ["default"] */ . Z ) ( collection , function ( value , key , collection ) {
result [ ++ index ] = iteratee ( value , key , collection ) ;
} ) ;
return result ;
}
/* harmony default export */ const _ _WEBPACK _DEFAULT _EXPORT _ _ = ( baseMap ) ;
/***/ } ) ,
/***/ 54193 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ Z : ( ) => ( _ _WEBPACK _DEFAULT _EXPORT _ _ )
/* harmony export */ } ) ;
/ * *
* The base implementation of ` _.property ` without support for deep paths .
*
* @ private
* @ param { string } key The key of the property to get .
* @ returns { Function } Returns the new accessor function .
* /
function baseProperty ( key ) {
return function ( object ) {
return object == null ? undefined : object [ key ] ;
} ;
}
/* harmony default export */ const _ _WEBPACK _DEFAULT _EXPORT _ _ = ( baseProperty ) ;
/***/ } ) ,
/***/ 59548 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ Z : ( ) => ( _ _WEBPACK _DEFAULT _EXPORT _ _ )
/* harmony export */ } ) ;
/ * *
* Checks if a ` cache ` value for ` key ` exists .
*
* @ private
* @ param { Object } cache The cache to query .
* @ param { string } key The key of the entry to check .
* @ returns { boolean } Returns ` true ` if an entry for ` key ` exists , else ` false ` .
* /
function cacheHas ( cache , key ) {
return cache . has ( key ) ;
}
/* harmony default export */ const _ _WEBPACK _DEFAULT _EXPORT _ _ = ( cacheHas ) ;
/***/ } ) ,
/***/ 68882 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ Z : ( ) => ( _ _WEBPACK _DEFAULT _EXPORT _ _ )
/* harmony export */ } ) ;
/* harmony import */ var _identity _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( 69203 ) ;
/ * *
* Casts ` value ` to ` identity ` if it ' s not a function .
*
* @ private
* @ param { * } value The value to inspect .
* @ returns { Function } Returns cast function .
* /
function castFunction ( value ) {
return typeof value == 'function' ? value : _identity _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ /* ["default"] */ . Z ;
}
/* harmony default export */ const _ _WEBPACK _DEFAULT _EXPORT _ _ = ( castFunction ) ;
/***/ } ) ,
/***/ 22823 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
// EXPORTS
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
Z : ( ) => ( /* binding */ _castPath )
} ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/isArray.js
var isArray = _ _webpack _require _ _ ( 27771 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_isKey.js
var _isKey = _ _webpack _require _ _ ( 99365 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/memoize.js
var memoize = _ _webpack _require _ _ ( 42454 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_memoizeCapped.js
/** Used as the maximum memoize cache size. */
var MAX _MEMOIZE _SIZE = 500 ;
/ * *
* A specialized version of ` _.memoize ` which clears the memoized function ' s
* cache when it exceeds ` MAX_MEMOIZE_SIZE ` .
*
* @ private
* @ param { Function } func The function to have its output memoized .
* @ returns { Function } Returns the new memoized function .
* /
function memoizeCapped ( func ) {
var result = ( 0 , memoize /* default */ . Z ) ( func , function ( key ) {
if ( cache . size === MAX _MEMOIZE _SIZE ) {
cache . clear ( ) ;
}
return key ;
} ) ;
var cache = result . cache ;
return result ;
}
/* harmony default export */ const _memoizeCapped = ( memoizeCapped ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_stringToPath.js
/** Used to match property names within property paths. */
var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g ;
/** Used to match backslashes in property paths. */
var reEscapeChar = /\\(\\)?/g ;
/ * *
* Converts ` string ` to a property path array .
*
* @ private
* @ param { string } string The string to convert .
* @ returns { Array } Returns the property path array .
* /
var stringToPath = _memoizeCapped ( function ( string ) {
var result = [ ] ;
if ( string . charCodeAt ( 0 ) === 46 /* . */ ) {
result . push ( '' ) ;
}
string . replace ( rePropName , function ( match , number , quote , subString ) {
result . push ( quote ? subString . replace ( reEscapeChar , '$1' ) : ( number || match ) ) ;
} ) ;
return result ;
} ) ;
/* harmony default export */ const _stringToPath = ( stringToPath ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/toString.js + 1 modules
var lodash _es _toString = _ _webpack _require _ _ ( 50751 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_castPath.js
/ * *
* Casts ` value ` to a path array if it ' s not one .
*
* @ private
* @ param { * } value The value to inspect .
* @ param { Object } [ object ] The object to query keys on .
* @ returns { Array } Returns the cast property path array .
* /
function castPath ( value , object ) {
if ( ( 0 , isArray /* default */ . Z ) ( value ) ) {
return value ;
}
return ( 0 , _isKey /* default */ . Z ) ( value , object ) ? [ value ] : _stringToPath ( ( 0 , lodash _es _toString /* default */ . Z ) ( value ) ) ;
}
/* harmony default export */ const _castPath = ( castPath ) ;
/***/ } ) ,
/***/ 1808 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ Z : ( ) => ( _ _WEBPACK _DEFAULT _EXPORT _ _ )
/* harmony export */ } ) ;
/* harmony import */ var _baseGetAllKeys _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( 63327 ) ;
/* harmony import */ var _getSymbols _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ = _ _webpack _require _ _ ( 95695 ) ;
/* harmony import */ var _keys _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( 17179 ) ;
/ * *
* Creates an array of own enumerable property names and symbols of ` object ` .
*
* @ private
* @ param { Object } object The object to query .
* @ returns { Array } Returns the array of property names and symbols .
* /
function getAllKeys ( object ) {
return ( 0 , _baseGetAllKeys _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ /* ["default"] */ . Z ) ( object , _keys _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ /* ["default"] */ . Z , _getSymbols _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ /* ["default"] */ . Z ) ;
}
/* harmony default export */ const _ _WEBPACK _DEFAULT _EXPORT _ _ = ( getAllKeys ) ;
/***/ } ) ,
/***/ 95695 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ Z : ( ) => ( _ _WEBPACK _DEFAULT _EXPORT _ _ )
/* harmony export */ } ) ;
/* harmony import */ var _arrayFilter _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( 68774 ) ;
/* harmony import */ var _stubArray _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( 60532 ) ;
/** Used for built-in method references. */
var objectProto = Object . prototype ;
/** Built-in value references. */
var propertyIsEnumerable = objectProto . propertyIsEnumerable ;
/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeGetSymbols = Object . getOwnPropertySymbols ;
/ * *
* Creates an array of the own enumerable symbols of ` object ` .
*
* @ private
* @ param { Object } object The object to query .
* @ returns { Array } Returns the array of symbols .
* /
var getSymbols = ! nativeGetSymbols ? _stubArray _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ /* ["default"] */ . Z : function ( object ) {
if ( object == null ) {
return [ ] ;
}
object = Object ( object ) ;
return ( 0 , _arrayFilter _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ /* ["default"] */ . Z ) ( nativeGetSymbols ( object ) , function ( symbol ) {
return propertyIsEnumerable . call ( object , symbol ) ;
} ) ;
} ;
/* harmony default export */ const _ _WEBPACK _DEFAULT _EXPORT _ _ = ( getSymbols ) ;
/***/ } ) ,
/***/ 16174 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ Z : ( ) => ( _ _WEBPACK _DEFAULT _EXPORT _ _ )
/* harmony export */ } ) ;
/* harmony import */ var _castPath _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( 22823 ) ;
/* harmony import */ var _isArguments _js _ _WEBPACK _IMPORTED _MODULE _5 _ _ = _ _webpack _require _ _ ( 29169 ) ;
/* harmony import */ var _isArray _js _ _WEBPACK _IMPORTED _MODULE _4 _ _ = _ _webpack _require _ _ ( 27771 ) ;
/* harmony import */ var _isIndex _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ = _ _webpack _require _ _ ( 56009 ) ;
/* harmony import */ var _isLength _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ = _ _webpack _require _ _ ( 1656 ) ;
/* harmony import */ var _toKey _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( 62281 ) ;
/ * *
* Checks if ` path ` exists on ` object ` .
*
* @ private
* @ param { Object } object The object to query .
* @ param { Array | string } path The path to check .
* @ param { Function } hasFunc The function to check properties .
* @ returns { boolean } Returns ` true ` if ` path ` exists , else ` false ` .
* /
function hasPath ( object , path , hasFunc ) {
path = ( 0 , _castPath _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ /* ["default"] */ . Z ) ( path , object ) ;
var index = - 1 ,
length = path . length ,
result = false ;
while ( ++ index < length ) {
var key = ( 0 , _toKey _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ /* ["default"] */ . Z ) ( path [ index ] ) ;
if ( ! ( result = object != null && hasFunc ( object , key ) ) ) {
break ;
}
object = object [ key ] ;
}
if ( result || ++ index != length ) {
return result ;
}
length = object == null ? 0 : object . length ;
return ! ! length && ( 0 , _isLength _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ /* ["default"] */ . Z ) ( length ) && ( 0 , _isIndex _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ /* ["default"] */ . Z ) ( key , length ) &&
( ( 0 , _isArray _js _ _WEBPACK _IMPORTED _MODULE _4 _ _ /* ["default"] */ . Z ) ( object ) || ( 0 , _isArguments _js _ _WEBPACK _IMPORTED _MODULE _5 _ _ /* ["default"] */ . Z ) ( object ) ) ;
}
/* harmony default export */ const _ _WEBPACK _DEFAULT _EXPORT _ _ = ( hasPath ) ;
/***/ } ) ,
/***/ 99365 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ Z : ( ) => ( _ _WEBPACK _DEFAULT _EXPORT _ _ )
/* harmony export */ } ) ;
/* harmony import */ var _isArray _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( 27771 ) ;
/* harmony import */ var _isSymbol _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( 72714 ) ;
/** Used to match property names within property paths. */
var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/ ,
reIsPlainProp = /^\w*$/ ;
/ * *
* Checks if ` value ` is a property name and not a property path .
*
* @ private
* @ param { * } value The value to check .
* @ param { Object } [ object ] The object to query keys on .
* @ returns { boolean } Returns ` true ` if ` value ` is a property name , else ` false ` .
* /
function isKey ( value , object ) {
if ( ( 0 , _isArray _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ /* ["default"] */ . Z ) ( value ) ) {
return false ;
}
var type = typeof value ;
if ( type == 'number' || type == 'symbol' || type == 'boolean' ||
value == null || ( 0 , _isSymbol _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ /* ["default"] */ . Z ) ( value ) ) {
return true ;
}
return reIsPlainProp . test ( value ) || ! reIsDeepProp . test ( value ) ||
( object != null && value in Object ( object ) ) ;
}
/* harmony default export */ const _ _WEBPACK _DEFAULT _EXPORT _ _ = ( isKey ) ;
/***/ } ) ,
/***/ 6545 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ Z : ( ) => ( _ _WEBPACK _DEFAULT _EXPORT _ _ )
/* harmony export */ } ) ;
/ * *
* Converts ` set ` to an array of its values .
*
* @ private
* @ param { Object } set The set to convert .
* @ returns { Array } Returns the values .
* /
function setToArray ( set ) {
var index = - 1 ,
result = Array ( set . size ) ;
set . forEach ( function ( value ) {
result [ ++ index ] = value ;
} ) ;
return result ;
}
/* harmony default export */ const _ _WEBPACK _DEFAULT _EXPORT _ _ = ( setToArray ) ;
/***/ } ) ,
/***/ 62281 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ Z : ( ) => ( _ _WEBPACK _DEFAULT _EXPORT _ _ )
/* harmony export */ } ) ;
/* harmony import */ var _isSymbol _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( 72714 ) ;
/** Used as references for various `Number` constants. */
var INFINITY = 1 / 0 ;
/ * *
* Converts ` value ` to a string key if it ' s not a string or symbol .
*
* @ private
* @ param { * } value The value to inspect .
* @ returns { string | symbol } Returns the key .
* /
function toKey ( value ) {
if ( typeof value == 'string' || ( 0 , _isSymbol _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ /* ["default"] */ . Z ) ( value ) ) {
return value ;
}
var result = ( value + '' ) ;
return ( result == '0' && ( 1 / value ) == - INFINITY ) ? '-0' : result ;
}
/* harmony default export */ const _ _WEBPACK _DEFAULT _EXPORT _ _ = ( toKey ) ;
/***/ } ) ,
/***/ 3688 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ Z : ( ) => ( _ _WEBPACK _DEFAULT _EXPORT _ _ )
/* harmony export */ } ) ;
/* harmony import */ var _baseRest _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( 69581 ) ;
/* harmony import */ var _eq _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ = _ _webpack _require _ _ ( 79651 ) ;
/* harmony import */ var _isIterateeCall _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( 50439 ) ;
/* harmony import */ var _keysIn _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ = _ _webpack _require _ _ ( 32957 ) ;
/** Used for built-in method references. */
var objectProto = Object . prototype ;
/** Used to check objects for own properties. */
var hasOwnProperty = objectProto . hasOwnProperty ;
/ * *
* Assigns own and inherited enumerable string keyed properties of source
* objects to the destination object for all destination properties that
* resolve to ` undefined ` . Source objects are applied from left to right .
* Once a property is set , additional values of the same property are ignored .
*
* * * Note : * * This method mutates ` object ` .
*
* @ static
* @ since 0.1 . 0
* @ memberOf _
* @ category Object
* @ param { Object } object The destination object .
* @ param { ... Object } [ sources ] The source objects .
* @ returns { Object } Returns ` object ` .
* @ see _ . defaultsDeep
* @ example
*
* _ . defaults ( { 'a' : 1 } , { 'b' : 2 } , { 'a' : 3 } ) ;
* // => { 'a': 1, 'b': 2 }
* /
var defaults = ( 0 , _baseRest _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ /* ["default"] */ . Z ) ( function ( object , sources ) {
object = Object ( object ) ;
var index = - 1 ;
var length = sources . length ;
var guard = length > 2 ? sources [ 2 ] : undefined ;
if ( guard && ( 0 , _isIterateeCall _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ /* ["default"] */ . Z ) ( sources [ 0 ] , sources [ 1 ] , guard ) ) {
length = 1 ;
}
while ( ++ index < length ) {
var source = sources [ index ] ;
var props = ( 0 , _keysIn _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ /* ["default"] */ . Z ) ( source ) ;
var propsIndex = - 1 ;
var propsLength = props . length ;
while ( ++ propsIndex < propsLength ) {
var key = props [ propsIndex ] ;
var value = object [ key ] ;
if ( value === undefined ||
( ( 0 , _eq _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ /* ["default"] */ . Z ) ( value , objectProto [ key ] ) && ! hasOwnProperty . call ( object , key ) ) ) {
object [ key ] = source [ key ] ;
}
}
}
return object ;
} ) ;
/* harmony default export */ const _ _WEBPACK _DEFAULT _EXPORT _ _ = ( defaults ) ;
/***/ } ) ,
/***/ 13445 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
// EXPORTS
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
Z : ( ) => ( /* binding */ lodash _es _filter )
} ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_arrayFilter.js
var _arrayFilter = _ _webpack _require _ _ ( 68774 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_baseEach.js + 1 modules
var _baseEach = _ _webpack _require _ _ ( 49811 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_baseFilter.js
/ * *
* The base implementation of ` _.filter ` without support for iteratee shorthands .
*
* @ private
* @ param { Array | Object } collection The collection to iterate over .
* @ param { Function } predicate The function invoked per iteration .
* @ returns { Array } Returns the new filtered array .
* /
function baseFilter ( collection , predicate ) {
var result = [ ] ;
( 0 , _baseEach /* default */ . Z ) ( collection , function ( value , index , collection ) {
if ( predicate ( value , index , collection ) ) {
result . push ( value ) ;
}
} ) ;
return result ;
}
/* harmony default export */ const _baseFilter = ( baseFilter ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_baseIteratee.js + 16 modules
var _baseIteratee = _ _webpack _require _ _ ( 74765 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/isArray.js
var isArray = _ _webpack _require _ _ ( 27771 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/filter.js
/ * *
* Iterates over elements of ` collection ` , returning an array of all elements
* ` predicate ` returns truthy for . The predicate is invoked with three
* arguments : ( value , index | key , collection ) .
*
* * * Note : * * Unlike ` _.remove ` , this method returns a new array .
*
* @ static
* @ memberOf _
* @ since 0.1 . 0
* @ category Collection
* @ param { Array | Object } collection The collection to iterate over .
* @ param { Function } [ predicate = _ . identity ] The function invoked per iteration .
* @ returns { Array } Returns the new filtered array .
* @ see _ . reject
* @ example
*
* var users = [
* { 'user' : 'barney' , 'age' : 36 , 'active' : true } ,
* { 'user' : 'fred' , 'age' : 40 , 'active' : false }
* ] ;
*
* _ . filter ( users , function ( o ) { return ! o . active ; } ) ;
* // => objects for ['fred']
*
* // The `_.matches` iteratee shorthand.
* _ . filter ( users , { 'age' : 36 , 'active' : true } ) ;
* // => objects for ['barney']
*
* // The `_.matchesProperty` iteratee shorthand.
* _ . filter ( users , [ 'active' , false ] ) ;
* // => objects for ['fred']
*
* // The `_.property` iteratee shorthand.
* _ . filter ( users , 'active' ) ;
* // => objects for ['barney']
*
* // Combining several predicates using `_.overEvery` or `_.overSome`.
* _ . filter ( users , _ . overSome ( [ { 'age' : 36 } , [ 'age' , 40 ] ] ) ) ;
* // => objects for ['fred', 'barney']
* /
function filter ( collection , predicate ) {
var func = ( 0 , isArray /* default */ . Z ) ( collection ) ? _arrayFilter /* default */ . Z : _baseFilter ;
return func ( collection , ( 0 , _baseIteratee /* default */ . Z ) ( predicate , 3 ) ) ;
}
/* harmony default export */ const lodash _es _filter = ( filter ) ;
/***/ } ) ,
/***/ 27961 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ Z : ( ) => ( _ _WEBPACK _DEFAULT _EXPORT _ _ )
/* harmony export */ } ) ;
/* harmony import */ var _baseFlatten _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( 10626 ) ;
/ * *
* Flattens ` array ` a single level deep .
*
* @ static
* @ memberOf _
* @ since 0.1 . 0
* @ category Array
* @ param { Array } array The array to flatten .
* @ returns { Array } Returns the new flattened array .
* @ example
*
* _ . flatten ( [ 1 , [ 2 , [ 3 , [ 4 ] ] , 5 ] ] ) ;
* // => [1, 2, [3, [4]], 5]
* /
function flatten ( array ) {
var length = array == null ? 0 : array . length ;
return length ? ( 0 , _baseFlatten _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ /* ["default"] */ . Z ) ( array , 1 ) : [ ] ;
}
/* harmony default export */ const _ _WEBPACK _DEFAULT _EXPORT _ _ = ( flatten ) ;
/***/ } ) ,
/***/ 70870 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ Z : ( ) => ( _ _WEBPACK _DEFAULT _EXPORT _ _ )
/* harmony export */ } ) ;
/* harmony import */ var _arrayEach _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( 76579 ) ;
/* harmony import */ var _baseEach _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ = _ _webpack _require _ _ ( 49811 ) ;
/* harmony import */ var _castFunction _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ = _ _webpack _require _ _ ( 68882 ) ;
/* harmony import */ var _isArray _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( 27771 ) ;
/ * *
* Iterates over elements of ` collection ` and invokes ` iteratee ` for each element .
* The iteratee is invoked with three arguments : ( value , index | key , collection ) .
* Iteratee functions may exit iteration early by explicitly returning ` false ` .
*
* * * Note : * * As with other "Collections" methods , objects with a "length"
* property are iterated like arrays . To avoid this behavior use ` _.forIn `
* or ` _.forOwn ` for object iteration .
*
* @ static
* @ memberOf _
* @ since 0.1 . 0
* @ alias each
* @ category Collection
* @ param { Array | Object } collection The collection to iterate over .
* @ param { Function } [ iteratee = _ . identity ] The function invoked per iteration .
* @ returns { Array | Object } Returns ` collection ` .
* @ see _ . forEachRight
* @ example
*
* _ . forEach ( [ 1 , 2 ] , function ( value ) {
* console . log ( value ) ;
* } ) ;
* // => Logs `1` then `2`.
*
* _ . forEach ( { 'a' : 1 , 'b' : 2 } , function ( value , key ) {
* console . log ( key ) ;
* } ) ;
* // => Logs 'a' then 'b' (iteration order is not guaranteed).
* /
function forEach ( collection , iteratee ) {
var func = ( 0 , _isArray _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ /* ["default"] */ . Z ) ( collection ) ? _arrayEach _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ /* ["default"] */ . Z : _baseEach _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ /* ["default"] */ . Z ;
return func ( collection , ( 0 , _castFunction _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ /* ["default"] */ . Z ) ( iteratee ) ) ;
}
/* harmony default export */ const _ _WEBPACK _DEFAULT _EXPORT _ _ = ( forEach ) ;
/***/ } ) ,
/***/ 17452 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
// EXPORTS
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
Z : ( ) => ( /* binding */ lodash _es _has )
} ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_baseHas.js
/** Used for built-in method references. */
var objectProto = Object . prototype ;
/** Used to check objects for own properties. */
var _baseHas _hasOwnProperty = objectProto . hasOwnProperty ;
/ * *
* The base implementation of ` _.has ` without support for deep paths .
*
* @ private
* @ param { Object } [ object ] The object to query .
* @ param { Array | string } key The key to check .
* @ returns { boolean } Returns ` true ` if ` key ` exists , else ` false ` .
* /
function baseHas ( object , key ) {
return object != null && _baseHas _hasOwnProperty . call ( object , key ) ;
}
/* harmony default export */ const _baseHas = ( baseHas ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_hasPath.js
var _hasPath = _ _webpack _require _ _ ( 16174 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/has.js
/ * *
* Checks if ` path ` is a direct property of ` object ` .
*
* @ static
* @ since 0.1 . 0
* @ memberOf _
* @ category Object
* @ param { Object } object The object to query .
* @ param { Array | string } path The path to check .
* @ returns { boolean } Returns ` true ` if ` path ` exists , else ` false ` .
* @ example
*
* var object = { 'a' : { 'b' : 2 } } ;
* var other = _ . create ( { 'a' : _ . create ( { 'b' : 2 } ) } ) ;
*
* _ . has ( object , 'a' ) ;
* // => true
*
* _ . has ( object , 'a.b' ) ;
* // => true
*
* _ . has ( object , [ 'a' , 'b' ] ) ;
* // => true
*
* _ . has ( other , 'a' ) ;
* // => false
* /
function has ( object , path ) {
return object != null && ( 0 , _hasPath /* default */ . Z ) ( object , path , _baseHas ) ;
}
/* harmony default export */ const lodash _es _has = ( has ) ;
/***/ } ) ,
/***/ 75487 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
// EXPORTS
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
Z : ( ) => ( /* binding */ lodash _es _hasIn )
} ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_baseHasIn.js
/ * *
* The base implementation of ` _.hasIn ` without support for deep paths .
*
* @ private
* @ param { Object } [ object ] The object to query .
* @ param { Array | string } key The key to check .
* @ returns { boolean } Returns ` true ` if ` key ` exists , else ` false ` .
* /
function baseHasIn ( object , key ) {
return object != null && key in Object ( object ) ;
}
/* harmony default export */ const _baseHasIn = ( baseHasIn ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_hasPath.js
var _hasPath = _ _webpack _require _ _ ( 16174 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/hasIn.js
/ * *
* Checks if ` path ` is a direct or inherited property of ` object ` .
*
* @ static
* @ memberOf _
* @ since 4.0 . 0
* @ category Object
* @ param { Object } object The object to query .
* @ param { Array | string } path The path to check .
* @ returns { boolean } Returns ` true ` if ` path ` exists , else ` false ` .
* @ example
*
* var object = _ . create ( { 'a' : _ . create ( { 'b' : 2 } ) } ) ;
*
* _ . hasIn ( object , 'a' ) ;
* // => true
*
* _ . hasIn ( object , 'a.b' ) ;
* // => true
*
* _ . hasIn ( object , [ 'a' , 'b' ] ) ;
* // => true
*
* _ . hasIn ( object , 'b' ) ;
* // => false
* /
function hasIn ( object , path ) {
return object != null && ( 0 , _hasPath /* default */ . Z ) ( object , path , _baseHasIn ) ;
}
/* harmony default export */ const lodash _es _hasIn = ( hasIn ) ;
/***/ } ) ,
/***/ 72714 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ Z : ( ) => ( _ _WEBPACK _DEFAULT _EXPORT _ _ )
/* harmony export */ } ) ;
/* harmony import */ var _baseGetTag _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( 93589 ) ;
/* harmony import */ var _isObjectLike _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( 18533 ) ;
/** `Object#toString` result references. */
var symbolTag = '[object Symbol]' ;
/ * *
* Checks if ` value ` is classified as a ` Symbol ` primitive or object .
*
* @ static
* @ memberOf _
* @ since 4.0 . 0
* @ category Lang
* @ param { * } value The value to check .
* @ returns { boolean } Returns ` true ` if ` value ` is a symbol , else ` false ` .
* @ example
*
* _ . isSymbol ( Symbol . iterator ) ;
* // => true
*
* _ . isSymbol ( 'abc' ) ;
* // => false
* /
function isSymbol ( value ) {
return typeof value == 'symbol' ||
( ( 0 , _isObjectLike _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ /* ["default"] */ . Z ) ( value ) && ( 0 , _baseGetTag _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ /* ["default"] */ . Z ) ( value ) == symbolTag ) ;
}
/* harmony default export */ const _ _WEBPACK _DEFAULT _EXPORT _ _ = ( isSymbol ) ;
/***/ } ) ,
/***/ 49360 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ Z : ( ) => ( _ _WEBPACK _DEFAULT _EXPORT _ _ )
/* harmony export */ } ) ;
/ * *
* Checks if ` value ` is ` undefined ` .
*
* @ static
* @ since 0.1 . 0
* @ memberOf _
* @ category Lang
* @ param { * } value The value to check .
* @ returns { boolean } Returns ` true ` if ` value ` is ` undefined ` , else ` false ` .
* @ example
*
* _ . isUndefined ( void 0 ) ;
* // => true
*
* _ . isUndefined ( null ) ;
* // => false
* /
function isUndefined ( value ) {
return value === undefined ;
}
/* harmony default export */ const _ _WEBPACK _DEFAULT _EXPORT _ _ = ( isUndefined ) ;
/***/ } ) ,
/***/ 17179 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ Z : ( ) => ( _ _WEBPACK _DEFAULT _EXPORT _ _ )
/* harmony export */ } ) ;
/* harmony import */ var _arrayLikeKeys _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( 87668 ) ;
/* harmony import */ var _baseKeys _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ = _ _webpack _require _ _ ( 39473 ) ;
/* harmony import */ var _isArrayLike _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( 50585 ) ;
/ * *
* Creates an array of the own enumerable property names of ` object ` .
*
* * * Note : * * Non - object values are coerced to objects . See the
* [ ES spec ] ( http : //ecma-international.org/ecma-262/7.0/#sec-object.keys)
* for more details .
*
* @ static
* @ since 0.1 . 0
* @ memberOf _
* @ category Object
* @ param { Object } object The object to query .
* @ returns { Array } Returns the array of property names .
* @ example
*
* function Foo ( ) {
* this . a = 1 ;
* this . b = 2 ;
* }
*
* Foo . prototype . c = 3 ;
*
* _ . keys ( new Foo ) ;
* // => ['a', 'b'] (iteration order is not guaranteed)
*
* _ . keys ( 'hi' ) ;
* // => ['0', '1']
* /
function keys ( object ) {
return ( 0 , _isArrayLike _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ /* ["default"] */ . Z ) ( object ) ? ( 0 , _arrayLikeKeys _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ /* ["default"] */ . Z ) ( object ) : ( 0 , _baseKeys _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ /* ["default"] */ . Z ) ( object ) ;
}
/* harmony default export */ const _ _WEBPACK _DEFAULT _EXPORT _ _ = ( keys ) ;
/***/ } ) ,
/***/ 43836 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ Z : ( ) => ( _ _WEBPACK _DEFAULT _EXPORT _ _ )
/* harmony export */ } ) ;
2024-07-20 23:46:21 +02:00
/* harmony import */ var _arrayMap _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( 27679 ) ;
2023-11-24 16:55:55 +01:00
/* harmony import */ var _baseIteratee _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ = _ _webpack _require _ _ ( 74765 ) ;
/* harmony import */ var _baseMap _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ = _ _webpack _require _ _ ( 21018 ) ;
/* harmony import */ var _isArray _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( 27771 ) ;
/ * *
* Creates an array of values by running each element in ` collection ` thru
* ` iteratee ` . The iteratee is invoked with three arguments :
* ( value , index | key , collection ) .
*
* Many lodash methods are guarded to work as iteratees for methods like
* ` _.every ` , ` _.filter ` , ` _.map ` , ` _.mapValues ` , ` _.reject ` , and ` _.some ` .
*
* The guarded methods are :
* ` ary ` , ` chunk ` , ` curry ` , ` curryRight ` , ` drop ` , ` dropRight ` , ` every ` ,
* ` fill ` , ` invert ` , ` parseInt ` , ` random ` , ` range ` , ` rangeRight ` , ` repeat ` ,
* ` sampleSize ` , ` slice ` , ` some ` , ` sortBy ` , ` split ` , ` take ` , ` takeRight ` ,
* ` template ` , ` trim ` , ` trimEnd ` , ` trimStart ` , and ` words `
*
* @ static
* @ memberOf _
* @ since 0.1 . 0
* @ category Collection
* @ param { Array | Object } collection The collection to iterate over .
* @ param { Function } [ iteratee = _ . identity ] The function invoked per iteration .
* @ returns { Array } Returns the new mapped array .
* @ example
*
* function square ( n ) {
* return n * n ;
* }
*
* _ . map ( [ 4 , 8 ] , square ) ;
* // => [16, 64]
*
* _ . map ( { 'a' : 4 , 'b' : 8 } , square ) ;
* // => [16, 64] (iteration order is not guaranteed)
*
* var users = [
* { 'user' : 'barney' } ,
* { 'user' : 'fred' }
* ] ;
*
* // The `_.property` iteratee shorthand.
* _ . map ( users , 'user' ) ;
* // => ['barney', 'fred']
* /
function map ( collection , iteratee ) {
var func = ( 0 , _isArray _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ /* ["default"] */ . Z ) ( collection ) ? _arrayMap _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ /* ["default"] */ . Z : _baseMap _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ /* ["default"] */ . Z ;
return func ( collection , ( 0 , _baseIteratee _js _ _WEBPACK _IMPORTED _MODULE _3 _ _ /* ["default"] */ . Z ) ( iteratee , 3 ) ) ;
}
/* harmony default export */ const _ _WEBPACK _DEFAULT _EXPORT _ _ = ( map ) ;
/***/ } ) ,
/***/ 61666 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
// EXPORTS
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
Z : ( ) => ( /* binding */ lodash _es _pick )
} ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_baseGet.js
var _baseGet = _ _webpack _require _ _ ( 13317 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_assignValue.js
var _assignValue = _ _webpack _require _ _ ( 72954 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_castPath.js + 2 modules
var _castPath = _ _webpack _require _ _ ( 22823 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_isIndex.js
var _isIndex = _ _webpack _require _ _ ( 56009 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/isObject.js
var isObject = _ _webpack _require _ _ ( 77226 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_toKey.js
var _toKey = _ _webpack _require _ _ ( 62281 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_baseSet.js
/ * *
* The base implementation of ` _.set ` .
*
* @ private
* @ param { Object } object The object to modify .
* @ param { Array | string } path The path of the property to set .
* @ param { * } value The value to set .
* @ param { Function } [ customizer ] The function to customize path creation .
* @ returns { Object } Returns ` object ` .
* /
function baseSet ( object , path , value , customizer ) {
if ( ! ( 0 , isObject /* default */ . Z ) ( object ) ) {
return object ;
}
path = ( 0 , _castPath /* default */ . Z ) ( path , object ) ;
var index = - 1 ,
length = path . length ,
lastIndex = length - 1 ,
nested = object ;
while ( nested != null && ++ index < length ) {
var key = ( 0 , _toKey /* default */ . Z ) ( path [ index ] ) ,
newValue = value ;
if ( key === '__proto__' || key === 'constructor' || key === 'prototype' ) {
return object ;
}
if ( index != lastIndex ) {
var objValue = nested [ key ] ;
newValue = customizer ? customizer ( objValue , key , nested ) : undefined ;
if ( newValue === undefined ) {
newValue = ( 0 , isObject /* default */ . Z ) ( objValue )
? objValue
: ( ( 0 , _isIndex /* default */ . Z ) ( path [ index + 1 ] ) ? [ ] : { } ) ;
}
}
( 0 , _assignValue /* default */ . Z ) ( nested , key , newValue ) ;
nested = nested [ key ] ;
}
return object ;
}
/* harmony default export */ const _baseSet = ( baseSet ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_basePickBy.js
/ * *
* The base implementation of ` _.pickBy ` without support for iteratee shorthands .
*
* @ private
* @ param { Object } object The source object .
* @ param { string [ ] } paths The property paths to pick .
* @ param { Function } predicate The function invoked per property .
* @ returns { Object } Returns the new object .
* /
function basePickBy ( object , paths , predicate ) {
var index = - 1 ,
length = paths . length ,
result = { } ;
while ( ++ index < length ) {
var path = paths [ index ] ,
value = ( 0 , _baseGet /* default */ . Z ) ( object , path ) ;
if ( predicate ( value , path ) ) {
_baseSet ( result , ( 0 , _castPath /* default */ . Z ) ( path , object ) , value ) ;
}
}
return result ;
}
/* harmony default export */ const _basePickBy = ( basePickBy ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/hasIn.js + 1 modules
var hasIn = _ _webpack _require _ _ ( 75487 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_basePick.js
/ * *
* The base implementation of ` _.pick ` without support for individual
* property identifiers .
*
* @ private
* @ param { Object } object The source object .
* @ param { string [ ] } paths The property paths to pick .
* @ returns { Object } Returns the new object .
* /
function basePick ( object , paths ) {
return _basePickBy ( object , paths , function ( value , path ) {
return ( 0 , hasIn /* default */ . Z ) ( object , path ) ;
} ) ;
}
/* harmony default export */ const _basePick = ( basePick ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/flatten.js
var flatten = _ _webpack _require _ _ ( 27961 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_overRest.js + 1 modules
var _overRest = _ _webpack _require _ _ ( 81211 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_setToString.js + 2 modules
var _setToString = _ _webpack _require _ _ ( 27227 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_flatRest.js
/ * *
* A specialized version of ` baseRest ` which flattens the rest array .
*
* @ private
* @ param { Function } func The function to apply a rest parameter to .
* @ returns { Function } Returns the new function .
* /
function flatRest ( func ) {
return ( 0 , _setToString /* default */ . Z ) ( ( 0 , _overRest /* default */ . Z ) ( func , undefined , flatten /* default */ . Z ) , func + '' ) ;
}
/* harmony default export */ const _flatRest = ( flatRest ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/pick.js
/ * *
* Creates an object composed of the picked ` object ` properties .
*
* @ static
* @ since 0.1 . 0
* @ memberOf _
* @ category Object
* @ param { Object } object The source object .
* @ param { ... ( string | string [ ] ) } [ paths ] The property paths to pick .
* @ returns { Object } Returns the new object .
* @ example
*
* var object = { 'a' : 1 , 'b' : '2' , 'c' : 3 } ;
*
* _ . pick ( object , [ 'a' , 'c' ] ) ;
* // => { 'a': 1, 'c': 3 }
* /
var pick = _flatRest ( function ( object , paths ) {
return object == null ? { } : _basePick ( object , paths ) ;
} ) ;
/* harmony default export */ const lodash _es _pick = ( pick ) ;
/***/ } ) ,
/***/ 74379 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
// EXPORTS
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
Z : ( ) => ( /* binding */ lodash _es _range )
} ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_baseRange.js
/* Built-in method references for those with the same name as other `lodash` methods. */
var nativeCeil = Math . ceil ,
nativeMax = Math . max ;
/ * *
* The base implementation of ` _.range ` and ` _.rangeRight ` which doesn ' t
* coerce arguments .
*
* @ private
* @ param { number } start The start of the range .
* @ param { number } end The end of the range .
* @ param { number } step The value to increment or decrement by .
* @ param { boolean } [ fromRight ] Specify iterating from right to left .
* @ returns { Array } Returns the range of numbers .
* /
function baseRange ( start , end , step , fromRight ) {
var index = - 1 ,
length = nativeMax ( nativeCeil ( ( end - start ) / ( step || 1 ) ) , 0 ) ,
result = Array ( length ) ;
while ( length -- ) {
result [ fromRight ? length : ++ index ] = start ;
start += step ;
}
return result ;
}
/* harmony default export */ const _baseRange = ( baseRange ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_isIterateeCall.js
var _isIterateeCall = _ _webpack _require _ _ ( 50439 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/toFinite.js + 3 modules
var toFinite = _ _webpack _require _ _ ( 94099 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_createRange.js
/ * *
* Creates a ` _.range ` or ` _.rangeRight ` function .
*
* @ private
* @ param { boolean } [ fromRight ] Specify iterating from right to left .
* @ returns { Function } Returns the new range function .
* /
function createRange ( fromRight ) {
return function ( start , end , step ) {
if ( step && typeof step != 'number' && ( 0 , _isIterateeCall /* default */ . Z ) ( start , end , step ) ) {
end = step = undefined ;
}
// Ensure the sign of `-0` is preserved.
start = ( 0 , toFinite /* default */ . Z ) ( start ) ;
if ( end === undefined ) {
end = start ;
start = 0 ;
} else {
end = ( 0 , toFinite /* default */ . Z ) ( end ) ;
}
step = step === undefined ? ( start < end ? 1 : - 1 ) : ( 0 , toFinite /* default */ . Z ) ( step ) ;
return _baseRange ( start , end , step , fromRight ) ;
} ;
}
/* harmony default export */ const _createRange = ( createRange ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/range.js
/ * *
* Creates an array of numbers ( positive and / or negative ) progressing from
* ` start ` up to , but not including , ` end ` . A step of ` -1 ` is used if a negative
* ` start ` is specified without an ` end ` or ` step ` . If ` end ` is not specified ,
* it ' s set to ` start ` with ` start ` then set to ` 0 ` .
*
* * * Note : * * JavaScript follows the IEEE - 754 standard for resolving
* floating - point values which can produce unexpected results .
*
* @ static
* @ since 0.1 . 0
* @ memberOf _
* @ category Util
* @ param { number } [ start = 0 ] The start of the range .
* @ param { number } end The end of the range .
* @ param { number } [ step = 1 ] The value to increment or decrement by .
* @ returns { Array } Returns the range of numbers .
* @ see _ . inRange , _ . rangeRight
* @ example
*
* _ . range ( 4 ) ;
* // => [0, 1, 2, 3]
*
* _ . range ( - 4 ) ;
* // => [0, -1, -2, -3]
*
* _ . range ( 1 , 5 ) ;
* // => [1, 2, 3, 4]
*
* _ . range ( 0 , 20 , 5 ) ;
* // => [0, 5, 10, 15]
*
* _ . range ( 0 , - 4 , - 1 ) ;
* // => [0, -1, -2, -3]
*
* _ . range ( 1 , 4 , 0 ) ;
* // => [1, 1, 1]
*
* _ . range ( 0 ) ;
* // => []
* /
var range = _createRange ( ) ;
/* harmony default export */ const lodash _es _range = ( range ) ;
/***/ } ) ,
/***/ 92344 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
// EXPORTS
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
Z : ( ) => ( /* binding */ lodash _es _reduce )
} ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_arrayReduce.js
/ * *
* A specialized version of ` _.reduce ` for arrays without support for
* iteratee shorthands .
*
* @ private
* @ param { Array } [ array ] The array to iterate over .
* @ param { Function } iteratee The function invoked per iteration .
* @ param { * } [ accumulator ] The initial value .
* @ param { boolean } [ initAccum ] Specify using the first element of ` array ` as
* the initial value .
* @ returns { * } Returns the accumulated value .
* /
function arrayReduce ( array , iteratee , accumulator , initAccum ) {
var index = - 1 ,
length = array == null ? 0 : array . length ;
if ( initAccum && length ) {
accumulator = array [ ++ index ] ;
}
while ( ++ index < length ) {
accumulator = iteratee ( accumulator , array [ index ] , index , array ) ;
}
return accumulator ;
}
/* harmony default export */ const _arrayReduce = ( arrayReduce ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_baseEach.js + 1 modules
var _baseEach = _ _webpack _require _ _ ( 49811 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_baseIteratee.js + 16 modules
var _baseIteratee = _ _webpack _require _ _ ( 74765 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_baseReduce.js
/ * *
* The base implementation of ` _.reduce ` and ` _.reduceRight ` , without support
* for iteratee shorthands , which iterates over ` collection ` using ` eachFunc ` .
*
* @ private
* @ param { Array | Object } collection The collection to iterate over .
* @ param { Function } iteratee The function invoked per iteration .
* @ param { * } accumulator The initial value .
* @ param { boolean } initAccum Specify using the first or last element of
* ` collection ` as the initial value .
* @ param { Function } eachFunc The function to iterate over ` collection ` .
* @ returns { * } Returns the accumulated value .
* /
function baseReduce ( collection , iteratee , accumulator , initAccum , eachFunc ) {
eachFunc ( collection , function ( value , index , collection ) {
accumulator = initAccum
? ( initAccum = false , value )
: iteratee ( accumulator , value , index , collection ) ;
} ) ;
return accumulator ;
}
/* harmony default export */ const _baseReduce = ( baseReduce ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/isArray.js
var isArray = _ _webpack _require _ _ ( 27771 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/reduce.js
/ * *
* Reduces ` collection ` to a value which is the accumulated result of running
* each element in ` collection ` thru ` iteratee ` , where each successive
* invocation is supplied the return value of the previous . If ` accumulator `
* is not given , the first element of ` collection ` is used as the initial
* value . The iteratee is invoked with four arguments :
* ( accumulator , value , index | key , collection ) .
*
* Many lodash methods are guarded to work as iteratees for methods like
* ` _.reduce ` , ` _.reduceRight ` , and ` _.transform ` .
*
* The guarded methods are :
* ` assign ` , ` defaults ` , ` defaultsDeep ` , ` includes ` , ` merge ` , ` orderBy ` ,
* and ` sortBy `
*
* @ static
* @ memberOf _
* @ since 0.1 . 0
* @ category Collection
* @ param { Array | Object } collection The collection to iterate over .
* @ param { Function } [ iteratee = _ . identity ] The function invoked per iteration .
* @ param { * } [ accumulator ] The initial value .
* @ returns { * } Returns the accumulated value .
* @ see _ . reduceRight
* @ example
*
* _ . reduce ( [ 1 , 2 ] , function ( sum , n ) {
* return sum + n ;
* } , 0 ) ;
* // => 3
*
* _ . reduce ( { 'a' : 1 , 'b' : 2 , 'c' : 1 } , function ( result , value , key ) {
* ( result [ value ] || ( result [ value ] = [ ] ) ) . push ( key ) ;
* return result ;
* } , { } ) ;
* // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)
* /
function reduce ( collection , iteratee , accumulator ) {
var func = ( 0 , isArray /* default */ . Z ) ( collection ) ? _arrayReduce : _baseReduce ,
initAccum = arguments . length < 3 ;
return func ( collection , ( 0 , _baseIteratee /* default */ . Z ) ( iteratee , 4 ) , accumulator , initAccum , _baseEach /* default */ . Z ) ;
}
/* harmony default export */ const lodash _es _reduce = ( reduce ) ;
/***/ } ) ,
/***/ 60532 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ Z : ( ) => ( _ _WEBPACK _DEFAULT _EXPORT _ _ )
/* harmony export */ } ) ;
/ * *
* This method returns a new empty array .
*
* @ static
* @ memberOf _
* @ since 4.13 . 0
* @ category Util
* @ returns { Array } Returns the new empty array .
* @ example
*
* var arrays = _ . times ( 2 , _ . stubArray ) ;
*
* console . log ( arrays ) ;
* // => [[], []]
*
* console . log ( arrays [ 0 ] === arrays [ 1 ] ) ;
* // => false
* /
function stubArray ( ) {
return [ ] ;
}
/* harmony default export */ const _ _WEBPACK _DEFAULT _EXPORT _ _ = ( stubArray ) ;
/***/ } ) ,
/***/ 94099 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
// EXPORTS
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
Z : ( ) => ( /* binding */ lodash _es _toFinite )
} ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_trimmedEndIndex.js
/** Used to match a single whitespace character. */
var reWhitespace = /\s/ ;
/ * *
* Used by ` _.trim ` and ` _.trimEnd ` to get the index of the last non - whitespace
* character of ` string ` .
*
* @ private
* @ param { string } string The string to inspect .
* @ returns { number } Returns the index of the last non - whitespace character .
* /
function trimmedEndIndex ( string ) {
var index = string . length ;
while ( index -- && reWhitespace . test ( string . charAt ( index ) ) ) { }
return index ;
}
/* harmony default export */ const _trimmedEndIndex = ( trimmedEndIndex ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_baseTrim.js
/** Used to match leading whitespace. */
var reTrimStart = /^\s+/ ;
/ * *
* The base implementation of ` _.trim ` .
*
* @ private
* @ param { string } string The string to trim .
* @ returns { string } Returns the trimmed string .
* /
function baseTrim ( string ) {
return string
? string . slice ( 0 , _trimmedEndIndex ( string ) + 1 ) . replace ( reTrimStart , '' )
: string ;
}
/* harmony default export */ const _baseTrim = ( baseTrim ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/isObject.js
var isObject = _ _webpack _require _ _ ( 77226 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/isSymbol.js
var isSymbol = _ _webpack _require _ _ ( 72714 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/toNumber.js
/** Used as references for various `Number` constants. */
var NAN = 0 / 0 ;
/** Used to detect bad signed hexadecimal string values. */
var reIsBadHex = /^[-+]0x[0-9a-f]+$/i ;
/** Used to detect binary string values. */
var reIsBinary = /^0b[01]+$/i ;
/** Used to detect octal string values. */
var reIsOctal = /^0o[0-7]+$/i ;
/** Built-in method references without a dependency on `root`. */
var freeParseInt = parseInt ;
/ * *
* Converts ` value ` to a number .
*
* @ static
* @ memberOf _
* @ since 4.0 . 0
* @ category Lang
* @ param { * } value The value to process .
* @ returns { number } Returns the number .
* @ example
*
* _ . toNumber ( 3.2 ) ;
* // => 3.2
*
* _ . toNumber ( Number . MIN _VALUE ) ;
* // => 5e-324
*
* _ . toNumber ( Infinity ) ;
* // => Infinity
*
* _ . toNumber ( '3.2' ) ;
* // => 3.2
* /
function toNumber ( value ) {
if ( typeof value == 'number' ) {
return value ;
}
if ( ( 0 , isSymbol /* default */ . Z ) ( value ) ) {
return NAN ;
}
if ( ( 0 , isObject /* default */ . Z ) ( value ) ) {
var other = typeof value . valueOf == 'function' ? value . valueOf ( ) : value ;
value = ( 0 , isObject /* default */ . Z ) ( other ) ? ( other + '' ) : other ;
}
if ( typeof value != 'string' ) {
return value === 0 ? value : + value ;
}
value = _baseTrim ( value ) ;
var isBinary = reIsBinary . test ( value ) ;
return ( isBinary || reIsOctal . test ( value ) )
? freeParseInt ( value . slice ( 2 ) , isBinary ? 2 : 8 )
: ( reIsBadHex . test ( value ) ? NAN : + value ) ;
}
/* harmony default export */ const lodash _es _toNumber = ( toNumber ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/toFinite.js
/** Used as references for various `Number` constants. */
var INFINITY = 1 / 0 ,
MAX _INTEGER = 1.7976931348623157 e + 308 ;
/ * *
* Converts ` value ` to a finite number .
*
* @ static
* @ memberOf _
* @ since 4.12 . 0
* @ category Lang
* @ param { * } value The value to convert .
* @ returns { number } Returns the converted number .
* @ example
*
* _ . toFinite ( 3.2 ) ;
* // => 3.2
*
* _ . toFinite ( Number . MIN _VALUE ) ;
* // => 5e-324
*
* _ . toFinite ( Infinity ) ;
* // => 1.7976931348623157e+308
*
* _ . toFinite ( '3.2' ) ;
* // => 3.2
* /
function toFinite ( value ) {
if ( ! value ) {
return value === 0 ? value : 0 ;
}
value = lodash _es _toNumber ( value ) ;
if ( value === INFINITY || value === - INFINITY ) {
var sign = ( value < 0 ? - 1 : 1 ) ;
return sign * MAX _INTEGER ;
}
return value === value ? value : 0 ;
}
/* harmony default export */ const lodash _es _toFinite = ( toFinite ) ;
/***/ } ) ,
/***/ 50751 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
// EXPORTS
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
Z : ( ) => ( /* binding */ lodash _es _toString )
} ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_Symbol.js
var _Symbol = _ _webpack _require _ _ ( 17685 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_arrayMap.js
2024-07-20 23:46:21 +02:00
var _arrayMap = _ _webpack _require _ _ ( 27679 ) ;
2023-11-24 16:55:55 +01:00
// EXTERNAL MODULE: ./node_modules/lodash-es/isArray.js
var isArray = _ _webpack _require _ _ ( 27771 ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/isSymbol.js
var isSymbol = _ _webpack _require _ _ ( 72714 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/_baseToString.js
/** Used as references for various `Number` constants. */
var INFINITY = 1 / 0 ;
/** Used to convert symbols to primitives and strings. */
var symbolProto = _Symbol /* default */ . Z ? _Symbol /* default */ . Z . prototype : undefined ,
symbolToString = symbolProto ? symbolProto . toString : undefined ;
/ * *
* The base implementation of ` _.toString ` which doesn ' t convert nullish
* values to empty strings .
*
* @ private
* @ param { * } value The value to process .
* @ returns { string } Returns the string .
* /
function baseToString ( value ) {
// Exit early for strings to avoid a performance hit in some environments.
if ( typeof value == 'string' ) {
return value ;
}
if ( ( 0 , isArray /* default */ . Z ) ( value ) ) {
// Recursively convert values (susceptible to call stack limits).
return ( 0 , _arrayMap /* default */ . Z ) ( value , baseToString ) + '' ;
}
if ( ( 0 , isSymbol /* default */ . Z ) ( value ) ) {
return symbolToString ? symbolToString . call ( value ) : '' ;
}
var result = ( value + '' ) ;
return ( result == '0' && ( 1 / value ) == - INFINITY ) ? '-0' : result ;
}
/* harmony default export */ const _baseToString = ( baseToString ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/toString.js
/ * *
* Converts ` value ` to a string . An empty string is returned for ` null `
* and ` undefined ` values . The sign of ` -0 ` is preserved .
*
* @ static
* @ memberOf _
* @ since 4.0 . 0
* @ category Lang
* @ param { * } value The value to convert .
* @ returns { string } Returns the converted string .
* @ example
*
* _ . toString ( null ) ;
* // => ''
*
* _ . toString ( - 0 ) ;
* // => '-0'
*
* _ . toString ( [ 1 , 2 , 3 ] ) ;
* // => '1,2,3'
* /
function toString _toString ( value ) {
return value == null ? '' : _baseToString ( value ) ;
}
/* harmony default export */ const lodash _es _toString = ( toString _toString ) ;
/***/ } ) ,
/***/ 66749 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ Z : ( ) => ( _ _WEBPACK _DEFAULT _EXPORT _ _ )
/* harmony export */ } ) ;
/* harmony import */ var _toString _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( 50751 ) ;
/** Used to generate unique IDs. */
var idCounter = 0 ;
/ * *
* Generates a unique ID . If ` prefix ` is given , the ID is appended to it .
*
* @ static
* @ since 0.1 . 0
* @ memberOf _
* @ category Util
* @ param { string } [ prefix = '' ] The value to prefix the ID with .
* @ returns { string } Returns the unique ID .
* @ example
*
* _ . uniqueId ( 'contact_' ) ;
* // => 'contact_104'
*
* _ . uniqueId ( ) ;
* // => '105'
* /
function uniqueId ( prefix ) {
var id = ++ idCounter ;
return ( 0 , _toString _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ /* ["default"] */ . Z ) ( prefix ) + id ;
}
/* harmony default export */ const _ _WEBPACK _DEFAULT _EXPORT _ _ = ( uniqueId ) ;
/***/ } ) ,
/***/ 34148 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
// EXPORTS
_ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
Z : ( ) => ( /* binding */ lodash _es _values )
} ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/_arrayMap.js
2024-07-20 23:46:21 +02:00
var _arrayMap = _ _webpack _require _ _ ( 27679 ) ;
2023-11-24 16:55:55 +01:00
; // CONCATENATED MODULE: ./node_modules/lodash-es/_baseValues.js
/ * *
* The base implementation of ` _.values ` and ` _.valuesIn ` which creates an
* array of ` object ` property values corresponding to the property names
* of ` props ` .
*
* @ private
* @ param { Object } object The object to query .
* @ param { Array } props The property names to get values for .
* @ returns { Object } Returns the array of property values .
* /
function baseValues ( object , props ) {
return ( 0 , _arrayMap /* default */ . Z ) ( props , function ( key ) {
return object [ key ] ;
} ) ;
}
/* harmony default export */ const _baseValues = ( baseValues ) ;
// EXTERNAL MODULE: ./node_modules/lodash-es/keys.js
var keys = _ _webpack _require _ _ ( 17179 ) ;
; // CONCATENATED MODULE: ./node_modules/lodash-es/values.js
/ * *
* Creates an array of the own enumerable string keyed property values of ` object ` .
*
* * * Note : * * Non - object values are coerced to objects .
*
* @ static
* @ since 0.1 . 0
* @ memberOf _
* @ category Object
* @ param { Object } object The object to query .
* @ returns { Array } Returns the array of property values .
* @ example
*
* function Foo ( ) {
* this . a = 1 ;
* this . b = 2 ;
* }
*
* Foo . prototype . c = 3 ;
*
* _ . values ( new Foo ) ;
* // => [1, 2] (iteration order is not guaranteed)
*
* _ . values ( 'hi' ) ;
* // => ['h', 'i']
* /
function values ( object ) {
return object == null ? [ ] : _baseValues ( object , ( 0 , keys /* default */ . Z ) ( object ) ) ;
}
/* harmony default export */ const lodash _es _values = ( values ) ;
/***/ } ) ,
/***/ 72696 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ diagram : ( ) => ( /* binding */ diagram )
/* harmony export */ } ) ;
/* harmony import */ var _styles _bbc3fe3b _js _ _WEBPACK _IMPORTED _MODULE _7 _ _ = _ _webpack _require _ _ ( 41504 ) ;
/* harmony import */ var d3 _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( 64218 ) ;
/* harmony import */ var dagre _d3 _es _src _dagre _index _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ = _ _webpack _require _ _ ( 41644 ) ;
/* harmony import */ var dagre _d3 _es _src _graphlib _index _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ = _ _webpack _require _ _ ( 45625 ) ;
/* harmony import */ var _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ = _ _webpack _require _ _ ( 85322 ) ;
/* harmony import */ var dayjs _ _WEBPACK _IMPORTED _MODULE _3 _ _ = _ _webpack _require _ _ ( 27484 ) ;
/* harmony import */ var _braintree _sanitize _url _ _WEBPACK _IMPORTED _MODULE _4 _ _ = _ _webpack _require _ _ ( 17967 ) ;
/* harmony import */ var dompurify _ _WEBPACK _IMPORTED _MODULE _5 _ _ = _ _webpack _require _ _ ( 20683 ) ;
const idCache = { } ;
const set = ( key , val ) => {
idCache [ key ] = val ;
} ;
const get = ( k ) => idCache [ k ] ;
const keys = ( ) => Object . keys ( idCache ) ;
const size = ( ) => keys ( ) . length ;
const idCache$1 = {
get ,
set ,
keys ,
size
} ;
const drawStartState = ( g ) => g . append ( "circle" ) . attr ( "class" , "start-state" ) . attr ( "r" , ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . sizeUnit ) . attr ( "cx" , ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . padding + ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . sizeUnit ) . attr ( "cy" , ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . padding + ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . sizeUnit ) ;
const drawDivider = ( g ) => g . append ( "line" ) . style ( "stroke" , "grey" ) . style ( "stroke-dasharray" , "3" ) . attr ( "x1" , ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . textHeight ) . attr ( "class" , "divider" ) . attr ( "x2" , ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . textHeight * 2 ) . attr ( "y1" , 0 ) . attr ( "y2" , 0 ) ;
const drawSimpleState = ( g , stateDef ) => {
const state = g . append ( "text" ) . attr ( "x" , 2 * ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . padding ) . attr ( "y" , ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . textHeight + 2 * ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . padding ) . attr ( "font-size" , ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . fontSize ) . attr ( "class" , "state-title" ) . text ( stateDef . id ) ;
const classBox = state . node ( ) . getBBox ( ) ;
g . insert ( "rect" , ":first-child" ) . attr ( "x" , ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . padding ) . attr ( "y" , ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . padding ) . attr ( "width" , classBox . width + 2 * ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . padding ) . attr ( "height" , classBox . height + 2 * ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . padding ) . attr ( "rx" , ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . radius ) ;
return state ;
} ;
const drawDescrState = ( g , stateDef ) => {
const addTspan = function ( textEl , txt , isFirst2 ) {
const tSpan = textEl . append ( "tspan" ) . attr ( "x" , 2 * ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . padding ) . text ( txt ) ;
if ( ! isFirst2 ) {
tSpan . attr ( "dy" , ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . textHeight ) ;
}
} ;
const title = g . append ( "text" ) . attr ( "x" , 2 * ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . padding ) . attr ( "y" , ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . textHeight + 1.3 * ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . padding ) . attr ( "font-size" , ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . fontSize ) . attr ( "class" , "state-title" ) . text ( stateDef . descriptions [ 0 ] ) ;
const titleBox = title . node ( ) . getBBox ( ) ;
const titleHeight = titleBox . height ;
const description = g . append ( "text" ) . attr ( "x" , ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . padding ) . attr (
"y" ,
titleHeight + ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . padding * 0.4 + ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . dividerMargin + ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . textHeight
) . attr ( "class" , "state-description" ) ;
let isFirst = true ;
let isSecond = true ;
stateDef . descriptions . forEach ( function ( descr ) {
if ( ! isFirst ) {
addTspan ( description , descr , isSecond ) ;
isSecond = false ;
}
isFirst = false ;
} ) ;
const descrLine = g . append ( "line" ) . attr ( "x1" , ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . padding ) . attr ( "y1" , ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . padding + titleHeight + ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . dividerMargin / 2 ) . attr ( "y2" , ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . padding + titleHeight + ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . dividerMargin / 2 ) . attr ( "class" , "descr-divider" ) ;
const descrBox = description . node ( ) . getBBox ( ) ;
const width = Math . max ( descrBox . width , titleBox . width ) ;
descrLine . attr ( "x2" , width + 3 * ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . padding ) ;
g . insert ( "rect" , ":first-child" ) . attr ( "x" , ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . padding ) . attr ( "y" , ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . padding ) . attr ( "width" , width + 2 * ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . padding ) . attr ( "height" , descrBox . height + titleHeight + 2 * ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . padding ) . attr ( "rx" , ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . radius ) ;
return g ;
} ;
const addTitleAndBox = ( g , stateDef , altBkg ) => {
const pad = ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . padding ;
const dblPad = 2 * ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . padding ;
const orgBox = g . node ( ) . getBBox ( ) ;
const orgWidth = orgBox . width ;
const orgX = orgBox . x ;
const title = g . append ( "text" ) . attr ( "x" , 0 ) . attr ( "y" , ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . titleShift ) . attr ( "font-size" , ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . fontSize ) . attr ( "class" , "state-title" ) . text ( stateDef . id ) ;
const titleBox = title . node ( ) . getBBox ( ) ;
const titleWidth = titleBox . width + dblPad ;
let width = Math . max ( titleWidth , orgWidth ) ;
if ( width === orgWidth ) {
width = width + dblPad ;
}
let startX ;
const graphBox = g . node ( ) . getBBox ( ) ;
if ( stateDef . doc )
;
startX = orgX - pad ;
if ( titleWidth > orgWidth ) {
startX = ( orgWidth - width ) / 2 + pad ;
}
if ( Math . abs ( orgX - graphBox . x ) < pad && titleWidth > orgWidth ) {
startX = orgX - ( titleWidth - orgWidth ) / 2 ;
}
const lineY = 1 - ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . textHeight ;
g . insert ( "rect" , ":first-child" ) . attr ( "x" , startX ) . attr ( "y" , lineY ) . attr ( "class" , altBkg ? "alt-composit" : "composit" ) . attr ( "width" , width ) . attr (
"height" ,
graphBox . height + ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . textHeight + ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . titleShift + 1
) . attr ( "rx" , "0" ) ;
title . attr ( "x" , startX + pad ) ;
if ( titleWidth <= orgWidth ) {
title . attr ( "x" , orgX + ( width - dblPad ) / 2 - titleWidth / 2 + pad ) ;
}
g . insert ( "rect" , ":first-child" ) . attr ( "x" , startX ) . attr (
"y" ,
( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . titleShift - ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . textHeight - ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . padding
) . attr ( "width" , width ) . attr ( "height" , ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . textHeight * 3 ) . attr ( "rx" , ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . radius ) ;
g . insert ( "rect" , ":first-child" ) . attr ( "x" , startX ) . attr (
"y" ,
( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . titleShift - ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . textHeight - ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . padding
) . attr ( "width" , width ) . attr ( "height" , graphBox . height + 3 + 2 * ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . textHeight ) . attr ( "rx" , ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . radius ) ;
return g ;
} ;
const drawEndState = ( g ) => {
g . append ( "circle" ) . attr ( "class" , "end-state-outer" ) . attr ( "r" , ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . sizeUnit + ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . miniPadding ) . attr (
"cx" ,
( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . padding + ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . sizeUnit + ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . miniPadding
) . attr (
"cy" ,
( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . padding + ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . sizeUnit + ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . miniPadding
) ;
return g . append ( "circle" ) . attr ( "class" , "end-state-inner" ) . attr ( "r" , ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . sizeUnit ) . attr ( "cx" , ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . padding + ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . sizeUnit + 2 ) . attr ( "cy" , ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . padding + ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . sizeUnit + 2 ) ;
} ;
const drawForkJoinState = ( g , stateDef ) => {
let width = ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . forkWidth ;
let height = ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . forkHeight ;
if ( stateDef . parentId ) {
let tmp = width ;
width = height ;
height = tmp ;
}
return g . append ( "rect" ) . style ( "stroke" , "black" ) . style ( "fill" , "black" ) . attr ( "width" , width ) . attr ( "height" , height ) . attr ( "x" , ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . padding ) . attr ( "y" , ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . padding ) ;
} ;
const _drawLongText = ( _text , x , y , g ) => {
let textHeight = 0 ;
const textElem = g . append ( "text" ) ;
textElem . style ( "text-anchor" , "start" ) ;
textElem . attr ( "class" , "noteText" ) ;
let text = _text . replace ( /\r\n/g , "<br/>" ) ;
text = text . replace ( /\n/g , "<br/>" ) ;
const lines = text . split ( _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . e . lineBreakRegex ) ;
let tHeight = 1.25 * ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . noteMargin ;
for ( const line2 of lines ) {
const txt = line2 . trim ( ) ;
if ( txt . length > 0 ) {
const span = textElem . append ( "tspan" ) ;
span . text ( txt ) ;
if ( tHeight === 0 ) {
const textBounds = span . node ( ) . getBBox ( ) ;
tHeight += textBounds . height ;
}
textHeight += tHeight ;
span . attr ( "x" , x + ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . noteMargin ) ;
span . attr ( "y" , y + textHeight + 1.25 * ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . noteMargin ) ;
}
}
return { textWidth : textElem . node ( ) . getBBox ( ) . width , textHeight } ;
} ;
const drawNote = ( text , g ) => {
g . attr ( "class" , "state-note" ) ;
const note = g . append ( "rect" ) . attr ( "x" , 0 ) . attr ( "y" , ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . padding ) ;
const rectElem = g . append ( "g" ) ;
const { textWidth , textHeight } = _drawLongText ( text , 0 , 0 , rectElem ) ;
note . attr ( "height" , textHeight + 2 * ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . noteMargin ) ;
note . attr ( "width" , textWidth + ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . noteMargin * 2 ) ;
return note ;
} ;
const drawState = function ( elem , stateDef ) {
const id = stateDef . id ;
const stateInfo = {
id ,
label : stateDef . id ,
width : 0 ,
height : 0
} ;
const g = elem . append ( "g" ) . attr ( "id" , id ) . attr ( "class" , "stateGroup" ) ;
if ( stateDef . type === "start" ) {
drawStartState ( g ) ;
}
if ( stateDef . type === "end" ) {
drawEndState ( g ) ;
}
if ( stateDef . type === "fork" || stateDef . type === "join" ) {
drawForkJoinState ( g , stateDef ) ;
}
if ( stateDef . type === "note" ) {
drawNote ( stateDef . note . text , g ) ;
}
if ( stateDef . type === "divider" ) {
drawDivider ( g ) ;
}
if ( stateDef . type === "default" && stateDef . descriptions . length === 0 ) {
drawSimpleState ( g , stateDef ) ;
}
if ( stateDef . type === "default" && stateDef . descriptions . length > 0 ) {
drawDescrState ( g , stateDef ) ;
}
const stateBox = g . node ( ) . getBBox ( ) ;
stateInfo . width = stateBox . width + 2 * ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . padding ;
stateInfo . height = stateBox . height + 2 * ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . padding ;
idCache$1 . set ( id , stateInfo ) ;
return stateInfo ;
} ;
let edgeCount = 0 ;
const drawEdge = function ( elem , path , relation ) {
const getRelationType = function ( type ) {
switch ( type ) {
case _styles _bbc3fe3b _js _ _WEBPACK _IMPORTED _MODULE _7 _ _ . d . relationType . AGGREGATION :
return "aggregation" ;
case _styles _bbc3fe3b _js _ _WEBPACK _IMPORTED _MODULE _7 _ _ . d . relationType . EXTENSION :
return "extension" ;
case _styles _bbc3fe3b _js _ _WEBPACK _IMPORTED _MODULE _7 _ _ . d . relationType . COMPOSITION :
return "composition" ;
case _styles _bbc3fe3b _js _ _WEBPACK _IMPORTED _MODULE _7 _ _ . d . relationType . DEPENDENCY :
return "dependency" ;
}
} ;
path . points = path . points . filter ( ( p ) => ! Number . isNaN ( p . y ) ) ;
const lineData = path . points ;
const lineFunction = ( 0 , d3 _ _WEBPACK _IMPORTED _MODULE _0 _ _ /* .line */ . jvg ) ( ) . x ( function ( d ) {
return d . x ;
} ) . y ( function ( d ) {
return d . y ;
} ) . curve ( d3 _ _WEBPACK _IMPORTED _MODULE _0 _ _ /* .curveBasis */ . $0Z ) ;
const svgPath = elem . append ( "path" ) . attr ( "d" , lineFunction ( lineData ) ) . attr ( "id" , "edge" + edgeCount ) . attr ( "class" , "transition" ) ;
let url = "" ;
if ( ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . arrowMarkerAbsolute ) {
url = window . location . protocol + "//" + window . location . host + window . location . pathname + window . location . search ;
url = url . replace ( /\(/g , "\\(" ) ;
url = url . replace ( /\)/g , "\\)" ) ;
}
svgPath . attr (
"marker-end" ,
"url(" + url + "#" + getRelationType ( _styles _bbc3fe3b _js _ _WEBPACK _IMPORTED _MODULE _7 _ _ . d . relationType . DEPENDENCY ) + "End)"
) ;
if ( relation . title !== void 0 ) {
const label = elem . append ( "g" ) . attr ( "class" , "stateLabel" ) ;
const { x , y } = _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . u . calcLabelPosition ( path . points ) ;
const rows = _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . e . getRows ( relation . title ) ;
let titleHeight = 0 ;
const titleRows = [ ] ;
let maxWidth = 0 ;
let minX = 0 ;
for ( let i = 0 ; i <= rows . length ; i ++ ) {
const title = label . append ( "text" ) . attr ( "text-anchor" , "middle" ) . text ( rows [ i ] ) . attr ( "x" , x ) . attr ( "y" , y + titleHeight ) ;
const boundstmp = title . node ( ) . getBBox ( ) ;
maxWidth = Math . max ( maxWidth , boundstmp . width ) ;
minX = Math . min ( minX , boundstmp . x ) ;
_mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . l . info ( boundstmp . x , x , y + titleHeight ) ;
if ( titleHeight === 0 ) {
const titleBox = title . node ( ) . getBBox ( ) ;
titleHeight = titleBox . height ;
_mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . l . info ( "Title height" , titleHeight , y ) ;
}
titleRows . push ( title ) ;
}
let boxHeight = titleHeight * rows . length ;
if ( rows . length > 1 ) {
const heightAdj = ( rows . length - 1 ) * titleHeight * 0.5 ;
titleRows . forEach ( ( title , i ) => title . attr ( "y" , y + i * titleHeight - heightAdj ) ) ;
boxHeight = titleHeight * rows . length ;
}
const bounds = label . node ( ) . getBBox ( ) ;
label . insert ( "rect" , ":first-child" ) . attr ( "class" , "box" ) . attr ( "x" , x - maxWidth / 2 - ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . padding / 2 ) . attr ( "y" , y - boxHeight / 2 - ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . padding / 2 - 3.5 ) . attr ( "width" , maxWidth + ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . padding ) . attr ( "height" , boxHeight + ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state . padding ) ;
_mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . l . info ( bounds ) ;
}
edgeCount ++ ;
} ;
let conf ;
const transformationLog = { } ;
const setConf = function ( ) {
} ;
const insertMarkers = function ( elem ) {
elem . append ( "defs" ) . append ( "marker" ) . attr ( "id" , "dependencyEnd" ) . attr ( "refX" , 19 ) . attr ( "refY" , 7 ) . attr ( "markerWidth" , 20 ) . attr ( "markerHeight" , 28 ) . attr ( "orient" , "auto" ) . append ( "path" ) . attr ( "d" , "M 19,7 L9,13 L14,7 L9,1 Z" ) ;
} ;
const draw = function ( text , id , _version , diagObj ) {
conf = ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . state ;
const securityLevel = ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . c ) ( ) . securityLevel ;
let sandboxElement ;
if ( securityLevel === "sandbox" ) {
sandboxElement = ( 0 , d3 _ _WEBPACK _IMPORTED _MODULE _0 _ _ /* .select */ . Ys ) ( "#i" + id ) ;
}
const root = securityLevel === "sandbox" ? ( 0 , d3 _ _WEBPACK _IMPORTED _MODULE _0 _ _ /* .select */ . Ys ) ( sandboxElement . nodes ( ) [ 0 ] . contentDocument . body ) : ( 0 , d3 _ _WEBPACK _IMPORTED _MODULE _0 _ _ /* .select */ . Ys ) ( "body" ) ;
const doc = securityLevel === "sandbox" ? sandboxElement . nodes ( ) [ 0 ] . contentDocument : document ;
_mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . l . debug ( "Rendering diagram " + text ) ;
const diagram2 = root . select ( ` [id=' ${ id } '] ` ) ;
insertMarkers ( diagram2 ) ;
const rootDoc = diagObj . db . getRootDoc ( ) ;
renderDoc ( rootDoc , diagram2 , void 0 , false , root , doc , diagObj ) ;
const padding = conf . padding ;
const bounds = diagram2 . node ( ) . getBBox ( ) ;
const width = bounds . width + padding * 2 ;
const height = bounds . height + padding * 2 ;
const svgWidth = width * 1.75 ;
( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . i ) ( diagram2 , height , svgWidth , conf . useMaxWidth ) ;
diagram2 . attr (
"viewBox" ,
` ${ bounds . x - conf . padding } ${ bounds . y - conf . padding } ` + width + " " + height
) ;
} ;
const getLabelWidth = ( text ) => {
return text ? text . length * conf . fontSizeFactor : 1 ;
} ;
const renderDoc = ( doc , diagram2 , parentId , altBkg , root , domDocument , diagObj ) => {
const graph = new dagre _d3 _es _src _graphlib _index _js _ _WEBPACK _IMPORTED _MODULE _2 _ _ /* .Graph */ . k ( {
compound : true ,
multigraph : true
} ) ;
let i ;
let edgeFreeDoc = true ;
for ( i = 0 ; i < doc . length ; i ++ ) {
if ( doc [ i ] . stmt === "relation" ) {
edgeFreeDoc = false ;
break ;
}
}
if ( parentId ) {
graph . setGraph ( {
rankdir : "LR" ,
multigraph : true ,
compound : true ,
// acyclicer: 'greedy',
ranker : "tight-tree" ,
ranksep : edgeFreeDoc ? 1 : conf . edgeLengthFactor ,
nodeSep : edgeFreeDoc ? 1 : 50 ,
isMultiGraph : true
// ranksep: 5,
// nodesep: 1
} ) ;
} else {
graph . setGraph ( {
rankdir : "TB" ,
multigraph : true ,
compound : true ,
// isCompound: true,
// acyclicer: 'greedy',
// ranker: 'longest-path'
ranksep : edgeFreeDoc ? 1 : conf . edgeLengthFactor ,
nodeSep : edgeFreeDoc ? 1 : 50 ,
ranker : "tight-tree" ,
// ranker: 'network-simplex'
isMultiGraph : true
} ) ;
}
graph . setDefaultEdgeLabel ( function ( ) {
return { } ;
} ) ;
diagObj . db . extract ( doc ) ;
const states = diagObj . db . getStates ( ) ;
const relations = diagObj . db . getRelations ( ) ;
const keys2 = Object . keys ( states ) ;
for ( const key of keys2 ) {
const stateDef = states [ key ] ;
if ( parentId ) {
stateDef . parentId = parentId ;
}
let node ;
if ( stateDef . doc ) {
let sub = diagram2 . append ( "g" ) . attr ( "id" , stateDef . id ) . attr ( "class" , "stateGroup" ) ;
node = renderDoc ( stateDef . doc , sub , stateDef . id , ! altBkg , root , domDocument , diagObj ) ;
{
sub = addTitleAndBox ( sub , stateDef , altBkg ) ;
let boxBounds = sub . node ( ) . getBBox ( ) ;
node . width = boxBounds . width ;
node . height = boxBounds . height + conf . padding / 2 ;
transformationLog [ stateDef . id ] = { y : conf . compositTitleSize } ;
}
} else {
node = drawState ( diagram2 , stateDef ) ;
}
if ( stateDef . note ) {
const noteDef = {
descriptions : [ ] ,
id : stateDef . id + "-note" ,
note : stateDef . note ,
type : "note"
} ;
const note = drawState ( diagram2 , noteDef ) ;
if ( stateDef . note . position === "left of" ) {
graph . setNode ( node . id + "-note" , note ) ;
graph . setNode ( node . id , node ) ;
} else {
graph . setNode ( node . id , node ) ;
graph . setNode ( node . id + "-note" , note ) ;
}
graph . setParent ( node . id , node . id + "-group" ) ;
graph . setParent ( node . id + "-note" , node . id + "-group" ) ;
} else {
graph . setNode ( node . id , node ) ;
}
}
_mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . l . debug ( "Count=" , graph . nodeCount ( ) , graph ) ;
let cnt = 0 ;
relations . forEach ( function ( relation ) {
cnt ++ ;
_mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . l . debug ( "Setting edge" , relation ) ;
graph . setEdge (
relation . id1 ,
relation . id2 ,
{
relation ,
width : getLabelWidth ( relation . title ) ,
height : conf . labelHeight * _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . e . getRows ( relation . title ) . length ,
labelpos : "c"
} ,
"id" + cnt
) ;
} ) ;
( 0 , dagre _d3 _es _src _dagre _index _js _ _WEBPACK _IMPORTED _MODULE _1 _ _ /* .layout */ . bK ) ( graph ) ;
_mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . l . debug ( "Graph after layout" , graph . nodes ( ) ) ;
const svgElem = diagram2 . node ( ) ;
graph . nodes ( ) . forEach ( function ( v ) {
if ( v !== void 0 && graph . node ( v ) !== void 0 ) {
_mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . l . warn ( "Node " + v + ": " + JSON . stringify ( graph . node ( v ) ) ) ;
root . select ( "#" + svgElem . id + " #" + v ) . attr (
"transform" ,
"translate(" + ( graph . node ( v ) . x - graph . node ( v ) . width / 2 ) + "," + ( graph . node ( v ) . y + ( transformationLog [ v ] ? transformationLog [ v ] . y : 0 ) - graph . node ( v ) . height / 2 ) + " )"
) ;
root . select ( "#" + svgElem . id + " #" + v ) . attr ( "data-x-shift" , graph . node ( v ) . x - graph . node ( v ) . width / 2 ) ;
const dividers = domDocument . querySelectorAll ( "#" + svgElem . id + " #" + v + " .divider" ) ;
dividers . forEach ( ( divider ) => {
const parent = divider . parentElement ;
let pWidth = 0 ;
let pShift = 0 ;
if ( parent ) {
if ( parent . parentElement ) {
pWidth = parent . parentElement . getBBox ( ) . width ;
}
pShift = parseInt ( parent . getAttribute ( "data-x-shift" ) , 10 ) ;
if ( Number . isNaN ( pShift ) ) {
pShift = 0 ;
}
}
divider . setAttribute ( "x1" , 0 - pShift + 8 ) ;
divider . setAttribute ( "x2" , pWidth - pShift - 8 ) ;
} ) ;
} else {
_mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . l . debug ( "No Node " + v + ": " + JSON . stringify ( graph . node ( v ) ) ) ;
}
} ) ;
let stateBox = svgElem . getBBox ( ) ;
graph . edges ( ) . forEach ( function ( e ) {
if ( e !== void 0 && graph . edge ( e ) !== void 0 ) {
_mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . l . debug ( "Edge " + e . v + " -> " + e . w + ": " + JSON . stringify ( graph . edge ( e ) ) ) ;
drawEdge ( diagram2 , graph . edge ( e ) , graph . edge ( e ) . relation ) ;
}
} ) ;
stateBox = svgElem . getBBox ( ) ;
const stateInfo = {
id : parentId ? parentId : "root" ,
label : parentId ? parentId : "root" ,
width : 0 ,
height : 0
} ;
stateInfo . width = stateBox . width + 2 * conf . padding ;
stateInfo . height = stateBox . height + 2 * conf . padding ;
_mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _6 _ _ . l . debug ( "Doc rendered" , stateInfo , graph ) ;
return stateInfo ;
} ;
const renderer = {
setConf ,
draw
} ;
const diagram = {
parser : _styles _bbc3fe3b _js _ _WEBPACK _IMPORTED _MODULE _7 _ _ . p ,
db : _styles _bbc3fe3b _js _ _WEBPACK _IMPORTED _MODULE _7 _ _ . d ,
renderer ,
styles : _styles _bbc3fe3b _js _ _WEBPACK _IMPORTED _MODULE _7 _ _ . s ,
init : ( cnf ) => {
if ( ! cnf . state ) {
cnf . state = { } ;
}
cnf . state . arrowMarkerAbsolute = cnf . arrowMarkerAbsolute ;
_styles _bbc3fe3b _js _ _WEBPACK _IMPORTED _MODULE _7 _ _ . d . clear ( ) ;
}
} ;
/***/ } ) ,
/***/ 41504 :
/***/ ( ( _ _unused _webpack _ _ _webpack _module _ _ , _ _webpack _exports _ _ , _ _webpack _require _ _ ) => {
/* harmony export */ _ _webpack _require _ _ . d ( _ _webpack _exports _ _ , {
/* harmony export */ D : ( ) => ( /* binding */ DEFAULT _STATE _TYPE ) ,
/* harmony export */ S : ( ) => ( /* binding */ STMT _RELATION ) ,
/* harmony export */ a : ( ) => ( /* binding */ DIVIDER _TYPE ) ,
/* harmony export */ b : ( ) => ( /* binding */ STMT _STATE ) ,
/* harmony export */ c : ( ) => ( /* binding */ DEFAULT _NESTED _DOC _DIR ) ,
/* harmony export */ d : ( ) => ( /* binding */ db ) ,
/* harmony export */ p : ( ) => ( /* binding */ parser$1 ) ,
/* harmony export */ s : ( ) => ( /* binding */ styles )
/* harmony export */ } ) ;
/* harmony import */ var _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ = _ _webpack _require _ _ ( 85322 ) ;
var parser = function ( ) {
var o = function ( k , v , o2 , l ) {
for ( o2 = o2 || { } , l = k . length ; l -- ; o2 [ k [ l ] ] = v )
;
return o2 ;
} , $V0 = [ 1 , 2 ] , $V1 = [ 1 , 3 ] , $V2 = [ 1 , 4 ] , $V3 = [ 2 , 4 ] , $V4 = [ 1 , 9 ] , $V5 = [ 1 , 11 ] , $V6 = [ 1 , 15 ] , $V7 = [ 1 , 16 ] , $V8 = [ 1 , 17 ] , $V9 = [ 1 , 18 ] , $Va = [ 1 , 30 ] , $Vb = [ 1 , 19 ] , $Vc = [ 1 , 20 ] , $Vd = [ 1 , 21 ] , $Ve = [ 1 , 22 ] , $Vf = [ 1 , 23 ] , $Vg = [ 1 , 25 ] , $Vh = [ 1 , 26 ] , $Vi = [ 1 , 27 ] , $Vj = [ 1 , 28 ] , $Vk = [ 1 , 29 ] , $Vl = [ 1 , 32 ] , $Vm = [ 1 , 33 ] , $Vn = [ 1 , 34 ] , $Vo = [ 1 , 35 ] , $Vp = [ 1 , 31 ] , $Vq = [ 1 , 4 , 5 , 15 , 16 , 18 , 20 , 21 , 23 , 24 , 25 , 26 , 27 , 28 , 32 , 34 , 36 , 37 , 41 , 44 , 45 , 46 , 47 , 50 ] , $Vr = [ 1 , 4 , 5 , 13 , 14 , 15 , 16 , 18 , 20 , 21 , 23 , 24 , 25 , 26 , 27 , 28 , 32 , 34 , 36 , 37 , 41 , 44 , 45 , 46 , 47 , 50 ] , $Vs = [ 4 , 5 , 15 , 16 , 18 , 20 , 21 , 23 , 24 , 25 , 26 , 27 , 28 , 32 , 34 , 36 , 37 , 41 , 44 , 45 , 46 , 47 , 50 ] ;
var parser2 = {
trace : function trace ( ) {
} ,
yy : { } ,
symbols _ : { "error" : 2 , "start" : 3 , "SPACE" : 4 , "NL" : 5 , "SD" : 6 , "document" : 7 , "line" : 8 , "statement" : 9 , "classDefStatement" : 10 , "cssClassStatement" : 11 , "idStatement" : 12 , "DESCR" : 13 , "-->" : 14 , "HIDE_EMPTY" : 15 , "scale" : 16 , "WIDTH" : 17 , "COMPOSIT_STATE" : 18 , "STRUCT_START" : 19 , "STRUCT_STOP" : 20 , "STATE_DESCR" : 21 , "AS" : 22 , "ID" : 23 , "FORK" : 24 , "JOIN" : 25 , "CHOICE" : 26 , "CONCURRENT" : 27 , "note" : 28 , "notePosition" : 29 , "NOTE_TEXT" : 30 , "direction" : 31 , "acc_title" : 32 , "acc_title_value" : 33 , "acc_descr" : 34 , "acc_descr_value" : 35 , "acc_descr_multiline_value" : 36 , "classDef" : 37 , "CLASSDEF_ID" : 38 , "CLASSDEF_STYLEOPTS" : 39 , "DEFAULT" : 40 , "class" : 41 , "CLASSENTITY_IDS" : 42 , "STYLECLASS" : 43 , "direction_tb" : 44 , "direction_bt" : 45 , "direction_rl" : 46 , "direction_lr" : 47 , "eol" : 48 , ";" : 49 , "EDGE_STATE" : 50 , "STYLE_SEPARATOR" : 51 , "left_of" : 52 , "right_of" : 53 , "$accept" : 0 , "$end" : 1 } ,
terminals _ : { 2 : "error" , 4 : "SPACE" , 5 : "NL" , 6 : "SD" , 13 : "DESCR" , 14 : "-->" , 15 : "HIDE_EMPTY" , 16 : "scale" , 17 : "WIDTH" , 18 : "COMPOSIT_STATE" , 19 : "STRUCT_START" , 20 : "STRUCT_STOP" , 21 : "STATE_DESCR" , 22 : "AS" , 23 : "ID" , 24 : "FORK" , 25 : "JOIN" , 26 : "CHOICE" , 27 : "CONCURRENT" , 28 : "note" , 30 : "NOTE_TEXT" , 32 : "acc_title" , 33 : "acc_title_value" , 34 : "acc_descr" , 35 : "acc_descr_value" , 36 : "acc_descr_multiline_value" , 37 : "classDef" , 38 : "CLASSDEF_ID" , 39 : "CLASSDEF_STYLEOPTS" , 40 : "DEFAULT" , 41 : "class" , 42 : "CLASSENTITY_IDS" , 43 : "STYLECLASS" , 44 : "direction_tb" , 45 : "direction_bt" , 46 : "direction_rl" , 47 : "direction_lr" , 49 : ";" , 50 : "EDGE_STATE" , 51 : "STYLE_SEPARATOR" , 52 : "left_of" , 53 : "right_of" } ,
productions _ : [ 0 , [ 3 , 2 ] , [ 3 , 2 ] , [ 3 , 2 ] , [ 7 , 0 ] , [ 7 , 2 ] , [ 8 , 2 ] , [ 8 , 1 ] , [ 8 , 1 ] , [ 9 , 1 ] , [ 9 , 1 ] , [ 9 , 1 ] , [ 9 , 2 ] , [ 9 , 3 ] , [ 9 , 4 ] , [ 9 , 1 ] , [ 9 , 2 ] , [ 9 , 1 ] , [ 9 , 4 ] , [ 9 , 3 ] , [ 9 , 6 ] , [ 9 , 1 ] , [ 9 , 1 ] , [ 9 , 1 ] , [ 9 , 1 ] , [ 9 , 4 ] , [ 9 , 4 ] , [ 9 , 1 ] , [ 9 , 2 ] , [ 9 , 2 ] , [ 9 , 1 ] , [ 10 , 3 ] , [ 10 , 3 ] , [ 11 , 3 ] , [ 31 , 1 ] , [ 31 , 1 ] , [ 31 , 1 ] , [ 31 , 1 ] , [ 48 , 1 ] , [ 48 , 1 ] , [ 12 , 1 ] , [ 12 , 1 ] , [ 12 , 3 ] , [ 12 , 3 ] , [ 29 , 1 ] , [ 29 , 1 ] ] ,
performAction : function anonymous ( yytext , yyleng , yylineno , yy , yystate , $$ , _$ ) {
var $0 = $$ . length - 1 ;
switch ( yystate ) {
case 3 :
yy . setRootDoc ( $$ [ $0 ] ) ;
return $$ [ $0 ] ;
case 4 :
this . $ = [ ] ;
break ;
case 5 :
if ( $$ [ $0 ] != "nl" ) {
$$ [ $0 - 1 ] . push ( $$ [ $0 ] ) ;
this . $ = $$ [ $0 - 1 ] ;
}
break ;
case 6 :
case 7 :
this . $ = $$ [ $0 ] ;
break ;
case 8 :
this . $ = "nl" ;
break ;
case 11 :
this . $ = $$ [ $0 ] ;
break ;
case 12 :
const stateStmt = $$ [ $0 - 1 ] ;
stateStmt . description = yy . trimColon ( $$ [ $0 ] ) ;
this . $ = stateStmt ;
break ;
case 13 :
this . $ = { stmt : "relation" , state1 : $$ [ $0 - 2 ] , state2 : $$ [ $0 ] } ;
break ;
case 14 :
const relDescription = yy . trimColon ( $$ [ $0 ] ) ;
this . $ = { stmt : "relation" , state1 : $$ [ $0 - 3 ] , state2 : $$ [ $0 - 1 ] , description : relDescription } ;
break ;
case 18 :
this . $ = { stmt : "state" , id : $$ [ $0 - 3 ] , type : "default" , description : "" , doc : $$ [ $0 - 1 ] } ;
break ;
case 19 :
var id = $$ [ $0 ] ;
var description = $$ [ $0 - 2 ] . trim ( ) ;
if ( $$ [ $0 ] . match ( ":" ) ) {
var parts = $$ [ $0 ] . split ( ":" ) ;
id = parts [ 0 ] ;
description = [ description , parts [ 1 ] ] ;
}
this . $ = { stmt : "state" , id , type : "default" , description } ;
break ;
case 20 :
this . $ = { stmt : "state" , id : $$ [ $0 - 3 ] , type : "default" , description : $$ [ $0 - 5 ] , doc : $$ [ $0 - 1 ] } ;
break ;
case 21 :
this . $ = { stmt : "state" , id : $$ [ $0 ] , type : "fork" } ;
break ;
case 22 :
this . $ = { stmt : "state" , id : $$ [ $0 ] , type : "join" } ;
break ;
case 23 :
this . $ = { stmt : "state" , id : $$ [ $0 ] , type : "choice" } ;
break ;
case 24 :
this . $ = { stmt : "state" , id : yy . getDividerId ( ) , type : "divider" } ;
break ;
case 25 :
this . $ = { stmt : "state" , id : $$ [ $0 - 1 ] . trim ( ) , note : { position : $$ [ $0 - 2 ] . trim ( ) , text : $$ [ $0 ] . trim ( ) } } ;
break ;
case 28 :
this . $ = $$ [ $0 ] . trim ( ) ;
yy . setAccTitle ( this . $ ) ;
break ;
case 29 :
case 30 :
this . $ = $$ [ $0 ] . trim ( ) ;
yy . setAccDescription ( this . $ ) ;
break ;
case 31 :
case 32 :
this . $ = { stmt : "classDef" , id : $$ [ $0 - 1 ] . trim ( ) , classes : $$ [ $0 ] . trim ( ) } ;
break ;
case 33 :
this . $ = { stmt : "applyClass" , id : $$ [ $0 - 1 ] . trim ( ) , styleClass : $$ [ $0 ] . trim ( ) } ;
break ;
case 34 :
yy . setDirection ( "TB" ) ;
this . $ = { stmt : "dir" , value : "TB" } ;
break ;
case 35 :
yy . setDirection ( "BT" ) ;
this . $ = { stmt : "dir" , value : "BT" } ;
break ;
case 36 :
yy . setDirection ( "RL" ) ;
this . $ = { stmt : "dir" , value : "RL" } ;
break ;
case 37 :
yy . setDirection ( "LR" ) ;
this . $ = { stmt : "dir" , value : "LR" } ;
break ;
case 40 :
case 41 :
this . $ = { stmt : "state" , id : $$ [ $0 ] . trim ( ) , type : "default" , description : "" } ;
break ;
case 42 :
this . $ = { stmt : "state" , id : $$ [ $0 - 2 ] . trim ( ) , classes : [ $$ [ $0 ] . trim ( ) ] , type : "default" , description : "" } ;
break ;
case 43 :
this . $ = { stmt : "state" , id : $$ [ $0 - 2 ] . trim ( ) , classes : [ $$ [ $0 ] . trim ( ) ] , type : "default" , description : "" } ;
break ;
}
} ,
table : [ { 3 : 1 , 4 : $V0 , 5 : $V1 , 6 : $V2 } , { 1 : [ 3 ] } , { 3 : 5 , 4 : $V0 , 5 : $V1 , 6 : $V2 } , { 3 : 6 , 4 : $V0 , 5 : $V1 , 6 : $V2 } , o ( [ 1 , 4 , 5 , 15 , 16 , 18 , 21 , 23 , 24 , 25 , 26 , 27 , 28 , 32 , 34 , 36 , 37 , 41 , 44 , 45 , 46 , 47 , 50 ] , $V3 , { 7 : 7 } ) , { 1 : [ 2 , 1 ] } , { 1 : [ 2 , 2 ] } , { 1 : [ 2 , 3 ] , 4 : $V4 , 5 : $V5 , 8 : 8 , 9 : 10 , 10 : 12 , 11 : 13 , 12 : 14 , 15 : $V6 , 16 : $V7 , 18 : $V8 , 21 : $V9 , 23 : $Va , 24 : $Vb , 25 : $Vc , 26 : $Vd , 27 : $Ve , 28 : $Vf , 31 : 24 , 32 : $Vg , 34 : $Vh , 36 : $Vi , 37 : $Vj , 41 : $Vk , 44 : $Vl , 45 : $Vm , 46 : $Vn , 47 : $Vo , 50 : $Vp } , o ( $Vq , [ 2 , 5 ] ) , { 9 : 36 , 10 : 12 , 11 : 13 , 12 : 14 , 15 : $V6 , 16 : $V7 , 18 : $V8 , 21 : $V9 , 23 : $Va , 24 : $Vb , 25 : $Vc , 26 : $Vd , 27 : $Ve , 28 : $Vf , 31 : 24 , 32 : $Vg , 34 : $Vh , 36 : $Vi , 37 : $Vj , 41 : $Vk , 44 : $Vl , 45 : $Vm , 46 : $Vn , 47 : $Vo , 50 : $Vp } , o ( $Vq , [ 2 , 7 ] ) , o ( $Vq , [ 2 , 8 ] ) , o ( $Vq , [ 2 , 9 ] ) , o ( $Vq , [ 2 , 10 ] ) , o ( $Vq , [ 2 , 11 ] , { 13 : [ 1 , 37 ] , 14 : [ 1 , 38 ] } ) , o ( $Vq , [ 2 , 15 ] ) , { 17 : [ 1 , 39 ] } , o ( $Vq , [ 2 , 17 ] , { 19 : [ 1 , 40 ] } ) , { 22 : [ 1 , 41 ] } , o ( $Vq , [ 2 , 21 ] ) , o ( $Vq , [ 2 , 22 ] ) , o ( $Vq , [ 2 , 23 ] ) , o ( $Vq , [ 2 , 24 ] ) , { 29 : 42 , 30 : [ 1 , 43 ] , 52 : [ 1 , 44 ] , 53 : [ 1 , 45 ] } , o ( $Vq , [ 2 , 27 ] ) , { 33 : [ 1 , 46 ] } , { 35 : [ 1 , 47 ] } , o ( $Vq , [ 2 , 30 ] ) , { 38 : [ 1 , 48 ] , 40 : [ 1 , 49 ] } , { 42 : [ 1 , 50 ] } , o ( $Vr , [ 2 , 40 ] , { 51 : [ 1 , 51 ] } ) , o ( $Vr , [ 2 , 41 ] , { 51 : [ 1 , 52 ] } ) , o ( $Vq , [ 2 , 34 ] ) , o ( $Vq , [ 2 , 35 ] ) , o ( $Vq , [ 2 , 36 ] ) , o ( $Vq , [ 2 , 37 ] ) , o ( $Vq , [ 2 , 6 ] ) , o ( $Vq , [ 2 , 12 ] ) , { 12 : 53 , 23 : $Va , 50 : $Vp } , o ( $Vq , [ 2 , 16 ] ) , o ( $Vs , $V3 , { 7 : 54 } ) , { 23 : [ 1 , 55 ] } , { 23 : [ 1 , 56 ] } , { 22 : [ 1 , 57 ] } , { 23 : [ 2 , 44 ] } , { 23 : [ 2 , 45 ] } , o ( $Vq , [ 2 , 28 ] ) , o ( $Vq , [ 2 , 29 ] ) , { 39 : [ 1 , 58 ] } , { 39 : [ 1 , 59 ] } , { 43 : [ 1 , 60 ] } , { 23 : [ 1 , 61 ] } , { 23 : [ 1 , 62 ] } , o ( $Vq , [ 2 , 13 ] , { 13 : [ 1 , 63 ] } ) , { 4 : $V4 , 5 : $V5 , 8 : 8 , 9 : 10 , 10 : 12 , 11 : 13 , 12 : 14 , 15 : $V6 , 16 : $V7 , 18 : $V8 , 20 : [ 1 , 64 ] , 21 : $V9 , 23 : $Va , 24 : $Vb , 25 : $Vc , 26 : $Vd , 27 : $Ve , 28 : $Vf , 31 : 24 , 32 : $Vg , 34 : $Vh , 36 : $Vi , 37 : $Vj , 41 : $Vk , 44 : $Vl , 45 : $Vm , 46 : $Vn , 47 : $Vo , 50 : $Vp } , o ( $Vq , [ 2 , 19 ] , { 19 : [ 1 , 65 ] } ) , { 30 : [ 1 , 66 ] } , { 23 : [ 1 , 67 ] } , o ( $Vq , [ 2 , 31 ] ) , o ( $Vq , [ 2 , 32 ] ) , o ( $Vq , [ 2 , 33 ] ) , o ( $Vr , [ 2 , 42 ] ) , o ( $Vr , [ 2 , 43 ] ) , o ( $Vq , [ 2 , 14 ] ) , o ( $Vq , [ 2 , 18 ] ) , o ( $Vs , $V3 , { 7 : 68 } ) , o ( $Vq , [ 2 , 25 ] ) , o ( $Vq , [ 2 , 26 ] ) , { 4 : $V4 , 5 : $V5 , 8 : 8 , 9 : 10 , 10 : 12 , 11 : 13 , 12 : 14 , 15 : $V6 , 16 : $V7 , 18 : $V8 , 20 : [ 1 , 69 ] , 21 : $V9 , 23 : $Va , 24 : $Vb , 25 : $Vc , 26 : $Vd , 27 : $Ve , 28 : $Vf , 31 : 24 , 32 : $Vg , 34 : $Vh , 36 : $Vi , 37 : $Vj , 41 : $Vk , 44 : $Vl , 45 : $Vm , 46 : $Vn , 47 : $Vo , 50 : $Vp } , o ( $Vq , [ 2 , 20 ] ) ] ,
defaultActions : { 5 : [ 2 , 1 ] , 6 : [ 2 , 2 ] , 44 : [ 2 , 44 ] , 45 : [ 2 , 45 ] } ,
parseError : function parseError ( str , hash ) {
if ( hash . recoverable ) {
this . trace ( str ) ;
} else {
var error = new Error ( str ) ;
error . hash = hash ;
throw error ;
}
} ,
parse : function parse ( input ) {
var self = this , stack = [ 0 ] , tstack = [ ] , vstack = [ null ] , lstack = [ ] , table = this . table , yytext = "" , yylineno = 0 , yyleng = 0 , TERROR = 2 , EOF = 1 ;
var args = lstack . slice . call ( arguments , 1 ) ;
var lexer2 = Object . create ( this . lexer ) ;
var sharedState = { yy : { } } ;
for ( var k in this . yy ) {
if ( Object . prototype . hasOwnProperty . call ( this . yy , k ) ) {
sharedState . yy [ k ] = this . yy [ k ] ;
}
}
lexer2 . setInput ( input , sharedState . yy ) ;
sharedState . yy . lexer = lexer2 ;
sharedState . yy . parser = this ;
if ( typeof lexer2 . yylloc == "undefined" ) {
lexer2 . yylloc = { } ;
}
var yyloc = lexer2 . yylloc ;
lstack . push ( yyloc ) ;
var ranges = lexer2 . options && lexer2 . options . ranges ;
if ( typeof sharedState . yy . parseError === "function" ) {
this . parseError = sharedState . yy . parseError ;
} else {
this . parseError = Object . getPrototypeOf ( this ) . parseError ;
}
function lex ( ) {
var token ;
token = tstack . pop ( ) || lexer2 . lex ( ) || EOF ;
if ( typeof token !== "number" ) {
if ( token instanceof Array ) {
tstack = token ;
token = tstack . pop ( ) ;
}
token = self . symbols _ [ token ] || token ;
}
return token ;
}
var symbol , state , action , r , yyval = { } , p , len , newState , expected ;
while ( true ) {
state = stack [ stack . length - 1 ] ;
if ( this . defaultActions [ state ] ) {
action = this . defaultActions [ state ] ;
} else {
if ( symbol === null || typeof symbol == "undefined" ) {
symbol = lex ( ) ;
}
action = table [ state ] && table [ state ] [ symbol ] ;
}
if ( typeof action === "undefined" || ! action . length || ! action [ 0 ] ) {
var errStr = "" ;
expected = [ ] ;
for ( p in table [ state ] ) {
if ( this . terminals _ [ p ] && p > TERROR ) {
expected . push ( "'" + this . terminals _ [ p ] + "'" ) ;
}
}
if ( lexer2 . showPosition ) {
errStr = "Parse error on line " + ( yylineno + 1 ) + ":\n" + lexer2 . showPosition ( ) + "\nExpecting " + expected . join ( ", " ) + ", got '" + ( this . terminals _ [ symbol ] || symbol ) + "'" ;
} else {
errStr = "Parse error on line " + ( yylineno + 1 ) + ": Unexpected " + ( symbol == EOF ? "end of input" : "'" + ( this . terminals _ [ symbol ] || symbol ) + "'" ) ;
}
this . parseError ( errStr , {
text : lexer2 . match ,
token : this . terminals _ [ symbol ] || symbol ,
line : lexer2 . yylineno ,
loc : yyloc ,
expected
} ) ;
}
if ( action [ 0 ] instanceof Array && action . length > 1 ) {
throw new Error ( "Parse Error: multiple actions possible at state: " + state + ", token: " + symbol ) ;
}
switch ( action [ 0 ] ) {
case 1 :
stack . push ( symbol ) ;
vstack . push ( lexer2 . yytext ) ;
lstack . push ( lexer2 . yylloc ) ;
stack . push ( action [ 1 ] ) ;
symbol = null ;
{
yyleng = lexer2 . yyleng ;
yytext = lexer2 . yytext ;
yylineno = lexer2 . yylineno ;
yyloc = lexer2 . yylloc ;
}
break ;
case 2 :
len = this . productions _ [ action [ 1 ] ] [ 1 ] ;
yyval . $ = vstack [ vstack . length - len ] ;
yyval . _$ = {
first _line : lstack [ lstack . length - ( len || 1 ) ] . first _line ,
last _line : lstack [ lstack . length - 1 ] . last _line ,
first _column : lstack [ lstack . length - ( len || 1 ) ] . first _column ,
last _column : lstack [ lstack . length - 1 ] . last _column
} ;
if ( ranges ) {
yyval . _$ . range = [
lstack [ lstack . length - ( len || 1 ) ] . range [ 0 ] ,
lstack [ lstack . length - 1 ] . range [ 1 ]
] ;
}
r = this . performAction . apply ( yyval , [
yytext ,
yyleng ,
yylineno ,
sharedState . yy ,
action [ 1 ] ,
vstack ,
lstack
] . concat ( args ) ) ;
if ( typeof r !== "undefined" ) {
return r ;
}
if ( len ) {
stack = stack . slice ( 0 , - 1 * len * 2 ) ;
vstack = vstack . slice ( 0 , - 1 * len ) ;
lstack = lstack . slice ( 0 , - 1 * len ) ;
}
stack . push ( this . productions _ [ action [ 1 ] ] [ 0 ] ) ;
vstack . push ( yyval . $ ) ;
lstack . push ( yyval . _$ ) ;
newState = table [ stack [ stack . length - 2 ] ] [ stack [ stack . length - 1 ] ] ;
stack . push ( newState ) ;
break ;
case 3 :
return true ;
}
}
return true ;
}
} ;
var lexer = function ( ) {
var lexer2 = {
EOF : 1 ,
parseError : function parseError ( str , hash ) {
if ( this . yy . parser ) {
this . yy . parser . parseError ( str , hash ) ;
} else {
throw new Error ( str ) ;
}
} ,
// resets the lexer, sets new input
setInput : function ( input , yy ) {
this . yy = yy || this . yy || { } ;
this . _input = input ;
this . _more = this . _backtrack = this . done = false ;
this . yylineno = this . yyleng = 0 ;
this . yytext = this . matched = this . match = "" ;
this . conditionStack = [ "INITIAL" ] ;
this . yylloc = {
first _line : 1 ,
first _column : 0 ,
last _line : 1 ,
last _column : 0
} ;
if ( this . options . ranges ) {
this . yylloc . range = [ 0 , 0 ] ;
}
this . offset = 0 ;
return this ;
} ,
// consumes and returns one char from the input
input : function ( ) {
var ch = this . _input [ 0 ] ;
this . yytext += ch ;
this . yyleng ++ ;
this . offset ++ ;
this . match += ch ;
this . matched += ch ;
var lines = ch . match ( /(?:\r\n?|\n).*/g ) ;
if ( lines ) {
this . yylineno ++ ;
this . yylloc . last _line ++ ;
} else {
this . yylloc . last _column ++ ;
}
if ( this . options . ranges ) {
this . yylloc . range [ 1 ] ++ ;
}
this . _input = this . _input . slice ( 1 ) ;
return ch ;
} ,
// unshifts one char (or a string) into the input
unput : function ( ch ) {
var len = ch . length ;
var lines = ch . split ( /(?:\r\n?|\n)/g ) ;
this . _input = ch + this . _input ;
this . yytext = this . yytext . substr ( 0 , this . yytext . length - len ) ;
this . offset -= len ;
var oldLines = this . match . split ( /(?:\r\n?|\n)/g ) ;
this . match = this . match . substr ( 0 , this . match . length - 1 ) ;
this . matched = this . matched . substr ( 0 , this . matched . length - 1 ) ;
if ( lines . length - 1 ) {
this . yylineno -= lines . length - 1 ;
}
var r = this . yylloc . range ;
this . yylloc = {
first _line : this . yylloc . first _line ,
last _line : this . yylineno + 1 ,
first _column : this . yylloc . first _column ,
last _column : lines ? ( lines . length === oldLines . length ? this . yylloc . first _column : 0 ) + oldLines [ oldLines . length - lines . length ] . length - lines [ 0 ] . length : this . yylloc . first _column - len
} ;
if ( this . options . ranges ) {
this . yylloc . range = [ r [ 0 ] , r [ 0 ] + this . yyleng - len ] ;
}
this . yyleng = this . yytext . length ;
return this ;
} ,
// When called from action, caches matched text and appends it on next action
more : function ( ) {
this . _more = true ;
return this ;
} ,
// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
reject : function ( ) {
if ( this . options . backtrack _lexer ) {
this . _backtrack = true ;
} else {
return this . parseError ( "Lexical error on line " + ( this . yylineno + 1 ) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this . showPosition ( ) , {
text : "" ,
token : null ,
line : this . yylineno
} ) ;
}
return this ;
} ,
// retain first n characters of the match
less : function ( n ) {
this . unput ( this . match . slice ( n ) ) ;
} ,
// displays already matched input, i.e. for error messages
pastInput : function ( ) {
var past = this . matched . substr ( 0 , this . matched . length - this . match . length ) ;
return ( past . length > 20 ? "..." : "" ) + past . substr ( - 20 ) . replace ( /\n/g , "" ) ;
} ,
// displays upcoming input, i.e. for error messages
upcomingInput : function ( ) {
var next = this . match ;
if ( next . length < 20 ) {
next += this . _input . substr ( 0 , 20 - next . length ) ;
}
return ( next . substr ( 0 , 20 ) + ( next . length > 20 ? "..." : "" ) ) . replace ( /\n/g , "" ) ;
} ,
// displays the character position where the lexing error occurred, i.e. for error messages
showPosition : function ( ) {
var pre = this . pastInput ( ) ;
var c = new Array ( pre . length + 1 ) . join ( "-" ) ;
return pre + this . upcomingInput ( ) + "\n" + c + "^" ;
} ,
// test the lexed token: return FALSE when not a match, otherwise return token
test _match : function ( match , indexed _rule ) {
var token , lines , backup ;
if ( this . options . backtrack _lexer ) {
backup = {
yylineno : this . yylineno ,
yylloc : {
first _line : this . yylloc . first _line ,
last _line : this . last _line ,
first _column : this . yylloc . first _column ,
last _column : this . yylloc . last _column
} ,
yytext : this . yytext ,
match : this . match ,
matches : this . matches ,
matched : this . matched ,
yyleng : this . yyleng ,
offset : this . offset ,
_more : this . _more ,
_input : this . _input ,
yy : this . yy ,
conditionStack : this . conditionStack . slice ( 0 ) ,
done : this . done
} ;
if ( this . options . ranges ) {
backup . yylloc . range = this . yylloc . range . slice ( 0 ) ;
}
}
lines = match [ 0 ] . match ( /(?:\r\n?|\n).*/g ) ;
if ( lines ) {
this . yylineno += lines . length ;
}
this . yylloc = {
first _line : this . yylloc . last _line ,
last _line : this . yylineno + 1 ,
first _column : this . yylloc . last _column ,
last _column : lines ? lines [ lines . length - 1 ] . length - lines [ lines . length - 1 ] . match ( /\r?\n?/ ) [ 0 ] . length : this . yylloc . last _column + match [ 0 ] . length
} ;
this . yytext += match [ 0 ] ;
this . match += match [ 0 ] ;
this . matches = match ;
this . yyleng = this . yytext . length ;
if ( this . options . ranges ) {
this . yylloc . range = [ this . offset , this . offset += this . yyleng ] ;
}
this . _more = false ;
this . _backtrack = false ;
this . _input = this . _input . slice ( match [ 0 ] . length ) ;
this . matched += match [ 0 ] ;
token = this . performAction . call ( this , this . yy , this , indexed _rule , this . conditionStack [ this . conditionStack . length - 1 ] ) ;
if ( this . done && this . _input ) {
this . done = false ;
}
if ( token ) {
return token ;
} else if ( this . _backtrack ) {
for ( var k in backup ) {
this [ k ] = backup [ k ] ;
}
return false ;
}
return false ;
} ,
// return next match in input
next : function ( ) {
if ( this . done ) {
return this . EOF ;
}
if ( ! this . _input ) {
this . done = true ;
}
var token , match , tempMatch , index ;
if ( ! this . _more ) {
this . yytext = "" ;
this . match = "" ;
}
var rules = this . _currentRules ( ) ;
for ( var i = 0 ; i < rules . length ; i ++ ) {
tempMatch = this . _input . match ( this . rules [ rules [ i ] ] ) ;
if ( tempMatch && ( ! match || tempMatch [ 0 ] . length > match [ 0 ] . length ) ) {
match = tempMatch ;
index = i ;
if ( this . options . backtrack _lexer ) {
token = this . test _match ( tempMatch , rules [ i ] ) ;
if ( token !== false ) {
return token ;
} else if ( this . _backtrack ) {
match = false ;
continue ;
} else {
return false ;
}
} else if ( ! this . options . flex ) {
break ;
}
}
}
if ( match ) {
token = this . test _match ( match , rules [ index ] ) ;
if ( token !== false ) {
return token ;
}
return false ;
}
if ( this . _input === "" ) {
return this . EOF ;
} else {
return this . parseError ( "Lexical error on line " + ( this . yylineno + 1 ) + ". Unrecognized text.\n" + this . showPosition ( ) , {
text : "" ,
token : null ,
line : this . yylineno
} ) ;
}
} ,
// return next match that has a token
lex : function lex ( ) {
var r = this . next ( ) ;
if ( r ) {
return r ;
} else {
return this . lex ( ) ;
}
} ,
// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
begin : function begin ( condition ) {
this . conditionStack . push ( condition ) ;
} ,
// pop the previously active lexer condition state off the condition stack
popState : function popState ( ) {
var n = this . conditionStack . length - 1 ;
if ( n > 0 ) {
return this . conditionStack . pop ( ) ;
} else {
return this . conditionStack [ 0 ] ;
}
} ,
// produce the lexer rule set which is active for the currently active lexer condition state
_currentRules : function _currentRules ( ) {
if ( this . conditionStack . length && this . conditionStack [ this . conditionStack . length - 1 ] ) {
return this . conditions [ this . conditionStack [ this . conditionStack . length - 1 ] ] . rules ;
} else {
return this . conditions [ "INITIAL" ] . rules ;
}
} ,
// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
topState : function topState ( n ) {
n = this . conditionStack . length - 1 - Math . abs ( n || 0 ) ;
if ( n >= 0 ) {
return this . conditionStack [ n ] ;
} else {
return "INITIAL" ;
}
} ,
// alias for begin(condition)
pushState : function pushState ( condition ) {
this . begin ( condition ) ;
} ,
// return the number of states currently on the stack
stateStackSize : function stateStackSize ( ) {
return this . conditionStack . length ;
} ,
options : { "case-insensitive" : true } ,
performAction : function anonymous ( yy , yy _ , $avoiding _name _collisions , YY _START ) {
switch ( $avoiding _name _collisions ) {
case 0 :
return 40 ;
case 1 :
return 44 ;
case 2 :
return 45 ;
case 3 :
return 46 ;
case 4 :
return 47 ;
case 5 :
break ;
case 6 :
break ;
case 7 :
return 5 ;
case 8 :
break ;
case 9 :
break ;
case 10 :
break ;
case 11 :
break ;
case 12 :
this . pushState ( "SCALE" ) ;
return 16 ;
case 13 :
return 17 ;
case 14 :
this . popState ( ) ;
break ;
case 15 :
this . begin ( "acc_title" ) ;
return 32 ;
case 16 :
this . popState ( ) ;
return "acc_title_value" ;
case 17 :
this . begin ( "acc_descr" ) ;
return 34 ;
case 18 :
this . popState ( ) ;
return "acc_descr_value" ;
case 19 :
this . begin ( "acc_descr_multiline" ) ;
break ;
case 20 :
this . popState ( ) ;
break ;
case 21 :
return "acc_descr_multiline_value" ;
case 22 :
this . pushState ( "CLASSDEF" ) ;
return 37 ;
case 23 :
this . popState ( ) ;
this . pushState ( "CLASSDEFID" ) ;
return "DEFAULT_CLASSDEF_ID" ;
case 24 :
this . popState ( ) ;
this . pushState ( "CLASSDEFID" ) ;
return 38 ;
case 25 :
this . popState ( ) ;
return 39 ;
case 26 :
this . pushState ( "CLASS" ) ;
return 41 ;
case 27 :
this . popState ( ) ;
this . pushState ( "CLASS_STYLE" ) ;
return 42 ;
case 28 :
this . popState ( ) ;
return 43 ;
case 29 :
this . pushState ( "SCALE" ) ;
return 16 ;
case 30 :
return 17 ;
case 31 :
this . popState ( ) ;
break ;
case 32 :
this . pushState ( "STATE" ) ;
break ;
case 33 :
this . popState ( ) ;
yy _ . yytext = yy _ . yytext . slice ( 0 , - 8 ) . trim ( ) ;
return 24 ;
case 34 :
this . popState ( ) ;
yy _ . yytext = yy _ . yytext . slice ( 0 , - 8 ) . trim ( ) ;
return 25 ;
case 35 :
this . popState ( ) ;
yy _ . yytext = yy _ . yytext . slice ( 0 , - 10 ) . trim ( ) ;
return 26 ;
case 36 :
this . popState ( ) ;
yy _ . yytext = yy _ . yytext . slice ( 0 , - 8 ) . trim ( ) ;
return 24 ;
case 37 :
this . popState ( ) ;
yy _ . yytext = yy _ . yytext . slice ( 0 , - 8 ) . trim ( ) ;
return 25 ;
case 38 :
this . popState ( ) ;
yy _ . yytext = yy _ . yytext . slice ( 0 , - 10 ) . trim ( ) ;
return 26 ;
case 39 :
return 44 ;
case 40 :
return 45 ;
case 41 :
return 46 ;
case 42 :
return 47 ;
case 43 :
this . pushState ( "STATE_STRING" ) ;
break ;
case 44 :
this . pushState ( "STATE_ID" ) ;
return "AS" ;
case 45 :
this . popState ( ) ;
return "ID" ;
case 46 :
this . popState ( ) ;
break ;
case 47 :
return "STATE_DESCR" ;
case 48 :
return 18 ;
case 49 :
this . popState ( ) ;
break ;
case 50 :
this . popState ( ) ;
this . pushState ( "struct" ) ;
return 19 ;
case 51 :
break ;
case 52 :
this . popState ( ) ;
return 20 ;
case 53 :
break ;
case 54 :
this . begin ( "NOTE" ) ;
return 28 ;
case 55 :
this . popState ( ) ;
this . pushState ( "NOTE_ID" ) ;
return 52 ;
case 56 :
this . popState ( ) ;
this . pushState ( "NOTE_ID" ) ;
return 53 ;
case 57 :
this . popState ( ) ;
this . pushState ( "FLOATING_NOTE" ) ;
break ;
case 58 :
this . popState ( ) ;
this . pushState ( "FLOATING_NOTE_ID" ) ;
return "AS" ;
case 59 :
break ;
case 60 :
return "NOTE_TEXT" ;
case 61 :
this . popState ( ) ;
return "ID" ;
case 62 :
this . popState ( ) ;
this . pushState ( "NOTE_TEXT" ) ;
return 23 ;
case 63 :
this . popState ( ) ;
yy _ . yytext = yy _ . yytext . substr ( 2 ) . trim ( ) ;
return 30 ;
case 64 :
this . popState ( ) ;
yy _ . yytext = yy _ . yytext . slice ( 0 , - 8 ) . trim ( ) ;
return 30 ;
case 65 :
return 6 ;
case 66 :
return 6 ;
case 67 :
return 15 ;
case 68 :
return 50 ;
case 69 :
return 23 ;
case 70 :
yy _ . yytext = yy _ . yytext . trim ( ) ;
return 13 ;
case 71 :
return 14 ;
case 72 :
return 27 ;
case 73 :
return 51 ;
case 74 :
return 5 ;
case 75 :
return "INVALID" ;
}
} ,
rules : [ /^(?:default\b)/i , /^(?:.*direction\s+TB[^\n]*)/i , /^(?:.*direction\s+BT[^\n]*)/i , /^(?:.*direction\s+RL[^\n]*)/i , /^(?:.*direction\s+LR[^\n]*)/i , /^(?:%%(?!\{)[^\n]*)/i , /^(?:[^\}]%%[^\n]*)/i , /^(?:[\n]+)/i , /^(?:[\s]+)/i , /^(?:((?!\n)\s)+)/i , /^(?:#[^\n]*)/i , /^(?:%[^\n]*)/i , /^(?:scale\s+)/i , /^(?:\d+)/i , /^(?:\s+width\b)/i , /^(?:accTitle\s*:\s*)/i , /^(?:(?!\n||)*[^\n]*)/i , /^(?:accDescr\s*:\s*)/i , /^(?:(?!\n||)*[^\n]*)/i , /^(?:accDescr\s*\{\s*)/i , /^(?:[\}])/i , /^(?:[^\}]*)/i , /^(?:classDef\s+)/i , /^(?:DEFAULT\s+)/i , /^(?:\w+\s+)/i , /^(?:[^\n]*)/i , /^(?:class\s+)/i , /^(?:(\w+)+((,\s*\w+)*))/i , /^(?:[^\n]*)/i , /^(?:scale\s+)/i , /^(?:\d+)/i , /^(?:\s+width\b)/i , /^(?:state\s+)/i , /^(?:.*<<fork>>)/i , /^(?:.*<<join>>)/i , /^(?:.*<<choice>>)/i , /^(?:.*\[\[fork\]\])/i , /^(?:.*\[\[join\]\])/i , /^(?:.*\[\[choice\]\])/i , /^(?:.*direction\s+TB[^\n]*)/i , /^(?:.*direction\s+BT[^\n]*)/i , /^(?:.*direction\s+RL[^\n]*)/i , /^(?:.*direction\s+LR[^\n]*)/i , /^(?:["])/i , /^(?:\s*as\s+)/i , /^(?:[^\n\{]*)/i , /^(?:["])/i , /^(?:[^"]*)/i , /^(?:[^\n\s\{]+)/i , /^(?:\n)/i , /^(?:\{)/i , /^(?:%%(?!\{)[^\n]*)/i , /^(?:\})/i , /^(?:[\n])/i , /^(?:note\s+)/i , /^(?:left of\b)/i , /^(?:right of\b)/i , /^(?:")/i , /^(?:\s*as\s*)/i , /^(?:["])/i , /^(?:[^"]*)/i , /^(?:[^\n]*)/i , /^(?:\s*[^:\n\s\-]+)/i , /^(?:\s*:[^:\n;]+)/i , /^(?:[\s\S]*?end note\b)/i , /^(?:stateDiagram\s+)/i , /^(?:stateDiagram-v2\s+)/i , /^(?:hide empty description\b)/i , /^(?:\[\*\])/i , /^(?:[^:\n\s\-\{]+)/i , /^(?:\s*:[^:\n;]+)/i , /^(?:-->)/i , /^(?:--)/i , /^(?::::)/i , /^(?:$)/i , /^(?:.)/i ] ,
conditions : { "LINE" : { "rules" : [ 9 , 10 ] , "inclusive" : false } , "struct" : { "rules" : [ 9 , 10 , 22 , 26 , 32 , 39 , 40 , 41 , 42 , 51 , 52 , 53 , 54 , 68 , 69 , 70 , 71 , 72 ] , "inclusive" : false } , "FLOATING_NOTE_ID" : { "rules" : [ 61 ] , "inclusive" : false } , "FLOATING_NOTE" : { "rules" : [ 58 , 59 , 60 ] , "inclusive" : false } , "NOTE_TEXT" : { "rules" : [ 63 , 64 ] , "inclusive" : false } , "NOTE_ID" : { "rules" : [ 62 ] , "inclusive" : false } , "NOTE" : { "rules" : [ 55 , 56 , 57 ] , "inclusive" : false } , "CLASS_STYLE" : { "rules" : [ 28 ] , "inclusive" : false } , "CLASS" : { "rules" : [ 27 ] , "inclusive" : false } , "CLASSDEFID" : { "rules" : [ 25 ] , "inclusive" : false } , "CLASSDEF" : { "rules" : [ 23 , 24 ] , "inclusive" : false } , "acc_descr_multiline" : { "rules" : [ 20 , 21 ] , "inclusive" : false } , "acc_descr" : { "rules" : [ 18 ] , "inclusive" : false } , "acc_title" : { "rules" : [ 16 ] , "inclusive" : false } , "SCALE" : { "rules" : [ 13 , 14 , 30 , 31 ] , "inclusive" : false } , "ALIAS" : { "rules" : [ ] , "inclusive" : false } , "STATE_ID" : { "rules" : [ 45 ] , "inclusive" : false } , "STATE_STRING" : { "rules" : [ 46 , 47 ] , "inclusive" : false } , "FORK_STATE" : { "rules" : [ ] , "inclusive" : false } , "STATE" : { "rules" : [ 9 , 10 , 33 , 34 , 35 , 36 , 37 , 38 , 43 , 44 , 48 , 49 , 50 ] , "inclusive" : false } , "ID" : { "rules" : [ 9 , 10 ] , "inclusive" : false } , "INITIAL" : { "rules" : [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 10 , 11 , 12 , 15 , 17 , 19 , 22 , 26 , 29 , 32 , 50 , 54 , 65 , 66 , 67 , 68 , 69 , 70 , 71 , 73 , 74 , 75 ] , "inclusive" : true } }
} ;
return lexer2 ;
} ( ) ;
parser2 . lexer = lexer ;
function Parser ( ) {
this . yy = { } ;
}
Parser . prototype = parser2 ;
parser2 . Parser = Parser ;
return new Parser ( ) ;
} ( ) ;
parser . parser = parser ;
const parser$1 = parser ;
const DEFAULT _DIAGRAM _DIRECTION = "LR" ;
const DEFAULT _NESTED _DOC _DIR = "TB" ;
const STMT _STATE = "state" ;
const STMT _RELATION = "relation" ;
const STMT _CLASSDEF = "classDef" ;
const STMT _APPLYCLASS = "applyClass" ;
const DEFAULT _STATE _TYPE = "default" ;
const DIVIDER _TYPE = "divider" ;
const START _NODE = "[*]" ;
const START _TYPE = "start" ;
const END _NODE = START _NODE ;
const END _TYPE = "end" ;
const COLOR _KEYWORD = "color" ;
const FILL _KEYWORD = "fill" ;
const BG _FILL = "bgFill" ;
const STYLECLASS _SEP = "," ;
function newClassesList ( ) {
return { } ;
}
let direction = DEFAULT _DIAGRAM _DIRECTION ;
let rootDoc = [ ] ;
let classes = newClassesList ( ) ;
const newDoc = ( ) => {
return {
relations : [ ] ,
states : { } ,
documents : { }
} ;
} ;
let documents = {
root : newDoc ( )
} ;
let currentDocument = documents . root ;
let startEndCount = 0 ;
let dividerCnt = 0 ;
const lineType = {
LINE : 0 ,
DOTTED _LINE : 1
} ;
const relationType = {
AGGREGATION : 0 ,
EXTENSION : 1 ,
COMPOSITION : 2 ,
DEPENDENCY : 3
} ;
const clone = ( o ) => JSON . parse ( JSON . stringify ( o ) ) ;
const setRootDoc = ( o ) => {
_mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . l . info ( "Setting root doc" , o ) ;
rootDoc = o ;
} ;
const getRootDoc = ( ) => rootDoc ;
const docTranslator = ( parent , node , first ) => {
if ( node . stmt === STMT _RELATION ) {
docTranslator ( parent , node . state1 , true ) ;
docTranslator ( parent , node . state2 , false ) ;
} else {
if ( node . stmt === STMT _STATE ) {
if ( node . id === "[*]" ) {
node . id = first ? parent . id + "_start" : parent . id + "_end" ;
node . start = first ;
} else {
node . id = node . id . trim ( ) ;
}
}
if ( node . doc ) {
const doc = [ ] ;
let currentDoc = [ ] ;
let i ;
for ( i = 0 ; i < node . doc . length ; i ++ ) {
if ( node . doc [ i ] . type === DIVIDER _TYPE ) {
const newNode = clone ( node . doc [ i ] ) ;
newNode . doc = clone ( currentDoc ) ;
doc . push ( newNode ) ;
currentDoc = [ ] ;
} else {
currentDoc . push ( node . doc [ i ] ) ;
}
}
if ( doc . length > 0 && currentDoc . length > 0 ) {
const newNode = {
stmt : STMT _STATE ,
id : ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . G ) ( ) ,
type : "divider" ,
doc : clone ( currentDoc )
} ;
doc . push ( clone ( newNode ) ) ;
node . doc = doc ;
}
node . doc . forEach ( ( docNode ) => docTranslator ( node , docNode , true ) ) ;
}
}
} ;
const getRootDocV2 = ( ) => {
docTranslator ( { id : "root" } , { id : "root" , doc : rootDoc } , true ) ;
return { id : "root" , doc : rootDoc } ;
} ;
const extract = ( _doc ) => {
let doc ;
if ( _doc . doc ) {
doc = _doc . doc ;
} else {
doc = _doc ;
}
_mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . l . info ( doc ) ;
clear ( true ) ;
_mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . l . info ( "Extract" , doc ) ;
doc . forEach ( ( item ) => {
switch ( item . stmt ) {
case STMT _STATE :
addState (
item . id . trim ( ) ,
item . type ,
item . doc ,
item . description ,
item . note ,
item . classes ,
item . styles ,
item . textStyles
) ;
break ;
case STMT _RELATION :
addRelation ( item . state1 , item . state2 , item . description ) ;
break ;
case STMT _CLASSDEF :
addStyleClass ( item . id . trim ( ) , item . classes ) ;
break ;
case STMT _APPLYCLASS :
setCssClass ( item . id . trim ( ) , item . styleClass ) ;
break ;
}
} ) ;
} ;
const addState = function ( id , type = DEFAULT _STATE _TYPE , doc = null , descr = null , note = null , classes2 = null , styles2 = null , textStyles = null ) {
const trimmedId = id == null ? void 0 : id . trim ( ) ;
if ( currentDocument . states [ trimmedId ] === void 0 ) {
_mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . l . info ( "Adding state " , trimmedId , descr ) ;
currentDocument . states [ trimmedId ] = {
id : trimmedId ,
descriptions : [ ] ,
type ,
doc ,
note ,
classes : [ ] ,
styles : [ ] ,
textStyles : [ ]
} ;
} else {
if ( ! currentDocument . states [ trimmedId ] . doc ) {
currentDocument . states [ trimmedId ] . doc = doc ;
}
if ( ! currentDocument . states [ trimmedId ] . type ) {
currentDocument . states [ trimmedId ] . type = type ;
}
}
if ( descr ) {
_mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . l . info ( "Setting state description" , trimmedId , descr ) ;
if ( typeof descr === "string" ) {
addDescription ( trimmedId , descr . trim ( ) ) ;
}
if ( typeof descr === "object" ) {
descr . forEach ( ( des ) => addDescription ( trimmedId , des . trim ( ) ) ) ;
}
}
if ( note ) {
currentDocument . states [ trimmedId ] . note = note ;
currentDocument . states [ trimmedId ] . note . text = _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . e . sanitizeText (
currentDocument . states [ trimmedId ] . note . text ,
( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . c ) ( )
) ;
}
if ( classes2 ) {
_mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . l . info ( "Setting state classes" , trimmedId , classes2 ) ;
const classesList = typeof classes2 === "string" ? [ classes2 ] : classes2 ;
classesList . forEach ( ( klass ) => setCssClass ( trimmedId , klass . trim ( ) ) ) ;
}
if ( styles2 ) {
_mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . l . info ( "Setting state styles" , trimmedId , styles2 ) ;
const stylesList = typeof styles2 === "string" ? [ styles2 ] : styles2 ;
stylesList . forEach ( ( style ) => setStyle ( trimmedId , style . trim ( ) ) ) ;
}
if ( textStyles ) {
_mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . l . info ( "Setting state styles" , trimmedId , styles2 ) ;
const textStylesList = typeof textStyles === "string" ? [ textStyles ] : textStyles ;
textStylesList . forEach ( ( textStyle ) => setTextStyle ( trimmedId , textStyle . trim ( ) ) ) ;
}
} ;
const clear = function ( saveCommon ) {
documents = {
root : newDoc ( )
} ;
currentDocument = documents . root ;
startEndCount = 0 ;
classes = newClassesList ( ) ;
if ( ! saveCommon ) {
( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . t ) ( ) ;
}
} ;
const getState = function ( id ) {
return currentDocument . states [ id ] ;
} ;
const getStates = function ( ) {
return currentDocument . states ;
} ;
const logDocuments = function ( ) {
_mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . l . info ( "Documents = " , documents ) ;
} ;
const getRelations = function ( ) {
return currentDocument . relations ;
} ;
function startIdIfNeeded ( id = "" ) {
let fixedId = id ;
if ( id === START _NODE ) {
startEndCount ++ ;
fixedId = ` ${ START _TYPE } ${ startEndCount } ` ;
}
return fixedId ;
}
function startTypeIfNeeded ( id = "" , type = DEFAULT _STATE _TYPE ) {
return id === START _NODE ? START _TYPE : type ;
}
function endIdIfNeeded ( id = "" ) {
let fixedId = id ;
if ( id === END _NODE ) {
startEndCount ++ ;
fixedId = ` ${ END _TYPE } ${ startEndCount } ` ;
}
return fixedId ;
}
function endTypeIfNeeded ( id = "" , type = DEFAULT _STATE _TYPE ) {
return id === END _NODE ? END _TYPE : type ;
}
function addRelationObjs ( item1 , item2 , relationTitle ) {
let id1 = startIdIfNeeded ( item1 . id . trim ( ) ) ;
let type1 = startTypeIfNeeded ( item1 . id . trim ( ) , item1 . type ) ;
let id2 = startIdIfNeeded ( item2 . id . trim ( ) ) ;
let type2 = startTypeIfNeeded ( item2 . id . trim ( ) , item2 . type ) ;
addState (
id1 ,
type1 ,
item1 . doc ,
item1 . description ,
item1 . note ,
item1 . classes ,
item1 . styles ,
item1 . textStyles
) ;
addState (
id2 ,
type2 ,
item2 . doc ,
item2 . description ,
item2 . note ,
item2 . classes ,
item2 . styles ,
item2 . textStyles
) ;
currentDocument . relations . push ( {
id1 ,
id2 ,
relationTitle : _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . e . sanitizeText ( relationTitle , ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . c ) ( ) )
} ) ;
}
const addRelation = function ( item1 , item2 , title ) {
if ( typeof item1 === "object" ) {
addRelationObjs ( item1 , item2 , title ) ;
} else {
const id1 = startIdIfNeeded ( item1 . trim ( ) ) ;
const type1 = startTypeIfNeeded ( item1 ) ;
const id2 = endIdIfNeeded ( item2 . trim ( ) ) ;
const type2 = endTypeIfNeeded ( item2 ) ;
addState ( id1 , type1 ) ;
addState ( id2 , type2 ) ;
currentDocument . relations . push ( {
id1 ,
id2 ,
title : _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . e . sanitizeText ( title , ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . c ) ( ) )
} ) ;
}
} ;
const addDescription = function ( id , descr ) {
const theState = currentDocument . states [ id ] ;
const _descr = descr . startsWith ( ":" ) ? descr . replace ( ":" , "" ) . trim ( ) : descr ;
theState . descriptions . push ( _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . e . sanitizeText ( _descr , ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . c ) ( ) ) ) ;
} ;
const cleanupLabel = function ( label ) {
if ( label . substring ( 0 , 1 ) === ":" ) {
return label . substr ( 2 ) . trim ( ) ;
} else {
return label . trim ( ) ;
}
} ;
const getDividerId = ( ) => {
dividerCnt ++ ;
return "divider-id-" + dividerCnt ;
} ;
const addStyleClass = function ( id , styleAttributes = "" ) {
if ( classes [ id ] === void 0 ) {
classes [ id ] = { id , styles : [ ] , textStyles : [ ] } ;
}
const foundClass = classes [ id ] ;
if ( styleAttributes !== void 0 && styleAttributes !== null ) {
styleAttributes . split ( STYLECLASS _SEP ) . forEach ( ( attrib ) => {
const fixedAttrib = attrib . replace ( /([^;]*);/ , "$1" ) . trim ( ) ;
if ( attrib . match ( COLOR _KEYWORD ) ) {
const newStyle1 = fixedAttrib . replace ( FILL _KEYWORD , BG _FILL ) ;
const newStyle2 = newStyle1 . replace ( COLOR _KEYWORD , FILL _KEYWORD ) ;
foundClass . textStyles . push ( newStyle2 ) ;
}
foundClass . styles . push ( fixedAttrib ) ;
} ) ;
}
} ;
const getClasses = function ( ) {
return classes ;
} ;
const setCssClass = function ( itemIds , cssClassName ) {
itemIds . split ( "," ) . forEach ( function ( id ) {
let foundState = getState ( id ) ;
if ( foundState === void 0 ) {
const trimmedId = id . trim ( ) ;
addState ( trimmedId ) ;
foundState = getState ( trimmedId ) ;
}
foundState . classes . push ( cssClassName ) ;
} ) ;
} ;
const setStyle = function ( itemId , styleText ) {
const item = getState ( itemId ) ;
if ( item !== void 0 ) {
item . textStyles . push ( styleText ) ;
}
} ;
const setTextStyle = function ( itemId , cssClassName ) {
const item = getState ( itemId ) ;
if ( item !== void 0 ) {
item . textStyles . push ( cssClassName ) ;
}
} ;
const getDirection = ( ) => direction ;
const setDirection = ( dir ) => {
direction = dir ;
} ;
const trimColon = ( str ) => str && str [ 0 ] === ":" ? str . substr ( 1 ) . trim ( ) : str . trim ( ) ;
const db = {
getConfig : ( ) => ( 0 , _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . c ) ( ) . state ,
addState ,
clear ,
getState ,
getStates ,
getRelations ,
getClasses ,
getDirection ,
addRelation ,
getDividerId ,
setDirection ,
cleanupLabel ,
lineType ,
relationType ,
logDocuments ,
getRootDoc ,
setRootDoc ,
getRootDocV2 ,
extract ,
trimColon ,
getAccTitle : _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . g ,
setAccTitle : _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . s ,
getAccDescription : _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . a ,
setAccDescription : _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . b ,
addStyleClass ,
setCssClass ,
addDescription ,
setDiagramTitle : _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . q ,
getDiagramTitle : _mermaid _934d9bea _js _ _WEBPACK _IMPORTED _MODULE _0 _ _ . r
} ;
const getStyles = ( options ) => `
defs # statediagram - barbEnd {
fill : $ { options . transitionColor } ;
stroke : $ { options . transitionColor } ;
}
g . stateGroup text {
fill : $ { options . nodeBorder } ;
stroke : none ;
font - size : 10 px ;
}
g . stateGroup text {
fill : $ { options . textColor } ;
stroke : none ;
font - size : 10 px ;
}
g . stateGroup . state - title {
font - weight : bolder ;
fill : $ { options . stateLabelColor } ;
}
g . stateGroup rect {
fill : $ { options . mainBkg } ;
stroke : $ { options . nodeBorder } ;
}
g . stateGroup line {
stroke : $ { options . lineColor } ;
stroke - width : 1 ;
}
. transition {
stroke : $ { options . transitionColor } ;
stroke - width : 1 ;
fill : none ;
}
. stateGroup . composit {
fill : $ { options . background } ;
border - bottom : 1 px
}
. stateGroup . alt - composit {
fill : # e0e0e0 ;
border - bottom : 1 px
}
. state - note {
stroke : $ { options . noteBorderColor } ;
fill : $ { options . noteBkgColor } ;
text {
fill : $ { options . noteTextColor } ;
stroke : none ;
font - size : 10 px ;
}
}
. stateLabel . box {
stroke : none ;
stroke - width : 0 ;
fill : $ { options . mainBkg } ;
opacity : 0.5 ;
}
. edgeLabel . label rect {
fill : $ { options . labelBackgroundColor } ;
opacity : 0.5 ;
}
. edgeLabel . label text {
fill : $ { options . transitionLabelColor || options . tertiaryTextColor } ;
}
. label div . edgeLabel {
color : $ { options . transitionLabelColor || options . tertiaryTextColor } ;
}
. stateLabel text {
fill : $ { options . stateLabelColor } ;
font - size : 10 px ;
font - weight : bold ;
}
. node circle . state - start {
fill : $ { options . specialStateColor } ;
stroke : $ { options . specialStateColor } ;
}
. node . fork - join {
fill : $ { options . specialStateColor } ;
stroke : $ { options . specialStateColor } ;
}
. node circle . state - end {
fill : $ { options . innerEndBackground } ;
stroke : $ { options . background } ;
stroke - width : 1.5
}
. end - state - inner {
fill : $ { options . compositeBackground || options . background } ;
// stroke: ${options.background};
stroke - width : 1.5
}
. node rect {
fill : $ { options . stateBkg || options . mainBkg } ;
stroke : $ { options . stateBorder || options . nodeBorder } ;
stroke - width : 1 px ;
}
. node polygon {
fill : $ { options . mainBkg } ;
stroke : $ { options . stateBorder || options . nodeBorder } ; ;
stroke - width : 1 px ;
}
# statediagram - barbEnd {
fill : $ { options . lineColor } ;
}
. statediagram - cluster rect {
fill : $ { options . compositeTitleBackground } ;
stroke : $ { options . stateBorder || options . nodeBorder } ;
stroke - width : 1 px ;
}
. cluster - label , . nodeLabel {
color : $ { options . stateLabelColor } ;
}
. statediagram - cluster rect . outer {
rx : 5 px ;
ry : 5 px ;
}
. statediagram - state . divider {
stroke : $ { options . stateBorder || options . nodeBorder } ;
}
. statediagram - state . title - state {
rx : 5 px ;
ry : 5 px ;
}
. statediagram - cluster . statediagram - cluster . inner {
fill : $ { options . compositeBackground || options . background } ;
}
. statediagram - cluster . statediagram - cluster - alt . inner {
fill : $ { options . altBackground ? options . altBackground : "#efefef" } ;
}
. statediagram - cluster . inner {
rx : 0 ;
ry : 0 ;
}
. statediagram - state rect . basic {
rx : 5 px ;
ry : 5 px ;
}
. statediagram - state rect . divider {
stroke - dasharray : 10 , 10 ;
fill : $ { options . altBackground ? options . altBackground : "#efefef" } ;
}
. note - edge {
stroke - dasharray : 5 ;
}
. statediagram - note rect {
fill : $ { options . noteBkgColor } ;
stroke : $ { options . noteBorderColor } ;
stroke - width : 1 px ;
rx : 0 ;
ry : 0 ;
}
. statediagram - note rect {
fill : $ { options . noteBkgColor } ;
stroke : $ { options . noteBorderColor } ;
stroke - width : 1 px ;
rx : 0 ;
ry : 0 ;
}
. statediagram - note text {
fill : $ { options . noteTextColor } ;
}
. statediagram - note . nodeLabel {
color : $ { options . noteTextColor } ;
}
. statediagram . edgeLabel {
color : red ; // ${options.noteTextColor};
}
# dependencyStart , # dependencyEnd {
fill : $ { options . lineColor } ;
stroke : $ { options . lineColor } ;
stroke - width : 1 ;
}
. statediagramTitleText {
text - anchor : middle ;
font - size : 18 px ;
fill : $ { options . textColor } ;
}
` ;
const styles = getStyles ;
/***/ } )
} ;
;