w-flowchart 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -1
- package/dist/w-flowchart.umd.js +2 -2
- package/dist/w-flowchart.umd.js.map +1 -1
- package/docs/WFlowchart.mjs.html +186 -0
- package/docs/global.html +657 -0
- package/docs/index.html +2 -2
- package/package.json +52 -49
- package/src/WFlowchart.mjs +114 -0
- package/src/p1/README.md +2 -2
- package/src/p1/gen.mjs +54 -20
- package/src/p10/README.md +6 -2
- package/src/p10/gen.mjs +235 -15
- package/src/p2/README.md +1 -1
- package/src/p2/gen.mjs +52 -7
- package/src/p3/README.md +1 -1
- package/src/p3/gen.mjs +24 -2
- package/src/p4/README.md +1 -1
- package/src/p4/gen.mjs +36 -10
- package/src/p5/README.md +1 -1
- package/src/p5/gen.mjs +41 -16
- package/src/p6/README.md +1 -1
- package/src/p6/gen.mjs +108 -5
- package/src/p7/README.md +1 -1
- package/src/p7/gen.mjs +42 -3
- package/src/p8/README.md +1 -1
- package/src/p8/gen.mjs +41 -2
- package/src/p9/README.md +1 -1
- package/src/p9/page9.html +13 -5
- package/test/cases-diamond.mjs +221 -0
- package/test/cases.mjs +17 -1
- package/test/data//345/267/245/345/226/256/350/231/225/347/220/206/346/265/201/347/250/213/345/234/226.json +43 -0
- package/test/data//345/276/256/346/234/215/345/213/231/345/217/242/351/233/206/346/236/266/346/247/213/345/234/226.json +132 -0
- package/test/data//346/234/203/345/223/241/350/250/273/345/206/212/346/265/201/347/250/213/345/234/226.json +27 -0
- package/test/data//346/250/241/347/265/204/347/265/204/346/210/220/345/234/226.json +111 -0
- package/test/data//346/254/212/351/231/220/350/247/222/350/211/262/351/227/234/350/201/257/345/234/226.json +117 -0
- package/test/data//347/211/251/350/201/257/347/266/262/345/271/263/345/217/260/346/236/266/346/247/213/345/234/226.json +203 -0
- package/test/data//347/263/273/347/265/261/345/210/206/345/261/244/346/236/266/346/247/213/345/234/226.json +156 -0
- package/test/data//350/250/202/345/226/256/350/231/225/347/220/206/346/265/201/347/250/213/345/234/226.json +46 -0
- package/test/data//350/263/207/346/226/231/346/265/201/345/220/221/345/234/226.json +137 -0
- package/test/data//350/263/207/346/226/231/346/270/205/346/264/227/346/265/201/347/250/213/345/234/226.json +28 -0
- package/test/data//351/233/273/345/225/206/345/271/263/345/217/260/346/236/266/346/247/213/345/234/226.json +134 -0
- package/test/data//351/240/201/351/235/242/345/260/216/350/246/275/351/227/234/350/201/257/345/234/226.json +178 -0
- package/test/figures.mjs +3 -2
- package/test/lib.mjs +3 -1
- package/test/p1.test.mjs +5 -0
- package/test/p10.test.mjs +54 -2
- package/test/p2.test.mjs +5 -0
- package/test/p3.test.mjs +5 -0
- package/test/p4.test.mjs +5 -0
- package/test/p5.test.mjs +6 -0
- package/test/p6.test.mjs +5 -0
- package/test/p7.test.mjs +5 -0
- package/test/p8.test.mjs +5 -0
- package/test/p9.test.mjs +5 -0
- package/test/pics/p1/cycle.png +0 -0
- package/test/pics/p1/deep-nest.png +0 -0
- package/test/pics/p1/diamond.png +0 -0
- package/test/pics/p1/edges-mix.png +0 -0
- package/test/pics/p1/english.png +0 -0
- package/test/pics/p1/flat-tb.png +0 -0
- package/test/pics/p1/fold-tall.png +0 -0
- package/test/pics/p1/fold-wide.png +0 -0
- package/test/pics/p1/group-edge.png +0 -0
- package/test/pics/p1/items-node.png +0 -0
- package/test/pics/p1/long-label.png +0 -0
- package/test/pics/p1/lr-flat.png +0 -0
- package/test/pics/p1/nested-group.png +0 -0
- package/test/pics/p1/no-edges.png +0 -0
- package/test/pics/p1/title-overflow.png +0 -0
- package/test/pics/p1/valign.png +0 -0
- package/test/pics/p1//345/267/245/345/226/256/350/231/225/347/220/206/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics/p1//345/276/256/346/234/215/345/213/231/345/217/242/351/233/206/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics/p1//346/234/203/345/223/241/350/250/273/345/206/212/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics/p1//346/250/241/347/265/204/347/265/204/346/210/220/345/234/226.png +0 -0
- package/test/pics/p1//346/254/212/351/231/220/350/247/222/350/211/262/351/227/234/350/201/257/345/234/226.png +0 -0
- package/test/pics/p1//347/211/251/350/201/257/347/266/262/345/271/263/345/217/260/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics/p1//347/263/273/347/265/261/345/210/206/345/261/244/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics/p1//350/250/202/345/226/256/350/231/225/347/220/206/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics/p1//350/263/207/346/226/231/346/265/201/345/220/221/345/234/226.png +0 -0
- package/test/pics/p1//350/263/207/346/226/231/346/270/205/346/264/227/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics/p1//351/233/273/345/225/206/345/271/263/345/217/260/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics/p1//351/240/201/351/235/242/345/260/216/350/246/275/351/227/234/350/201/257/345/234/226.png +0 -0
- package/test/pics/p10/cycle.png +0 -0
- package/test/pics/p10/cycle.svg +1 -0
- package/test/pics/p10/deep-nest.svg +1 -0
- package/test/pics/p10/dia-1in-1out.png +0 -0
- package/test/pics/p10/dia-1in-1out.svg +1 -0
- package/test/pics/p10/dia-1in-2out.png +0 -0
- package/test/pics/p10/dia-1in-2out.svg +1 -0
- package/test/pics/p10/dia-1in.png +0 -0
- package/test/pics/p10/dia-1in.svg +1 -0
- package/test/pics/p10/dia-1out.png +0 -0
- package/test/pics/p10/dia-1out.svg +1 -0
- package/test/pics/p10/dia-2in-1out.png +0 -0
- package/test/pics/p10/dia-2in-1out.svg +1 -0
- package/test/pics/p10/dia-2in-2out-dd.png +0 -0
- package/test/pics/p10/dia-2in-2out-dd.svg +1 -0
- package/test/pics/p10/dia-2in-2out-ss.png +0 -0
- package/test/pics/p10/dia-2in-2out-ss.svg +1 -0
- package/test/pics/p10/dia-2in.png +0 -0
- package/test/pics/p10/dia-2in.svg +1 -0
- package/test/pics/p10/dia-2out.png +0 -0
- package/test/pics/p10/dia-2out.svg +1 -0
- package/test/pics/p10/diamond.png +0 -0
- package/test/pics/p10/diamond.svg +1 -0
- package/test/pics/p10/edges-mix.png +0 -0
- package/test/pics/p10/edges-mix.svg +1 -0
- package/test/pics/p10/english.png +0 -0
- package/test/pics/p10/english.svg +1 -0
- package/test/pics/p10/flat-tb.svg +1 -0
- package/test/pics/p10/fold-tall.svg +1 -0
- package/test/pics/p10/fold-wide.svg +1 -0
- package/test/pics/p10/group-edge.png +0 -0
- package/test/pics/p10/group-edge.svg +1 -0
- package/test/pics/p10/items-node.svg +1 -0
- package/test/pics/p10/long-label.svg +1 -0
- package/test/pics/p10/lr-flat.svg +1 -0
- package/test/pics/p10/nested-group.png +0 -0
- package/test/pics/p10/nested-group.svg +1 -0
- package/test/pics/p10/no-edges.svg +1 -0
- package/test/pics/p10/title-overflow.svg +1 -0
- package/test/pics/p10/valign.svg +1 -0
- package/test/pics/p10//345/267/245/345/226/256/350/231/225/347/220/206/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics/p10//345/267/245/345/226/256/350/231/225/347/220/206/346/265/201/347/250/213/345/234/226.svg +1 -0
- package/test/pics/p10//345/276/256/346/234/215/345/213/231/345/217/242/351/233/206/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics/p10//345/276/256/346/234/215/345/213/231/345/217/242/351/233/206/346/236/266/346/247/213/345/234/226.svg +1 -0
- package/test/pics/p10//346/234/203/345/223/241/350/250/273/345/206/212/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics/p10//346/234/203/345/223/241/350/250/273/345/206/212/346/265/201/347/250/213/345/234/226.svg +1 -0
- package/test/pics/p10//346/250/241/347/265/204/347/265/204/346/210/220/345/234/226.png +0 -0
- package/test/pics/p10//346/250/241/347/265/204/347/265/204/346/210/220/345/234/226.svg +1 -0
- package/test/pics/p10//346/254/212/351/231/220/350/247/222/350/211/262/351/227/234/350/201/257/345/234/226.png +0 -0
- package/test/pics/p10//346/254/212/351/231/220/350/247/222/350/211/262/351/227/234/350/201/257/345/234/226.svg +1 -0
- package/test/pics/p10//347/211/251/350/201/257/347/266/262/345/271/263/345/217/260/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics/p10//347/211/251/350/201/257/347/266/262/345/271/263/345/217/260/346/236/266/346/247/213/345/234/226.svg +1 -0
- package/test/pics/p10//347/263/273/347/265/261/345/210/206/345/261/244/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics/p10//347/263/273/347/265/261/345/210/206/345/261/244/346/236/266/346/247/213/345/234/226.svg +1 -0
- package/test/pics/p10//350/250/202/345/226/256/350/231/225/347/220/206/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics/p10//350/250/202/345/226/256/350/231/225/347/220/206/346/265/201/347/250/213/345/234/226.svg +1 -0
- package/test/pics/p10//350/263/207/346/226/231/346/265/201/345/220/221/345/234/226.png +0 -0
- package/test/pics/p10//350/263/207/346/226/231/346/265/201/345/220/221/345/234/226.svg +1 -0
- package/test/pics/p10//350/263/207/346/226/231/346/270/205/346/264/227/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics/p10//350/263/207/346/226/231/346/270/205/346/264/227/346/265/201/347/250/213/345/234/226.svg +1 -0
- package/test/pics/p10//351/233/273/345/225/206/345/271/263/345/217/260/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics/p10//351/233/273/345/225/206/345/271/263/345/217/260/346/236/266/346/247/213/345/234/226.svg +1 -0
- package/test/pics/p10//351/240/201/351/235/242/345/260/216/350/246/275/351/227/234/350/201/257/345/234/226.png +0 -0
- package/test/pics/p10//351/240/201/351/235/242/345/260/216/350/246/275/351/227/234/350/201/257/345/234/226.svg +1 -0
- package/test/pics/p2/cycle.png +0 -0
- package/test/pics/p2/deep-nest.png +0 -0
- package/test/pics/p2/diamond.png +0 -0
- package/test/pics/p2/edges-mix.png +0 -0
- package/test/pics/p2/english.png +0 -0
- package/test/pics/p2/flat-tb.png +0 -0
- package/test/pics/p2/fold-tall.png +0 -0
- package/test/pics/p2/fold-wide.png +0 -0
- package/test/pics/p2/group-edge.png +0 -0
- package/test/pics/p2/items-node.png +0 -0
- package/test/pics/p2/long-label.png +0 -0
- package/test/pics/p2/lr-flat.png +0 -0
- package/test/pics/p2/nested-group.png +0 -0
- package/test/pics/p2/no-edges.png +0 -0
- package/test/pics/p2/title-overflow.png +0 -0
- package/test/pics/p2/valign.png +0 -0
- package/test/pics/p2//345/267/245/345/226/256/350/231/225/347/220/206/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics/p2//345/276/256/346/234/215/345/213/231/345/217/242/351/233/206/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics/p2//346/234/203/345/223/241/350/250/273/345/206/212/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics/p2//346/250/241/347/265/204/347/265/204/346/210/220/345/234/226.png +0 -0
- package/test/pics/p2//346/254/212/351/231/220/350/247/222/350/211/262/351/227/234/350/201/257/345/234/226.png +0 -0
- package/test/pics/p2//347/211/251/350/201/257/347/266/262/345/271/263/345/217/260/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics/p2//347/263/273/347/265/261/345/210/206/345/261/244/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics/p2//350/250/202/345/226/256/350/231/225/347/220/206/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics/p2//350/263/207/346/226/231/346/265/201/345/220/221/345/234/226.png +0 -0
- package/test/pics/p2//350/263/207/346/226/231/346/270/205/346/264/227/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics/p2//351/233/273/345/225/206/345/271/263/345/217/260/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics/p2//351/240/201/351/235/242/345/260/216/350/246/275/351/227/234/350/201/257/345/234/226.png +0 -0
- package/test/pics/p3/cycle.png +0 -0
- package/test/pics/p3/deep-nest.png +0 -0
- package/test/pics/p3/diamond.png +0 -0
- package/test/pics/p3/edges-mix.png +0 -0
- package/test/pics/p3/english.png +0 -0
- package/test/pics/p3/flat-tb.png +0 -0
- package/test/pics/p3/fold-tall.png +0 -0
- package/test/pics/p3/fold-wide.png +0 -0
- package/test/pics/p3/group-edge.png +0 -0
- package/test/pics/p3/items-node.png +0 -0
- package/test/pics/p3/long-label.png +0 -0
- package/test/pics/p3/lr-flat.png +0 -0
- package/test/pics/p3/nested-group.png +0 -0
- package/test/pics/p3/no-edges.png +0 -0
- package/test/pics/p3/title-overflow.png +0 -0
- package/test/pics/p3/valign.png +0 -0
- package/test/pics/p3//345/267/245/345/226/256/350/231/225/347/220/206/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics/p3//345/276/256/346/234/215/345/213/231/345/217/242/351/233/206/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics/p3//346/234/203/345/223/241/350/250/273/345/206/212/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics/p3//346/250/241/347/265/204/347/265/204/346/210/220/345/234/226.png +0 -0
- package/test/pics/p3//346/254/212/351/231/220/350/247/222/350/211/262/351/227/234/350/201/257/345/234/226.png +0 -0
- package/test/pics/p3//347/211/251/350/201/257/347/266/262/345/271/263/345/217/260/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics/p3//347/263/273/347/265/261/345/210/206/345/261/244/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics/p3//350/250/202/345/226/256/350/231/225/347/220/206/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics/p3//350/263/207/346/226/231/346/265/201/345/220/221/345/234/226.png +0 -0
- package/test/pics/p3//350/263/207/346/226/231/346/270/205/346/264/227/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics/p3//351/233/273/345/225/206/345/271/263/345/217/260/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics/p3//351/240/201/351/235/242/345/260/216/350/246/275/351/227/234/350/201/257/345/234/226.png +0 -0
- package/test/pics/p4/cycle.png +0 -0
- package/test/pics/p4/deep-nest.png +0 -0
- package/test/pics/p4/diamond.png +0 -0
- package/test/pics/p4/edges-mix.png +0 -0
- package/test/pics/p4/english.png +0 -0
- package/test/pics/p4/flat-tb.png +0 -0
- package/test/pics/p4/fold-tall.png +0 -0
- package/test/pics/p4/fold-wide.png +0 -0
- package/test/pics/p4/group-edge.png +0 -0
- package/test/pics/p4/items-node.png +0 -0
- package/test/pics/p4/long-label.png +0 -0
- package/test/pics/p4/lr-flat.png +0 -0
- package/test/pics/p4/nested-group.png +0 -0
- package/test/pics/p4/no-edges.png +0 -0
- package/test/pics/p4/title-overflow.png +0 -0
- package/test/pics/p4/valign.png +0 -0
- package/test/pics/p4//345/267/245/345/226/256/350/231/225/347/220/206/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics/p4//345/276/256/346/234/215/345/213/231/345/217/242/351/233/206/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics/p4//346/234/203/345/223/241/350/250/273/345/206/212/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics/p4//346/250/241/347/265/204/347/265/204/346/210/220/345/234/226.png +0 -0
- package/test/pics/p4//346/254/212/351/231/220/350/247/222/350/211/262/351/227/234/350/201/257/345/234/226.png +0 -0
- package/test/pics/p4//347/211/251/350/201/257/347/266/262/345/271/263/345/217/260/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics/p4//347/263/273/347/265/261/345/210/206/345/261/244/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics/p4//350/250/202/345/226/256/350/231/225/347/220/206/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics/p4//350/263/207/346/226/231/346/265/201/345/220/221/345/234/226.png +0 -0
- package/test/pics/p4//350/263/207/346/226/231/346/270/205/346/264/227/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics/p4//351/233/273/345/225/206/345/271/263/345/217/260/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics/p4//351/240/201/351/235/242/345/260/216/350/246/275/351/227/234/350/201/257/345/234/226.png +0 -0
- package/test/pics/p5/cycle.png +0 -0
- package/test/pics/p5/deep-nest.png +0 -0
- package/test/pics/p5/diamond.png +0 -0
- package/test/pics/p5/edges-mix.png +0 -0
- package/test/pics/p5/english.png +0 -0
- package/test/pics/p5/flat-tb.png +0 -0
- package/test/pics/p5/fold-tall.png +0 -0
- package/test/pics/p5/fold-wide.png +0 -0
- package/test/pics/p5/group-edge.png +0 -0
- package/test/pics/p5/items-node.png +0 -0
- package/test/pics/p5/long-label.png +0 -0
- package/test/pics/p5/lr-flat.png +0 -0
- package/test/pics/p5/nested-group.png +0 -0
- package/test/pics/p5/no-edges.png +0 -0
- package/test/pics/p5/title-overflow.png +0 -0
- package/test/pics/p5/valign.png +0 -0
- package/test/pics/p5//345/267/245/345/226/256/350/231/225/347/220/206/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics/p5//345/276/256/346/234/215/345/213/231/345/217/242/351/233/206/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics/p5//346/234/203/345/223/241/350/250/273/345/206/212/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics/p5//346/250/241/347/265/204/347/265/204/346/210/220/345/234/226.png +0 -0
- package/test/pics/p5//346/254/212/351/231/220/350/247/222/350/211/262/351/227/234/350/201/257/345/234/226.png +0 -0
- package/test/pics/p5//347/211/251/350/201/257/347/266/262/345/271/263/345/217/260/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics/p5//347/263/273/347/265/261/345/210/206/345/261/244/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics/p5//350/250/202/345/226/256/350/231/225/347/220/206/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics/p5//350/263/207/346/226/231/346/265/201/345/220/221/345/234/226.png +0 -0
- package/test/pics/p5//350/263/207/346/226/231/346/270/205/346/264/227/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics/p5//351/233/273/345/225/206/345/271/263/345/217/260/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics/p5//351/240/201/351/235/242/345/260/216/350/246/275/351/227/234/350/201/257/345/234/226.png +0 -0
- package/test/pics/p6/cycle.png +0 -0
- package/test/pics/p6/deep-nest.png +0 -0
- package/test/pics/p6/diamond.png +0 -0
- package/test/pics/p6/edges-mix.png +0 -0
- package/test/pics/p6/english.png +0 -0
- package/test/pics/p6/flat-tb.png +0 -0
- package/test/pics/p6/fold-tall.png +0 -0
- package/test/pics/p6/fold-wide.png +0 -0
- package/test/pics/p6/group-edge.png +0 -0
- package/test/pics/p6/items-node.png +0 -0
- package/test/pics/p6/long-label.png +0 -0
- package/test/pics/p6/lr-flat.png +0 -0
- package/test/pics/p6/nested-group.png +0 -0
- package/test/pics/p6/no-edges.png +0 -0
- package/test/pics/p6/title-overflow.png +0 -0
- package/test/pics/p6/valign.png +0 -0
- package/test/pics/p6//345/267/245/345/226/256/350/231/225/347/220/206/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics/p6//345/276/256/346/234/215/345/213/231/345/217/242/351/233/206/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics/p6//346/234/203/345/223/241/350/250/273/345/206/212/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics/p6//346/250/241/347/265/204/347/265/204/346/210/220/345/234/226.png +0 -0
- package/test/pics/p6//346/254/212/351/231/220/350/247/222/350/211/262/351/227/234/350/201/257/345/234/226.png +0 -0
- package/test/pics/p6//347/211/251/350/201/257/347/266/262/345/271/263/345/217/260/346/236/266/346/247/213/345/234/226.alt.png +0 -0
- package/test/pics/p6//347/211/251/350/201/257/347/266/262/345/271/263/345/217/260/346/236/266/346/247/213/345/234/226.new.png +0 -0
- package/test/pics/p6//347/211/251/350/201/257/347/266/262/345/271/263/345/217/260/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics/p6//347/263/273/347/265/261/345/210/206/345/261/244/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics/p6//350/250/202/345/226/256/350/231/225/347/220/206/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics/p6//350/263/207/346/226/231/346/265/201/345/220/221/345/234/226.png +0 -0
- package/test/pics/p6//350/263/207/346/226/231/346/270/205/346/264/227/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics/p6//351/233/273/345/225/206/345/271/263/345/217/260/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics/p6//351/240/201/351/235/242/345/260/216/350/246/275/351/227/234/350/201/257/345/234/226.png +0 -0
- package/test/pics/p7/cycle.png +0 -0
- package/test/pics/p7/deep-nest.png +0 -0
- package/test/pics/p7/diamond.png +0 -0
- package/test/pics/p7/edges-mix.png +0 -0
- package/test/pics/p7/english.png +0 -0
- package/test/pics/p7/flat-tb.png +0 -0
- package/test/pics/p7/fold-tall.png +0 -0
- package/test/pics/p7/fold-wide.png +0 -0
- package/test/pics/p7/group-edge.png +0 -0
- package/test/pics/p7/items-node.png +0 -0
- package/test/pics/p7/long-label.png +0 -0
- package/test/pics/p7/lr-flat.png +0 -0
- package/test/pics/p7/nested-group.png +0 -0
- package/test/pics/p7/no-edges.png +0 -0
- package/test/pics/p7/title-overflow.png +0 -0
- package/test/pics/p7/valign.png +0 -0
- package/test/pics/p7//345/267/245/345/226/256/350/231/225/347/220/206/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics/p7//345/276/256/346/234/215/345/213/231/345/217/242/351/233/206/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics/p7//346/234/203/345/223/241/350/250/273/345/206/212/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics/p7//346/250/241/347/265/204/347/265/204/346/210/220/345/234/226.png +0 -0
- package/test/pics/p7//346/254/212/351/231/220/350/247/222/350/211/262/351/227/234/350/201/257/345/234/226.png +0 -0
- package/test/pics/p7//347/211/251/350/201/257/347/266/262/345/271/263/345/217/260/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics/p7//347/263/273/347/265/261/345/210/206/345/261/244/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics/p7//350/250/202/345/226/256/350/231/225/347/220/206/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics/p7//350/263/207/346/226/231/346/265/201/345/220/221/345/234/226.png +0 -0
- package/test/pics/p7//350/263/207/346/226/231/346/270/205/346/264/227/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics/p7//351/233/273/345/225/206/345/271/263/345/217/260/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics/p7//351/240/201/351/235/242/345/260/216/350/246/275/351/227/234/350/201/257/345/234/226.png +0 -0
- package/test/pics/p8/cycle.png +0 -0
- package/test/pics/p8/deep-nest.png +0 -0
- package/test/pics/p8/diamond.png +0 -0
- package/test/pics/p8/edges-mix.png +0 -0
- package/test/pics/p8/english.png +0 -0
- package/test/pics/p8/flat-tb.png +0 -0
- package/test/pics/p8/fold-tall.png +0 -0
- package/test/pics/p8/fold-wide.png +0 -0
- package/test/pics/p8/group-edge.png +0 -0
- package/test/pics/p8/items-node.png +0 -0
- package/test/pics/p8/long-label.png +0 -0
- package/test/pics/p8/lr-flat.png +0 -0
- package/test/pics/p8/nested-group.png +0 -0
- package/test/pics/p8/no-edges.png +0 -0
- package/test/pics/p8/title-overflow.png +0 -0
- package/test/pics/p8/valign.png +0 -0
- package/test/pics/p8//345/267/245/345/226/256/350/231/225/347/220/206/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics/p8//345/276/256/346/234/215/345/213/231/345/217/242/351/233/206/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics/p8//346/234/203/345/223/241/350/250/273/345/206/212/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics/p8//346/250/241/347/265/204/347/265/204/346/210/220/345/234/226.png +0 -0
- package/test/pics/p8//346/254/212/351/231/220/350/247/222/350/211/262/351/227/234/350/201/257/345/234/226.png +0 -0
- package/test/pics/p8//347/211/251/350/201/257/347/266/262/345/271/263/345/217/260/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics/p8//347/263/273/347/265/261/345/210/206/345/261/244/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics/p8//350/250/202/345/226/256/350/231/225/347/220/206/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics/p8//350/263/207/346/226/231/346/265/201/345/220/221/345/234/226.png +0 -0
- package/test/pics/p8//350/263/207/346/226/231/346/270/205/346/264/227/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics/p8//351/233/273/345/225/206/345/271/263/345/217/260/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics/p8//351/240/201/351/235/242/345/260/216/350/246/275/351/227/234/350/201/257/345/234/226.png +0 -0
- package/test/pics/p9/cycle.png +0 -0
- package/test/pics/p9/deep-nest.png +0 -0
- package/test/pics/p9/diamond.png +0 -0
- package/test/pics/p9/edges-mix.png +0 -0
- package/test/pics/p9/english.png +0 -0
- package/test/pics/p9/flat-tb.png +0 -0
- package/test/pics/p9/fold-tall.png +0 -0
- package/test/pics/p9/fold-wide.png +0 -0
- package/test/pics/p9/group-edge.png +0 -0
- package/test/pics/p9/items-node.png +0 -0
- package/test/pics/p9/long-label.png +0 -0
- package/test/pics/p9/lr-flat.png +0 -0
- package/test/pics/p9/nested-group.png +0 -0
- package/test/pics/p9/no-edges.png +0 -0
- package/test/pics/p9/title-overflow.png +0 -0
- package/test/pics/p9/valign.png +0 -0
- package/test/pics/p9//345/267/245/345/226/256/350/231/225/347/220/206/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics/p9//345/276/256/346/234/215/345/213/231/345/217/242/351/233/206/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics/p9//346/234/203/345/223/241/350/250/273/345/206/212/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics/p9//346/250/241/347/265/204/347/265/204/346/210/220/345/234/226.png +0 -0
- package/test/pics/p9//346/254/212/351/231/220/350/247/222/350/211/262/351/227/234/350/201/257/345/234/226.png +0 -0
- package/test/pics/p9//347/211/251/350/201/257/347/266/262/345/271/263/345/217/260/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics/p9//347/263/273/347/265/261/345/210/206/345/261/244/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics/p9//350/250/202/345/226/256/350/231/225/347/220/206/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics/p9//350/263/207/346/226/231/346/265/201/345/220/221/345/234/226.png +0 -0
- package/test/pics/p9//350/263/207/346/226/231/346/270/205/346/264/227/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics/p9//351/233/273/345/225/206/345/271/263/345/217/260/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics/p9//351/240/201/351/235/242/345/260/216/350/246/275/351/227/234/350/201/257/345/234/226.png +0 -0
- package/test/snapshot.mjs +67 -0
- package/test/wflowchart.test.mjs +57 -11
- package/toolg/gDistRollup.mjs +3 -0
- package/test/data//344/275/234/346/245/255/346/265/201/347/250/213/345/234/226.json +0 -92
- package/test/data//345/211/215/347/253/257/346/236/266/346/247/213/350/210/207/350/263/207/346/226/231/346/265/201/345/234/226.json +0 -112
- package/test/data//345/276/214/347/253/257/346/234/215/345/213/231/347/265/204/346/210/220/345/234/226.json +0 -116
- package/test/data//346/211/271/346/254/241/344/270/212/345/202/263/350/231/225/347/220/206/346/265/201/347/250/213/345/234/226.json +0 -251
- package/test/data//347/250/213/345/274/217/345/205/203/344/273/266/347/265/204/346/210/220/345/234/226.json +0 -126
- package/test/data//347/250/213/345/274/217/345/210/206/345/261/244/346/236/266/346/247/213/345/234/226.json +0 -133
- package/test/data//347/263/273/347/265/261/346/236/266/346/247/213/345/234/226.json +0 -102
- package/test/data//347/263/273/347/265/261/351/227/234/350/201/257/345/234/226.json +0 -117
- package/test/data//347/267/232/344/270/212/347/225/253/351/235/242/351/227/234/350/201/257/345/234/226.json +0 -162
- package/test/pics/cycle.png +0 -0
- package/test/pics/cycle.svg +0 -1
- package/test/pics/deep-nest.svg +0 -1
- package/test/pics/diamond.png +0 -0
- package/test/pics/diamond.svg +0 -1
- package/test/pics/edges-mix.png +0 -0
- package/test/pics/edges-mix.svg +0 -1
- package/test/pics/english.png +0 -0
- package/test/pics/english.svg +0 -1
- package/test/pics/flat-tb.svg +0 -1
- package/test/pics/fold-tall.svg +0 -1
- package/test/pics/fold-wide.svg +0 -1
- package/test/pics/group-edge.png +0 -0
- package/test/pics/group-edge.svg +0 -1
- package/test/pics/items-node.svg +0 -1
- package/test/pics/long-label.svg +0 -1
- package/test/pics/lr-flat.svg +0 -1
- package/test/pics/nested-group.png +0 -0
- package/test/pics/nested-group.svg +0 -1
- package/test/pics/no-edges.svg +0 -1
- package/test/pics/title-overflow.svg +0 -1
- package/test/pics/valign.svg +0 -1
- package/test/pics//344/275/234/346/245/255/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics//344/275/234/346/245/255/346/265/201/347/250/213/345/234/226.svg +0 -1
- package/test/pics//345/211/215/347/253/257/346/236/266/346/247/213/350/210/207/350/263/207/346/226/231/346/265/201/345/234/226.png +0 -0
- package/test/pics//345/211/215/347/253/257/346/236/266/346/247/213/350/210/207/350/263/207/346/226/231/346/265/201/345/234/226.svg +0 -1
- package/test/pics//345/276/214/347/253/257/346/234/215/345/213/231/347/265/204/346/210/220/345/234/226.png +0 -0
- package/test/pics//345/276/214/347/253/257/346/234/215/345/213/231/347/265/204/346/210/220/345/234/226.svg +0 -1
- package/test/pics//346/211/271/346/254/241/344/270/212/345/202/263/350/231/225/347/220/206/346/265/201/347/250/213/345/234/226.png +0 -0
- package/test/pics//346/211/271/346/254/241/344/270/212/345/202/263/350/231/225/347/220/206/346/265/201/347/250/213/345/234/226.svg +0 -1
- package/test/pics//347/250/213/345/274/217/345/205/203/344/273/266/347/265/204/346/210/220/345/234/226.png +0 -0
- package/test/pics//347/250/213/345/274/217/345/205/203/344/273/266/347/265/204/346/210/220/345/234/226.svg +0 -1
- package/test/pics//347/250/213/345/274/217/345/210/206/345/261/244/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics//347/250/213/345/274/217/345/210/206/345/261/244/346/236/266/346/247/213/345/234/226.svg +0 -1
- package/test/pics//347/263/273/347/265/261/346/236/266/346/247/213/345/234/226.png +0 -0
- package/test/pics//347/263/273/347/265/261/346/236/266/346/247/213/345/234/226.svg +0 -1
- package/test/pics//347/263/273/347/265/261/351/227/234/350/201/257/345/234/226.png +0 -0
- package/test/pics//347/263/273/347/265/261/351/227/234/350/201/257/345/234/226.svg +0 -1
- package/test/pics//347/267/232/344/270/212/347/225/253/351/235/242/351/227/234/350/201/257/345/234/226.png +0 -0
- package/test/pics//347/267/232/344/270/212/347/225/253/351/235/242/351/227/234/350/201/257/345/234/226.svg +0 -1
- /package/test/pics/{deep-nest.png → p10/deep-nest.png} +0 -0
- /package/test/pics/{flat-tb.png → p10/flat-tb.png} +0 -0
- /package/test/pics/{fold-tall.png → p10/fold-tall.png} +0 -0
- /package/test/pics/{fold-wide.png → p10/fold-wide.png} +0 -0
- /package/test/pics/{items-node.png → p10/items-node.png} +0 -0
- /package/test/pics/{long-label.png → p10/long-label.png} +0 -0
- /package/test/pics/{lr-flat.png → p10/lr-flat.png} +0 -0
- /package/test/pics/{no-edges.png → p10/no-edges.png} +0 -0
- /package/test/pics/{title-overflow.png → p10/title-overflow.png} +0 -0
- /package/test/pics/{valign.png → p10/valign.png} +0 -0
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
{
|
|
2
|
+
"dir": "TB",
|
|
3
|
+
"nodes": [
|
|
4
|
+
{
|
|
5
|
+
"id": "FE",
|
|
6
|
+
"label": "前台層",
|
|
7
|
+
"cls": "blueG"
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"id": "SV",
|
|
11
|
+
"label": "服務層",
|
|
12
|
+
"cls": "greenG"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"id": "DB",
|
|
16
|
+
"label": "資料層",
|
|
17
|
+
"cls": "orangeG"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"id": "fe1",
|
|
21
|
+
"label": "網頁前端",
|
|
22
|
+
"cls": "blue",
|
|
23
|
+
"group": "FE"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"id": "fe2",
|
|
27
|
+
"label": "行動應用",
|
|
28
|
+
"cls": "blue",
|
|
29
|
+
"group": "FE"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"id": "fe3",
|
|
33
|
+
"title": "前端共用元件",
|
|
34
|
+
"items": [
|
|
35
|
+
"元件庫",
|
|
36
|
+
"狀態管理",
|
|
37
|
+
"路由設定"
|
|
38
|
+
],
|
|
39
|
+
"cls": "blue",
|
|
40
|
+
"group": "FE"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"id": "sv1",
|
|
44
|
+
"label": "API 閘道",
|
|
45
|
+
"cls": "green",
|
|
46
|
+
"group": "SV"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"id": "sv2",
|
|
50
|
+
"title": "訂單服務",
|
|
51
|
+
"items": [
|
|
52
|
+
"訂單建立",
|
|
53
|
+
"訂單查詢",
|
|
54
|
+
"退款處理"
|
|
55
|
+
],
|
|
56
|
+
"cls": "green",
|
|
57
|
+
"group": "SV"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"id": "sv3",
|
|
61
|
+
"title": "會員服務",
|
|
62
|
+
"items": [
|
|
63
|
+
"註冊登入",
|
|
64
|
+
"權限驗證"
|
|
65
|
+
],
|
|
66
|
+
"cls": "green",
|
|
67
|
+
"group": "SV"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"id": "sv4",
|
|
71
|
+
"label": "通知服務",
|
|
72
|
+
"cls": "green",
|
|
73
|
+
"group": "SV"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"id": "db1",
|
|
77
|
+
"label": "主要資料庫",
|
|
78
|
+
"cls": "orange",
|
|
79
|
+
"group": "DB"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"id": "db2",
|
|
83
|
+
"label": "快取",
|
|
84
|
+
"cls": "orange",
|
|
85
|
+
"group": "DB"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"id": "db3",
|
|
89
|
+
"label": "訊息佇列",
|
|
90
|
+
"cls": "orange",
|
|
91
|
+
"group": "DB"
|
|
92
|
+
}
|
|
93
|
+
],
|
|
94
|
+
"edges": [
|
|
95
|
+
{
|
|
96
|
+
"from": "FE",
|
|
97
|
+
"to": "SV",
|
|
98
|
+
"label": "前台請求"
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"from": "SV",
|
|
102
|
+
"to": "DB",
|
|
103
|
+
"label": "資料存取"
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"from": "fe1",
|
|
107
|
+
"to": "sv1",
|
|
108
|
+
"label": "呼叫 API"
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"from": "fe2",
|
|
112
|
+
"to": "sv1",
|
|
113
|
+
"label": "呼叫 API"
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"from": "sv2",
|
|
117
|
+
"to": "db1"
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"from": "sv3",
|
|
121
|
+
"to": "db1"
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"from": "sv2",
|
|
125
|
+
"to": "db2",
|
|
126
|
+
"label": "快取查詢",
|
|
127
|
+
"kind": "dashed"
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"from": "sv4",
|
|
131
|
+
"to": "db3"
|
|
132
|
+
}
|
|
133
|
+
]
|
|
134
|
+
}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
{
|
|
2
|
+
"dir": "TB",
|
|
3
|
+
"nodes": [
|
|
4
|
+
{
|
|
5
|
+
"id": "SITE",
|
|
6
|
+
"label": "入口網站",
|
|
7
|
+
"cls": "purpleG"
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"id": "SEC_A",
|
|
11
|
+
"label": "商品瀏覽區",
|
|
12
|
+
"cls": "blueG2",
|
|
13
|
+
"group": "SITE"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"id": "SEC_B",
|
|
17
|
+
"label": "會員專區",
|
|
18
|
+
"cls": "greenG2",
|
|
19
|
+
"group": "SITE"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"id": "SEC_C",
|
|
23
|
+
"label": "購物流程",
|
|
24
|
+
"cls": "orangeG",
|
|
25
|
+
"group": "SITE"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"id": "a1",
|
|
29
|
+
"label": "首頁",
|
|
30
|
+
"cls": "blue",
|
|
31
|
+
"group": "SEC_A"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"id": "a2",
|
|
35
|
+
"label": "分類列表",
|
|
36
|
+
"cls": "blue",
|
|
37
|
+
"group": "SEC_A"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"id": "a3",
|
|
41
|
+
"label": "商品清單",
|
|
42
|
+
"cls": "blue",
|
|
43
|
+
"group": "SEC_A"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"id": "a4",
|
|
47
|
+
"label": "商品詳情",
|
|
48
|
+
"cls": "blue",
|
|
49
|
+
"group": "SEC_A"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"id": "b1",
|
|
53
|
+
"label": "登入頁",
|
|
54
|
+
"cls": "green",
|
|
55
|
+
"group": "SEC_B"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"id": "b2",
|
|
59
|
+
"label": "註冊頁",
|
|
60
|
+
"cls": "green",
|
|
61
|
+
"group": "SEC_B"
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"id": "b3",
|
|
65
|
+
"label": "會員中心",
|
|
66
|
+
"cls": "green",
|
|
67
|
+
"group": "SEC_B"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"id": "b4",
|
|
71
|
+
"label": "訂單紀錄",
|
|
72
|
+
"cls": "green",
|
|
73
|
+
"group": "SEC_B"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"id": "c1",
|
|
77
|
+
"label": "購物車",
|
|
78
|
+
"cls": "orange",
|
|
79
|
+
"group": "SEC_C"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"id": "c2",
|
|
83
|
+
"label": "結帳頁",
|
|
84
|
+
"cls": "orange",
|
|
85
|
+
"group": "SEC_C"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"id": "c3",
|
|
89
|
+
"label": "付款頁",
|
|
90
|
+
"cls": "orange",
|
|
91
|
+
"group": "SEC_C"
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"id": "c4",
|
|
95
|
+
"label": "完成頁",
|
|
96
|
+
"cls": "orange",
|
|
97
|
+
"group": "SEC_C"
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"id": "d1",
|
|
101
|
+
"label": "客服頁",
|
|
102
|
+
"cls": "purple"
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"id": "d2",
|
|
106
|
+
"label": "常見問題",
|
|
107
|
+
"cls": "purple"
|
|
108
|
+
}
|
|
109
|
+
],
|
|
110
|
+
"edges": [
|
|
111
|
+
{
|
|
112
|
+
"from": "a1",
|
|
113
|
+
"to": "a2",
|
|
114
|
+
"label": "點擊"
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"from": "a2",
|
|
118
|
+
"to": "a3",
|
|
119
|
+
"label": "點擊"
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"from": "a3",
|
|
123
|
+
"to": "a4",
|
|
124
|
+
"label": "點擊"
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"from": "b1",
|
|
128
|
+
"to": "b2",
|
|
129
|
+
"label": "點擊"
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"from": "b1",
|
|
133
|
+
"to": "b3",
|
|
134
|
+
"label": "登入成功"
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"from": "b3",
|
|
138
|
+
"to": "b4",
|
|
139
|
+
"label": "點擊"
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"from": "c1",
|
|
143
|
+
"to": "c2",
|
|
144
|
+
"label": "點擊"
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"from": "c2",
|
|
148
|
+
"to": "c3",
|
|
149
|
+
"label": "點擊"
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"from": "c3",
|
|
153
|
+
"to": "c4",
|
|
154
|
+
"label": "付款完成"
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"from": "a4",
|
|
158
|
+
"to": "d1",
|
|
159
|
+
"label": "點擊"
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
"from": "b1",
|
|
163
|
+
"to": "d1",
|
|
164
|
+
"label": "忘記密碼",
|
|
165
|
+
"kind": "dashed"
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
"from": "c1",
|
|
169
|
+
"to": "d1",
|
|
170
|
+
"label": "需要協助"
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
"from": "d1",
|
|
174
|
+
"to": "d2",
|
|
175
|
+
"label": "點擊"
|
|
176
|
+
}
|
|
177
|
+
]
|
|
178
|
+
}
|
package/test/figures.mjs
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
//
|
|
1
|
+
// 12 張範例圖正規化數據索引(供回歸測試): 讀 test/data/*.json, 衍生 rich 節點 label
|
|
2
|
+
// 數據皆為泛用虛構情境(架構類/流程類/關聯組成類), 結構覆蓋: 巢狀容器/富節點/菱形循環/LR與TB/群組邊/A4折排/align
|
|
2
3
|
import fs from 'fs'
|
|
3
4
|
import { fileURLToPath } from 'url'
|
|
4
5
|
import { dirname, resolve } from 'path'
|
|
5
6
|
import { deriveLabels } from '../src/common/derive.mjs'
|
|
6
7
|
|
|
7
8
|
const __dir = dirname(fileURLToPath(import.meta.url))
|
|
8
|
-
const KEYS = ['
|
|
9
|
+
const KEYS = ['電商平台架構圖', '微服務叢集架構圖', '物聯網平台架構圖', '系統分層架構圖', '訂單處理流程圖', '會員註冊流程圖', '資料清洗流程圖', '工單處理流程圖', '模組組成圖', '頁面導覽關聯圖', '資料流向圖', '權限角色關聯圖']
|
|
9
10
|
|
|
10
11
|
export const FIGURES = KEYS.map(key => ({ key, data: deriveLabels(JSON.parse(fs.readFileSync(resolve(__dir, 'data', key + '.json'), 'utf8'))) }))
|
package/test/lib.mjs
CHANGED
|
@@ -28,7 +28,9 @@ export async function renderCase(page, data) {
|
|
|
28
28
|
if (!res.ok) return { spec, res, svg: null, png: null }
|
|
29
29
|
await page.evaluate(() => document.fonts && document.fonts.ready)
|
|
30
30
|
await page.waitForTimeout(120)
|
|
31
|
-
|
|
31
|
+
// innerHTML 為 HTML 序列化, 會把 U+00A0 輸出成具名實體 (XML 未定義, 存成獨立 .svg 檔用瀏覽器直開會解析失敗)
|
|
32
|
+
// → 正規化回數字實體  , 使基準檔為合法 standalone SVG
|
|
33
|
+
const svg = (await page.evaluate(() => document.getElementById('stage').innerHTML)).replace(/ /g, ' ')
|
|
32
34
|
const png = await page.locator('#stage svg').screenshot()
|
|
33
35
|
return { spec, res, svg, png }
|
|
34
36
|
}
|
package/test/p1.test.mjs
ADDED
package/test/p10.test.mjs
CHANGED
|
@@ -14,16 +14,18 @@ import pixelmatch from 'pixelmatch'
|
|
|
14
14
|
import { PNG } from 'pngjs'
|
|
15
15
|
import { openStage, renderCase, runInvariants, helpers } from './lib.mjs'
|
|
16
16
|
import { CASES } from './cases.mjs'
|
|
17
|
+
import { DIAMOND_CASES } from './cases-diamond.mjs'
|
|
17
18
|
import { FIGURES } from './figures.mjs'
|
|
18
19
|
|
|
19
20
|
const __dir = dirname(fileURLToPath(import.meta.url))
|
|
20
|
-
const SNAP = resolve(__dir, 'pics')
|
|
21
|
+
const SNAP = resolve(__dir, 'pics', 'p10')
|
|
21
22
|
const MAXDIFF = 60 // PNG 容許之反鋸齒雜訊像素上限(真 regression 量級遠超此)
|
|
22
23
|
const UPDATE = process.env.UPDATE_BASELINE === '1' || process.env.UPDATE_BASELINE === 'true'
|
|
23
24
|
|
|
24
|
-
// 待測清單: 合成案 +
|
|
25
|
+
// 待測清單: 合成案 + 菱形進出組合案 + 範例圖
|
|
25
26
|
const items = []
|
|
26
27
|
for (const c of CASES) items.push({ name: c.name, data: c.data, check: c.check, expect: c.expect, kind: '合成' })
|
|
28
|
+
for (const c of DIAMOND_CASES) items.push({ name: c.name, data: c.data, check: c.check, kind: '菱形' })
|
|
27
29
|
for (const f of FIGURES) items.push({ name: f.key, data: f.data, kind: '真圖' })
|
|
28
30
|
|
|
29
31
|
// PNG 像素比對(反鋸齒容差): 回 { same, detail }
|
|
@@ -86,4 +88,54 @@ describe('p10 渲染回歸(結構不變量 + 快照基準)', function() {
|
|
|
86
88
|
}
|
|
87
89
|
})
|
|
88
90
|
}
|
|
91
|
+
|
|
92
|
+
// 菱形進出組合規則之單元驗證: 直接對頁內繪製函式(window.__dia)驅動 13 種組合,
|
|
93
|
+
// 不受 ELK 佈局埠序限制(其中「同半側」類組合乾淨合成圖排不出來, 僅能在此層驗證; 見 cases-diamond.mjs 檔頭)。
|
|
94
|
+
it('菱形 13 種進出組合規則(單元驗證)', async function() {
|
|
95
|
+
const fails = await page.evaluate(() => {
|
|
96
|
+
const { diamondSlantMid, diamondInAnchor, routeOutFromVertex, routeInToAnchor } = window.__dia
|
|
97
|
+
const box = { x: 0, y: 0, w: 100, h: 100 }
|
|
98
|
+
const bottom = { ax: 'y', sg: 1, v: { x: 50, y: 100 } }
|
|
99
|
+
const near = (p, q) => Math.abs(p.x - q.x) <= 0.5 && Math.abs(p.y - q.y) <= 0.5
|
|
100
|
+
const mL = diamondSlantMid(box, bottom, -1)
|
|
101
|
+
const mR = diamondSlantMid(box, bottom, 1)
|
|
102
|
+
const v = bottom.v
|
|
103
|
+
// 合成路徑: 出=自底邊 x 下行轉出; 進=自下方沿 x 直上進入底邊
|
|
104
|
+
const mkOut = (x) => [{ x, y: 100 }, { x, y: 160 }, { x: x + 25, y: 160 }, { x: x + 25, y: 300 }]
|
|
105
|
+
const mkIn = (x) => [{ x: x + 40, y: 300 }, { x: x + 40, y: 160 }, { x, y: 160 }, { x, y: 100 }]
|
|
106
|
+
const out = []
|
|
107
|
+
function run(name, outXs, inXs, expectIn) {
|
|
108
|
+
const hasOut = outXs.length > 0
|
|
109
|
+
outXs.forEach((x, i) => {
|
|
110
|
+
const p = mkOut(x)
|
|
111
|
+
routeOutFromVertex(p, { ax: 'y', sg: 1, v: { x: 50, y: 100 } })
|
|
112
|
+
if (!near(p[0], v)) out.push(`${name} 出${i} 未自頂點 (${p[0].x},${p[0].y})`)
|
|
113
|
+
})
|
|
114
|
+
inXs.forEach((x, i) => {
|
|
115
|
+
const p = mkIn(x)
|
|
116
|
+
const a = diamondInAnchor(box, bottom, hasOut, p[p.length - 1])
|
|
117
|
+
routeInToAnchor(p, bottom, a)
|
|
118
|
+
const e = p[p.length - 1], want = expectIn[i]
|
|
119
|
+
if (!near(e, want)) out.push(`${name} 進${i} 錨點 (${e.x.toFixed(1)},${e.y.toFixed(1)}) ≠ (${want.x},${want.y})`)
|
|
120
|
+
})
|
|
121
|
+
}
|
|
122
|
+
run('1進', [], [30], [v])
|
|
123
|
+
run('1出', [30], [], [])
|
|
124
|
+
run('2進(同半側)', [], [20, 35], [v, v])
|
|
125
|
+
run('2進(不同半側)', [], [30, 70], [v, v])
|
|
126
|
+
run('2出(同半側)', [20, 35], [], [])
|
|
127
|
+
run('2出(不同半側)', [30, 70], [], [])
|
|
128
|
+
run('1進1出', [30], [70], [mR])
|
|
129
|
+
run('2進1出(進同半側)', [45], [60, 80], [mR, mR])
|
|
130
|
+
run('2進1出(進不同半側)', [45], [20, 80], [mL, mR])
|
|
131
|
+
run('1進2出(出同半側)', [20, 35], [70], [mR])
|
|
132
|
+
run('1進2出(出不同半側)', [20, 80], [45], [mL])
|
|
133
|
+
run('2進2出(進同,出同)', [20, 35], [60, 80], [mR, mR])
|
|
134
|
+
run('2進2出(進不同,出同)', [20, 35], [10, 80], [mL, mR])
|
|
135
|
+
run('2進2出(進同,出不同)', [20, 80], [55, 70], [mR, mR])
|
|
136
|
+
run('2進2出(進不同,出不同)', [20, 80], [40, 60], [mL, mR])
|
|
137
|
+
return out
|
|
138
|
+
})
|
|
139
|
+
assert.deepStrictEqual(fails, [], '規則單元驗證失敗:\n' + fails.join('\n'))
|
|
140
|
+
})
|
|
89
141
|
})
|
package/test/p2.test.mjs
ADDED
package/test/p3.test.mjs
ADDED
package/test/p4.test.mjs
ADDED
package/test/p5.test.mjs
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// p5 渲染回歸(mocha) — 與 p10 相同測試輸入之 PNG 快照基準(共用邏輯見 snapshot.mjs)
|
|
2
|
+
// D2 WASM+dagre 對 18-20 節點圖單張可達 20-40s, 平行執行下再受 CPU 競爭 → 放寬單案逾時
|
|
3
|
+
import { definePngSuite } from './snapshot.mjs'
|
|
4
|
+
import { genPng } from '../src/p5/gen.mjs'
|
|
5
|
+
|
|
6
|
+
definePngSuite('p5', genPng, { timeout: 180000 })
|
package/test/p6.test.mjs
ADDED
package/test/p7.test.mjs
ADDED
package/test/p8.test.mjs
ADDED
package/test/p9.test.mjs
ADDED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="147" height="479" viewBox="-18 -18 147 479" style="background:#fff"><path d="M 55.5 48 L 55.5 82" fill="none" stroke="#44505a" stroke-width="2"></path><path d="M 55.5 82 L 59.5 73 L 51.5 73 Z" fill="#44505a"></path><path d="M 64.16666666666666 118 L 64.16666666666666 144 L 77.25 144 L 77.25 243.75" fill="none" stroke="#44505a" stroke-width="2"></path><path d="M 77.25 243.75 L 81.25 234.75 L 73.25 234.75 Z" fill="#44505a"></path><path d="M 55.5 309 L 55.5 395" fill="none" stroke="#44505a" stroke-width="2"></path><path d="M 55.5 395 L 59.5 386 L 51.5 386 Z" fill="#44505a"></path><foreignObject x="28.5" y="343" width="31" height="22"><div xmlns="http://www.w3.org/1999/xhtml" class="lbl" style="font-size:12.5px;color:#4a5560;text-shadow:0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff;white-space:nowrap">通過</div></foreignObject><path d="M 55.5 222 L 55.5 144 L 46.83333333333333 144 L 46.83333333333333 118" fill="none" stroke="#44505a" stroke-width="2" stroke-dasharray="6 4"></path><path d="M 46.83333333333333 118 L 42.83333333333333 127 L 50.83333333333333 127 Z" fill="#44505a"></path><foreignObject x="14" y="170" width="31" height="22"><div xmlns="http://www.w3.org/1999/xhtml" class="lbl" style="font-size:12.5px;color:#4a5560;text-shadow:0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff;white-space:nowrap">退回</div></foreignObject><rect x="29.5" y="12" width="52" height="36" rx="7" fill="#eef4fb" stroke="#3f6fb0" stroke-width="1.6"></rect><foreignObject x="29.5" y="12" width="52" height="36"><div xmlns="http://www.w3.org/1999/xhtml" class="lbl" style="width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;font-size:14px;color:#1c2b36;line-height:1.4;padding:0 4px;box-sizing:border-box"><div style="width:100%;min-width:0;overflow-wrap:break-word;word-break:normal">開始</div></div></foreignObject><rect x="29.5" y="82" width="52" height="36" rx="7" fill="#eaf4ef" stroke="#348a5c" stroke-width="1.6"></rect><foreignObject x="29.5" y="82" width="52" height="36"><div xmlns="http://www.w3.org/1999/xhtml" class="lbl" style="width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;font-size:14px;color:#1c2b36;line-height:1.4;padding:0 4px;box-sizing:border-box"><div style="width:100%;min-width:0;overflow-wrap:break-word;word-break:normal">處理</div></div></foreignObject><polygon points="55.5,222 99,265.5 55.5,309 12,265.5" fill="#fcf0e2" stroke="#c46e1a" stroke-width="1.8"></polygon><foreignObject x="12" y="222" width="87" height="87"><div xmlns="http://www.w3.org/1999/xhtml" class="lbl" style="width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;font-size:14px;color:#23303a;line-height:1.4;padding:0 4px;box-sizing:border-box"><div style="width:100%;min-width:0;overflow-wrap:break-word;word-break:normal">審核?</div></div></foreignObject><rect x="29.5" y="395" width="52" height="36" rx="7" fill="#eaf4ef" stroke="#256046" stroke-width="1.6"></rect><foreignObject x="29.5" y="395" width="52" height="36"><div xmlns="http://www.w3.org/1999/xhtml" class="lbl" style="width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;font-size:14px;color:#256046;line-height:1.4;padding:0 4px;box-sizing:border-box"><div style="width:100%;min-width:0;overflow-wrap:break-word;word-break:normal">完成</div></div></foreignObject></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="224" height="419" viewBox="-18 -18 224 419" style="background:#fff"><rect x="12" y="12" width="164" height="226" rx="8" fill="#f5f9fe" fill-opacity="0.38" stroke="#3f6fb0" stroke-width="2"></rect><foreignObject x="59.5" y="17" width="69" height="33"><div xmlns="http://www.w3.org/1999/xhtml" class="lbl" style="text-align:center;font-weight:bold;font-size:15px;color:#3f6fb0;line-height:1.3;overflow-wrap:break-word;word-break:normal">第一層</div></foreignObject><rect x="26" y="54" width="136" height="159" rx="8" fill="#f0f7f3" fill-opacity="0.38" stroke="#348a5c" stroke-width="2"></rect><foreignObject x="59.5" y="59" width="69" height="33"><div xmlns="http://www.w3.org/1999/xhtml" class="lbl" style="text-align:center;font-weight:bold;font-size:15px;color:#348a5c;line-height:1.3;overflow-wrap:break-word;word-break:normal">第二層</div></foreignObject><rect x="40" y="96" width="108" height="92" rx="8" fill="#fdf6ec" fill-opacity="0.38" stroke="#c46e1a" stroke-width="2"></rect><foreignObject x="59.5" y="101" width="69" height="33"><div xmlns="http://www.w3.org/1999/xhtml" class="lbl" style="text-align:center;font-weight:bold;font-size:15px;color:#c46e1a;line-height:1.3;overflow-wrap:break-word;word-break:normal">第三層</div></foreignObject><path d="M 94 174 L 94 335" fill="none" stroke="#44505a" stroke-width="2"></path><path d="M 94 335 L 98 326 L 90 326 Z" fill="#44505a"></path><foreignObject x="54" y="283" width="44" height="22"><div xmlns="http://www.w3.org/1999/xhtml" class="lbl" style="font-size:12.5px;color:#4a5560;text-shadow:0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff;white-space:nowrap">跨三層</div></foreignObject><rect x="54" y="138" width="80" height="36" rx="7" fill="#fcf0e2" stroke="#c46e1a" stroke-width="1.6"></rect><foreignObject x="54" y="138" width="80" height="36"><div xmlns="http://www.w3.org/1999/xhtml" class="lbl" style="width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;font-size:14px;color:#1c2b36;line-height:1.4;padding:0 4px;box-sizing:border-box"><div style="width:100%;min-width:0;overflow-wrap:break-word;word-break:normal">最深節點</div></div></foreignObject><rect x="54" y="335" width="80" height="36" rx="7" fill="#eef4fb" stroke="#3f6fb0" stroke-width="1.6"></rect><foreignObject x="54" y="335" width="80" height="36"><div xmlns="http://www.w3.org/1999/xhtml" class="lbl" style="width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;font-size:14px;color:#1c2b36;line-height:1.4;padding:0 4px;box-sizing:border-box"><div style="width:100%;min-width:0;overflow-wrap:break-word;word-break:normal">頂層節點</div></div></foreignObject></svg>
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="166" height="445" viewBox="-18 -18 166 445" style="background:#fff"><path d="M 64.5 48 L 64.5 82" fill="none" stroke="#44505a" stroke-width="2"></path><path d="M 64.5 82 L 68.5 73 L 60.5 73 Z" fill="#44505a"></path><path d="M 64.5 169 L 64.5 195 L 90 195 L 90 273" fill="none" stroke="#44505a" stroke-width="2"></path><path d="M 90 273 L 94 264 L 86 264 Z" fill="#44505a"></path><foreignObject x="93" y="221" width="31" height="22"><div xmlns="http://www.w3.org/1999/xhtml" class="lbl" style="font-size:12.5px;color:#4a5560;text-shadow:0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff;white-space:nowrap">通過</div></foreignObject><path d="M 90 309 L 90 335 L 77.83333333333334 335 L 77.83333333333334 361" fill="none" stroke="#44505a" stroke-width="2"></path><path d="M 77.83333333333334 361 L 81.83333333333334 352 L 73.83333333333334 352 Z" fill="#44505a"></path><path d="M 51.166666666666664 361 L 51.166666666666664 335 L 39 335 L 39 195 L 42.75 195 L 42.75 147.25" fill="none" stroke="#44505a" stroke-width="2" stroke-dasharray="6 4"></path><path d="M 42.75 147.25 L 38.75 156.25 L 46.75 156.25 Z" fill="#44505a"></path><foreignObject x="12" y="221" width="31" height="22"><div xmlns="http://www.w3.org/1999/xhtml" class="lbl" style="font-size:12.5px;color:#4a5560;text-shadow:0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff;white-space:nowrap">退回</div></foreignObject><rect x="38.5" y="12" width="52" height="36" rx="7" fill="#eef4fb" stroke="#3f6fb0" stroke-width="1.6"></rect><foreignObject x="38.5" y="12" width="52" height="36"><div xmlns="http://www.w3.org/1999/xhtml" class="lbl" style="width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;font-size:14px;color:#1c2b36;line-height:1.4;padding:0 4px;box-sizing:border-box"><div style="width:100%;min-width:0;overflow-wrap:break-word;word-break:normal">開始</div></div></foreignObject><polygon points="64.5,82 108,125.5 64.5,169 21,125.5" fill="#fcf0e2" stroke="#c46e1a" stroke-width="1.8"></polygon><foreignObject x="21" y="82" width="87" height="87"><div xmlns="http://www.w3.org/1999/xhtml" class="lbl" style="width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;font-size:14px;color:#23303a;line-height:1.4;padding:0 4px;box-sizing:border-box"><div style="width:100%;min-width:0;overflow-wrap:break-word;word-break:normal">判斷?</div></div></foreignObject><rect x="64" y="273" width="52" height="36" rx="7" fill="#eaf4ef" stroke="#348a5c" stroke-width="1.6"></rect><foreignObject x="64" y="273" width="52" height="36"><div xmlns="http://www.w3.org/1999/xhtml" class="lbl" style="width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;font-size:14px;color:#1c2b36;line-height:1.4;padding:0 4px;box-sizing:border-box"><div style="width:100%;min-width:0;overflow-wrap:break-word;word-break:normal">結果</div></div></foreignObject><rect x="24.5" y="361" width="80" height="36" rx="7" fill="#fbecea" stroke="#c0392b" stroke-width="1.6"></rect><foreignObject x="24.5" y="361" width="80" height="36"><div xmlns="http://www.w3.org/1999/xhtml" class="lbl" style="width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;font-size:14px;color:#23303a;line-height:1.4;padding:0 4px;box-sizing:border-box"><div style="width:100%;min-width:0;overflow-wrap:break-word;word-break:normal">回饋來源</div></div></foreignObject></svg>
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="241" height="445" viewBox="-18 -18 241 445" style="background:#fff"><path d="M 102 48 L 102 82" fill="none" stroke="#44505a" stroke-width="2"></path><path d="M 102 82 L 106 73 L 98 73 Z" fill="#44505a"></path><path d="M 102 169 L 102 195 L 160 195 L 160 273" fill="none" stroke="#44505a" stroke-width="2"></path><path d="M 160 273 L 164 264 L 156 264 Z" fill="#44505a"></path><foreignObject x="145" y="221" width="19" height="22"><div xmlns="http://www.w3.org/1999/xhtml" class="lbl" style="font-size:12.5px;color:#4a5560;text-shadow:0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff;white-space:nowrap">是</div></foreignObject><path d="M 102 169 L 102 195 L 45 195 L 45 273" fill="none" stroke="#44505a" stroke-width="2"></path><path d="M 45 273 L 49 264 L 41 264 Z" fill="#44505a"></path><foreignObject x="30" y="221" width="19" height="22"><div xmlns="http://www.w3.org/1999/xhtml" class="lbl" style="font-size:12.5px;color:#4a5560;text-shadow:0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff,0 0 3px #ffffff;white-space:nowrap">否</div></foreignObject><path d="M 160 309 L 160 335 L 144.33333333333334 335 L 144.33333333333334 361" fill="none" stroke="#44505a" stroke-width="2"></path><path d="M 144.33333333333334 361 L 148.33333333333334 352 L 140.33333333333334 352 Z" fill="#44505a"></path><path d="M 117.66666666666667 361 L 117.66666666666667 335 L 123.75 335 L 123.75 147.25" fill="none" stroke="#44505a" stroke-width="2" stroke-dasharray="6 4"></path><path d="M 123.75 147.25 L 119.75 156.25 L 127.75 156.25 Z" fill="#44505a"></path><rect x="76" y="12" width="52" height="36" rx="7" fill="#eef4fb" stroke="#3f6fb0" stroke-width="1.6"></rect><foreignObject x="76" y="12" width="52" height="36"><div xmlns="http://www.w3.org/1999/xhtml" class="lbl" style="width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;font-size:14px;color:#1c2b36;line-height:1.4;padding:0 4px;box-sizing:border-box"><div style="width:100%;min-width:0;overflow-wrap:break-word;word-break:normal">開始</div></div></foreignObject><polygon points="102,82 145.5,125.5 102,169 58.5,125.5" fill="#fcf0e2" stroke="#c46e1a" stroke-width="1.8"></polygon><foreignObject x="58.5" y="82" width="87" height="87"><div xmlns="http://www.w3.org/1999/xhtml" class="lbl" style="width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;font-size:14px;color:#23303a;line-height:1.4;padding:0 4px;box-sizing:border-box"><div style="width:100%;min-width:0;overflow-wrap:break-word;word-break:normal">判斷?</div></div></foreignObject><rect x="127" y="273" width="66" height="36" rx="7" fill="#eaf4ef" stroke="#348a5c" stroke-width="1.6"></rect><foreignObject x="127" y="273" width="66" height="36"><div xmlns="http://www.w3.org/1999/xhtml" class="lbl" style="width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;font-size:14px;color:#1c2b36;line-height:1.4;padding:0 4px;box-sizing:border-box"><div style="width:100%;min-width:0;overflow-wrap:break-word;word-break:normal">結果一</div></div></foreignObject><rect x="12" y="273" width="66" height="36" rx="7" fill="#fcf0e2" stroke="#c46e1a" stroke-width="1.6"></rect><foreignObject x="12" y="273" width="66" height="36"><div xmlns="http://www.w3.org/1999/xhtml" class="lbl" style="width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;font-size:14px;color:#1c2b36;line-height:1.4;padding:0 4px;box-sizing:border-box"><div style="width:100%;min-width:0;overflow-wrap:break-word;word-break:normal">結果二</div></div></foreignObject><rect x="91" y="361" width="80" height="36" rx="7" fill="#fbecea" stroke="#c0392b" stroke-width="1.6"></rect><foreignObject x="91" y="361" width="80" height="36"><div xmlns="http://www.w3.org/1999/xhtml" class="lbl" style="width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;font-size:14px;color:#23303a;line-height:1.4;padding:0 4px;box-sizing:border-box"><div style="width:100%;min-width:0;overflow-wrap:break-word;word-break:normal">回饋來源</div></div></foreignObject></svg>
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="147" height="217" viewBox="-18 -18 147 217" style="background:#fff"><path d="M 55.5 48 L 55.5 82" fill="none" stroke="#44505a" stroke-width="2"></path><path d="M 55.5 82 L 59.5 73 L 51.5 73 Z" fill="#44505a"></path><rect x="29.5" y="12" width="52" height="36" rx="7" fill="#eef4fb" stroke="#3f6fb0" stroke-width="1.6"></rect><foreignObject x="29.5" y="12" width="52" height="36"><div xmlns="http://www.w3.org/1999/xhtml" class="lbl" style="width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;font-size:14px;color:#1c2b36;line-height:1.4;padding:0 4px;box-sizing:border-box"><div style="width:100%;min-width:0;overflow-wrap:break-word;word-break:normal">來源</div></div></foreignObject><polygon points="55.5,82 99,125.5 55.5,169 12,125.5" fill="#fcf0e2" stroke="#c46e1a" stroke-width="1.8"></polygon><foreignObject x="12" y="82" width="87" height="87"><div xmlns="http://www.w3.org/1999/xhtml" class="lbl" style="width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;font-size:14px;color:#23303a;line-height:1.4;padding:0 4px;box-sizing:border-box"><div style="width:100%;min-width:0;overflow-wrap:break-word;word-break:normal">判斷?</div></div></foreignObject></svg>
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="147" height="287" viewBox="-18 -18 147 287" style="background:#fff"><path d="M 55.5 48 L 55.5 82" fill="none" stroke="#44505a" stroke-width="2"></path><path d="M 55.5 82 L 59.5 73 L 51.5 73 Z" fill="#44505a"></path><path d="M 55.5 169 L 55.5 203" fill="none" stroke="#44505a" stroke-width="2"></path><path d="M 55.5 203 L 59.5 194 L 51.5 194 Z" fill="#44505a"></path><rect x="29.5" y="12" width="52" height="36" rx="7" fill="#eef4fb" stroke="#3f6fb0" stroke-width="1.6"></rect><foreignObject x="29.5" y="12" width="52" height="36"><div xmlns="http://www.w3.org/1999/xhtml" class="lbl" style="width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;font-size:14px;color:#1c2b36;line-height:1.4;padding:0 4px;box-sizing:border-box"><div style="width:100%;min-width:0;overflow-wrap:break-word;word-break:normal">開始</div></div></foreignObject><polygon points="55.5,82 99,125.5 55.5,169 12,125.5" fill="#fcf0e2" stroke="#c46e1a" stroke-width="1.8"></polygon><foreignObject x="12" y="82" width="87" height="87"><div xmlns="http://www.w3.org/1999/xhtml" class="lbl" style="width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;font-size:14px;color:#23303a;line-height:1.4;padding:0 4px;box-sizing:border-box"><div style="width:100%;min-width:0;overflow-wrap:break-word;word-break:normal">判斷?</div></div></foreignObject><rect x="29.5" y="203" width="52" height="36" rx="7" fill="#eaf4ef" stroke="#348a5c" stroke-width="1.6"></rect><foreignObject x="29.5" y="203" width="52" height="36"><div xmlns="http://www.w3.org/1999/xhtml" class="lbl" style="width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;font-size:14px;color:#1c2b36;line-height:1.4;padding:0 4px;box-sizing:border-box"><div style="width:100%;min-width:0;overflow-wrap:break-word;word-break:normal">結果</div></div></foreignObject></svg>
|
|
Binary file
|