Commit d84951bd authored by schneider210's avatar schneider210
Browse files

use quasar layout basics; bugfix mapping; delete obsolete files

parent eede076c
Pipeline #131158 passed with stages
in 5 minutes and 50 seconds
This diff is collapsed.
......@@ -16,12 +16,12 @@
"watch:css": "bin/watch-css.sh"
},
"dependencies": {
"@quasar/extras": "^1.6.2",
"@quasar/extras": "^1.6.4",
"openseadragon": "^2.4.2",
"quasar": "^1.9.14"
},
"devDependencies": {
"@quasar/app": "^1.0.0",
"@quasar/app": "^1.7.0",
"autoprefixer": "^9.7.6",
"babel-eslint": "^10.0.1",
"eslint": "^6.8.0",
......
<template>
<div>
<Infobar v-if="manifests.length"
<q-layout view="hHh lpr fff">
<Header
:collection="collection"
:itemurl="itemurl"
:itemurls="itemurls"
:manifests="manifests"
:status="status"
/>
<div class="sub-viewer-1__nav">
<Togglebar :status="status" />
<Navbar :itemurls="itemurls" :manifests="manifests" />
</div>
<div style="overflow: hidden; position: relative;">
<div v-if="status.treeview" style="float: left; width: 25%;">
<Toolbar heading="Treeview" />
<Treeview
:depth="0"
:itemurl="itemurl"
:itemurls="itemurls"
:label="label"
:manifests="manifests"
:tree="tree"
/>
</div>
<div v-if="status.text" style="float: left; width: 25%;">
<Toolbar heading="Text" />
<Content :key="itemurl" :itemurl="itemurl" :request="request" />
</div>
<div v-if="status.image && imageurl" style="float: left; width: 25%;">
<Toolbar heading="Image" />
<OpenSeadragon :key="imageurl" :imageurl="imageurl" />
</div>
<div v-if="status.metadata && manifests.length" style="float: left; width: 25%;">
<Toolbar heading="Metadata" />
<Metadata :collection="collection" :manifests="manifests" />
</div>
</div>
</div>
<q-page-container>
<MainView
:collection="collection"
:depth="0"
:imageurl="imageurl"
:itemurl="itemurl"
:itemurls="itemurls"
:label="label"
:manifests="manifests"
:request="request"
:tree="tree"
/>
</q-page-container>
</q-layout>
</template>
<script>
import Content from '@/components/content.vue';
import Infobar from '@/components/infobar.vue';
import Metadata from '@/components/metadata.vue';
import Navbar from '@/components/navbar.vue';
import OpenSeadragon from '@/components/openseadragon.vue';
import Toolbar from '@/components/quasar-toolbar.vue';
import Togglebar from '@/components/togglebar.vue';
import Treeview from '@/components/treeview.vue';
import MainView from '@/views/quasar-mainview.vue';
import Header from '@/components/quasar-header.vue';
export default {
name: 'EmoViewer',
components: {
Content,
Infobar,
Metadata,
Navbar,
OpenSeadragon,
Togglebar,
Toolbar,
Treeview,
MainView,
Header,
},
data() {
return {
......@@ -97,7 +62,9 @@ export default {
this.collection = data;
this.label = this.getLabel(data);
data.sequence.map((seq) => this.getManifest(seq.id));
if (Array.isArray(data.sequence)) {
data.sequence.map((seq) => this.getManifest(seq.id));
}
});
},
getConfig() {
......@@ -121,9 +88,11 @@ export default {
this.manifests.push(data);
this.tree.push({ label: data.label, nodes: data.sequence });
data.sequence.map((seq) => this.itemurls.push(seq.id));
if (Array.isArray(data.sequence)) {
data.sequence.map((seq) => this.itemurls.push(seq.id));
}
// make sure that urls are set just once on init
if (!this.itemurl) {
if (!this.itemurl && data.sequence[0] !== 'undefined') {
this.itemurl = data.sequence[0].id;
this.getImageUrl(this.itemurl);
}
......@@ -132,16 +101,6 @@ export default {
}
});
},
getVectors() {
const path = 'statics/icons/';
this.vectornames.forEach((svg) => {
this.request(`${path}${svg}.svg`, 'text')
.then((data) => {
this.vectors[svg.replace(/(.*)--(light|normal)$/, '$1')] = data;
});
});
},
init() {
return this.config.entrypoint.match(/collection.json\s?$/)
? this.getCollection(this.config.entrypoint)
......
<template>
<h1 class="text-h3 q-px-sm q-mb-md">
<span>{{ cutstring(collectiontitle) }}</span>
<q-icon
:name="fasChevronRight"
size="40px"
class="q-pb-sm"
/>
<span>{{ cutstring(manifesttitle) }}</span>
<q-icon
:name="fasChevronRight"
size="40px"
class="q-pb-sm"
/>
<span>{{ cutstring(itemurl) }}</span>
<h1 class="text-h5 text-bold text-uppercase q-px-sm q-mb-md">
<span>{{ cut(collectiontitle) }}</span>
<q-icon class="q-pb-sm" size="40px" :name="fasChevronRight" />
<span>{{ cut(manifesttitle) }}</span>
<q-icon class="q-pb-sm" size="40px" :name="fasChevronRight" />
<span>{{ cut(itemurl) }}</span>
</h1>
</template>
......@@ -31,9 +27,6 @@ export default {
sequenceindex: 0,
};
},
created() {
this.fasChevronRight = fasChevronRight;
},
computed: {
collectiontitle() {
return this.collection.title ? this.collection.title[0].title : 'Manifest';
......@@ -43,10 +36,13 @@ export default {
},
},
methods: {
cutstring(s) {
cut(s) {
return s.length > 30 ? `${s.substring(0, 26)} ...` : s;
},
},
created() {
this.fasChevronRight = fasChevronRight;
},
mounted() {
this.$root.$on('update-metadata', (index) => {
this.sequenceindex = index;
......
......@@ -18,6 +18,7 @@
/>
{{ captionprev }}
</q-btn>
<q-btn
unelevated
color="black"
......
<template>
<figure id="openseadragon" style="height: 100vh; overflow: hidden;">
<nav>
<button style="margin-left: 8px; margin-top: 8px;"
<q-btn
v-for="(btn, idx) in buttons" :key="idx"
class="image__interact-button"
class="q-ml-sm q-mt-sm image__interact-button"
:id="btn.id"
>
<img style="height: 24px; width: 24px;" :src="btn.svg" />
</button>
<q-icon size="40px" :name="btn.svg" />
</q-btn>
</nav>
</figure>
</template>
<script>
import OpenSeadragon from 'openseadragon';
import {
fasSearchPlus,
fasSearchMinus,
fasExpand,
fasExpandArrowsAlt,
} from '@quasar/extras/fontawesome-v5';
export default {
name: 'OpenSeadragon',
......@@ -23,10 +29,10 @@ export default {
data() {
return {
buttons: [
{ id: 'zoom-in', svg: 'statics/icons/search-plus--light.svg' },
{ id: 'zoom-out', svg: 'statics/icons/search-minus--light.svg' },
{ id: 'default', svg: 'statics/icons/expand--light.svg' },
{ id: 'fullscreen', svg: 'statics/icons/expand-alt--light.svg' },
{ id: 'zoom-in', svg: fasSearchPlus },
{ id: 'zoom-out', svg: fasSearchMinus },
{ id: 'default', svg: fasExpand },
{ id: 'fullscreen', svg: fasExpandArrowsAlt },
],
options: {
id: 'openseadragon',
......
<template>
<div>
<q-drawer bordered show-if-above side="left" v-model="node" :width="$q.screen.width / 5">
<Toolbar heading="Treeview" />
<q-separator />
<q-tabs v-model="tab" shrink>
<q-route-tab to="/" exact label="TwinView" />
<q-route-tab to="/text" exact label="TextView" />
<q-route-tab to="/image" exact label="ImageView" />
</q-tabs>
<q-separator />&nbsp;
<Treeview
:depth="depth"
:itemurl="itemurl"
:itemurls="itemurls"
:label="label"
:manifests="manifests"
:tree="tree"
>
</Treeview>
</q-drawer>
<q-drawer bordered show-if-above side="right" v-model="meta" :width="$q.screen.width / 5">
<Toolbar heading="Metadata" />
<q-separator />
<Metadata v-if="manifests.length"
:collection="collection"
:manifests="manifests"
>
</Metadata>
</q-drawer>
</div>
</template>
<script>
import Metadata from '@/components/metadata.vue';
import Toolbar from '@/components/quasar-toolbar.vue';
import Treeview from '@/components/treeview.vue';
export default {
name: 'Drawer',
components: {
Metadata,
Toolbar,
Treeview,
},
props: {
collection: Object,
depth: Number,
itemurl: String,
itemurls: Array,
label: String,
manifests: Array,
tree: Array,
},
data() {
return {
meta: true,
node: true,
tab: 'Twin',
};
},
mounted() {
this.$root.$on('update-panel-status', (status) => {
this.meta = status.metadata;
this.node = status.treeview;
});
},
};
</script>
<template>
<q-header elevated class="bg-white text-black">
<Infobar v-if="manifests.length"
class="sub-viewer-1__info"
:collection="collection"
:itemurl="itemurl"
:manifests="manifests"
/>
<div class="sub-viewer-1__nav">
<Togglebar :status="status" />
<Navbar :itemurls="itemurls" :manifests="manifests" />
</div>
</q-header>
</template>
<script>
import Infobar from '@/components/infobar.vue';
import Navbar from '@/components/navbar.vue';
import Togglebar from '@/components/togglebar.vue';
export default {
name: 'Header',
components: {
Infobar,
Navbar,
Togglebar,
},
props: {
collection: Object,
itemurl: String,
itemurls: Array,
manifests: Array,
status: Object,
},
};
</script>
<template>
<div class="q-gutter-sm sub-viewer-1-nav__items" title="Tab options">
<q-btn
<div class="q-gutter-sm" title="Tab options">
<q-btn outline
v-for="(name, idx) in panels"
:key="idx"
outline
:aria-selected="toggleAria(idx)"
:key="idx"
:title="toggleTitle(idx)"
@click="updateStatus(idx)"
>
<q-icon
:name="toggleIcon(idx)"
class="q-pr-sm"
size="24px"
class="q-pr-sm" />
:name="toggleIcon(idx)"
/>
{{ name }}
</q-btn>
<q-btn
@click="resetPanelStatus"
no-caps
flat
color="black">
no-caps
title="Reset Tabs"
@click="resetPanelStatus"
>
<q-icon
:name="fasUndo"
class="q-pr-xs"
size="16px"
class="q-pr-xs" />
Reset Tabs
:name="fasUndo"
/>
{{ 'Reset Tabs' | capitalize }}
</q-btn>
</div>
</template>
......@@ -36,11 +39,6 @@ export default {
props: {
status: Object,
},
created() {
this.fasUndo = fasUndo;
this.fasCircle = fasCircle;
this.fasCheckCircle = fasCheckCircle;
},
data() {
return {
panels: ['treeview', 'text', 'image', 'metadata'],
......@@ -62,14 +60,7 @@ export default {
return !!this.status[this.panels[id]];
},
toggleIcon(id) {
return this.status[this.panels[id]]
? fasCheckCircle
: fasCircle;
},
togglePath(id) {
return this.status[this.panels[id]]
? this.svg['check-circle']
: this.svg.circle;
return this.status[this.panels[id]] ? fasCheckCircle : fasCircle;
},
toggleTitle(id) {
const caption = this.ucfirst(this.panels[id]);
......@@ -83,5 +74,10 @@ export default {
this.$root.$emit('update-panel-status', this.status);
},
},
created() {
this.fasUndo = fasUndo;
this.fasCircle = fasCircle;
this.fasCheckCircle = fasCheckCircle;
},
};
</script>
......@@ -10,7 +10,7 @@
@click="clicked = !clicked;"
>
<div class="tree__icon">
<img style="height: 16px; width: 16px;" src="statics/icons/caret-right--light.svg" />
<q-icon size="40px" :name="fasCaretRight" />
</div>
<div class="tree__text">{{ label }}</div>
</button>
......@@ -27,7 +27,7 @@
@click="clicked = !clicked;"
>
<div :class="['tree__icon', clicked ? 'tree__icon--active' : '']">
<img style="height: 16px; width: 16px;" src="statics/icons/caret-right--light.svg" />
<q-icon size="40px" :name="fasCaretRight" />
</div>
<div class="tree__text tree__text--2">{{ label }}</div>
</button>
......@@ -64,6 +64,12 @@
</template>
<script>
import {
fasCaretRight,
fasAngleRight,
fasAngleDoubleRight,
} from '@quasar/extras/fontawesome-v5';
export default {
name: 'Treeview',
props: {
......@@ -104,11 +110,11 @@ export default {
},
dataItem() {
if (this.isactive) {
return `<img style="height: 16px; width: 16px;" src="statics/icons/angle-double-right--light.svg" />
return `<q-icon class="q-pb-sm" size="40px" :name="fasAngleDoubleRight" />
<span class="tree__data-item--active">${this.label}</span>`;
}
return `<button class="item-with-icon">
<img style="height: 16px; width: 16px;" src="statics/icons/angle-right--light.svg" />
<q-icon class="q-pb-sm" size="40px" :name="fasAngleRight" />
<span>${this.label}</span>
</button>`;
},
......@@ -148,6 +154,11 @@ export default {
return sequenceidx;
},
},
created() {
this.fasAngleRight = fasAngleRight;
this.fasAngleDoubleRight = fasAngleDoubleRight;
this.fasCaretRight = fasCaretRight;
},
mounted() {
this.clicked = this.depth === 0;
......
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M226.20155,213.178295 L43.5658915,393.023256 C36.2790698,400.310078 24.496124,400.310078 17.2093023,393.023256 L6.20155039,382.015504 C-1.08527132,374.728682 -1.08527132,362.945736 6.20155039,355.658915 L164.806202,200 L6.35658915,44.3410853 C-0.930232558,37.0542636 -0.930232558,25.2713178 6.35658915,17.9844961 L17.3643411,6.97674419 C24.6511628,-0.310077519 36.4341085,-0.310077519 43.7209302,6.97674419 L226.356589,186.821705 C233.488372,194.108527 233.488372,205.891473 226.20155,213.178295 Z M424.651163,186.821705 L242.015504,6.97674419 C234.728682,-0.310077519 222.945736,-0.310077519 215.658915,6.97674419 L204.651163,17.9844961 C197.364341,25.2713178 197.364341,37.0542636 204.651163,44.3410853 L363.255814,200 L204.806202,355.658915 C197.51938,362.945736 197.51938,374.728682 204.806202,382.015504 L215.813953,393.023256 C223.100775,400.310078 234.883721,400.310078 242.170543,393.023256 L424.806202,213.178295 C431.937984,205.891473 431.937984,194.108527 424.651163,186.821705 Z" transform="translate(40 56)"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512">
<path d="M227.338241,213.244518 L43.7848156,393.993222 C36.4613767,401.316661 24.6192201,401.316661 17.2957812,393.993222 L6.23271396,382.930155 C-1.09072494,375.606716 -1.09072494,363.764559 6.23271396,356.441121 L165.634374,200 L6.38853181,43.5588797 C-0.934907093,36.2354408 -0.934907093,24.3932842 6.38853181,17.0698453 L17.4515991,6.00677808 C24.775038,-1.31666082 36.6171945,-1.31666082 43.9406334,6.00677808 L227.494059,186.755482 C234.66168,194.078922 234.66168,205.921078 227.338241,213.244518 Z" transform="translate(139 56)"/>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M242.857143,357.1 L242.857143,291.208929 L357.142857,291.208929 C380.8125,291.208929 400,272.021429 400,248.351786 L400,151.648214 C400,127.978571 380.8125,108.791071 357.142857,108.791071 L242.857143,108.791071 L242.857143,42.9080357 C242.857143,4.83839286 196.66875,-14.36875 169.695536,12.6035714 L12.5526786,169.695536 C-4.18392857,186.432143 -4.18482143,213.567857 12.5526786,230.304464 L169.695536,387.404464 C196.614286,414.323214 242.857143,395.245536 242.857143,357.1 Z M42.8571429,200 L200,42.8571429 L200,151.648214 L357.142857,151.648214 L357.142857,248.351786 L200,248.351786 L200,357.142857 L42.8571429,200 Z" transform="translate(56 56)"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M157.142857,42.9 L157.142857,108.791071 L42.8571429,108.791071 C19.1875,108.791071 0,127.978571 0,151.648214 L0,248.351786 C0,272.021429 19.1875,291.208929 42.8571429,291.208929 L157.142857,291.208929 L157.142857,357.091964 C157.142857,395.161607 203.33125,414.369643 230.304464,387.396429 L387.447321,230.304464 C404.183929,213.567857 404.184821,186.432143 387.447321,169.695536 L230.304464,12.5955357 C203.385714,-14.3232143 157.142857,4.75446429 157.142857,42.9 Z M357.142857,200 L200,357.142857 L200,248.351786 L42.8571429,248.351786 L42.8571429,151.648214 L200,151.648214 L200,42.8571429 L357.142857,200 Z" transform="translate(56 56)"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0.625,40.0403576 L0.625,359.952924 C0.625,395.484181 43.7070738,413.411685 68.8645166,388.236679 L228.76087,228.284146 C244.370752,212.664143 244.372001,187.336638 228.76087,171.715385 L68.8645166,11.7553518 C43.7570414,-13.3684034 0.625,4.4378503 0.625,40.0403576 Z M200.495442,200.000391 L40.5990885,360.000424 L40.5990885,40.0003576 L200.495442,200.000391 Z" transform="translate(136 56)"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M200,0 C89.5427419,0 0,89.5427419 0,200 C0,310.457258 89.5427419,400 200,400 C310.457258,400 400,310.457258 400,200 C400,89.5427419 310.457258,0 200,0 Z M200,38.7096774 C289.13871,38.7096774 361.290323,110.847581 361.290323,200 C361.290323,289.13871 289.152419,361.290323 200,361.290323 C110.86129,361.290323 38.7096774,289.152419 38.7096774,200 C38.7096774,110.86129 110.847581,38.7096774 200,38.7096774 M313.067742,143.76371 L294.893548,125.442742 C291.129839,121.648387 285.002419,121.623387 281.208065,125.387903 L167.214516,238.465323 L118.995161,189.854839 C115.231452,186.060484 109.104032,186.035484 105.309677,189.799194 L86.9879032,207.973387 C83.1935484,211.737097 83.1685484,217.864516 86.9330645,221.659677 L160.143548,295.462903 C163.907258,299.257258 170.034677,299.282258 173.829032,295.517742 L313.01371,157.45 C316.807258,153.685484 316.831452,147.558065 313.067742,143.76371 L313.067742,143.76371 Z" transform="translate(56 56)"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M200,0 C89.516129,0 0,89.516129 0,200 C0,310.483871 89.516129,400 200,400 C310.483871,400 400,310.483871 400,200 C400,89.516129 310.483871,0 200,0 Z M200,361.290323 C110.887097,361.290323 38.7096774,289.112903 38.7096774,200 C38.7096774,110.887097 110.887097,38.7096774 200,38.7096774 C289.112903,38.7096774 361.290323,110.887097 361.290323,200 C361.290323,289.112903 289.112903,361.290323 200,361.290323 Z" transform="translate(56 56)"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M0,132.142857 L0,21.4285714 C0,9.55357143 9.55357143,0 21.4285714,0 L132.142857,0 C138.035714,0 142.857143,4.82142857 142.857143,10.7142857 L142.857143,17.8571429 C142.857143,23.75 138.035714,28.5714286 132.142857,28.5714286 L28.5714286,28.5714286 L28.5714286,132.142857 C28.5714286,138.035714 23.75,142.857143 17.8571429,142.857143 L10.7142857,142.857143 C4.82142857,142.857143 0,138.035714 0,132.142857 Z M267.857143,0 L378.571429,0 C390.446429,0 400,9.55357143 400,21.4285714 L400,132.142857 C400,138.035714 395.178571,142.857143 389.285714,142.857143 L382.142857,142.857143 C376.25,142.857143 371.428571,138.035714 371.428571,132.142857 L371.428571,28.5714286 L267.857143,28.5714286 C261.964286,28.5714286 257.142857,23.75 257.142857,17.8571429 L257.142857,10.7142857 C257.142857,4.82142857 261.964286,0 267.857143,0 Z M400,267.857143 L400,378.571429 C400,390.446429 390.446429,400 378.571429,400 L267.857143,400 C261.964286,400 257.142857,395.178571 257.142857,389.285714 L257.142857,382.142857 C257.142857,376.25 261.964286,371.428571 267.857143,371.428571 L371.428571,371.428571 L371.428571,267.857143 C371.428571,261.964286 376.25,257.142857 382.142857,257.142857 L389.285714,257.142857 C395.178571,257.142857 400,261.964286 400,267.857143 Z M132.142857,400 L21.4285714,400 C9.55357143,400 0,390.446429 0,378.571429 L0,267.857143 C0,261.964286 4.82142857,257.142857 10.7142857,257.142857 L17.8571429,257.142857 C23.75,257.142857 28.5714286,261.964286 28.5714286,267.857143 L28.5714286,371.428571 L132.142857,371.428571 C138.035714,371.428571 142.857143,376.25 142.857143,382.142857 L142.857143,389.285714 C142.857143,395.178571 138.035714,400 132.142857,400 Z" transform="translate(56 56)"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M177.525893,217.424107 L182.575893,222.474107 C186.759821,226.658036 186.759821,233.441964 182.575893,237.626786 L48.7741071,371.428571 L103.571429,371.428571 C109.488393,371.428571 114.285714,376.225893 114.285714,382.142857 L114.285714,389.285714 C114.285714,395.202679 109.488393,400 103.571429,400 L10.7142857,400 C4.79732143,400 -8.66418048e-13,395.202679 -8.66418048e-13,389.285714 L-8.66418048e-13,296.428571 C-8.66418048e-13,290.511607 4.79732143,285.714286 10.7142857,285.714286 L17.8571429,285.714286 C23.7741071,285.714286 28.5714286,290.511607 28.5714286,296.428571 L28.5714286,351.225893 L162.373214,217.424107 C166.558036,213.239286 173.341964,213.239286 177.525893,217.424107 Z M222.187946,217.138616 L217.137946,222.188616 C212.954018,226.372545 212.954018,233.156473 217.137946,237.341295 L350.939732,371.14308 L296.142411,371.14308 C290.225446,371.14308 285.428125,375.940402 285.428125,381.857366 L285.428125,389.000223 C285.428125,394.917187 290.225446,399.714509 296.142411,399.714509 L388.999554,399.714509 C394.916518,399.714509 399.713839,394.917187 399.713839,389.000223 L399.713839,296.14308 C399.713839,290.226116 394.916518,285.428795 388.999554,285.428795 L381.856696,285.428795 C375.939732,285.428795 371.142411,290.226116 371.142411,296.14308 L371.142411,350.940402 L237.340625,217.138616 C233.155804,212.953795 226.371875,212.953795 222.187946,217.138616 Z M389.285714,-3.07665005e-12 L296.428571,-3.07665005e-12 C290.511607,-3.07665005e-12 285.714286,4.79732143 285.714286,10.7142857 L285.714286,17.8571429 C285.714286,23.7741071 290.511607,28.5714286 296.428571,28.5714286 L351.225893,28.5714286 L217.424107,162.373214 C213.240179,166.557143 213.240179,173.341071 217.424107,177.525893 L222.474107,182.575893 C226.658036,186.759821 233.441964,186.759821 237.626786,182.575893 L371.428571,48.7741071 L371.428571,103.571429 C371.428571,109.488393 376.225893,114.285714 382.142857,114.285714 L389.285714,114.285714 C395.202679,114.285714 400,109.488393 400,103.571429 L400,10.7142857 C400,4.79732143 395.202679,-3.07665005e-12 389.285714,-3.07665005e-12 Z M10.7142857,-2.86348723e-12 L103.571429,-2.86348723e-12 C109.488393,-2.86348723e-12 114.285714,4.79732143 114.285714,10.7142857 L114.285714,17.8571429 C114.285714,23.7741071 109.488393,28.5714286 103.571429,28.5714286 L48.7741071,28.5714286 L182.575893,162.373214 C186.759821,166.557143 186.759821,173.341071 182.575893,177.525893 L177.525893,182.575893 C173.341964,186.759821 166.558036,186.759821 162.373214,182.575893 L28.5714286,48.7741071 L28.5714286,103.571429 C28.5714286,109.488393 23.7741071,114.285714 17.8571429,114.285714 L10.7142857,114.285714 C4.79732143,114.285714 -8.66418048e-13,109.488393 -8.66418048e-13,103.571429 L-8.66418048e-13,10.7142857 C-8.66418048e-13,4.79732143 4.79732143,-2.86348723e-12 10.7142857,-2.86348723e-12 Z" transform="translate(56 56)"/></svg>
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment