feat: add tsdom tsgraph

v3
veypi 5 months ago
parent f8a0bc06df
commit 71ea4a9bb3

@ -12,3 +12,5 @@
docker run -dit --name=tsdb -v /Users/veypi/test/vdb:/victoria-metrics-data -p 8428:8428 victoriametrics/victoria-metrics -search.latencyOffset=1s docker run -dit --name=tsdb -v /Users/veypi/test/vdb:/victoria-metrics-data -p 8428:8428 victoriametrics/victoria-metrics -search.latencyOffset=1s
nats-server -c ./script/nats.cfg nats-server -c ./script/nats.cfg
``` ```

@ -1,15 +1,16 @@
<template> <template>
<NuxtLoadingIndicator />
<NuxtLayout> <NuxtLayout>
<NuxtPage /> <NuxtPage keepalive :page-key="route => route.fullPath" />
</NuxtLayout> </NuxtLayout>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
let app = useAppConfig() let app = useAppConfig()
let menu = useMenuStore()
onMounted(() => { onMounted(() => {
menu.default()
console.log('init app')
app.layout.size = [document.body.clientWidth, document.body.clientHeight] app.layout.size = [document.body.clientWidth, document.body.clientHeight]
window.onresize = () => { window.onresize = () => {
app.layout.size = [document.body.clientWidth, document.body.clientHeight] app.layout.size = [document.body.clientWidth, document.body.clientHeight]

@ -30,11 +30,12 @@
:root[theme='dark'] { :root[theme='dark'] {
--base-txt: #eee; --base-txt: #eee;
--base-bg: #222; --base-bg: #474b4c;
--base-bg-1: #333; --base-bg-1: #333;
} }
.page-h1 { .page-h1 {
user-select: none;
font-size: 2.5rem; font-size: 2.5rem;
line-height: 2.5rem; line-height: 2.5rem;
margin-bottom: 2rem; margin-bottom: 2rem;
@ -74,7 +75,7 @@
user-select: none; user-select: none;
display: inline-block; display: inline-block;
padding: 5px 10px; padding: 5px 10px;
font-weight: bold; font-weight: 500;
text-align: center; text-align: center;
text-decoration: none; text-decoration: none;
border: none; border: none;

@ -6,17 +6,11 @@
--> -->
<template> <template>
<div class="core rounded-2xl p-3"> <div class="core rounded-2xl" @click="Go">
<div class="grid gap-4 grid-cols-5"> <img class="logo rounded-full" :src="core.icon">
<div class="col-span-2"> <div class="txt">
<img :src="core.icon"> <div class="title truncate italic font-bold">{{ core.name }}</div>
</div> <div class="des"></div>
<div class="col-span-3 grid grid-cols-1 items-center text-left">
<div class="truncate h-10 flex items-center text-xl italic font-bold">
{{ core.name }}
</div>
<span class="truncate">{{ }}</span>
</div>
</div> </div>
</div> </div>
</template> </template>
@ -39,7 +33,7 @@ const u = useUserStore()
function Go() { function Go() {
if (props.is_part) { if (props.is_part) {
router.push({ name: "app.home", params: { id: props.core.id } }); router.push('/app/' + props.core.id)
return return
} }
// $q.dialog({ // $q.dialog({
@ -69,9 +63,42 @@ function Go() {
}) })
} }
</script> </script>
<style scoped> <style scoped lang="scss">
.core { .core {
user-select: none;
cursor: pointer;
width: 256px; width: 256px;
background: rgba(146, 145, 145, 0.1); height: 96px;
padding: 12px;
background: var(--base-bg-1);
filter: brightness(1.05);
.logo {
vertical-align: top;
display: inline-block;
width: 72px;
height: 72px;
}
.txt {
vertical-align: top;
display: inline-block;
width: 160px;
height: 72px;
.title {
padding-left: 12px;
text-align: left;
width: 160px;
height: 48px;
line-height: 48px;
font-size: 24px;
}
.des {
height: 24px;
padding-left: 12px;
}
}
} }
</style> </style>

@ -0,0 +1,246 @@
<!--
* crud.vue
* Copyright (C) 2023 veypi <i@veypi.com>
* 2023-10-10 19:29
* Distributed under terms of the MIT license.
-->
<template>
<div>
<div class="v-crud" :vertical='modeV'>
<div class="v-crud-keys">
<template v-for="k of keys" :key="k.name">
<div class="v-crud-cell" :style="Object.assign({},
cstyle.width[k.name], cstyle.k, cstyle.kv[k.name])">
{{ k.label || k.name }}
</div>
</template>
</div>
<div class="v-crud-values">
<div class="v-crud-line rounded-3xl" :class="cstyle.line" v-for=" (item, idx) in items" :key="idx">
<template v-for="k of keys" :key="k.name">
<div class="v-crud-cell" :changed="item.__changed[k.name]" :selected="selected
=== `${item.__idx}.${k.name}`" @click="ifselect ?
selected = `${item.__idx}.${k.name}` : ''" :style="Object.assign({},
cstyle.width[k.name], cstyle.v, cstyle.kv[k.name])">
<slot :name="`k_${k.name}`" :row="item" :value="item[k.name]" :set="setv(item, k.name)">
<template v-if="k.editable === undefined ? editable :
k.editable">
<Vinput :align="valign" :model-value="item[k.name] === undefined ?
k.default : item[k.name]" :type="k.typ" :options="k.options" @update:model-value="setv(item,
k.name)($event)"></Vinput>
</template>
<template v-else>
<span class="truncate">
{{ item[k.name] === undefined ? k.default :
item[k.name] }}
</span>
</template>
<slot :name="`k_${k.name}_append`" :row="item" :value="item[k.name]" :set="setv(item, k.name)">
</slot>
</slot>
</div>
</template>
</div>
</div>
</div>
</div>
</template>
<script lang="ts" setup>
interface keyProp {
name: string,
label?: string,
default?: any,
width?: number,
typ?: ArgType,
editable?: boolean,
options?: any,
style?: { [k: string]: string },
}
let emits = defineEmits<{
(e: 'update', v: any): void
}>()
let props = withDefaults(defineProps<{
vertical?: boolean
keys?: keyProp[],
data?: any[]
hover?: boolean,
kstyle?: { [k: string]: string },
vstyle?: { [k: string]: string },
cstyle?: { [k: string]: string },
kalign?: 'center' | 'left' | 'right',
valign?: 'center' | 'left' | 'right',
editable?: boolean
ifselect?: boolean
}>(),
{
vertical: false,
data: [] as any,
hover: false,
kvstyle: {} as any,
kstyle: {} as any,
vstyle: {} as any,
cstyle: {} as any,
kalign: 'center',
valign: 'center',
}
)
const modeV = ref(props.vertical)
watch(computed(() => props.vertical), (v) => modeV.value = v)
let items = ref<any[]>([])
watch(computed(() => JSON.stringify(props.data)), (_) => {
syncItems()
// if (JSON.stringify(v) !== JSON.stringify(o)) {
// console.log(JSON.stringify(v))
// syncItems()
// }
}, {})
const syncItems = () => {
let res = props.data?.map((v: any, i: any) => {
return Object.assign({ __idx: i, __changed: {} }, v)
}) as any
items.value.splice(0, items.value.length)
items.value.push(...res)
// Object.assign(items, res)
}
const selected = ref()
let alignDic = { 'center': 'center', 'left': 'start', 'right': 'end' }
const cstyle = computed(() => {
let res = { line: [], width: {}, kv: {} } as any
let l = props.keys?.length || 0
let w = 100
let style = modeV.value ? 'flex-basis' : 'height'
props.keys?.forEach((k, i) => {
if (k.width && k.width > 0 && k.width < 100) {
res.width[k.name] = { [style]: (k.width || 1) + '%' }
w = w - k.width
l = l - 1
}
if (k.style) {
res.kv[k.name] = k.style
}
})
props.keys?.forEach((k, i) => {
if (k.width && k.width > 0 && k.width < 100) {
} else {
res.width[k.name] = { [style]: w / l + '%' }
}
})
res.k = Object.assign({ 'justify-content': alignDic[props.kalign] }, props.cstyle, props.kstyle)
res.v = Object.assign({ 'justify-content': alignDic[props.valign] }, props.cstyle, props.vstyle)
if (props.hover) {
res.line.push('hover:bg-gray-200');
}
return res
})
const updatedItems = ref<Dict[]>([])
const setv = (item: any, k: string) => {
return (v: any) => {
item[k] = v
item.__changed[k] = true
if (!updatedItems.value[item.__idx]) {
updatedItems.value[item.__idx] = {}
}
updatedItems.value[item.__idx][k] = v
emits('update', updatedItems.value)
console.log(`update ${k} to ${v}`)
}
}
const save = () => {
}
const reload = () => {
console.log('reload')
syncItems()
}
onMounted(() => {
syncItems()
})
defineExpose({
reload
})
</script>
<style lang="scss" scoped>
.v-crud {
display: flex;
}
.v-crud-keys {
display: flex;
}
.v-crud-values {
display: flex;
}
.v-crud-line {
display: flex;
}
.v-crud-cell {
min-width: 8rem;
min-height: 4rem;
display: flex;
justify-content: center;
align-items: center;
gap: 1rem;
overflow: auto;
overflow-y: auto;
&[selected=true] {
background: rgba($color: #888, $alpha: .1);
}
&[changed=true] {
background: rgba($color: #888, $alpha: .1);
}
}
.v-crud[vertical=true] {
flex-direction: column;
.v-crud-keys {
flex-wrap: nowrap;
}
.v-crud-values {
flex-direction: column;
.v-crud-line {
flex-wrap: nowrap;
}
}
}
.v-crud[vertical=false] {
flex-wrap: nowrap;
.v-crud-keys {
flex-direction: column;
}
.v-crud-values {
flex-wrap: nowrap;
.v-crud-line {
flex-direction: column;
}
}
}
</style>

@ -0,0 +1,128 @@
<!--
* index.vue
* Copyright (C) 2023 veypi <i@veypi.com>
* 2023-10-07 18:57
* Distributed under terms of the MIT license.
-->
<template>
<div class="w-full h-full">
<!-- <div class="absolute bg-red-400 left-0 top-0 w-full h-full"></div> -->
<div class="w-full h-full" :id="eid"></div>
</div>
</template>
<script lang="ts" setup>
import 'cherry-markdown/dist/cherry-markdown.css';
import Cherry from 'cherry-markdown';
import options from './options'
import { oafs } from '@veypi/oaer'
let editor = {} as Cherry;
let emits = defineEmits<{
(e: 'save', v: string): void
(e: 'update:modelValue', v: boolean): void
}>()
let props = withDefaults(defineProps<{
modelValue?: boolean,
eid?: string,
content?: string,
static_dir?: string,
}>(),
{
eid: 'v-editor',
content: '',
modelValue: true,
}
)
watch(computed(() => props.modelValue), (e) => {
set_mode(e)
})
watch(computed(() => props.content), (e) => {
if (e) {
editor.setValue(e)
}
})
const set_mode = (preview: boolean) => {
editor.switchModel(preview ? 'previewOnly' : 'edit&preview')
}
const fileUpload = (f: File, cb: (url: string, params: any) => void) => {
/**
* @param params.name 回填的alt信息
* @param params.poster 封面图片地址视频的场景下生效
* @param params.isBorder 是否有边框样式图片场景下生效
* @param params.isShadow 是否有阴影样式图片场景下生效
* @param params.isRadius 是否有圆角样式图片场景下生效
* @param params.width 设置宽度可以是像素也可以是百分比图片视频场景下生效
* @param params.height 设置高度可以是像素也可以是百分比图片视频场景下生效
*/
oafs.upload([f], props.static_dir).then((e: any) => {
cb(e[0], {
name: f.name, isBorder: false, isShadow: false, isRadius: false, width: '', height: '',
})
})
}
const saveMenu = Cherry.createMenuHook('保存', {
onClick: function () {
let des = editor.getValue()
emits('save', des)
return
}
});
const backMenu = Cherry.createMenuHook('返回', {
onClick: function () {
emits('update:modelValue', true)
return
}
})
const init = () => {
let config = {
value: props.content,
id: props.eid,
// isPreviewOnly: true,
callback: {
},
fileUpload: fileUpload,
};
// @ts-ignore
options.toolbars.customMenu.saveMenu = saveMenu
// @ts-ignore
options.toolbars.customMenu.backMenu = backMenu
editor = new Cherry(Object.assign({}, options, config));
set_mode(props.modelValue)
}
onMounted(() => {
init()
})
</script>
<style>
iframe.cherry-dialog-iframe {
width: 100%;
height: 100%;
}
.cherry {
background: none;
box-shadow: none;
height: 100%;
}
.cherry-previewer {
background: none;
border: none;
}
.cherry-toolbar {
box-shadow: none;
}
</style>

@ -0,0 +1,207 @@
/*
* options.ts
* Copyright (C) 2023 veypi <i@veypi.com>
* 2023-10-07 20:21
* Distributed under terms of the MIT license.
*/
import { CherryOptions } from 'cherry-markdown/types/cherry';
const basicConfig: CherryOptions = {
id: '',
value: '',
externals: {
// echarts: window.echarts,
// katex: window.katex,
// MathJax: window.MathJax,
},
/** 预览区域跟随编辑器光标自动滚动 */
autoScrollByCursor: true,
forceAppend: false,
locale: 'zh_CN',
previewer: {
dom: false,
className: 'cherry-markdown',
// Whether to enable the editing ability of preview area (currently supports editing picture size and table content)
enablePreviewerBubble: true,
// 配置图片懒加载的逻辑
lazyLoadImg: {
// 加载图片时如果需要展示loaing图则配置loading图的地址
loadingImgPath: '',
// 同一时间最多有几个图片请求最大同时加载6张图片
maxNumPerTime: 1,
// 不进行懒加载处理的图片数量如果为0即所有图片都进行懒加载处理 如果设置为-1则所有图片都不进行懒加载处理
noLoadImgNum: 0,
// 首次自动加载几张图片不论图片是否滚动到视野内autoLoadImgNum = -1 表示会自动加载完所有图片
autoLoadImgNum: 3,
// 针对加载失败的图片 或 beforeLoadOneImgCallback 返回false 的图片最多尝试加载几次为了防止死循环最多5次。以图片的src为纬度统计重试次数
maxTryTimesPerSrc: 1,
// 加载一张图片之前的回调函数函数return false 会终止加载操作
beforeLoadOneImgCallback: (img: HTMLImageElement) => true,
// 加载一张图片失败之后的回调函数
failLoadOneImgCallback: (img: HTMLImageElement) => { },
// 加载一张图片之后的回调函数,如果图片加载失败,则不会回调该函数
afterLoadOneImgCallback: (img: HTMLImageElement) => { },
// 加载完所有图片后调用的回调函数
afterLoadAllImgCallback: () => { },
}
},
theme: [],
callback: {
afterChange: () => { },
/** 编辑器完成初次渲染后触发 */
afterInit: () => { },
/** img 标签挂载前触发,可用于懒加载等场景 */
beforeImageMounted: (srcProp: string, src: string) => {
return { srcProp: srcProp, src: src }
},
onClickPreview: () => { },
onCopyCode: (e: ClipboardEvent, code: string) => code,
changeString2Pinyin: (s: any) => s,
},
isPreviewOnly: false,
fileUpload: (f: any) => { console.log('upload file: ' + f) },
fileTypeLimitMap: {
video: "",
audio: "",
image: "",
word: "",
pdf: "",
file: "",
},
openai: false,
engine: {
global: {
urlProcessor(url: any, srcType: any) {
// console.log(`url-processor`, url, srcType);
return url;
},
},
syntax: {
autoLink: {
/** default open short link display */
enableShortLink: true,
/** default display 20 characters */
shortLinkLength: 20,
},
list: {
listNested: false, // The sibling list type becomes a child after conversion
indentSpace: 2, // Default 2 space indents
},
table: {
enableChart: false,
// chartRenderEngine: EChartsTableEngine,
// externals: ['echarts'],
},
inlineCode: {
theme: 'red',
},
codeBlock: {
theme: 'twilight', // Default to dark theme
wrap: true, // If it exceeds the length, whether to wrap the line. If false, the scroll bar will be displayed
lineNumber: true, // Default display line number
customRenderer: {
// Custom syntax renderer
},
/**
* indentedCodeBlock Is the switch whether indent code block is enabled
*
* this syntax is not supported by default in versions before 6.X.
* Because cherry's development team thinks the syntax is too ugly (easy to touch by mistake)
* The development team hopes to completely replace this syntax with ` ` code block syntax
* However, in the subsequent communication, the development team found that the syntax had better display effect in some scenarios
* Therefore, the development team in 6 This syntax was introduced in version X
* if you want to upgrade the following versions of services without users' awareness, you can remove this syntax:
* indentedCodeBlockfalse
*/
indentedCodeBlock: true,
},
fontEmphasis: {
allowWhitespace: false, // 是否允许首尾空格
},
strikethrough: {
needWhitespace: false, // 是否必须有前后空格
},
mathBlock: {
engine: 'MathJax', // katex或MathJax
src: 'https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js', // 如果使用MathJax plugins则需要使用该url通过script标签引入
// src: '/deps/mathjax/tex-svg.js',
plugins: true,
},
inlineMath: {
engine: 'MathJax', // katex或MathJax
},
emoji: {
useUnicode: false,
// customResourceURL: 'https://github.githubassets.com/images/icons/emoji/unicode/${code}.png?v8',
upperCase: true,
},
toc: {
/** By default, only one directory is rendered */
allowMultiToc: false,
},
header: {
/**
* Style of title
* - default Default style with anchor in front of title
* - autonumber There is a self incrementing sequence number anchor in front of the title
* - none Title has no anchor
*/
anchorStyle: 'autonumber',
},
// toc: {
// tocStyle: 'nested'
// }
// 'header': {
// strict: false
// }
},
},
toolbars: {
showToolbar: true,
theme: 'light',
toolbar: [
'bold',
'italic',
// {
// strikethrough: ['strikethrough', 'underline', 'sub', 'sup', 'ruby'],
// },
'size',
'|',
'color',
'header',
'|',
'drawIo',
'|',
'ol',
'ul',
'checklist',
'panel',
'justify',
'detail',
'|',
'formula',
{
insert: ['image', 'audio', 'video', 'link', 'hr', 'br', 'code', 'formula', 'toc', 'table', 'pdf', 'word', 'ruby'],
},
'graph',
'togglePreview',
'export',
'saveMenu',
'backMenu'
],
// toolbarRight: [],
bubble: ['bold', 'italic', 'underline', 'strikethrough', 'sub', 'sup', 'quote', 'ruby', '|', 'size', 'color'], // array or false
// sidebar: false,
// float: false
customMenu: {
} as any,
},
drawioIframeUrl: '/cherry/drawio.html',
editor: {
defaultModel: 'edit&preview',
},
};
export default basicConfig

@ -6,12 +6,12 @@
--> -->
<template> <template>
<div class="select-none items flex flex-col"> <div class="select-none items flex flex-col">
<template v-for="(v, i) in list"> <template v-for="(v, i) in menus">
<div class="item flex items-center justify-center gap-1 py-4" :active='v.path === route.fullPath' <div class="item flex items-center justify-start px-3 gap-1 py-4" :active='is_equal(v.path, route.fullPath)'
@click="$router.push(v.path)"> @click="$router.push(v.path)">
<slot :name="'L' + i" @click='$router.push(v.path)'> <slot :name="'L' + i" @click='$router.push(v.path)'>
<div class='ico' v-if="show_ico"> <div class='ico' v-if="show_ico">
<OneIcon>{{ v.ico }}</OneIcon> <OneIcon :name='v.ico' />
</div> </div>
<div class="text-nowrap" v-if="show_name"> <div class="text-nowrap" v-if="show_name">
{{ v.name }} {{ v.name }}
@ -25,17 +25,21 @@
<script lang="ts" setup> <script lang="ts" setup>
import { OneIcon } from '@veypi/one-icon' import { OneIcon } from '@veypi/one-icon'
let menu_handler = useMenuStore()
let menus = computed(() => menu_handler.menus)
let route = useRoute() let route = useRoute()
interface item {
ico: string const is_equal = (p1: string, p2: string) => {
name: string if (!p1.endsWith('/')) {
path: string p1 = p1 + '/'
label?: string }
subs?: item[] if (!p2.endsWith('/')) {
p2 = p2 + '/'
}
return p1 === p2
} }
withDefaults(defineProps<{ withDefaults(defineProps<{
list: item[],
vertical?: boolean, vertical?: boolean,
show_ico?: boolean, show_ico?: boolean,
show_name?: boolean, show_name?: boolean,
@ -58,7 +62,7 @@ withDefaults(defineProps<{
.item[active=true] { .item[active=true] {
opacity: 1; opacity: 1;
background: var(--base-bg-1); color: var(--color-warning);
cursor: default; cursor: default;
} }

@ -1,11 +0,0 @@
/*
* index.ts
* Copyright (C) 2023 veypi <i@veypi.com>
* 2023-10-22 05:11
* Distributed under terms of the MIT license.
*/
import tschart from './tschart.vue'
export default tschart

@ -0,0 +1,88 @@
<!--
* tsdom.vue
* Copyright (C) 2024 veypi <i@veypi.com>
* 2024-07-02 16:54
* Distributed under terms of the MIT license.
-->
<template>
<div>
<template v-if="data.status === 'success' &&
data.data?.result?.length">
<slot v-if="data.data.result[0]?.value?.length" name="single" :data="data.data.result[0].value"></slot>
<slot name="list" :stats="data.stats" :data="data.data.result"></slot>
</template>
<slot v-if="data.status === 'success' && data.data?.result?.length" name="success" :stats="data.stats"
:data="data.data.result"></slot>
<slot v-else name="fail">未获取数据</slot>
</div>
</template>
<script lang="ts" setup>
import axios from 'axios';
let url = window.location.protocol + '//' + window.location.host + '/api/ts/'
let props = withDefaults(defineProps<{
is_range?: boolean,
query: string,
start?: string,
end?: string,
step?: string,
delta?: string
sync_delta?: number
}>(),
{
is_range: false,
}
)
const parse_delta = (d: string) => {
let re = /^(\d*)([smhMy])$/.exec(d)
if (re?.length) {
let n = parseInt(re[1])
let u = re[2]
let m = { s: 1, m: 60, h: 3600, d: 86400, M: 2592000, y: 31536000 }
// @ts-ignore
return n * m[u] * 1000
}
return undefined
}
let qdata = computed(() => {
let res = { query: props.query } as any
if (props.delta) {
let d = parse_delta(props.delta)
if (d) {
res.start = new Date().getTime() - d
res.step = Math.ceil(d / 1000000) + 's'
}
}
if (props.start) {
res.start = props.start
}
if (props.end) {
res.end = props.end
}
if (props.step) {
res.step = props.step
}
return res
})
let data = ref<any>({})
const sync_data = () => {
let u = url + 'query'
if (props.is_range) {
u = url + 'query_range'
}
axios.get(u, { params: qdata.value }).then(e => {
data.value = e.data
})
if (props.sync_delta && props.sync_delta > 0) {
setTimeout(sync_data, props.sync_delta * 1000)
}
}
watch(() => props, sync_data, { immediate: true })
</script>
<style scoped></style>

@ -0,0 +1,85 @@
<!--
* tsgraph.vue
* Copyright (C) 2024 veypi <i@veypi.com>
* 2024-07-02 18:11
* Distributed under terms of the MIT license.
-->
<template>
<div class="v-graph" ref="chartdom"></div>
</template>
<script lang="ts" setup>
import * as echart from 'echarts'
let props = withDefaults(defineProps<{
title?: string,
options?: any,
data: any[]
dataFormatter?: (data: any[]) => any
}>(),
{}
)
let options = computed(() => {
let opt: echarts.EChartsOption = {
// @ts-ignore
title: { text: props.title, x: 'center' },
animationThreshold: 200,
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross',
label: {},
},
className: 'v-echarts-tooltip',
valueFormatter: (value: any) => value.toFixed(2),
},
axisPointer: {
link: [{ xAxisIndex: 'all' }],
label: {
backgroundColor: '#777'
}
},
xAxis: {
type: 'time',
},
dataZoom: [
{
type: 'inside',
xAxisIndex: [0],
// yAxisIndex: [0],
},
],
yAxis: {},
series: []
}
if (props.options) {
opt = Object.assign(opt, props.options)
}
return opt
})
let chartdom = ref()
let chart: echart.ECharts = {} as any
watch(() => props.data, (d) => {
let opts = options.value
opts.series = props.dataFormatter ? props.dataFormatter(d) : d
chart.setOption(options.value)
}, { deep: true })
onMounted(() => {
chart = markRaw(echart.init(chartdom.value, null, { renderer: 'svg' }))
let opts = options.value
opts.series = props.dataFormatter ? props.dataFormatter(props.data)
: props.data
chart.setOption(options.value)
})
</script>
<style scoped>
.v-graph {
min-width: 20rem;
min-height: 15rem;
width: 100%;
height: 100%;
}
</style>

@ -0,0 +1,41 @@
<template>
<div @click="click">
<input enctype="multipart/form-data" ref="file" name="files" :multiple="multiple" type="file" hidden @change="upload">
<slot></slot>
</div>
</template>
<script lang="ts" setup>
import { oafs } from '@veypi/oaer'
let file = ref<HTMLInputElement>()
let emits = defineEmits<{
(e: 'success', v: string): void
(e: 'failed'): void
}>()
let props = withDefaults(defineProps<{
multiple?: boolean,
renames?: string,
dir?: string,
}>(), {
multiple: false,
renames: ''
})
function click() {
file.value?.dispatchEvent(new MouseEvent('click'))
}
const upload = (evt: Event) => {
evt.preventDefault()
let f = (evt.target as HTMLInputElement).files as FileList
oafs.upload(f, props.dir, props.renames?.split(/[, ]+/)).then((e: any) => {
console.log(e)
emits('success', props.multiple ? e : e[0])
})
}
</script>
<style scoped></style>

@ -41,13 +41,14 @@
</template> </template>
<template v-else-if="type === 'radio'"> <template v-else-if="type === 'radio'">
<div class="flex justify-between gap-4"> <div class="flex justify-between gap-4">
<template :key="ok" v-for="(ov, ok) of transDic"> {{ transDic }}
<div :class="[value === ok ? 'radio-btn-active' : <!-- <template :key="ok" v-for="(ov, ok) of transDic"> -->
'div-btn']" @click="setSelect(ok)" style="color:white;" <!-- <div :class="[value === ok ? 'radio-btn-active' : -->
class="div-center font-bold grow truncate radio-btn rounded-md transition duration-500"> <!-- 'div-btn']" @click="setSelect(ok)" style="color:white;" -->
{{ ov || ok }} <!-- class="div-center font-bold grow truncate radio-btn rounded-md transition duration-500"> -->
</div> <!-- {{ ov || ok }} -->
</template> <!-- </div> -->
<!-- </template> -->
</div> </div>
</template> </template>
@ -225,6 +226,7 @@ const sync = () => {
transDic.value[i.key] = i.name transDic.value[i.key] = i.name
} }
} }
console.log(transDic.value)
} else { } else {
for (let i in props.options) { for (let i in props.options) {
transDic.value[i] = props.options[i] transDic.value[i] = props.options[i]

@ -53,7 +53,7 @@ const responseFailed = (error: AxiosError) => {
alert('没有网络') alert('没有网络')
return Promise.reject(new Error('请检查网络连接')) return Promise.reject(new Error('请检查网络连接'))
} }
console.log(response) console.warn(response)
return Promise.reject(response?.data || response?.headers.error) return Promise.reject(response?.data || response?.headers.error)
} }

@ -7,6 +7,17 @@ function padLeftZero(str: string): string {
const util = { const util = {
timetostr(d: number) {
if (d < 60) {
return d + '秒'
} else if (d < 3600) {
return (d / 60).toFixed(1) + '分钟'
} else if (d < 86400) {
return (d / 3600).toFixed(1) + '小时'
} else if (d < 2592000) {
return (d / 86400).toFixed(1) + '天'
}
},
datetostr(d: string) { datetostr(d: string) {
if (!d.endsWith('Z')) { if (!d.endsWith('Z')) {
d = d + 'Z' d = d + 'Z'

@ -8,7 +8,7 @@
<template> <template>
<div class="flex justify-center items-center w-full h-full"> <div class="flex justify-center items-center w-full h-full">
<div class="text-center text-xl"> <div class="text-center text-xl">
<OneIcon style="font-size: 200px">404</OneIcon> <OneIcon name="404" style="font-size: 200px"></OneIcon>
<div v-if='error && error.statusCode === 404'> <div v-if='error && error.statusCode === 404'>
路径失效啦! {{ count }} 路径失效啦! {{ count }}
</div> </div>

@ -7,21 +7,16 @@
<template> <template>
<div class="page"> <div class="page">
<div class="header flex justify-center items-center"> <div class="header flex justify-center items-center">
<div class="ico" @click="toggle_menu(1)"></div> <div class="ico" @click="router.push('/')"></div>
<div @click="toggle_menu(2)"></div> <div>统一认证系</div>
<div class="grow"></div> <div class="grow"></div>
<OneIcon class="mx-2" @click="toggle_fullscreen"> <OneIcon class="mx-2" @click="toggle_fullscreen" :name="app.layout.fullscreen ? 'compress' : 'expend'"></OneIcon>
{{ app.layout.fullscreen ? 'compress' : 'expend' }} <OneIcon class="mx-2" @click="toggle_theme" :name="app.layout.theme === '' ? 'light' : 'dark'"></OneIcon>
</OneIcon>
<OneIcon class="mx-2" @click="toggle_theme">
{{ app.layout.theme === '' ? 'light' : 'dark' }}
</OneIcon>
<OAer class="mx-2" v-if="user.ready" @logout="user.logout" :is-dark="app.layout.theme !== ''"> <OAer class="mx-2" v-if="user.ready" @logout="user.logout" :is-dark="app.layout.theme !== ''">
</OAer> </OAer>
</div> </div>
<div class="menu"> <div class="menu">
<Menu :show_name="menu_mode === 2" :list="menu"></Menu> <Menu :show_name="menu_mode === 2"></Menu>
</div> </div>
<div class="menu-hr"></div> <div class="menu-hr"></div>
<div class="main px-8 py-6"> <div class="main px-8 py-6">
@ -56,13 +51,6 @@ bus.on('token', (t: any) => {
oaer.set({ token: t }) oaer.set({ token: t })
}) })
let menu = ref([
{ ico: 'home', name: '应用中心', path: '/' },
{ ico: 'user', name: '用户设置', path: '/user' },
{ ico: 'file-exception', name: '文档中心', path: '/docs' },
{ ico: 'setting', name: '应用统计', path: '/stats' },
{ ico: 'setting', name: '系统设置', path: '/setting' },
])
if (!util.checkLogin()) { if (!util.checkLogin()) {
router.push('/login') router.push('/login')
} else { } else {
@ -96,6 +84,7 @@ const toggle_theme = () => {
document.documentElement.setAttribute('theme', app.layout.theme) document.documentElement.setAttribute('theme', app.layout.theme)
} }
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">

@ -3,7 +3,6 @@ export default defineNuxtConfig({
devtools: { enabled: true }, devtools: { enabled: true },
css: [ css: [
'~/assets/css/tailwind.css',
'~/assets/css/app.scss', '~/assets/css/app.scss',
], ],
@ -47,13 +46,5 @@ export default defineNuxtConfig({
] ]
}, },
}, },
modules: ["@pinia/nuxt", "@nuxt/ui"]
postcss: {
plugins: {
tailwindcss: {},
autoprefixer: {},
}
},
modules: ["@pinia/nuxt"]
}) })

@ -10,11 +10,13 @@
"postinstall": "nuxt prepare" "postinstall": "nuxt prepare"
}, },
"dependencies": { "dependencies": {
"@nuxt/ui": "^2.16.0",
"@pinia/nuxt": "^0.5.1", "@pinia/nuxt": "^0.5.1",
"@veypi/msg": "^0.1.4", "@veypi/msg": "^0.2.0",
"@veypi/oaer": "^0.2.4", "@veypi/oaer": "^0.2.4",
"@veypi/one-icon": "^2.0.6", "@veypi/one-icon": "^3.0.0",
"axios": "^1.7.2", "axios": "^1.7.2",
"cherry-markdown": "^0.8.42",
"echarts": "^5.5.0", "echarts": "^5.5.0",
"js-base64": "^3.7.7", "js-base64": "^3.7.7",
"nuxt": "^3.11.2", "nuxt": "^3.11.2",
@ -23,9 +25,6 @@
}, },
"packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e", "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e",
"devDependencies": { "devDependencies": {
"autoprefixer": "^10.4.19", "sass": "^1.77.4"
"postcss": "^8.4.38",
"sass": "^1.77.4",
"tailwindcss": "^3.4.3"
} }
} }

@ -0,0 +1,58 @@
<!--
* app.[id].vue
* Copyright (C) 2024 veypi <i@veypi.com>
* 2024-06-07 17:46
* Distributed under terms of the MIT license.
-->
<template>
<div>
<div class="flex justify-start items-center gap-4">
<img class="w-12 h-12 rounded-full" :src="core.icon">
<div class="text-3xl">
{{ core.name }}
</div>
</div>
<NuxtPage keepalive :core='core' :page-key="route => route.fullPath"></NuxtPage>
</div>
</template>
<script lang="ts" setup>
import msg from '@veypi/msg';
const route = useRoute()
const router = useRouter()
let menu = useMenuStore()
let core = ref({} as modelsApp)
const set_menu = () => {
let p = '/app/' + core.value.id
menu.set([
{ ico: 'home', name: core.value.name, path: p },
{ ico: 'user', name: '用户管理', path: p + '/user' },
{ ico: 'team', name: '权限设置', path: p + '/auth' },
{ ico: 'setting', name: '应用设置', path: p + '/cfg' },
])
}
onMounted(() => {
api.app.get(route.params.id as string).then((e) => {
core.value = e
set_menu()
}).catch(e => {
msg.Warn('获取数据失败: ' + e)
router.push('/')
})
})
onActivated(() => {
set_menu()
})
onBeforeRouteLeave(() => {
menu.default()
})
</script>
<style scoped></style>

@ -0,0 +1,15 @@
<!--
* auth.vue
* Copyright (C) 2024 veypi <i@veypi.com>
* 2024-06-12 18:38
* Distributed under terms of the MIT license.
-->
<template>
<div></div>
</template>
<script lang="ts" setup>
</script>
<style scoped></style>

@ -0,0 +1,103 @@
<!--
* cfg.vue
* Copyright (C) 2024 veypi <i@veypi.com>
* 2024-06-12 18:38
* Distributed under terms of the MIT license.
-->
<template>
<div>
<div class="flex justify-center pt-10">
<Crud ref="table" :keys="keys" :data="core.id ? [core] : []" kalign="left" valign="left" editable
:vstyle="{ 'width': '50vw' }" @update="newApp = $event[0]" :kstyle="{ 'width': '10rem' }">
<template #k_icon="{ value, set }">
<div class="w-full flex justify-center">
<Uploader class="" @success="set" dir="app_icon">
<img class="w-12 h-12 rounded-full" :src="value">
</Uploader>
</div>
</template>
<template #k_key>
<div class="w-full div-center">
<div class='vbtn' @click="getkey"></div>
<span class="mx-2 select-all" v-if="tmpkey">{{ tmpkey }}</span>
</div>
</template>
<template #k_redirect_append>
<div class="mx-8 vbtn" @click="$router.push('/login?uuid=' +
core.id)">Go</div>
</template>
</Crud>
</div>
<div v-if="newApp" class="flex justify-center gap-8 mt-6">
<div class="vbtn" style="background: var(--color-primary);" @click="table.reload">退</div>
<div class="vbtn" style="background: var(--color-warning);" @click="save"></div>
</div>
</div>
</template>
<script lang="ts" setup>
import msg from '@veypi/msg';
const keys = ref<any>([
{
name: 'name',
label: '应用名',
},
{ name: 'id', label: 'uuid', editable: false },
{ name: 'key', label: '秘钥Key' },
{ name: 'icon', label: 'logo' },
{
name: 'join_method', label: '用户注册', typ: ArgType.Radio,
options: [{ key: 0, name: '允许' }, { key: 1, name: '禁止' },
{ key: 2, name: '申请' }]
},
{ name: 'host', label: '项目首页' },
{ name: 'redirect', label: '跳转地址' },
])
let props = withDefaults(defineProps<{
core: modelsApp,
}>(),
{}
)
const newApp = ref(null)
const table = ref()
const save = () => {
api.app.update(props.core.id, newApp.value).then(e => {
msg.Info('更新成功')
Object.assign(props.core, newApp.value)
newApp.value = null
}).catch(e => {
msg.Warn('更新失败 ' + e)
})
}
const tmpkey = ref('')
const getkey = () => {
msg.Prompt('请输入应用名确认', '').then((s) => {
if (s === props.core.name) {
api.app.getKey(props.core.id).then(e => {
tmpkey.value = e
copyToClipboard(e).then(e => {
msg.Info('已复制到剪贴板')
}).catch(e => {
tmpkey.value = e
})
}).catch(e => {
msg.Warn('获取失败 ' + e)
})
} else {
msg.Info('输入错误')
}
})
}
onMounted(() => {
})
</script>
<style scoped></style>

