{{chain.ServiceName}} Router
{{#each routes as |item|}}
{{/each}}
Splitters
{{#each (sort-by 'Name' splitters) as |item|}}
{{/each}}
Resolvers
{{#each (sort-by 'Name' resolvers) as |item|}}
{{/each}}
{{nodes}}
{{#each routes as |item|}} {{#if item.rect}} {{#let item.rect item.NextItem.rect as |src destRect|}} {{#let (tween-to (hash x=destRect.x y=(add destRect.y (div destRect.height 2)) ) (concat item.ID)) as |dest|}}
' item.NextNode}} d={{ svg-curve (hash x=dest.x y=(sub dest.y 0) ) src=(hash x=src.right y=(add src.y (div src.height 2)) )}} /> {{/let}} {{/let}} {{/if}} {{/each}} {{#each splitters as |splitter|}} {{#if splitter.rect}} {{#let splitter.rect as |src|}} {{#each splitter.Splits as |item index|}} {{#let item.NextItem.rect as |destRect|}} {{#let (tween-to (hash x=destRect.x y=(add destRect.y (div destRect.height 2)) ) (concat splitter.ID '-' index)) as |dest|}}
' item.NextNode}} class="split" d={{ svg-curve (hash x=dest.x y=dest.y ) src=(hash x=src.right y=(add src.y (div src.height 2)) )}} /> {{/let}} {{/let}} {{/each}} {{/let}} {{/if}} {{/each}}
{{#each routes as |item|}} {{#if (string-starts-with item.NextNode 'resolver:') }} {{#let (or item.NextItem.rect (hash y=0 height=0)) as |dest|}}
{{/let}} {{/if}} {{/each}} {{#each splitters as |item|}} {{#each item.Splits as |item|}} {{#let (or item.NextItem.rect (hash y=0 height=0)) as |dest|}}
{{/let}} {{/each}} {{/each}}
{{#each routes as |item|}} {{#if (string-starts-with item.NextNode 'splitter:') }} {{#let (or item.NextItem.rect (hash y=0 height=0)) as |dest|}}
{{/let}} {{/if}} {{/each}}