{{! Copyright (c) HashiCorp, Inc. SPDX-License-Identifier: MPL-2.0 }}

{{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}}