@ -0,0 +1,62 @@
<!--
* index.vue
* Copyright (C) 2024 veypi <i@veypi.com>
* 2024-06-07 17:46
* Distributed under terms of the MIT license.
-->
<template>
<div>
<div class="vbtn" v-if="preview_mode" @click="preview_mode = false">
ss
</div>
<Editor style="" v-if="core.id" :eid="core.id + '.des'" v-model="preview_mode" :content="content" @save="save">
</Editor>
</div>
</template>
<script lang="ts" setup>
import { oafs } from '@veypi/oaer'
let props = withDefaults(defineProps<{
core: modelsApp,
}>(),
{}
)
let preview_mode = ref(true)
let content = ref()
watch(computed(() => props.core.id), () => {
sync()
})
const sync = () => {
if (props.core.des) {
oafs.get(props.core.des).then(e => content.value = e)
}
}
const save = (des: string) => {
let a = new File([des], props.core.name + '.md');
oafs.upload([a], props.core.id).then(url => {
api.app.update(props.core.id, { des: url[0] }).then(e => {
preview_mode.value = true
props.core.des = url[0]
}).catch(e => {
// msg.Warn(": " + e)
})
}).catch(e => {
// msg.Warn(": " + e)
})
}
onMounted(() => {
sync()
})
</script>
<style scoped></style>

@ -0,0 +1,17 @@
<!--
* user.vue
* Copyright (C) 2024 veypi <i@veypi.com>
* 2024-06-12 18:17
* Distributed under terms of the MIT license.
-->
<template>
<div>
"asd"
</div>
</template>
<script lang="ts" setup>
</script>
<style scoped></style>

@ -12,7 +12,7 @@
<div class="flex justify-between"> <div class="flex justify-between">
<h1 class="page-h1">我的应用</h1> <h1 class="page-h1">我的应用</h1>
<div class="my-5 mr-10"> <div class="my-5 mr-10">
<div class='vbtn' outline @click="new_flag = true" v-if="user.auth.Get(R.App, '').CanCreate()"> <div class='vbtn bg-gray-400' @click="new_flag = true" v-if="user.auth.Get(R.App, '').CanCreate()">
</div> </div>
</div> </div>
</div> </div>
@ -30,6 +30,11 @@
</div> </div>
</div> </div>
</div> </div>
<UModal v-model="new_flag">
<div class="p-4">
123
</div>
</UModal>
<!-- <q-dialog :square="false" v-model="new_flag"> --> <!-- <q-dialog :square="false" v-model="new_flag"> -->
<!-- <q-card class="w-4/5 md:w-96 rounded-2xl"> --> <!-- <q-card class="w-4/5 md:w-96 rounded-2xl"> -->
<!-- <q-card-section> --> <!-- <q-card-section> -->

