Merge branch 'master' into pdf-link-overlay
36
README.md
|
|
@ -24,24 +24,24 @@ https://user-images.githubusercontent.com/3120367/206125010-bd1fea8e-248a-43e7-8
|
|||
# Table of Contents
|
||||
|
||||
<!-- toc -->
|
||||
- <a href="#what-does-d2-look-like" id="toc-what-does-d2-look-like">What does D2 look like?</a>
|
||||
- <a href="#quickstart" id="toc-quickstart">Quickstart</a>
|
||||
- <a href="#install" id="toc-install">Install</a>
|
||||
- <a href="#d2-as-a-library" id="toc-d2-as-a-library">D2 as a library</a>
|
||||
- <a href="#themes" id="toc-themes">Themes</a>
|
||||
- <a href="#fonts" id="toc-fonts">Fonts</a>
|
||||
- <a href="#export-file-types" id="toc-export-file-types">Export file types</a>
|
||||
- <a href="#language-tooling" id="toc-language-tooling">Language tooling</a>
|
||||
- <a href="#plugins" id="toc-plugins">Plugins</a>
|
||||
- <a href="#comparison" id="toc-comparison">Comparison</a>
|
||||
- <a href="#contributing" id="toc-contributing">Contributing</a>
|
||||
- <a href="#license" id="toc-license">License</a>
|
||||
- <a href="#related" id="toc-related">Related</a>
|
||||
- <a href="#official-plugins" id="toc-official-plugins">Official plugins</a>
|
||||
- <a href="#community-plugins" id="toc-community-plugins">Community plugins</a>
|
||||
- <a href="#misc" id="toc-misc">Misc</a>
|
||||
- <a href="#faq" id="toc-faq">FAQ</a>
|
||||
- <a href="#open-source-projects-documenting-with-d2" id="toc-open-source-projects-documenting-with-d2">Open-source projects documenting with D2</a>
|
||||
- [What does D2 look like?](#what-does-d2-look-like)
|
||||
- [Quickstart](#quickstart)
|
||||
- [Install](#install)
|
||||
- [D2 as a library](#d2-as-a-library)
|
||||
- [Themes](#themes)
|
||||
- [Fonts](#fonts)
|
||||
- [Export file types](#export-file-types)
|
||||
- [Language tooling](#language-tooling)
|
||||
- [Plugins](#plugins)
|
||||
- [Comparison](#comparison)
|
||||
- [Contributing](#contributing)
|
||||
- [License](#license)
|
||||
- [Related](#related)
|
||||
- [Official plugins](#official-plugins)
|
||||
- [Community plugins](#community-plugins)
|
||||
- [Misc](#misc)
|
||||
- [FAQ](#faq)
|
||||
- [Open-source projects documenting with D2](#open-source-projects-documenting-with-d2)
|
||||
|
||||
## What does D2 look like?
|
||||
|
||||
|
|
|
|||
|
|
@ -346,10 +346,10 @@ if [ "\$(uname -m)" = aarch64 ]; then
|
|||
docker context create ci-d2-linux-amd64 --docker "host=ssh://$CI_D2_LINUX_AMD64"
|
||||
fi
|
||||
if ! docker buildx ls | grep -qF 'd2 *'; then
|
||||
docker buildx create --use --name d2 default
|
||||
docker buildx create --use --name d2 --platform linux/arm64 default
|
||||
fi
|
||||
if ! docker buildx inspect d2 | grep -qF ci-d2-linux-amd64; then
|
||||
docker buildx create --append --name d2 ci-d2-linux-amd64
|
||||
docker buildx create --append --name d2 --platform linux/amd64 ci-d2-linux-amd64
|
||||
fi
|
||||
fi
|
||||
|
||||
|
|
|
|||
|
|
@ -1,22 +1,5 @@
|
|||
#### Features 🚀
|
||||
|
||||
- PDF exports are now supported. [#120](https://github.com/terrastruct/d2/issues/120)
|
||||
- Diagram background can be styled. [#910](https://github.com/terrastruct/d2/issues/910)
|
||||
- 3D Hexagons are now supported. [#869](https://github.com/terrastruct/d2/issues/869)
|
||||
- The arm64 docker container now supports rendering diagrams to pngs. [#917](https://github.com/terrastruct/d2/pull/917)
|
||||
|
||||
#### Improvements 🧹
|
||||
|
||||
- `near` key set to sequence diagram children get an appropriate error message. [#899](https://github.com/terrastruct/d2/issues/899)
|
||||
- `class` and `sql_table` shape respect `font-color` styling as header font color. [#899](https://github.com/terrastruct/d2/issues/899)
|
||||
- SVG fits to screen by default in both watch mode and as a standalone SVG (this time with just CSS, no JS). [#725](https://github.com/terrastruct/d2/issues/725)
|
||||
- Only chromium is installed when rendering png diagrams instead of also installing webkit and firefox. [#835](https://github.com/terrastruct/d2/issues/835)
|
||||
- Multiboard output is now self-contained and less confusing. See [#923](https://github.com/terrastruct/d2/pull/923)
|
||||
|
||||
#### Bugfixes ⛑️
|
||||
|
||||
- Error reported when no actors are declared in sequence diagram. [#886](https://github.com/terrastruct/d2/pull/886)
|
||||
- Fixed img bundling on image shapes. [#889](https://github.com/terrastruct/d2/issues/889)
|
||||
- `class` shape as sequence diagram actors had wrong colors. [#899](https://github.com/terrastruct/d2/issues/899)
|
||||
- Fix regression in last release where some hex codes were not working. [#922](https://github.com/terrastruct/d2/pull/922)
|
||||
- Fixes low resolution pngs. [#931](https://github.com/terrastruct/d2/pull/931)
|
||||
|
|
|
|||
32
ci/release/changelogs/v0.2.2.md
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
`style` keywords now apply at the root level, letting you style the diagram background and frame like so:
|
||||
|
||||

|
||||
[playground link](https://play.d2lang.com/?script=tFRdaxs7EH3fXzEP15cErry-GwJFlIC9cdJAXIL9kJeCUbSTtchacqVZ56P4v5eRd9d2k9LkofjFGo1mzplzdmIVCT8SAJ6mhBGaEhOAbT8J58o_jKp6F9pCkPApATjQRgL5GpNNkpChtmgcrIQvplxAhWuswNh7rwL5WlPtY1memATCJ0oAeMwSyK2ERkvoY98OI0AnpITT0wRgww3VY5BQB4EqkPg_Zh4-itTIKxtWyqOlGN2btIRtrQQgr1xd3HtnqX3NZpGwIFoFmaZ8Cn1C37Loa7dM1WNIvyI9Ov9gbNnLBv_2skHuLKGlXjY4x8qs0T-nw6V6cVbEJhfcZF6xH8Vd2Q_rsoG1h_wNlA1OgNvhxS7tvSBnqGtv6Pm_Xja4KtBS83-Ld7mqjLIa0-HtTNwOL16j27yeE4gzmCj_gGRsCcEQ8v2fIvwqn05iqemkJdKYYYFPqnR2N4_-SdH4q2k_O_moPDNyXpXYSjA7EZeV0gb9ryTfoMfdAikyGlQISIFTsLqTML4ewdG1UwXcqYpH54__gm3GlQpktOBGYhQbGVuK8fVo3jwXFV-1GN5BKaIf3lyBx-81ho4S343zjE_jPOt0OTRluxQ7TbbGeD_p-aV39Yo9yCnpOM-EsYEYvNDOkjL2NyyGNS1ghn5tdHSVR15ovH4mSGqNPiBMmxgcffuHf8cNG-bW5u-FWN1LJNA18U7HOIpc6QV-yGMvtcd0zh-RsgZDOuQA68mVetlgioUJvWxw411Ra9aXC-2--631zVKVnctbsPBZnIHmOiySjqgPBrFJkni-8W5tCvQhLsX-fk73ZpfzMwAA__8%3D&)
|
||||
|
||||
(also showcases a little 3d hexagon, newly supported thanks to our newest contributor @JettChenT !)
|
||||
|
||||
PDF is also now supported as an export format:
|
||||
|
||||
[demo.pdf](https://github.com/terrastruct/d2/files/10846644/demo.pdf)
|
||||
|
||||
#### Features 🚀
|
||||
|
||||
- PDF exports. See [docs](https://d2lang.com/tour/exports#pdf). [#120](https://github.com/terrastruct/d2/issues/120)
|
||||
- Diagram background and frame can be added and styled. See [docs](https://d2lang.com/tour/style#root). [#910](https://github.com/terrastruct/d2/pull/910)
|
||||
- `3d` works on `hexagon` shapes. [#869](https://github.com/terrastruct/d2/issues/869)
|
||||
- The arm64 docker container supports rendering diagrams to PNGs. [#917](https://github.com/terrastruct/d2/pull/917)
|
||||
|
||||
#### Improvements 🧹
|
||||
|
||||
- `near` key set to sequence diagram children get an appropriate error message. [#899](https://github.com/terrastruct/d2/pull/899)
|
||||
- `class` and `sql_table` shape respect `font-color` styling as header font color. [#899](https://github.com/terrastruct/d2/pull/899)
|
||||
- SVG fits to screen by default in both watch mode and as a standalone SVG (this time with just CSS, no JS). [#725](https://github.com/terrastruct/d2/pull/725)
|
||||
- Only chromium is installed when rendering png diagrams instead of also installing webkit and firefox. [#835](https://github.com/terrastruct/d2/issues/835)
|
||||
- Multiboard output is now self-contained and less confusing. See [#923](https://github.com/terrastruct/d2/pull/923)
|
||||
|
||||
#### Bugfixes ⛑️
|
||||
|
||||
- Error reported when no actors are declared in sequence diagram. [#886](https://github.com/terrastruct/d2/pull/886)
|
||||
- Fixes img bundling on image shapes. [#889](https://github.com/terrastruct/d2/issues/889)
|
||||
- `class` shape as sequence diagram actors had wrong colors. [#899](https://github.com/terrastruct/d2/pull/899)
|
||||
- Fixes regression in last release where some hex codes were not working. [#922](https://github.com/terrastruct/d2/pull/922)
|
||||
2
ci/sub
|
|
@ -1 +1 @@
|
|||
Subproject commit cb8a9993d7e1d91815650c5baade7658622189b9
|
||||
Subproject commit 5198280010adc30aabb611579579916abfe20a45
|
||||
|
|
@ -463,8 +463,9 @@ func renderPDF(ctx context.Context, ms *xmain.State, plugin d2plugin.Plugin, ske
|
|||
// diagram.Root.Fill = "transparent"
|
||||
|
||||
svg, err = d2svg.Render(diagram, &d2svg.RenderOpts{
|
||||
Pad: int(pad),
|
||||
Sketch: sketch,
|
||||
Pad: int(pad),
|
||||
Sketch: sketch,
|
||||
SetDimensions: true,
|
||||
})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
|
|
|||
|
|
@ -300,26 +300,9 @@ func Layout(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) (err
|
|||
// If the edge is connected to two descendants that are about to be downshifted, their whole route gets downshifted
|
||||
movedEdges := make(map[*d2graph.Edge]struct{})
|
||||
for _, e := range g.Edges {
|
||||
currSrc := e.Src
|
||||
currDst := e.Dst
|
||||
isSrcDesc := e.Src.IsDescendantOf(obj)
|
||||
isDstDesc := e.Dst.IsDescendantOf(obj)
|
||||
|
||||
isSrcDesc := false
|
||||
isDstDesc := false
|
||||
|
||||
for currSrc != nil {
|
||||
if currSrc == obj {
|
||||
isSrcDesc = true
|
||||
break
|
||||
}
|
||||
currSrc = currSrc.Parent
|
||||
}
|
||||
for currDst != nil {
|
||||
if currDst == obj {
|
||||
isDstDesc = true
|
||||
break
|
||||
}
|
||||
currDst = currDst.Parent
|
||||
}
|
||||
if isSrcDesc && isDstDesc {
|
||||
stepSize := subtract
|
||||
if e.Src != obj || e.Dst != obj {
|
||||
|
|
@ -332,45 +315,74 @@ func Layout(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) (err
|
|||
}
|
||||
}
|
||||
|
||||
// Downshift descendents and edges that have one endpoint connected to a descendant
|
||||
q := []*d2graph.Object{obj}
|
||||
// Downshift descendants and edges that have one endpoint connected to a descendant
|
||||
for len(q) > 0 {
|
||||
curr := q[0]
|
||||
q = q[1:]
|
||||
|
||||
stepSize := subtract
|
||||
// The object itself needs to move down the height it was just subtracted
|
||||
// all descendents move half, to maintain vertical padding
|
||||
// all descendants move half, to maintain vertical padding
|
||||
if curr != obj {
|
||||
stepSize /= 2.
|
||||
}
|
||||
curr.TopLeft.Y += stepSize
|
||||
almostEqual := func(a, b float64) bool {
|
||||
return b-1 <= a && a <= b+1
|
||||
}
|
||||
shouldMove := func(p *geo.Point) bool {
|
||||
if curr != obj {
|
||||
return true
|
||||
}
|
||||
// Edge should only move if it's not connected to the bottom side of the shrinking container
|
||||
// Give some margin for error
|
||||
return !(obj.TopLeft.Y+obj.Height-1 <= p.Y && obj.TopLeft.Y+obj.Height+1 >= p.Y && p.X != obj.TopLeft.X && p.X != (obj.TopLeft.X+obj.Width))
|
||||
if isHorizontal {
|
||||
// Only move horizontal edges if they are connected to the top side of the shrinking container
|
||||
return almostEqual(p.Y, obj.TopLeft.Y-stepSize)
|
||||
} else {
|
||||
// Edge should only move if it's not connected to the bottom side of the shrinking container
|
||||
return !almostEqual(p.Y, obj.TopLeft.Y+obj.Height)
|
||||
}
|
||||
}
|
||||
for _, e := range g.Edges {
|
||||
if _, ok := movedEdges[e]; ok {
|
||||
continue
|
||||
}
|
||||
moveWholeEdge := false
|
||||
if e.Src == curr {
|
||||
// Don't move src points on side of container
|
||||
if almostEqual(e.Route[0].X, obj.TopLeft.X) || almostEqual(e.Route[0].X, obj.TopLeft.X+obj.Width) {
|
||||
// Unless the dst is also on a container
|
||||
if e.Dst.LabelHeight == nil || len(e.Dst.ChildrenArray) <= 0 {
|
||||
continue
|
||||
}
|
||||
}
|
||||
if shouldMove(e.Route[0]) {
|
||||
e.Route[0].Y += stepSize
|
||||
if isHorizontal && e.Src.Parent != g.Root && e.Dst.Parent != g.Root {
|
||||
moveWholeEdge = true
|
||||
} else {
|
||||
e.Route[0].Y += stepSize
|
||||
}
|
||||
}
|
||||
}
|
||||
if e.Dst == curr {
|
||||
if !moveWholeEdge && e.Dst == curr {
|
||||
if shouldMove(e.Route[len(e.Route)-1]) {
|
||||
e.Route[len(e.Route)-1].Y += stepSize
|
||||
if isHorizontal && e.Dst.Parent != g.Root && e.Src.Parent != g.Root {
|
||||
moveWholeEdge = true
|
||||
} else {
|
||||
e.Route[len(e.Route)-1].Y += stepSize
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if moveWholeEdge {
|
||||
for _, p := range e.Route {
|
||||
p.Y += stepSize / 2.
|
||||
}
|
||||
movedEdges[e] = struct{}{}
|
||||
}
|
||||
|
||||
}
|
||||
for _, c := range curr.ChildrenArray {
|
||||
q = append(q, c)
|
||||
}
|
||||
q = append(q, curr.ChildrenArray...)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
# Contributing
|
||||
|
||||
<!-- toc -->
|
||||
- <a href="#welcome" id="toc-welcome">Welcome</a>
|
||||
- <a href="#ci" id="toc-ci">CI</a>
|
||||
- <a href="#logistics" id="toc-logistics">Logistics</a>
|
||||
- <a href="#dev" id="toc-dev">Dev</a>
|
||||
- <a href="#content" id="toc-content">Content</a>
|
||||
- <a href="#tests" id="toc-tests">Tests</a>
|
||||
- <a href="#documentation" id="toc-documentation">Documentation</a>
|
||||
- <a href="#questions" id="toc-questions">Questions</a>
|
||||
- [Welcome](#welcome)
|
||||
- [CI](#ci)
|
||||
- [Logistics](#logistics)
|
||||
- [Dev](#dev)
|
||||
- [Content](#content)
|
||||
- [Tests](#tests)
|
||||
- [Documentation](#documentation)
|
||||
- [Questions](#questions)
|
||||
|
||||
## Welcome
|
||||
|
||||
|
|
|
|||
|
|
@ -3,21 +3,21 @@
|
|||
You may install `d2` through any of the following methods.
|
||||
|
||||
<!-- toc -->
|
||||
- <a href="#installsh" id="toc-installsh">install.sh</a>
|
||||
- <a href="#security" id="toc-security">Security</a>
|
||||
- <a href="#macos-homebrew" id="toc-macos-homebrew">macOS (Homebrew)</a>
|
||||
- <a href="#linux" id="toc-linux">Linux</a>
|
||||
- <a href="#void-linux" id="toc-void-linux">Void Linux</a>
|
||||
- <a href="#standalone" id="toc-standalone">Standalone</a>
|
||||
- <a href="#manual" id="toc-manual">Manual</a>
|
||||
- <a href="#prefix" id="toc-prefix">PREFIX</a>
|
||||
- <a href="#from-source" id="toc-from-source">From source</a>
|
||||
- <a href="#source-release" id="toc-source-release">Source Release</a>
|
||||
- <a href="#windows" id="toc-windows">Windows</a>
|
||||
- <a href="#release-archives" id="toc-release-archives">Release archives</a>
|
||||
- <a href="#wsl" id="toc-wsl">WSL</a>
|
||||
- <a href="#docker" id="toc-docker">Docker</a>
|
||||
- <a href="#coming-soon" id="toc-coming-soon">Coming soon</a>
|
||||
- [install.sh](#installsh)
|
||||
- [Security](#security)
|
||||
- [macOS (Homebrew)](#macos-homebrew)
|
||||
- [Linux](#linux)
|
||||
- [Void Linux](#void-linux)
|
||||
- [Standalone](#standalone)
|
||||
- [Manual](#manual)
|
||||
- [PREFIX](#prefix)
|
||||
- [From source](#from-source)
|
||||
- [Source Release](#source-release)
|
||||
- [Windows](#windows)
|
||||
- [Release archives](#release-archives)
|
||||
- [WSL](#wsl)
|
||||
- [Docker](#docker)
|
||||
- [Coming soon](#coming-soon)
|
||||
|
||||
## install.sh
|
||||
|
||||
|
|
|
|||
|
|
@ -582,6 +582,66 @@ b
|
|||
`,
|
||||
},
|
||||
loadFromFile(t, "unconnected"),
|
||||
{
|
||||
name: "straight_hierarchy_container_direction_right",
|
||||
script: `
|
||||
direction: right
|
||||
a
|
||||
c
|
||||
b
|
||||
|
||||
l1: {
|
||||
b
|
||||
a
|
||||
c
|
||||
}
|
||||
|
||||
b -> l1.b
|
||||
a -> l1.a
|
||||
c -> l1.c
|
||||
|
||||
l2c1: {
|
||||
a
|
||||
}
|
||||
l1.a -> l2c1.a
|
||||
|
||||
l2c3: {
|
||||
c
|
||||
}
|
||||
l1.c -> l2c3.c
|
||||
|
||||
l2c2: {
|
||||
b
|
||||
}
|
||||
l1.b -> l2c2.b
|
||||
|
||||
l3c1: {
|
||||
a
|
||||
b
|
||||
}
|
||||
l2c1.a -> l3c1.a
|
||||
l2c2.b -> l3c1.b
|
||||
|
||||
l3c2: {
|
||||
c
|
||||
}
|
||||
l2c3.c -> l3c2.c
|
||||
|
||||
l4: {
|
||||
c1: {
|
||||
a
|
||||
}
|
||||
c2: {
|
||||
b
|
||||
}
|
||||
c3: {
|
||||
c
|
||||
}
|
||||
}
|
||||
l3c1.a -> l4.c1.a
|
||||
l3c1.b -> l4.c2.b
|
||||
l3c2.c -> l4.c3.c`,
|
||||
},
|
||||
}
|
||||
|
||||
runa(t, tcs)
|
||||
|
|
|
|||
1794
e2etests/testdata/regression/straight_hierarchy_container_direction_right/dagre/board.exp.json
generated
vendored
Normal file
30
e2etests/testdata/regression/straight_hierarchy_container_direction_right/dagre/sketch.exp.svg
vendored
Normal file
|
After Width: | Height: | Size: 662 KiB |
1582
e2etests/testdata/regression/straight_hierarchy_container_direction_right/elk/board.exp.json
generated
vendored
Normal file
30
e2etests/testdata/regression/straight_hierarchy_container_direction_right/elk/sketch.exp.svg
vendored
Normal file
|
After Width: | Height: | Size: 661 KiB |
12
e2etests/testdata/regression/unconnected/dagre/board.exp.json
generated
vendored
|
|
@ -692,11 +692,11 @@
|
|||
},
|
||||
{
|
||||
"x": 599,
|
||||
"y": 300.2
|
||||
"y": 292
|
||||
},
|
||||
{
|
||||
"x": 639,
|
||||
"y": 333
|
||||
"y": 292
|
||||
}
|
||||
],
|
||||
"isCurve": true,
|
||||
|
|
@ -1088,11 +1088,11 @@
|
|||
},
|
||||
{
|
||||
"x": 599,
|
||||
"y": 373.2
|
||||
"y": 365
|
||||
},
|
||||
{
|
||||
"x": 639,
|
||||
"y": 406
|
||||
"y": 365
|
||||
}
|
||||
],
|
||||
"isCurve": true,
|
||||
|
|
@ -1136,11 +1136,11 @@
|
|||
},
|
||||
{
|
||||
"x": 599,
|
||||
"y": 499.2
|
||||
"y": 491
|
||||
},
|
||||
{
|
||||
"x": 639,
|
||||
"y": 532
|
||||
"y": 491
|
||||
}
|
||||
],
|
||||
"isCurve": true,
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid meet" viewBox="0 0 1513 605"><svg id="d2-svg" width="1513" height="605" viewBox="-1 -72 1513 605"><rect x="-1.000000" y="-72.000000" width="1513.000000" height="605.000000" rx="0.000000" class=" fill-N7" stroke-width="0" /><style type="text/css"><![CDATA[
|
||||
<?xml version="1.0" encoding="utf-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid meet" viewBox="0 0 1513 597"><svg id="d2-svg" width="1513" height="597" viewBox="-1 -72 1513 597"><rect x="-1.000000" y="-72.000000" width="1513.000000" height="597.000000" rx="0.000000" class=" fill-N7" stroke-width="0" /><style type="text/css"><![CDATA[
|
||||
.text {
|
||||
font-family: "font-regular";
|
||||
}
|
||||
|
|
@ -772,7 +772,7 @@
|
|||
<li>Staging</li>
|
||||
<li>Dispatch to Site</li>
|
||||
</ul>
|
||||
</div></foreignObject></g></g><g id="Customer Site.Installation"><g class="shape" ><rect x="55.000000" y="60.000000" width="126.000000" height="66.000000" class=" stroke-B1 fill-B5" style="stroke-width:2;" /></g><text x="118.000000" y="98.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">Installation</text></g><g id="Customer Site.Support"><g class="shape" ><rect x="66.000000" y="186.000000" width="103.000000" height="66.000000" class=" stroke-B1 fill-B5" style="stroke-width:2;" /></g><text x="117.500000" y="224.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">Support</text></g><g id="(OEM Factory -> OEM Warehouse)[0]"><marker id="mk-3488378134" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" class="connection fill-B1" stroke-width="2" /> </marker><path d="M 186.992796 360.914281 C 225.000000 364.148936 299.500000 365.000000 353.500000 365.000000" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-3488378134)" mask="url(#745835176)" /></g><g id="(OEM Factory -> Distributor Warehouse)[0]"><path d="M 147.318559 389.513396 C 217.202206 470.400000 295.000000 491.000000 331.000000 491.000000" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-3488378134)" mask="url(#745835176)" /></g><g id="(OEM Factory -> Gos Warehouse)[0]"><path d="M 180.810244 321.054933 C 223.809524 298.000000 245.000000 292.000000 260.000000 292.000000 C 275.000000 292.000000 315.400000 292.000000 361.000000 292.000000 C 406.600000 292.000000 599.000000 300.200000 635.906929 330.463682" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-3488378134)" mask="url(#745835176)" /></g><g id="Gos Warehouse.(Master -> Regional-1)[0]"><path d="M 782.450980 384.197777 C 822.569863 414.200000 843.000000 422.000000 879.000000 422.000000" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-3488378134)" mask="url(#745835176)" /></g><g id="Gos Warehouse.(Master -> Regional-2)[0]"><path d="M 780.846867 314.786926 C 822.251351 283.200000 855.000000 275.000000 888.000000 275.000000 C 921.000000 275.000000 1063.000000 277.400000 1099.110451 286.066508" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-3488378134)" mask="url(#745835176)" /></g><g id="Gos Warehouse.(Master -> Regional-N)[0]"><path d="M 763.818430 314.442054 C 818.912863 246.000000 855.000000 228.500000 888.000000 228.500000 C 921.000000 228.500000 965.000000 228.500000 998.000000 228.500000 C 1031.000000 228.500000 1075.000000 228.500000 1108.000000 228.500000 C 1141.000000 228.500000 1284.600000 234.500000 1327.447129 256.662308" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-3488378134)" mask="url(#745835176)" /></g><g id="Gos Warehouse.(Regional-1 -> Regional-2)[0]"><path d="M 1004.836125 395.298037 C 1043.000000 378.818182 1065.000000 366.500000 1109.671799 336.718801" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-3488378134)" mask="url(#745835176)" /></g><g id="Gos Warehouse.(Regional-2 -> Regional-N)[0]"><path d="M 1225.000000 301.500000 C 1263.000000 301.500000 1284.600000 300.500000 1327.014781 296.843553" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-3488378134)" mask="url(#745835176)" /></g><g id="Gos Warehouse.(Regional-N -> Regional-1)[0]"><path d="M 1365.942336 325.097570 C 1291.829114 423.500000 1251.000000 448.500000 1218.000000 448.500000 C 1185.000000 448.500000 1043.000000 446.100000 1006.889549 437.433492" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-3488378134)" mask="url(#745835176)" /></g><g id="(OEM Warehouse -> Gos Warehouse)[0]"><path d="M 519.500000 365.000000 C 574.700000 365.000000 599.000000 373.200000 635.906929 403.463682" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-3488378134)" mask="url(#745835176)" /></g><g id="(Distributor Warehouse -> Gos Warehouse)[0]"><path d="M 541.000000 491.000000 C 579.000000 491.000000 599.000000 499.200000 635.906929 529.463682" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-3488378134)" mask="url(#745835176)" /></g><mask id="745835176" maskUnits="userSpaceOnUse" x="-1" y="-72" width="1513" height="605">
|
||||
<rect x="-1" y="-72" width="1513" height="605" fill="white"></rect>
|
||||
</div></foreignObject></g></g><g id="Customer Site.Installation"><g class="shape" ><rect x="55.000000" y="60.000000" width="126.000000" height="66.000000" class=" stroke-B1 fill-B5" style="stroke-width:2;" /></g><text x="118.000000" y="98.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">Installation</text></g><g id="Customer Site.Support"><g class="shape" ><rect x="66.000000" y="186.000000" width="103.000000" height="66.000000" class=" stroke-B1 fill-B5" style="stroke-width:2;" /></g><text x="117.500000" y="224.500000" class="text-bold fill-N1" style="text-anchor:middle;font-size:16px">Support</text></g><g id="(OEM Factory -> OEM Warehouse)[0]"><marker id="mk-3488378134" markerWidth="10.000000" markerHeight="12.000000" refX="7.000000" refY="6.000000" viewBox="0.000000 0.000000 10.000000 12.000000" orient="auto" markerUnits="userSpaceOnUse"> <polygon points="0.000000,0.000000 10.000000,6.000000 0.000000,12.000000" class="connection fill-B1" stroke-width="2" /> </marker><path d="M 186.992796 360.914281 C 225.000000 364.148936 299.500000 365.000000 353.500000 365.000000" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-3488378134)" mask="url(#319647009)" /></g><g id="(OEM Factory -> Distributor Warehouse)[0]"><path d="M 147.318559 389.513396 C 217.202206 470.400000 295.000000 491.000000 331.000000 491.000000" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-3488378134)" mask="url(#319647009)" /></g><g id="(OEM Factory -> Gos Warehouse)[0]"><path d="M 180.810244 321.054933 C 223.809524 298.000000 245.000000 292.000000 260.000000 292.000000 C 275.000000 292.000000 315.400000 292.000000 361.000000 292.000000 C 406.600000 292.000000 599.000000 292.000000 635.000000 292.000000" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-3488378134)" mask="url(#319647009)" /></g><g id="Gos Warehouse.(Master -> Regional-1)[0]"><path d="M 782.450980 384.197777 C 822.569863 414.200000 843.000000 422.000000 879.000000 422.000000" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-3488378134)" mask="url(#319647009)" /></g><g id="Gos Warehouse.(Master -> Regional-2)[0]"><path d="M 780.846867 314.786926 C 822.251351 283.200000 855.000000 275.000000 888.000000 275.000000 C 921.000000 275.000000 1063.000000 277.400000 1099.110451 286.066508" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-3488378134)" mask="url(#319647009)" /></g><g id="Gos Warehouse.(Master -> Regional-N)[0]"><path d="M 763.818430 314.442054 C 818.912863 246.000000 855.000000 228.500000 888.000000 228.500000 C 921.000000 228.500000 965.000000 228.500000 998.000000 228.500000 C 1031.000000 228.500000 1075.000000 228.500000 1108.000000 228.500000 C 1141.000000 228.500000 1284.600000 234.500000 1327.447129 256.662308" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-3488378134)" mask="url(#319647009)" /></g><g id="Gos Warehouse.(Regional-1 -> Regional-2)[0]"><path d="M 1004.836125 395.298037 C 1043.000000 378.818182 1065.000000 366.500000 1109.671799 336.718801" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-3488378134)" mask="url(#319647009)" /></g><g id="Gos Warehouse.(Regional-2 -> Regional-N)[0]"><path d="M 1225.000000 301.500000 C 1263.000000 301.500000 1284.600000 300.500000 1327.014781 296.843553" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-3488378134)" mask="url(#319647009)" /></g><g id="Gos Warehouse.(Regional-N -> Regional-1)[0]"><path d="M 1365.942336 325.097570 C 1291.829114 423.500000 1251.000000 448.500000 1218.000000 448.500000 C 1185.000000 448.500000 1043.000000 446.100000 1006.889549 437.433492" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-3488378134)" mask="url(#319647009)" /></g><g id="(OEM Warehouse -> Gos Warehouse)[0]"><path d="M 519.500000 365.000000 C 574.700000 365.000000 599.000000 365.000000 635.000000 365.000000" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-3488378134)" mask="url(#319647009)" /></g><g id="(Distributor Warehouse -> Gos Warehouse)[0]"><path d="M 541.000000 491.000000 C 579.000000 491.000000 599.000000 491.000000 635.000000 491.000000" fill="none" class="connection stroke-B1" style="stroke-width:2;" marker-end="url(#mk-3488378134)" mask="url(#319647009)" /></g><mask id="319647009" maskUnits="userSpaceOnUse" x="-1" y="-72" width="1513" height="597">
|
||||
<rect x="-1" y="-72" width="1513" height="597" fill="white"></rect>
|
||||
|
||||
</mask></svg></svg>
|
||||
|
Before Width: | Height: | Size: 669 KiB After Width: | Height: | Size: 669 KiB |
4
e2etests/testdata/stable/different_subgraphs/dagre/board.exp.json
generated
vendored
|
|
@ -1414,7 +1414,7 @@
|
|||
"route": [
|
||||
{
|
||||
"x": 1112.75,
|
||||
"y": 385
|
||||
"y": 344
|
||||
},
|
||||
{
|
||||
"x": 1302.75,
|
||||
|
|
@ -1549,7 +1549,7 @@
|
|||
"route": [
|
||||
{
|
||||
"x": 1112.75,
|
||||
"y": 407
|
||||
"y": 366
|
||||
},
|
||||
{
|
||||
"x": 1160.75,
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 662 KiB After Width: | Height: | Size: 662 KiB |
4
e2etests/testdata/stable/direction/dagre/board.exp.json
generated
vendored
|
|
@ -695,7 +695,7 @@
|
|||
"route": [
|
||||
{
|
||||
"x": 297.75,
|
||||
"y": 464
|
||||
"y": 423
|
||||
},
|
||||
{
|
||||
"x": 337.75,
|
||||
|
|
@ -878,7 +878,7 @@
|
|||
"route": [
|
||||
{
|
||||
"x": 163.5,
|
||||
"y": 637.5
|
||||
"y": 601.5
|
||||
},
|
||||
{
|
||||
"x": 204.5,
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 658 KiB After Width: | Height: | Size: 658 KiB |
2
go.mod
generated
|
|
@ -23,7 +23,7 @@ require (
|
|||
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2
|
||||
gonum.org/v1/plot v0.12.0
|
||||
nhooyr.io/websocket v1.8.7
|
||||
oss.terrastruct.com/util-go v0.0.0-20230224133755-305bb6ab7844
|
||||
oss.terrastruct.com/util-go v0.0.0-20230228050345-d1fed4d6be62
|
||||
)
|
||||
|
||||
require (
|
||||
|
|
|
|||
4
go.sum
generated
|
|
@ -277,6 +277,6 @@ honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWh
|
|||
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
||||
nhooyr.io/websocket v1.8.7 h1:usjR2uOr/zjjkVMy0lW+PPohFok7PCow5sDjLgX4P4g=
|
||||
nhooyr.io/websocket v1.8.7/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0=
|
||||
oss.terrastruct.com/util-go v0.0.0-20230224133755-305bb6ab7844 h1:VPvvOad7FchgCtBw9p2R1/0KQAl2ot/HoeYFpb9C82I=
|
||||
oss.terrastruct.com/util-go v0.0.0-20230224133755-305bb6ab7844/go.mod h1:Fwy72FDIOOM4K8F96ScXkxHHppR1CPfUyo9+x9c1PBU=
|
||||
oss.terrastruct.com/util-go v0.0.0-20230228050345-d1fed4d6be62 h1:XQZNMkHQr2q1eJIcHcgja29X04oDG8SqqdICCgxe5Bk=
|
||||
oss.terrastruct.com/util-go v0.0.0-20230228050345-d1fed4d6be62/go.mod h1:Fwy72FDIOOM4K8F96ScXkxHHppR1CPfUyo9+x9c1PBU=
|
||||
rsc.io/pdf v0.1.1 h1:k1MczvYDUvJBe93bYd7wrZLLUEcLZAuF824/I4e5Xr4=
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
package version
|
||||
|
||||
// Pre-built binaries will have version set correctly during build time.
|
||||
var Version = "v0.2.1-HEAD"
|
||||
var Version = "v0.2.2-HEAD"
|
||||
|
|
|
|||