feat: add fullscreen plugin (#5825)

* feat: add fullscreen plugin

* fix: fix cr issues

* docs: add alias
This commit is contained in:
Yuxin 2024-06-06 10:19:35 +08:00 committed by GitHub
parent af812a8411
commit 49398ddecc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 1431 additions and 2 deletions

View File

@ -42,6 +42,7 @@
"elementvisibilitychange",
"Forceatlas",
"Fruchterman",
"Fullscreen",
"gforce",
"graphlib",
"GSHAPE",

View File

@ -100,6 +100,7 @@ export { pluginBackground } from './plugin-background';
export { pluginBubbleSets } from './plugin-bubble-sets';
export { pluginCameraSetting } from './plugin-camera-setting';
export { pluginContextmenu } from './plugin-contextmenu';
export { pluginFullscreen } from './plugin-fullscreen';
export { pluginGridLine } from './plugin-grid-line';
export { pluginHistory } from './plugin-history';
export { pluginHull } from './plugin-hull';

View File

@ -0,0 +1,43 @@
import { Fullscreen, Graph } from '@/src';
import data from '@@/dataset/cluster.json';
export const pluginFullscreen: TestCase = async (context) => {
const graph = new Graph({
...context,
data,
layout: { type: 'd3-force' },
plugins: [
{
type: 'fullscreen',
key: 'fullscreen',
},
],
});
graph.setPlugins((prev) => [
...prev,
{
type: 'toolbar',
key: 'toolbar',
position: 'top-left',
onClick: (item: string) => {
const fullscreenPlugin = graph.getPluginInstance<Fullscreen>('fullscreen');
if (item === 'request-fullscreen') {
fullscreenPlugin.request();
}
if (item === 'exit-fullscreen') {
fullscreenPlugin.exit();
}
},
getItems: () => {
return [
{ id: 'request-fullscreen', value: 'request-fullscreen' },
{ id: 'exit-fullscreen', value: 'exit-fullscreen' },
];
},
},
]);
await graph.render();
return graph;
};

View File

@ -0,0 +1,602 @@
<svg xmlns="http://www.w3.org/2000/svg" width="500" height="500" style="background: transparent; position: absolute; outline: none;" color-interpolation-filters="sRGB" tabindex="1">
<defs/>
<g >
<g fill="none">
<g fill="none"/>
<g fill="none">
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 334.1151766217825,295.76106176138273 L 335.18920570243625,300.027939703461" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 345.8643917519133,283.5507073884951 L 355.313647798868,285.54600281658304" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 340.5935682559835,292.417693242978 L 352.52230698815714,306.40118493085015" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 345.4871230432173,275.4914124410618 L 375.5558457067827,266.1354491312038" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 346.070237517233,282.3521893391054 L 378.3296953440951,286.63795348316023" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 343.5012852682719,271.33826309628625 L 351.18673353055624,266.18822616152625" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 325.7814560984762,295.62008747883056 L 322.77634419449254,306.0541984098413" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 317.06498894292423,271.1225927354402 L 315.4400464574664,269.9948694227629" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 315.7946890456065,273.30167842899164 L 280.79851163798725,256.44470523800055" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 314.2287119722517,281.0269681633595 L 270.3206044339983,283.175302344453" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 334.8889970728103,264.9446249923427 L 339.5870466283616,249.58322229769635" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 315.7818771451487,287.1617725258091 L 304.8938125521169,292.3815624351284" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 342.10725766639797,290.9429819592497 L 344.0026971675864,292.64728903684403" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 315.0269557105088,275.19654424206726 L 262.9729374779678,257.8876079796124" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 366.7797903594322,304.2936478933828 L 367.09493498236463,303.13182818083595" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 392.78166866712934,277.26274204158756 L 392.2420434910738,272.8641500482562" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 406.31256675609364,265.4308290485618 L 416.2222843181251,268.02299785573507" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 408.8111134570312,282.2463999582985 L 417.0807017285157,278.57070819599835" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 353.91628154435404,245.263066110736 L 354.82859150252096,246.30115813242807" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 305.8160847072755,311.4820720130315 L 302.9982158298339,309.2454365318904" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 287.0418425211957,256.0425257383985 L 281.6372041096637,254.33120778210932" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 250.41986642092746,248.42474959204498 L 197.75071158200222,244.87279679467375" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 273.3495782578099,263.9053279973194 L 283.50012266992445,284.8942783259228" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 279.84654302825413,240.85555829402423 L 291.4186547256521,233.42405901554608" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 252.17191002760276,256.8516811666482 L 234.53390051927224,265.97413975620344" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 252.24622576917628,242.00903271104886 L 243.3887534788706,237.31489612195895" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 258.0270092923349,235.85701396710834 L 243.49844236782133,212.1353566383604" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 239.0683292261282,279.18389553840103 L 235.59359704340304,278.09781222527084" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 240.34125590932277,276.20847535638467 L 195.78543781626317,251.5449578711544" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 269.0668712343473,290.21109842816185 L 275.73894541604335,293.04439473590065" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 320.435104226046,228.53172170660267 L 328.71293654543837,230.52935922601452" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 233.91293591734177,244.87550336211504 L 229.8957493853926,242.57022112518965" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 238.86243580888777,239.5615485379317 L 224.11772776533098,217.63316886929485" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 237.75372849785717,240.37846753957908 L 239.28794325507252,242.28322984811624" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 231.93838294786786,250.6672824181354 L 197.63888755994464,245.9680325232709" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 215.5803393232377,218.61262596791454 L 215.6279126298873,220.34962378794484" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 223.50564328314167,220.46657923251973 L 227.65458926080362,212.63109227626933" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 199.79711168988467,199.98948550897086 L 190.1162336470294,197.24351620001352" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 190.65486131109702,194.3576157162683 L 219.21046461663735,197.01080774564576" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 161.2822434850844,201.55684780360616 L 139.3154127649156,215.74158359287821" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 176.92195752496676,208.7256199439868 L 179.58849474554106,227.94797929917726" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 158.74191927252156,192.10945489638806 L 140.32956052484172,191.22472784286975" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 232.1855666373332,214.21555942949226 L 232.20765235680742,214.09808497968743" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 213.90270750163512,234.34128016132894 L 197.13563783527894,239.27754002910075" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 194.48712471130105,253.52792593072488 L 207.62205192444114,263.5927863495486" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 170.90700661004624,255.52764470675305 L 167.42737449346936,259.2795910110204" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 177.5001768199418,259.21125655255344 L 176.10129412732383,264.24154801287625" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 170.06260470766247,232.90864749374606 L 136.07236691098987,201.34437374648832" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 166.58955335004103,238.7923738522077 L 154.01344347613085,234.65161113314386" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 168.92333288959588,234.28166225305546 L 160.128882686576,227.7768704617883" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 172.84340336754767,230.52924561907764 L 165.8079333023742,220.0927636582661" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 166.559795558102,248.708763651459 L 153.0094183090855,253.08034462490818" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 166.6689290279904,238.557442745084 L 140.99221904329866,229.65982715237695" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 129.88914751032237,205.4666551167416 L 133.27487684270497,214.6379133647037" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 117.23144277342375,176.12660281191546 L 115.11776987306062,171.87042172421735" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 110.03440551721155,183.30690550085592 L 105.50548095739782,181.04462648156596" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 134.52423294847767,202.80363492889822 L 137.08901015454967,205.91548128203928" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 138.6393014965949,197.65115357738503 L 142.57306270018245,199.63143919605247" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 125.06623150837567,206.44067370419066 L 125.15594408976885,208.43717968936403" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 132.4334883494828,242.9134054509966 L 131.2229294971969,239.5005349786909" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
</g>
<g fill="none">
<g fill="none" x="330.209605228419" y="280.2450627294096" transform="matrix(1,0,0,1,330.209595,280.245056)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="339.09477962307636" y="315.5439433427595" transform="matrix(1,0,0,1,339.094788,315.543945)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="370.96843627903814" y="288.8516669183745" transform="matrix(1,0,0,1,370.968445,288.851654)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="362.90626949018645" y="318.57382808705063" transform="matrix(1,0,0,1,362.906281,318.573822)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="390.8333705666316" y="261.38180952561333" transform="matrix(1,0,0,1,390.833374,261.381805)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="394.1903393745575" y="288.74508614019544" transform="matrix(1,0,0,1,394.190338,288.745087)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="431.7014789453777" y="272.0720153946496" transform="matrix(1,0,0,1,431.701477,272.072021)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="364.47843549149144" y="257.28142373450123" transform="matrix(1,0,0,1,364.478424,257.281433)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="318.3482125134808" y="321.42923476402336" transform="matrix(1,0,0,1,318.348206,321.429230)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="302.2954406091757" y="260.87239236590455" transform="matrix(1,0,0,1,302.295441,260.872406)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="266.38361733300684" y="249.50133290102752" transform="matrix(1,0,0,1,266.383606,249.501328)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="254.3397272252356" y="283.9572085882244" transform="matrix(1,0,0,1,254.339722,283.957214)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="304.8815771188896" y="224.7782921581964" transform="matrix(1,0,0,1,304.881592,224.778290)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="344.26645305476836" y="234.28278436399253" transform="matrix(1,0,0,1,344.266449,234.282791)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="290.4660994057329" y="299.29828902264836" transform="matrix(1,0,0,1,290.466095,299.298279)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="355.90035417740864" y="303.3452130308936" transform="matrix(1,0,0,1,355.900360,303.345215)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="247.79029302376827" y="252.83909345220087" transform="matrix(1,0,0,1,247.790298,252.839096)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="216.01838263636145" y="234.6066297482171" transform="matrix(1,0,0,1,216.018387,234.606628)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="215.18986028427523" y="204.35562724199048" transform="matrix(1,0,0,1,215.189865,204.355621)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="174.72348571507533" y="192.877381921129" transform="matrix(1,0,0,1,174.723480,192.877380)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="235.14184203487181" y="198.49104370483496" transform="matrix(1,0,0,1,235.141846,198.491043)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="229.25137868408746" y="229.82259369692397" transform="matrix(1,0,0,1,229.251373,229.822601)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="181.78697020120458" y="243.79622267465135" transform="matrix(1,0,0,1,181.786972,243.796219)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="124.34799591236852" y="190.45680543292272" transform="matrix(1,0,0,1,124.348000,190.456802)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="220.32219861151185" y="273.32448746177096" transform="matrix(1,0,0,1,220.322205,273.324493)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="156.54741544348207" y="271.0110103195917" transform="matrix(1,0,0,1,156.547409,271.011017)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="171.81450117618255" y="279.65659296793626" transform="matrix(1,0,0,1,171.814499,279.656586)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="108.00121334441076" y="157.54021827065668" transform="matrix(1,0,0,1,108.001213,157.540222)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="138.81602069382026" y="229.6477593502967" transform="matrix(1,0,0,1,138.816025,229.647766)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="91.19188511998078" y="173.89473434893958" transform="matrix(1,0,0,1,91.191887,173.894730)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="147.26524757451654" y="218.26231617624563" transform="matrix(1,0,0,1,147.265244,218.262314)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="156.8643721130784" y="206.82579697954296" transform="matrix(1,0,0,1,156.864365,206.825790)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="137.78223987448965" y="257.9928890298493" transform="matrix(1,0,0,1,137.782242,257.992889)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="125.87417362786235" y="224.42104880515834" transform="matrix(1,0,0,1,125.874176,224.421051)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 38 KiB

View File

@ -0,0 +1,602 @@
<svg xmlns="http://www.w3.org/2000/svg" width="500" height="500" style="background: transparent; position: absolute; outline: none;" color-interpolation-filters="sRGB" tabindex="1">
<defs/>
<g >
<g fill="none">
<g fill="none"/>
<g fill="none">
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 334.1151766217825,295.76106176138273 L 335.18920570243625,300.027939703461" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 345.8643917519133,283.5507073884951 L 355.313647798868,285.54600281658304" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 340.5935682559835,292.417693242978 L 352.52230698815714,306.40118493085015" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 345.4871230432173,275.4914124410618 L 375.5558457067827,266.1354491312038" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 346.070237517233,282.3521893391054 L 378.3296953440951,286.63795348316023" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 343.5012852682719,271.33826309628625 L 351.18673353055624,266.18822616152625" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 325.7814560984762,295.62008747883056 L 322.77634419449254,306.0541984098413" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 317.06498894292423,271.1225927354402 L 315.4400464574664,269.9948694227629" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 315.7946890456065,273.30167842899164 L 280.79851163798725,256.44470523800055" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 314.2287119722517,281.0269681633595 L 270.3206044339983,283.175302344453" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 334.8889970728103,264.9446249923427 L 339.5870466283616,249.58322229769635" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 315.7818771451487,287.1617725258091 L 304.8938125521169,292.3815624351284" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 342.10725766639797,290.9429819592497 L 344.0026971675864,292.64728903684403" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 315.0269557105088,275.19654424206726 L 262.9729374779678,257.8876079796124" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 366.7797903594322,304.2936478933828 L 367.09493498236463,303.13182818083595" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 392.78166866712934,277.26274204158756 L 392.2420434910738,272.8641500482562" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 406.31256675609364,265.4308290485618 L 416.2222843181251,268.02299785573507" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 408.8111134570312,282.2463999582985 L 417.0807017285157,278.57070819599835" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 353.91628154435404,245.263066110736 L 354.82859150252096,246.30115813242807" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 305.8160847072755,311.4820720130315 L 302.9982158298339,309.2454365318904" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 287.0418425211957,256.0425257383985 L 281.6372041096637,254.33120778210932" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 250.41986642092746,248.42474959204498 L 197.75071158200222,244.87279679467375" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 273.3495782578099,263.9053279973194 L 283.50012266992445,284.8942783259228" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 279.84654302825413,240.85555829402423 L 291.4186547256521,233.42405901554608" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 252.17191002760276,256.8516811666482 L 234.53390051927224,265.97413975620344" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 252.24622576917628,242.00903271104886 L 243.3887534788706,237.31489612195895" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 258.0270092923349,235.85701396710834 L 243.49844236782133,212.1353566383604" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 239.0683292261282,279.18389553840103 L 235.59359704340304,278.09781222527084" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 240.34125590932277,276.20847535638467 L 195.78543781626317,251.5449578711544" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 269.0668712343473,290.21109842816185 L 275.73894541604335,293.04439473590065" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 320.435104226046,228.53172170660267 L 328.71293654543837,230.52935922601452" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 233.91293591734177,244.87550336211504 L 229.8957493853926,242.57022112518965" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 238.86243580888777,239.5615485379317 L 224.11772776533098,217.63316886929485" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 237.75372849785717,240.37846753957908 L 239.28794325507252,242.28322984811624" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 231.93838294786786,250.6672824181354 L 197.63888755994464,245.9680325232709" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 215.5803393232377,218.61262596791454 L 215.6279126298873,220.34962378794484" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 223.50564328314167,220.46657923251973 L 227.65458926080362,212.63109227626933" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 199.79711168988467,199.98948550897086 L 190.1162336470294,197.24351620001352" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 190.65486131109702,194.3576157162683 L 219.21046461663735,197.01080774564576" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 161.2822434850844,201.55684780360616 L 139.3154127649156,215.74158359287821" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 176.92195752496676,208.7256199439868 L 179.58849474554106,227.94797929917726" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 158.74191927252156,192.10945489638806 L 140.32956052484172,191.22472784286975" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 232.1855666373332,214.21555942949226 L 232.20765235680742,214.09808497968743" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 213.90270750163512,234.34128016132894 L 197.13563783527894,239.27754002910075" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 194.48712471130105,253.52792593072488 L 207.62205192444114,263.5927863495486" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 170.90700661004624,255.52764470675305 L 167.42737449346936,259.2795910110204" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 177.5001768199418,259.21125655255344 L 176.10129412732383,264.24154801287625" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 170.06260470766247,232.90864749374606 L 136.07236691098987,201.34437374648832" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 166.58955335004103,238.7923738522077 L 154.01344347613085,234.65161113314386" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 168.92333288959588,234.28166225305546 L 160.128882686576,227.7768704617883" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 172.84340336754767,230.52924561907764 L 165.8079333023742,220.0927636582661" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 166.559795558102,248.708763651459 L 153.0094183090855,253.08034462490818" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 166.6689290279904,238.557442745084 L 140.99221904329866,229.65982715237695" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 129.88914751032237,205.4666551167416 L 133.27487684270497,214.6379133647037" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 117.23144277342375,176.12660281191546 L 115.11776987306062,171.87042172421735" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 110.03440551721155,183.30690550085592 L 105.50548095739782,181.04462648156596" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 134.52423294847767,202.80363492889822 L 137.08901015454967,205.91548128203928" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 138.6393014965949,197.65115357738503 L 142.57306270018245,199.63143919605247" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 125.06623150837567,206.44067370419066 L 125.15594408976885,208.43717968936403" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
<g fill="none" marker-start="false" marker-end="false">
<g fill="none" marker-start="false" marker-end="false" stroke="transparent" stroke-width="3"/>
<g>
<path fill="none" d="M 132.4334883494828,242.9134054509966 L 131.2229294971969,239.5005349786909" class="key" stroke-width="1" stroke="rgba(153,173,209,1)"/>
<path fill="none" d="M 16,0 L 16,0" class="key" stroke-width="3" stroke="transparent"/>
</g>
</g>
</g>
<g fill="none">
<g fill="none" x="330.209605228419" y="280.2450627294096" transform="matrix(1,0,0,1,330.209595,280.245056)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="339.09477962307636" y="315.5439433427595" transform="matrix(1,0,0,1,339.094788,315.543945)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="370.96843627903814" y="288.8516669183745" transform="matrix(1,0,0,1,370.968445,288.851654)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="362.90626949018645" y="318.57382808705063" transform="matrix(1,0,0,1,362.906281,318.573822)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="390.8333705666316" y="261.38180952561333" transform="matrix(1,0,0,1,390.833374,261.381805)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="394.1903393745575" y="288.74508614019544" transform="matrix(1,0,0,1,394.190338,288.745087)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="431.7014789453777" y="272.0720153946496" transform="matrix(1,0,0,1,431.701477,272.072021)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="364.47843549149144" y="257.28142373450123" transform="matrix(1,0,0,1,364.478424,257.281433)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="318.3482125134808" y="321.42923476402336" transform="matrix(1,0,0,1,318.348206,321.429230)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="302.2954406091757" y="260.87239236590455" transform="matrix(1,0,0,1,302.295441,260.872406)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="266.38361733300684" y="249.50133290102752" transform="matrix(1,0,0,1,266.383606,249.501328)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="254.3397272252356" y="283.9572085882244" transform="matrix(1,0,0,1,254.339722,283.957214)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="304.8815771188896" y="224.7782921581964" transform="matrix(1,0,0,1,304.881592,224.778290)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="344.26645305476836" y="234.28278436399253" transform="matrix(1,0,0,1,344.266449,234.282791)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="290.4660994057329" y="299.29828902264836" transform="matrix(1,0,0,1,290.466095,299.298279)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="355.90035417740864" y="303.3452130308936" transform="matrix(1,0,0,1,355.900360,303.345215)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="247.79029302376827" y="252.83909345220087" transform="matrix(1,0,0,1,247.790298,252.839096)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="216.01838263636145" y="234.6066297482171" transform="matrix(1,0,0,1,216.018387,234.606628)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="215.18986028427523" y="204.35562724199048" transform="matrix(1,0,0,1,215.189865,204.355621)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="174.72348571507533" y="192.877381921129" transform="matrix(1,0,0,1,174.723480,192.877380)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="235.14184203487181" y="198.49104370483496" transform="matrix(1,0,0,1,235.141846,198.491043)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="229.25137868408746" y="229.82259369692397" transform="matrix(1,0,0,1,229.251373,229.822601)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="181.78697020120458" y="243.79622267465135" transform="matrix(1,0,0,1,181.786972,243.796219)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="124.34799591236852" y="190.45680543292272" transform="matrix(1,0,0,1,124.348000,190.456802)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="220.32219861151185" y="273.32448746177096" transform="matrix(1,0,0,1,220.322205,273.324493)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="156.54741544348207" y="271.0110103195917" transform="matrix(1,0,0,1,156.547409,271.011017)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="171.81450117618255" y="279.65659296793626" transform="matrix(1,0,0,1,171.814499,279.656586)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="108.00121334441076" y="157.54021827065668" transform="matrix(1,0,0,1,108.001213,157.540222)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="138.81602069382026" y="229.6477593502967" transform="matrix(1,0,0,1,138.816025,229.647766)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="91.19188511998078" y="173.89473434893958" transform="matrix(1,0,0,1,91.191887,173.894730)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="147.26524757451654" y="218.26231617624563" transform="matrix(1,0,0,1,147.265244,218.262314)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="156.8643721130784" y="206.82579697954296" transform="matrix(1,0,0,1,156.864365,206.825790)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="137.78223987448965" y="257.9928890298493" transform="matrix(1,0,0,1,137.782242,257.992889)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
<g fill="none" x="125.87417362786235" y="224.42104880515834" transform="matrix(1,0,0,1,125.874176,224.421051)">
<g>
<circle fill="rgba(23,131,255,1)" class="key" stroke-width="0" stroke="rgba(0,0,0,1)" r="16"/>
</g>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 38 KiB

View File

@ -65,6 +65,7 @@ export {
BubbleSets,
CameraSetting,
Contextmenu,
Fullscreen,
GridLine,
History,
Hull,
@ -156,6 +157,7 @@ export type {
BubbleSetsOptions,
CameraSettingOptions,
ContextmenuOptions,
FullscreenOptions,
GridLineOptions,
HistoryOptions,
HullOptions,

View File

@ -0,0 +1,168 @@
import type { RuntimeContext } from '../../runtime/types';
import type { ShortcutKey } from '../../utils/shortcut';
import { Shortcut } from '../../utils/shortcut';
import type { BasePluginOptions } from '../base-plugin';
import { BasePlugin } from '../base-plugin';
/**
* <zh/>
*
* <en/> Full screen options
*/
export interface FullscreenOptions extends BasePluginOptions {
/**
* <zh/>
* - `request` :
* - `exit` : 退
*
* <en/> The way to trigger full screen
* - `request`: request full screen
* - `exit`: exit full screen
*/
trigger?: {
request?: ShortcutKey;
exit?: ShortcutKey;
};
/**
* <zh/>
*
* <en/> Whether to adapt the canvas size
* @defaultValue true
*/
autoFit?: boolean;
/**
* <zh/>
*
* <en/> Callback after entering full screen
*/
onEnter?: () => void;
/**
* <zh/> 退
*
* <en/> Callback after exiting full screen
*/
onExit?: () => void;
}
/**
* <zh/>
*
* <en/> Full screen
*/
export class Fullscreen extends BasePlugin<FullscreenOptions> {
static defaultOptions: Partial<FullscreenOptions> = {
trigger: {},
autoFit: true,
};
private shortcut: Shortcut;
private $el = this.context.canvas.getContainer()!;
private graphSize: [number, number] = [0, 0];
constructor(context: RuntimeContext, options: FullscreenOptions) {
super(context, Object.assign({}, Fullscreen.defaultOptions, options));
this.shortcut = new Shortcut(context.graph);
this.bindEvents();
this.$el.style.backgroundColor = this.context.graph.getBackground()!;
}
private bindEvents() {
this.unbindEvents();
this.shortcut.unbindAll();
const { request = [], exit = [] } = this.options.trigger;
this.shortcut.bind(request, this.request);
this.shortcut.bind(exit, this.exit);
const events = ['webkitfullscreenchange', 'mozfullscreenchange', 'fullscreenchange', 'MSFullscreenChange'];
events.forEach((eventName) => {
document.addEventListener(eventName, this.onFullscreenChange, false);
});
}
private unbindEvents() {
this.shortcut.unbindAll();
const events = ['webkitfullscreenchange', 'mozfullscreenchange', 'fullscreenchange', 'MSFullscreenChange'];
events.forEach((eventName) => {
document.removeEventListener(eventName, this.onFullscreenChange, false);
});
}
private setGraphSize(fullScreen = true) {
let width, height;
if (fullScreen) {
width = window.screen.width;
height = window.screen.height;
this.graphSize = this.context.graph.getSize();
} else {
[width, height] = this.graphSize;
}
this.context.graph.setSize(width, height);
this.context.graph.render();
}
private onFullscreenChange = () => {
const isFull = !!document.fullscreenElement;
if (this.options.autoFit) this.setGraphSize(isFull);
if (isFull) {
this.options.onEnter?.();
} else {
this.options.onExit?.();
}
};
/**
* <zh/>
*
* <en/> Request full screen
*/
public request() {
if (document.fullscreenElement || !isFullscreenEnabled()) return;
this.$el.requestFullscreen().catch((err: Error) => {
console.debug(`Error attempting to enable full-screen: ${err.message} (${err.name})`);
});
}
/**
* <zh/> 退
*
* <en/> Exit full screen
*/
public exit() {
if (!document.fullscreenElement) return;
document.exitFullscreen();
}
/**
* <zh/>
*
* <en/> Update options
* @param options - <zh/> | <en/> Options
* @internal
*/
public update(options: Partial<FullscreenOptions>): void {
this.unbindEvents();
super.update(options);
this.bindEvents();
}
}
/**
* <zh/>
*
* <en/> Determine whether full screen is enabled
* @returns <zh/> | <en/> Whether full screen is enabled
*/
function isFullscreenEnabled() {
return (
document.fullscreenEnabled ||
// <zh/> 使用 Reflect 语法规避 ts 检查 | <en/> use Reflect to avoid ts checking
Reflect.get(document, 'webkitFullscreenEnabled') ||
Reflect.get(document, 'mozFullscreenEnabled') ||
Reflect.get(document, 'msFullscreenEnabled')
);
}

View File

@ -3,6 +3,7 @@ export { BasePlugin } from './base-plugin';
export { BubbleSets } from './bubble-sets';
export { CameraSetting } from './camera-setting';
export { Contextmenu } from './contextmenu';
export { Fullscreen } from './fullscreen';
export { GridLine } from './grid-line';
export { History } from './history';
export { Hull } from './hull';
@ -17,6 +18,7 @@ export type { BasePluginOptions } from './base-plugin';
export type { BubbleSetsOptions } from './bubble-sets';
export type { CameraSettingOptions } from './camera-setting';
export type { ContextmenuOptions } from './contextmenu';
export type { FullscreenOptions } from './fullscreen';
export type { GridLineOptions } from './grid-line';
export type { HistoryOptions } from './history';
export type { HullOptions } from './hull';

View File

@ -111,5 +111,9 @@ export const BUILD_IN_SVG_ICON = `
<symbol id="reset" viewBox="64 64 896 896">
<path d="M909.1 209.3l-56.4 44.1C775.8 155.1 656.2 92 521.9 92 290 92 102.3 279.5 102 511.5 101.7 743.7 289.8 932 521.9 932c181.3 0 335.8-115 394.6-276.1 1.5-4.2-.7-8.9-4.9-10.3l-56.7-19.5a8 8 0 00-10.1 4.8c-1.8 5-3.8 10-5.9 14.9-17.3 41-42.1 77.8-73.7 109.4A344.77 344.77 0 01655.9 829c-42.3 17.9-87.4 27-133.8 27-46.5 0-91.5-9.1-133.8-27A341.5 341.5 0 01279 755.2a342.16 342.16 0 01-73.7-109.4c-17.9-42.4-27-87.4-27-133.9s9.1-91.5 27-133.9c17.3-41 42.1-77.8 73.7-109.4 31.6-31.6 68.4-56.4 109.3-73.8 42.3-17.9 87.4-27 133.8-27 46.5 0 91.5 9.1 133.8 27a341.5 341.5 0 01109.3 73.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 003 14.1l175.6 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c-.1-6.6-7.8-10.3-13-6.2z"></path>
</symbol>
<symbol id="exit-fullscreen" viewBox="0 0 1024 1024">
<path d="M418.13333333 361.43786666c0 0.2048-0.13653333 0.4096-0.13653334 0.68266667C417.99679999 362.32533333 418.13333333 362.53013333 418.13333333 362.73493333 418.13333333 371.54133333 414.44693333 379.392 408.78079999 385.39946666 408.43946666 385.7408 408.30293333 386.21866666 408.02986666 386.49173333c-1.09226667 1.09226667-2.59413333 1.77493333-3.82293333 2.73066667C398.40426666 393.65973333 391.64586666 396.8 383.93173333 396.8 383.72693333 396.8 383.59039999 396.73173333 383.38559999 396.73173333S382.97599999 396.8 382.77119999 396.8L112.29866666 396.8C92.50133333 396.8 76.79999999 381.50826666 76.79999999 362.66666666 76.66346666 343.89333333 92.63786666 328.53333333 112.16213333 328.53333333l189.44 0L87.44959999 114.51733333C73.59146666 100.59093333 73.25013333 78.5408 86.63039999 65.29706666c13.17546667-13.44853333 35.36213333-12.97066667 49.152 0.88746667l214.08426667 214.08426667L349.86666666 90.89706666C349.79839999 71.23626666 365.22666666 55.46666666 383.99999999 55.46666666 402.77333333 55.33013333 418.13333333 71.30453333 418.13333333 90.8288L418.13333333 361.43786666zM928.90453333 328.53333333l-189.44 0 214.15253333-214.08426667c13.85813333-13.9264 14.19946667-35.90826667 0.88746667-49.22026666-13.17546667-13.44853333-35.36213333-12.97066667-49.152 0.88746666l-214.08426667 214.08426667L691.26826666 90.89706666C691.26826666 71.23626666 675.83999999 55.46666666 657.06666666 55.46666666 638.29333333 55.33013333 622.93333333 71.30453333 622.93333333 90.8288l0 270.60906666c0 0.2048 0.13653333 0.4096 0.13653333 0.68266667C623.06986666 362.32533333 622.93333333 362.53013333 622.93333333 362.73493333 622.93333333 371.54133333 626.61973333 379.392 632.28586666 385.39946666c0.34133333 0.34133333 0.47786667 0.8192 0.8192 1.09226667 1.09226667 1.09226667 2.59413333 1.77493333 3.8912 2.73066667C642.66239999 393.65973333 649.42079999 396.8 657.13493333 396.8c0.2048 0 0.34133333-0.06826667 0.54613333-0.06826667S658.09066666 396.8 658.29546666 396.8l270.5408 0C948.56533333 396.8 964.26666666 381.50826666 964.26666666 362.66666666 964.40319999 343.89333333 948.42879999 328.53333333 928.90453333 328.53333333zM418.13333333 635.73333333c0-8.8064-3.6864-16.5888-9.35253334-22.66453333C408.43946666 612.72746666 408.30293333 612.2496 408.02986666 611.90826666 406.86933333 610.88426666 405.43573333 610.2016 404.20693333 609.24586666 398.47253333 604.80853333 391.64586666 601.6 383.93173333 601.6 383.72693333 601.6 383.59039999 601.73653333 383.38559999 601.73653333S382.97599999 601.6 382.77119999 601.6L112.29866666 601.6C92.50133333 601.6 76.79999999 616.96 76.79999999 635.73333333 76.66346666 654.50666666 92.63786666 669.86666666 112.16213333 669.86666666l189.44 0-214.15253334 214.15253334c-13.85813333 13.85813333-14.19946667 35.84-0.88746666 49.22026666 13.17546667 13.44853333 35.36213333 12.9024 49.152-0.95573333l214.08426666-214.08426667 0 189.37173334c0 19.59253333 15.42826667 35.49866667 34.2016 35.36213333C402.77333333 943.2064 418.13333333 927.232 418.13333333 907.5712L418.13333333 637.09866666c0-0.27306667-0.13653333-0.47786667-0.13653334-0.68266666C417.99679999 636.14293333 418.13333333 635.93813333 418.13333333 635.73333333zM739.46453333 669.86666666l189.44 0c19.456 0 35.49866667-15.36 35.36213333-34.13333333C964.26666666 616.96 948.56533333 601.6 928.76799999 601.6L658.29546666 601.6C658.09066666 601.6 657.88586666 601.73653333 657.68106666 601.73653333S657.33973333 601.6 657.13493333 601.6C649.42079999 601.6 642.59413333 604.80853333 636.85973333 609.24586666 635.63093333 610.2016 634.19733333 610.88426666 633.03679999 611.90826666 632.76373333 612.2496 632.62719999 612.72746666 632.28586666 613.0688 626.61973333 619.14453333 622.93333333 626.92693333 622.93333333 635.73333333c0 0.2048 0.13653333 0.4096 0.13653333 0.68266667C623.06986666 636.6208 622.93333333 636.8256 622.93333333 637.09866666l0 270.5408C622.93333333 927.232 638.29333333 943.2064 657.06666666 942.93333333c18.77333333 0.13653333 34.2016-15.70133333 34.2016-35.36213333l0-189.37173334 214.08426667 214.08426667c13.78986667 13.85813333 35.90826667 14.40426667 49.152 0.95573333 13.312-13.312 12.97066667-35.36213333-0.88746667-49.22026666L739.46453333 669.86666666z" ></path></symbol>
<symbol id="request-fullscreen" viewBox="0 0 1024 1024">
<path d="M69.818182 87.598545v273.128728a34.909091 34.909091 0 0 0 69.818182 0V163.653818l221.928727 222.021818a33.512727 33.512727 0 0 0 47.383273-47.383272L186.926545 116.363636h197.073455a34.909091 34.909091 0 0 0 0-69.818181H110.871273C85.364364 46.545455 69.818182 59.671273 69.818182 87.598545zM938.542545 46.545455H665.413818a34.909091 34.909091 0 0 0 0 69.818181h197.073455L640.465455 338.292364a33.512727 33.512727 0 0 0 47.383272 47.383272l221.928728-222.021818v197.073455a34.909091 34.909091 0 0 0 69.818181 0V87.598545c0-27.927273-15.453091-41.053091-40.96-41.05309z m-827.671272 907.636363h273.128727a34.909091 34.909091 0 0 0 0-69.818182H186.926545l222.021819-221.928727a33.512727 33.512727 0 0 0-47.383273-47.383273L139.636364 837.073455V640a34.909091 34.909091 0 0 0-69.818182 0v273.128727c0 27.927273 15.546182 41.053091 41.053091 41.053091z m868.724363-41.053091V640a34.909091 34.909091 0 0 0-69.818181 0v197.073455L687.941818 615.051636a33.512727 33.512727 0 0 0-47.383273 47.383273L862.487273 884.363636H665.413818a34.909091 34.909091 0 0 0 0 69.818182h273.128727c25.6 0 41.053091-13.125818 41.053091-41.053091z" ></path></symbol>
</svg>
`;

View File

@ -57,6 +57,7 @@ import {
Background,
BubbleSets,
Contextmenu,
Fullscreen,
GridLine,
History,
Hull,
@ -163,15 +164,16 @@ export const BUILT_IN_EXTENSIONS: ExtensionRegistry = {
plugin: {
'bubble-sets': BubbleSets,
'grid-line': GridLine,
background: Background,
contextmenu: Contextmenu,
fullscreen: Fullscreen,
history: History,
timebar: Timebar,
hull: Hull,
legend: Legend,
timebar: Timebar,
toolbar: Toolbar,
tooltip: Tooltip,
watermark: Watermark,
background: Background,
},
transform: {
'update-related-edges': UpdateRelatedEdge,

View File

@ -55,9 +55,11 @@
"LassoSelect": ["LassoSelect", "套索选择"],
"ScrollCanvas": ["ScrollCanvas", "滚动画布"],
"ZoomCanvas": ["ZoomCanvas", "缩放画布"],
"Background": ["Background", "背景"],
"BubbleSets": ["BubbleSets", "气泡集"],
"CameraSetting": ["CameraSetting", "相机设置"],
"ContextMenu": ["ContextMenu", "上下文菜单"],
"Fullscreen": ["Fullscreen", "全屏展示"],
"GridLine": ["GridLine", "网格线"],
"History": ["History", "历史记录"],
"Hull": ["Hull", "轮廓包围"],