@ -23,6 +23,8 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import msg from '@veypi/msg';
definePageMeta({ definePageMeta({
layout: false, layout: false,
@ -49,10 +51,7 @@ const onSubmit = () => {
console.log([url]) console.log([url])
redirect(url) redirect(url)
}).catch(e => { }).catch(e => {
let m = e === '1' ? '被禁止登录' : e === '2' ? '正在申请中' : e msg.Warn(e)
=== '3' ?
'申请被拒绝' : '登录失败:' + e
// msg.Warn(m)
}) })
} }
const onReset = () => { const onReset = () => {

@ -12,16 +12,22 @@
</div> </div>
<div class="w-40 text-center py-4 start_card"> <div class="w-40 text-center py-4 start_card">
<div class="text-3xl"> 已运行 </div> <div class="text-3xl"> 已运行 </div>
<div class="text-2xl mt-2"> <Tsdom class="text-2xl mt-2" query='srv_start'>
{{ start_time }} <template #single="{ data }">
</div> {{ util.timetostr(data[1]) }}
</template>
</Tsdom>
</div> </div>
<div class="flex flex-nowrap" style=""> <div class="flex flex-nowrap" style="">
<!-- <Tschart :item="querys[0]" :time_mode="1"></Tschart> -->
<Tsdom :sync_delta="1" delta="3m" step="1s" is_range query="srv_cpu" class="w-1/2">
<template #list="{ data }">
<Tsgraph title="CPU" :data="data" :data-formatter="data_formatter"></Tsgraph>
</template>
</Tsdom>
<div class="w-1/2"> <div class="w-1/2">
<Tschart :item="querys[0]" :time_mode="1"></Tschart> <Tschart sync :item="querys[1]" :time_mode="0"></Tschart>
</div>
<div class="w-1/2">
<Tschart :item="querys[1]" :time_mode="1"></Tschart>
</div> </div>
</div> </div>
</div> </div>
@ -33,6 +39,21 @@ import { ref, onUnmounted, onMounted } from 'vue';
const start_time = ref('') const start_time = ref('')
const timer = ref() const timer = ref()
const data_formatter = (data: any[]) => {
let res = [] as any[]
data.forEach(e => {
res.push({
data: e.values.map((e: any) =>
[e[0] * 1000, Number(e[1])]),
smooth: true,
symbol: 'none',
type: 'line',
valueFormatter: (value: number) => value.toFixed(2) + "%",
})
})
console.log(res)
return res
}
const querys = ref<{ const querys = ref<{
name: string, query: string[] | string, label?: any, name: string, query: string[] | string, label?: any,
valueFormatter?: any valueFormatter?: any

@ -0,0 +1,36 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" href="./drawio/grapheditor.css">
<!-- <link rel="stylesheet" href="https://jgraph.github.io/drawio/src/main/webapp/mxgraph/css/common.css"> -->
</head>
<!-- geEditor 是draw.io需要的class -->
<body class="geEditor">
<!-- 加载draw.io需要的静态资源 begin -->
<script type="text/javascript" src="./drawio/Init.js"></script>
<script type="text/javascript" src="./drawio/lib/pako.min.js"></script>
<script type="text/javascript" src="./drawio/lib/base64.js"></script>
<script type="text/javascript" src="./drawio/jscolor/jscolor.js"></script>
<script type="text/javascript" src="./drawio/lib/purify.min.js"></script>
<script type="text/javascript" src="./mxgraph/mxClient.js"></script>
<script type="text/javascript" src="./drawio/Editor.js"></script>
<script type="text/javascript" src="./drawio/EditorUi.js"></script>
<script type="text/javascript" src="./drawio/Sidebar.js"></script>
<script type="text/javascript" src="./drawio/Graph.js"></script>
<script type="text/javascript" src="./drawio/Format.js"></script>
<script type="text/javascript" src="./drawio/Shapes.js"></script>
<script type="text/javascript" src="./drawio/Actions.js"></script>
<script type="text/javascript" src="./drawio/Menus.js"></script>
<script type="text/javascript" src="./drawio/Toolbar.js"></script>
<script type="text/javascript" src="./drawio/Dialogs.js"></script>
<!-- 加载draw.io需要的静态资源 end -->
<script src="./drawio.js"></script>
</body>
</html>

@ -0,0 +1,74 @@
// Extends EditorUi to update I/O action states based on availability of backend
(function() {
var editorUiInit = EditorUi.prototype.init;
EditorUi.prototype.init = function() {
editorUiInit.apply(this, arguments);
};
// Adds required resources (disables loading of fallback properties, this can only
// be used if we know that all keys are defined in the language specific file)
mxResources.loadDefaultBundle = false;
var bundle = mxResources.getDefaultBundle(mxLanguage);
// Fixes possible asynchronous requests
mxUtils.getAll([bundle, './drawio/theme/default.xml'], function(xhr) {
// Adds bundle text to resources
mxResources.parse(xhr[0].getText());
// Configures the default graph theme
var themes = new Object();
themes[Graph.prototype.defaultThemeName] = xhr[1].getDocumentElement();
// Main
window.editorUIInstance = new EditorUi(new Editor(false, themes));
try {
addPostMessageListener(editorUIInstance.editor);
} catch (error) {
console.log(error);
}
window.parent.postMessage({ eventName: 'ready', value: '' }, '*');
}, function() {
document.body.innerHTML = '<center style="margin-top:10%;">Error loading resource files. Please check browser console.</center>';
});
})();
function addPostMessageListener(graphEditor) {
window.addEventListener('message', function(event) {
if (!event.data || !event.data.eventName) {
return
}
switch (event.data.eventName) {
case 'setData':
var value = event.data.value;
var doc = mxUtils.parseXml(value);
var documentName = 'cherry-drawio-' + new Date().getTime();
editorUIInstance.editor.setGraphXml(null);
graphEditor.graph.importGraphModel(doc.documentElement);
graphEditor.setFilename(documentName);
window.parent.postMessage({ eventName: 'setData:success', value: '' }, '*');
break;
case 'getData':
editorUIInstance.editor.graph.stopEditing();
var xmlData = mxUtils.getXml(editorUIInstance.editor.getGraphXml());
editorUIInstance.exportImage(1, "#ffffff", true, null, true, 50, null, "png", function(base64, filename) {
window.parent.postMessage({
mceAction: 'getData:success',
eventName: 'getData:success',
value: {
xmlData: xmlData,
base64: base64,
}
}, '*');
})
break;
case 'ready?':
window.parent.postMessage({ eventName: 'ready', value: '' }, '*');
break;
default:
break;
}
});
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -0,0 +1,29 @@
// urlParams is null when used for embedding
window.urlParams = window.urlParams || {};
// Public global variables
window.DOM_PURIFY_CONFIG = window.DOM_PURIFY_CONFIG ||
{
ADD_TAGS: ['use'], FORBID_TAGS: ['form'],
ALLOWED_URI_REGEXP: /^((?!javascript:).)*$/i,
ADD_ATTR: ['target', 'content']
};
// Public global variables
window.MAX_REQUEST_SIZE = window.MAX_REQUEST_SIZE || 10485760;
window.MAX_AREA = window.MAX_AREA || 15000 * 15000;
// URLs for save and export
window.EXPORT_URL = window.EXPORT_URL || './drawio';
window.SAVE_URL = window.SAVE_URL || './drawio';
window.PROXY_URL = window.PROXY_URL || null;
window.OPEN_URL = window.OPEN_URL || './drawio';
window.RESOURCES_PATH = window.RESOURCES_PATH || './drawio/resources';
window.STENCIL_PATH = window.STENCIL_PATH || './drawio/image/stencils';
window.IMAGE_PATH = window.IMAGE_PATH || './drawio/image';
window.STYLE_PATH = window.STYLE_PATH || './drawio/src/css';
window.CSS_PATH = window.CSS_PATH || './drawio/src/css';
window.OPEN_FORM = window.OPEN_FORM || './drawio';
window.mxBasePath = window.mxBasePath || './drawio/src';
window.mxLanguage = window.mxLanguage || window.RESOURCES_PATH + '/zh';
window.mxLanguages = window.mxLanguages || ['zh'];

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -0,0 +1,215 @@
html body .geToolbarContainer .geButton, html body .geToolbarContainer .geLabel {
padding:3px 5px 5px 5px;
position: relative;
text-align: center;
vertical-align: middle;
border-radius:3px;
}
html body .geMenubarContainer .geBigButton {
margin-top: 4px;
}
html body .geBigStandardButton:active, .geSidebarContainer .geTitle:active {
background-color: #DEEBFF;
color: #0052CC;
}
body .geToolbarContainer .geButton:active, body .geToolbarContainer .geLabel:active {
background-color: #DEEBFF;
color: #0052CC;
}
body > .geToolbarContainer .geLabel, body > .geToolbarContainer .geButton {
-webkit-box-shadow: none !important;
-moz-box-shadow: none !important;
box-shadow: none !important;
border: 1px solid transparent !important;
}
body > .geToolbarContainer {
background: #f5f5f5 !important;
border-bottom: 1px solid #ccc !important;
-webkit-box-shadow: none !important;
-moz-box-shadow: none !important;
box-shadow: none !important;
}
body > .geToolbarContainer > .geToolbar {
padding-top:4px !important;
}
body > .geToolbarContainer > .geToolbar .geSeparator {
width:1px !important;
background:#cccccc !important;
margin-top:3px;
height:24px;
}
.geSidebarContainer .geToolbarContainer .geButton {
padding:0px 2px 4px 2px;
}
.geToolbarContainer .geLabel {
height:18px;
_height:31px;
}
html body .geStatus .geStatusAlert {
color:#ffffff !important;
font-size:12px;
border:none;
border-radius:6px;
text-shadow: rgb(41, 89, 137) 0px 1px 0px;
background-color:#428bca;
background-image:linear-gradient(rgb(70, 135, 206) 0px, rgb(48, 104, 162) 100%);
-webkit-box-shadow: rgba(255, 255, 255, 0.0980392) 0px 1px 0px 0px inset, rgba(0, 0, 0, 0.2) 0px 1px 1px 0px;
-moz-box-shadow: rgba(255, 255, 255, 0.0980392) 0px 1px 0px 0px inset, rgba(0, 0, 0, 0.2) 0px 1px 1px 0px;
box-shadow: rgba(255, 255, 255, 0.0980392) 0px 1px 0px 0px inset, rgba(0, 0, 0, 0.2) 0px 1px 1px 0px;
}
html body .geStatus .geStatusAlert:hover {
background-color: #2d6ca2;
background-image: linear-gradient(rgb(90, 148, 211) 0px, rgb(54, 115, 181) 100%);
}
html body .geStatus .geStatusMessage {
color:#ffffff !important;
font-size:12px;
border:none;
border-radius:6px;
text-shadow: rgb(41, 89, 137) 0px 1px 0px;
background-color:#428bca;
background-image:linear-gradient(rgb(70, 135, 206) 0px, rgb(48, 104, 162) 100%);
-webkit-box-shadow: rgba(255, 255, 255, 0.0980392) 0px 1px 0px 0px inset, rgba(0, 0, 0, 0.2) 0px 1px 1px 0px;
-moz-box-shadow: rgba(255, 255, 255, 0.0980392) 0px 1px 0px 0px inset, rgba(0, 0, 0, 0.2) 0px 1px 1px 0px;
box-shadow: rgba(255, 255, 255, 0.0980392) 0px 1px 0px 0px inset, rgba(0, 0, 0, 0.2) 0px 1px 1px 0px;
}
html body .geStatus .geStatusMessage:hover {
background-color: #2d6ca2;
background-image: linear-gradient(rgb(90, 148, 211) 0px, rgb(54, 115, 181) 100%);
}
html body div.mxWindow .geToolbarContainer {
font-size:11px !important;
color: #000000 !important;
-webkit-box-shadow: none !important;
-moz-box-shadow: none !important;
box-shadow: none !important;
border-width: 0px 0px 1px !important;
border-color: rgb(195, 195, 195) !important;
border-style: solid !important;
border-bottom:1px solid #e0e0e0;
}
html body div.mxWindow .geButton, .mxWindow .geLabel {
-webkit-box-shadow: none !important;
-moz-box-shadow: none !important;
box-shadow: none !important;
background-image: none !important;
border:1px solid transparent !important;
}
div.mxWindow .geButton {
margin:1px !important;
}
div.mxWindow .geLabel {
padding:3px 5px 3px 5px !important;
margin:2px;
}
div.mxWindow .geButton:hover, .mxWindow .geLabel:hover {
-webkit-box-shadow: none !important;
-moz-box-shadow: none !important;
box-shadow: none !important;
background: none !important;
border:1px solid gray;
}
div.mxWindow .geButton:active, .mxWindow .geLabel:active {
-webkit-box-shadow: none !important;
-moz-box-shadow: none !important;
box-shadow: none !important;
background-image: none !important;
border:1px solid black;
}
body > .geToolbarContainer .geButton {
margin:0px -1px 0px 0px !important;
height:20px;
}
html body .geSidebarTooltip, .geSidebarTooltipImage {
z-index:2;
}
html body .geSidebarContainer .geTitle {
font-size:13px;
padding:8px 0px 8px 16px;
}
html body .geMenubarContainer * {
color: #DEEBFF;
}
html body .geMenubarContainer .geStatus {
color: rgb(179, 179, 179);
}
.geMenubarContainer .geItem:hover:not(.geStatus) {
background-color: rgba(9, 30, 66, 0.48) !important;
}
html body .geToolbarContainer .geLabel {
margin:0px;
padding:6px 20px 4px 10px !important;
}
.geToolbar .geSeparator {
width:0px !important;
}
.geMenubarContainer .geItem, .geToolbar .geButton, .geToolbar .geLabel, .geSidebar, .geSidebarContainer .geTitle, .geSidebar .geItem, .mxPopupMenuItem {
-webkit-transition: none;
-moz-transition: none;
-o-transition: none;
-ms-transition: none;
transition: none;
}
html body .geMenubarContainer {
background-color: #0049B0;
color: #ffffff;
font-size: 14px;
}
html body .geMenubar > .geItem {
padding-left:14px;
padding-right:15px;
}
html body .geSidebarContainer .geToolbarContainer {
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
border:none;
}
html body .geSidebarContainer .geToolbarContainer .geButton {
margin:2px !important;
height:20px !important;
}
html body .geSidebarContainer .geToolbarContainer .geLabel {
margin:2px !important;
padding:4px !important;
}
html body .geToolbar {
margin:0px;
padding:8px 10px 0px 10px;
-webkit-box-shadow:none;
-moz-box-shadow:none;
box-shadow:none;
border:none;
}
html body .geMenubarContainer .mxDisabled {
opacity: 1;
color: rgb(179, 179, 179);
}
html .geButtonContainer {
padding-right:10px;
}
.geDialogTitle {
box-sizing:border-box;
white-space:nowrap;
background:rgb(32, 80, 129);
border-bottom:1px solid rgb(192, 192, 192);
font-size:15px;
font-weight:bold;
text-align:center;
color:white;
}
.geDialogFooter {
background:whiteSmoke;
white-space:nowrap;
text-align:right;
box-sizing:border-box;
border-top:1px solid #e5e5e5;
color:darkGray;
}
html .geNotification-bell {
opacity: 1;
}
html .geNotification-bell * {
background-color: #DEEBFF;
box-shadow: 0px 0px 10px #DEEBFF;
}

@ -0,0 +1,109 @@
<mxStylesheet>
<add as="defaultVertex">
<add as="shape" value="label"/>
<add as="perimeter" value="rectanglePerimeter"/>
<add as="fontSize" value="12"/>
<add as="fontFamily" value="Helvetica"/>
<add as="align" value="center"/>
<add as="verticalAlign" value="middle"/>
<add as="fillColor" value="default"/>
<add as="strokeColor" value="default"/>
<add as="fontColor" value="default"/>
</add>
<add as="defaultEdge">
<add as="shape" value="connector"/>
<add as="labelBackgroundColor" value="default"/>
<add as="endArrow" value="classic"/>
<add as="fontSize" value="11"/>
<add as="fontFamily" value="Helvetica"/>
<add as="align" value="center"/>
<add as="verticalAlign" value="middle"/>
<add as="rounded" value="1"/>
<add as="strokeColor" value="default"/>
<add as="fontColor" value="default"/>
</add>
<add as="text">
<add as="fillColor" value="none"/>
<add as="gradientColor" value="none"/>
<add as="strokeColor" value="none"/>
<add as="align" value="left"/>
<add as="verticalAlign" value="top"/>
</add>
<add as="edgeLabel" extend="text">
<add as="labelBackgroundColor" value="default"/>
<add as="fontSize" value="11"/>
</add>
<add as="label">
<add as="fontStyle" value="1"/>
<add as="align" value="left"/>
<add as="verticalAlign" value="middle"/>
<add as="spacing" value="2"/>
<add as="spacingLeft" value="52"/>
<add as="imageWidth" value="42"/>
<add as="imageHeight" value="42"/>
<add as="rounded" value="1"/>
</add>
<add as="icon" extend="label">
<add as="align" value="center"/>
<add as="imageAlign" value="center"/>
<add as="verticalLabelPosition" value="bottom"/>
<add as="verticalAlign" value="top"/>
<add as="spacingTop" value="4"/>
<add as="labelBackgroundColor" value="default"/>
<add as="spacing" value="0"/>
<add as="spacingLeft" value="0"/>
<add as="spacingTop" value="6"/>
<add as="fontStyle" value="0"/>
<add as="imageWidth" value="48"/>
<add as="imageHeight" value="48"/>
</add>
<add as="swimlane">
<add as="shape" value="swimlane"/>
<add as="fontSize" value="12"/>
<add as="fontStyle" value="1"/>
<add as="startSize" value="23"/>
</add>
<add as="group">
<add as="verticalAlign" value="top"/>
<add as="fillColor" value="none"/>
<add as="strokeColor" value="none"/>
<add as="gradientColor" value="none"/>
<add as="pointerEvents" value="0"/>
</add>
<add as="ellipse">
<add as="shape" value="ellipse"/>
<add as="perimeter" value="ellipsePerimeter"/>
</add>
<add as="rhombus">
<add as="shape" value="rhombus"/>
<add as="perimeter" value="rhombusPerimeter"/>
</add>
<add as="triangle">
<add as="shape" value="triangle"/>
<add as="perimeter" value="trianglePerimeter"/>
</add>
<add as="line">
<add as="shape" value="line"/>
<add as="strokeWidth" value="4"/>
<add as="labelBackgroundColor" value="default"/>
<add as="verticalAlign" value="top"/>
<add as="spacingTop" value="8"/>
</add>
<add as="image">
<add as="shape" value="image"/>
<add as="labelBackgroundColor" value="default"/>
<add as="verticalAlign" value="top"/>
<add as="verticalLabelPosition" value="bottom"/>
</add>
<add as="roundImage" extend="image">
<add as="perimeter" value="ellipsePerimeter"/>
</add>
<add as="rhombusImage" extend="image">
<add as="perimeter" value="rhombusPerimeter"/>
</add>
<add as="arrow">
<add as="shape" value="arrow"/>
<add as="edgeStyle" value="none"/>
<add as="fillColor" value="default"/>
</add>
</mxStylesheet>

@ -0,0 +1,294 @@
:root {
--dark-color: #18141D;
--header-color: #363238;
--panel-color: #2A252F;
--text-color: #888888;
--border-color: #505759;
}
.geEditor * {
border-color:#000;
}
html body .geBackground {
background:var(--dark-color);
}
html body .geStatus > *, html body .geUser {
color:var(--text-color);
}
html body .geDiagramContainer {
background-color:var(--dark-color);
}
html body div.geMenubarContainer, html body .geFormatContainer,
html body div.geMenubarContainer .geStatus:hover {
background-color:var(--panel-color);
border-color:#000000;
}
html body .geActiveItem {
background-color:#e0e0e0;
}
html body .mxCellEditor {
color: #f0f0f0;
}
html body.geEditor div.mxPopupMenu {
border:1px solid var(--border-color);
background:var(--panel-color);
box-shadow:none;
}
.geEditor .geTabItem {
background:var(--panel-color);
border-color:#000000;
}
.geTabContainer {
border-left-color:#000000;
border-right-color:#000000;
}
.geTabContainer div {
border-color:var(--dark-color);
}
html body .geShapePicker {
box-shadow:none;
}
html body .geTabContainer div.geActivePage, html body .geRuler {
background:var(--dark-color);
}
.geSearchSidebar input, .geBtnStepper, .geBtnUp,
html body a.geStatus .geStatusBox {
border-color: var(--border-color);
}
html body.geEditor div.mxPopupMenu hr {
background-color:var(--border-color);
}
html body .geDragPreview {
border: 1px dashed #cccccc;
}
html body .geMenubarContainer .geItem:active, html .geSidebarContainer button:active {
opacity: 0.7;
}
html body, html body .geFooterContainer, html body #geFooterItem1, html body textarea,
html body .mxWindowTitle, html body .geDialogTitle, html body .geDialogFooter,
html .geEditor div.mxTooltip, html .geHint
{
background: var(--panel-color);
color:#c0c0c0;
}
html > body > div > div.geToolbarContainer.geSimpleMainMenu,
html > body > div > div.geToolbarContainer.geSimpleMainMenu .geToolbarContainer {
background:var(--header-color);
}
html > body > div > div.geToolbarContainer.geSimpleMainMenu,
html body .mxWindowTitle, .geDialogTitle, .geDialogFooter {
border-color:black !important;
}
html body .geFooterContainer a, html body .geDiagramContainer a, html body .geStatus a {
color:#337ab7;
}
html body div.mxRubberband {
border:1px dashed #ffffff !important;
background:var(--border-color) !important;
}
html body .geTemplate {
color:#000000;
}
html body .geSidebar {
opacity:0.7;
}
html body.geEditor .geSidebarContainer div.geDropTarget {
color:#767676;
border-color:#767676;
}
html body.geEditor .gePrimaryBtn:not([disabled]),
html body.geEditor .geBigButton:not([disabled]) {
background:var(--header-color);
border: 1px solid var(--border-color);
color:#aaaaaa;
}
html body.geEditor .geBtn, html body.geEditor button,
html body.geEditor button:hover:not([disabled]),
html body.geEditor button:focus, html body.geEditor select,
html body.geEditor .geColorBtn {
background:none;
border: 1px solid var(--border-color);
color:#aaaaaa;
}
html body .geBtn:hover:not([disabled]) {
color: #c0c0c0;
}
html body.geEditor button.geAdaptiveAsset:hover:not([disabled]) {
background:#fff;
}
html body.geEditor button.geAdaptiveAsset:not([disabled]) {
border-color:#a2a2a2;
}
html body.geEditor button:hover:not([disabled]):not(.geAdaptiveAsset),
html body.geEditor select:hover:not([disabled]),
html body.geEditor .geColorBtn:hover:not([disabled]) {
background:var(--dark-color);
border: 1px solid var(--border-color);
}
html body.geEditor .geSidebar, html body.geEditor .geSidebarContainer .geTitle, html body.geEditor input, html body.geEditor textarea,
html body.geEditor .geBaseButton, html body.geEditor .geSidebarTooltip, html body.geEditor .geBaseButton, html body.geEditor select,
html body.geEditor .geSidebarContainer .geDropTarget, html body.geEditor .geToolbarContainer {
background:var(--panel-color);
border-color:var(--dark-color);
color:#aaaaaa;
}
html body.geEditor .geSidebar, html body.geEditor .geSidebarContainer .geTitle, html body.geEditor input, html body.geEditor textarea,
html body.geEditor .geBaseButton, html body.geEditor .geSidebarTooltip, html body.geEditor .geBaseButton, html body.geEditor select,
html body.geEditor .geSidebarContainer .geDropTarget {
box-shadow:none;
}
html body.geEditor button, html body.geEditor input,
html body.geEditor textarea, html body.geEditor select,
.geInsertTablePicker, .geInsertTablePicker * {
border-color:var(--border-color);
}
html body .geMenubarContainer .geToolbarContainer, html body div.geToolbarContainer, html body .geToolbar {
border-color:#000000;
box-shadow:none;
}
html body .geSketch .geToolbarContainer {
border-style:none;
}
html body.geEditor .geColorBtn, html body .geToolbarContainer {
box-shadow:none;
}
html body .geSidebarTooltip {
border:1px solid var(--border-color);
}
html body .geSprite, html body .geSocialFooter img, html body .mxPopupMenuItem>img, .geAdaptiveAsset {
filter:invert(100%);
}
.geAdaptiveAsset {
color: #333333;
}
.geInverseAdaptiveAsset {
filter:none !important
}
html body .geSidebarFooter {
border-color:var(--dark-color);
}
html body .geFormatSection {
border-bottom:1px solid var(--dark-color);
border-color:var(--dark-color);
}
html body .geDiagramContainer {
border-color:var(--border-color);
}
html body .geSidebarContainer a, html body .geMenubarContainer a, html body .geToolbar a {
color:#cccccc;
}
html body .geMenubarMenu {
border-color:var(--border-color) !important;
}
html body .geToolbarMenu, html body .geFooterContainer, html body .geFooterContainer td {
border-color:var(--border-color);
}
html body .geFooterContainer a {
background-color:none;
}
html body .geBigStandardButton {
border: 1px solid var(--border-color);
}
html body .geFooterContainer td:hover, html body #geFooterItem1:hover, html body .geBigStandardButton:hover {
background-color:#000000;
}
html body .geSidebarContainer, html body .geDiagramBackdrop {
background:var(--panel-color);
}
html body .geBackgroundPage {
box-shadow:none;
}
.gePropHeader, .gePropRow, .gePropRowDark, .gePropRowCell, .gePropRow>.gePropRowCell, .gePropRowAlt>.gePropRowCell, .gePropRowDark>.gePropRowCell, .gePropRowDarkAlt>.gePropRowCell {
background:var(--panel-color) !important;
border-color:var(--panel-color) !important;
color:#cccccc !important;
font-weight:normal !important;
}
html body tr.mxPopupMenuItem {
color:#cccccc;
}
html body.geEditor table.mxPopupMenu tr.mxPopupMenuItemHover {
background:var(--dark-color);
color:#cccccc;
}
html body .geSidebarContainer .geTitle:hover, html body .geSidebarContainer .geItem:hover,
html body .geMenubarContainer .geItem:hover, html body.geEditor .geBaseButton:hover {
background:var(--dark-color);
}
html body .geToolbarContainer .geSeparator {
background-color:var(--border-color);
}
html body .geVsplit, html body table.mxPopupMenu hr {
border-color:var(--border-color);
background-color:var(--dark-color);
}
html body .geHsplit {
border-color:#000;
}
html body .geHsplit:hover {
background-color:#000;
}
html body .geToolbarContainer .geButton:hover, html body .geToolbarContainer .geButton:active,
html body .geToolbarContainer .geLabel:hover, html body .geToolbarContainer .geLabel:active,
html body .geVsplit:hover, html .geSidebarContainer button:active:not([disabled]) {
background-color:var(--dark-color);
}
html body .geToolbarContainer .geButton.geAdaptiveAsset:hover {
background-color: #fff;
}
html body .geDialog, html body div.mxWindow {
background:var(--panel-color);
border-color:var(--header-color);
}
html body .geDialog {
box-shadow:none;
}
.geHint {
-webkit-box-shadow: 1px 1px 1px 0px #ccc;
-moz-box-shadow: 1px 1px 1px 0px #ccc;
box-shadow: 1px 1px 1px 0px #ccc;
}
html .geEditor ::-webkit-scrollbar-thumb {
background-color: var(--header-color);
}
html .geEditor ::-webkit-scrollbar-thumb:hover, .geVsplit:hover {
background-color:#a0a0a0;
}
html body a.geStatus .geStatusAlertOrange {
background-color:rgb(187, 103, 0);
border:rgb(240, 135, 5);
}
html body a.geStatus .geStatusAlert {
background-color:#a20025;
border:1px solid #bd002b;
color:#fff !important;
}
html body a.geStatus .geStatusAlert:hover {
background-color:#a20025;
border-color:#bd002b;
}
html body .geCommentContainer {
background-color: transparent;
border-width: 1px;
box-shadow: none;
color: inherit;
}
html .geNotification-bell * {
background-color: #aaa;
box-shadow: none;
}
html .geNotification-count {
color: #DEEBFF;
}
html .geNotifPanel .header {
height: 30px;
width: 100%;
background: #424242;
color: #ccc;
}
.geNotifPanel .notifications {
background-color: #707070;
}

@ -0,0 +1,109 @@
<mxStylesheet>
<add as="defaultVertex">
<add as="shape" value="label"/>
<add as="perimeter" value="rectanglePerimeter"/>
<add as="fontSize" value="12"/>
<add as="fontFamily" value="Verdana"/>
<add as="align" value="center"/>
<add as="verticalAlign" value="middle"/>
<add as="fillColor" value="#adc5ff"/>
<add as="gradientColor" value="#7d85df"/>
<add as="strokeColor" value="#5d65df"/>
<add as="fontColor" value="#1d258f"/>
</add>
<add as="defaultEdge">
<add as="shape" value="connector"/>
<add as="labelBackgroundColor" value="#FFFFFF"/>
<add as="endArrow" value="classic"/>
<add as="fontSize" value="11"/>
<add as="fontFamily" value="Verdana"/>
<add as="align" value="center"/>
<add as="verticalAlign" value="middle"/>
<add as="labelBackgroundColor" value="#FFFFFF"/>
<add as="rounded" value="1"/>
<add as="strokeColor" value="#5d65df"/>
<add as="fontColor" value="#1d258f"/>
</add>
<add as="text">
<add as="fillColor" value="none"/>
<add as="gradientColor" value="none"/>
<add as="strokeColor" value="none"/>
<add as="align" value="left"/>
<add as="verticalAlign" value="top"/>
</add>
<add as="label">
<add as="fontStyle" value="1"/>
<add as="align" value="left"/>
<add as="verticalAlign" value="middle"/>
<add as="spacing" value="2"/>
<add as="spacingLeft" value="50"/>
<add as="imageWidth" value="42"/>
<add as="imageHeight" value="42"/>
<add as="rounded" value="1"/>
<add as="shadow" value="1"/>
<add as="glass" value="1"/>
</add>
<add as="icon" extend="label">
<add as="align" value="center"/>
<add as="imageAlign" value="center"/>
<add as="verticalLabelPosition" value="bottom"/>
<add as="verticalAlign" value="top"/>
<add as="spacingTop" value="4"/>
<add as="labelBackgroundColor" value="#FFFFFF"/>
<add as="spacing" value="0"/>
<add as="spacingLeft" value="0"/>
<add as="spacingTop" value="6"/>
<add as="fontStyle" value="0"/>
<add as="imageWidth" value="48"/>
<add as="imageHeight" value="48"/>
</add>
<add as="swimlane">
<add as="shape" value="swimlane"/>
<add as="fontSize" value="12"/>
<add as="fontStyle" value="1"/>
<add as="startSize" value="23"/>
</add>
<add as="group">
<add as="verticalAlign" value="top"/>
<add as="fillColor" value="none"/>
<add as="strokeColor" value="none"/>
<add as="gradientColor" value="none"/>
</add>
<add as="ellipse">
<add as="shape" value="ellipse"/>
<add as="perimeter" value="ellipsePerimeter"/>
</add>
<add as="rhombus">
<add as="shape" value="rhombus"/>
<add as="perimeter" value="rhombusPerimeter"/>
</add>
<add as="triangle">
<add as="shape" value="triangle"/>
<add as="perimeter" value="trianglePerimeter"/>
</add>
<add as="line">
<add as="shape" value="line"/>
<add as="strokeWidth" value="4"/>
<add as="labelBackgroundColor" value="#FFFFFF"/>
<add as="verticalAlign" value="top"/>
<add as="spacingTop" value="8"/>
</add>
<add as="image">
<add as="shape" value="image"/>
<add as="labelBackgroundColor" value="white"/>
<add as="verticalAlign" value="top"/>
<add as="verticalLabelPosition" value="bottom"/>
</add>
<add as="roundImage" extend="image">
<add as="perimeter" value="ellipsePerimeter"/>
</add>
<add as="rhombusImage" extend="image">
<add as="perimeter" value="rhombusPerimeter"/>
</add>
<add as="arrow">
<add as="shape" value="arrow"/>
<add as="edgeStyle" value="none"/>
<add as="fillColor" value="#adc5ff"/>
<add as="gradientColor" value="#7d85df"/>
</add>
</mxStylesheet>

@ -0,0 +1,203 @@
<mxStylesheet>
<add as="defaultVertex">
<add as="shape" value="label"/>
<add as="perimeter" value="rectanglePerimeter"/>
<add as="fontSize" value="12"/>
<add as="fontFamily" value="Helvetica"/>
<add as="align" value="center"/>
<add as="verticalAlign" value="middle"/>
<add as="fillColor" value="default"/>
<add as="strokeColor" value="default"/>
<add as="fontColor" value="default"/>
</add>
<add as="defaultEdge">
<add as="shape" value="connector"/>
<add as="labelBackgroundColor" value="default"/>
<add as="endArrow" value="classic"/>
<add as="fontSize" value="11"/>
<add as="fontFamily" value="Helvetica"/>
<add as="align" value="center"/>
<add as="verticalAlign" value="middle"/>
<add as="rounded" value="1"/>
<add as="strokeColor" value="default"/>
<add as="fontColor" value="default"/>
</add>
<add as="text">
<add as="fillColor" value="none"/>
<add as="gradientColor" value="none"/>
<add as="strokeColor" value="none"/>
<add as="align" value="left"/>
<add as="verticalAlign" value="top"/>
</add>
<add as="edgeLabel" extend="text">
<add as="labelBackgroundColor" value="default"/>
<add as="fontSize" value="11"/>
</add>
<add as="label">
<add as="fontStyle" value="1"/>
<add as="align" value="left"/>
<add as="verticalAlign" value="middle"/>
<add as="spacing" value="2"/>
<add as="spacingLeft" value="52"/>
<add as="imageWidth" value="42"/>
<add as="imageHeight" value="42"/>
<add as="rounded" value="1"/>
</add>
<add as="icon" extend="label">
<add as="align" value="center"/>
<add as="imageAlign" value="center"/>
<add as="verticalLabelPosition" value="bottom"/>
<add as="verticalAlign" value="top"/>
<add as="spacingTop" value="4"/>
<add as="labelBackgroundColor" value="default"/>
<add as="spacing" value="0"/>
<add as="spacingLeft" value="0"/>
<add as="spacingTop" value="6"/>
<add as="fontStyle" value="0"/>
<add as="imageWidth" value="48"/>
<add as="imageHeight" value="48"/>
</add>
<add as="swimlane">
<add as="shape" value="swimlane"/>
<add as="fontSize" value="12"/>
<add as="fontStyle" value="1"/>
<add as="startSize" value="23"/>
</add>
<add as="group">
<add as="verticalAlign" value="top"/>
<add as="fillColor" value="none"/>
<add as="strokeColor" value="none"/>
<add as="gradientColor" value="none"/>
<add as="pointerEvents" value="0"/>
</add>
<add as="ellipse">
<add as="shape" value="ellipse"/>
<add as="perimeter" value="ellipsePerimeter"/>
</add>
<add as="rhombus">
<add as="shape" value="rhombus"/>
<add as="perimeter" value="rhombusPerimeter"/>
</add>
<add as="triangle">
<add as="shape" value="triangle"/>
<add as="perimeter" value="trianglePerimeter"/>
</add>
<add as="line">
<add as="shape" value="line"/>
<add as="strokeWidth" value="4"/>
<add as="labelBackgroundColor" value="default"/>
<add as="verticalAlign" value="top"/>
<add as="spacingTop" value="8"/>
</add>
<add as="image">
<add as="shape" value="image"/>
<add as="labelBackgroundColor" value="default"/>
<add as="verticalAlign" value="top"/>
<add as="verticalLabelPosition" value="bottom"/>
</add>
<add as="roundImage" extend="image">
<add as="perimeter" value="ellipsePerimeter"/>
</add>
<add as="rhombusImage" extend="image">
<add as="perimeter" value="rhombusPerimeter"/>
</add>
<add as="arrow">
<add as="shape" value="arrow"/>
<add as="edgeStyle" value="none"/>
<add as="fillColor" value="default"/>
</add>
<add as="fancy">
<add as="shadow" value="1"/>
<add as="glass" value="1"/>
</add>
<add as="gray" extend="fancy">
<add as="gradientColor" value="#B3B3B3"/>
<add as="fillColor" value="#F5F5F5"/>
<add as="strokeColor" value="#666666"/>
</add>
<add as="blue" extend="fancy">
<add as="gradientColor" value="#7EA6E0"/>
<add as="fillColor" value="#DAE8FC"/>
<add as="strokeColor" value="#6C8EBF"/>
</add>
<add as="green" extend="fancy">
<add as="gradientColor" value="#97D077"/>
<add as="fillColor" value="#D5E8D4"/>
<add as="strokeColor" value="#82B366"/>
</add>
<add as="turquoise" extend="fancy">
<add as="gradientColor" value="#67AB9F"/>
<add as="fillColor" value="#D5E8D4"/>
<add as="strokeColor" value="#6A9153"/>
</add>
<add as="yellow" extend="fancy">
<add as="gradientColor" value="#FFD966"/>
<add as="fillColor" value="#FFF2CC"/>
<add as="strokeColor" value="#D6B656"/>
</add>
<add as="orange" extend="fancy">
<add as="gradientColor" value="#FFA500"/>
<add as="fillColor" value="#FFCD28"/>
<add as="strokeColor" value="#D79B00"/>
</add>
<add as="red" extend="fancy">
<add as="gradientColor" value="#EA6B66"/>
<add as="fillColor" value="#F8CECC"/>
<add as="strokeColor" value="#B85450"/>
</add>
<add as="pink" extend="fancy">
<add as="gradientColor" value="#B5739D"/>
<add as="fillColor" value="#E6D0DE"/>
<add as="strokeColor" value="#996185"/>
</add>
<add as="purple" extend="fancy">
<add as="gradientColor" value="#8C6C9C"/>
<add as="fillColor" value="#E1D5E7"/>
<add as="strokeColor" value="#9673A6"/>
</add>
<add as="plain-gray">
<add as="gradientColor" value="#B3B3B3"/>
<add as="fillColor" value="#F5F5F5"/>
<add as="strokeColor" value="#666666"/>
</add>
<add as="plain-blue">
<add as="gradientColor" value="#7EA6E0"/>
<add as="fillColor" value="#DAE8FC"/>
<add as="strokeColor" value="#6C8EBF"/>
</add>
<add as="plain-green">
<add as="gradientColor" value="#97D077"/>
<add as="fillColor" value="#D5E8D4"/>
<add as="strokeColor" value="#82B366"/>
</add>
<add as="plain-turquoise">
<add as="gradientColor" value="#67AB9F"/>
<add as="fillColor" value="#D5E8D4"/>
<add as="strokeColor" value="#6A9153"/>
</add>
<add as="plain-yellow">
<add as="gradientColor" value="#FFD966"/>
<add as="fillColor" value="#FFF2CC"/>
<add as="strokeColor" value="#D6B656"/>
</add>
<add as="plain-orange">
<add as="gradientColor" value="#FFA500"/>
<add as="fillColor" value="#FFCD28"/>
<add as="strokeColor" value="#D79B00"/>
</add>
<add as="plain-red">
<add as="gradientColor" value="#EA6B66"/>
<add as="fillColor" value="#F8CECC"/>
<add as="strokeColor" value="#B85450"/>
</add>
<add as="plain-pink">
<add as="gradientColor" value="#B5739D"/>
<add as="fillColor" value="#E6D0DE"/>
<add as="strokeColor" value="#996185"/>
</add>
<add as="plain-purple">
<add as="gradientColor" value="#8C6C9C"/>
<add as="fillColor" value="#E1D5E7"/>
<add as="strokeColor" value="#9673A6"/>
</add>
</mxStylesheet>

@ -0,0 +1,78 @@
// Extends EditorUi to update I/O action states based on availability of backend
(function()
{
var editorUiInit = EditorUi.prototype.init;
EditorUi.prototype.init = function()
{
editorUiInit.apply(this, arguments);
};
// Adds required resources (disables loading of fallback properties, this can only
// be used if we know that all keys are defined in the language specific file)
mxResources.loadDefaultBundle = false;
var bundle = mxResources.getDefaultBundle(mxLanguage);
// Fixes possible asynchronous requests
mxUtils.getAll([bundle, './drawio_demo/theme/default.xml'], function(xhr)
{
// Adds bundle text to resources
mxResources.parse(xhr[0].getText());
// Configures the default graph theme
var themes = new Object();
themes[Graph.prototype.defaultThemeName] = xhr[1].getDocumentElement();
// Main
window.editorUIInstance = new EditorUi(new Editor(false, themes));
try {
addPostMessageListener(editorUIInstance.editor);
} catch (error) {
console.log(error);
}
window.parent.postMessage({eventName: 'ready', value: ''}, '*');
}, function()
{
document.body.innerHTML = '<center style="margin-top:10%;">Error loading resource files. Please check browser console.</center>';
});
})();
function addPostMessageListener(graphEditor) {
window.addEventListener('message', function(event) {
if(!event.data || !event.data.eventName) {
return
}
switch (event.data.eventName) {
case 'setData':
var value = event.data.value;
var doc = mxUtils.parseXml(value);
var documentName = 'cherry-drawio-' + new Date().getTime();
editorUIInstance.editor.setGraphXml(null);
graphEditor.graph.importGraphModel(doc.documentElement);
graphEditor.setFilename(documentName);
window.parent.postMessage({eventName: 'setData:success', value: ''}, '*');
break;
case 'getData':
editorUIInstance.editor.graph.stopEditing();
var xmlData = mxUtils.getXml(editorUIInstance.editor.getGraphXml());
editorUIInstance.exportImage(1, "#ffffff", true, null, true, 50, null, "png", function(base64, filename){
window.parent.postMessage({
mceAction: 'getData:success',
eventName: 'getData:success',
value: {
xmlData: xmlData,
base64: base64,
}
}, '*');
})
break;
case 'ready?':
window.parent.postMessage({eventName: 'ready', value: ''}, '*');
break;
default:
break;
}
});
}

@ -0,0 +1,100 @@
/*
_____ ____ ____ ____ _______
| __ \ / __ \| _ \ / __ \__ __|
| |__) | | | | |_) | | | | | |
| _ /| | | | _ <| | | | | |
| | \ \| |__| | |_) | |__| | | |
|_| \_\\____/|____/ \____/ |_|
*/
@font-face {
font-family: "graph.iconfont";
src: url('@{iconfont-path}iconfont/graph.iconfont.eot');
src: url('@{iconfont-path}iconfont/graph.iconfont.eot?#iefix') format('eot'),
url('@{iconfont-path}iconfont/graph.iconfont.woff') format('woff'),
url('@{iconfont-path}iconfont/graph.iconfont.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
.font-graph {
vertical-align: middle;
}
.font-graph:after {
display: inline-block;
font-family: "graph.iconfont";
font-style: normal;
font-weight: normal;
line-height: 1;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.font-graph-lg {
font-size: 1.3333333333333333em;
line-height: 0.75em;
vertical-align: -15%;
}
.font-graph-2x { font-size: 2em; }
.font-graph-3x { font-size: 3em; }
.font-graph-4x { font-size: 4em; }
.font-graph-5x { font-size: 5em; }
.font-graph-fw {
width: 1.2857142857142858em;
text-align: center;
}
.font-graph-geSprite-arrow:after { content: "\EA01" }
.font-graph-geSprite-bold:after { content: "\EA02" }
.font-graph-geSprite-bottom:after { content: "\EA03" }
.font-graph-geSprite-center:after { content: "\EA04" }
.font-graph-geSprite-code:after { content: "\EA05" }
.font-graph-geSprite-connection:after { content: "\EA06" }
.font-graph-geSprite-curved:after { content: "\EA07" }
.font-graph-geSprite-delete:after { content: "\EA08" }
.font-graph-geSprite-dots:after { content: "\EA09" }
.font-graph-geSprite-entity:after { content: "\EA0A" }
.font-graph-geSprite-fit:after { content: "\EA0B" }
.font-graph-geSprite-fontbackground:after { content: "\EA0C" }
.font-graph-geSprite-fontcolor:after { content: "\EA0D" }
.font-graph-geSprite-formatpanel:after { content: "\EA0E" }
.font-graph-geSprite-horizontalelbow:after { content: "\EA0F" }
.font-graph-geSprite-horizontalisometric:after { content: "\EA10" }
.font-graph-geSprite-horizontalrule:after { content: "\EA11" }
.font-graph-geSprite-indent:after { content: "\EA12" }
.font-graph-geSprite-italic:after { content: "\EA13" }
.font-graph-geSprite-justifyfull:after { content: "\EA14" }
.font-graph-geSprite-left:after { content: "\EA15" }
.font-graph-geSprite-link:after { content: "\EA16" }
.font-graph-geSprite-linkedge:after { content: "\EA17" }
.font-graph-geSprite-middle:after { content: "\EA18" }
.font-graph-geSprite-orderedlist:after { content: "\EA19" }
.font-graph-geSprite-orthogonal:after { content: "\EA1A" }
.font-graph-geSprite-outdent:after { content: "\EA1B" }
.font-graph-geSprite-plus:after { content: "\EA1C" }
.font-graph-geSprite-redo:after { content: "\EA1D" }
.font-graph-geSprite-removeformat:after { content: "\EA1E" }
.font-graph-geSprite-right:after { content: "\EA1F" }
.font-graph-geSprite-shadow:after { content: "\EA20" }
.font-graph-geSprite-simplearrow:after { content: "\EA21" }
.font-graph-geSprite-straight:after { content: "\EA22" }
.font-graph-geSprite-strokecolor:after { content: "\EA23" }
.font-graph-geSprite-subscript:after { content: "\EA24" }
.font-graph-geSprite-superscript:after { content: "\EA25" }
.font-graph-geSprite-table:after { content: "\EA26" }
.font-graph-geSprite-toback:after { content: "\EA27" }
.font-graph-geSprite-tofront:after { content: "\EA28" }
.font-graph-geSprite-top:after { content: "\EA29" }
.font-graph-geSprite-underline:after { content: "\EA2A" }
.font-graph-geSprite-undo:after { content: "\EA2B" }
.font-graph-geSprite-unorderedlist:after { content: "\EA2C" }
.font-graph-geSprite-vertical:after { content: "\EA2D" }
.font-graph-geSprite-verticalelbow:after { content: "\EA2E" }
.font-graph-geSprite-verticalisometric:after { content: "\EA2F" }
.font-graph-geSprite-zoomin:after { content: "\EA30" }
.font-graph-geSprite-zoomout:after { content: "\EA31" }
.font-graph-geSprite-zz-填充色_icon:after { content: "\EA32" }
.font-graph-geSprite-zz-复选框:after { content: "\EA33" }
.font-graph-geSprite-zz-查看画图2:after { content: "\EA34" }
.font-graph-geSprite-zz-线条颜色_icon:after { content: "\EA35" }

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<path fill="#080103" d="M925.473,452.482L722.136,280.767c-0.44-0.372-0.892-0.731-1.353-1.078
c-12.267-9.202-28.431-10.696-42.19-3.894c-13.849,6.851-22.451,20.694-22.451,36.125v94.268H120.288
c-12.15,0-23.101,7.329-27.734,18.562c-1.803,4.373-2.511,9.001-2.194,13.528c0.227,9.12,0.23,81.85,0.005,91.374
c-0.62,8.568,2.464,17.175,8.774,23.446c5.761,5.727,13.51,8.836,21.425,8.723h535.578v94.269c0,15.432,8.603,29.273,22.438,36.118
c5.547,2.747,11.751,4.199,17.943,4.199c8.702,0,17.323-2.875,24.274-8.097c0.456-0.343,0.903-0.698,1.339-1.067l203.339-171.716
c9.543-7.604,15.207-19.301,15.207-31.522C940.682,471.782,935.017,460.085,925.473,452.482z M716.142,613.774v-81.952
c0-16.568-13.432-30-30-30H150.527c0.003-5.199,0.002-11.204,0.002-18.15c0-6.116-0.006-12.027-0.016-17.482l535.628,0
c16.568,0,30-13.432,30-30v-81.951l153.665,129.768L716.142,613.774z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<path d="M674.738,484.009c17.27-9.87,33.35-22.04,47.83-36.36c43.54-43.02,67.52-100.24,67.52-161.13
c0-60.89-23.98-118.12-67.52-161.14c-43.44-42.93-101.17-66.57-162.56-66.57h-289.12c-16.57,0-30,13.43-30,30v790.39
c0,16.57,13.43,30,30,30h289.12c61.39,0,119.12-23.64,162.56-66.56c43.54-43.03,67.52-100.25,67.52-161.14
s-23.98-118.12-67.52-161.14C708.088,506.039,692.008,493.869,674.738,484.009z M300.888,118.809h259.12
c93.78,0,170.08,75.23,170.08,167.71c0,89.39-71.31,162.68-160.78,167.45c-3.09-0.12-6.19-0.18-9.3-0.18
c-1.19,0-2.37,0.08-3.53,0.22h-255.59V118.809z M560.008,849.199h-259.12v-335.19h255.58c1.17,0.13,2.35,0.21,3.54,0.21
c3.11,0,6.21-0.06,9.3-0.18c89.47,4.78,160.78,78.06,160.78,167.46C730.088,773.969,653.788,849.199,560.008,849.199z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<g>
<path d="M910.557,909.202H120.413c-16.568,0-30-13.432-30-30s13.432-30,30-30h790.144c16.568,0,30,13.432,30,30
S927.125,909.202,910.557,909.202z"/>
<path d="M535.574,760.672c-0.001,0.001-0.002,0.002-0.003,0.003c-0.001,0.001-0.003,0.003-0.004,0.004
c-0.481,0.481-0.979,0.935-1.484,1.377c-0.119,0.104-0.238,0.206-0.358,0.307c-1.057,0.896-2.16,1.707-3.303,2.433
c-0.067,0.043-0.135,0.085-0.203,0.127c-1.203,0.751-2.447,1.409-3.723,1.974c-0.038,0.017-0.075,0.033-0.113,0.049
c-1.292,0.565-2.614,1.035-3.959,1.409c-0.071,0.02-0.143,0.038-0.214,0.058c-0.655,0.177-1.314,0.337-1.978,0.469
c-0.008,0.002-0.016,0.004-0.023,0.005c-0.651,0.129-1.306,0.232-1.962,0.317c-0.141,0.018-0.282,0.034-0.424,0.051
c-0.584,0.068-1.169,0.121-1.755,0.154c-0.076,0.004-0.152,0.013-0.229,0.016c-0.628,0.031-1.256,0.036-1.884,0.028
c-0.179-0.002-0.358-0.007-0.537-0.013c-0.597-0.019-1.193-0.05-1.788-0.104c-0.048-0.004-0.097-0.006-0.145-0.01
c-0.65-0.062-1.298-0.153-1.944-0.258c-0.139-0.023-0.277-0.046-0.416-0.07c-1.368-0.241-2.721-0.578-4.05-1.009
c-0.044-0.014-0.087-0.028-0.131-0.042c-1.403-0.462-2.778-1.031-4.114-1.706c-0.004-0.002-0.007-0.003-0.011-0.005
c-1.264-0.64-2.492-1.376-3.674-2.206c-0.075-0.053-0.151-0.104-0.226-0.157c-0.546-0.391-1.083-0.799-1.607-1.231
c-0.079-0.065-0.154-0.134-0.233-0.2c-0.417-0.35-0.825-0.715-1.227-1.091c-0.142-0.133-0.284-0.267-0.423-0.403
c-0.095-0.093-0.194-0.18-0.289-0.275L268.456,535.919c-11.714-11.718-11.711-30.712,0.006-42.426
c5.858-5.856,13.533-8.784,21.21-8.784c7.679,0,15.359,2.931,21.216,8.79L484.357,667.02l-0.001-578.211c0-16.568,13.432-30,30-30
s30,13.432,30,30l0.001,578.21l175.724-175.782c11.714-11.717,30.709-11.722,42.427-0.007
c11.718,11.714,11.721,30.709,0.007,42.427L535.574,760.672z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<g>
<path d="M284.288,454.006c-16.568,0-30,13.432-30,30s13.432,30,30,30h462.394c16.568,0,30-13.431,30-30s-13.432-30-30-30H284.288z"
/>
<path d="M120.288,219.374h790.394c16.568,0,30-13.432,30-30s-13.432-30-30-30H120.288c-16.568,0-30,13.432-30,30
S103.72,219.374,120.288,219.374z"/>
<path d="M910.682,748.637H120.288c-16.568,0-30,13.432-30,30s13.432,30,30,30h790.394c16.568,0,30-13.432,30-30
S927.25,748.637,910.682,748.637z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 824 B

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<g>
<path d="M346.012,281.124c-11.203-12.208-30.181-13.023-42.388-1.821l-203.62,186.85c-6.281,5.764-9.813,13.927-9.714,22.451
s3.819,16.604,10.231,22.22l203.62,178.347c5.693,4.986,12.739,7.433,19.754,7.433c8.346,0,16.649-3.462,22.58-10.233
c10.917-12.464,9.663-31.417-2.801-42.334L165.226,487.737l178.965-164.226C356.399,312.309,357.214,293.332,346.012,281.124z"/>
<path d="M930.449,457.187L726.829,278.84c-12.463-10.915-31.417-9.663-42.334,2.801c-10.917,12.464-9.663,31.417,2.801,42.334
l178.448,156.3L686.779,644.5c-12.208,11.202-13.023,30.18-1.82,42.387c5.916,6.447,14,9.717,22.111,9.717
c7.247,0,14.516-2.61,20.275-7.896l203.62-186.849c6.281-5.764,9.813-13.927,9.715-22.451S936.861,462.804,930.449,457.187z"/>
<path d="M580.414,218.643c-16.093-3.939-32.333,5.916-36.271,22.01L428.545,713.098c-3.938,16.094,5.917,32.332,22.01,36.271
c2.396,0.586,4.793,0.866,7.154,0.866c13.5,0,25.765-9.179,29.117-22.877l115.598-472.444
C606.362,238.82,596.507,222.581,580.414,218.643z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<path fill="#080103" d="M937.393,475.397L725.625,315.453c-3.267-2.467-7.646-2.872-11.311-1.049
c-3.664,1.824-5.98,5.565-5.98,9.658v129.943H119.29c-16.568,0-30,13.431-30,30s13.432,30,30,30h589.044v129.944
c0,4.093,2.316,7.833,5.98,9.657c1.522,0.759,3.169,1.132,4.808,1.132c2.305,0,4.595-0.738,6.503-2.18l211.768-159.944
c2.7-2.039,4.287-5.226,4.287-8.609S940.093,477.435,937.393,475.397z"/>
</svg>

After

Width:  |  Height:  |  Size: 777 B

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<path fill="#080103" d="M910.682,58.809H684.91c-16.568,0-30,13.432-30,30v225.808c0,16.568,13.432,30,30,30h82.694
c-1.744,24.448-8.296,59.855-30.194,83.764c-16.582,18.104-39.718,26.904-70.731,26.904c-2.474,0-252.412,0.389-266.542,1.475
c-66.996,5.147-115.616,23.797-148.637,57.015c-27.231,27.393-42.85,63.446-47.402,109.622h-83.809c-16.568,0-30,13.432-30,30
v225.807c0,16.568,13.432,30,30,30H346.06c16.568,0,30-13.432,30-30V653.396c0-16.568-13.432-30-30-30h-81.583
c8.882-68.411,51.361-99.952,140.115-106.803c14.44-0.779,232.373-1.309,262.087-1.309c48.264,0,87.037-15.702,115.243-46.67
c34.711-38.111,43.813-90.387,45.782-123.998h82.979c16.568,0,30-13.432,30-30V88.809C940.682,72.24,927.25,58.809,910.682,58.809z
M316.06,849.202H150.288V683.396H316.06V849.202z M880.682,284.616h-78.289c-2.432-0.388-4.95-0.481-7.513-0.243
c-0.636,0.06-1.263,0.145-1.885,0.243H714.91V118.809h165.772V284.616z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<g>
<path d="M905.725,161.016H651.477v-57.774c0-24.5-19.941-44.433-44.453-44.433H423.948c-24.512,0-44.454,19.933-44.454,44.433
v57.774h-254.25c-16.568,0-30,13.432-30,30s13.432,30,30,30h71.764v644.366c0,24.72,19.087,44.831,42.549,44.831h551.856
c23.462,0,42.55-20.111,42.55-44.831V221.016h71.762c16.568,0,30-13.432,30-30S922.293,161.016,905.725,161.016z M439.494,118.809
h151.983v42.207H439.494V118.809z M775.141,851.391H255.83V221.016h168.118h183.076h168.117V851.391z"/>
<path d="M415.863,294.732c-16.568,0-30,13.432-30,30v421.89c0,16.568,13.432,30,30,30s30-13.432,30-30v-421.89
C445.863,308.163,432.432,294.732,415.863,294.732z"/>
<path d="M585.107,324.732v421.89c0,16.568,13.432,30,30,30s30-13.432,30-30v-421.89c0-16.568-13.432-30-30-30
S585.107,308.163,585.107,324.732z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<g>
<path d="M515.485,909.203c-46.964,0-85.038-38.074-85.038-85.04c0-46.964,38.074-85.039,85.038-85.039
c46.967,0,85.039,38.074,85.039,85.039C600.523,871.128,562.452,909.203,515.485,909.203z"/>
<path d="M515.485,569.045c-46.965,0-85.039-38.072-85.039-85.041c0-46.965,38.075-85.039,85.039-85.039
c46.968,0,85.039,38.075,85.039,85.039C600.524,530.973,562.453,569.045,515.485,569.045z"/>
<path d="M515.484,228.882c-46.966,0-85.039-38.068-85.039-85.036c0-46.969,38.073-85.037,85.039-85.037
c46.966,0,85.04,38.069,85.04,85.037C600.524,190.815,562.45,228.882,515.484,228.882z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 971 B

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<path fill="#080103" d="M910.682,58.809H684.91c-16.568,0-30,13.432-30,30v83.652c-46.112,4.569-82.121,20.184-109.486,47.388
c-33.218,33.022-51.868,81.642-57.016,148.638c-1.085,14.126-1.474,264.068-1.474,266.542c0,31.014-8.801,54.149-26.904,70.731
c-23.974,21.958-59.516,28.487-83.97,30.21v-82.574c0-16.568-13.432-30-30-30H120.288c-16.568,0-30,13.432-30,30v225.807
c0,16.568,13.432,30,30,30H346.06c16.568,0,30-13.432,30-30v-83.139c33.604-1.943,86.013-11.007,124.205-45.791
c30.968-28.206,46.67-66.979,46.67-115.243c0-29.715,0.529-247.649,1.309-262.084c6.842-88.709,38.345-131.183,106.667-140.101
v81.773c0,16.568,13.432,30,30,30h225.772c16.568,0,30-13.432,30-30V88.809C940.682,72.24,927.25,58.809,910.682,58.809z
M150.288,849.202V683.396H316.06v79.91c-0.168,1.838-0.159,3.65,0,5.425v80.472H150.288z M880.682,284.616H714.91v-82.623
c0.01-0.321,0.024-0.641,0.024-0.965s-0.014-0.644-0.024-0.965v-81.255h165.772V284.616z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<g>
<path d="M910.682,232.495c16.568,0,30-13.432,30-30V88.809c0-16.568-13.432-30-30-30H800.603c-16.568,0-30,13.432-30,30v28.733
H260.367V88.809c0-16.568-13.432-30-30-30H120.288c-16.568,0-30,13.432-30,30v113.687c0,16.568,13.432,30,30,30h29.147v503.021
h-29.147c-16.568,0-30,13.432-30,30v113.687c0,16.568,13.432,30,30,30h110.079c16.568,0,30-13.432,30-30v-27.675h510.236v27.675
c0,16.568,13.432,30,30,30h110.079c16.568,0,30-13.432,30-30V765.516c0-16.568-13.432-30-30-30h-27.261V232.495H910.682z
M830.603,118.809h50.079v53.687h-50.079V118.809z M150.288,118.809h50.079v53.687h-50.079V118.809z M200.367,849.202h-50.079
v-53.687h50.079V849.202z M880.682,849.202h-50.079v-53.687h50.079V849.202z M827.935,735.516h-27.332c-16.568,0-30,13.432-30,30
v30.525H260.367v-30.525c0-16.568-13.432-30-30-30h-25.446V232.495h25.446c16.568,0,30-13.432,30-30v-29.468h510.236v29.468
c0,16.568,13.432,30,30,30h27.332V735.516z"/>
<rect x="276.678" y="243.284" width="216" height="216"/>
<path d="M785.63,368.567c0.337-0.433,0.656-0.876,0.959-1.328c0.077-0.116,0.163-0.227,0.238-0.344
c0.342-0.533,0.655-1.082,0.949-1.638c0.121-0.228,0.229-0.46,0.341-0.691c0.177-0.364,0.344-0.731,0.5-1.103
c0.104-0.249,0.208-0.497,0.303-0.748c0.164-0.434,0.311-0.874,0.448-1.317c0.053-0.173,0.118-0.344,0.167-0.518
c0.17-0.599,0.307-1.206,0.427-1.817c0.041-0.213,0.073-0.427,0.108-0.641c0.074-0.449,0.136-0.9,0.183-1.353
c0.022-0.21,0.044-0.42,0.059-0.631c0.041-0.542,0.062-1.085,0.063-1.63c0-0.106,0.008-0.211,0.007-0.317
c-0.007-0.652-0.046-1.305-0.111-1.958c-0.017-0.169-0.044-0.337-0.064-0.506c-0.058-0.477-0.13-0.952-0.219-1.426
c-0.043-0.229-0.089-0.457-0.139-0.686c-0.093-0.422-0.201-0.841-0.319-1.26c-0.065-0.231-0.123-0.462-0.195-0.691
c-0.184-0.582-0.389-1.161-0.623-1.733c-0.001-0.002-0.002-0.005-0.003-0.007c-0.094-0.229-0.206-0.451-0.307-0.677
c-0.17-0.378-0.343-0.753-0.531-1.119c-0.128-0.249-0.266-0.493-0.404-0.738c-0.205-0.363-0.42-0.718-0.644-1.067
c-0.132-0.206-0.26-0.412-0.399-0.614c-0.372-0.541-0.761-1.067-1.176-1.57c-0.058-0.071-0.124-0.137-0.183-0.207
c-0.391-0.463-0.802-0.906-1.227-1.334c-0.064-0.064-0.117-0.134-0.182-0.198l-88.614-87.068
c-8.863-8.708-23.109-8.583-31.818,0.28c-8.71,8.864-8.584,23.109,0.279,31.818l49.38,48.519H556.486
c-12.427,0-22.5,10.074-22.5,22.5s10.073,22.5,22.5,22.5h156.397l-50.271,49.393c-8.864,8.709-8.99,22.955-0.281,31.818
c4.405,4.483,10.226,6.731,16.051,6.731c5.691,0,11.388-2.146,15.769-6.451l89.507-87.942c0.059-0.058,0.11-0.12,0.168-0.178
c0.036-0.036,0.076-0.066,0.111-0.102c0.083-0.085,0.153-0.178,0.235-0.264c0.37-0.388,0.724-0.786,1.061-1.195
C785.367,368.895,785.501,368.733,785.63,368.567z"/>
<path d="M456.071,641.91l-49.393,50.271V535.784c0-12.427-10.074-22.5-22.5-22.5s-22.5,10.073-22.5,22.5v156.398l-48.519-49.38
c-8.709-8.863-22.955-8.989-31.818-0.279c-8.864,8.709-8.989,22.954-0.28,31.818l87.068,88.614c0.063,0.064,0.133,0.117,0.196,0.18
c0.443,0.441,0.902,0.867,1.383,1.271c0.058,0.049,0.113,0.103,0.172,0.152c0.508,0.418,1.039,0.809,1.585,1.183
c0.204,0.14,0.411,0.269,0.619,0.402c0.355,0.227,0.717,0.443,1.086,0.651c0.241,0.135,0.481,0.272,0.726,0.398
c0.403,0.207,0.816,0.396,1.234,0.58c1.531,0.672,3.116,1.184,4.735,1.499c0.535,0.105,1.074,0.17,1.612,0.235
c0.175,0.021,0.349,0.059,0.525,0.076c0.724,0.07,1.448,0.106,2.171,0.106c0.108,0,0.215-0.014,0.322-0.016
c0.62-0.009,1.239-0.032,1.857-0.091c0.19-0.019,0.378-0.058,0.567-0.081c0.537-0.066,1.074-0.134,1.606-0.239
c0.175-0.034,0.345-0.087,0.519-0.125c0.542-0.12,1.082-0.245,1.616-0.405c0.165-0.049,0.324-0.115,0.488-0.169
c0.532-0.173,1.062-0.353,1.583-0.567c0.178-0.073,0.349-0.163,0.525-0.241c0.492-0.217,0.982-0.439,1.461-0.693
c0.215-0.114,0.421-0.248,0.633-0.369c0.423-0.242,0.846-0.484,1.255-0.756c0.263-0.174,0.512-0.371,0.768-0.557
c0.342-0.249,0.687-0.491,1.018-0.761c0.29-0.237,0.564-0.498,0.844-0.75c0.236-0.213,0.482-0.408,0.711-0.632
c0.046-0.045,0.084-0.095,0.129-0.14c0.049-0.049,0.103-0.09,0.151-0.139l87.942-89.506c8.709-8.864,8.583-23.11-0.28-31.819
C479.027,632.924,464.781,633.047,456.071,641.91z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.4 KiB

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<g>
<polygon fill="#080103" points="435.651,523.311 601.711,523.311 521.674,312.434 "/>
<path fill="#080103" d="M909.485,60.006h-788c-16.568,0-30,13.432-30,30v788c0,16.568,13.432,30,30,30h788
c16.568,0,30-13.432,30-30v-788C939.485,73.437,926.053,60.006,909.485,60.006z M725.727,765.518
c-3.504,1.33-7.103,1.96-10.64,1.96c-12.103,0.001-23.504-7.376-28.054-19.362l-62.55-164.805H411.175l-67.509,165.49
c-6.258,15.342-23.767,22.706-39.109,16.446c-15.341-6.258-22.704-23.768-16.446-39.108l75.082-184.055
c0.08-0.197,0.157-0.395,0.241-0.59l131.47-322.284c4.609-11.299,15.597-18.668,27.776-18.668c0.123,0,0.246,0,0.371,0.002
c12.325,0.151,23.305,7.828,27.679,19.352L673.21,542.603c0.068,0.178,0.138,0.354,0.203,0.534l69.717,183.688
C749.008,742.315,741.217,759.639,725.727,765.518z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<g>
<path d="M274.258,683.452c15.305,6.348,32.856-0.922,39.2-16.229l77.68-187.443h248.15l72.007,186.75
c4.593,11.911,15.953,19.216,27.998,19.215c3.587,0,7.238-0.648,10.786-2.017c15.459-5.961,23.159-23.325,17.198-38.784
l-79.198-205.402c-0.061-0.169-0.129-0.334-0.193-0.501L548.682,78.016c-4.413-11.446-15.352-19.052-27.618-19.205
c-0.126-0.002-0.25-0.002-0.375-0.002c-12.118,0-23.064,7.298-27.712,18.515L343.55,437.89c-0.088,0.203-0.171,0.409-0.255,0.615
l-85.267,205.749C251.686,659.56,258.952,677.11,274.258,683.452z M519.687,169.593l96.467,250.188h-200.15L519.687,169.593z"/>
<rect x="101.154" y="789.203" width="828.662" height="120"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<path fill="#080103" d="M909.589,60.006h-788c-16.568,0-30,13.432-30,30v186.229c-0.133,1.147-0.209,2.311-0.209,3.493
s0.076,2.346,0.209,3.493v594.786c0,16.568,13.432,30,30,30h788c16.568,0,30-13.432,30-30v-788
C939.589,73.437,926.158,60.006,909.589,60.006z M879.589,120.006v129.722h-728V120.006H879.589z M151.589,309.727h465.807v538.279
H151.589V309.727z"/>
</svg>

After

Width:  |  Height:  |  Size: 743 B

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<g>
<path fill="#080103" d="M237.483,483.946c0.001,0.549,0.023,1.096,0.064,1.641c0.016,0.209,0.037,0.417,0.059,0.626
c0.047,0.455,0.109,0.906,0.184,1.357c0.035,0.214,0.066,0.427,0.108,0.64c0.119,0.61,0.257,1.217,0.426,1.816
c0.05,0.177,0.116,0.351,0.17,0.527c0.136,0.439,0.281,0.875,0.444,1.306c0.096,0.255,0.201,0.506,0.307,0.758
c0.154,0.367,0.319,0.729,0.493,1.088c0.114,0.236,0.225,0.473,0.348,0.705c0.292,0.553,0.603,1.098,0.943,1.628
c0.081,0.126,0.174,0.247,0.258,0.372c0.296,0.441,0.607,0.874,0.935,1.296c0.134,0.172,0.274,0.341,0.414,0.511
c0.33,0.4,0.676,0.788,1.037,1.167c0.087,0.092,0.161,0.191,0.25,0.281c0.038,0.039,0.08,0.071,0.119,0.109
c0.056,0.056,0.105,0.116,0.162,0.171l73.148,71.87c4.381,4.305,10.076,6.45,15.768,6.45c5.824,0,11.646-2.248,16.05-6.73
c8.709-8.864,8.583-23.11-0.28-31.819l-33.913-33.32h117.76c12.426,0,22.5-10.073,22.5-22.5s-10.074-22.5-22.5-22.5H314.976
l33.185-32.605c8.864-8.709,8.989-22.955,0.28-31.818c-8.708-8.864-22.955-8.99-31.818-0.28l-72.419,71.155
c-0.064,0.063-0.117,0.132-0.18,0.195c-0.429,0.431-0.842,0.877-1.236,1.343c-0.057,0.067-0.119,0.131-0.175,0.198
c-0.416,0.504-0.806,1.031-1.178,1.574c-0.138,0.2-0.264,0.405-0.395,0.608c-0.225,0.352-0.442,0.71-0.648,1.076
c-0.137,0.243-0.273,0.485-0.401,0.732c-0.191,0.37-0.367,0.75-0.538,1.133c-0.099,0.221-0.209,0.438-0.3,0.662
c-0.001,0.003-0.003,0.007-0.005,0.01c-0.235,0.573-0.439,1.153-0.624,1.737c-0.071,0.225-0.128,0.452-0.192,0.679
c-0.119,0.423-0.229,0.847-0.323,1.273c-0.049,0.225-0.095,0.45-0.137,0.676c-0.09,0.479-0.162,0.958-0.221,1.439
c-0.02,0.165-0.047,0.33-0.063,0.495c-0.065,0.654-0.104,1.309-0.111,1.963C237.476,483.742,237.483,483.843,237.483,483.946z"/>
<path fill="#080103" d="M788.252,497.705c0.327-0.42,0.636-0.85,0.93-1.289c0.086-0.128,0.181-0.251,0.264-0.38
c0.339-0.529,0.649-1.072,0.94-1.624c0.125-0.236,0.237-0.476,0.353-0.715c0.172-0.355,0.335-0.713,0.488-1.076
c0.107-0.255,0.214-0.51,0.311-0.768c0.16-0.424,0.303-0.854,0.437-1.286c0.058-0.188,0.127-0.373,0.18-0.562
c0.167-0.591,0.303-1.189,0.421-1.792c0.042-0.217,0.074-0.435,0.11-0.654c0.074-0.445,0.135-0.891,0.181-1.34
c0.022-0.213,0.044-0.425,0.06-0.639c0.041-0.538,0.061-1.078,0.063-1.62c0-0.109,0.008-0.217,0.007-0.326
c-0.007-0.652-0.046-1.304-0.111-1.956c-0.017-0.17-0.044-0.339-0.065-0.508c-0.058-0.476-0.129-0.951-0.218-1.425
c-0.043-0.229-0.089-0.457-0.139-0.686c-0.093-0.422-0.201-0.841-0.319-1.26c-0.065-0.231-0.123-0.462-0.195-0.691
c-0.184-0.582-0.389-1.161-0.623-1.733c-0.001-0.002-0.002-0.005-0.003-0.007c-0.094-0.229-0.206-0.451-0.307-0.677
c-0.17-0.378-0.343-0.753-0.531-1.119c-0.128-0.249-0.266-0.493-0.404-0.738c-0.205-0.363-0.42-0.718-0.644-1.067
c-0.132-0.206-0.26-0.412-0.399-0.614c-0.372-0.541-0.761-1.067-1.176-1.57c-0.058-0.071-0.124-0.137-0.183-0.207
c-0.391-0.463-0.802-0.906-1.227-1.334c-0.064-0.064-0.117-0.134-0.182-0.198l-72.419-71.155
c-8.864-8.708-23.107-8.583-31.819,0.28c-8.709,8.864-8.583,23.109,0.28,31.818l33.185,32.605H597.737
c-12.427,0-22.5,10.074-22.5,22.5s10.073,22.5,22.5,22.5h117.761l-33.913,33.32c-8.863,8.709-8.989,22.955-0.28,31.819
c4.405,4.482,10.226,6.73,16.051,6.73c5.691,0,11.388-2.146,15.769-6.45l73.147-71.87c0.056-0.055,0.106-0.115,0.162-0.171
c0.038-0.038,0.081-0.07,0.119-0.109c0.089-0.091,0.163-0.19,0.25-0.282c0.36-0.379,0.706-0.767,1.035-1.166
C787.977,498.048,788.117,497.878,788.252,497.705z"/>
<path fill="#080103" d="M910.682,58.809H684.91c-16.568,0-30,13.432-30,30v82.638H515.515c-7.956,0-15.587,3.161-21.213,8.787
c-5.626,5.626-8.787,13.257-8.787,21.213l0.001,535.118H376.06v-83.169c0-16.568-13.432-30-30-30H120.288
c-16.568,0-30,13.432-30,30v225.807c0,16.568,13.432,30,30,30H346.06c16.568,0,30-13.432,30-30v-82.638h139.457
c7.957,0,15.587-3.161,21.213-8.787s8.787-13.257,8.787-21.213l-0.001-535.118H654.91v83.169c0,16.568,13.432,30,30,30h225.772
c16.568,0,30-13.432,30-30V88.809C940.682,72.24,927.25,58.809,910.682,58.809z M150.288,849.202V683.396H316.06v79.653
c-0.135,1.154-0.212,2.326-0.212,3.516s0.077,2.362,0.212,3.516v79.122H150.288z M880.682,284.616H714.91V118.809h165.772V284.616z
"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.4 KiB

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<path fill="#080103" d="M910.682,58.809H684.91c-16.568,0-30,13.432-30,30v204.782l-241.001,92.693
c-9.384,3.61-16.337,11.681-18.517,21.496c-2.18,9.816,0.703,20.071,7.677,27.313l101.639,105.548l-166.304,82.754H120.288
c-16.568,0-30,13.432-30,30v225.807c0,16.568,13.432,30,30,30H346.06c16.568,0,30-13.432,30-30V671.675l191.984-95.532
c8.553-4.256,14.567-12.332,16.196-21.745c1.628-9.414-1.325-19.041-7.952-25.923l-98.631-102.424l211.729-81.434h221.296
c16.568,0,30-13.432,30-30V88.809C940.682,72.24,927.25,58.809,910.682,58.809z M316.06,849.202H150.288V683.396H316.06V849.202z
M880.682,284.616H714.91V118.809h165.772V284.616z"/>
</svg>

After

Width:  |  Height:  |  Size: 1016 B

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<g>
<path d="M910.682,514.005H120.288c-16.568,0-30-13.431-30-29.999s13.432-30,30-30h790.394c16.568,0,30,13.432,30,30
S927.25,514.005,910.682,514.005z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 545 B

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<g>
<path d="M910.682,274.414H436.446c-16.568,0-30,13.432-30,30s13.432,30,30,30h474.236c16.568,0,30-13.432,30-30
S927.25,274.414,910.682,274.414z"/>
<path d="M910.682,454.006H436.446c-16.568,0-30,13.432-30,30s13.432,30,30,30h474.236c16.568,0,30-13.432,30-30
S927.25,454.006,910.682,454.006z"/>
<path d="M120.288,154.823h790.394c16.568,0,30-13.432,30-30s-13.432-30-30-30H120.288c-16.568,0-30,13.432-30,30
S103.72,154.823,120.288,154.823z"/>
<path d="M910.682,813.189H120.288c-16.568,0-30,13.432-30,30s13.432,30,30,30h790.394c16.568,0,30-13.432,30-30
S927.25,813.189,910.682,813.189z"/>
<path d="M910.682,633.597H436.446c-16.568,0-30,13.432-30,30s13.432,30,30,30h474.236c16.568,0,30-13.432,30-30
S927.25,633.597,910.682,633.597z"/>
<path d="M95.983,640.139c1.15,0.479,2.359,0.712,3.558,0.712c2.395,0,4.75-0.93,6.518-2.683l148.856-147.59
c1.753-1.738,2.739-4.104,2.739-6.572s-0.986-4.834-2.739-6.572l-148.856-147.59c-2.653-2.631-6.626-3.407-10.076-1.971
c-3.448,1.438-5.695,4.807-5.695,8.543v295.18C90.288,635.332,92.535,638.701,95.983,640.139z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<path d="M750.754,58.811H462.963c-16.568,0-30,13.432-30,30s13.432,30,30,30h73.28L369.235,849.2h-89.02c-16.568,0-30,13.432-30,30
s13.432,30,30,30h287.792c16.568,0,30-13.432,30-30s-13.432-30-30-30h-74.412l167.008-730.39h90.151c16.568,0,30-13.432,30-30
S767.323,58.811,750.754,58.811z"/>
</svg>

After

Width:  |  Height:  |  Size: 671 B

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<g>
<path d="M910.682,454.006H120.288c-16.568,0-30,13.432-30,30s13.432,30,30,30h790.394c16.568,0,30-13.431,30-30
S927.25,454.006,910.682,454.006z"/>
<path d="M120.288,219.374h790.394c16.568,0,30-13.432,30-30s-13.432-30-30-30H120.288c-16.568,0-30,13.432-30,30
S103.72,219.374,120.288,219.374z"/>
<path d="M910.682,748.637H120.288c-16.568,0-30,13.432-30,30s13.432,30,30,30h790.394c16.568,0,30-13.432,30-30
S927.25,748.637,910.682,748.637z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 838 B

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<g>
<path d="M120.288,514.005h536.394c16.568,0,30-13.431,30-30s-13.432-30-30-30H120.288c-16.568,0-30,13.432-30,30
S103.72,514.005,120.288,514.005z"/>
<path d="M120.288,219.374h336.394c16.568,0,30-13.432,30-30s-13.432-30-30-30H120.288c-16.568,0-30,13.432-30,30
S103.72,219.374,120.288,219.374z"/>
<path d="M910.682,748.637H120.288c-16.568,0-30,13.432-30,30s13.432,30,30,30h790.394c16.568,0,30-13.432,30-30
S927.25,748.637,910.682,748.637z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 839 B

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<g>
<path d="M304.714,637.566c-85.151,0-154.426-68.331-154.426-152.322c0-83.992,69.275-152.324,154.426-152.324h114.089
c85.149,0,154.424,68.332,154.424,152.324c0,16.568,13.432,30,30,30s30-13.432,30-30c0-56.778-22.348-110.141-62.925-150.256
c-40.486-40.025-94.289-62.067-151.499-62.067H304.714c-57.21,0-111.014,22.042-151.5,62.067
c-40.579,40.116-62.926,93.478-62.926,150.256s22.348,110.14,62.926,150.256c40.486,40.024,94.29,62.066,151.5,62.066
c16.568,0,30-13.432,30-30S321.282,637.566,304.714,637.566z"/>
<path d="M877.756,332.512c-40.486-40.024-94.29-62.066-151.5-62.066c-16.568,0-30,13.432-30,30s13.432,30,30,30
c85.15,0,154.426,68.331,154.426,152.322c0,83.992-69.275,152.324-154.426,152.324h-114.09
c-85.149,0-154.424-68.332-154.424-152.324c0-16.568-13.432-30-30-30s-30,13.432-30,30c0,117.076,96.19,212.324,214.424,212.324
h114.09c57.21,0,111.014-22.043,151.5-62.067c40.578-40.116,62.926-93.479,62.926-150.257S918.334,372.628,877.756,332.512z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<g>
<path d="M120.288,453.006h790.394c16.568,0,30-13.432,30-30s-13.432-30-30-30H120.288c-16.568,0-30,13.432-30,30
S103.72,453.006,120.288,453.006z"/>
<path d="M910.682,515.006H120.288c-16.568,0-30,13.432-30,30s13.432,30,30,30h790.394c16.568,0,30-13.432,30-30
S927.25,515.006,910.682,515.006z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 690 B

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<g>
<path d="M819.649,454.006H211.321c-16.568,0-30,13.431-30,30s13.432,30,30,30h608.328c16.568,0,30-13.431,30-30
S836.217,454.006,819.649,454.006z"/>
<path d="M493.53,378.637c0.158,0.161,0.322,0.311,0.483,0.467c0.133,0.13,0.265,0.26,0.401,0.388
c0.48,0.451,0.968,0.886,1.47,1.299c0.027,0.022,0.055,0.043,0.083,0.065c0.511,0.418,1.035,0.812,1.567,1.191
c0.083,0.059,0.166,0.119,0.25,0.177c1.186,0.828,2.418,1.56,3.687,2.197c0.022,0.011,0.044,0.022,0.065,0.033
c2.445,1.22,5.021,2.093,7.655,2.604c0.026,0.005,0.052,0.008,0.077,0.013c0.442,0.085,0.885,0.162,1.33,0.226
c1.438,0.21,2.883,0.314,4.324,0.314c0.245,0,0.49-0.012,0.735-0.018c0.237-0.006,0.475-0.006,0.712-0.018
c0.162-0.008,0.323-0.024,0.485-0.034c0.329-0.021,0.658-0.041,0.986-0.073c0.109-0.011,0.217-0.027,0.326-0.039
c0.381-0.041,0.762-0.085,1.142-0.141c0.07-0.01,0.138-0.024,0.208-0.035c0.42-0.065,0.839-0.136,1.256-0.218
c0.033-0.007,0.066-0.015,0.1-0.022c0.453-0.091,0.905-0.192,1.354-0.305c0.001,0,0.003-0.001,0.004-0.001
c1.897-0.474,3.756-1.138,5.55-1.989c0.003-0.001,0.006-0.003,0.009-0.004c0.435-0.206,0.865-0.424,1.292-0.652
c0.032-0.017,0.064-0.036,0.096-0.053c0.392-0.212,0.781-0.432,1.165-0.663c0.069-0.042,0.138-0.085,0.207-0.127
c0.341-0.208,0.679-0.422,1.014-0.645c0.112-0.075,0.223-0.153,0.335-0.23c0.286-0.197,0.57-0.396,0.851-0.604
c0.151-0.111,0.299-0.227,0.448-0.342c0.237-0.182,0.473-0.366,0.706-0.556c0.179-0.147,0.355-0.298,0.532-0.449
c0.199-0.171,0.398-0.341,0.593-0.518c0.192-0.173,0.38-0.352,0.568-0.531c0.119-0.113,0.241-0.219,0.358-0.335
c0.061-0.06,0.117-0.123,0.177-0.183c0.065-0.065,0.133-0.125,0.197-0.19l111.82-113.81c11.612-11.819,11.444-30.813-0.374-42.425
c-11.819-11.613-30.814-11.445-42.425,0.374l-60.421,61.496V88.809c0-16.568-13.432-30-30-30s-30,13.432-30,30v195.465
l-59.311-60.364c-11.611-11.818-30.606-11.985-42.425-0.373c-11.818,11.612-11.985,30.606-0.373,42.425L493.53,378.637z"/>
<path d="M536.329,589.374c-0.045-0.046-0.095-0.087-0.14-0.132c-0.079-0.08-0.153-0.163-0.234-0.242
c-0.4-0.393-0.809-0.769-1.224-1.135c-0.071-0.062-0.144-0.12-0.216-0.182c-0.46-0.397-0.929-0.776-1.406-1.14
c-0.103-0.079-0.206-0.158-0.31-0.236c-1.13-0.841-2.306-1.59-3.518-2.25c-0.053-0.029-0.105-0.058-0.158-0.086
c-1.253-0.673-2.542-1.251-3.859-1.733c-0.049-0.018-0.098-0.036-0.147-0.054c-1.301-0.469-2.626-0.844-3.968-1.127
c-0.106-0.022-0.211-0.045-0.317-0.066c-0.652-0.13-1.306-0.244-1.964-0.33c-0.071-0.009-0.142-0.015-0.213-0.024
c-0.573-0.071-1.147-0.124-1.722-0.162c-0.17-0.011-0.34-0.024-0.51-0.032c-0.619-0.031-1.239-0.046-1.859-0.038
c-0.144,0.002-0.289,0.01-0.433,0.014c-0.521,0.014-1.041,0.042-1.56,0.082c-0.173,0.014-0.346,0.025-0.519,0.042
c-0.63,0.06-1.258,0.14-1.884,0.24c-0.118,0.019-0.236,0.043-0.355,0.063c-0.599,0.103-1.196,0.224-1.789,0.364
c-0.077,0.018-0.154,0.034-0.23,0.052c-0.687,0.167-1.368,0.361-2.044,0.578c-0.04,0.013-0.079,0.027-0.119,0.04
c-1.398,0.454-2.768,1.014-4.1,1.679c-0.021,0.011-0.042,0.022-0.064,0.032c-1.27,0.638-2.503,1.37-3.69,2.199
c-0.085,0.06-0.17,0.12-0.254,0.181c-0.514,0.367-1.021,0.749-1.516,1.153c-0.046,0.037-0.093,0.072-0.139,0.109
c-0.497,0.41-0.981,0.841-1.457,1.288c-0.136,0.128-0.268,0.258-0.401,0.388c-0.16,0.156-0.324,0.305-0.481,0.466L382.821,702.05
c-11.612,11.818-11.445,30.813,0.373,42.425c5.842,5.739,13.435,8.601,21.024,8.601c7.766,0,15.528-2.997,21.4-8.975l59.311-60.364
v195.465c0,16.568,13.432,30,30,30s30-13.432,30-30V683.74l60.421,61.496c11.61,11.817,30.605,11.987,42.425,0.374
c11.818-11.611,11.986-30.606,0.374-42.425L536.329,589.374z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.9 KiB

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<g>
<path d="M910.682,453.555H431.337c-16.568,0-30,13.432-30,30s13.432,30,30,30h479.345c16.568,0,30-13.432,30-30
S927.25,453.555,910.682,453.555z"/>
<path d="M431.337,213.907h479.345c16.568,0,30-13.432,30-30s-13.432-30-30-30H431.337c-16.568,0-30,13.432-30,30
S414.768,213.907,431.337,213.907z"/>
<path d="M910.682,753.203H431.337c-16.568,0-30,13.432-30,30s13.432,30,30,30h479.345c16.568,0,30-13.432,30-30
S927.25,753.203,910.682,753.203z"/>
<path d="M134.986,175.62l52.727-29.633v160.867c0,16.568,13.432,30,30,30s30-13.432,30-30V94.713
c0-10.656-5.653-20.512-14.85-25.894c-9.197-5.381-20.558-5.48-29.848-0.259l-97.425,54.756
c-14.444,8.118-19.572,26.407-11.455,40.851C102.253,178.61,120.543,183.739,134.986,175.62z"/>
<path d="M253.44,456.095c16.568,0,30-13.432,30-30s-13.432-30-30-30H120.288c-16.568,0-30,13.432-30,30s13.432,30,30,30h36.576
v72.589h-36.576c-16.568,0-30,13.432-30,30s13.432,30,30,30H253.44c16.568,0,30-13.432,30-30s-13.432-30-30-30h-36.576v-72.589
H253.44z"/>
<path d="M253.44,661.524H120.288c-16.568,0-30,13.432-30,30s13.432,30,30,30H223.44v121.979H120.288c-16.568,0-30,13.432-30,30
s13.432,30,30,30H253.44c15.567,0,28.363-11.858,29.853-27.034h0.147V691.524C283.44,674.955,270.008,661.524,253.44,661.524z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<path fill="#080103" d="M910.682,58.809h-221c-16.568,0-30,13.432-30,30v221c0,16.568,13.432,30,30,30h80.996v114.476h-540
c-16.568,0-30,13.432-30,30v143.918h-80.39c-16.568,0-30,13.432-30,30v221c0,16.568,13.432,30,30,30h221c16.568,0,30-13.432,30-30
v-221c0-16.568-13.432-30-30-30h-80.61V514.284h540c16.568,0,30-13.432,30-30V339.809h80.004c16.568,0,30-13.432,30-30v-221
C940.682,72.24,927.25,58.809,910.682,58.809z M311.288,849.202h-161v-161h78.281c0.698,0.049,1.399,0.082,2.109,0.082
s1.411-0.034,2.109-0.082h78.501V849.202z M880.682,279.809h-161v-161h161V279.809z"/>
</svg>

After

Width:  |  Height:  |  Size: 953 B

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<g>
<path d="M910.682,274.414H436.446c-16.568,0-30,13.432-30,30s13.432,30,30,30h474.236c16.568,0,30-13.432,30-30
S927.25,274.414,910.682,274.414z"/>
<path d="M910.682,454.006H436.446c-16.568,0-30,13.432-30,30s13.432,30,30,30h474.236c16.568,0,30-13.432,30-30
S927.25,454.006,910.682,454.006z"/>
<path d="M120.288,154.823h790.394c16.568,0,30-13.432,30-30s-13.432-30-30-30H120.288c-16.568,0-30,13.432-30,30
S103.72,154.823,120.288,154.823z"/>
<path d="M910.682,813.189H120.288c-16.568,0-30,13.432-30,30s13.432,30,30,30h790.394c16.568,0,30-13.432,30-30
S927.25,813.189,910.682,813.189z"/>
<path d="M910.682,633.597H436.446c-16.568,0-30,13.432-30,30s13.432,30,30,30h474.236c16.568,0,30-13.432,30-30
S927.25,633.597,910.682,633.597z"/>
<path d="M241.883,638.168c1.768,1.753,4.123,2.683,6.518,2.683c1.199,0,2.408-0.232,3.558-0.712
c3.448-1.438,5.695-4.807,5.695-8.543v-295.18c0-3.736-2.247-7.105-5.695-8.543c-3.449-1.436-7.422-0.66-10.076,1.971
L93.027,477.434c-1.753,1.738-2.739,4.104-2.739,6.572s0.986,4.834,2.739,6.572L241.883,638.168z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<path d="M910.682,454.006H545.485V88.809c0-16.568-13.432-30-30-30s-30,13.432-30,30v365.197H120.288c-16.568,0-30,13.432-30,30
s13.432,30,30,30h365.197v365.197c0,16.568,13.432,30,30,30s30-13.432,30-30V514.005h365.197c16.568,0,30-13.431,30-30
S927.25,454.006,910.682,454.006z"/>
</svg>

After

Width:  |  Height:  |  Size: 662 B

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<path d="M193.129,436.94c49.486-51.568,115.376-79.967,185.532-79.967h435.257L579.393,111.534
c-11.446-11.979-11.015-30.969,0.964-42.416c11.979-11.446,30.969-11.015,42.416,0.964l282.996,296.164
c0.018,0.018,0.034,0.038,0.051,0.057c0.095,0.1,0.186,0.202,0.279,0.303c0.154,0.166,0.304,0.335,0.454,0.504
c0.094,0.107,0.193,0.211,0.286,0.318c0.09,0.105,0.176,0.211,0.265,0.317c0.124,0.148,0.244,0.299,0.365,0.45
c0.03,0.038,0.061,0.075,0.092,0.113c0.078,0.098,0.161,0.194,0.238,0.293c0.082,0.105,0.16,0.212,0.24,0.318
c0.095,0.125,0.185,0.253,0.278,0.38c0.058,0.08,0.117,0.159,0.175,0.239c0.067,0.093,0.137,0.184,0.203,0.277
c0.071,0.102,0.139,0.206,0.209,0.308c0.074,0.109,0.144,0.22,0.217,0.33c0.065,0.099,0.131,0.197,0.194,0.296
c0.069,0.107,0.143,0.212,0.21,0.32c0.058,0.093,0.114,0.188,0.171,0.282c0.067,0.11,0.13,0.223,0.196,0.334
c0.052,0.088,0.104,0.176,0.155,0.264c0.079,0.136,0.163,0.271,0.24,0.408c0.045,0.081,0.088,0.164,0.133,0.246
c0.073,0.134,0.142,0.272,0.213,0.407c0.023,0.044,0.046,0.088,0.069,0.131c0.092,0.178,0.19,0.354,0.279,0.533
c0.033,0.068,0.064,0.136,0.097,0.204c0.084,0.173,0.161,0.349,0.242,0.523c0.094,0.205,0.194,0.408,0.283,0.614
c0.024,0.054,0.045,0.109,0.068,0.164c0.088,0.206,0.169,0.415,0.252,0.623c0.077,0.193,0.159,0.384,0.232,0.578
c0.016,0.042,0.03,0.084,0.046,0.127c0.089,0.24,0.171,0.483,0.254,0.726c0.06,0.176,0.125,0.351,0.182,0.528
c0.011,0.034,0.02,0.068,0.031,0.103c0.085,0.267,0.162,0.537,0.24,0.807c0.046,0.162,0.097,0.323,0.141,0.485
c0.009,0.032,0.016,0.064,0.024,0.095c0.074,0.28,0.141,0.562,0.207,0.845c0.036,0.156,0.077,0.31,0.111,0.466
c0.008,0.036,0.014,0.073,0.022,0.11c0.059,0.278,0.112,0.559,0.163,0.839c0.029,0.156,0.062,0.311,0.088,0.468
c0.008,0.049,0.014,0.098,0.022,0.147c0.043,0.264,0.08,0.53,0.116,0.797c0.022,0.16,0.048,0.319,0.067,0.48
c0.008,0.071,0.013,0.142,0.021,0.212c0.027,0.243,0.049,0.487,0.071,0.732c0.014,0.161,0.033,0.321,0.044,0.482
c0.007,0.1,0.009,0.201,0.015,0.301c0.013,0.223,0.024,0.446,0.032,0.67c0.006,0.153,0.017,0.306,0.02,0.46
c0.003,0.131,0,0.262,0.001,0.393c0.001,0.108,0.008,0.214,0.008,0.322s-0.007,0.214-0.008,0.322
c-0.001,0.131,0.002,0.262-0.001,0.393c-0.004,0.153-0.015,0.306-0.02,0.46c-0.009,0.224-0.019,0.447-0.032,0.67
c-0.006,0.1-0.008,0.201-0.015,0.301c-0.011,0.161-0.03,0.321-0.044,0.482c-0.021,0.245-0.043,0.489-0.071,0.732
c-0.008,0.071-0.012,0.142-0.021,0.212c-0.019,0.16-0.045,0.32-0.067,0.48c-0.036,0.266-0.073,0.532-0.116,0.797
c-0.008,0.049-0.014,0.098-0.022,0.147c-0.026,0.156-0.059,0.312-0.088,0.468c-0.052,0.281-0.104,0.561-0.163,0.839
c-0.008,0.036-0.014,0.073-0.022,0.11c-0.034,0.156-0.075,0.311-0.111,0.466c-0.066,0.283-0.133,0.565-0.207,0.845
c-0.008,0.032-0.015,0.064-0.024,0.095c-0.044,0.163-0.094,0.323-0.141,0.485c-0.078,0.27-0.155,0.54-0.24,0.807
c-0.011,0.034-0.02,0.068-0.031,0.103c-0.057,0.177-0.122,0.352-0.182,0.528c-0.083,0.243-0.165,0.486-0.254,0.726
c-0.016,0.042-0.03,0.085-0.046,0.127c-0.073,0.194-0.155,0.386-0.233,0.579c-0.083,0.207-0.164,0.416-0.252,0.621
c-0.023,0.055-0.045,0.11-0.068,0.164c-0.09,0.207-0.189,0.41-0.284,0.615c-0.081,0.174-0.158,0.35-0.241,0.522
c-0.033,0.068-0.064,0.136-0.097,0.204c-0.089,0.179-0.186,0.355-0.279,0.533c-0.023,0.044-0.046,0.088-0.069,0.131
c-0.071,0.136-0.14,0.273-0.213,0.407c-0.045,0.082-0.087,0.164-0.133,0.246c-0.077,0.137-0.161,0.272-0.24,0.408
c-0.051,0.088-0.103,0.176-0.155,0.264c-0.066,0.111-0.129,0.224-0.196,0.334c-0.057,0.094-0.112,0.188-0.171,0.282
c-0.068,0.108-0.141,0.213-0.21,0.32c-0.064,0.099-0.129,0.197-0.194,0.296c-0.072,0.11-0.143,0.221-0.217,0.33
c-0.07,0.103-0.137,0.206-0.209,0.308c-0.065,0.093-0.136,0.184-0.203,0.277c-0.057,0.08-0.116,0.159-0.175,0.239
c-0.093,0.127-0.184,0.255-0.278,0.38c-0.08,0.106-0.158,0.213-0.24,0.318c-0.077,0.099-0.159,0.195-0.238,0.293
c-0.03,0.038-0.061,0.075-0.092,0.113c-0.121,0.151-0.241,0.302-0.365,0.45c-0.088,0.106-0.175,0.212-0.265,0.317
c-0.093,0.108-0.191,0.212-0.286,0.318c-0.15,0.169-0.3,0.338-0.454,0.504c-0.093,0.101-0.184,0.203-0.279,0.303
c-0.018,0.019-0.034,0.038-0.051,0.057L622.773,703.862c-5.895,6.169-13.787,9.274-21.694,9.274c-7.448,0-14.911-2.758-20.721-8.311
c-11.979-11.446-12.411-30.436-0.964-42.415l234.525-245.438H378.661c-111.257,0-201.771,94.886-201.771,211.518v248.712
c0,16.568-13.432,30-30,30s-30-13.432-30-30V628.49C116.891,556.198,143.966,488.17,193.129,436.94z"/>
</svg>

After

Width:  |  Height:  |  Size: 4.6 KiB

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<path d="M932.646,341.084L680.409,88.847c-10.716-10.716-28.09-10.716-38.806-0.001L98.325,632.123
c-10.716,10.716-10.716,28.09,0,38.806l171.347,171.347c-0.199,1.616-0.313,3.257-0.313,4.926c0,22.092,17.908,40,40,40h5.239
h110.731h452.623c22.091,0,40-17.908,40-40s-17.909-40-40-40H505.33l427.316-427.315
C943.361,369.173,943.361,351.799,932.646,341.084z M554.29,670.93L418.018,807.203h-96.107L185.636,670.929
c-10.715-10.716-10.716-28.089,0-38.806L350.56,467.201c10.716-10.716,28.09-10.716,38.805,0.001L554.29,632.124
C565.005,642.841,565.006,660.214,554.29,670.93z"/>
</svg>

After

Width:  |  Height:  |  Size: 955 B

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<g>
<path d="M910.682,454.006H374.288c-16.568,0-30,13.432-30,30s13.432,30,30,30h536.394c16.568,0,30-13.431,30-30
S927.25,454.006,910.682,454.006z"/>
<path d="M574.287,219.374h336.395c16.568,0,30-13.432,30-30s-13.432-30-30-30H574.287c-16.568,0-30,13.432-30,30
S557.719,219.374,574.287,219.374z"/>
<path d="M910.682,748.637H120.288c-16.568,0-30,13.432-30,30s13.432,30,30,30h790.394c16.568,0,30-13.432,30-30
S927.25,748.637,910.682,748.637z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 839 B

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<path fill="#080103" d="M915.644,197.442h-111.69V88.809c0-16.568-13.432-30-30-30H120.288c-16.568,0-30,13.432-30,30v661.685
c0,16.568,13.432,30,30,30H236.94v103.671c0,13.828,11.21,25.038,25.038,25.038h653.666c13.828,0,25.038-11.21,25.038-25.038
V222.481C940.682,208.652,929.472,197.442,915.644,197.442z M150.288,118.809h593.666v601.685H150.288V118.809z"/>
</svg>

After

Width:  |  Height:  |  Size: 741 B

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<g>
<path fill="#080103" d="M776.576,453.954L611.7,320.051c-0.442-0.359-0.895-0.705-1.355-1.038
c-11.448-8.263-26.494-9.625-39.274-3.547c-13.23,6.294-21.779,19.756-21.779,34.295v66.943H275.221
c-12.259,0-23.285,7.459-27.846,18.838c-1.707,4.258-2.38,8.745-2.089,13.137c0.173,7.574,0.175,62.564,0.004,70.56
c-0.178,2.574-0.024,5.206,0.492,7.839c2.759,14.076,15.095,24.229,29.439,24.229H549.29v66.943
c0,14.537,8.548,27.998,21.771,34.291c5.163,2.458,10.921,3.758,16.65,3.758c8.197,0,16.028-2.528,22.646-7.311
c0.457-0.33,0.904-0.673,1.342-1.028l164.882-133.908c9.319-7.174,14.849-18.319,14.849-30.047
C791.43,472.274,785.899,461.128,776.576,453.954z M609.29,572.622v-51.315c0-16.568-13.432-30-30-30H305.417
c0-2.363,0-4.894,0-7.607c0-2.346-0.001-4.69-0.003-6.996l273.877,0c16.568,0,30-13.432,30-30v-51.314l109.114,88.617
L609.29,572.622z"/>
<path fill="#080103" d="M190.66,424.278h-77.872c-12.426,0-22.5,10.074-22.5,22.5v74.89c0,12.427,10.074,22.5,22.5,22.5h77.872
c12.426,0,22.5-10.073,22.5-22.5v-74.89C213.16,434.352,203.086,424.278,190.66,424.278z M168.16,499.168h-32.872v-29.89h32.872
V499.168z"/>
<path fill="#080103" d="M918.182,424.278H840.31c-12.427,0-22.5,10.074-22.5,22.5v74.89c0,12.427,10.073,22.5,22.5,22.5h77.872
c12.427,0,22.5-10.073,22.5-22.5v-74.89C940.682,434.352,930.609,424.278,918.182,424.278z M895.682,499.168H862.81v-29.89h32.872
V499.168z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<path d="M910.682,58.809H684.91c-16.568,0-30,13.432-30,30v213.818L334.141,623.396H120.288c-16.568,0-30,13.432-30,30v225.807
c0,16.568,13.432,30,30,30H346.06c16.568,0,30-13.432,30-30V666.329l321.713-321.713h212.91c16.568,0,30-13.432,30-30V88.809
C940.682,72.24,927.25,58.809,910.682,58.809z M316.06,849.202H150.288V683.396H316.06V849.202z M880.682,284.616H714.91V118.809
h165.772V284.616z"/>
</svg>

After

Width:  |  Height:  |  Size: 778 B

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<g>
<rect x="90.288" y="809.99" width="850.394" height="99.213"/>
<path d="M119.684,720.112l82.654-13.35c17.21-2.78,33.107-10.91,45.433-23.237l404.539-404.539l-113.4-113.4l-155.35,153.06
L130.075,569.414c-11.585,11.461-19.538,26.08-22.867,42.033l-16.372,78.472C87.207,707.314,102.142,722.945,119.684,720.112z"/>
<path d="M749.901,181.397c13.2-13.21,13.2-34.62,0-47.83l-64.85-64.85c-13.14-13.14-34.42-13.22-47.65-0.18l-63.23,62.31
l113.14,113.14L749.901,181.397z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 861 B

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<g>
<path fill="#040000" d="M910.682,741.202c16.568,0,30-13.432,30-30v-167c0-16.568-13.432-30-30-30h-201c-16.568,0-30,13.432-30,30
s13.432,30,30,30h171v107h-171c-16.568,0-30,13.432-30,30v168c0,16.568,13.432,30,30,30h201c16.568,0,30-13.432,30-30
s-13.432-30-30-30h-171v-108H910.682z"/>
<path fill="#040000" d="M591.793,67.639c-11.692-11.74-30.688-11.779-42.427-0.086l-203.954,203.12L141.458,67.552
c-11.74-11.692-30.736-11.652-42.426,0.086c-11.692,11.74-11.653,30.735,0.086,42.427l203.78,202.947L99.118,515.96
c-11.739,11.692-11.778,30.687-0.086,42.427c5.861,5.886,13.559,8.83,21.257,8.83c7.657,0,15.315-2.913,21.169-8.743
l203.954-203.121l203.954,203.121c5.855,5.831,13.512,8.743,21.17,8.743c7.697,0,15.396-2.945,21.257-8.83
c11.691-11.74,11.652-30.734-0.087-42.427l-203.78-202.947l203.78-202.947C603.446,98.374,603.485,79.379,591.793,67.639z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<g>
<path fill="#040000" d="M910.682,285.809c16.568,0,30-13.432,30-30v-167c0-16.568-13.432-30-30-30h-201c-16.568,0-30,13.432-30,30
s13.432,30,30,30h171v107h-171c-16.568,0-30,13.432-30,30v168c0,16.568,13.432,30,30,30h201c16.568,0,30-13.432,30-30
s-13.432-30-30-30h-171v-108H910.682z"/>
<path fill="#040000" d="M591.793,409.625c-11.692-11.74-30.688-11.779-42.427-0.087l-203.954,203.12l-203.954-203.12
c-11.74-11.691-30.736-11.651-42.426,0.087c-11.692,11.74-11.653,30.735,0.086,42.426l203.78,202.947L99.118,857.946
c-11.739,11.692-11.778,30.687-0.086,42.427c5.861,5.886,13.559,8.83,21.257,8.83c7.657,0,15.315-2.913,21.169-8.743
l203.954-203.121l203.954,203.121c5.855,5.831,13.512,8.743,21.17,8.743c7.697,0,15.396-2.945,21.257-8.83
c11.691-11.74,11.652-30.734-0.087-42.427l-203.78-202.947l203.78-202.947C603.446,440.36,603.485,421.365,591.793,409.625z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<path d="M884.335,61.891H647.237c-0.006,0-0.013,0-0.019,0s-0.013,0-0.019,0H383.773c-0.006,0-0.013,0-0.019,0s-0.013,0-0.019,0
H146.635c-31.07,0-56.347,26.25-56.347,58.517v727.195c0,32.268,25.277,58.519,56.347,58.519h737.701
c31.069,0,56.347-26.251,56.347-58.519V120.408C940.682,88.141,915.405,61.891,884.335,61.891z M413.753,584.711v-201.41h203.464
v201.41H413.753z M617.217,644.711v201.41H413.753v-201.41H617.217z M150.288,383.301h203.465v201.41H150.288V383.301z
M413.753,323.301v-201.41h203.464v201.41H413.753z M677.217,383.301h203.465v201.41H677.217V383.301z M880.682,323.301H677.217
v-201.41h203.465V323.301z M353.753,121.891v201.41H150.288v-201.41H353.753z M150.288,644.711h203.465v201.41H150.288V644.711z
M677.217,846.121v-201.41h203.465v201.41H677.217z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<g>
<path d="M418.678,438.922c0-16.568-13.432-30-30-30H119.413c-16.568,0-30,13.432-30,30s13.432,30,30,30h269.265
C405.247,468.922,418.678,455.49,418.678,438.922z"/>
<path d="M910.682,408.922H641.416c-16.568,0-30,13.432-30,30s13.432,30,30,30h269.266c16.568,0,30-13.432,30-30
S927.25,408.922,910.682,408.922z"/>
<path d="M720.402,570.874L544.678,746.656l-0.001-473.026h396.005v-100H90.288v100h394.389l0.001,473.026L311.21,573.136
c-11.714-11.718-30.708-11.721-42.426-0.007c-11.717,11.714-11.72,30.709-0.006,42.427L493.462,840.31
c0.095,0.095,0.194,0.182,0.289,0.275c0.139,0.136,0.28,0.269,0.422,0.402c0.402,0.377,0.81,0.741,1.227,1.091
c0.079,0.066,0.154,0.135,0.233,0.2c0.524,0.431,1.06,0.839,1.605,1.229c0.076,0.054,0.154,0.107,0.23,0.161
c0.562,0.394,1.132,0.77,1.714,1.122c0.001,0,0.002,0.001,0.002,0.001c0.639,0.386,1.29,0.744,1.95,1.078
c0.008,0.004,0.015,0.007,0.023,0.011c2.832,1.43,5.842,2.385,8.914,2.86c0.089,0.014,0.177,0.032,0.266,0.045
c0.259,0.038,0.52,0.064,0.78,0.095c0.227,0.027,0.453,0.06,0.68,0.082c0.048,0.005,0.096,0.006,0.144,0.01
c0.909,0.083,1.82,0.128,2.729,0.128c0.668,0,1.334-0.031,1.998-0.075c0.304-0.02,0.608-0.037,0.912-0.067
c0.053-0.005,0.105-0.013,0.158-0.019c6.158-0.628,12.159-3.153,17.051-7.581c0.217-0.196,0.426-0.403,0.638-0.607
c0.152-0.146,0.308-0.286,0.458-0.436c0.001-0.001,0.002-0.002,0.003-0.003s0.002-0.002,0.003-0.003l226.94-227.016
c11.714-11.718,11.711-30.713-0.007-42.427S732.116,559.156,720.402,570.874z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<g>
<path d="M120.481,584.182h281.197c16.568,0,30-13.432,30-30s-13.432-30-30-30H120.481c-16.568,0-30,13.432-30,30
S103.913,584.182,120.481,584.182z"/>
<path d="M599.485,554.182c0,16.568,13.432,30,30,30h281.197c16.568,0,30-13.432,30-30s-13.432-30-30-30H629.485
C612.916,524.182,599.485,537.614,599.485,554.182z"/>
<path d="M549.701,251.312l178.24,178.153c11.719,11.714,30.712,11.708,42.427-0.01c11.713-11.718,11.708-30.713-0.011-42.426
L540.909,157.692c-0.062-0.062-0.127-0.119-0.19-0.181c-0.17-0.167-0.342-0.329-0.515-0.491c-0.122-0.114-0.241-0.232-0.365-0.345
c-0.084-0.075-0.169-0.147-0.253-0.221c-0.186-0.164-0.373-0.325-0.562-0.484c-0.099-0.083-0.195-0.169-0.295-0.251
c-0.107-0.088-0.217-0.173-0.325-0.26c-0.192-0.153-0.386-0.304-0.581-0.452c-0.081-0.062-0.161-0.125-0.243-0.186
c-0.134-0.1-0.27-0.196-0.405-0.293c-0.192-0.137-0.384-0.273-0.578-0.405c-0.07-0.047-0.139-0.095-0.209-0.142
c-0.161-0.108-0.324-0.213-0.486-0.317c-0.184-0.118-0.368-0.236-0.554-0.35c-0.066-0.041-0.132-0.08-0.198-0.12
c-0.186-0.112-0.373-0.22-0.561-0.327c-0.172-0.098-0.343-0.197-0.516-0.292c-0.069-0.037-0.139-0.074-0.208-0.111
c-0.207-0.111-0.415-0.216-0.624-0.322c-0.157-0.08-0.313-0.163-0.471-0.239c-0.076-0.037-0.154-0.072-0.231-0.108
c-0.225-0.107-0.453-0.207-0.68-0.308c-0.14-0.062-0.278-0.129-0.419-0.189c-0.088-0.037-0.177-0.072-0.265-0.108
c-0.21-0.087-0.422-0.168-0.633-0.25c-0.252-0.098-0.504-0.195-0.759-0.286c-0.185-0.066-0.372-0.127-0.558-0.189
c-0.284-0.095-0.567-0.189-0.854-0.275c-0.164-0.05-0.33-0.094-0.495-0.141c-0.307-0.087-0.615-0.173-0.926-0.25
c-0.154-0.038-0.31-0.071-0.465-0.107c-0.321-0.074-0.641-0.147-0.965-0.211c-0.157-0.031-0.315-0.057-0.473-0.085
c-0.319-0.057-0.638-0.115-0.961-0.162c-0.186-0.027-0.372-0.047-0.558-0.071c-0.295-0.037-0.588-0.077-0.885-0.106
c-0.255-0.025-0.511-0.04-0.766-0.058c-0.224-0.016-0.447-0.038-0.672-0.049c-0.009,0-0.019-0.001-0.029-0.001
c-0.492-0.024-0.984-0.037-1.477-0.037h-0.003h-0.003c-0.47,0-0.941,0.012-1.411,0.034c-0.022,0.001-0.044,0.003-0.066,0.004
c-0.167,0.008-0.332,0.024-0.499,0.035c-0.282,0.018-0.564,0.035-0.845,0.061c-0.039,0.004-0.078,0.008-0.117,0.012
c-0.206,0.02-0.411,0.048-0.616,0.072c-0.225,0.027-0.449,0.051-0.673,0.083c-0.053,0.008-0.105,0.015-0.157,0.023
c-0.217,0.032-0.432,0.071-0.648,0.107c-0.198,0.033-0.396,0.065-0.593,0.103c-0.065,0.013-0.131,0.025-0.196,0.038
c-0.213,0.042-0.424,0.089-0.635,0.135c-0.185,0.041-0.37,0.081-0.555,0.125c-0.081,0.02-0.161,0.039-0.242,0.059
c-0.198,0.049-0.395,0.102-0.591,0.155c-0.18,0.049-0.359,0.098-0.538,0.15c-0.098,0.028-0.195,0.057-0.293,0.086
c-0.176,0.053-0.352,0.109-0.527,0.165c-0.178,0.057-0.355,0.115-0.532,0.176c-0.118,0.04-0.235,0.081-0.353,0.123
c-0.149,0.054-0.298,0.108-0.446,0.164c-0.177,0.067-0.354,0.136-0.531,0.206c-0.139,0.055-0.277,0.111-0.415,0.168
c-0.121,0.051-0.242,0.101-0.362,0.153c-0.178,0.077-0.355,0.156-0.532,0.236c-0.157,0.071-0.313,0.142-0.469,0.216
c-0.096,0.046-0.192,0.091-0.288,0.138c-0.177,0.086-0.352,0.175-0.527,0.265c-0.17,0.087-0.341,0.175-0.51,0.266
c-0.077,0.041-0.154,0.082-0.23,0.124c-0.173,0.095-0.345,0.193-0.517,0.292c-0.179,0.103-0.358,0.206-0.536,0.313
c-0.063,0.038-0.127,0.076-0.19,0.115c-0.17,0.104-0.337,0.212-0.505,0.319c-0.182,0.116-0.363,0.232-0.542,0.352
c-0.057,0.039-0.114,0.077-0.171,0.116c-0.166,0.113-0.329,0.23-0.493,0.347c-0.175,0.125-0.352,0.248-0.525,0.377
c-0.058,0.043-0.114,0.086-0.171,0.129c-0.163,0.124-0.324,0.252-0.485,0.379c-0.165,0.129-0.331,0.256-0.493,0.389
c-0.058,0.048-0.114,0.096-0.171,0.144c-0.169,0.141-0.335,0.288-0.502,0.434c-0.145,0.126-0.293,0.248-0.436,0.378
c-0.055,0.05-0.107,0.102-0.162,0.152c-0.043,0.039-0.087,0.075-0.129,0.114L261.393,378.156
c-12.133,11.283-12.822,30.265-1.538,42.398c11.283,12.133,30.265,12.822,42.398,1.539l187.448-174.315V719.1H90.288v100h850.394
v-100H549.701V251.312z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.2 KiB

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<g>
<path d="M910.557,58.809H120.413c-16.568,0-30,13.432-30,30s13.432,30,30,30h790.144c16.568,0,30-13.432,30-30
S927.125,58.809,910.557,58.809z"/>
<path d="M535.574,207.34c-0.001-0.001-0.002-0.002-0.003-0.003c-0.001-0.001-0.003-0.003-0.004-0.004
c-0.481-0.481-0.979-0.935-1.484-1.377c-0.119-0.104-0.238-0.206-0.358-0.307c-1.057-0.896-2.16-1.707-3.303-2.433
c-0.067-0.043-0.135-0.085-0.203-0.127c-1.203-0.751-2.447-1.409-3.723-1.974c-0.038-0.017-0.075-0.033-0.113-0.049
c-1.292-0.565-2.614-1.035-3.959-1.409c-0.071-0.02-0.143-0.038-0.214-0.058c-0.655-0.177-1.314-0.337-1.978-0.469
c-0.008-0.002-0.016-0.004-0.023-0.005c-0.651-0.129-1.306-0.232-1.962-0.317c-0.141-0.018-0.282-0.034-0.424-0.051
c-0.584-0.068-1.169-0.121-1.755-0.154c-0.076-0.004-0.152-0.013-0.229-0.016c-0.628-0.031-1.256-0.036-1.884-0.028
c-0.179,0.002-0.358,0.007-0.537,0.013c-0.597,0.019-1.193,0.05-1.788,0.104c-0.048,0.004-0.097,0.006-0.145,0.01
c-0.65,0.062-1.298,0.153-1.944,0.258c-0.139,0.023-0.277,0.046-0.416,0.07c-1.368,0.241-2.721,0.578-4.05,1.009
c-0.044,0.014-0.087,0.028-0.131,0.042c-1.403,0.462-2.778,1.031-4.114,1.706c-0.004,0.002-0.007,0.003-0.011,0.005
c-1.264,0.64-2.492,1.376-3.674,2.206c-0.075,0.053-0.151,0.104-0.226,0.157c-0.546,0.391-1.083,0.799-1.607,1.231
c-0.079,0.065-0.154,0.134-0.233,0.2c-0.417,0.35-0.825,0.715-1.227,1.091c-0.142,0.133-0.284,0.267-0.423,0.403
c-0.095,0.093-0.194,0.18-0.289,0.275L268.456,432.093c-11.714,11.718-11.711,30.712,0.006,42.426
c5.858,5.856,13.533,8.784,21.21,8.784c7.679,0,15.359-2.931,21.216-8.79l173.468-173.521l-0.001,578.211c0,16.568,13.432,30,30,30
s30-13.432,30-30l0.001-578.21l175.724,175.782c11.714,11.717,30.709,11.722,42.427,0.007
c11.718-11.714,11.721-30.709,0.007-42.427L535.574,207.34z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<g>
<path d="M515.485,730.892c79.303,0,153.86-30.855,209.938-86.883c56.085-56.035,86.973-130.538,86.973-209.786V88.809
c0-16.568-13.432-30-30-30s-30,13.432-30,30v345.414c0,130.5-106.278,236.669-236.911,236.669
c-130.633,0-236.911-106.169-236.911-236.669V88.809c0-16.568-13.432-30-30-30s-30,13.432-30,30v345.414
c0,79.248,30.888,153.751,86.973,209.786C361.625,700.036,436.183,730.892,515.485,730.892z"/>
<path d="M874.497,849.202H156.473c-16.568,0-30,13.432-30,30s13.432,30,30,30h718.025c16.568,0,30-13.432,30-30
S891.066,849.202,874.497,849.202z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 948 B

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<path d="M837.84,436.94c-49.486-51.568-115.376-79.967-185.532-79.967H217.051l234.525-245.438
c11.446-11.979,11.015-30.969-0.964-42.416c-11.979-11.446-30.969-11.015-42.416,0.964L125.201,366.247
c-0.018,0.018-0.034,0.038-0.051,0.057c-0.095,0.1-0.186,0.202-0.279,0.303c-0.154,0.166-0.304,0.335-0.454,0.504
c-0.094,0.107-0.193,0.211-0.286,0.318c-0.09,0.105-0.176,0.211-0.265,0.317c-0.124,0.148-0.244,0.299-0.365,0.45
c-0.03,0.038-0.061,0.075-0.092,0.113c-0.078,0.098-0.161,0.194-0.238,0.293c-0.082,0.105-0.16,0.212-0.24,0.318
c-0.095,0.125-0.185,0.253-0.278,0.38c-0.058,0.08-0.117,0.159-0.175,0.239c-0.067,0.093-0.137,0.184-0.203,0.277
c-0.071,0.102-0.139,0.206-0.209,0.308c-0.074,0.109-0.144,0.22-0.217,0.33c-0.065,0.099-0.131,0.197-0.194,0.296
c-0.069,0.107-0.143,0.212-0.21,0.32c-0.058,0.093-0.114,0.188-0.171,0.282c-0.067,0.11-0.13,0.223-0.196,0.334
c-0.052,0.088-0.104,0.176-0.155,0.264c-0.079,0.136-0.163,0.271-0.24,0.408c-0.045,0.081-0.088,0.164-0.133,0.246
c-0.073,0.134-0.142,0.272-0.213,0.407c-0.023,0.044-0.046,0.088-0.069,0.131c-0.092,0.178-0.19,0.354-0.279,0.533
c-0.033,0.068-0.064,0.136-0.097,0.204c-0.084,0.173-0.161,0.349-0.242,0.523c-0.094,0.205-0.194,0.408-0.283,0.614
c-0.024,0.054-0.045,0.109-0.068,0.164c-0.088,0.206-0.169,0.415-0.252,0.623c-0.077,0.193-0.159,0.384-0.232,0.578
c-0.016,0.042-0.03,0.084-0.046,0.127c-0.089,0.24-0.171,0.483-0.254,0.726c-0.06,0.176-0.125,0.351-0.182,0.528
c-0.011,0.034-0.02,0.068-0.031,0.103c-0.085,0.267-0.162,0.537-0.24,0.807c-0.046,0.162-0.097,0.323-0.141,0.485
c-0.009,0.032-0.016,0.064-0.024,0.095c-0.074,0.28-0.141,0.562-0.207,0.845c-0.036,0.156-0.077,0.31-0.111,0.466
c-0.008,0.036-0.014,0.073-0.022,0.11c-0.059,0.278-0.112,0.559-0.163,0.839c-0.029,0.156-0.062,0.311-0.088,0.468
c-0.008,0.049-0.014,0.098-0.022,0.147c-0.043,0.264-0.08,0.53-0.116,0.797c-0.022,0.16-0.048,0.319-0.067,0.48
c-0.008,0.071-0.013,0.142-0.021,0.212c-0.027,0.243-0.049,0.487-0.071,0.732c-0.014,0.161-0.033,0.321-0.044,0.482
c-0.007,0.1-0.009,0.201-0.015,0.301c-0.013,0.223-0.024,0.446-0.032,0.67c-0.006,0.153-0.017,0.306-0.02,0.46
c-0.003,0.131,0,0.262-0.001,0.393c-0.001,0.108-0.008,0.214-0.008,0.322s0.007,0.214,0.008,0.322
c0.001,0.131-0.002,0.262,0.001,0.393c0.004,0.153,0.015,0.306,0.02,0.46c0.009,0.224,0.019,0.447,0.032,0.67
c0.006,0.1,0.008,0.201,0.015,0.301c0.011,0.161,0.03,0.321,0.044,0.482c0.021,0.245,0.043,0.489,0.071,0.732
c0.008,0.071,0.012,0.142,0.021,0.212c0.019,0.16,0.045,0.32,0.067,0.48c0.036,0.266,0.073,0.532,0.116,0.797
c0.008,0.049,0.014,0.098,0.022,0.147c0.026,0.156,0.059,0.312,0.088,0.468c0.052,0.281,0.104,0.561,0.163,0.839
c0.008,0.036,0.014,0.073,0.022,0.11c0.034,0.156,0.075,0.311,0.111,0.466c0.066,0.283,0.133,0.565,0.207,0.845
c0.008,0.032,0.015,0.064,0.024,0.095c0.044,0.163,0.094,0.323,0.141,0.485c0.078,0.27,0.155,0.54,0.24,0.807
c0.011,0.034,0.02,0.068,0.031,0.103c0.057,0.177,0.122,0.352,0.182,0.528c0.083,0.243,0.165,0.486,0.254,0.726
c0.016,0.042,0.03,0.085,0.046,0.127c0.073,0.194,0.155,0.386,0.233,0.579c0.083,0.207,0.164,0.416,0.252,0.621
c0.023,0.055,0.045,0.11,0.068,0.164c0.09,0.207,0.189,0.41,0.284,0.615c0.081,0.174,0.158,0.35,0.241,0.522
c0.033,0.068,0.064,0.136,0.097,0.204c0.089,0.179,0.186,0.355,0.279,0.533c0.023,0.044,0.046,0.088,0.069,0.131
c0.071,0.136,0.14,0.273,0.213,0.407c0.045,0.082,0.087,0.164,0.133,0.246c0.077,0.137,0.161,0.272,0.24,0.408
c0.051,0.088,0.103,0.176,0.155,0.264c0.066,0.111,0.129,0.224,0.196,0.334c0.057,0.094,0.112,0.188,0.171,0.282
c0.068,0.108,0.141,0.213,0.21,0.32c0.064,0.099,0.129,0.197,0.194,0.296c0.072,0.11,0.143,0.221,0.217,0.33
c0.07,0.103,0.137,0.206,0.209,0.308c0.065,0.093,0.136,0.184,0.203,0.277c0.057,0.08,0.116,0.159,0.175,0.239
c0.093,0.127,0.184,0.255,0.278,0.38c0.08,0.106,0.158,0.213,0.24,0.318c0.077,0.099,0.159,0.195,0.238,0.293
c0.03,0.038,0.061,0.075,0.092,0.113c0.121,0.151,0.241,0.302,0.365,0.45c0.088,0.106,0.175,0.212,0.265,0.317
c0.093,0.108,0.191,0.212,0.286,0.318c0.15,0.169,0.3,0.338,0.454,0.504c0.093,0.101,0.184,0.203,0.279,0.303
c0.018,0.019,0.034,0.038,0.051,0.057l282.996,296.164c5.895,6.169,13.787,9.274,21.694,9.274c7.448,0,14.911-2.758,20.721-8.311
c11.979-11.446,12.411-30.436,0.964-42.415L217.051,416.972h435.257c111.257,0,201.771,94.886,201.771,211.518v248.712
c0,16.568,13.432,30,30,30s30-13.432,30-30V628.49C914.079,556.198,887.003,488.17,837.84,436.94z"/>
</svg>

After

Width:  |  Height:  |  Size: 4.6 KiB

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<g>
<path d="M910.682,453.588H408.64c-16.569,0-30,13.432-30,30s13.431,30,30,30h502.042c16.568,0,30-13.432,30-30
S927.25,453.588,910.682,453.588z"/>
<path d="M408.64,198.42h502.042c16.568,0,30-13.432,30-30s-13.432-30-30-30H408.64c-16.569,0-30,13.432-30,30
S392.071,198.42,408.64,198.42z"/>
<path d="M910.682,768.758H408.64c-16.569,0-30,13.432-30,30s13.431,30,30,30h502.042c16.568,0,30-13.432,30-30
S927.25,768.758,910.682,768.758z"/>
<ellipse transform="matrix(0.9998 -0.02 0.02 0.9998 -9.631 3.6011)" cx="175.327" cy="483.589" rx="85.039" ry="85.04"/>
<ellipse transform="matrix(0.9999 -0.0169 0.0169 0.9999 -2.8282 2.9946)" cx="175.327" cy="168.42" rx="85.039" ry="85.04"/>
<path d="M175.327,714.551c-46.967,0-85.039,38.074-85.039,85.041c0,46.965,38.072,85.039,85.039,85.039
s85.039-38.074,85.039-85.039C260.367,752.625,222.294,714.551,175.327,714.551z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<g>
<path fill="#090204" d="M910.682,166.217H435.055c-16.568,0-30,13.432-30,30v123.312c0,16.568,13.432,30,30,30s30-13.432,30-30
v-93.312h177.814v515.136h-88.424c-16.568,0-30,13.432-30,30s13.432,30,30,30h236.847c16.568,0,30-13.432,30-30s-13.432-30-30-30
h-88.423V226.217h177.813v93.312c0,16.568,13.432,30,30,30s30-13.432,30-30V196.217
C940.682,179.648,927.25,166.217,910.682,166.217z"/>
<path fill="#090204" d="M230.977,166.217c-16.568,0-30,13.432-30,30v502.887l-59.513-59.308
c-11.736-11.696-30.732-11.662-42.426,0.073c-11.695,11.736-11.663,30.731,0.074,42.427l110.689,110.307
c5.736,5.716,13.393,8.751,21.183,8.751c3.873,0,7.779-0.75,11.498-2.295c11.198-4.649,18.496-15.582,18.496-27.706V196.217
C260.977,179.648,247.546,166.217,230.977,166.217z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<g>
<path fill="#080103" d="M443.972,323.66c5.825,0,11.646-2.248,16.051-6.731l32.605-33.184v117.76c0,12.426,10.073,22.5,22.5,22.5
s22.5-10.074,22.5-22.5v-117.76l33.319,33.913c8.709,8.864,22.955,8.99,31.818,0.281c8.864-8.709,8.99-22.955,0.281-31.819
l-71.869-73.148c-0.055-0.056-0.115-0.105-0.17-0.161c-0.039-0.039-0.071-0.081-0.11-0.119c-0.09-0.089-0.189-0.162-0.28-0.249
c-0.381-0.362-0.771-0.709-1.172-1.041c-0.167-0.138-0.334-0.276-0.504-0.408c-0.429-0.334-0.867-0.65-1.316-0.949
c-0.119-0.079-0.233-0.168-0.352-0.245c-0.533-0.342-1.082-0.655-1.638-0.949c-0.227-0.12-0.457-0.227-0.686-0.339
c-0.367-0.178-0.737-0.347-1.112-0.504c-0.246-0.103-0.49-0.206-0.739-0.3c-0.444-0.168-0.893-0.318-1.345-0.457
c-0.164-0.05-0.325-0.111-0.49-0.158c-0.603-0.171-1.215-0.31-1.83-0.43c-0.205-0.04-0.411-0.07-0.617-0.104
c-0.46-0.077-0.921-0.14-1.385-0.187c-0.201-0.021-0.402-0.042-0.603-0.057c-0.559-0.043-1.12-0.065-1.682-0.065
c-0.09,0-0.179-0.007-0.269-0.006c-0.659,0.007-1.319,0.046-1.978,0.112c-0.156,0.016-0.311,0.041-0.467,0.059
c-0.491,0.059-0.98,0.133-1.469,0.225c-0.22,0.041-0.438,0.086-0.657,0.134c-0.434,0.095-0.865,0.207-1.296,0.329
c-0.22,0.062-0.442,0.118-0.66,0.187c-0.585,0.185-1.167,0.39-1.742,0.625c-0.004,0.002-0.008,0.004-0.012,0.005
c-0.219,0.09-0.432,0.198-0.649,0.294c-0.388,0.173-0.773,0.351-1.147,0.545c-0.244,0.126-0.483,0.261-0.723,0.396
c-0.37,0.208-0.731,0.427-1.086,0.654c-0.201,0.129-0.403,0.254-0.6,0.39c-0.544,0.373-1.072,0.765-1.578,1.181
c-0.065,0.054-0.126,0.114-0.191,0.169c-0.468,0.395-0.917,0.811-1.349,1.241c-0.063,0.063-0.132,0.116-0.195,0.179l-71.154,72.419
c-8.709,8.864-8.583,23.109,0.28,31.818C432.585,321.514,438.28,323.66,443.972,323.66z"/>
<path fill="#080103" d="M570.947,650.353l-33.319,33.913v-117.76c0-12.427-10.073-22.5-22.5-22.5s-22.5,10.073-22.5,22.5v117.76
l-32.605-33.184c-8.711-8.865-22.956-8.989-31.818-0.279c-8.864,8.709-8.989,22.954-0.28,31.818l71.154,72.418
c0.063,0.064,0.133,0.117,0.196,0.18c0.442,0.439,0.899,0.864,1.378,1.266c0.06,0.051,0.117,0.107,0.177,0.156
c0.506,0.417,1.037,0.807,1.582,1.181c0.206,0.141,0.415,0.272,0.625,0.406c0.352,0.225,0.712,0.44,1.078,0.646
c0.243,0.137,0.485,0.274,0.732,0.401c0.398,0.204,0.807,0.392,1.22,0.573c1.535,0.675,3.124,1.189,4.748,1.504
c0.493,0.096,0.989,0.154,1.484,0.217c0.218,0.027,0.433,0.074,0.652,0.095c0.724,0.07,1.448,0.106,2.171,0.106
c0.111,0,0.222-0.015,0.333-0.016c0.616-0.009,1.232-0.032,1.846-0.091c0.192-0.019,0.381-0.058,0.572-0.082
c0.536-0.066,1.071-0.134,1.602-0.238c0.174-0.034,0.344-0.086,0.517-0.125c0.543-0.12,1.084-0.245,1.618-0.406
c0.164-0.049,0.322-0.114,0.484-0.167c0.534-0.174,1.065-0.354,1.588-0.569c0.175-0.072,0.342-0.16,0.515-0.236
c0.496-0.219,0.99-0.442,1.473-0.698c0.209-0.111,0.409-0.241,0.615-0.358c0.43-0.246,0.859-0.491,1.275-0.768
c0.254-0.168,0.495-0.359,0.742-0.538c0.352-0.255,0.705-0.504,1.045-0.782c0.279-0.228,0.542-0.479,0.812-0.722
c0.245-0.221,0.501-0.423,0.738-0.656c0.048-0.047,0.087-0.099,0.135-0.146c0.047-0.047,0.099-0.087,0.146-0.134l71.869-73.147
c8.709-8.863,8.583-23.109-0.28-31.818C593.902,641.365,579.656,641.49,570.947,650.353z"/>
<path fill="#080103" d="M910.682,58.809H684.91c-16.568,0-30,13.432-30,30v225.808c0,16.568,13.432,30,30,30h82.887v109.668
H232.678c-16.568,0-30,13.431-30,30v139.111h-82.39c-16.568,0-30,13.432-30,30v225.807c0,16.568,13.432,30,30,30H346.06
c16.568,0,30-13.432,30-30V653.396c0-16.568-13.432-30-30-30h-83.381V514.284h535.118c16.568,0,30-13.432,30-30V344.616h82.886
c16.568,0,30-13.432,30-30V88.809C940.682,72.24,927.25,58.809,910.682,58.809z M316.06,849.202H150.288V683.396H316.06V849.202z
M880.682,284.616H714.91V118.809h165.772V284.616z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.0 KiB

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<path fill="#080103" d="M120.288,58.809H346.06c16.568,0,30,13.432,30,30v204.782l241.001,92.693
c9.384,3.61,16.337,11.681,18.517,21.496c2.18,9.816-0.703,20.071-7.677,27.313L526.263,540.642l166.304,82.754h218.115
c16.568,0,30,13.432,30,30v225.807c0,16.568-13.432,30-30,30H684.911c-16.568,0-30-13.432-30-30V671.675l-191.984-95.532
c-8.553-4.256-14.567-12.332-16.196-21.745c-1.628-9.414,1.325-19.041,7.952-25.923l98.631-102.424l-211.729-81.434H120.288
c-16.568,0-30-13.432-30-30V88.809C90.288,72.24,103.72,58.809,120.288,58.809z M714.911,849.202h165.771V683.396H714.911V849.202z
M150.288,284.616H316.06V118.809H150.288V284.616z"/>
</svg>

After

Width:  |  Height:  |  Size: 1017 B

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图形" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="90.288 58.809 850.394 850.394" enable-background="new 90.288 58.809 850.394 850.394" xml:space="preserve">
<g>
<path d="M931.636,848.248l-217.36-212.143c23.771-27.606,42.819-58.414,56.751-91.946c17.234-41.48,25.974-85.31,25.974-130.27
s-8.739-88.789-25.974-130.27c-17.829-42.911-43.998-81.387-77.781-114.359c-33.729-32.919-73.053-58.405-116.882-75.752
c-42.273-16.73-86.926-25.214-132.72-25.214c-45.793,0-90.446,8.483-132.719,25.214c-43.829,17.347-83.154,42.833-116.882,75.752
c-33.783,32.972-59.952,71.448-77.782,114.359c-17.234,41.48-25.973,85.31-25.973,130.27s8.738,88.789,25.973,130.27
c17.829,42.911,43.999,81.388,77.782,114.36c33.728,32.918,73.053,58.404,116.882,75.751
c42.273,16.731,86.926,25.215,132.719,25.215c45.793,0,90.446-8.483,132.72-25.215c34.691-13.73,66.545-32.579,95.05-56.156
l218.314,213.073c5.835,5.695,13.396,8.531,20.952,8.531c7.799,0,15.593-3.023,21.472-9.046
C943.724,878.815,943.494,859.822,931.636,848.248z M235.951,615.579c-55.241-53.914-85.663-125.543-85.663-201.69
c0-76.147,30.422-147.775,85.663-201.69c57.261-55.887,132.477-83.83,207.693-83.83c75.215,0,150.432,27.943,207.693,83.83
C706.578,266.114,737,337.742,737,413.889c0,76.147-30.423,147.776-85.663,201.69C536.816,727.354,350.473,727.353,235.951,615.579
z"/>
<path d="M618.49,384.006H473.485V238.997c0-16.568-13.432-30-30-30s-30,13.432-30,30v145.009H268.48c-16.568,0-30,13.432-30,30
s13.432,30,30,30h145.004v145.009c0,16.568,13.432,30,30,30s30-13.432,30-30V444.006H618.49c16.568,0,30-13.432,30-30
S635.058,384.006,618.49,384.006z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save