add graph layout to fluid zoom
This commit is contained in:
parent
69efdd1709
commit
a090729f14
|
|
@ -69,9 +69,7 @@ export class FolkGraph extends FolkBaseSet implements AnimationFrameControllerHo
|
||||||
const colaNodes = this.#createNodes();
|
const colaNodes = this.#createNodes();
|
||||||
const colaLinks = this.#createLinks();
|
const colaLinks = this.#createLinks();
|
||||||
|
|
||||||
console.log(colaNodes, colaLinks);
|
this.#graphSim.nodes(colaNodes).links(colaLinks).linkDistance(400).avoidOverlaps(true).handleDisconnected(true);
|
||||||
|
|
||||||
this.#graphSim.nodes(colaNodes).links(colaLinks).linkDistance(250).avoidOverlaps(true).handleDisconnected(true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#createNodes() {
|
#createNodes() {
|
||||||
|
|
@ -93,7 +91,7 @@ export class FolkGraph extends FolkBaseSet implements AnimationFrameControllerHo
|
||||||
|
|
||||||
#createLinks() {
|
#createLinks() {
|
||||||
return Array.from(this.sourceElements)
|
return Array.from(this.sourceElements)
|
||||||
.filter((element): element is FolkBaseConnection => element instanceof FolkBaseConnection)
|
.filter((element) => element instanceof FolkBaseConnection)
|
||||||
.map((arrow) => {
|
.map((arrow) => {
|
||||||
this.#arrows.add(arrow);
|
this.#arrows.add(arrow);
|
||||||
const source = this.#nodes.get(arrow.sourceElement as FolkShape);
|
const source = this.#nodes.get(arrow.sourceElement as FolkShape);
|
||||||
|
|
|
||||||
|
|
@ -78,41 +78,44 @@
|
||||||
<input type="range" min="0" max="1" value="1" step="0.01" />
|
<input type="range" min="0" max="1" value="1" step="0.01" />
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
<folk-shape id="box1" x="100" y="100">
|
<folk-graph>
|
||||||
<h2>Lorem ispum</h2>
|
<folk-shape id="box1" x="100" y="100">
|
||||||
<p>
|
<h2>Lorem ispum</h2>
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
<p>
|
||||||
magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
||||||
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
|
magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
|
||||||
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est
|
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
|
||||||
laborum.
|
pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
|
||||||
</p>
|
est laborum.
|
||||||
</folk-shape>
|
</p>
|
||||||
|
</folk-shape>
|
||||||
|
|
||||||
<folk-shape id="box2" x="500" y="400">
|
<folk-shape id="box2" x="500" y="400">
|
||||||
<h2>Dolor sit amet</h2>
|
<h2>Dolor sit amet</h2>
|
||||||
<p>
|
<p>
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
||||||
magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
|
magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
|
||||||
consequat.
|
consequat.
|
||||||
</p>
|
</p>
|
||||||
</folk-shape>
|
</folk-shape>
|
||||||
|
|
||||||
<folk-shape id="box3" x="150" y="600">
|
<folk-shape id="box3" x="150" y="600">
|
||||||
<h2>Consectetur elit</h2>
|
<h2>Consectetur elit</h2>
|
||||||
<p>
|
<p>
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
||||||
magna aliqua.
|
magna aliqua.
|
||||||
</p>
|
</p>
|
||||||
</folk-shape>
|
</folk-shape>
|
||||||
|
|
||||||
<folk-arrow source="#box1" target="#box2"></folk-arrow>
|
<folk-arrow source="#box1" target="#box2"></folk-arrow>
|
||||||
<folk-arrow source="#box2" target="#box3"></folk-arrow>
|
<folk-arrow source="#box2" target="#box3"></folk-arrow>
|
||||||
<folk-arrow source="#box1" target="#box3"></folk-arrow>
|
<folk-arrow source="#box1" target="#box3"></folk-arrow>
|
||||||
|
</folk-graph>
|
||||||
|
|
||||||
<script type="module">
|
<script type="module">
|
||||||
import '@labs/standalone/folk-shape.ts';
|
import '@labs/standalone/folk-shape.ts';
|
||||||
import '@labs/standalone/folk-arrow.ts';
|
import '@labs/standalone/folk-arrow.ts';
|
||||||
|
import '@labs/standalone/folk-graph.ts';
|
||||||
|
|
||||||
const range = document.querySelector('input');
|
const range = document.querySelector('input');
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue