Compare commits

...
52 Commits
Author SHA1 Message Date
zuiidea c3c8cf6f9b local icon 2017-05-12 15:55:42 +08:00
zuiidea 47ae7517a8 fix NProgress 2017-05-12 12:25:57 +08:00
zuiidea c7789f103e favicon 2017-05-11 11:11:21 +08:00
zuiidea 44605c6311 default.less 2017-05-09 16:35:37 +08:00
zuiidea 664aeba133 fix qureyuser 2017-05-09 15:25:08 +08:00
zuiidea d2595271f8 iconfont 2017-05-09 15:21:50 +08:00
zuiidea 0f03e1aa1a ICONFONT 2017-05-09 11:28:49 +08:00
zuiidea 839a7c5e0d add:nprogress,dva-loading 2017-05-08 15:32:25 +08:00
zuiidea 88d835cee4 Merge pull request #237 from zuiidea/4.2-dev
Update README.md
2017-05-02 10:45:05 +08:00
zuiidea 2434368b1f Update README.md 2017-05-02 10:44:46 +08:00
zuiidea 058407e442 Update 2017-05-02 10:41:58 +08:00
zuiidea d486fce33e Merge pull request #232 from zhangpenglin/master
fix typo
2017-04-30 19:06:37 +08:00
zuiidea abbcfb8c3c Merge pull request #233 from afc163/master
Fix devDeps
2017-04-30 19:04:01 +08:00
Zhang Penglin 78166e6a83 fix bug 2017-04-30 12:29:48 +08:00
afc163 ca59db9f04 Fix devDeps 2017-04-29 17:35:54 +08:00
Zhang Penglin 5c8286b5cb fix typo 2017-04-28 23:31:50 +08:00
zuiidea ed8555f15e Update README.md 2017-04-28 17:01:27 +08:00
zuiidea 33d4f1679e Merge branch '4.2-dev' 2017-04-28 16:42:59 +08:00
zuiidea 37dd7d011e merge 2017-04-28 16:42:31 +08:00
zuiidea 5641cc61c4 user mocj 2017-04-28 16:34:08 +08:00
zuiidea 30f14769f0 responsive 2017-04-27 20:40:47 +08:00
zuiidea 1b7c076057 filters 2017-04-27 20:26:30 +08:00
zuiidea fbd0fcb5c4 user detail 2017-04-27 17:59:39 +08:00
zuiidea 19ee8eacce user API restful 2017-04-27 17:29:50 +08:00
zuiidea 0b0c7c3f91 update some texts and configs 2017-04-27 14:40:36 +08:00
zuiidea 5d6abb67b6 Merge pull request #219 from HeChengjun/master
修正 arrayToTree 函数中 children 拼写错误
2017-04-26 16:55:17 +08:00
HeChengjun 1a58dcac95 修正 arrayToTree 函数中 children 拼写错误 2017-04-26 16:16:35 +08:00
zuiidea 3d2d524898 Update README.md 2017-04-25 16:17:25 +08:00
zuiidea 2869ead7bd Merge pull request #215 from zuiidea/4.2-dev
fix
2017-04-25 12:34:10 +08:00
zuiidea 25f7a65897 fix 2017-04-25 12:32:42 +08:00
zuiidea 75e6284873 Merge pull request #214 from zuiidea/4.2-dev
Menu defaultSelected
2017-04-25 12:19:03 +08:00
zuiidea 5fbb1b338a Menu defaultSelected 2017-04-25 12:09:20 +08:00
zuiidea ed2b0b25bd Merge pull request #212 from HeChengjun/patch-1
menu.js line 96 : lineChart -> barChart
2017-04-24 17:57:56 +08:00
HeChengjun a4922c7541 menu.js line 96 : lineChart -> barChart 2017-04-24 17:17:10 +08:00
zuiidea 4566171265 Merge pull request #209 from zuiidea/4.2-dev
hot update
2017-04-24 10:10:55 +08:00
zuiidea 6c48480031 hot update 2017-04-24 10:09:10 +08:00
zuiidea 3401215d41 Merge pull request #202 from zuiidea/4.2-dev
fix userInfo
2017-04-21 18:37:36 +08:00
zuiidea 7284cad8aa fix userInfo 2017-04-21 18:36:35 +08:00
zuiidea 53b8ee6e63 Update README.md 2017-04-21 11:06:23 +08:00
zuiidea b5423129f7 Merge pull request #198 from zuiidea/4.2-dev
4.2 dev
2017-04-21 10:49:31 +08:00
zuiidea 4c6deb49d3 fix menu open 2017-04-21 10:47:55 +08:00
zuiidea b6c3cb8a53 rebuild bread,menu,router 2017-04-20 19:26:17 +08:00
zuiidea a42e749c22 Update README.md 2017-04-19 19:27:23 +08:00
zuiidea cfd0172204 error message 2017-04-19 19:10:20 +08:00
zuiidea 4a694b6df8 fix prop-types 2017-04-18 09:56:15 +08:00
zuiidea 3d03fa0695 Merge pull request #184 from zlotus/remote_dev
fix mock error caused by invalid username
2017-04-15 18:45:25 +08:00
ZealotuS 69fbb4742e fix mock error caused by invalid username 2017-04-15 18:13:56 +08:00
zuiidea db8b283def Merge branch '4.1-dev' 2017-04-14 19:47:55 +08:00
zuiidea 4f673b6e3a merge 2017-04-14 19:47:33 +08:00
zuiidea f7616d524b update request 2017-04-01 17:53:06 +08:00
zuiidea 08fdd0d04f Merge pull request #159 from zuiidea/4.0-dev
fix getUserInfo
2017-03-31 21:05:51 +08:00
zuiidea 847f003cd8 fix getUserInfo 2017-03-31 21:04:33 +08:00
97 changed files with 6655 additions and 817 deletions
+1
View File
@@ -21,6 +21,7 @@
"react/jsx-no-bind": 0,
"no-unused-vars": [2, { "ignoreRestSiblings": true }],
"no-underscore-dangle": 0,
"global-require": 0,
},
"parser": "babel-eslint",
"parserOptions": {
+1
View File
@@ -2,6 +2,7 @@ const path = require('path')
const svgSpriteDirs = [
path.resolve(__dirname, 'src/svg/'),
require.resolve('antd').replace(/index\.js$/, ''),
]
export default {
+21 -7
View File
@@ -11,6 +11,8 @@
演示地址 <http://zuiidea.github.io/antd-admin/>
备用地址 <http://47.92.30.98:8000>
## 特性
- 基于[react](https://github.com/facebook/react),[ant-design](https://github.com/ant-design/ant-design),[dva](https://github.com/dvajs/dva),[Mock](https://github.com/nuysoft/Mock) 企业级后台管理系统最佳实践
@@ -21,6 +23,18 @@
## 更新日志
### 4.2
`2017-04-28`
-   修改user相关API使用`Restful`风格
-   增加user页面多条件查询[#266](https://github.com/zuiidea/antd-admin/issues/226)
-   修复菜单默认高亮[#201](https://github.com/zuiidea/antd-admin/issues/201)
`2017-04-21`
-   重写Menu,Bread组件及配置文件,[说明](https://github.com/zuiidea/antd-admin/wiki/%E8%8F%9C%E5%8D%95%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6)
### 4.1
`2017-04-14`
@@ -34,7 +48,6 @@
### 目录结构
```bash
├── /mock/ # 数据mock的接口文件
├── /dist/ # 项目输出目录
├── /src/ # 项目源码目录
│ ├── /components/ # UI组件及UI相关方法
@@ -44,10 +57,11 @@
│ │ └── app.js # 路由入口
│ ├── /models/ # 数据模型
│ ├── /services/ # 数据接口
│ ├── /themes/ # 项目样式
│ ├── /mock/ # 数据mock
│ ├── /utils/ # 工具函数
│ │ ├── config.js # 项目常规配置
│ │ ├── menu.js # 侧边菜单配置
│ │ ├── mock.js # 数据拦截配置
│ │ ├── menu.js # 菜单及面包屑配置
│ │ ├── config.js # 项目常规配置
│ │ ├── request.js # 异步请求函数
│ │ └── theme.js # 项目需要在js中使用到样式变量
@@ -55,7 +69,8 @@
│ ├── index.js # 入口文件
│ └── index.html
├── package.json # 项目信息
└── proxy.config.js # 数据mock配置
├── .eslintrc # Eslint配置
└── .roadhogrc.js # roadhog配置
```
文件夹命名说明:
@@ -72,13 +87,12 @@
进入目录安装依赖:
npm i 或者 yarn install
npm i roadhog@0.6.0-beta.3 -g
npm i roadhog@0.6.0-beta.6 -g
开发:
```bash
npm run dev # 使用mock拦截请求,数据存储在localStroge里
npm run dev
打开 http://localhost:8000
```
+6 -12
View File
@@ -7,6 +7,7 @@
"dva": "^1.1.0",
"dva-loading": "^0.2.0",
"lodash": "^4.17.4",
"nprogress": "^0.2.0",
"qs": "^6.2.0",
"react": "^15.4.1",
"react-countup": "1.3.0",
@@ -16,7 +17,6 @@
"recharts": "^0.19.0"
},
"devDependencies": {
"antd": "^2.9.1",
"axios": "^0.15.3",
"babel-eslint": "^6.1.2",
"babel-plugin-dev-expression": "^0.2.1",
@@ -34,23 +34,17 @@
"jsonp": "^0.2.1",
"less-vars-to-js": "^1.1.2",
"mockjs": "^1.0.1-beta3",
"path-to-regexp": "^1.7.0",
"rc-tween-one": "^1.0.0",
"redbox-react": "^1.2.10"
"redbox-react": "^1.2.10",
"roadhog": "^0.6.0-beta.6"
},
"pre-commit": [
"lint"
],
"scripts": {
"dev": "set BROWSER=none&&roadhog server",
"dev": "set BROWSER=none&&set HOST=0.0.0.0&&roadhog server",
"lint": "eslint --fix --ext .js src",
"build": "roadhog build"
},
"theme": "./src/theme.js",
"standard": {
"parser": "babel-eslint",
"globals": [
"location",
"localStorage"
]
"build": "roadhog build --analyze"
}
}
Binary file not shown.
+927
View File
@@ -0,0 +1,927 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>
Created by FontForge 20120731 at Thu May 11 13:24:17 2017
By admin
</metadata>
<defs>
<font id="anticon" horiz-adv-x="1024" >
<font-face
font-family="anticon"
font-weight="500"
font-stretch="normal"
units-per-em="1024"
panose-1="2 0 6 3 0 0 0 0 0 0"
ascent="896"
descent="-128"
x-height="792"
bbox="-0.142858 -128.087 1024.37 896.923"
underline-thickness="0"
underline-position="0"
unicode-range="U+0078-E951"
/>
<missing-glyph
/>
<glyph glyph-name=".notdef"
/>
<glyph glyph-name=".notdef"
/>
<glyph glyph-name=".null" horiz-adv-x="0"
/>
<glyph glyph-name="nonmarkingreturn" horiz-adv-x="341"
/>
<glyph glyph-name="x" unicode="x" horiz-adv-x="1001"
d="M281 543q-27 -1 -53 -1h-83q-18 0 -36.5 -6t-32.5 -18.5t-23 -32t-9 -45.5v-76h912v41q0 16 -0.5 30t-0.5 18q0 13 -5 29t-17 29.5t-31.5 22.5t-49.5 9h-133v-97h-438v97zM955 310v-52q0 -23 0.5 -52t0.5 -58t-10.5 -47.5t-26 -30t-33 -16t-31.5 -4.5q-14 -1 -29.5 -0.5
t-29.5 0.5h-32l-45 128h-439l-44 -128h-29h-34q-20 0 -45 1q-25 0 -41 9.5t-25.5 23t-13.5 29.5t-4 30v167h911zM163 247q-12 0 -21 -8.5t-9 -21.5t9 -21.5t21 -8.5q13 0 22 8.5t9 21.5t-9 21.5t-22 8.5zM316 123q-8 -26 -14 -48q-5 -19 -10.5 -37t-7.5 -25t-3 -15t1 -14.5
t9.5 -10.5t21.5 -4h37h67h81h80h64h36q23 0 34 12t2 38q-5 13 -9.5 30.5t-9.5 34.5q-5 19 -11 39h-368zM336 498v228q0 11 2.5 23t10 21.5t20.5 15.5t34 6h188q31 0 51.5 -14.5t20.5 -52.5v-227h-327z" />
<glyph glyph-name="stepforward" unicode="&#xe600;"
d="M327 820l431 -356v300q0 15 10.5 25.5t25.5 10.5v0q15 0 25.5 -10.5t10.5 -25.5v-760q0 -15 -10.5 -25.5t-25.5 -10.5v0q-15 0 -25.5 10.5t-10.5 25.5v301l-431 -357q-21 -18 -46 -7t-25 39v808q0 28 25 39t46 -7z" />
<glyph glyph-name="stepbackward" unicode="&#xe601;"
d="M759 820l-431 -356v300q0 15 -10.5 25.5t-25.5 10.5v0q-15 0 -25.5 -10.5t-10.5 -25.5v-760q0 -15 10.5 -25.5t25.5 -10.5v0q15 0 25.5 10.5t10.5 25.5v301l431 -357q21 -18 46 -7t25 39v808q0 28 -25 39t-46 -7z" />
<glyph glyph-name="forward" unicode="&#xe602;"
d="M575 790l436 -375q13 -12 13 -30t-13 -29l-436 -378q-18 -17 -40.5 -6.5t-22.5 36.5v377v375q0 26 22.5 36.5t40.5 -6.5zM63 790l436 -375q13 -12 13 -30t-13 -29l-436 -378q-18 -17 -40.5 -6.5t-22.5 36.5v752q0 26 22.5 36.5t40.5 -6.5z" />
<glyph glyph-name="banckward" unicode="&#xe603;" horiz-adv-x="1025"
d="M449 790l-436 -376q-13 -11 -13 -29t13 -30l436 -377q18 -17 40.5 -6.5t22.5 36.5v377v375q0 26 -22.5 36.5t-40.5 -6.5zM961 790l-436 -376q-13 -11 -13 -29t13 -30l436 -377q18 -17 40.5 -6.5t22.5 36.5v752q0 26 -22.5 36.5t-40.5 -6.5z" />
<glyph glyph-name="caretright" unicode="&#xe604;"
d="M393 820l489 -403q14 -13 14 -32t-14 -32l-489 -405q-21 -18 -46 -7t-25 39v808q0 28 25 39t46 -7z" />
<glyph glyph-name="caretleft" unicode="&#xe605;"
d="M631 820l-489 -403q-14 -13 -14 -32t14 -32l489 -405q21 -18 46 -7t25 39v808q0 28 -25 39t-46 -7z" />
<glyph glyph-name="caretdown" unicode="&#xe606;"
d="M76 504l403 -489q13 -15 32 -15t32 15l405 489q18 20 7 45t-39 25h-808q-28 0 -39 -25t7 -45z" />
<glyph glyph-name="caretup" unicode="&#xe607;"
d="M76 263l405 489q13 14 32 14t32 -14l403 -489q18 -20 7 -45.5t-39 -25.5h-808q-28 0 -39 25.5t7 45.5z" />
<glyph glyph-name="rightcircle" unicode="&#xe608;"
d="M512 895q-104 0 -199 -40.5t-163 -109t-109 -163t-41 -199t41 -199t109 -163t163 -109t199 -40.5t199 40.5t163 109t109 163t41 199t-41 199t-109 163t-163 109t-199 40.5zM681 358l-235 -220q-11 -11 -26 -10.5t-25 11.5t-9.5 26t11.5 25l207 194l-207 195
q-11 10 -11.5 25t9.5 26t25 11.5t26 -9.5l235 -221q12 -11 12 -26.5t-12 -26.5z" />
<glyph glyph-name="leftcircle" unicode="&#xe609;"
d="M512 895q-104 0 -199 -40.5t-163 -109t-109 -163t-41 -199t41 -199t109 -163t163 -109t199 -40.5t199 40.5t163 109t109 163t41 199t-41 199t-109 163t-163 109t-199 40.5zM629 139q-10 -11 -25 -11.5t-26 9.5l-235 221q-12 11 -12 26.5t11 26.5l236 220q11 11 26 10.5
t25 -11.5t9.5 -26t-11.5 -25l-207 -195l207 -194q11 -10 11.5 -25t-9.5 -26z" />
<glyph glyph-name="upcircle" unicode="&#xe60a;"
d="M512 895q-104 0 -199 -40.5t-163 -109t-109 -163t-41 -199t41 -199t109 -163t163 -109t199 -40.5t199 40.5t163 109t109 163t41 199t-41 199t-109 163t-163 109t-199 40.5zM757 278.5q-11 -10.5 -25.5 -10t-24.5 11.5l-195 208l-195 -208q-10 -11 -25 -11.5t-25.5 10
t-11 25t9.5 25.5l221 236q10 11 26 11t26 -11l221 -236q10 -11 9.5 -25.5t-11.5 -25z" />
<glyph glyph-name="downcircle" unicode="&#xe60b;"
d="M512 895q-104 0 -199 -40.5t-163 -109t-109 -163t-41 -199t41 -199t109 -163t163 -109t199 -40.5t199 40.5t163 109t109 163t41 199t-41 199t-109 163t-163 109t-199 40.5zM759 430l-221 -236q-10 -11 -26 -11t-26 11l-221 236q-10 11 -9.5 25.5t11 25t25.5 10t25 -11.5
l195 -208l195 208q10 11 24.5 11.5t25.5 -10t11.5 -25t-9.5 -25.5z" />
<glyph glyph-name="rightcircleo" unicode="&#xe60c;"
d="M511.5 823q89.5 0 171.5 -34q79 -34 140 -95t94 -139q35 -82 35 -171.5t-35 -171.5q-33 -78 -94 -139t-140 -95q-81 -34 -170.5 -34t-171.5 34q-79 34 -140 95t-94 139q-35 82 -35 171.5t35 171.5q33 78 94 139t140 95q81 34 170.5 34zM512 895q-104 0 -199 -40.5
t-163 -109t-109 -163t-41 -199t41 -199t109 -163t163 -109t199 -40.5t199 40.5t163 109t109 163t41 199t-41 199t-109 163t-163 109t-199 40.5v0zM681 411l-235 220q-11 11 -26 10.5t-25 -11.5t-9.5 -26t11.5 -25l207 -195l-207 -194q-11 -10 -11.5 -25t9.5 -26t25 -11.5
t26 9.5l235 221q12 11 12 26.5t-12 26.5z" />
<glyph glyph-name="leftcircleo" unicode="&#xe60d;"
d="M511.5 823q89.5 0 171.5 -34q79 -34 140 -95t94 -139q35 -82 35 -171.5t-35 -171.5q-33 -78 -94 -139t-140 -95q-81 -34 -170.5 -34t-171.5 34q-79 34 -140 95t-94 139q-35 82 -35 171.5t35 171.5q33 78 94 139t140 95q81 34 170.5 34zM512 895q-104 0 -199 -40.5
t-163 -109t-109 -163t-41 -199t41 -199t109 -163t163 -109t199 -40.5t199 40.5t163 109t109 163t41 199t-41 199t-109 163t-163 109t-199 40.5v0zM331 384.5q0 -15.5 12 -26.5l235 -221q11 -10 26 -9.5t25 11.5t9.5 26t-11.5 25l-207 194l207 195q11 10 11.5 25t-9.5 26
t-25 11.5t-26 -10.5l-236 -220q-11 -11 -11 -26.5z" />
<glyph glyph-name="upcircleo" unicode="&#xe60e;"
d="M511.5 823q89.5 0 171.5 -34q79 -34 140 -95t94 -139q35 -82 35 -171.5t-35 -171.5q-33 -78 -94 -139t-140 -95q-81 -34 -170.5 -34t-171.5 34q-79 34 -140 95t-94 139q-35 82 -35 171.5t35 171.5q33 78 94 139t140 95q81 34 170.5 34zM512 895q-104 0 -199 -40.5
t-163 -109t-109 -163t-41 -199t41 -199t109 -163t163 -109t199 -40.5t199 40.5t163 109t109 163t41 199t-41 199t-109 163t-163 109t-199 40.5v0zM512 576q-16 0 -26 -11l-221 -236q-10 -11 -9.5 -25.5t11 -25t25.5 -10t25 11.5l195 208l195 -208q10 -11 24.5 -11.5t25.5 10
t11.5 25t-9.5 25.5l-221 236q-10 11 -26 11z" />
<glyph glyph-name="downcircleo" unicode="&#xe60f;"
d="M511.5 823q89.5 0 171.5 -34q79 -34 140 -95t94 -139q35 -82 35 -171.5t-35 -171.5q-33 -78 -94 -139t-140 -95q-81 -34 -170.5 -34t-171.5 34q-79 34 -140 95t-94 139q-35 82 -35 171.5t35 171.5q33 78 94 139t140 95q81 34 170.5 34zM512 895q-104 0 -199 -40.5
t-163 -109t-109 -163t-41 -199t41 -199t109 -163t163 -109t199 -40.5t199 40.5t163 109t109 163t41 199t-41 199t-109 163t-163 109t-199 40.5v0zM512 183q-16 0 -26 11l-221 236q-10 11 -9.5 25.5t11 25t25.5 10t25 -11.5l195 -208l195 208q10 11 24.5 11.5t25.5 -10
t11.5 -25t-9.5 -25.5l-221 -236q-10 -11 -26 -11z" />
<glyph glyph-name="verticleleft" unicode="&#xe610;"
d="M273 78l382 307l-380 305q-14 11 -16 29t9.5 32t29.5 16t32 -9l358 -288v262q0 15 10.5 25.5t25.5 10.5h8q15 0 25.5 -10.5t10.5 -25.5v-696q0 -15 -10.5 -25.5t-25.5 -10.5h-8q-15 0 -25.5 10.5t-10.5 25.5v264l-360 -290q-12 -10 -27 -10q-21 0 -35 17q-11 14 -9 32
t16 29z" />
<glyph glyph-name="verticleright" unicode="&#xe611;"
d="M752 78l-382 307l380 305q14 11 16 29t-9.5 32t-29.5 16t-32 -9l-358 -288v262q0 15 -10.5 25.5t-25.5 10.5h-8q-15 0 -25.5 -10.5t-10.5 -25.5v-696q0 -15 10.5 -25.5t25.5 -10.5h8q15 0 25.5 10.5t10.5 25.5v264l360 -290q12 -10 27 -10q21 0 34 17q12 14 10 32t-16 29
z" />
<glyph glyph-name="rollback" unicode="&#xe612;"
d="M811.5 471.5q-88.5 88.5 -213.5 88.5h-336l114 114q12 12 12 28.5t-12 28t-28.5 11.5t-28.5 -12l-183 -183q-12 -12 -12 -28.5t12 -28.5l178 -178q12 -12 28.5 -12t28 11.5t11.5 28t-11 28.5l-113 112h340q92 0 157 -65t65 -157v-192q0 -17 12 -28.5t28.5 -11.5t28 11.5
t11.5 28.5v192q0 125 -88.5 213.5z" />
<glyph glyph-name="retweet" unicode="&#xe613;"
d="M366 579h349l-119 -119q-11 -11 -11 -26t10.5 -25.5t25.5 -10.5t25 11l179 178q11 11 11 25.5t-11 25.5l-184 184q-10 10 -25 10t-25.5 -10.5t-10.5 -25.5t10 -25l120 -120h-344q-124 0 -211.5 -87.5t-87.5 -211.5q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5
q0 94 66.5 160.5t160.5 66.5zM923 455q-15 0 -25.5 -10.5t-10.5 -25.5q0 -94 -66.5 -160.5t-160.5 -66.5h-349l120 120q10 10 10 25t-10.5 25.5t-25.5 10.5t-25 -11l-179 -178q-10 -11 -10 -25.5t10 -25.5l184 -184q10 -10 25 -10t25.5 10.5t10.5 25.5t-10 25l-120 120h344
q124 0 211.5 87.5t87.5 211.5q0 15 -10.5 25.5t-25.5 10.5z" />
<glyph glyph-name="shrink" unicode="&#xe614;"
d="M109 247h211l-232 -232q-13 -13 -13 -31t13 -31t31 -13t31 13l236 236v-210q0 -18 13 -31t31 -13t31 13t13 31v312q0 19 -13 31.5t-31 12.5h-321q-18 0 -31 -12.5t-13 -31t13 -31.5t31 -13zM595 431h321q18 0 31 13t13 31t-13 31t-31 13h-211l232 232q13 13 13 31.5
t-13 31t-31 12.5t-31 -12l-236 -236v209q0 18 -13 31t-31 13t-31 -13t-13 -31v-312q0 -18 13 -31t31 -13z" />
<glyph glyph-name="arrowsalt" unicode="&#xe615;"
d="M430 23h-211l232 232q13 13 13 31.5t-13 31t-31 12.5t-31 -12l-236 -236v209q0 18 -13 31t-31 13t-31 -13t-13 -31v-312q0 -18 13 -31t31 -13h321q18 0 31 13t13 31t-13 31t-31 13zM916 831h-321q-18 0 -31 -13t-13 -31t13 -31t31 -13h211l-232 -232q-13 -13 -13 -31
t13 -31t31 -13t31 13l236 236v-210q0 -18 13 -31t31 -13t31 13t13 31v312q0 18 -13 31t-31 13z" />
<glyph glyph-name="doubleright" unicode="&#xe617;"
d="M431 17q-11 14 -9 32t16 29l381 307l-379 305q-14 11 -16 29t9 32t29 16t32 -9l422 -339q17 -13 17 -34t-17 -34l-424 -341q-12 -10 -27 -10q-21 0 -34 17zM101 17q-11 14 -9 32t16 29l381 307l-379 305q-14 11 -16 29t9 32t29 16t32 -9l422 -339q17 -13 17 -34t-17 -34
l-424 -341q-12 -10 -27 -10q-21 0 -34 17z" />
<glyph glyph-name="doubleleft" unicode="&#xe618;"
d="M559 0q-15 0 -27 10l-424 341q-17 13 -17 34t17 34l422 339q14 11 32 9t29 -16t9 -32t-16 -29l-379 -305l381 -307q14 -11 16 -29t-9 -32q-13 -17 -34 -17zM889 0q-15 0 -27 10l-424 341q-17 13 -17 34t17 34l422 339q14 11 32 9t29 -16t9 -32t-16 -29l-379 -305
l381 -307q14 -11 16 -29t-9 -32q-13 -17 -34 -17z" />
<glyph glyph-name="arrowdown" unicode="&#xe619;"
d="M558 725v-574v0l208 216q13 14 31 14t31.5 -12.5t13.5 -30.5t-12 -32l-284 -294q-13 -14 -31.5 -14t-31.5 14l-285 296q-12 13 -12 30q0 19 14 32q13 13 31 12.5t31 -13.5l208 -216v0v573q0 17 12 30t29 14q19 1 33 -12.5t14 -32.5z" />
<glyph glyph-name="arrowup" unicode="&#xe61a;"
d="M470 43v574v0l-208 -216q-13 -14 -31 -14t-31.5 12.5t-13.5 30.5t12 32l284 294q13 14 31.5 14t31.5 -14l285 -296q12 -13 12 -30q0 -19 -14 -32q-13 -13 -31 -12.5t-31 13.5l-208 216v0v-573q0 -17 -12 -30t-29 -14q-19 -1 -33 12.5t-14 32.5z" />
<glyph glyph-name="arrowright" unicode="&#xe61b;"
d="M173 428h574v0l-216 208q-14 13 -14 31t12.5 31.5t30.5 13.5t32 -12l294 -284q14 -13 14 -31.5t-14 -31.5l-296 -285q-13 -12 -30 -12q-19 0 -32 14q-13 13 -12.5 31t13.5 31l216 208v0h-573q-17 0 -30 12t-14 29q-1 19 12.5 33t32.5 14z" />
<glyph glyph-name="arrowleft" unicode="&#xe61c;"
d="M855 428h-574v0l216 208q14 13 14 31t-12.5 31.5t-30.5 13.5t-32 -12l-294 -284q-14 -13 -14 -31.5t14 -31.5l296 -285q13 -12 30 -12q19 0 32 14q13 13 12.5 31t-13.5 31l-216 208v0h573q17 0 30 12t14 29q1 19 -12.5 33t-32.5 14z" />
<glyph glyph-name="down" unicode="&#xe61d;"
d="M896 596q0 -15 -10 -28l-341 -423q-13 -17 -34 -17t-34 17l-339 422q-11 14 -9 32t16 29t32 9t29 -16l305 -379l307 381q11 14 29 16t32 -9q17 -13 17 -34z" />
<glyph glyph-name="up" unicode="&#xe61e;"
d="M896 236q0 15 -10 28l-341 423q-13 17 -34 17t-34 -17l-339 -422q-11 -14 -9 -32t16 -29t32 -9t29 16l305 379l307 -381q11 -14 29 -16t32 9q17 13 17 34z" />
<glyph glyph-name="right" unicode="&#xe61f;"
d="M301 0q15 0 27 10l424 341q16 13 16 34t-16 34l-422 339q-14 11 -32 9t-29.5 -16t-9.5 -32t16 -29l380 -305l-382 -307q-14 -11 -16 -29t9 -32q14 -17 35 -17z" />
<glyph glyph-name="left" unicode="&#xe620;"
d="M724 0q-15 0 -27 10l-424 341q-16 13 -16 34t16 34l422 339q14 11 32 9t29.5 -16t9.5 -32t-16 -29l-380 -305l382 -307q14 -11 16 -29t-10 -32q-13 -17 -34 -17z" />
<glyph glyph-name="minussquareo" unicode="&#xe621;"
d="M888 760v0v0v-753v0h-752v0v753v0h752zM888 832h-752q-30 0 -51 -21t-21 -51v-753q0 -29 21 -50.5t51 -21.5h753q29 0 50.5 21.5t21.5 50.5v753q0 30 -21.5 51t-51.5 21v0zM732 347h-442q-14 0 -25 10.5t-11 25.5v0q0 15 11 25.5t25 10.5h442q14 0 25 -10.5t11 -25.5v0
q0 -15 -11 -25.5t-25 -10.5z" />
<glyph glyph-name="minuscircle" unicode="&#xe622;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM832 384q0 -15 -10.5 -25.5t-25.5 -10.5h-568q-15 0 -25.5 10.5t-10.5 25.5v0q0 15 10.5 25.5t25.5 10.5h568
q15 0 25.5 -10.5t10.5 -25.5v0z" />
<glyph glyph-name="minuscircleo" unicode="&#xe623;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM823 73q-61 -61 -140 -94q-81 -35 -171 -35t-171 34q-79 34 -140 95t-94 140q-35 81 -35 171t34 171
q34 79 95 140t140 94q81 35 171 35t171 -34q79 -34 140 -95t94 -140q35 -81 35 -171t-34 -171q-34 -79 -95 -140zM796 348h-568q-15 0 -25.5 10.5t-10.5 25.5v0q0 15 10.5 25.5t25.5 10.5h568q15 0 25.5 -10.5t10.5 -25.5v0q0 -15 -10.5 -25.5t-25.5 -10.5z" />
<glyph glyph-name="minus" unicode="&#xe624;"
d="M796 348h-568q-15 0 -25.5 10.5t-10.5 25.5v0q0 15 10.5 25.5t25.5 10.5h568q15 0 25.5 -10.5t10.5 -25.5v0q0 -15 -10.5 -25.5t-25.5 -10.5z" />
<glyph glyph-name="pluscircleo" unicode="&#xe625;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM823 73q-61 -61 -140 -94q-81 -35 -171 -35t-171 34q-79 34 -140 95t-94 140q-35 81 -35 171t34 171
q34 79 95 140t140 94q81 35 171 35t171 -34q79 -34 140 -95t94 -140q35 -81 35 -171t-34 -171q-34 -79 -95 -140zM732 420h-184v183q0 15 -10.5 25.5t-25.5 10.5v0q-14 0 -25 -10.5t-11 -25.5v-183h-184q-15 0 -25.5 -11t-10.5 -25v0q0 -15 10.5 -25.5t25.5 -10.5h184v-183
q0 -15 11 -25.5t25 -10.5v0q15 0 25.5 10.5t10.5 25.5v183h184q15 0 25.5 10.5t10.5 25.5v0q0 14 -10.5 25t-25.5 11z" />
<glyph glyph-name="pluscircle" unicode="&#xe626;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM768 384q0 -15 -10.5 -25.5t-25.5 -10.5h-184v-183q0 -15 -10.5 -25.5t-25.5 -10.5v0q-14 0 -25 10.5
t-11 25.5v183h-184q-15 0 -25.5 10.5t-10.5 25.5v0q0 14 10.5 25t25.5 11h184v183q0 15 11 25.5t25 10.5v0q15 0 25.5 -10.5t10.5 -25.5v-183h184q15 0 25.5 -11t10.5 -25v0z" />
<glyph glyph-name="plus" unicode="&#xe627;"
d="M866 420h-318v310q0 15 -10.5 25.5t-25.5 10.5v0q-15 0 -25.5 -10.5t-10.5 -25.5v-310h-312q-14 0 -25 -10.5t-11 -25.5v0q0 -15 11 -25.5t25 -10.5h312v-312q0 -14 10.5 -25t25.5 -11v0q15 0 25.5 11t10.5 25v312h318q15 0 25.5 10.5t10.5 25.5v0q0 15 -10.5 25.5
t-25.5 10.5z" />
<glyph glyph-name="infocirlce" unicode="&#xe628;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM509 712q15 0 25.5 -11t10.5 -25.5t-10.5 -25t-25.5 -10.5t-25.5 10.5t-10.5 25t10.5 25.5t25.5 11zM666 154
q0 -15 -10.5 -25.5t-25.5 -10.5h-85h-72h-85q-15 0 -25.5 10.5t-10.5 25.5v0q0 15 10.5 25.5t25.5 10.5h85v314h-60q-15 0 -25.5 11t-10.5 25v0q0 15 10.5 25.5t25.5 10.5h60h36v0q15 0 25.5 -10.5t10.5 -25.5v-350h85q15 0 25.5 -10.5t10.5 -25.5v0z" />
<glyph glyph-name="infocirlceo" unicode="&#xe629;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM823 73q-61 -61 -140 -94q-81 -35 -171 -35t-171 34q-79 34 -140 95t-94 140q-35 81 -35 171t34 171
q34 79 95 140t140 94q81 35 171 35t171 -34q79 -34 140 -95t94 -140q35 -81 35 -171t-34 -171q-34 -79 -95 -140zM630 190h-85v350q0 15 -10.5 25.5t-25.5 10.5v0h-36h-60q-15 0 -25.5 -10.5t-10.5 -25.5v0q0 -14 10.5 -25t25.5 -11h60v-314h-85q-15 0 -25.5 -10.5
t-10.5 -25.5v0q0 -15 10.5 -25.5t25.5 -10.5h85h72h85q15 0 25.5 10.5t10.5 25.5v0q0 15 -10.5 25.5t-25.5 10.5zM509 676zM473 675.5q0 14.5 10.5 25.5t25.5 11t25.5 -11t10.5 -25.5t-10.5 -25t-25.5 -10.5t-25.5 10.5t-10.5 25z" />
<glyph glyph-name="info" unicode="&#xe62a;"
d="M660 136h-85v404q0 15 -10.5 25.5t-25.5 10.5v0h-36h-60q-15 0 -25.5 -10.5t-10.5 -25.5v0q0 -14 10.5 -25t25.5 -11h60v-368h-85q-15 0 -25.5 -10.5t-10.5 -25.5v0q0 -15 10.5 -25.5t25.5 -10.5h85h72h85q15 0 25.5 10.5t10.5 25.5v0q0 15 -10.5 25.5t-25.5 10.5z
M539 676zM503 675.5q0 14.5 10.5 25.5t25.5 11t25.5 -11t10.5 -25.5t-10.5 -25t-25.5 -10.5t-25.5 10.5t-10.5 25z" />
<glyph glyph-name="exclamation" unicode="&#xe62b;"
d="M512 193q-17 0 -28.5 11.5t-11.5 28.5v495q0 17 11.5 28.5t28.5 11.5t28.5 -11.5t11.5 -28.5v-495q0 -17 -11.5 -28.5t-28.5 -11.5zM512 83zM467 83q0 19 13 32t32 13t32 -13t13 -32t-13 -32t-32 -13t-32 13t-13 32z" />
<glyph glyph-name="exclamationcircle" unicode="&#xe62c;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM472 665q0 17 11.5 28.5t28.5 11.5t28.5 -11.5t11.5 -28.5v-369q0 -17 -11.5 -28.5t-28.5 -11.5t-28.5 11.5
t-11.5 28.5v369zM512 102q-19 0 -32 13t-13 32t13 32t32 13t32 -13t13 -32t-13 -32t-32 -13z" />
<glyph glyph-name="exclamationcircleo" unicode="&#xe62d;"
d="M512 824q90 0 171 -34q79 -34 140 -95t94 -140q35 -81 35 -171t-34 -171q-34 -79 -95 -140t-140 -94q-81 -35 -171 -35t-171 34q-79 34 -140 95t-94 140q-35 81 -35 171t34 171q34 79 95 140t140 94q81 35 171 35zM512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257
t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5v0zM512 256q-17 0 -28.5 11.5t-11.5 28.5v369q0 17 11.5 28.5t28.5 11.5t28.5 -11.5t11.5 -28.5v-369q0 -17 -11.5 -28.5t-28.5 -11.5zM512 147zM467 147q0 19 13 32
t32 13t32 -13t13 -32t-13 -32t-32 -13t-32 13t-13 32z" />
<glyph glyph-name="closecircle" unicode="&#xe62e;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM717 229q11 -10 11 -25t-10.5 -25.5t-25.5 -10.5t-26 10l-154 155l-154 -155q-11 -10 -26 -10t-25.5 10.5
t-10.5 25.5t11 25l154 155l-154 155q-11 10 -11 25t10.5 25.5t25.5 10.5t26 -10l154 -155l154 155q11 10 26 10t25.5 -10.5t10.5 -25t-11 -25.5l-154 -155z" />
<glyph glyph-name="closecircleo" unicode="&#xe62f;"
d="M717.5 589.5q-10.5 10.5 -25.5 10.5t-26 -10l-154 -155l-154 155q-11 10 -26 10t-25.5 -10.5t-10.5 -25.5t11 -25l154 -155l-154 -155q-11 -10 -11 -25t10.5 -25.5t25.5 -10.5t26 10l154 155l154 -155q11 -10 26 -10t25.5 10.5t10.5 25t-11 25.5l-154 155l154 155
q11 10 11 25t-10.5 25.5zM512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM823 73q-61 -61 -140 -94q-81 -35 -171 -35t-171 34q-79 34 -140 95t-94 140
q-35 81 -35 171t34 171q34 79 95 140t140 94q81 35 171 35t171 -34q79 -34 140 -95t94 -140q35 -81 35 -171t-34 -171q-34 -79 -95 -140z" />
<glyph glyph-name="checkcircle" unicode="&#xe630;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM772 540l-359 -361v0l-1 -1q-3 -3 -8 -6q-8 -5 -18 -5q-21 0 -31 18l-109 191q-8 13 -4 27t17 21.5t27.5 3.5
t21.5 -17l86 -149l327 328q11 11 26 11t25.5 -10.5t10.5 -25.5t-11 -25z" />
<glyph glyph-name="checkcircleo" unicode="&#xe631;"
d="M721 590l-327 -328l-86 149q-7 13 -21.5 17t-27.5 -3.5t-17 -21.5t4 -27l109 -191q10 -18 31 -18q10 0 18 5q5 3 8 6l1 1l359 360q11 11 11 26t-10.5 25.5t-25.5 10.5t-26 -11zM512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5
t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM823 73q-61 -61 -140 -94q-81 -35 -171 -35t-171 34q-79 34 -140 95t-94 140q-35 81 -35 171t34 171q34 79 95 140t140 94q81 35 171 35t171 -34q79 -34 140 -95t94 -140q35 -81 35 -171t-34 -171
q-34 -79 -95 -140z" />
<glyph glyph-name="check" unicode="&#xe632;"
d="M328 96q-3 0 -5 1q-20 2 -30 20l-159 278q-8 15 -4 31t18.5 24t30.5 3.5t25 -18.5l133 -233l491 492q11 12 28 12t28.5 -11.5t11.5 -28.5t-12 -28l-526 -528l-2 -2q-11 -12 -28 -12z" />
<glyph glyph-name="close" unicode="&#xe633;"
d="M568 381l254 255q12 11 12 27.5t-11.5 28t-28 11.5t-27.5 -12l-255 -254l-255 254q-11 12 -27.5 12t-28 -11.5t-11.5 -28t12 -27.5l254 -255l-254 -255q-12 -11 -12 -27.5t11.5 -28t28 -11.5t27.5 12l255 255l255 -255q11 -12 27.5 -12t28 11.5t11.5 28t-12 27.5z" />
<glyph glyph-name="customerservice" unicode="&#xe634;"
d="M838 579q-6 26 -18 52q-25 59 -72 105q-46 45 -107 70q-63 26 -131 26t-131 -26q-60 -25 -107 -70.5t-72 -104.5q-11 -25 -18 -53q-24 -8 -45 -23q-22 -16 -38 -38q-35 -47 -35 -106q0 -72 51 -123q37 -37 87 -48q4 -1 8 -1q15 0 25 11q10 10 10 25l-1 227q0 107 77 183
q78 76 188.5 76t188.5 -76t78 -183v-236q0 -107 -78 -183q-31 -31 -71 -50q1 11 1 22q-1 46 -34 79t-79 35h-3q-48 0 -82 -34.5t-34 -82.5q0 -47 33.5 -81t80.5 -35v0h2v0h2h1v0v0q66 1 126 26t107 70.5t73 104.5q22 53 26 111q35 13 62 40q51 51 51 123q0 58 -34 104.5
t-88 63.5zM82 355q1 -3 3 -7q-2 5 -3 7zM92 333q2 -4 5 -9q-4 6 -5 9zM160 332l-3 3l3 -3l2 -2zM173 332q-4 3 -7 6q-31 31 -31 73q0 29 14 53q9 17 24 29v-161zM181 316q-1 0 -2 0.5t-1 1.5q1 -1 3 -2v0zM188 571v0q1 5 4 13q-2 -7 -4 -13zM204 248l-10 2q9 -2 10 -2h2h-2z
M210 248h-1h1v0zM237 274v1l-1 227l1 -227v-1zM307 756q7 5 10 7q-6 -4 -10 -7zM382 799q-30 -13 -58 -31q28 18 58 31q1 0 2.5 0.5t2.5 0.5q-3 0 -5 -1zM442 761l2 0.5t3 0.5h2zM742 730q-45 44 -104 69q-1 0 -2.5 0.5t-2.5 0.5q1 0 2.5 -0.5t2.5 -0.5q59 -25 104 -69l6 -6
zM754 718q4 -4 9 -10q-5 6 -9 10zM765 706q2 -3 8 -10q-4 4 -8 10zM404 52v0v3v-3zM512 161h3h-3v0zM544.5 21q-12.5 -13 -30.5 -14h-2q-19 0 -32 13.5t-13 31.5q0 19 13 32.5t32 13.5t32 -13.5t13 -32t-12.5 -31.5zM565 44v8v3v-1v-2v-8zM615 19l1 3l-1 -3q1 1 2.5 1.5
t2.5 0.5q-2 -1 -5 -2zM742 38l-6 -6q1 1 3.5 3t2.5 3l6 6q-3 -4 -6 -6zM784 266v-14v14v236v6v-3v-3v-236zM813 140q-3 -7 -7 -14q4 7 7 14q0 1 1 2.5t1 2.5q-1 -3 -2 -5zM813 628q-3 7 -7 14q4 -7 7 -14q1 -2 3 -7q-1 3 -3 7zM831 572q0 3 -1 7q0 -1 0.5 -3t0.5 -4v0z
M839 510q7 -3 12 -7q-5 4 -12 7v0zM864 332q-11 -11 -25 -18v0q14 7 25 18q0 1 1 1q0 1 1 1q-1 0 -1 -1q-1 0 -1 -1zM858 338q-5 -5 -11 -10v168q17 -13 27 -30q15 -25 15 -55q0 -42 -31 -73zM945 460l-2 6q1 -2 2 -6zM935 485q1 -1 3 -6q-1 1 -1.5 3.5t-1.5 2.5zM943 356
q0 2 2 7q-1 -2 -2 -7z" />
<glyph glyph-name="creditcard" unicode="&#xe635;"
d="M952 766h-880q-30 0 -51 -21t-21 -51v-120v-96v-405q0 -29 21 -50.5t51 -21.5h880q30 0 51 21.5t21 50.5v405v96v120q0 30 -21 51t-51 21zM952 73h-880v405h880v-405zM72 574v120h880v-120h-880zM237 192v0q18 0 31 13t13 31v0q0 18 -13 31t-31 13v0q-18 0 -31 -13
t-13 -31v0q0 -18 13 -31t31 -13zM404 192v0q18 0 31 13t13 31v0q0 18 -13 31t-31 13v0q-19 0 -31.5 -13t-12.5 -31v0q0 -18 12.5 -31t31.5 -13z" />
<glyph glyph-name="codesquareo" unicode="&#xe636;"
d="M888 832h-752q-30 0 -51 -21t-21 -51v-753q0 -29 21 -50.5t51 -21.5h753q29 0 50.5 21.5t21.5 50.5v753q0 30 -21.5 51t-51.5 21zM888 7h-752v753h752v-753zM203.5 357.5q10.5 -10.5 25.5 -10.5t25 11l140 141q11 10 11 25t-10 26l-141 142q-10 10 -25 10t-25.5 -10.5
t-10.5 -25t10 -25.5l115 -117l-115 -115q-10 -11 -10 -26t10.5 -25.5zM383 384q0 -15 10.5 -25.5t24.5 -10.5l199 -1h1q14 0 25 10.5t11 25.5t-11 25.5t-25 10.5l-199 1v0q-15 0 -25.5 -10.5t-10.5 -25.5z" />
<glyph glyph-name="book" unicode="&#xe637;"
d="M822 832h-259h-72h-121h-72h-94q-29 0 -50.5 -21t-21.5 -51v-753q0 -29 21.5 -50.5t50.5 -21.5h619q29 0 50.5 21.5t21.5 50.5v753q0 30 -21.5 51t-51.5 21zM491 760v-209l-9 8l-33 34q-8 7 -18 7t-17 -7l-44 -44v211h121zM298 760v-277q0 -15 10 -25t25 -10v0
q37 0 63 25l35 35l35 -34q25 -25 60 -26h1q15 0 25.5 10t10.5 25v277h260v-624h-618v624h93zM204 7v57h618v-57h-618z" />
<glyph glyph-name="barschart" unicode="&#xe638;"
d="M203 730v-696q0 -15 -10.5 -25.5t-25.5 -10.5v0q-15 0 -25.5 10.5t-10.5 25.5v696q0 15 10.5 25.5t25.5 10.5v0q15 0 25.5 -10.5t10.5 -25.5zM167 70h694q15 0 25.5 -10.5t10.5 -25.5v0q0 -15 -10.5 -25.5t-25.5 -10.5h-694q-15 0 -25.5 10.5t-10.5 25.5v0
q0 15 10.5 25.5t25.5 10.5zM394 537v-371q0 -15 -10.5 -25.5t-25.5 -10.5v0q-15 0 -25.5 10.5t-10.5 25.5v371q0 15 10.5 25.5t25.5 10.5v0q15 0 25.5 -10.5t10.5 -25.5zM777 667v-501q0 -15 -10.5 -25.5t-25.5 -10.5v0q-15 0 -25.5 10.5t-10.5 25.5v501q0 15 10.5 25.5
t25.5 10.5v0q15 0 25.5 -10.5t10.5 -25.5zM585 411v-245q0 -15 -10.5 -25.5t-25.5 -10.5v0q-15 0 -25.5 10.5t-10.5 25.5v245q0 15 10.5 25.5t25.5 10.5v0q14 0 25 -10.5t11 -25.5z" />
<glyph glyph-name="bars" unicode="&#xe639;"
d="M187 639zM124 639q0 26 18.5 44.5t44.5 18.5t44.5 -18.5t18.5 -44.5t-18.5 -44.5t-44.5 -18.5t-44.5 18.5t-18.5 44.5zM856 610h-498q-15 0 -25.5 10.5t-10.5 25.5v0q0 15 10.5 25.5t25.5 10.5h498q15 0 25.5 -10.5t10.5 -25.5v0q0 -15 -10.5 -25.5t-25.5 -10.5zM187 384
zM124 384q0 26 18.5 44.5t44.5 18.5t44.5 -18.5t18.5 -44.5t-18.5 -44.5t-44.5 -18.5t-44.5 18.5t-18.5 44.5zM856 355h-498q-15 0 -25.5 10.5t-10.5 25.5v0q0 15 10.5 25.5t25.5 10.5h498q15 0 25.5 -10.5t10.5 -25.5v0q0 -15 -10.5 -25.5t-25.5 -10.5zM187 129zM124 129
q0 26 18.5 44.5t44.5 18.5t44.5 -18.5t18.5 -44.5t-18.5 -44.5t-44.5 -18.5t-44.5 18.5t-18.5 44.5zM856 100h-498q-15 0 -25.5 10.5t-10.5 25.5v0q0 15 10.5 25.5t25.5 10.5h498q15 0 25.5 -10.5t10.5 -25.5v0q0 -15 -10.5 -25.5t-25.5 -10.5z" />
<glyph glyph-name="question" unicode="&#xe63a;"
d="M644 633q-61 64 -152 64q-84 0 -143.5 -59.5t-59.5 -143.5q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5q0 54 38.5 92.5t92.5 38.5h1q59 0 99 -42q35 -37 32 -85q-1 -18 -4 -29t-21 -37.5t-54 -62.5q-43 -43 -66.5 -77t-27.5 -72q-2 -15 7.5 -26.5t24.5 -12.5h4
q14 0 24 9t12 23q3 35 73 105q61 61 79.5 98t20.5 78q5 79 -52 139zM486 80zM443 80q0 18 12.5 30.5t30.5 12.5t30.5 -12.5t12.5 -30.5t-12.5 -30.5t-30.5 -12.5t-30.5 12.5t-12.5 30.5z" />
<glyph glyph-name="questioncircle" unicode="&#xe63b;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM505.5 83q-17.5 0 -30.5 13t-13 31t13 30.5t30.5 12.5t30.5 -12.5t13 -30.5t-13 -31t-30.5 -13zM691 505
q-2 -38 -19.5 -70.5t-67.5 -83.5q-59 -58 -61 -87q-2 -13 -12 -22.5t-24 -9.5h-4q-15 2 -24.5 13.5t-7.5 26.5q3 33 23.5 63t58.5 67q30 30 45.5 52t18 31t2.5 24q2 39 -26 69q-33 34 -81 34v0q-45 0 -76.5 -31.5t-31.5 -75.5q0 -15 -10.5 -25.5t-25.5 -10.5t-25.5 10.5
t-10.5 25.5q0 74 52.5 126.5t126.5 52.5q80 1 134 -56q50 -53 46 -123z" />
<glyph glyph-name="questioncircleo" unicode="&#xe63c;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM823 73q-61 -61 -140 -94q-81 -35 -171 -35t-171 34q-79 34 -140 95t-94 140q-35 81 -35 171t34 171
q34 79 95 140t140 94q81 35 171 35t171 -34q79 -34 140 -95t94 -140q35 -81 35 -171t-34 -171q-34 -79 -95 -140zM546 372zM507 232h-4q-15 2 -24.5 13.5t-7.5 26.5q3 33 23.5 63t58.5 67q30 30 45.5 52t18 31.5t2.5 23.5q2 39 -26 69q-33 35 -81 35v0q-45 0 -76.5 -32
t-31.5 -76q0 -15 -10.5 -25.5t-25.5 -10.5t-25.5 10.5t-10.5 25.5q0 74 52.5 126.5t126.5 53.5q80 0 134 -57q50 -53 46 -123q-2 -37 -19.5 -70t-67.5 -84q-59 -58 -61 -86q-2 -14 -12 -23.5t-24 -9.5zM506 127zM462 127q0 18 13 30.5t30.5 12.5t30.5 -12.5t13 -30.5
t-13 -30.5t-30.5 -12.5t-30.5 12.5t-13 30.5z" />
<glyph glyph-name="pause" unicode="&#xe63d;"
d="M326 704v0q-15 0 -25.5 -11t-10.5 -25v-568q0 -14 10.5 -25t25.5 -11v0q15 0 25 11t9 25v568q1 14 -9 25t-25 11zM698 704v0q-14 0 -25 -11t-11 -25v-568q0 -14 11 -25t25 -11v0q15 0 25.5 11t10.5 25v568q0 14 -10.5 25t-25.5 11z" />
<glyph glyph-name="pausecircle" unicode="&#xe63e;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM393 228q0 -15 -10.5 -25.5t-25.5 -10.5v0q-15 0 -25.5 10.5t-10.5 25.5v312q0 15 10.5 25.5t25.5 10.5v0
q15 0 25.5 -10.5t10.5 -25.5v-312zM703 228q0 -15 -10.5 -25.5t-25.5 -10.5v0q-15 0 -25.5 10.5t-10.5 25.5v312q0 15 10.5 25.5t25.5 10.5v0q15 0 25.5 -10.5t10.5 -25.5v-312z" />
<glyph glyph-name="pausecircleo" unicode="&#xe63f;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM823 73q-61 -61 -140 -94q-81 -35 -171 -35t-171 34q-79 34 -140 95t-94 140q-35 81 -35 171t34 171
q34 79 95 140t140 94q81 35 171 35t171 -34q79 -34 140 -95t94 -140q35 -81 35 -171t-34 -171q-34 -79 -95 -140zM357 576v0q-15 0 -25.5 -10.5t-10.5 -25.5v-312q0 -15 10.5 -25.5t25.5 -10.5v0q15 0 25.5 10.5t10.5 25.5v312q0 15 -10.5 25.5t-25.5 10.5zM667 576v0
q-15 0 -25.5 -10.5t-10.5 -25.5v-312q0 -15 10.5 -25.5t25.5 -10.5v0q15 0 25.5 10.5t10.5 25.5v312q0 15 -10.5 25.5t-25.5 10.5z" />
<glyph glyph-name="clockcircle" unicode="&#xe640;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM769 356q0 -15 -10.5 -25.5t-25.5 -10.5h-185v0q-30 0 -51 21t-21 51v0v240q0 15 10.5 25.5t25.5 10.5v0
q15 0 25.5 -10.5t10.5 -25.5v-240h185q15 0 25.5 -10.5t10.5 -25.5v0z" />
<glyph glyph-name="clockcircleo" unicode="&#xe641;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM823 73q-61 -61 -140 -94q-81 -35 -171 -35t-171 34q-79 34 -140 95t-94 140q-35 81 -35 171t34 171
q34 79 95 140t140 94q81 35 171 35t171 -34q79 -34 140 -95t94 -140q35 -81 35 -171t-34 -171q-34 -79 -95 -140zM733 392h-185v240q0 15 -10.5 25.5t-25.5 10.5v0q-15 0 -25.5 -10.5t-10.5 -25.5v-240v0q0 -30 21 -51t51 -21v0h185q15 0 25.5 10.5t10.5 25.5v0
q0 15 -10.5 25.5t-25.5 10.5z" />
<glyph glyph-name="swap" unicode="&#xe642;"
d="M194 481q-1 0 -1 0.5t-0.5 0.5h-0.5h-0.5h-0.5h-0.5h-0.5v0h-1h-0.5h-0.5v0l-0.5 0.5l-0.5 0.5h-0.5h-0.5h-0.5h-0.5h-1l-1 1v0v0h-0.5h-0.5l-0.5 0.5l-0.5 0.5h-0.5h-0.5h-1v1h-0.5h-0.5l-0.5 0.5l-0.5 0.5h-0.5h-0.5v0.5v0.5h-1l-1 1v0l-0.5 0.5l-0.5 0.5h-1q-1 2 -2 3
q-1 0 -1 0.5v0.5v0l-1 1v1h-1v1v0l-0.5 0.5l-0.5 0.5v0v0.5t-0.5 0.5h-0.5v1l-0.5 0.5l-0.5 0.5v1v0v0.5t-0.5 0.5h-0.5v0.5v0.5q0 1 -0.5 1t-0.5 0.5v1v0.5v0v0v0.5v0.5v0.5v0.5l-1 1v0.5v0.5v0.5v0.5v0v0.5v0.5v1v0v1v4v1v0.5v0.5v0.5v0.5v0.5v0.5v0.5v0.5v0l1 1v0.5v0.5
v0.5v0.5v0v0.5v0.5v0q1 1 1 1.5v0.5v0.5v0.5l0.5 0.5l0.5 0.5v0v0.5v0.5l0.5 0.5l0.5 0.5v0.5t0.5 1l0.5 0.5v0v0v0.5t0.5 0.5t0.5 0.5v0.5l0.5 0.5l0.5 0.5q0 1 1 1v0v1h1l0.5 0.5l0.5 0.5l178 178q10 11 25 11t25 -11v0q11 -11 11 -25.5t-11 -25.5l-116 -116h545
q15 0 25.5 -10.5t10.5 -25.5v0q0 -15 -10.5 -25.5t-25.5 -10.5h-631v0h-2h-0.5h-0.5zM830 287q1 0 1 -0.5t0.5 -0.5h0.5h0.5h0.5h0.5h0.5v0v0h2v0v0l0.5 -0.5l0.5 -0.5h0.5h0.5h0.5h0.5h1v-1h1v0h0.5h0.5l0.5 -0.5l0.5 -0.5h0.5h0.5h1v-1h0.5h0.5l0.5 -0.5l0.5 -0.5h0.5h0.5
v-0.5v-0.5h1l1 -1l0.5 -0.5l0.5 -0.5v0h1q1 -2 2 -3q1 0 1 -0.5v-0.5v0l1 -1v-1h1v-1h0.5t0.5 -0.5v-0.5v0v-0.5t0.5 -0.5t0.5 -0.5v-0.5l0.5 -0.5l0.5 -0.5v-0.5v-0.5v-0.5t0.5 -0.5h0.5v-0.5v-0.5v-1l0.5 -0.5t0.5 -1v-0.5v0v-0.5v-0.5v0v-0.5v-0.5l1 -1v-0.5v-0.5v-0.5
v-0.5v0v-0.5v-0.5v-1v0v-1v-4v-1v-0.5v-1v-0.5v0v-0.5v-0.5v-0.5v-0.5v0l-1 -1v-0.5v-0.5v-0.5v-0.5v0v-0.5v-0.5l-1 -1v-0.5v-0.5v-0.5v-0.5l-0.5 -0.5l-0.5 -0.5v0v-0.5v-0.5l-0.5 -0.5l-0.5 -0.5v-0.5t-0.5 -1l-0.5 -0.5v0v0v-0.5t-0.5 -0.5t-0.5 -0.5v-0.5l-1 -1v0
q0 -1 -0.5 -1h-0.5v-1h-1l-0.5 -0.5t-0.5 -1.5l-177 -177q-11 -11 -26 -11t-25 11v0q-11 10 -11 25t11 26l116 116h-545q-14 0 -25 10.5t-11 25.5v0q0 15 11 25.5t25 10.5h632v0h1h1z" />
<glyph glyph-name="swapleft" unicode="&#xe643;"
d="M164 320h-1l-0.5 0.5l-0.5 0.5h-0.5h-0.5h-0.5h-0.5v0h-1h-1v0v0l-0.5 0.5l-0.5 0.5h-0.5h-0.5h-0.5h-0.5h-1l-1 1v0v0h-0.5h-0.5l-0.5 0.5l-0.5 0.5h-0.5h-0.5h-1v1h-0.5h-0.5l-0.5 0.5l-0.5 0.5h-0.5h-0.5v0.5v0.5h-1l-1 1v0l-0.5 0.5l-0.5 0.5h-1q-1 2 -2 3
q-1 0 -1 0.5v0.5v0l-1 1v1h-1v1v0l-0.5 0.5l-0.5 0.5v0v0.5t-0.5 0.5h-0.5v1l-0.5 0.5l-0.5 0.5v1v0v0.5t-0.5 0.5h-0.5v0.5v0.5q0 1 -0.5 1t-0.5 0.5v1v0.5v0v0.5v0.5v0v0.5v0.5l-1 1v0.5v0.5v0.5v0.5v0v0.5v0.5v1v1v0v4v1v0.5v0.5v0.5v0.5v0.5v0.5v0.5v0.5v0l1 1v0.5v0.5
v0.5v0.5v0v0.5v0.5v1q1 0 1 0.5v0.5v0.5v0.5l0.5 0.5l0.5 0.5v0v1v0l0.5 0.5l0.5 0.5v1l0.5 0.5l0.5 0.5v0v0v0.5t0.5 0.5t0.5 0.5v0.5l0.5 0.5l0.5 0.5q0 1 0.5 1h0.5v1h1l0.5 0.5t0.5 1.5l178 177q10 11 25 11t25 -11v0q11 -11 11 -25.5t-11 -25.5l-116 -116h545
q15 0 25.5 -10.5t10.5 -25.5v0q0 -15 -10.5 -25.5t-25.5 -10.5h-631v0h-2h-1z" />
<glyph glyph-name="swapright" unicode="&#xe644;"
d="M830 320h1l0.5 0.5l0.5 0.5h0.5h0.5h0.5h0.5v0v0h2v0v0l0.5 0.5l0.5 0.5h0.5h0.5h0.5h0.5h1v1h1v0h0.5h0.5l0.5 0.5l0.5 0.5h0.5h0.5h1v1h0.5h0.5l0.5 0.5l0.5 0.5h0.5h0.5v0.5v0.5h1l1 1v0.5t0.5 0.5h0.5h1q1 2 2 3q1 0 1 0.5v0.5v0l1 1v1h1v1h0.5t0.5 0.5v0.5v0v0.5
t0.5 0.5t0.5 0.5v0.5l0.5 0.5l0.5 0.5v0.5v0.5v0.5t0.5 0.5h0.5v0.5v0.5v1l0.5 0.5t0.5 1v0.5v0v0v0.5v0.5v0.5v0.5l1 1v0.5v0.5v0.5v0.5v0v0.5v0.5v1v1v0v4v1v0.5v0.5v0.5v0.5v0.5v0.5v0.5v0.5v0l-1 1v0.5v0.5v0.5v0.5v0v0.5v0.5l-1 1v0.5v0.5v0.5v0.5l-0.5 0.5l-0.5 0.5v0
v0.5v0.5l-0.5 0.5l-0.5 0.5v0.5t-0.5 1l-0.5 0.5v0v0l-0.5 0.5l-0.5 0.5v0.5v0.5l-0.5 0.5l-0.5 0.5q0 1 -1 1v0l-0.5 0.5l-0.5 0.5l-0.5 0.5t-0.5 1.5l-177 177q-11 11 -26 11t-25 -11v0q-11 -10 -11 -25t11 -26l116 -116h-545q-14 0 -25 -10.5t-11 -25.5v0q0 -15 11 -25.5
t25 -10.5h632v0h1h0.5h0.5z" />
<glyph glyph-name="plussquareo" unicode="&#xe645;"
d="M888 760v0v0v-753v0h-752v0v753v0h752zM888 832h-752q-30 0 -51 -21t-21 -51v-753q0 -29 21 -50.5t51 -21.5h753q29 0 50.5 21.5t21.5 50.5v753q0 30 -21.5 51t-51.5 21v0zM732 420h-184v183q0 15 -10.5 25.5t-25.5 10.5v0q-14 0 -25 -10.5t-11 -25.5v-183h-184
q-15 0 -25.5 -11t-10.5 -25v0q0 -15 10.5 -25.5t25.5 -10.5h184v-183q0 -15 11 -25.5t25 -10.5v0q15 0 25.5 10.5t10.5 25.5v183h184q15 0 25.5 10.5t10.5 25.5v0q0 14 -10.5 25t-25.5 11z" />
<glyph glyph-name="frown" unicode="&#xe646;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM254 454q-25 0 -42.5 17.5t-17.5 42t17.5 42.5t42.5 18t42.5 -18t17.5 -42.5t-17.5 -42t-42.5 -17.5zM640 130
q-15 0 -25.5 11t-10.5 25q0 39 -27 66t-65 27t-65 -27t-27 -66q0 -14 -10.5 -25t-25.5 -11t-25.5 11t-10.5 25q0 68 48 116.5t116 48.5t116 -48.5t48 -116.5q0 -14 -10.5 -25t-25.5 -11zM769.5 454q-24.5 0 -42 17.5t-17.5 42t17.5 42.5t42 18t42.5 -18t18 -42.5t-18 -42
t-42.5 -17.5z" />
<glyph glyph-name="menufold" unicode="&#xe658;"
d="M97 695h828q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5h-828q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5zM923 450h-565q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h565q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5zM925 72h-825
q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h825q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5zM195 281q11 -10 25 -10q15 0 26 11q10 10 10 25t-10 25l-96 94l94 88q11 11 11.5 26t-10 25.5t-25.5 11t-25 -9.5l-121 -114q-12 -11 -12 -26t11 -26z" />
<glyph glyph-name="mail" unicode="&#xe659;"
d="M886 768h-753q-30 0 -51 -21t-21 -51v-626q0 -30 21 -51t51 -21h753q30 0 51 21t21 51v626q0 30 -21 51t-51 21zM809 696l-268 -224l-2 -1l-1 -2q-11 -11 -26 -11h-1q-15 0 -25 11l-2 1l-274 226h599zM886 70h-753v0v597l303 -250q31 -31 76 -31v0q45 0 76 32l298 249
v-597v0z" />
<glyph glyph-name="link" unicode="&#xe65b;"
d="M542 230l-179 -179q-39 -38 -93 -38t-92 38q-39 39 -39 93t39 93l178 179q11 10 11 25t-10.5 25.5t-25.5 10.5t-25 -11l-179 -178q-60 -60 -60 -144t59.5 -143.5t143.5 -59.5t144 59l179 179q10 11 10 26t-10.5 25.5t-25.5 10.5t-25 -11zM899.5 773.5
q-59.5 59.5 -143.5 59.5t-144 -60l-179 -179q-10 -10 -10 -25t10.5 -25.5t25.5 -10.5t25 10l179 179q39 39 93 39t92.5 -38.5t38.5 -93t-39 -92.5l-178 -179q-11 -10 -11 -25t10.5 -25.5t25.5 -10.5t26 10l179 179q59 60 59 144t-59.5 143.5zM486 308l102 102q11 10 11 25
t-10.5 25.5t-25.5 10.5t-25 -11l-102 -102q-11 -10 -11 -25t10.5 -25.5t25.5 -10.5t25 11z" />
<glyph glyph-name="areachart" unicode="&#xe65c;"
d="M923 -64h-824q-15 0 -25.5 10.5t-10.5 25.5v825q0 15 10.5 25.5t25.5 10.5t25.5 -10.5t10.5 -25.5v-789h788q15 0 25.5 -10.5t10.5 -25.5t-10.5 -25.5t-25.5 -10.5zM192 96l117 209q4 7 12 9.5t16 -0.5l111 -52l118 171q11 15 27 7l110 -56l160 251q7 11 19.5 7.5
t12.5 -16.5v-520q0 -16 -11.5 -27.5t-27.5 -11.5h-646q-11 0 -17 9.5t-1 19.5z" />
<glyph glyph-name="linechart" unicode="&#xe65d;"
d="M923 -64h-824q-15 0 -25.5 10.5t-10.5 25.5v825q0 15 10.5 25.5t25.5 10.5t25.5 -10.5t10.5 -25.5v-789h788q15 0 25.5 -10.5t10.5 -25.5t-10.5 -25.5t-25.5 -10.5zM385 153q-19 0 -30 16l-157 250q-8 13 -5 27.5t15.5 22.5t27 5t22.5 -15l112 -182l46 177q4 16 19 23
l182 88q13 6 26 2.5t21 -15.5l91 -148l134 403q5 14 18 21t27 2t21 -18t2 -27l-158 -477q-7 -22 -30 -24.5t-35 16.5l-115 186l-137 -66l-62 -240q-6 -23 -29 -26q-3 -1 -6 -1z" />
<glyph glyph-name="home" unicode="&#xe65e;"
d="M932 454l-372 358q-20 18 -48 18t-48 -18l-372 -358q-11 -10 -12 -25t9 -26v0q10 -11 25 -12t26 9l372 358l372 -358q11 -10 26 -9t25 12v0q10 11 9 26t-12 25zM833 321v0q-15 0 -25.5 -10.5t-10.5 -25.5v-277h-143v240q0 30 -21 51t-51 21h-140q-30 0 -51 -21t-21 -51
v-240h-143v277q0 15 -10.5 25.5t-25.5 10.5v0q-15 0 -25.5 -10.5t-10.5 -25.5v-277q0 -30 21 -51t51 -21h570q30 0 51 21t21 51v277q0 15 -10.5 25.5t-25.5 10.5zM442 248h140v-240h-140v240z" />
<glyph glyph-name="laptop" unicode="&#xe65f;"
d="M887 760v0v0v-559v0l-752 -1v0v560v0h752zM887 832h-752q-30 0 -51 -21t-21 -51v-559q0 -30 21 -51t51 -21h752q30 0 51 21t21 51v559q0 30 -21 51t-51 21v0zM923 -16h-824q-15 0 -25.5 10.5t-10.5 25.5v0q0 15 10.5 25.5t25.5 10.5h824q15 0 25.5 -10.5t10.5 -25.5v0
q0 -15 -10.5 -25.5t-25.5 -10.5z" />
<glyph glyph-name="star" unicode="&#xe660;"
d="M956 497.5q-8 23.5 -26.5 39t-42.5 19.5l-205 31l-92 195q-11 24 -33 37q-21 13 -45 13t-45 -13q-22 -13 -33 -37l-92 -195l-205 -31q-24 -4 -42.5 -19.5t-26.5 -39t-2.5 -47t22.5 -41.5l151 -154l-36 -218q-6 -40 20 -70.5t66 -30.5q22 0 42 11l181 100l181 -100
q20 -11 42 -11q40 0 66 30.5t20 70.5l-36 218l151 154q17 18 22.5 41.5t-2.5 47z" />
<glyph glyph-name="staro" unicode="&#xe661;"
d="M512 760q9 0 13 -9l105 -222q3 -7 11 -9l235 -35q9 -2 12 -10.5t-4 -14.5l-171 -176q-5 -5 -4 -12l41 -247q1 -7 -3.5 -12t-11.5 -5q-4 0 -7 2l-209 115q-3 2 -7 2t-7 -2l-209 -115q-3 -2 -7 -2q-7 0 -11.5 5t-3.5 12l41 247q1 7 -4 12l-171 176q-7 6 -4 14.5t12 9.5
l235 36q8 1 11 9l105 222q4 9 13 9zM512 832q-24 0 -45 -13q-22 -13 -33 -37l-92 -195l-205 -31q-24 -4 -42.5 -19.5t-26.5 -39t-2.5 -47t22.5 -41.5l151 -154l-36 -218q-6 -40 20 -70.5t66 -30.5q22 0 42 11l181 100l181 -100q20 -11 42 -11q40 0 66 30.5t20 70.5l-36 218
l151 154q17 18 22.5 41.5t-2.5 47t-26.5 39t-42.5 19.5l-205 31l-92 195q-11 24 -33 37q-21 13 -45 13v0z" />
<glyph glyph-name="filter" unicode="&#xe663;"
d="M890.5 719.5q-9.5 23.5 -30.5 37t-46 13.5h-602q-25 0 -46 -13.5t-30.5 -37t-4.5 -48t22 -42.5l273 -263v-262q0 -15 11 -25l125 -129q10 -11 26 -11q6 0 13 2q23 9 23 34v393l248 261q18 18 23 42.5t-4.5 48zM821 680l-259 -272q-10 -10 -10 -25v-322l-54 58v262
q0 15 -10 25l-284 274q-5 5 -2 11.5t10 6.5h602q7 0 9.5 -6.5t-2.5 -11.5z" />
<glyph glyph-name="meho" unicode="&#xe666;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM254 454q-25 0 -42.5 17.5t-17.5 42t17.5 42.5t42.5 18t42.5 -18t17.5 -42.5t-17.5 -42t-42.5 -17.5zM643 118
h-264q-15 0 -25.5 10.5t-10.5 25.5t10.5 25.5t25.5 10.5h264q15 0 25.5 -10.5t10.5 -25.5t-10.5 -25.5t-25.5 -10.5zM769.5 454q-24.5 0 -42 17.5t-17.5 42t17.5 42.5t42 18t42.5 -18t18 -42.5t-18 -42t-42.5 -17.5z" />
<glyph glyph-name="meh" unicode="&#xe667;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM823 73q-61 -61 -140 -94q-81 -35 -171 -35t-171 34q-79 34 -140 95t-94 140q-35 81 -35 171t34 171
q34 79 95 140t140 94q81 35 171 35t171 -34q79 -34 140 -95t94 -140q35 -81 35 -171t-34 -171q-34 -79 -95 -140zM254 514zM194 513.5q0 24.5 17.5 42.5t42.5 18t42.5 -18t17.5 -42.5t-17.5 -42t-42.5 -17.5t-42.5 17.5t-17.5 42zM770 514zM710 513.5q0 24.5 17.5 42.5
t42 18t42.5 -18t18 -42.5t-18 -42t-42.5 -17.5t-42 17.5t-17.5 42zM643 190h-264q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h264q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5z" />
<glyph glyph-name="shoppingcart" unicode="&#xe668;"
d="M923 194h-596l30 61l497 1q13 0 22.5 8t11.5 20l69 386q3 16 -7.5 28t-26.5 12l-632 3l-5 25q-3 12 -13 20t-22 8h-155q-14 0 -24.5 -10.5t-10.5 -25t10.5 -25t24.5 -10.5h126l24 -112l58 -281l-75 -122q-13 -18 -3 -37t32 -19h63q-21 -28 -21 -62q0 -43 30 -73t72.5 -30
t72.5 30t30 73q0 34 -20 62h161q-21 -28 -21 -62q0 -43 30 -73t72.5 -30t72.5 30t30 73q0 34 -20 62h113q15 0 25 10t10 24.5t-10 25t-25 10.5zM306 643l576 -2l-57 -316l-452 -1zM403 30q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5t22 -9.5t9 -22.5t-9 -22.5t-22 -9.5z
M728 30q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5t22 -9.5t9 -22.5t-9 -22.5t-22 -9.5z" />
<glyph glyph-name="save" unicode="&#xe669;"
d="M650 768h-450q-30 0 -51 -21t-21 -51v-623q0 -30 21 -51t51 -21h623q30 0 51 21t21 51v450zM329 696h217v-206q0 -15 -10.5 -25.5t-25.5 -10.5h-145q-15 0 -25.5 10.5t-10.5 25.5v206zM823 73h-623v623h57v-206q0 -45 31.5 -76.5t76.5 -31.5h145q44 0 76 32t32 76v206h2
l203 -203v-420v0zM469 526q15 0 25.5 10.5t10.5 25.5v43q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5v-43q0 -15 10.5 -25.5t25.5 -10.5z" />
<glyph glyph-name="user" unicode="&#xe66a;"
d="M819 103q-25 60 -71 106t-106 71q-20 9 -42 15q61 20 107 66q81 81 81 195t-81 194.5t-195 80.5t-194.5 -80.5t-80.5 -194.5t80 -195q46 -46 107 -66q-23 -6 -42 -15q-60 -25 -106 -71t-71 -106q-26 -62 -26 -130q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5
q0 108 76.5 185t185 77t185 -76.5t76.5 -185.5q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5q-1 68 -27 130zM309 556q0 84 59.5 143.5t143.5 59.5t143.5 -59.5t59.5 -143.5t-59.5 -144t-143.5 -60t-143.5 60t-59.5 144z" />
<glyph glyph-name="videocamera" unicode="&#xe66b;"
d="M1010 573q-11 10 -26 10q-9 0 -18 -5l-126 -67v188q0 29 -20.5 50t-50.5 21h-698q-29 0 -50 -21t-21 -50v-630q0 -29 21 -50t50 -21h698q30 0 50.5 21t20.5 50v203l123 -79q10 -6 22 -6q13 0 25 9q14 12 14 31v316q0 18 -14 30zM945 477v-178l-103 66v57zM761 667v-566
q0 -10 -6.5 -17t-16.5 -7h-636q-9 0 -16 7t-7 17v566q0 10 7 17t16 7h636q10 0 16.5 -7t6.5 -17z" />
<glyph glyph-name="totop" unicode="&#xe66c;"
d="M920 74h-816q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h816q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5zM365.5 576q14.5 0 25.5 10l85 85v-449q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v449l85 -85q10 -10 25 -10t25.5 10.5t10.5 25.5
t-10 25l-146 146q-11 11 -26 11t-25 -11l-147 -146q-10 -11 -10 -25.5t10.5 -25t25 -10.5z" />
<glyph glyph-name="team" unicode="&#xe66d;"
d="M839 409q-30 30 -67 47q44 23 72 64q35 51 35 113q0 84 -59 142.5t-142 58.5q-65 0 -117 -36q-45 -33 -67 -83q-60 64 -147 64q-84 0 -143 -59t-59 -142q0 -62 35 -113q28 -41 73 -65q-38 -17 -68 -47q-67 -67 -67 -161v-165q0 -37 26.5 -64t64.5 -27h276q27 0 49.5 15.5
t33.5 40.5h248q37 0 64 26.5t27 63.5v165q-1 95 -68 162zM586 725q38 38 92 38t92 -38t38 -91.5t-38 -92t-92 -38.5t-92 38t-38 92t38 92zM216 578q0 54 38 92t92 38t92 -38t38 -92t-38 -92t-92 -38t-92 38t-38 92zM504 27q0 -8 -6 -13.5t-14 -5.5h-276q-8 0 -13.5 5.5
t-5.5 13.5v165q0 65 46 111t111 46t112 -46l1 -1v-1q45 -46 45 -109v-165zM486 372q-21 17 -46 28q62 33 90 96q24 -25 54 -40q-38 -17 -68 -47q-17 -17 -30 -37zM835 82q0 -8 -5.5 -13.5t-13.5 -5.5h-241v129q0 69 -38 126q12 23 29 40q47 47 112 47t111 -46.5t46 -111.5
v-165z" />
<glyph glyph-name="sharealt" unicode="&#xe671;"
d="M814 233q-38 0 -70.5 -18t-53.5 -49l-236 168q6 24 6 48q0 39 -15 75l257 130q45 -51 112 -51q61 0 104.5 43.5t43.5 104.5t-43.5 104.5t-104.5 43.5t-104.5 -43.5t-43.5 -104.5q0 -17 4 -33l-264 -133q-59 62 -144 62q-82 0 -140 -58t-58 -140t58 -140t140 -58
q49 0 91.5 22.5t69.5 60.5l243 -172v-10q0 -61 43.5 -104.5t104.5 -43.5t104.5 43.5t43.5 104.5t-43.5 104.5t-104.5 43.5zM814 760q31 0 53.5 -22.5t22.5 -54t-22.5 -53.5t-53.5 -22t-53.5 22t-22.5 53.5t22.5 54t53.5 22.5zM262 256q-52 0 -89 37t-37 89t37 89t89 37
t89 -37t37 -89t-37 -89t-89 -37zM814 9q-31 0 -53.5 22t-22.5 53.5t22.5 54t53.5 22.5t53.5 -22.5t22.5 -54t-22.5 -53.5t-53.5 -22z" />
<glyph glyph-name="setting" unicode="&#xe672;"
d="M962 456l-4 24l-73 25q-10 30 -24 58l34 69l-14 19q-43 60 -102 103l-20 14l-69 -35q-28 14 -58 24l-24 73l-24 4q-39 6 -72 6t-72 -6l-24 -4l-25 -73q-30 -10 -57 -24l-69 35l-20 -15q-59 -43 -102 -102l-14 -20l34 -69q-14 -28 -24 -57l-73 -25l-4 -24q-6 -39 -6 -72
t6 -72l4 -24l73 -25q10 -30 24 -57l-34 -69l14 -20q22 -30 47 -55q23 -23 55 -47l20 -14l69 34q28 -14 57 -24l25 -73l24 -4q39 -6 72 -6t72 6l24 4l25 73q29 10 57 24l69 -35l20 15q32 23 55 47q24 23 47 55l14 20l-34 69q14 28 24 58l73 24l4 24q6 39 6 72t-6 72zM896 385
v-1q0 -19 -2 -42l-36 -11l-31 -11l-10 -32q-8 -27 -21 -52l-16 -29l32 -63q-14 -17 -28 -31v-1q-14 -14 -32 -27l-62 31l-29 -15q-26 -13 -54 -22l-31 -10l-10 -31l-12 -35q-21 -3 -42 -3q-19 0 -42 3l-11 35l-11 31l-31 10q-28 9 -53 22l-29 15l-30 -15l-33 -16
q-17 13 -31 28q-15 14 -28 31l31 62l-15 29q-14 27 -22 53l-10 32l-66 22q-3 21 -3 42q0 19 3 42l66 22l10 31q8 27 22 53l15 30l-15 29l-16 33q26 33 59 59l62 -31l30 15q25 14 53 22l31 10l10 31l12 36q23 2 42 2q20 0 42 -2l22 -67l31 -9q28 -9 54 -22l29 -16l62 32
q33 -27 60 -60l-32 -62l15 -29q14 -26 23 -53l9 -32l31 -10l36 -12q3 -22 2 -41zM512 558q-72 0 -123 -51t-51 -123t51 -123t123 -51t123 51t51 123t-51 123t-123 51zM584 312q-30 -30 -72 -30t-72 30t-30 72t30 72t72.5 30t72 -30t29.5 -72t-30 -72z" />
<glyph glyph-name="picture" unicode="&#xe674;"
d="M886 768h-752q-30 0 -51 -21.5t-21 -50.5v-626q0 -29 21 -50.5t51 -21.5h752q30 0 51 21.5t21 50.5v626q0 30 -21 51t-51 21zM886 70v0h-752v0v213l186 190l217 -270q9 -10 22.5 -11.5t24.5 5.5l161 109l141 -67v-169zM886 330l-118 48q-21 16 -42 2l-156 -105l-222 275
q-10 12 -26 12t-27 -11l-161 -165v310v0h752v0v-366zM696 622q-42 0 -71.5 -29.5t-29.5 -71.5t29.5 -71.5t71.5 -29.5t71.5 29.5t29.5 71.5t-29.5 71.5t-71.5 29.5zM696 492q-12 0 -20.5 8.5t-8.5 20.5t8.5 20.5t20.5 8.5t20.5 -8.5t8.5 -20.5t-8.5 -20.5t-20.5 -8.5z" />
<glyph glyph-name="phone" unicode="&#xe675;"
d="M914 733q-66 101 -128 101q-36 0 -64 -28q-48 -48 -77 -93q-44 -68 -29 -115q4 -15 17.5 -31t44.5 -47v0q32 -32 38 -41q10 -14 -19 -60q-27 -43 -99 -118q-61 -58 -99 -85q-48 -35 -71 -35q-5 0 -8 2q-9 7 -41 38q-32 32 -47.5 45t-30.5 17q-12 4 -25 4q-43 0 -100 -40
q-40 -27 -82 -70q-33 -32 -28 -73q6 -57 100 -119q78 -50 176 -50q101 0 210.5 53.5t206.5 151.5q68 68 117 144q48 76 70 153q49 170 -32 296zM878 457q-20 -67 -63 -135q-43 -69 -106 -132q-44 -44 -92 -80q-47 -34 -95 -58q-47 -22 -93 -34q-45 -12 -87 -12
q-77 0 -137 39q-35 23 -52 40q-16 16 -17 27q-1 7 8 15q39 39 72 62q39 27 60 27q2 0 3 -1q5 -2 12 -9q11 -9 38 -35q35 -36 49 -46l2 -1q21 -14 48 -14q24 0 52 12q27 11 61 36q41 30 106 91l1 1l2 2q76 80 107 129q16 25 24 47q7 20 8 37q2 31 -15 55q-10 14 -44 48l-2 2
q-26 26 -35 37q-7 9 -9 13q-4 16 21 55q24 37 67 80v0q8 8 14 8q10 0 26 -15q18 -17 42 -54q31 -48 38 -106q6 -62 -14 -131z" />
<glyph glyph-name="paperclip" unicode="&#xe676;"
d="M885 629q-73 72 -177 72v0q-49 0 -94 -18q-46 -18 -82 -53l-233 -231q-42 -41 -41.5 -99.5t42 -100t100.5 -41.5h1q59 0 100 41l205 202q10 10 10 25t-10 25q-11 10 -25.5 10t-25.5 -10l-204 -202q-21 -21 -50 -21h-1q-30 1 -50 21q-21 21 -21 50.5t20 49.5l233 231
q52 50 126 50v0q74 0 126.5 -51.5t52.5 -124.5t-52 -124l-247 -245q-76 -75 -186 -75v0q-110 0 -187 76.5t-77.5 184.5t76.5 184l319 316q10 10 10 24.5t-10 25.5q-11 10 -25.5 10t-25.5 -10l-319 -316q-47 -47 -73 -109q-24 -60 -24 -125t25 -125q25 -62 73 -110
q48 -47 111 -72q60 -25 127 -25v0q66 0 126 24q63 25 110 72l248 245q35 35 54 81q18 45 18 93q0 103 -73 175z" />
<glyph glyph-name="notification" unicode="&#xe677;"
d="M922 518h-57v18q0 20 -14 34.5t-34 14.5h-172q-12 24 -33 24q-70 0 -145 22.5t-132 54.5t-103 63.5t-72 54t-25 22.5q-10 6 -22 6q-19 0 -33 -13.5t-14 -33.5v-801q0 -20 14 -34t33 -14q13 0 24 7q4 6 12.5 15t35 36t55.5 52t73.5 55t89 51.5t101 36.5t111.5 15
q19 0 30 22h4q2 -74 -25 -171q-6 -20 1.5 -39.5t24.5 -31.5q16 -10 35 -10q22 0 40 15q84 69 105 169q7 34 6 68q4 5 10 14q19 29 19 45v23h57q15 0 25.5 10.5t10.5 25.5v138q0 15 -10.5 25.5t-25.5 10.5zM584 275q-92 -6 -186 -46q-84 -36 -167 -98q-48 -37 -93 -81v679
q50 -39 104 -73q83 -51 165 -81q91 -33 177 -37v-2v-7v-253v-1zM793 291q-6 -10 -14 -21q-5 -3 -8 -7q-11 -13 -8 -30v0q4 -27 -3 -60q-13 -62 -59 -109q29 116 18 202q-2 14 -12 23t-24 9h-25v30q0 4 -2 9v176h137v-222zM886 380h-21v66h21v-66z" />
<glyph glyph-name="menuunfold" unicode="&#xe679;"
d="M925 695h-828q-15 0 -25.5 10.5t-10.5 25.5t10.5 25.5t25.5 10.5h828q15 0 25.5 -10.5t10.5 -25.5t-10.5 -25.5t-25.5 -10.5zM99 450h565q15 0 25.5 -10.5t10.5 -25.5t-10.5 -25.5t-25.5 -10.5h-565q-15 0 -25.5 10.5t-10.5 25.5t10.5 25.5t25.5 10.5zM97 72h825
q15 0 25.5 -10.5t10.5 -25.5t-10.5 -25.5t-25.5 -10.5h-825q-15 0 -25.5 10.5t-10.5 25.5t10.5 25.5t25.5 10.5zM827 281q-11 -10 -26 -10t-25 11q-11 10 -11 25t11 25l96 94l-94 88q-11 11 -11.5 26t9.5 25.5t25 11t26 -9.5l121 -114q11 -11 11 -26t-11 -26z" />
<glyph glyph-name="inbox" unicode="&#xe67a;"
d="M885 450v0l-112 286q-4 12 -14 19.5t-23 7.5h-455q-13 0 -23 -8t-14 -20l-105 -282v-1v0q-2 -8 -1 -15v-5v-366q0 -25 17.5 -43t42.5 -18h628q25 0 43 18t18 43v366q0 3 -1 4q1 7 -1 14zM589 493v-16q0 -34 -21.5 -54.5t-55.5 -20.5t-55 20.5t-21 54.5l-1 16h-205l79 193
h399l82 -193h-201zM214 416h158q18 -43 55 -67t85 -24q52 0 90 27q34 24 51 64h157v-334h-596v334z" />
<glyph glyph-name="lock" unicode="&#xe67b;"
d="M801 596q-24 60 -67 106q-43 45 -100 71q-58 26 -122 26t-122 -26q-56 -26 -99.5 -71.5t-67.5 -105.5q-25 -61 -25 -128v-436q0 -26 18 -45t43 -19h505q26 0 44 19t18 45v385v17v34q0 67 -25 128zM414 714h1l1 1q45 21 96 21q50 0 96 -21q45 -20 80 -57t54 -85
q21 -50 21 -105v-27h-502v0v27q0 55 20 105q20 48 55 85t78 56zM763 377v-345v-1h-502v1v345h502zM483 235v-83q0 -12 8.5 -20.5t20.5 -8.5t21 8.5t9 20.5v83q24 16 24 46q0 22 -15.5 38t-38 16t-38.5 -16t-16 -38q0 -30 25 -46z" />
<glyph glyph-name="qrcode" unicode="&#xe67c;"
d="M876 492h-63v-103h-91v103h-153v102h-51v39h51v52h51v63h-51v51h-166v-63h103v-39h-52v-115h52v-90h-52v-52h-90v52h-63v-52h-39v52h-115v-52h-51v-63h63v51h91v-51h51v-102h63v102h102v52h193v-40h-153v-63h51v-102h114v63h-51v39h205v51h39v-51h63v63h-51v103zM466 287
h-63v-166h51v-39h-51v-63h103v-51h63v51h51v63h-63v-51h-39v90h102v64h-154v102zM96 338h63v-63h-63v63zM153 531h154q23 0 40 17t17 40v154q0 23 -17 40t-40 17h-154q-23 0 -40 -17t-17 -40v-154q0 -23 17 -40t40 -17zM159 594v142h142v-142h-142zM198 697h64v-64h-64v64z
M870 799h-154q-23 0 -40 -17t-17 -40v-154q0 -23 17 -40t40 -17h154q24 0 40.5 17t16.5 40v154q0 23 -16.5 40t-40.5 17zM864 736v-142h-142v142h142zM762 697h63v-64h-63v64zM870 236h-154q-23 0 -40 -17t-17 -40v-154q0 -24 17 -40.5t40 -16.5h154q24 0 40.5 16.5
t16.5 40.5v154q0 23 -16.5 40t-40.5 17zM864 173v-142h-142v142h142zM762 133h63v-63h-63v63zM307 236h-154q-23 0 -40 -17t-17 -40v-154q0 -24 17 -40.5t40 -16.5h154q23 0 40 16.5t17 40.5v154q0 23 -17 40t-40 17zM301 173v-142h-142v142h142zM198 133h64v-63h-64v63z
" />
<glyph glyph-name="tags" unicode="&#xe67d;"
d="M910 352l-360 362q-12 13 -30 13h-362q-26 0 -44 -18t-18 -43v-224q0 -17 12 -30l359 -354q18 -18 43.5 -18t44.5 18l28 28l28 -28q19 -18 44 -18t44 18l210 208q18 17 18 42.5t-17 43.5zM280 457q-32 0 -54.5 22.5t-22.5 54.5t22.5 54.5t54.5 22.5t54.5 -22.5
t22.5 -54.5t-22.5 -54.5t-54.5 -22.5v0zM869 306l-210 -207q-2 -2 -4 -2t-4 2l-32 31l142 140q16 16 16 39t-16 39l-319 322h72l355 -358q1 -1 1 -3t-1 -3v0zM869 306zM280 560q-11 0 -18.5 -7.5t-7.5 -18.5t7.5 -18.5t18.5 -7.5t18.5 7.5t7.5 18.5t-7.5 18.5t-18.5 7.5v0z
" />
<glyph glyph-name="tagso" unicode="&#xe67e;"
d="M280 617q-34 0 -58.5 -24t-24.5 -58.5t24.5 -59t58.5 -24.5t58.5 24.5t24.5 59t-24.5 58.5t-58.5 24zM280 514q-8 0 -14 6t-6 14t6 14t14 6t14 -6t6 -14t-6 -14t-14 -6zM910 352l-360 362q-12 13 -30 13h-362q-26 0 -44 -18t-18 -43v-224q0 -17 12 -30l359 -354
q18 -18 43.5 -18t44.5 18l28 28l28 -28q19 -18 44 -18t44 18l210 208q18 17 18 42.5t-17 43.5zM765 266q18 17 18 42.5t-18 43.5l-309 312h56l351 -355l-208 -205l-27 26zM159 451v213h209l351 -355l-140 -138l-37 -36l-31 -31z" />
<glyph glyph-name="cloudo" unicode="&#xe67f;"
d="M702 35h-404q-48 0 -90.5 17t-76.5 50q-34 34 -52 76t-18 90q0 83 53 147q19 23 42 40q0 38 15 71q14 33 41 60l1 1q27 26 61 39.5t72 13.5q12 0 24 -1q24 26 54 46q72 48 159 48q58 0 109 -20q51 -21 92 -61q42 -41 63 -90q14 -34 19 -71q32 -25 55 -60l7 -11v-1
q35 -59 35 -128q0 -52 -19 -99q-20 -46 -58 -83t-84 -56q-47 -18 -100 -18zM263 535q-18 -17 -26 -37v0q-9 -21 -9 -44q0 -7 1 -13l2 -23l-19 -12q-24 -14 -43 -37v0q-36 -44 -36 -101q0 -33 12 -62t36.5 -52.5t53.5 -35.5q29 -11 63 -11h404q39 0 72.5 13.5t61 40
t41.5 59.5t14 71q0 54 -29 98l-2 4q-20 29 -49 49l-14 10l-2 17q-2 34 -15 64q-15 37 -47 67q-31 31 -68 46q-38 15 -82 15q-66 0 -119 -35q-30 -21 -51 -48l-15 -19l-23 6q-14 4 -30 3q-24 0 -44.5 -8t-37.5 -25z" />
<glyph glyph-name="cloud" unicode="&#xe680;"
d="M926 411v1l-1 2q-26 39 -65 66q-3 43 -20 82q-20 48 -59 86t-88 58q-48 19 -103 19q-84 0 -152 -45q-38 -26 -65 -61q-21 5 -42 5q-34 0 -64 -12t-54 -35q-25 -24 -37 -53q-13 -30 -13 -64q0 -10 1 -18q-31 -19 -56 -49q-48 -59 -48 -135q0 -44 16 -83t48 -70t71 -46.5
t84 -15.5h440q50 0 94 17q44 18 79 53q36 35 54 78t18 92q0 70 -38 128z" />
<glyph glyph-name="cloudupload" unicode="&#xe681;"
d="M926 411v1l-1 2q-26 39 -65 66q-3 43 -20 82q-20 48 -59 86t-88 58q-48 19 -103 19q-84 0 -152 -45q-38 -26 -65 -61q-21 5 -42 5q-34 0 -64 -12t-54 -35q-25 -24 -37 -53q-13 -30 -13 -64q0 -10 1 -18q-31 -19 -56 -49q-48 -59 -48 -135q0 -44 16 -83t48 -70t71 -46.5
t84 -15.5h440q50 0 94 17q44 18 79 53q36 35 54 78t18 92q0 70 -38 128zM751.5 367.5q-10.5 -10.5 -25.5 -10.5t-26 11l-68 68v-246q0 -15 -10.5 -25.5t-25.5 -10.5t-25.5 10.5t-10.5 25.5v246l-68 -69q-11 -10 -25.5 -10t-25 10.5t-10.5 25.5t10 25l130 130q10 10 25 10
t25 -10l130 -130q11 -10 11 -25t-10.5 -25.5z" />
<glyph glyph-name="clouddownload" unicode="&#xe682;"
d="M926 411v1l-1 2q-26 39 -65 66q-3 43 -20 82q-20 48 -59 86t-88 58q-48 19 -103 19q-84 0 -152 -45q-38 -26 -65 -61q-21 5 -42 5q-34 0 -64 -12t-54 -35q-25 -24 -37 -53q-13 -30 -13 -64q0 -10 1 -18q-31 -19 -56 -49q-48 -59 -48 -135q0 -44 16 -83t48 -70t71 -46.5
t84 -15.5h440q50 0 94 17q44 18 79 53q36 35 54 78t18 92q0 70 -38 128zM751 294l-129 -130q-11 -10 -26 -10t-25 10l-130 130q-10 10 -10 25t10.5 25.5t25 10.5t25.5 -11l68 -68v246q0 15 10.5 25.5t25.5 10.5t25.5 -10.5t10.5 -25.5v-246l69 68q10 11 25 11t25.5 -10.5
t10.5 -25.5t-11 -25z" />
<glyph glyph-name="clouddownloado" unicode="&#xe683;"
d="M926 411v1l-1 2q-26 39 -65 66q-3 43 -20 82q-20 48 -59 86t-88 58q-48 19 -103 19q-84 0 -152 -45q-38 -26 -65 -61q-21 5 -42 5q-34 0 -64 -12t-54 -35q-25 -24 -37 -53q-13 -30 -13 -64q0 -10 1 -18q-31 -19 -56 -49q-48 -59 -48 -135q0 -44 16 -83t48 -70t71 -46.5
t84 -15.5h440q50 0 94 17q44 18 79 53q36 35 54 78t18 92q0 70 -38 128zM142 203q-11 25 -11 55q0 25 8 47t24 42h1q17 22 40 35l38 22l-6 43q-1 5 -1 13q0 19 7 36v1q7 16 21 29t31 20t36 7q15 0 28 -4l43 -12l26 36q21 27 51 48q50 33 111 33q42 0 77 -15q36 -14 65 -42
q29 -29 43 -63q13 -29 15 -63l1 -31l27 -18q27 -18 46 -45l2 -3q14 -21 21 -43.5t7 -47.5q0 -35 -13 -65t-38.5 -54.5t-55.5 -36.5q-31 -13 -67 -13h-440q-31 0 -57 11q-25 10 -48 31q-21 21 -31 45v0zM466.5 355q14.5 0 25.5 -11l68 -68v246q0 15 10.5 25.5t25.5 10.5
t25.5 -10.5t10.5 -25.5v-246l69 68q10 11 25 11t25.5 -10.5t10.5 -25.5t-11 -25l-129 -130q-11 -10 -26 -10t-25 10l-130 130q-10 10 -10 25t10.5 25.5t25 10.5z" />
<glyph glyph-name="clouduploado" unicode="&#xe684;"
d="M926 411v1l-1 2q-26 39 -65 66q-3 43 -20 82q-20 48 -59 86t-88 58q-48 19 -103 19q-84 0 -152 -45q-38 -26 -65 -61q-21 5 -42 5q-34 0 -64 -12t-54 -35q-25 -24 -37 -53q-13 -30 -13 -64q0 -10 1 -18q-31 -19 -56 -49q-48 -59 -48 -135q0 -44 16 -83t48 -70t71 -46.5
t84 -15.5h440q50 0 94 17q44 18 79 53q36 35 54 78t18 92q0 70 -38 128zM142 203q-11 25 -11 55q0 25 8 47t24 42h1q17 22 40 35l38 22l-6 43q-1 5 -1 13q0 19 7 36v1q7 16 21 29t31 20t36 7q15 0 28 -4l43 -12l26 36q21 27 51 48q50 33 111 33q42 0 77 -15q36 -14 65 -42
q29 -29 43 -63q13 -29 15 -63l1 -31l27 -18q27 -18 46 -45l2 -3q14 -21 21 -43.5t7 -47.5q0 -35 -13 -65t-38.5 -54.5t-55.5 -36.5q-31 -13 -67 -13h-440q-31 0 -57 11q-25 10 -48 31q-21 21 -31 45v0zM466.5 357q14.5 0 25.5 11l68 68v-246q0 -15 10.5 -25.5t25.5 -10.5
t25.5 10.5t10.5 25.5v246l69 -68q10 -11 25 -11t25.5 10.5t10.5 25.5t-11 25l-129 130q-11 10 -26 10t-25 -10l-130 -130q-10 -10 -10 -25t10.5 -25.5t25 -10.5z" />
<glyph glyph-name="enviroment" unicode="&#xe685;"
d="M512 592q-54 0 -92 -38.5t-38 -92.5t38 -92t92 -38t92 38t38 92t-38 92.5t-92 38.5zM871 621q-31 62 -86 109t-125 74q-71 26 -148 26v0q-77 0 -149 -26q-69 -27 -124 -74t-86 -109q-32 -64 -32 -133q0 -97 47 -197q39 -83 109 -164q92 -108 212 -192q10 -7 22.5 -7
t23.5 7q120 85 212 192q70 82 109 164q47 100 47 197q0 69 -32 133zM655 319q-59 -59 -143 -59t-143 59t-59 142.5t59 142.5t143 59t143 -59t59 -142.5t-59 -142.5z" />
<glyph glyph-name="enviromento" unicode="&#xe686;"
d="M512 663q-84 0 -143 -59t-59 -142.5t59 -142.5t143 -59t143 59t59 142.5t-59 142.5t-143 59zM512 331q-54 0 -92 38t-38 92t38 92.5t92 38.5t92 -38.5t38 -92.5t-38 -92t-92 -38zM871 621q-31 62 -86 109t-125 74q-71 26 -148 26v0q-77 0 -149 -26q-69 -27 -124 -74
t-86 -109q-32 -64 -32 -133q0 -97 47 -197q39 -83 109 -164q92 -108 212 -192q10 -7 22.5 -7t23.5 7q120 85 212 192q70 82 109 164q47 100 47 197q0 69 -32 133zM831 487q0 -81 -40 -166q-34 -73 -98 -148q-77 -90 -181 -166q-104 76 -181 166q-63 75 -98 148
q-40 85 -40 167q0 53 24 102q25 48 69 86q45 39 102 61q60 22 124 22v0q64 0 124 -22q57 -22 102 -61q45 -38 69 -86q24 -50 24 -103z" />
<glyph glyph-name="eye" unicode="&#xe687;"
d="M512 487q-42 0 -72 -30t-30 -72t30 -72t72 -30t72 30t30 72t-30 72t-72 30zM963 384q0 14 -21 62q-26 65 -61 109q-57 71 -139 112q-99 50 -230 50t-231 -50q-80 -41 -138 -112q-34 -43 -61 -109q-21 -48 -21 -62v0v0v0v0q0 -14 21 -62q27 -66 61 -109q57 -71 139 -112
q100 -50 230 -50t230 50q81 41 139 112q35 44 62 109q20 48 20 62v0v0v0v0zM512 212q-72 0 -122.5 50.5t-50.5 122t50.5 122.5t122.5 51t122.5 -51t50.5 -122.5t-50.5 -122t-122.5 -50.5z" />
<glyph glyph-name="eyeo" unicode="&#xe688;"
d="M963 384q0 14 -21 62q-26 65 -61 109q-57 71 -139 112q-99 50 -230 50t-231 -50q-80 -41 -138 -112q-34 -43 -61 -109q-21 -48 -21 -62v0v0v0v0q0 -14 21 -62q27 -66 61 -109q57 -71 139 -112q100 -50 230 -50t230 50q81 41 139 112q35 44 62 109q20 48 20 62v0v0v0v0z
M889 384q-25 -77 -64 -126h-1q-46 -59 -114 -93q-85 -42 -198.5 -42t-198.5 42q-67 34 -114 93q-40 49 -65 126q25 77 65 126q47 59 114 93q85 43 199 43t198 -43q67 -33 114 -93q40 -49 65 -126zM512 558q-72 0 -122.5 -50.5t-50.5 -122.5t50.5 -122.5t122.5 -50.5
t122.5 50.5t50.5 122.5t-50.5 122.5t-122.5 50.5zM614 385q0 -42 -30 -72t-72 -30t-72 30t-30 72t30 72t72 30t72 -30t30 -72z" />
<glyph glyph-name="camera" unicode="&#xe689;"
d="M899 659h-168l-94 100h-1q-10 10 -26 10h-196q-16 0 -27 -10v0l-94 -100h-168q-26 0 -44.5 -18.5t-18.5 -44.5v-532q0 -26 18.5 -44.5t44.5 -18.5l774 -1q26 0 44.5 19t18.5 45v532q0 26 -18.5 44.5t-44.5 18.5zM428 696h168l35 -37h-238zM511 164q-72 0 -123 51t-51 123
t51 123t123 51t123 -51t51 -123t-51 -123t-123 -51zM511 440q-42 0 -72 -30t-30 -72.5t30 -72.5t72.5 -30t72.5 30t30 72.5t-30 72.5t-73 30z" />
<glyph glyph-name="camerao" unicode="&#xe68a;"
d="M511 164q72 0 123 51t51 123t-51 123t-123 51t-123 -51t-51 -123t51 -123t123 -51zM439 410q30 30 72.5 30t72.5 -30t30 -72.5t-30 -72.5t-72.5 -30t-72.5 30t-30 72.5t30 72.5zM899 659h-168l-94 100h-1q-10 10 -26 10h-196q-16 0 -27 -10v0l-94 -100h-168
q-26 0 -44.5 -18.5t-18.5 -44.5v-532q0 -26 18.5 -44.5t44.5 -18.5l774 -1q26 0 44.5 19t18.5 45v532q0 26 -18.5 44.5t-44.5 18.5zM428 696h168l35 -37h-238zM881 81h-739v497h739v-497z" />
<glyph glyph-name="windows" unicode="&#xe68b;"
d="M527 27l434 -71v401h-434v-330zM527 758v-329h434v401zM68 429h367v317l-367 -61v-256zM68 99l367 -60v318h-367v-258z" />
<glyph glyph-name="export2" unicode="&#xe690;"
d="M248.5 473q14.5 0 25 10.5t10.5 25.5v203q0 8 5.5 13.5t13.5 5.5h567q8 0 13 -5.5t5 -13.5v-587q0 -7 -5 -12.5t-13 -5.5h-255q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h255q37 0 63.5 26.5t26.5 63.5v587q0 38 -26.5 64t-63.5 26h-567q-38 0 -64 -26
t-26 -64v-203q0 -15 10.5 -25.5t25 -10.5zM622 263q44 66 55 136q2 14 -7 26t-23 14q-3 1 -5 1q-14 0 -24 -9t-12 -22l-3.5 -17.5t-14 -40t-26.5 -50.5q-70 -104 -206 -104h-4q-14 0 -25 -10.5t-11 -25.5v-42l-100 96l101 84v-35q0 -14 10.5 -24.5t25 -10.5t25 10.5
t10.5 24.5v111q0 23 -20 33q-7 3 -16 3q-12 0 -22 -8l-190 -159q-13 -10 -13 -26q-1 -16 11 -27l190 -181q17 -16 38.5 -7t21.5 33v91q152 13 234 136z" />
<glyph glyph-name="export" unicode="&#xe691;"
d="M838 330q-15 0 -25.5 -10.5t-10.5 -25.5v-204q0 -8 -5.5 -13t-12.5 -5h-567q-8 0 -13.5 5t-5.5 13v587q0 8 5.5 13.5t13.5 5.5h254q15 0 25.5 10.5t10.5 25t-10.5 25t-25.5 10.5h-254q-37 0 -63.5 -26t-26.5 -64v-587q0 -37 26.5 -63.5t63.5 -26.5h567q37 0 63.5 26.5
t26.5 63.5v204q0 15 -10.5 25.5t-25.5 10.5zM464 540q-45 -68 -54 -136q-2 -15 7 -26.5t23 -13.5q2 -1 5 -1q13 0 23.5 9t12.5 22q0 5 3 17.5t14 40t27 50.5q70 103 206 104l3 -1q15 0 25.5 10.5t10.5 25.5v42l101 -95l-101 -84v34q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5
t-10.5 -25.5v-111q0 -22 21 -32q7 -3 15 -3q13 0 23 8l190 158q12 11 13 26q0 17 -11 28l-190 181q-17 16 -39 6.5t-22 -32.5v-91q-152 -13 -234 -136z" />
<glyph glyph-name="circledowno" unicode="&#xe693;"
d="M512 895q-104 0 -199 -40.5t-163.5 -109t-109 -163t-40.5 -199t40.5 -199t109 -163t163.5 -109t199 -40.5t198.5 40.5t163 109t109 163t40.5 199t-40.5 199t-109 163t-163 109t-198.5 40.5zM822 73q-61 -61 -139 -94q-82 -35 -171.5 -35t-171.5 35q-79 33 -139.5 94
t-94.5 140q-34 81 -34 170.5t35 171.5q33 79 94 139.5t140 94.5q81 34 170.5 34t171.5 -34q79 -34 139.5 -95t94.5 -139q34 -82 34 -171.5t-34 -171.5q-34 -78 -95 -139zM768 520q-16 0 -28 -12l-229 -229l-228 228q-12 12 -28.5 12t-28 -11.5t-11.5 -28t12 -28.5l256 -255
q11 -12 27.5 -12t28.5 12l257 256q12 12 12 28.5t-12 27.5q-12 12 -28 12z" />
<glyph glyph-name="circledown" unicode="&#xe694;"
d="M512 895q-104 0 -199 -40.5t-163.5 -109t-109 -163t-40.5 -199t40.5 -199t109 -163t163.5 -109t199 -40.5t198.5 40.5t163 109t109 163t40.5 199t-40.5 199t-109 163t-163 109t-198.5 40.5zM796 452l-258 -256q-11 -12 -27 -12q-17 0 -28 12l-256 255q-12 12 -12 28.5
t11.5 28t28 11.5t28.5 -12l227 -228l230 229q12 12 28.5 12t28 -11.5t11.5 -28.5q0 -16 -12 -28z" />
<glyph glyph-name="hdd" unicode="&#xe69a;"
d="M786 765v0q-4 15 -17 24.5t-29 9.5h-462q-16 0 -29 -9.5t-17 -24.5v0q-3 -8 -68 -243q-68 -245 -68 -248v-257q0 -20 14.5 -34.5t34.5 -14.5h733q20 0 34.5 14.5t14.5 34.5l1 265zM864 224v-193h-705v193h705zM861 287h-699l127 449h440zM588 70q13 0 22.5 9.5t9.5 22.5
v51q0 13 -9.5 22.5t-22.5 9.5t-22 -9.5t-9 -22.5v-51q0 -13 9 -22.5t22 -9.5zM691 70q13 0 22.5 9.5t9.5 22.5v51q0 13 -9.5 22.5t-22.5 9.5t-22 -9.5t-9 -22.5v-51q0 -13 9 -22.5t22 -9.5zM794 70q13 0 22 9.5t9 22.5v51q0 13 -9 22.5t-22 9.5t-22.5 -9.5t-9.5 -22.5v-51
q0 -13 9.5 -22.5t22.5 -9.5z" />
<glyph glyph-name="ie" unicode="&#xe69b;"
d="M878 548q24 66 22 118q-3 57 -37 91q-33 33 -111.5 27.5t-173.5 -47.5q-13 1 -27 1q-65 0 -126 -21q-58 -21 -107 -60q-101 -80 -132 -203l-7 -28l17 22q69 89 150 136q-22 -21 -25 -25q-73 -73 -126 -159q-49 -80 -75 -160q-25 -75 -24 -135t28 -88q37 -36 99 -36
q69 0 160 44q78 -39 168 -39q121 0 219 70t137 184l3 8h-213l-1 -3q-21 -38 -58 -60t-80.5 -22t-80.5 22t-57 60q-18 32 -19 69h319h204l1 5q2 20 2 43q0 100 -49 186zM201 222q45 -111 146 -177q-54 -23 -95 -26q-45 -3 -67 20q-23 23 -19 71t35 112zM859 578
q-30 42 -70 75q-39 32 -85 53q108 42 149 1q37 -38 6 -129zM402 423q5 57 48 96t101 39t100.5 -39t48.5 -96h-298z" />
<glyph glyph-name="delete" unicode="&#xe69f;"
d="M178 -50q-1 0 -3 1l1 -0.5t2 -0.5zM170 -46q-3 2 -5 3q2 -1 5 -3zM950.5 692.5q-10.5 10.5 -26.5 10.5h-184v58q0 29 -21 49.5t-50 20.5h-314q-30 0 -50.5 -20.5t-20.5 -49.5v-58h-185q-15 0 -25.5 -10.5t-10.5 -25t10.5 -25t25.5 -10.5h31v-623q0 -29 21 -49.5t50 -20.5
h632q29 0 50 20.5t21 49.5v623h20q15 0 26 10.5t11 25t-10.5 25zM354 760h315v-57h-315v57zM833 9h-632v623h91h541v-623v0zM511.5 512q-14.5 0 -25 -10.5t-10.5 -25.5v-334q0 -15 10.5 -25.5t25 -10.5t25 10.5t10.5 25.5v334q0 15 -10.5 25.5t-25 10.5zM317 512
q-15 0 -25.5 -10.5t-10.5 -25.5v-334q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v334q0 15 -10.5 25.5t-25.5 10.5zM704 512q-15 0 -25.5 -10.5t-10.5 -25.5v-334q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v334q0 15 -10.5 25.5t-25.5 10.5z" />
<glyph glyph-name="enter" unicode="&#xe6a0;"
d="M900 510v192q0 17 -11.5 28.5t-28 11.5t-28.5 -11.5t-12 -28.5v-192q0 -92 -65 -157t-157 -65h-340l113 112q11 12 11 28.5t-11.5 28t-28 11.5t-28.5 -12l-178 -178q-12 -12 -12 -28.5t12 -28.5l183 -183q12 -12 28.5 -12t28.5 11.5t12 28t-12 28.5l-114 114h336
q125 0 213.5 88.5t88.5 213.5z" />
<glyph glyph-name="pushpino" unicode="&#xe6a1;"
d="M303 728q2 -10 1 -20l-1 -36l29 -23l214 -170l30 -24l37 12q44 15 90 15q49 0 95 -16q26 -10 51 -24l-169 -170l-43 -43l-13 -13v0l-169 -170q-27 45 -36 96q-13 72 10 141l12 37l-24 30l-170 214l-23 29l-36 -1h-1.5h-2.5q-8 0 -16 1zM318 831q-14 0 -24 -10l-219 -219
q-11 -11 -9.5 -27t14.5 -24q48 -31 104 -31h6l170 -215q-28 -84 -11.5 -175.5t74.5 -163.5q11 -13 27 -13q14 0 24 10l206 207l223 -223q10 -10 23.5 -10t23 9.5t9.5 23t-10 23.5l-223 223l206 207q11 11 10 26t-13 25q-98 80 -226 80q-57 0 -112 -18l-215 170q2 60 -30 110
q-10 15 -28 15v0z" />
<glyph glyph-name="pushpin" unicode="&#xe6a2;"
d="M949 -7l-223 223l206 207q11 11 10 26t-13 25q-72 58 -163 74t-175 -12l-215 170q2 60 -30 110q-9 13 -25 14.5t-27 -9.5l-219 -219q-11 -11 -9.5 -27t14.5 -24q50 -33 110 -31l170 -215q-28 -84 -11.5 -175.5t74.5 -163.5q10 -12 25 -13t26 10l206 207l223 -223
q10 -10 23.5 -10t23 9.5t9.5 23t-10 23.5z" />
<glyph glyph-name="heart" unicode="&#xe6a3;" horiz-adv-x="1025"
d="M1000 648q-23 56 -66 99q-84 85 -201 85q-64 0 -121.5 -28t-99.5 -79q-42 51 -99.5 79t-121.5 28q-117 0 -201 -86q-43 -43 -66 -99q-25 -59 -24 -122q1 -69 29 -130.5t79 -104.5q5 -4 9 -8q14 -12 113 -102q208 -191 257 -235q11 -9 25 -9t25 9q33 30 181 165
q158 144 196 179q52 43 81 105t29 132q0 64 -24 122z" />
<glyph glyph-name="hearto" unicode="&#xe6a4;" horiz-adv-x="1025"
d="M1000 648q-23 56 -66 99q-84 85 -201 85q-64 0 -121.5 -28t-99.5 -79q-42 51 -99.5 79t-121.5 28q-117 0 -201 -86q-43 -43 -66 -99q-25 -59 -24 -122q1 -69 29 -130.5t79 -104.5q5 -4 9 -8q14 -12 113 -102q208 -191 257 -235q11 -9 25 -9t25 9q33 30 181 165
q158 144 196 179q52 43 81 105t29 132q0 64 -24 122zM568 672q30 40 73.5 61.5t91.5 21.5q85 0 147 -62q32 -32 49 -74q18 -44 18 -93q0 -53 -22 -101q-22 -46 -60 -77l-2 -2q-62 -55 -197 -180q-108 -98 -154 -140q-58 53 -202 184l-48 44q-76 69 -94 85q-1 2 -2 3
q-6 4 -8 7q-39 32 -60 78.5t-21 97.5q-1 49 18 93q17 42 49 74q62 63 147 63q48 0 91.5 -22t73.5 -61q21 -28 56 -28t56 28z" />
<glyph glyph-name="smile-circle" unicode="&#xe6a7;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM254 454q-25 0 -42.5 17.5t-17.5 42t17.5 42.5t42.5 18t42.5 -18t17.5 -42.5t-17.5 -42t-42.5 -17.5zM512 130
q-68 0 -116 48.5t-48 116.5q0 15 10.5 25.5t25.5 10.5t25.5 -10.5t10.5 -25.5q0 -38 27 -65.5t65 -27.5t65 27.5t27 65.5q0 15 10.5 25.5t25.5 10.5t25.5 -10.5t10.5 -25.5q0 -68 -48 -116.5t-116 -48.5zM769.5 454q-24.5 0 -42 17.5t-17.5 42t17.5 42.5t42 18t42.5 -18
t18 -42.5t-18 -42t-42.5 -17.5z" />
<glyph glyph-name="smileo" unicode="&#xe6a8;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM823 73q-61 -61 -140 -94q-81 -35 -171 -35t-171 34q-79 34 -140 95t-94 140q-35 81 -35 171t34 171
q34 79 95 140t140 94q81 35 171 35t171 -34q79 -34 140 -95t94 -140q35 -81 35 -171t-34 -171q-34 -79 -95 -140zM640 331q-15 0 -25.5 -10.5t-10.5 -25.5q0 -38 -27 -65.5t-65 -27.5t-65 27.5t-27 65.5q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5
q0 -68 48 -116.5t116 -48.5t116 48.5t48 116.5q0 15 -10.5 25.5t-25.5 10.5zM254 514zM194 513.5q0 24.5 17.5 42.5t42.5 18t42.5 -18t17.5 -42.5t-17.5 -42t-42.5 -17.5t-42.5 17.5t-17.5 42zM770 514zM710 513.5q0 24.5 17.5 42.5t42 18t42.5 -18t18 -42.5t-18 -42
t-42.5 -17.5t-42 17.5t-17.5 42z" />
<glyph glyph-name="frowno" unicode="&#xe6a9;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM823 73q-61 -61 -140 -94q-81 -35 -171 -35t-171 34q-79 34 -140 95t-94 140q-35 81 -35 171t34 171
q34 79 95 140t140 94q81 35 171 35t171 -34q79 -34 140 -95t94 -140q35 -81 35 -171t-34 -171q-34 -79 -95 -140zM640 130q-15 0 -25.5 11t-10.5 25q0 39 -27 66t-65 27t-65 -27t-27 -66q0 -14 -10.5 -25t-25.5 -11t-25.5 11t-10.5 25q0 68 48 116.5t116 48.5t116 -48.5
t48 -116.5q0 -14 -10.5 -25t-25.5 -11zM254 514zM194 513.5q0 24.5 17.5 42.5t42.5 18t42.5 -18t17.5 -42.5t-17.5 -42t-42.5 -17.5t-42.5 17.5t-17.5 42zM770 514zM710 513.5q0 24.5 17.5 42.5t42 18t42.5 -18t18 -42.5t-18 -42t-42.5 -17.5t-42 17.5t-17.5 42z" />
<glyph glyph-name="calculator" unicode="&#xe6aa;"
d="M857 832h-689q-16 0 -27.5 -11.5t-11.5 -27.5v-818q0 -16 11.5 -27.5t27.5 -11.5h689q16 0 27 11.5t11 27.5v818q0 16 -11 27.5t-27 11.5zM818 14h-612v740h612v-740v0zM324 410h377q16 0 27.5 11.5t11.5 27.5v185q0 16 -11.5 27.5t-27.5 11.5h-377q-16 0 -27.5 -11.5
t-11.5 -27.5v-185q0 -16 11.5 -27.5t27.5 -11.5zM362 595h300v-108h-300v108zM293 189h23v-23q0 -16 11.5 -27.5t27.5 -11.5t27.5 11.5t11.5 27.5v23h23q16 0 27.5 11.5t11.5 27.5t-11.5 27t-27.5 11h-23v24q0 16 -11.5 27t-27.5 11t-27.5 -11t-11.5 -27v-24h-23
q-16 0 -27.5 -11t-11.5 -27t11.5 -27.5t27.5 -11.5zM607 328q-16 0 -27.5 -11t-11.5 -27t11.5 -27.5t27.5 -11.5h124q16 0 27.5 11.5t11.5 27.5t-11.5 27t-27.5 11h-124zM731 162h-124q-16 0 -27.5 -11.5t-11.5 -27.5t11.5 -27.5t27.5 -11.5h124q16 0 27.5 11.5t11.5 27.5
t-11.5 27.5t-27.5 11.5z" />
<glyph glyph-name="chrome" unicode="&#xe6ac;" horiz-adv-x="1025"
d="M258 449l-146 254q71 90 176 141.5t224 51.5q138 0 255.5 -68t185.5 -183h-418q-11 1 -23 1q-90 0 -161 -55.5t-93 -141.5v0zM695 571h294q35 -90 35 -187q0 -103 -40 -197.5t-107.5 -163t-161.5 -109.5t-197 -42l209 363q47 67 47 149q0 110 -79 187v0v0zM326 384
q0 77 54.5 131.5t131.5 54.5t131.5 -54.5t54.5 -131.5t-54.5 -131.5t-131.5 -54.5t-131.5 54.5t-54.5 131.5zM582 131l-146 -253q-122 18 -222 89t-157 181t-57 236q0 135 66 251l209 -362q32 -68 96 -109.5t141 -41.5q36 0 70 9z" />
<glyph glyph-name="github" unicode="&#xe6ad;" horiz-adv-x="1025"
d="M0 371q0 -166 95.5 -298.5t247.5 -185.5q6 -1 10 -1t6.5 1.5t4 3t2 5t0.5 5v6v6.5v88q-37 -4 -66 0.5t-45.5 14t-29 23.5t-17 25.5t-9 24t-5.5 14.5q-9 15 -27 27.5t-27 20t-2 14.5q50 26 113 -66q34 -51 119 -30q10 41 40 70q-116 21 -172 86t-56 158q0 87 55 151
q-22 65 6 137q29 2 65 -11.5t50.5 -23t25.5 -17.5q57 16 128.5 16t129.5 -16q13 9 29 19t49 21.5t61 9.5q27 -71 7 -135q56 -64 56 -151q0 -93 -57 -158.5t-172 -85.5q43 -43 43 -104v-129q0 -1 1 -3q0 -6 0.5 -9t4.5 -6t12 -3q153 52 250.5 185.5t97.5 300.5
q0 104 -40.5 199t-109 163.5t-163.5 109t-199 40.5t-199 -40.5t-163.5 -109t-109 -163.5t-40.5 -199v0z" />
<glyph glyph-name="iconfontdesktop" unicode="&#xe6b4;"
d="M902 766h-779q-23 0 -40 -17t-17 -40v-480q0 -24 17 -40.5t40 -16.5h357v-108h-147q-13 0 -22.5 -9.5t-9.5 -22.5t9.5 -22t22.5 -9h358q13 0 22.5 9t9.5 22t-9.5 22.5t-22.5 9.5h-148v108h359q24 0 40.5 16.5t16.5 40.5v480q0 23 -16.5 40t-40.5 17zM896 703v-468h-767
v468h767z" />
<glyph glyph-name="caretcircleoup" unicode="&#xe6b5;"
d="M512 895q-104 0 -199 -40.5t-163.5 -109t-109 -163.5t-40.5 -199t40.5 -198.5t109 -163t163.5 -109t199 -40.5t198.5 40.5t163 109t109 163t40.5 198.5t-40.5 199t-109 163.5t-163 109t-198.5 40.5zM828 67q-62 -62 -142 -96q-83 -35 -174 -35t-174 35q-81 34 -143 96
t-96 142q-35 83 -35 174t35 175q34 80 96 142t142 96q83 35 174.5 35t174.5 -35q80 -34 142 -96t96 -142q35 -83 35 -174.5t-35 -174.5q-34 -80 -96 -142zM528 559q-7 7 -16 7h-1q-10 0 -16 -7l-229 -244q-10 -11 -4.5 -25t21.5 -14h457q16 0 22 14t-5 25z" />
<glyph glyph-name="upload" unicode="&#xe6b6;"
d="M488 822q10 10 24 10t24 -10l156 -156q10 -10 10 -24.5t-10 -24.5t-24 -10t-25 10l-96 97v-578q0 -14 -10.5 -24t-24.5 -10t-24.5 10t-10.5 24v578l-97 -97q-10 -10 -24 -10t-24 10t-10 24.5t10 24.5zM924.5 256q-14.5 0 -24.5 -10.5t-10 -24.5v-195q0 -9 -6 -15t-15 -6
h-716q-9 0 -15 6t-6 15v195q0 14 -10 24.5t-24.5 10.5t-24.5 -10.5t-10 -24.5v-223q0 -26 18 -44t44 -18h772q26 0 44 18.5t18 43.5v223q0 14 -10 24.5t-24.5 10.5z" />
<glyph glyph-name="download" unicode="&#xe6b7;"
d="M488 112q10 -10 24 -10t24 10l156 156q11 10 11 24t-10.5 24.5t-24.5 10.5t-24 -11l-97 -96v577q0 15 -10.5 25t-24.5 10t-24 -10t-10 -25v-577l-97 97q-11 10 -25 10t-24 -10.5t-10 -24.5t10 -24zM924.5 256q-14.5 0 -24.5 -10.5t-10 -24.5v-195q0 -9 -6 -15t-15 -6
h-716q-9 0 -15 6t-6 15v195q0 14 -10 24.5t-24.5 10.5t-24.5 -10.5t-10 -24.5v-223q0 -26 18 -44t44 -18h772q26 0 44 18.5t18 43.5v223q0 14 -10 24.5t-24.5 10.5z" />
<glyph glyph-name="piechart" unicode="&#xe6b8;"
d="M467 -128q95 0 180 36t150 101l-330 328v465q-95 0 -181.5 -36.5t-149 -99t-99.5 -148.5t-37 -180.5t37 -181t99.5 -148.5t149 -99t181.5 -37v0v0zM531 404h493q0 100 -39 191t-105 157t-157.5 105t-191.5 39v-492v0zM557 339l332 -327q64 64 99.5 148.5t35.5 178.5h-467
v0z" />
<glyph glyph-name="lock1" unicode="&#xe6b9;"
d="M824 614q-26 64 -73 113q-46 50 -107 77q-63 28 -132 28t-132 -28q-61 -27 -108 -76.5t-72 -113.5q-27 -66 -27 -139v-470q0 -29 19.5 -49t46.5 -20h545q28 0 47.5 20t18.5 49v415l1 19v36q0 72 -27 139zM407 741v0l1 1q49 22 104 22q54 0 104 -22q48 -22 86 -62
q38 -39 59 -92t21 -113v-29h-541v0v29q0 59 22 113q21 53 59 92.5t85 60.5zM783 378v-373q0 -1 -1 -1h-540q-1 0 -1 1v373h542zM480 224v-90q0 -13 9.5 -22t22.5 -9t22.5 9t9.5 22v90q27 17 27 49q0 25 -17.5 42t-41.5 17t-41.5 -17t-17.5 -42q0 -32 27 -49z" />
<glyph glyph-name="unlock" unicode="&#xe6ba;"
d="M241 446v30q0 58 22 113q21 52 59 91q38 40 85 61v0l1 1q49 22 104 22q54 0 104 -22q48 -22 86 -61q21 -23 53 -83q10 -20 31 -20h14q14 0 21.5 11.5t2.5 24.5v0q-26 64 -73 113q-46 50 -107 77q-63 28 -132 28t-132 -28q-61 -27 -108 -76.5t-72 -113.5q-27 -66 -27 -139
v-470q0 -29 19.5 -49t46.5 -20h545q28 0 47 20t19 49l1 377q0 26 -19 45t-45 19h-546v0zM783 5q0 -1 -1 -1h-540q-1 0 -1 1v373h542v-373zM480 224v-90q0 -13 9.5 -22t22.5 -9t22.5 9t9.5 22v90q27 17 27 49q0 25 -17.5 42t-41.5 17t-41.5 -17t-17.5 -42q0 -32 27 -49z" />
<glyph glyph-name="windowso" unicode="&#xe6bc;"
d="M527 27l434 -71v401h-434v-330zM599 285h290v-244l-290 47v197zM527 758v-329h434v401zM889 501h-290v196l290 48v-244zM68 429h367v317l-367 -61v-256zM140 624l223 37v-160h-223v123zM68 99l367 -60v318h-367v-258zM140 285h223v-161l-223 36v125z" />
<glyph glyph-name="dotchart" unicode="&#xe6bd;"
d="M923 8h-788v789q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5v-825q0 -15 10.5 -25.5t25.5 -10.5h824q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5zM319 259zM253 259.5q0 27.5 19 46.5t46.5 19t47 -19t19.5 -46.5t-19.5 -47t-47 -19.5t-46.5 19.5t-19 47z
M598 299zM512 299q0 35 25 60t60.5 25t60.5 -25t25 -60t-25 -60t-60.5 -25t-60.5 25t-25 60zM623 514zM563 514q0 25 17.5 42.5t42.5 17.5t42.5 -17.5t17.5 -42.5t-17.5 -42.5t-42.5 -17.5t-42.5 17.5t-17.5 42.5zM850 657zM805 657.5q0 18.5 13 32t32 13.5t32.5 -13.5
t13.5 -32t-13.5 -32t-32.5 -13.5t-32 13.5t-13 32zM863 466zM830 466q0 14 9.5 23.5t23.5 9.5t23.5 -9.5t9.5 -23.5t-9.5 -23.5t-23.5 -9.5t-23.5 9.5t-9.5 23.5z" />
<glyph glyph-name="barchart" unicode="&#xe6be;"
d="M923 -64h-824q-15 0 -25.5 10.5t-10.5 25.5v824q0 15 10.5 25.5t25.5 10.5t25.5 -10.5t10.5 -25.5v-788h788q15 0 25.5 -10.5t10.5 -25.5t-10.5 -25.5t-25.5 -10.5zM264 523q-29 -1 -50 -22t-22 -50q0 -23 11.5 -41t30.5 -28v-285q0 -13 9.5 -22.5t22.5 -9.5v0
q13 0 22.5 9.5t9.5 22.5v285q19 9 30.5 27t11.5 40q0 31 -22.5 53t-53.5 21zM542 641q-30 -1 -51 -22t-21 -50q-1 -23 10.5 -41t31.5 -28v-403q0 -13 9 -22.5t23 -9.5v0q13 0 22.5 9.5t9.5 22.5v403q18 9 30 27t12 40q0 31 -22.5 53t-53.5 21zM895 438q0 31 -22.5 53
t-53.5 21q-29 -1 -50 -22t-22 -50q0 -23 11.5 -41t30.5 -28v-274q0 -13 9.5 -22.5t22.5 -9.5v0q13 0 22.5 9.5t9.5 22.5v274q19 9 30.5 27t11.5 40z" />
<glyph glyph-name="codesquare" unicode="&#xe6bf;"
d="M888 832h-752q-30 0 -51 -21t-21 -51v-753q0 -29 21 -50.5t51 -21.5h753q29 0 50.5 21.5t21.5 50.5v753q0 30 -21.5 51t-51.5 21zM229 347q-15 0 -25.5 10.5t-10.5 25.5t10 26l115 115l-115 117q-10 11 -10 25.5t10.5 25t25.5 10.5t25 -10l141 -142q10 -11 10 -26
t-11 -25l-140 -141q-10 -11 -25 -11zM618 347v0l-199 1q-15 0 -25.5 10.5t-10.5 25.5t10.5 25.5t25.5 10.5v0l199 -1q15 0 25.5 -10.5t10.5 -25.5t-11 -25.5t-25 -10.5z" />
<glyph glyph-name="plussquare" unicode="&#xe6c0;"
d="M888 832h-752q-30 0 -51 -21t-21 -51v-753q0 -29 21 -50.5t51 -21.5h753q29 0 50.5 21.5t21.5 50.5v753q0 30 -21.5 51t-51.5 21zM732 348h-184v-183q0 -15 -10.5 -25.5t-25 -10.5t-25.5 10.5t-11 25.5v183h-184q-15 0 -25.5 10.5t-10.5 25t10.5 25.5t25.5 11h184v183
q0 15 11 25.5t25.5 10.5t25 -10.5t10.5 -25.5v-183h184q15 0 25.5 -11t10.5 -25.5t-10.5 -25t-25.5 -10.5z" />
<glyph glyph-name="minussquare" unicode="&#xe6c1;"
d="M888 832h-752q-30 0 -51 -21t-21 -51v-753q0 -29 21 -50.5t51 -21.5h753q29 0 50.5 21.5t21.5 50.5v753q0 30 -21.5 51t-51.5 21zM768 383q0 -15 -11 -25.5t-25 -10.5h-442q-14 0 -25 10.5t-11 25.5v0q0 15 11 25.5t25 10.5h442q14 0 25 -10.5t11 -25.5v0z" />
<glyph glyph-name="closesquare" unicode="&#xe6c2;"
d="M888 832h-752q-30 0 -51 -21t-21 -51v-753q0 -29 21 -50.5t51 -21.5h753q29 0 50.5 21.5t21.5 50.5v753q0 30 -21.5 51t-51.5 21zM717.5 178.5q-10.5 -10.5 -25.5 -10.5t-26 10l-154 155l-154 -155q-11 -10 -26 -10t-25.5 10.5t-10.5 25.5t11 25l154 155l-154 155
q-11 10 -11 25t10.5 25.5t25.5 10.5t26 -10l154 -155l154 155q11 10 26 10t25.5 -10.5t10.5 -25.5t-11 -25l-154 -155l154 -155q11 -11 11 -25.5t-10.5 -25z" />
<glyph glyph-name="closesquareo" unicode="&#xe6c3;"
d="M717.5 589.5q-10.5 10.5 -25.5 10.5t-26 -10l-154 -155l-154 155q-11 10 -26 10t-25.5 -10.5t-10.5 -25.5t11 -25l154 -155l-154 -155q-11 -10 -11 -25t10.5 -25.5t25.5 -10.5t26 10l154 155l154 -155q11 -10 26 -10t25.5 10.5t10.5 25t-11 25.5l-154 155l154 155
q11 10 11 25t-10.5 25.5zM888 760v0v0v-753v0h-752v0v753v0h752zM888 832h-752q-30 0 -51 -21t-21 -51v-753q0 -29 21 -50.5t51 -21.5h753q29 0 50.5 21.5t21.5 50.5v753q0 30 -21.5 51t-51.5 21v0z" />
<glyph glyph-name="checksquare" unicode="&#xe6c4;"
d="M888 832h-752q-30 0 -51 -21t-21 -51v-753q0 -29 21 -50.5t51 -21.5h753q29 0 50.5 21.5t21.5 50.5v753q0 30 -21.5 51t-51.5 21zM772 539l-359 -360l-1 -1q-3 -3 -8 -6q-8 -5 -18 -5q-21 0 -31 18l-109 191q-8 13 -4 27t17 21.5t27.5 3.5t21.5 -17l86 -149l327 328
q11 11 26 11t25.5 -10.5t10.5 -25.5t-11 -26z" />
<glyph glyph-name="checksquareo" unicode="&#xe6c5;"
d="M721 590l-327 -328l-86 149q-7 13 -21.5 17t-27.5 -3.5t-17 -21.5t4 -27l109 -191q10 -18 31 -18q10 0 18 5q5 3 8 6l1 1l359 360q11 11 11 26t-10.5 25.5t-25.5 10.5t-26 -11zM888 760v0v0v-753v0h-752v0v753v0h752zM888 832h-752q-30 0 -51 -21t-21 -51v-753
q0 -29 21 -50.5t51 -21.5h753q29 0 50.5 21.5t21.5 50.5v753q0 30 -21.5 51t-51.5 21v0z" />
<glyph glyph-name="fastbackward" unicode="&#xe6c6;"
d="M525 414l436 376q18 17 40.5 6.5t22.5 -36.5v-752q0 -26 -22.5 -36.5t-40.5 6.5l-436 377q-13 12 -13 30t13 29zM36 800v0q15 0 25.5 -10.5t10.5 -25.5v-298l377 324q18 17 40.5 6.5t22.5 -36.5v-375v-377q0 -26 -22.5 -36.5t-40.5 6.5l-377 326v-300q0 -15 -10.5 -25.5
t-25.5 -10.5v0q-15 0 -25.5 10.5t-10.5 25.5v760q0 15 10.5 25.5t25.5 10.5z" />
<glyph glyph-name="fastforward" unicode="&#xe6c7;"
d="M499 414l-436 376q-18 17 -40.5 6.5t-22.5 -36.5v-752q0 -26 22.5 -36.5t40.5 6.5l436 378q13 11 13 29t-13 29zM988 800v0q-15 0 -25.5 -10.5t-10.5 -25.5v-298l-377 324q-18 17 -40.5 6.5t-22.5 -36.5v-375v-377q0 -26 22.5 -36.5t40.5 6.5l377 326v-300
q0 -15 10.5 -25.5t25.5 -10.5v0q15 0 25.5 10.5t10.5 25.5v760q0 15 -10.5 25.5t-25.5 10.5z" />
<glyph glyph-name="upsquare" unicode="&#xe6c8;"
d="M888 832h-752q-30 0 -51 -21t-21 -51v-753q0 -29 21 -50.5t51 -21.5h753q29 0 50.5 21.5t21.5 50.5v753q0 30 -21.5 51t-51.5 21zM757.5 277q-10.5 -10 -25.5 -9.5t-25 10.5l-195 208l-195 -208q-10 -10 -25 -10.5t-26 9.5t-11.5 25t10.5 26l221 236q10 11 26 11t26 -11
l221 -236q10 -11 9.5 -26t-11 -25z" />
<glyph glyph-name="downsquare" unicode="&#xe6c9;"
d="M888 832h-752q-30 0 -51 -21t-21 -51v-753q0 -29 21 -50.5t51 -21.5h753q29 0 50.5 21.5t21.5 50.5v753q0 30 -21.5 51t-51.5 21zM759 451l-221 -236q-10 -11 -26 -11t-26 11l-221 236q-11 11 -10.5 26t11.5 25t26 9.5t25 -11.5l195 -207l195 207q10 11 25 11.5
t25.5 -9.5t11 -25t-9.5 -26z" />
<glyph glyph-name="leftsquare" unicode="&#xe6ca;"
d="M888 832h-752q-30 0 -51 -21t-21 -51v-753q0 -29 21 -50.5t51 -21.5h753q29 0 50.5 21.5t21.5 50.5v753q0 30 -21.5 51t-51.5 21zM616 189q11 -10 11.5 -25t-9.5 -25.5t-25 -11t-26 9.5l-236 221q-11 10 -11 26t11 26l236 221q11 11 26 10.5t25 -11.5t9.5 -26t-10.5 -25
l-208 -195z" />
<glyph glyph-name="rightsquare" unicode="&#xe6cb;"
d="M888 832h-752q-30 0 -51 -21t-21 -51v-753q0 -29 21 -50.5t51 -21.5h753q29 0 50.5 21.5t21.5 50.5v753q0 30 -21.5 51t-51.5 21zM694 358l-236 -221q-11 -10 -26 -9.5t-25 11t-9.5 25.5t10.5 25l208 195l-208 195q-10 10 -10.5 25t9.5 26t25 11.5t26 -10.5l236 -221
q11 -10 11 -26t-11 -26z" />
<glyph glyph-name="rightsquareo" unicode="&#xe6cc;"
d="M888 760v0v0v-753v0h-752v0v753v0h752zM888 832h-752q-30 0 -51 -21t-21 -51v-753q0 -29 21 -50.5t51 -21.5h753q29 0 50.5 21.5t21.5 50.5v753q0 30 -21.5 51t-51.5 21v0zM705 384q0 16 -11 26l-236 221q-11 11 -26 10.5t-25 -11.5t-9.5 -26t10.5 -25l208 -195
l-208 -195q-10 -10 -10.5 -25t9.5 -26t25 -11.5t26 10.5l236 221q11 10 11 26z" />
<glyph glyph-name="leftsquareo" unicode="&#xe6cd;"
d="M888 760v0v0v-753v0h-752v0v753v0h752zM888 832h-752q-30 0 -51 -21t-21 -51v-753q0 -29 21 -50.5t51 -21.5h753q29 0 50.5 21.5t21.5 50.5v753q0 30 -21.5 51t-51.5 21v0zM331 358l236 -221q11 -10 26 -9.5t25 11t9.5 25.5t-11.5 25l-207 195l207 195q11 10 11.5 25
t-9.5 26t-25 11.5t-26 -10.5l-236 -221q-11 -10 -11 -26t11 -26z" />
<glyph glyph-name="down-square-o" unicode="&#xe6ce;"
d="M888 760v0v0v-753h-752v753h752zM888 832h-752q-30 0 -51 -21t-21 -51v-753q0 -29 21 -50.5t51 -21.5h753q29 0 50.5 21.5t21.5 50.5v753q0 30 -21.5 51t-51.5 21v0zM538 215l221 236q10 11 9.5 26t-11 25t-25.5 9.5t-25 -11.5l-195 -207l-195 207q-10 11 -25 11.5
t-26 -9.5t-11.5 -25t10.5 -26l221 -236q10 -11 26 -11t26 11z" />
<glyph glyph-name="up-square-o" unicode="&#xe6cf;"
d="M888 760v0v0v-753v0h-752v0v753v0h752zM888 832h-752q-30 0 -51 -21t-21 -51v-753q0 -29 21 -50.5t51 -21.5h753q29 0 50.5 21.5t21.5 50.5v753q0 30 -21.5 51t-51.5 21v0zM512 575q-16 0 -26 -11l-221 -236q-11 -11 -10.5 -26t11.5 -25t26 -9.5t25 10.5l195 208
l195 -208q10 -10 25 -10.5t25.5 9.5t11 25t-9.5 26l-221 236q-10 11 -26 11z" />
<glyph glyph-name="play" unicode="&#xe6d0;"
d="M512 894q-139 0 -256.5 -68.5t-186 -186t-68.5 -256.5t68.5 -256.5t186 -186t256.5 -68.5t256.5 68.5t186 186t68.5 256.5t-68.5 256.5t-186 186t-256.5 68.5zM712 369l-291 -247q-6 -6 -15 -6q-8 0 -14.5 5.5t-6.5 14.5v495q0 8 6.5 13.5t15 5.5t14.5 -6l291 -247
q6 -6 6 -14t-6 -14z" />
<glyph glyph-name="playcircleo" unicode="&#xe6d1;"
d="M512 894q-139 0 -256.5 -68.5t-186 -186t-68.5 -256.5t68.5 -256.5t186 -186t256.5 -68.5t256.5 68.5t186 186t68.5 256.5t-68.5 256.5t-186 186t-256.5 68.5zM822 73q-60 -61 -139 -95q-82 -34 -171 -34t-171 34q-78 34 -139 95q-61 60 -95 139q-34 82 -34 171t35 171
q33 78 94 140q60 60 139 94q82 34 171 34t171 -34q78 -34 139 -95q61 -60 95 -139q34 -82 34 -171t-35 -171q-33 -79 -94 -139zM712 397l-291 247q-6 6 -15 6q-8 0 -14.5 -5.5t-6.5 -13.5v-495q0 -9 6.5 -14t15 -5t14.5 5l291 247q6 6 6 14t-6 14z" />
<glyph glyph-name="tag" unicode="&#xe6d2;"
d="M963 291v3q-1 9 -4 18q-4 10 -10 19q-4 5 -7 8l-479 483q-4 5 -9 8q-12 7 -25 7h-291q-31 0 -53 -22t-22 -52v-298q0 -5 1 -10l0.5 -1l0.5 -1q1 -4 2 -7q1 -1 1 -2q4 -7 10 -13l477 -472q9 -8 18 -13q17 -9 35 -9q15 0 28 6q14 5 25 16l280 277q3 2 5 5q3 3 5 7q2 3 3 5
q2 3 3 5q0 2 1 3q5 14 5 30zM264.5 560q-29.5 0 -50.5 21t-21 50.5t21 50.5t50.5 21t50.5 -21t21 -50.5t-21 -50.5t-50.5 -21z" />
<glyph glyph-name="tago" unicode="&#xe6d3;"
d="M963 291v3q-1 9 -4 18q-4 10 -10 19q-4 5 -7 8l-479 483q-4 5 -9 8q-12 7 -25 7h-291q-31 0 -52.5 -22t-21.5 -52v-298v-10l0.5 -1l0.5 -1q1 -4 2 -7q1 -1 1 -2q4 -7 10 -13l238 -236l239 -236q9 -8 19 -13q16 -9 34 -9q15 0 28 6q14 5 25 16l280 277q3 2 5 5q3 3 5 7
q2 3 3 5q2 3 3 5q0 2 1 3q5 14 5 30zM891 287v0v0v0v0v0h-1v0l-280 -277v0q-1 -1 -2 -1t-1 1h-0.5h-0.5l-239 236l-231 229v288q0 2 2 2h281l471 -476h1v-1v0v0v-1zM264 632zM193 631.5q0 29.5 21 50.5t50.5 21t50.5 -21t21 -50.5t-21 -50.5t-50.5 -21t-50.5 21t-21 50.5z
" />
<glyph glyph-name="addfile" unicode="&#xe910;"
d="M860 128h-156v156q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5v-156h-148q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h148v-148q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v148h156q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5zM875 594
l-278 281q-6 6 -15 11q-2 2 -4 2q-1 1 -3 2q-14 6 -29 6h-346q-30 0 -51 -21t-21 -51v-880q0 -30 21 -51t51 -21h212q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5h-212v880h312v-240q0 -30 21 -51t51 -21h240v-156q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5
v188q0 29 -21 50zM584 584v202l200 -202h-200z" />
<glyph glyph-name="folder1" unicode="&#xe662;"
d="M952 704h-463l-25 78q-7 22 -26 36t-43 14h-323q-30 0 -51 -21t-21 -51v-688q0 -30 21 -51t51 -21h880q30 0 51 21t21 51v560q0 30 -21 51t-51 21zM72 760h323l18 -56h-341v56zM952 72h-880v560h880v-560z" />
<glyph glyph-name="file1" unicode="&#xe664;"
d="M875 594l-278 281q-6 6 -15 11q-2 2 -4 2q-1 1 -3 2q-14 6 -29 6h-346q-30 0 -51 -21t-21 -51v-880q0 -30 21 -51t51 -21h624q30 0 51 21t21 51v600q0 29 -21 50zM784 584h-200v202zM824 -56h-624v880h312v-240q0 -30 21 -51t51 -21h240v-568z" />
<glyph glyph-name="switcher" unicode="&#xe913;"
d="M572 292h-376q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h376q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5zM696 568v-624h-624v624h624zM696 640h-624q-30 0 -51 -21t-21 -51v-624q0 -30 21 -51t51 -21h624q30 0 51 21t21 51v624q0 30 -21 51t-51 21z
M952 896h-592q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h592v-596q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v596q0 30 -21 51t-51 21zM824 768h-660q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h660v-660q0 -15 10.5 -25.5t25.5 -10.5
t25.5 10.5t10.5 25.5v660q0 30 -21 51t-51 21z" />
<glyph glyph-name="addfolder" unicode="&#xe914;"
d="M988 256h-156v156q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5v-156h-148q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h148v-148q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v148h156q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5zM952 704
h-463l-25 78q-7 22 -26 36t-43 14h-323q-30 0 -51 -21t-21 -51v-688q0 -30 21 -51t51 -21h468q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5h-468v560h880v-148q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v148q0 30 -21 51t-51 21zM72 704v56h323l18 -56h-341z
" />
<glyph glyph-name="folderopen" unicode="&#xe699;"
d="M960 512v120q0 30 -21 51t-51 21h-399l-25 78q-7 22 -26 36t-43 14h-323q-30 0 -51 -21t-21 -51v-688q0 -5 1 -11v0v-2v-1l0.5 -0.5l0.5 -0.5v-1v-1.5t0.5 -1l0.5 -0.5v-1q0 -2 1 -3v0q5 -17 18 -29v0q1 0 1.5 -0.5l1 -1t0.5 -1.5q1 0 1 -0.5t0.5 -0.5t1 -0.5t1.5 -0.5
v-0.5v-0.5q1 0 1.5 -0.5l1.5 -1.5v0q15 -10 32 -11l1 -1h3h1h1h2h788q25 0 44.5 15.5t25.5 39.5l92 368q8 31 -11 58t-51 31zM72 760h323l41 -128h452v-120h-724q-25 0 -44.5 -15t-25.5 -39l-22 -89v391zM860 72h-788l92 368h788z" />
<glyph glyph-name="search1" unicode="&#xe670;"
d="M950 -2l-206 205q88 107 88 245q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5q138 0 245 88l206 -206q10 -10 25 -10t26 10q10 11 10 26t-10 26zM569 160q-57 -24 -121 -24t-121 24q-56 24 -99.5 67.5t-66.5 99.5
q-25 57 -25 121t25 121q23 56 66.5 99.5t99.5 67.5q57 24 121 24t121 -24q56 -24 99.5 -67.5t67.5 -99.5q24 -57 24 -121t-24 -121q-24 -56 -67.5 -99.5t-99.5 -67.5z" />
<glyph glyph-name="ellipsis1" unicode="&#xe647;"
d="M128 384q0 -27 18.5 -45.5t45.5 -18.5t45.5 18.5t18.5 45.5t-18.5 45.5t-45.5 18.5t-45.5 -18.5t-18.5 -45.5zM448 384q0 -27 18.5 -45.5t45.5 -18.5t45.5 18.5t18.5 45.5t-18.5 45.5t-45.5 18.5t-45.5 -18.5t-18.5 -45.5zM768 384q0 -27 18.5 -45.5t45.5 -18.5
t45.5 18.5t18.5 45.5t-18.5 45.5t-45.5 18.5t-45.5 -18.5t-18.5 -45.5z" />
<glyph glyph-name="calendar" unicode="&#xe6bb;"
d="M888 768h-120v28q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5v-28h-368v28q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5v-28h-120q-30 0 -51 -21t-21 -51v-688q0 -30 21 -51t51 -21h752q30 0 51 21t21 51v688q0 30 -21 51t-51 21zM136 696h120v-20
q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v20h368v-20q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v20h120v-112h-752v112zM888 8h-752v504h752v-504zM288 384h64q13 0 22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5
t22.5 9.5zM480 384h64q13 0 22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5zM672 384h64q13 0 22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5zM288 190h64q13 0 22.5 -9.5
t9.5 -22.5t-9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5zM480 190h64q13 0 22.5 -9.5t9.5 -22.5t-9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5z" />
<glyph glyph-name="filetext1" unicode="&#xe698;"
d="M875 594l-278 281q-7 6 -15 11q-3 2 -4 2q-1 1 -3 2q-14 6 -29 6h-345q-30 0 -51.5 -21t-21.5 -51v-880q0 -30 21.5 -51t51.5 -21h623q30 0 50.5 21t20.5 51v600q0 30 -20 50zM583 786l201 -202h-201v202zM823 -56h-623v880h311v-240q0 -30 21.5 -51t51.5 -21h239v-568z
M584 412q0 15 -10.5 25.5t-25.5 10.5h-256q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h256q15 0 25.5 10.5t10.5 25.5zM776 252q0 15 -10.5 25.5t-25.5 10.5h-448q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h448q15 0 25.5 10.5t10.5 25.5zM648 92
q0 15 -10.5 25.5t-25.5 10.5h-320q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h320q15 0 25.5 10.5t10.5 25.5z" />
<glyph glyph-name="copy1" unicode="&#xe648;"
d="M875 658l-214 217q-7 6 -15 11q-3 2 -4 2q-1 1 -3 2q-14 6 -29 6h-281q-30 0 -51.5 -21t-21.5 -51v-56h-56q-29 0 -50.5 -21.5t-21.5 -50.5v-752q0 -30 21.5 -51t50.5 -21h496q29 0 50 21t21 51v56h57q30 0 50.5 21t20.5 51v536q0 30 -20 50zM647 786l137 -138h-137v138z
M695 -56h-495v752h56v-624q0 -30 21.5 -51t51.5 -21h366v-56zM823 72h-495v752h247v-176q0 -30 21.5 -51t51.5 -21h175v-504zM640 476q0 15 -10.5 25.5t-25.5 10.5h-184q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h184q15 0 25.5 10.5t10.5 25.5zM768 348
q0 15 -10.5 25.5t-25.5 10.5h-312q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h312q15 0 25.5 10.5t10.5 25.5zM704 220q0 15 -10.5 25.5t-25.5 10.5h-248q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h248q15 0 25.5 10.5t10.5 25.5z" />
<glyph glyph-name="jpgfile1" unicode="&#xe69c;"
d="M875 594l-278 281q-7 6 -15 11q-3 2 -4 2q-1 1 -3 2q-14 6 -29 6h-345q-30 0 -51.5 -21t-21.5 -51v-880q0 -30 21.5 -51t51.5 -21h623q30 0 50.5 21t20.5 51v600q0 30 -20 50zM583 786l201 -202h-201v202zM823 -56h-623v880h311v-240q0 -30 21.5 -51t51.5 -21h239v-568z
M350 200q0 -18 -5.5 -25t-16.5 -7q-15 0 -25 19l-30 -23q20 -34 61 -34q30 0 45.5 18.5t15.5 47.5v123h-45v-119zM501 319h-64v-186h44v62h22q31 0 52 16t21 48q0 60 -75 60zM500 230h-19v53h18q34 0 34 -25q0 -28 -33 -28zM683 239v-36h30v-30q-6 -5 -18 -5q-50 0 -50 58
q0 27 13 42.5t34 15.5q18 0 34 -15l23 29q-24 24 -59 24q-39 0 -65 -26t-26 -71q0 -46 25.5 -70.5t66.5 -24.5q39 0 61 22v87h-69z" />
<glyph glyph-name="pdffile1" unicode="&#xe6b3;"
d="M875 594l-278 281q-7 6 -15 11q-3 2 -4 2q-1 1 -3 2q-14 6 -29 6h-345q-30 0 -51.5 -21t-21.5 -51v-880q0 -30 21.5 -51t51.5 -21h623q30 0 50.5 21t20.5 51v600q0 30 -20 50zM583 786l201 -202h-201v202zM823 -56h-623v880h311v-240q0 -30 21.5 -51t51.5 -21h239v-568z
M333 320h-67v-192h46v64h22q33 0 54.5 16.5t21.5 49.5q0 62 -77 62zM332 228h-20v56h18q35 0 35 -26q0 -30 -33 -30zM498 320h-56v-192h58q44 0 69 24.5t25 72.5t-25.5 71.5t-70.5 23.5zM495 165h-6v118h6q25 0 38.5 -13t13.5 -45q0 -60 -52 -60zM752 282v38h-122v-192h46
v73h65v38h-65v43h76z" />
<glyph glyph-name="exclefile1" unicode="&#xe6b0;"
d="M875 594l-278 281q-7 6 -15 11q-3 2 -4 2q-1 1 -3 2q-14 6 -29 6h-345q-30 0 -51.5 -21t-21.5 -51v-880q0 -30 21.5 -51t51.5 -21h623q30 0 50.5 21t20.5 51v600q0 30 -20 50zM583 786l201 -202h-201v202zM823 -56h-623v880h311v-240q0 -30 21.5 -51t51.5 -21h239v-568z
M460 229l-56 155h86l16 -57q5 -18 14 -53h2q15 29 30 53l33 57h82l-111 -159l60 -162h-86l-19 63q-4 14 -14 54h-2q-14 -25 -31 -54l-39 -63h-82z" />
<glyph glyph-name="pptfile1" unicode="&#xe6b1;"
d="M875 594l-278 281q-7 6 -15 11q-3 2 -4 2q-1 1 -3 2q-14 6 -29 6h-345q-30 0 -51.5 -21t-21.5 -51v-880q0 -30 21.5 -51t51.5 -21h623q30 0 50.5 21t20.5 51v600q0 30 -20 50zM583 786l201 -202h-201v202zM823 -56h-623v880h311v-240q0 -30 21.5 -51t51.5 -21h239v-568z
M538 390h-112l-57 -334h77l19 119h37q55 0 96 28t51 82q10 56 -21 80.5t-90 24.5zM574 285q-9 -49 -65 -49h-33l16 93h32q29 0 41.5 -10t8.5 -34z" />
<glyph glyph-name="unknowfile1" unicode="&#xe6af;"
d="M875 594l-278 281q-7 6 -15 11q-3 2 -4 2q-1 1 -3 2q-14 6 -29 6h-345q-30 0 -51.5 -21t-21.5 -51v-880q0 -30 21.5 -51t51.5 -21h623q30 0 50.5 21t20.5 51v600q0 30 -20 50zM583 786l201 -202h-201v202zM823 -56h-623v880h311v-240q0 -30 21.5 -51t51.5 -21h239v-568z
M510 329q0 18 -11 28t-29 10q-28 0 -58 -29l-55 51q52 59 125 59q56 0 90.5 -28t34.5 -84q0 -21 -10 -40.5t-24 -34t-27.5 -29t-22 -33t-5.5 -39.5h-88q-5 30 6.5 57t28.5 43.5t31 35.5t14 33zM432 62q0 19 12 31t29.5 12t29.5 -12.5t12 -30.5t-12 -30.5t-29.5 -12.5
t-29.5 12.5t-12 30.5z" />
<glyph glyph-name="wordfile1" unicode="&#xe6b2;"
d="M875 594l-278 281q-7 6 -15 11q-3 2 -4 2q-1 1 -3 2q-14 6 -29 6h-345q-30 0 -51.5 -21t-21.5 -51v-880q0 -30 21.5 -51t51.5 -21h623q30 0 50.5 21t20.5 51v600q0 30 -20 50zM583 786l201 -202h-201v202zM823 -56h-623v880h311v-240q0 -30 21.5 -51t51.5 -21h239v-568z
M559 142q-1 14 -1 46v48l-7 136h-60l-55 -136q-21 -57 -34 -94h-2l5 94l5 136h-73l2 -298h88l49 130q3 8 24 70h2q-2 -35 -1 -70l4 -130h90l104 298h-68l-43 -136q-3 -11 -12.5 -43t-15.5 -51h-1z" />
<glyph glyph-name="dingding" unicode="&#xe923;"
d="M913 513q-3 -11 -12 -31v0l-1 -2q-16 -34 -48.5 -90.5t-56.5 -96.5l-24 -40q0 1 -1 1l-27 -47h131l-251 -335l57 228h-103l36 150q-46 -11 -104 -30q-3 -1 -7 -2.5t-19 -2t-32 4t-44.5 20.5t-56.5 42l-5 5l-11.5 11.5t-13.5 17t-9.5 17.5t-2 16t12.5 11q14 5 136 22
l114 14q-218 -3 -270 5q-38 6 -79 59.5t-52 110.5l-3 15q2 21 49 7q31 -8 118 -27.5t160 -34.5l72 -14q-5 1 -13 3.5t-33 10.5l-50 16t-58.5 19t-63 21t-60.5 21t-53.5 20t-39 16.5t-20.5 11.5q-21 24 -45 99t-20 126q0 2 1 5t6.5 7t14.5 2q271 -124 456 -192
q30 -11 76 -26.5t73.5 -25t62 -23t53.5 -25t36.5 -25.5t22.5 -30t1 -35z" />
<glyph glyph-name="dingding-o" unicode="&#xe925;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM749 415q-1 -6 -7 -19v0v0q-6 -13 -16.5 -32t-20.5 -36.5t-19.5 -33t-15.5 -25.5l-6 -10v1l-17 -28h79
l-151 -201l35 136h-62l21 90q-28 -6 -63 -17q-3 -3 -10.5 -4.5t-32 7.5t-52.5 34l-3 3l-7 7t-8 9.5t-5.5 10t-1 10t7.5 6.5q8 3 81 13l69 9q-131 -2 -162 3q-23 4 -47.5 36t-31.5 66l-2 10q3 11 30 3q18 -5 70.5 -16.5t96 -20.5l43.5 -9q-220 68 -235 84q-12 15 -26.5 59.5
t-12.5 75.5q0 1 0.5 3t4 4.5t8.5 0.5q163 -74 274 -115q19 -7 46.5 -16t43.5 -15t37 -14t32.5 -15t21.5 -15.5t13.5 -18t0.5 -20.5z" />
<glyph glyph-name="mobile1" unicode="&#xe678;"
d="M760 896h-496q-30 0 -51 -21t-21 -51v-880q0 -30 21 -51t51 -21h496q30 0 51 21t21 51v880q0 30 -21 51t-51 21zM542 -64h-60q-15 0 -24.5 9.5t-9.5 22.5t9.5 22.5t24.5 9.5h60q15 0 24.5 -9.5t9.5 -22.5t-9.5 -22.5t-24.5 -9.5zM760 65h-496v704h496v-704z" />
<glyph glyph-name="tablet1" unicode="&#xe66e;"
d="M824 896h-624q-30 0 -51 -21t-21 -51v-880q0 -30 21 -51t51 -21h624q30 0 51 21t21 51v880q0 30 -21 51t-51 21zM542 -64h-60q-15 0 -24.5 9.5t-9.5 22.5t9.5 22.5t24.5 9.5h60q15 0 24.5 -9.5t9.5 -22.5t-9.5 -22.5t-24.5 -9.5zM824 65h-624v759h624v-759z" />
<glyph glyph-name="bells" unicode="&#xe64e;"
d="M860 64h-28v448q0 123 -82 214t-202 104v30q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5v-30q-120 -13 -202 -104t-82 -214v-448h-28q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h276v-48q0 -30 21 -51t51 -21t51 21t21 51v48h276q15 0 25.5 10.5
t10.5 25.5t-10.5 25.5t-25.5 10.5zM760 64h-496v448q0 103 72.5 175.5t175.5 72.5t175.5 -72.5t72.5 -175.5v-448z" />
<glyph glyph-name="disconnect" unicode="&#xe64f;"
d="M900 772q-60 60 -144.5 60t-143.5 -60l-180 -180q-11 -10 -11 -25t11 -26t26 -11t25 11l180 180q38 38 92.5 38t93 -38.5t38.5 -93t-38 -92.5l-180 -180q-10 -11 -10 -25.5t10.5 -25t25.5 -10.5t25 10l180 180q60 59 60 143.5t-60 144.5zM377 615q15 0 25.5 10.5
t10.5 25.5v145q0 15 -10.5 25.5t-25.5 10.5t-26 -10.5t-11 -25.5v-145q1 -15 11 -26q11 -10 26 -10zM809 139q-11 11 -25 10q-16 0 -26.5 -10.5t-10.5 -25.5t11 -25l102 -103q11 -10 26 -10t25.5 10.5t10.5 25.5t-10 25zM924 285h-145q-16 0 -26 -11q-11 -11 -11 -25.5
t11 -25t26 -10.5h144q15 0 26 10.5t11 25.5t-10.5 25.5t-25.5 10.5zM648 153q-15 0 -25.5 -10.5t-10.5 -25.5v-145q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v145q0 15 -11 25q-10 11 -25 11zM541 227l-180 -180q-38 -39 -92.5 -39t-93.5 39q-38 39 -38 93t38 93
l180 180q10 10 10 25t-10.5 25.5t-25.5 10.5t-25 -10l-180 -180q-60 -60 -60 -144q0 -85 60 -144q60 -60 144 -60q85 0 144 60l180 180q11 10 11 25t-11 25.5t-26 10.5t-25 -10zM215 629q11 -11 26 -11t25.5 10.5t10.5 25.5t-11 26l-102 102q-11 11 -26 11t-25.5 -10.5
t-10.5 -25.5t11 -26zM101 483h145q15 0 25 11q11 10 11 25t-10.5 25.5t-25.5 10.5h-145q-15 0 -25.5 -10.5t-10.5 -25.5q-1 -15 10 -25.5t26 -10.5z" />
<glyph glyph-name="database" unicode="&#xe650;"
d="M824 896h-624q-30 0 -51 -21t-21 -51v-880q0 -30 21 -51t51 -21h624q30 0 51 21t21 51v880q0 30 -21 51t-51 21zM824 -47h-624v244q0 -1 1 -1h622q1 0 1 1v-244zM824 267q0 1 -1 1h-622q-1 0 -1 -1v244q0 -1 1 -1h622q1 0 1 1v-244zM824 581q0 1 -1 1h-622q-1 0 -1 -1
v243h624v-243zM321 75zM285 75q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5zM321 389zM285 389q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5zM321 703zM285 703
q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5z" />
<glyph glyph-name="barcode" unicode="&#xe652;"
d="M706 128h70q1 0 1 1v638q0 1 -1 1h-70q-1 0 -1 -1v-638q0 -1 1 -1zM534 72h-70q-1 0 -1 -1v-70q0 -1 1 -1h70q1 0 1 1v70q0 1 -1 1zM640 72h-70q-1 0 -1 -1v-70q0 -1 1 -1h70q1 0 1 1v70q0 1 -1 1zM428 72h-214q-1 0 -1 -1v-70q0 -1 1 -1h214q1 0 1 1v70q0 1 -1 1z
M670 768h-34q-1 0 -1 -1v-638q0 -1 1 -1h34q1 0 1 1v638q0 1 -1 1zM213 767q0 1 -1 1h-34q-1 0 -1 -1v-638q0 -1 1 -1h34q1 0 1 1v638zM1023 768h-70q-1 0 -1 -1v-766q0 -1 1 -1h70q1 0 1 1v766q0 1 -1 1zM916 72h-240q-1 0 -1 -1v-70q0 -1 1 -1h240q1 0 1 1v70q0 1 -1 1z
M916 768h-34q-1 0 -1 -1v-638q0 -1 1 -1h34q1 0 1 1v638q0 1 -1 1zM108 128h34q1 0 1 1v638q0 1 -1 1h-34q-1 0 -1 -1v-638q0 -1 1 -1zM354 128h34q1 0 1 1v638q0 1 -1 1h-34q-1 0 -1 -1v-638q0 -1 1 -1zM424 128h70q1 0 1 1v638q0 1 -1 1h-70q-1 0 -1 -1v-638q0 -1 1 -1z
M530 128h70q1 0 1 1v638q0 1 -1 1h-70q-1 0 -1 -1v-638q0 -1 1 -1zM812 128h34q1 0 1 1v638q0 1 -1 1h-34q-1 0 -1 -1v-638q0 -1 1 -1zM71 768h-70q-1 0 -1 -1v-766q0 -1 1 -1h70q1 0 1 1v766q0 1 -1 1zM178 72h-70q-1 0 -1 -1v-70q0 -1 1 -1h70q1 0 1 1v70q0 1 -1 1z
M248 128h70q1 0 1 1v638q0 1 -1 1h-70q-1 0 -1 -1v-638q0 -1 1 -1z" />
<glyph glyph-name="hourglass" unicode="&#xe653;"
d="M860 8h-92v219l-192 157l192 157v219h92q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5h-696q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h92v-219l192 -157l-192 -157v-219h-92q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h696q15 0 25.5 10.5
t10.5 25.5t-10.5 25.5t-25.5 10.5zM328 581v179h368v-179l-182 -147l-2 2l-2 -2zM696 8h-368v179l184 149l184 -149v-179z" />
<glyph glyph-name="key" unicode="&#xe654;"
d="M876 427q-77 78 -186.5 84t-193.5 -60l-369 369q-11 11 -26 11t-25.5 -10.5t-10.5 -25.5t11 -25l369 -370q-66 -84 -60 -193.5t84 -186.5q84 -84 203.5 -84t204 84t84 203.5t-84.5 203.5zM825 71q-63 -63 -152.5 -63t-153 63t-63.5 152.5t63.5 153t153 63.5t152.5 -63.5
t63 -153t-63 -152.5zM353 596l76 76q11 10 11 25t-10.5 25.5t-25.5 10.5t-26 -10l-76 -77zM333 768q11 11 11 25.5t-10.5 25t-25.5 10.5t-26 -10l-76 -77l51 -50z" />
<glyph glyph-name="flag" unicode="&#xe655;"
d="M888 640h-176v56q0 30 -21 51t-51 21h-360q-3 27 -23.5 45.5t-48.5 18.5h-72q-30 0 -51 -21t-21 -51v-752q0 -30 21 -51t51 -21h72q30 0 51 21t21 51v256h360v-56q0 -30 21 -51t51 -21h176q30 0 51 21t21 51v360q0 30 -21 51t-51 21zM208 8h-72v752h72v-752zM640 336
h-360v360h360v-360zM888 208h-176v360h176v-360z" />
<glyph glyph-name="layout" unicode="&#xe656;"
d="M136 624zM100 624q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5zM952 768h-880q-30 0 -51 -21t-21 -51v-624q0 -30 21 -51t51 -21h880q30 0 51 21t21 51v624q0 30 -21 51t-51 21zM256 72h-184v408h184v-408zM952 72
h-624v169q0 -1 1 -1h622q1 0 1 1v-169zM952 311q0 1 -1 1h-622q-1 0 -1 -1v169h624v-169zM952 552h-880v144h880v-144zM240 624zM204 624q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5zM344 624zM308 624
q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5z" />
<glyph glyph-name="printer" unicode="&#xe673;"
d="M392 144h240v-72h-240v72zM392 312h240v-72h-240v72zM888 648h-120v112q0 30 -21 51t-51 21h-368q-30 0 -51 -21t-21 -51v-112h-120q-30 0 -51 -21t-21 -51v-304q0 -30 21 -51t51 -21h120v-192q0 -30 21 -51t51 -21h368q30 0 51 21t21 51v192h120q30 0 51 21t21 51v304
q0 30 -21 51t-51 21zM328 759q0 1 1 1h366q1 0 1 -1v-110q0 -1 -1 -1h-366q-1 0 -1 1v110zM696 8h-368v368h368v-368zM888 272h-120v104q0 30 -21 51t-51 21h-368q-30 0 -51 -21t-21 -51v-104h-120v304h752v-304zM820 508zM784 508q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5
t10.5 25.5t-10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5z" />
<glyph glyph-name="USB" unicode="&#xe6d7;"
d="M768 704v-192h56v-138h-276v330h60l-96 128l-96 -128h60v-440h-276v129q37 17 50 55q6 16 6 32q0 40 -28 68t-68 28t-68 -28t-28 -68q0 -31 18 -56t46 -34v-126q0 -30 21 -51t51 -21h276v-71q-27 -11 -43.5 -35t-16.5 -54q0 -40 28 -68t68 -28t68 28t28 68q0 30 -16.5 54
t-43.5 35v181h276q30 0 51 21t21 51v138h64v192h-192zM160 456q-10 0 -17 7t-7 17t7 17t17 7t17 -7t7 -17t-7 -17t-17 -7zM888 584h-48v48h48v-48z" />
<glyph glyph-name="skin" unicode="&#xe6d8;"
d="M888 832h-259q-2 -5 -3 -11q-13 -36 -44 -58.5t-70 -22.5t-70 22.5t-44 58.5q-1 6 -3 11h-259q-30 0 -51 -21t-21 -51v-368q0 -30 21 -51t51 -21h56v-312q0 -30 21 -51t51 -21h496q30 0 51 21t21 51v312h56q30 0 51 21t21 51v368q0 30 -21 51t-51 21zM888 392h-129
q1 0 1 -1v-382q0 -1 -1 -1h-494q-1 0 -1 1v382q0 1 1 1h-129v368h210q26 -43 70 -69t96 -26t96 26t70 69h210v-368z" />
<glyph glyph-name="tool" unicode="&#xe6d9;"
d="M925 731l-167 -166l-68 67l166 166q-63 40 -139.5 32t-130.5 -63q-43 -42 -57.5 -99.5t0.5 -111.5l-189 -189q-54 15 -111.5 0.5t-99.5 -57.5q-55 -54 -63 -130.5t32 -139.5l166 166l67 -68l-166 -166q63 -42 140.5 -34t132.5 63q43 42 57.5 99.5t-0.5 111.5l189 189
q54 -16 111.5 -1t99.5 57q56 56 63.5 133.5t-33.5 140.5zM395 44q-47 -47 -114 -45l95 95q18 18 18 43t-18 43l-68 68q-18 18 -43.5 18t-43.5 -18l-95 -95q-1 67 46 114q37 37 88 44.5t96 -15.5q21 -12 39 -29q17 -17 28 -39q24 -44 16.5 -95.5t-44.5 -88.5zM468 273
q-13 21 -30 37q-17 18 -37 30l155 155q13 -21 30 -37q17 -18 37 -30zM852 501q-37 -37 -88 -44.5t-96 15.5q-21 12 -39 29q-17 17 -28 39q-24 44 -16.5 95.5t44.5 87.5q47 47 114 46l-95 -95q-18 -18 -18 -43.5t18 -43.5l68 -67q18 -18 43.5 -18t43.5 18l95 95
q1 -67 -46 -114z" />
<glyph glyph-name="car" unicode="&#xe6dc;"
d="M952 448h8l-50 242q-5 29 -30.5 49.5t-55.5 20.5h-624q-30 0 -55 -20.5t-31 -49.5l-50 -242h8q-30 0 -51 -21t-21 -51v-176q0 -28 18.5 -48.5t45.5 -23.5v0q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5h384q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5v0
q27 3 45.5 23.5t18.5 48.5v176q0 30 -21 51t-51 21zM182 688h656l50 -240h-752zM952 200h-64v-72q0 -23 -16.5 -39.5t-39.5 -16.5t-39.5 16.5t-16.5 39.5v72h-528v-72q0 -23 -16.5 -39.5t-39.5 -16.5t-39.5 16.5t-16.5 39.5v72h-64v176h880v-176zM192 288zM156 288
q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5zM832 288zM796 288q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5z" />
<glyph glyph-name="addusergroup" unicode="&#xe6dd;"
d="M420 470q-5 24 -5 48q0 13 1 25q-38 5 -63.5 34.5t-25.5 68.5q0 43 30.5 73.5t73.5 30.5q28 0 52 -14t37 -37q33 18 69 24q-22 45 -64.5 72t-93.5 27q-73 0 -124.5 -51.5t-51.5 -124.5q0 -70 48 -121t117 -55zM777 307q-73 35 -154 35q-146 0 -249 -103t-103 -249
q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5q0 116 82 198t198 82q28 0 56 -6q44 33 98 43zM909 142h-88v88q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5v-88h-88q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h88v-88q0 -15 10.5 -25.5t25.5 -10.5
t25.5 10.5t10.5 25.5v88h88q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5zM799 518q0 73 -51.5 124.5t-124.5 51.5t-124.5 -51.5t-51.5 -124.5t51.5 -124.5t124.5 -51.5t124.5 51.5t51.5 124.5zM623 414q-43 0 -73.5 30.5t-30.5 73.5t30.5 73.5t73.5 30.5t73.5 -30.5
t30.5 -73.5t-30.5 -73.5t-73.5 -30.5zM454 397q-24 33 -33 73q-94 -3 -172.5 -50.5t-124 -127.5t-45.5 -174q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5q0 116 82 198t198 82q11 0 23 -1z" />
<glyph glyph-name="carryout" unicode="&#xe6df;"
d="M162 312h380q14 0 24 10t10 24v4q0 14 -10 24t-24 10h-380q-14 0 -24 -10t-10 -24v-4q0 -14 10 -24t24 -10zM537.5 265.5q-10.5 -10.5 -10.5 -25.5t11 -25l84 -85l1 -1l1 -1l4 -3q10 -10 23.5 -10t23.5 10l224 224q10 10 10 24t-10 23l-3 4q-10 10 -24 10t-24 -10
l-197 -197l-63 63q-10 10 -25 10t-25.5 -10.5zM952 704h-84v28q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5v-28h-248v28q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5v-28h-248v28q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5v-28h-84
q-30 0 -51 -21t-21 -51v-560q0 -30 21 -51t51 -21h880q30 0 51 21t21 51v560q0 30 -21 51t-51 21zM952 72h-880v376h880v-376zM952 520h-880v112h84v-20q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v20h248v-20q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v20
h248v-20q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v20h84v-112zM162 188h252q14 0 24 10t10 24v4q0 14 -10 24t-24 10h-252q-14 0 -24 -10t-10 -24v-4q0 -14 10 -24t24 -10z" />
<glyph glyph-name="deleteuser" unicode="&#xe6e0;"
d="M722 320q-95 63 -210 63q-104 0 -192.5 -51.5t-140 -140t-51.5 -193.5v0v-1v-1q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v2v0q0 130 91.5 221.5t220.5 91.5q58 0 111 -21q46 27 99 30zM787 96l62 62q11 11 11 26t-10.5 25.5t-25.5 10.5t-26 -10l-62 -63l-62 63
q-11 10 -26 10t-25.5 -10.5t-10.5 -25.5t11 -26l62 -62l-62 -62q-11 -10 -11 -25t10.5 -25.5t25.5 -10.5t26 10l62 62l62 -62q11 -10 26 -10t25.5 10.5t10.5 25.5t-11 25zM736 607.5q0 92.5 -65.5 158.5t-158.5 66t-158.5 -66t-65.5 -158.5t65.5 -158.5t158.5 -66t158.5 66
t65.5 158.5zM512 455q-63 0 -107.5 44.5t-44.5 108t44.5 108t107.5 44.5t107.5 -44.5t44.5 -108t-44.5 -108t-107.5 -44.5z" />
<glyph glyph-name="deleteusergroup" unicode="&#xe6e1;"
d="M420 470q-5 24 -5 48q0 13 1 25q-38 5 -63.5 34.5t-25.5 68.5q0 43 30.5 73.5t73.5 30.5q28 0 52 -14t37 -37q33 18 69 24q-22 45 -64.5 72t-93.5 27q-73 0 -124.5 -51.5t-51.5 -124.5q0 -70 48 -121t117 -55zM898 44l-62 62l62 62q11 11 11 26t-10.5 25.5t-25.5 10.5
t-26 -11l-62 -62l-62 62q-11 11 -26 11t-25.5 -10.5t-10.5 -25.5t11 -26l62 -62l-62 -62q-11 -11 -11 -26t10.5 -25.5t25.5 -10.5t26 11l62 62l62 -62q11 -11 26 -11t25.5 10.5t10.5 25.5t-11 26zM777 307q-73 35 -154 35q73 0 124.5 51.5t51.5 124.5t-51.5 124.5
t-124.5 51.5t-124.5 -51.5t-51.5 -124.5t51.5 -124.5t124.5 -51.5q-146 0 -249 -103t-103 -249q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5q0 116 82 198t198 82q28 0 56 -6q44 33 98 43zM519 518q0 43 30.5 73.5t73.5 30.5t73.5 -30.5t30.5 -73.5t-30.5 -73.5
t-73.5 -30.5t-73.5 30.5t-30.5 73.5zM454 397q-24 33 -33 73q-94 -3 -172.5 -50.5t-124 -127.5t-45.5 -174q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5q0 116 82 198t198 82q11 0 23 -1z" />
<glyph glyph-name="man" unicode="&#xe6e2;"
d="M384 576q-133 0 -226.5 -93.5t-93.5 -226.5t93.5 -226.5t226.5 -93.5t226.5 93.5t93.5 226.5t-93.5 226.5t-226.5 93.5zM384 8q-103 0 -175.5 72.5t-72.5 175.5t72.5 175.5t175.5 72.5t175.5 -72.5t72.5 -175.5t-72.5 -175.5t-175.5 -72.5zM949.5 821.5
q-10.5 10.5 -25.5 10.5h-376q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h340v-340q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v376q0 15 -10.5 25.5z" />
<glyph glyph-name="isv" unicode="&#xe6e3;"
d="M860 292q-15 0 -25.5 -10.5t-10.5 -25.5v-248h-624v248q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5v-248q0 -30 21 -51t51 -21h624q30 0 51 21t21 51v248q0 15 -10.5 25.5t-25.5 10.5zM888 832h-752q-30 0 -51 -21t-21 -51v-204q0 -71 51 -122t123 -51
q41 0 77 18t60 50q24 -32 60 -50t77 -18q42 0 77.5 18t60.5 49q24 -31 59.5 -49t76.5 -18q72 0 123 51t51 122v204q0 30 -21 51t-51 21zM339 658v-102q0 -42 -29.5 -71.5t-72 -29.5t-72 29.5t-29.5 71.5v204h203v-102zM512 455q-42 0 -71.5 29.5t-29.5 71.5v204h202v-204
v-11q-4 -38 -33 -64t-68 -26zM888 556q0 -42 -29.5 -71.5t-72 -29.5t-72 29.5t-29.5 71.5v204h203v-204z" />
<glyph glyph-name="gift" unicode="&#xe6e4;"
d="M888 576h-248q53 0 90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5h-248q-30 0 -51 -21t-21 -51v-112q0 -30 21 -51t51 -21h-8v-312q0 -30 21 -51t51 -21h624
q30 0 51 21t21 51v312h-8q30 0 51 21t21 51v112q0 30 -21 51t-51 21zM384 648q-23 0 -39.5 16.5t-16.5 39.5t16.5 39.5t39.5 16.5t39.5 -16.5t16.5 -39.5v-56h-56zM476 8h-276v312h276v-312zM476 392h-340v112h340v-112zM584 704q0 23 16.5 39.5t39.5 16.5t39.5 -16.5
t16.5 -39.5t-16.5 -39.5t-39.5 -16.5h-56v56zM824 8h-276v312h276v-312zM888 392h-340v112h340v-112z" />
<glyph glyph-name="idcard" unicode="&#xe6e5;"
d="M200 128h176q30 0 51 21t21 51v88q0 41 -19 76t-51 57q38 37 38 91q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5q0 -54 38 -91q-32 -22 -51 -57t-19 -76v-88q0 -30 21 -51t51 -21zM288 568q23 0 39.5 -16.5t16.5 -39.5t-16.5 -39.5t-39.5 -16.5t-39.5 16.5
t-16.5 39.5t16.5 39.5t39.5 16.5zM200 283v1v4q0 36 26 62t62 26t62 -26t26 -62v-4v-1v-78q0 -5 -5 -5h-166q-5 0 -5 5v78zM952 768h-880q-30 0 -51 -21t-21 -51v-624q0 -30 21 -51t51 -21h880q30 0 51 21t21 51v624q0 30 -21 51t-51 21zM952 72h-880v624h880v-624zM548 348
h248q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5h-248q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5zM548 184h184q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5h-184q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5zM548 512h312q15 0 25.5 10.5
t10.5 25.5t-10.5 25.5t-25.5 10.5h-312q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5z" />
<glyph glyph-name="medicinebox" unicode="&#xe6e6;"
d="M952 584h-120v112q0 30 -21 51t-51 21h-496q-30 0 -51 -21t-21 -51v-112h-120q-30 0 -51 -21t-21 -51v-440q0 -30 21 -51t51 -21h880q30 0 51 21t21 51v440q0 30 -21 51t-51 21zM264 696h496v-112h-496v112zM952 72h-880v440h880v-440zM388 256h88v-88q0 -15 10.5 -25.5
t25.5 -10.5t25.5 10.5t10.5 25.5v88h88q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5h-88v88q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5v-88h-88q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5z" />
<glyph glyph-name="redenvelopes" unicode="&#xe6e7;"
d="M512 457l-59 59q-11 10 -25.5 10t-25 -10.5t-10.5 -25t10 -25.5l67 -67h-115q-14 0 -24 -10t-10 -24v-4q0 -14 10 -24t24 -10h122v-64h-90q-14 0 -24 -10t-10 -24v-4q0 -14 10 -24t24 -10h90v-84q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v84h90q14 0 24 10
t10 24v4q0 14 -10 24t-24 10h-90v64h122q14 0 24 10t10 24v4q0 14 -10 24t-24 10h-114l67 68q11 10 11 25t-10.5 25.5t-25.5 10.5t-26 -10zM896 770h-1q-3 26 -23.5 44t-47.5 18h-624q-27 0 -47.5 -18t-23.5 -44h-1h1q-1 -5 -1 -10v-752q0 -30 21 -51t51 -21h624q30 0 51 21
t21 51v752q0 5 -1 10h1zM715 760l-158 -78q-19 -10 -45 -10t-45 10l-157 78h405zM824 8h-624v725l248 -126q26 -14 64 -14t64 14l248 126v-725z" />
<glyph glyph-name="rest" unicode="&#xe6e8;"
d="M275 615q15 0 25.5 10.5t10.5 25.5v209q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5v-209q0 -15 10.5 -25.5t25.5 -10.5zM888 471h-120q0 30 -21 51t-51 21h-496q-30 0 -51 -21t-21 -51v-248q0 -5 1 -10q-1 -10 -1 -21q0 -133 93.5 -226.5t226.5 -93.5
q119 0 208.5 77.5t107.5 193.5h124q30 0 51 21t21 51v184q0 30 -21 51t-51 21zM696 215h-1q1 -12 1 -23q0 -103 -72.5 -175.5t-175.5 -72.5t-175.5 72.5t-72.5 175.5q0 11 1 23h-1v256h496v-256zM888 223h-112v176h112v-176zM613 615q15 0 25.5 10.5t10.5 25.5v209
q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5v-209q0 -15 10.5 -25.5t25.5 -10.5zM443 615q15 0 25.5 10.5t10.5 25.5v209q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5v-209q0 -15 10.5 -25.5t25.5 -10.5z" />
<glyph glyph-name="Safety" unicode="&#xe6ea;"
d="M512 832l-384 -128v-384q0 -159 112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5v384zM824 320q0 -129 -91.5 -220.5t-220.5 -91.5t-220.5 91.5t-91.5 220.5v330l312 110l312 -110v-330zM378 421q-10 10 -25 10t-25.5 -10.5t-10.5 -25.5t11 -25l129 -129l2 -3
q10 -9 24 -9t24 9l224 224q10 10 10 24t-10 24l-3 3q-10 10 -24 10t-24 -10l-197 -197z" />
<glyph glyph-name="wallet" unicode="&#xe6eb;"
d="M620 384zM584 384q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5zM952 768h-880q-30 0 -51 -21t-21 -51v-624q0 -30 21 -51t51 -21h880q30 0 51 21t21 51v624q0 30 -21 51t-51 21zM952 328h-432v112h432v-112z
M952 512h-432q-30 0 -51 -21t-21 -51v-112q0 -30 21 -51t51 -21h432v-184h-880v624h880v-184z" />
<glyph glyph-name="woman" unicode="&#xe6ec;"
d="M512 320q119 0 203.5 84.5t84.5 203.5t-84.5 203.5t-203.5 84.5t-203.5 -84.5t-84.5 -203.5t84.5 -203.5t203.5 -84.5zM512 824q89 0 152.5 -63.5t63.5 -152.5t-63.5 -152.5t-152.5 -63.5t-152.5 63.5t-63.5 152.5t63.5 152.5t152.5 63.5zM860 256h-696
q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h312v-276q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v276h312q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5z" />
<glyph glyph-name="adduser" unicode="&#xe6ed;"
d="M860 132h-88v88q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5v-88h-88q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h88v-88q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v88h88q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5zM736 607.5
q0 92.5 -65.5 158.5t-158.5 66t-158.5 -66t-65.5 -158.5t65.5 -158.5t158.5 -66t158.5 66t65.5 158.5zM512 455q-63 0 -107.5 44.5t-44.5 108t44.5 108t107.5 44.5t107.5 -44.5t44.5 -108t-44.5 -108t-107.5 -44.5zM722 320q-95 63 -210 63q-104 0 -192.5 -51.5t-140 -140
t-51.5 -193.5v0v-1v-1q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v2v0q0 130 91.5 221.5t220.5 91.5q58 0 111 -21q46 27 99 30z" />
<glyph glyph-name="bank" unicode="&#xe6ee;"
d="M940 419l-402 401q-10 11 -25 11t-26 -11l-401 -401q-11 -11 -11 -26t10.5 -25.5t25.5 -10.5t25 11l377 376l376 -376q10 -11 25 -11t25.5 11t10.5 25.5t-10 25.5zM828 292q-15 0 -25.5 -10.5t-10.5 -25.5v-248h-560v248q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5
t-10.5 -25.5v-248q0 -30 21 -51t51 -21h560q30 0 51 21t21 51v248q0 15 -10.5 25.5t-25.5 10.5zM320 358v-4q0 -14 10 -24t24 -10h122v-64h-90q-14 0 -24 -10t-10 -24v-4q0 -14 10 -24t24 -10h90v-84q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v84h90q14 0 24 10
t10 24v4q0 14 -10 24t-24 10h-90v64h122q14 0 24 10t10 24v4q0 14 -10 24t-24 10h-135q2 1 2 2l85 85q11 10 11 25t-10.5 25.5t-25.5 10.5t-26 -10l-59 -60l-60 60q-10 10 -25 10t-25.5 -10.5t-10.5 -25.5t10 -25l85 -85l2 -2h-134q-14 0 -24 -10t-10 -24z" />
<glyph glyph-name="Trophy" unicode="&#xe6ef;"
d="M760 384h8q53 0 90.5 37.5t37.5 90.5v256h-128q-4 27 -24 45.5t-48 18.5h-368q-28 0 -48.5 -18.5t-23.5 -45.5h-128v-256q0 -53 37.5 -90.5t90.5 -37.5h8q19 -75 77 -127t135 -63v-186h-312q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h696q15 0 25.5 10.5
t10.5 25.5t-10.5 25.5t-25.5 10.5h-312v186q77 11 135 63t77 127zM768 696h56v-184q0 -23 -16.5 -39.5t-39.5 -16.5v240zM256 456q-23 0 -39.5 16.5t-16.5 39.5v184h56v-240zM512 264q-76 0 -130 54t-54 130v312h368v-312q0 -76 -54 -130t-130 -54z" />
<glyph glyph-name="loading1" unicode="&#xe6ae;"
d="M512 -128q-104 0 -199 40q-92 39 -163 110t-110 163q-40 95 -40 199q0 15 10.5 25.5t25.5 10.5t25.5 -10.5t10.5 -25.5q0 -90 35 -171q33 -79 94 -140t140 -95q81 -34 171 -34t171 35q79 33 140 94t95 140q34 81 34 171t-35 171q-33 79 -94 140t-140 95q-81 34 -171 34
q-15 0 -25.5 10.5t-10.5 25.5t10.5 25.5t25.5 10.5q104 0 199 -40q92 -39 163 -110t110 -163q40 -95 40 -199t-40 -199q-39 -92 -110 -163t-163 -110q-95 -40 -199 -40z" />
<glyph glyph-name="loading2" unicode="&#xe64d;"
d="M988 348q-15 0 -25.5 10.5t-10.5 25.5q0 90 -35 171q-33 79 -94 140t-140 95q-81 34 -171 34q-15 0 -25.5 10.5t-10.5 25.5t10.5 25.5t25.5 10.5q104 0 199 -40q92 -39 163 -110t110 -163q40 -95 40 -199q0 -15 -10.5 -25.5t-25.5 -10.5z" />
<glyph glyph-name="like2" unicode="&#xe69d;"
d="M958 421v3q-2 3 -2 4q-15 58 -66 77q-24 8 -50 8h-1h-87h-32.5h-32.5h-21q4 27 7 41q13 67 -5 119q-7 20 -24 66l-9 24q-16 40 -54 56q-29 13 -59 13q-34 0 -66 -17q-51 -26 -50 -83q1 -23 1 -36q1 -41 2 -62q0 -5 -2 -9q-3 -6 -10.5 -19t-11.5 -20q-35 -61 -53 -90
q-12 -18 -32.5 -30t-35.5 -15l-15 -3h-113q-30 0 -51 -21t-21 -51v-368q0 -30 21 -51t51 -21h248h80h80h50h50h94q42 0 72 10q40 13 64.5 44t28.5 73q2 23 -3 45q25 40 23 84q-1 12 -5 24q24 36 23 76q0 15 -5 30q14 21 20 45l4 5v44zM248 8h-112v368h112v-368zM888 391
l-2 -8q-3 -11 -9 -21l-19 -28l9 -32q2 -6 2 -13q1 -17 -11 -33l-18 -28l9 -32q1 -5 2 -9q1 -20 -12 -40l-16 -25l6 -25v0v-3q3 -13 2 -25v0v-1q-2 -20 -13 -33q-11 -14 -30 -21q-19 -6 -50 -6h-94h-24.5h-25h-25.5h-25h-77h-83h-64l1 388q46 22 72 62v1q19 30 53 91l1 1v0
q2 3 14 24q1 1 4 6t4 7q14 24 12 51q-1 22 -2 57v2v16v20q-1 6 2 10q2 4 9 8q16 8 32 8q15 0 31 -7q10 -4 15 -15q7 -21 9 -24q15 -41 23 -64q12 -35 2 -82q-3 -17 -7 -43l-14 -84h106h32h32h88h1v0q13 0 26 -4q15 -6 20 -27q1 0 1.5 -2t0.5 -3v-14z" />
<glyph glyph-name="dislike2" unicode="&#xe69e;"
d="M960 352v44l-4 6q-6 24 -20 44q5 14 5 30q2 40 -23 76q4 12 5 25q2 43 -23 83q5 22 2 46q-3 41 -27.5 72t-64.5 44q-30 10 -72 10h-94h-50h-51h-79h-80h-248q-30 0 -51 -21t-21 -51v-368q0 -30 21 -51t51 -21h113q6 -1 16 -3t32.5 -14.5t34.5 -30.5q18 -29 53 -90
q4 -7 11.5 -20t10.5 -18q2 -5 2 -10q-1 -20 -2 -62q0 -13 -1 -36q-1 -56 50 -83q32 -17 66 -17q30 0 59 12q38 17 54 57l9 24q15 41 24 65q18 53 5 120q-4 19 -7 41h21h32.5h32.5h87h1q26 0 50 8q52 19 66 77l2 4v3zM248 392h-112v368h112v-368zM888 363q0 -1 -1 -3
q0 -2 -1 -2q-5 -21 -20 -27q-13 -4 -26 -4v0h-1h-88h-32h-15.5h-16.5h-106l14 -84q4 -26 7 -43q10 -48 -2 -82q-8 -23 -24 -63q-1 -5 -4.5 -14t-4.5 -10q-4 -12 -14 -16q-16 -7 -31 -7q-16 0 -32 8q-7 4 -10 8q-2 3 -2 10q1 23 1 37v1q1 39 2 57q2 27 -12 51q-1 2 -4 6.5
t-4 6.5q-13 23 -14 24v0l-1 2q-34 60 -53 91h-1q-25 40 -71 62l-1 388h64h83h77h25h25.5h25h24.5h94q31 0 50 -6t30 -21q11 -13 13 -33v-1v0q1 -12 -2 -24v-4v0l-6 -25l16 -25q13 -20 12 -39q0 -5 -2 -9l-9 -33l18 -28q12 -16 11 -33q0 -7 -2 -13l-9 -32l19 -28q6 -10 9 -21
l2 -8v-14z" />
<glyph glyph-name="like1" unicode="&#xe64c;"
d="M184 448h-48q-30 0 -51 -21t-21 -51v-368q0 -30 21 -51t51 -21h48q30 0 51 21t21 51v368q0 30 -21 51t-51 21zM957 422q-11 43 -47 56q-21 6 -42 6h-226q-7 0 -8 1.5t0 8.5q2 10 4.5 26.5t5 30.5t4.5 26q12 62 -4 109q-6 17 -36 97q-10 28 -36 39q-53 22 -102 -3
q-34 -18 -33 -54q0 -10 1 -48t2 -58q1 -18 -8 -33q-73 -125 -76 -130q-4 -6 -28 -32q-17 -18 -24 -30t-7 -29q0 -284 -1 -397q0 -30 21.5 -51t51.5 -21h390q40 0 66 9q32 10 51 34t22 58q2 29 -6 50q-1 4 2 9q28 37 26 76q-1 10 -7 29q-3 7 2 13q26 33 25 69q0 7 -3.5 21
t-3.5 16q-2 6 0 9q19 21 26 53q0 1 1 2v29z" />
<glyph glyph-name="dislike1" unicode="&#xe64b;"
d="M256 392q0 -30 -21 -51t-51 -21h-48q-30 0 -51 21t-21 51v368q0 30 21 51t51 21h48q30 0 51 -21t21 -51v-368zM957 346q-11 -43 -47 -56q-21 -6 -42 -6h-226q-7 0 -8 -1.5t0 -8.5q2 -10 4.5 -26.5t5 -30.5t4.5 -26q12 -62 -4 -109q-6 -17 -36 -97q-10 -28 -36 -39
q-53 -22 -102 3q-34 18 -33 54q0 10 1 48t2 58q1 18 -8 33q-73 125 -76 130q-4 6 -28 32q-17 18 -24 30t-7 29q0 284 -1 397q0 30 21.5 51t51.5 21h390q40 0 66 -9q32 -10 51 -34t22 -58q2 -29 -6 -50q-1 -4 2 -9q28 -37 26 -76q-1 -10 -7 -29q-3 -7 2 -13q26 -33 25 -69
q0 -7 -3.5 -21t-3.5 -15q-2 -7 0 -9q19 -22 26 -54q0 -1 1 -2v-28q-2 -7 -3 -10z" />
<glyph glyph-name="bulb1" unicode="&#xe649;"
d="M640 -56h-256q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h256q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5zM896 522q0 155 -112.5 264.5t-271.5 109.5t-271.5 -109.5t-112.5 -264.5q0 -102 52 -188.5t140 -135.5v-62q0 -30 21 -51t51 -21h240
q30 0 51 21t21 51v62q88 49 140 135.5t52 188.5zM733 309q-43 -42 -99 -65l-1 -0.5l-1 -0.5v-107h-240v107l-1 0.5l-1 0.5q-56 23 -99 65t-67 96q-24 56 -24 117t24 117q24 54 67 96t99 65q58 24 122 24t122 -24q56 -23 99 -65t67 -96q24 -56 24 -117t-24 -117
q-24 -54 -67 -96z" />
<glyph glyph-name="rocket1" unicode="&#xe90f;"
d="M954 799l-6 21l-21 5q-27 7 -72 7q-111 0 -235 -34q-63 -18 -112 -41q-50 -25 -78 -53q-25 -25 -65 -97q-9 -17 -19 -36q-60 -18 -143 -70q-97 -61 -132 -107q-11 -14 -6 -31.5t22 -23.5q3 -1 10.5 -4t11.5 -4q79 -30 111 -46v0l192 -193q16 -33 46 -112q4 -10 9 -21
q6 -17 23 -22q5 -1 10 -1q12 0 22 7q46 34 106 132q53 84 70 143q21 11 37 19q73 40 98 65q35 35 64.5 106.5t46.5 163.5q16 83 16 152q0 47 -6 75zM293 457q-21 -47 -46 -105q-29 14 -82 34q33 27 76 54q31 19 59 34q-4 -10 -7 -17zM568 113q-27 -43 -54 -76q-20 51 -34 82
q55 23 106 46q1 0 15 7q-14 -28 -33 -59zM888 725q0 -64 -14 -140q-16 -81 -42 -145q-24 -61 -50 -87v0q-17 -17 -82 -52q-58 -32 -144 -71q-56 -25 -126 -54l-126 126q27 65 54 126q39 86 71 144q35 64 52 82q19 19 59 38q43 21 100 36q113 32 216 32q17 0 31 -1
q1 -16 1 -34zM185 144q-29 0 -51.5 -17t-31.5 -44l-37 -125q-1 -2 -1 -5q0 -7 5 -12t12 -5q3 0 5 1l124 37q27 9 44.5 32t17.5 52q0 35 -25.5 60.5t-61.5 25.5zM594.5 466.5q18.5 -18.5 45.5 -18.5t45.5 18.5t18.5 45.5t-18.5 45.5t-45.5 18.5t-45.5 -18.5t-18.5 -45.5
t18.5 -45.5z" />
<glyph glyph-name="select1" unicode="&#xe64a;"
d="M888 832h-752q-30 0 -51 -21t-21 -51v-752q0 -30 21 -51t51 -21h504q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5h-504v752h752v-504q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v504q0 30 -21 51t-51 21zM634 314l103 103q9 9 4.5 20t-16.5 11h-241
q-15 0 -25.5 -10.5t-10.5 -25.5v-240q0 -13 11 -17.5t20 4.5l103 104l188 -188q11 -11 26 -11t25.5 10.5t10.5 25.5t-10 26z" />
<glyph glyph-name="apple1" unicode="&#xe68c;"
d="M902 547q-21 31 -49 52.5t-55.5 31t-46.5 13.5t-36 4q-35 4 -75 -7.5t-73 -25t-48 -13.5q-17 0 -75 22.5t-94 21.5q-65 -1 -121.5 -35.5t-90.5 -92.5q-32 -56 -40 -128t5.5 -142t39.5 -133.5t60 -112.5q20 -30 34.5 -48t36 -40t44.5 -32.5t47 -9.5q29 1 77.5 21.5
t89.5 20.5q40 0 88 -20.5t81 -20.5q25 1 47 11t42.5 30.5t34 37.5t33.5 47q44 64 71 146v0q-8 3 -17.5 8t-33 22.5t-40.5 38.5t-31.5 58t-14.5 80q-1 36 11 70t24.5 53.5t34 39t26.5 23t14 9.5zM716 896q-39 -2 -81 -23.5t-70 -54.5q-27 -30 -41.5 -73t-9.5 -85
q41 -3 80.5 17.5t68.5 55.5q28 34 43 77t10 86z" />
<glyph glyph-name="apple-o" unicode="&#xe6d4;"
d="M698 577h10h2l2 -1q30 -1 59 -13q13 -5 25 -12q-4 -5 -10 -11q-30 -37 -46 -79q-21 -52 -21 -110q1 -125 88 -210q16 -15 33 -27q-18 -40 -42 -74q-37 -55 -58 -74q-21 -20 -40 -21h-2q-17 0 -47 14q-64 27 -119 27q-56 0 -122 -28q-31 -13 -48 -14h-1q-15 0 -38 22
t-61 77q-66 95 -88 218q-11 65 -5 120q7 57 31 101q25 42 65 67q41 24 86 25h1q23 0 77 -21q58 -24 90 -24q29 0 87 23q63 25 92 25zM698 649q-41 0 -103 -24t-76 -24q-17 0 -74 22.5t-93 22.5h-2q-65 -1 -121.5 -35.5t-90.5 -92.5q-32 -57 -40 -128.5t5.5 -141.5
t39.5 -133.5t60 -112.5q20 -29 34 -47.5t35 -40t43.5 -32t45.5 -10.5h3q30 1 78.5 21.5t89.5 20.5q40 0 87 -20.5t79 -20.5h3q25 1 47 11t42.5 30.5t33.5 37.5t34 47q44 64 71 146v0q-8 3 -17.5 8t-33 22.5t-40.5 38.5t-31.5 58t-15.5 80q0 36 12 70t24.5 53.5t34 39t26 23
t14.5 9.5q-21 31 -49 52.5t-55.5 31t-46.5 13.5t-36 4q-9 1 -17 1zM716 896q-39 -2 -81 -23.5t-70 -54.5q-27 -30 -41.5 -73t-9.5 -85q41 -3 80.5 17.5t68.5 55.5q28 34 43 77t10 86z" />
<glyph glyph-name="android1" unicode="&#xe938;"
d="M888 575q-26 0 -44.5 -18.5t-18.5 -44.5v-247q0 -27 18.5 -45.5t44 -18.5t44 18.5t18.5 45.5v247q0 26 -18 44.5t-44 18.5zM136.5 575q-25.5 0 -44 -18.5t-18.5 -44.5v-247q0 -27 18.5 -45.5t44 -18.5t44 18.5t18.5 45.5v247q0 26 -18.5 44.5t-44 18.5zM236 573v-452
q0 -20 14.5 -34t34.5 -14h55v-138q0 -26 18.5 -44.5t44 -18.5t44 18.5t18.5 44.5v138h97v-138q0 -26 18 -44.5t44 -18.5t44 18.5t18 44.5v138h56q20 0 34 14t14 35v451h-554zM643 807l52 75q5 8 -2 13t-13 -3l-53 -78q-55 22 -115 22t-115 -22l-53 77q-6 9 -13 3
q-7 -4 -2 -13l52 -74q-62 -29 -101.5 -80t-44.5 -114h554q-5 63 -44.5 114t-101.5 80zM395 690q-13 0 -22 9t-9 22t9 22t22 9t22 -9t9 -22t-9 -22t-22 -9zM632.5 690q-12.5 0 -21.5 9t-9 22t9 22t21.5 9t21.5 -9t9 -22t-9 -22t-21.5 -9z" />
<glyph glyph-name="android" unicode="&#xe68d;"
d="M888.5 601.5q-24.5 24.5 -60.5 24.5q-6 0 -13 -1v1h-4q-9 53 -43 100q-32 44 -81 74l29 41v4v2l1 2q1 7 1 10q0 16 -10 26.5t-26 10.5q-18 0 -30 -18l-33 -48q-53 18 -107 18t-107 -18l-33 48q-12 18 -30 18q-16 0 -26 -10.5t-10 -26.5q0 -11 7 -19l26 -37
q-50 -30 -82 -75q-34 -47 -42 -100h-6v-1q-6 1 -12 1q-37 0 -61 -24t-24 -60v-269q0 -36 24 -60.5t60 -24.5q6 0 13 1v-107q0 -25 17.5 -42.5t42.5 -17.5h37v-67q0 -36 24 -60q24 -25 60.5 -25t60.5 24q24 25 24 61v66h73v-66q0 -36 25 -60q24 -25 60 -25t61 25q24 24 24 60
v67h36q25 0 43 17.5t18 42.5v105q6 -1 12 -1q36 0 61 24q24 25 24 61v268q1 36 -23.5 60.5zM209 272q0 -12 -12 -12t-12 12v269q0 12 12 12t12 -12v-269zM358 726q66 48 154 48t154 -48q56 -42 71 -100h-450q15 58 71 100zM403 -45q-1 -10 -12 -10q-12 0 -12 12v67h24v-69z
M646 -45q-2 -10 -12 -10q-13 0 -13 12v67h25v-69zM743 96h-461v457h461v-457zM840 272q0 -12 -12.5 -12t-12.5 12v269q0 12 12.5 12t12.5 -12v-269zM585 712q-16 0 -26 -10.5t-10 -26.5t10 -26t26 -10t26.5 10t10 26t-10.5 26.5t-26 10.5zM439.5 712q-15.5 0 -26 -10.5
t-10.5 -26.5t10.5 -26t26 -10t26 10t10.5 26t-10.5 26.5t-26 10.5z" />
<glyph glyph-name="aliwangwang-o1" unicode="&#xe68f;"
d="M985 560q-37 88 -106 157q-68 69 -158 106q-92 39 -192 39q-83 0 -160 -26q-54 25 -122 40t-105 17.5t-69 2.5h-12q-25 -1 -38.5 -21.5t-4.5 -43.5l84 -211q-69 -117 -69 -253q0 -101 39 -193q38 -88 106 -157q69 -68 158 -106q92 -39 193 -39q100 0 193 39
q88 37 157 106q68 68 106 157q39 92 39 193.5t-39 192.5zM919 202q-32 -75 -91 -134t-134 -91h-1q-78 -33 -164.5 -33t-164.5 33q-76 32 -135 91t-90 134v1q-34 78 -34 164q0 117 59 216l18 30l-83 210q40 -1 82 -7q91 -14 158 -45l26 -12l28 9q65 22 136 22q86 0 164 -33
q76 -32 135 -91t91 -134v0q33 -78 33 -165q0 -86 -33 -165zM511.5 577q-20.5 0 -34.5 -14t-14 -34v-72q0 -20 14 -34.5t34.5 -14.5t34.5 14.5t14 34.5v72q0 20 -14 34t-34.5 14zM740.5 577q-20.5 0 -34.5 -14t-14 -34v-72q0 -20 14 -34.5t34.5 -14.5t34.5 14.5t14 34.5v72
q0 20 -14 34t-34.5 14z" />
<glyph glyph-name="aliwangwang" unicode="&#xe68e;"
d="M985 560q-37 88 -106 157q-68 69 -158 106q-91 39 -192 39q-83 0 -160 -26q-54 25 -122 40t-105 17.5t-69 2.5h-12q-25 -1 -38.5 -21.5t-4.5 -43.5l84 -211q-69 -117 -69 -253q0 -101 39 -193q38 -88 106 -157q69 -68 158 -106q92 -39 193 -39t193 39q88 37 157 106
q68 68 106 157q39 92 39 193.5t-39 192.5zM560 457q0 -20 -14 -34.5t-34.5 -14.5t-34.5 14.5t-14 34.5v72q0 20 14 34t34.5 14t34.5 -14t14 -34v-72zM789 457q0 -20 -14 -34.5t-34.5 -14.5t-34.5 14.5t-14 34.5v72q0 20 14 34t34.5 14t34.5 -14t14 -34v-72z" />
<glyph glyph-name="pay-circle1" unicode="&#xe6a5;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM737 419q0 -14 -10.5 -23.5t-24.5 -9.5h-154v-64h122q14 0 24.5 -10.5t10.5 -24.5v-4q0 -14 -10.5 -23.5
t-24.5 -9.5h-122v-149q0 -15 -10.5 -25.5t-25.5 -10.5t-25.5 10.5t-10.5 25.5v149h-122q-15 0 -24.5 9.5t-9.5 23.5v4q0 14 10 24.5t24 10.5h122v64h-154q-15 0 -25 10t-10 24v3q0 14 10 24.5t25 10.5h166l-2 1l-118 118q-11 11 -11 26t10.5 25.5t25.5 10.5t26 -10l93 -93
l92 92q11 11 25.5 11t25.5 -10.5t10.5 -25.5t-10.5 -25l-118 -118q-1 -1 -2 -1h167q14 0 24.5 -11t10.5 -25v-4z" />
<glyph glyph-name="pay-circle-o1" unicode="&#xe6a6;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM823 73q-61 -61 -140 -94q-81 -35 -171 -35t-171 35q-79 33 -140 94t-94 140q-35 81 -35 171t35 171
q33 79 94 140t140 94q81 35 171 35t171 -35q79 -33 140 -94t94 -140q35 -81 35 -171t-35 -171q-33 -79 -94 -140zM702 459h-167q1 0 2 1l118 118q11 10 11 25t-10.5 25.5t-25.5 10.5t-26 -11l-92 -92l-93 93q-11 10 -26 10t-25.5 -10.5t-10.5 -25.5t11 -26l118 -118l2 -1
h-166q-14 0 -24.5 -10.5t-10.5 -24.5v-3q0 -14 10 -24t25 -10h154v-64h-123q-13 0 -23 -10.5t-10 -24.5v-4q0 -14 9.5 -23.5t23.5 -9.5h123v-149q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v149h122q14 0 24.5 9.5t10.5 23.5v4q0 14 -10.5 24.5t-24.5 10.5h-122v64
h154q14 0 24.5 9.5t10.5 23.5v4q0 14 -10.5 25t-24.5 11z" />
<glyph glyph-name="poweroff" unicode="&#xe6d5;"
d="M512 512q15 0 25.5 10.5t10.5 25.5v312q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5v-312q0 -15 10.5 -25.5t25.5 -10.5zM512 -128q-104 0 -199 40q-92 39 -163 110t-110 163q-40 95 -40 199q0 123 55 231q53 105 147 177q12 9 27 7t24 -14t7 -27t-14 -24
q-81 -61 -127 -151q-47 -94 -47 -199q0 -90 35 -171q33 -79 94 -140t140 -95q81 -34 171 -34t171 35q79 33 140 94t95 140q34 81 34 171q0 105 -47 199q-46 90 -127 151q-12 9 -14 24t7 27t24 14t27 -7q94 -72 147 -177q55 -109 55 -231q0 -104 -40 -200q-39 -91 -110 -162
t-163 -110q-95 -40 -199 -40z" />
<glyph glyph-name="trademark" unicode="&#xe651;"
d="M666.5 397q46.5 43 46.5 115q0 37 -14 69q-14 30 -39 51q-25 19 -59 27.5t-125 8.5h-113v-578h65v264h23l194 -264h82l-196 264q89 0 135.5 43zM516 420h-88v182h91q66 0 96 -22q31 -22 31 -69.5t-32 -69.5q-31 -22 -98 -21zM512 896q-139 0 -257 -68.5t-186.5 -186.5
t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM512 -56q-182 0 -311 129t-129 311t129 311t311 129t311 -129t129 -311t-129 -311t-311 -129z" />
<glyph glyph-name="find" unicode="&#xe6db;"
d="M521 512q-58 4 -99.5 -37.5t-37.5 -99.5l-98 -217l217 98q58 -4 99.5 37.5t37.5 99.5l98 217zM551.5 344.5q-16.5 -16.5 -39.5 -16.5t-39.5 16.5t-16.5 39.5t16.5 39.5t39.5 16.5t39.5 -16.5t16.5 -39.5t-16.5 -39.5zM512 896q-139 0 -257 -68.5t-186.5 -186.5
t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM512 -56q-182 0 -311 129t-129 311t129 311t311 129t311 -129t129 -311t-129 -311t-311 -129z" />
<glyph glyph-name="copyright" unicode="&#xe6de;"
d="M518 176q-79 0 -121 56q-42 53 -42 150q0 96 43 152q44 58 121 58q63 0 101 -29q38 -31 49 -91h80q-14 96 -74 142q-59 46 -156 46q-119 0 -185 -83q-62 -75 -62 -195q0 -121 62 -195q65 -79 184 -79q96 0 156 51q59 50 78 153h-81q-19 -136 -153 -136zM512 896
q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM512 -56q-182 0 -311 129t-129 311t129 311t311 129t311 -129t129 -311t-129 -311t-311 -129z" />
<glyph glyph-name="sound" unicode="&#xe6e9;"
d="M464 731l-233 -155h-166q-27 0 -46 -21t-19 -51v-240q0 -30 19 -51t46 -21h166l233 -155q23 -15 39.5 -5t16.5 40v624q0 30 -16.5 40t-39.5 -5zM448 134l-191 130h-185v240h185l191 127v-497zM640 232q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5
q93 0 158.5 65.5t65.5 158.5t-65.5 158.5t-158.5 65.5q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5q63 0 107.5 -44.5t44.5 -107.5t-44.5 -107.5t-107.5 -44.5zM640 768q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5q129 0 220.5 -91.5t91.5 -220.5
t-91.5 -220.5t-220.5 -91.5q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5q159 0 271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5z" />
<glyph glyph-name="earth" unicode="&#xe6f1;"
d="M512 896q-139 0 -257 -68.5t-186.5 -186.5t-68.5 -257t68.5 -257t186.5 -186.5t257 -68.5t257 68.5t186.5 186.5t68.5 257t-68.5 257t-186.5 186.5t-257 68.5zM394 808q-46 -39 -80 -104q-31 16 -59 36h-2q65 47 141 68zM198 692q40 -31 87 -54q-35 -94 -41 -204h-169
q17 150 123 258zM72 362h170q4 -126 43 -232q-46 -23 -87 -54q-56 56 -88.5 130t-37.5 156zM253 28h2q28 20 59 36q35 -65 80 -104q-76 21 -141 68zM481 -10q-59 19 -103 100q50 16 103 20v-120zM481 182q-67 -4 -132 -25q-32 92 -35 205h167v-180zM481 434h-165
q6 97 33 177q64 -21 132 -25v-152v0zM481 658q-53 4 -103 20q44 82 103 100v-120zM949 434h-169q-6 110 -41 204q46 23 87 54q106 -108 123 -258zM771 740h-2q-28 -20 -59 -36q-35 65 -81 104q77 -21 142 -68zM553 774q53 -22 93 -96q-45 -15 -93 -19v115zM553 587
q62 4 122 24q27 -80 33 -177h-155v153zM553 362h157q-3 -113 -35 -205q-59 19 -122 24v181zM553 -6v115q48 -4 93 -19q-40 -74 -93 -96zM630 -40q46 39 80 104q31 -16 59 -36h2q-65 -47 -141 -68zM826 76q-40 31 -87 54q39 106 43 232h169q-4 -82 -36.5 -156t-88.5 -130z
" />
<glyph glyph-name="wifi" unicode="&#xe6d6;"
d="M964 576q-92 93 -212 140.5t-241 47.5t-240.5 -47.5t-212.5 -140.5q-10 -10 -10 -25t10.5 -25.5t25.5 -10.5t25 11q82 81 188 123.5t214 42.5t214 -42.5t188 -123.5q10 -11 25 -11t25.5 10.5t10.5 25.5t-10 25zM194 422q-10 -11 -10 -26t10.5 -25.5t25.5 -10.5t25 11
q54 54 124.5 82t141.5 28t141.5 -28t124.5 -82q10 -11 25 -11t25.5 10.5t10.5 25.5t-10 26q-86 86 -201.5 116.5t-231 0t-201.5 -116.5zM693 258v0q-75 75 -181 75t-181 -75q-11 -11 -11 -26t10.5 -25.5t25.5 -10.5t26 11q54 54 130 54t130 -54v0l3 -3q10 -11 25 -11
t25.5 11t10.5 25.5t-10 25.5q-3 2 -3 3zM512 54zM458 54q0 -22 16 -38t38 -16t38 16t16 38t-16 38t-38 16t-38 -16t-16 -38z" />
<glyph glyph-name="sync" unicode="&#xe6da;"
d="M989 384q-15 1 -26 -8.5t-12 -24.5q-7 -83 -42.5 -157.5t-96.5 -131.5t-138.5 -87.5t-161.5 -30.5q-133 0 -243 73q-97 64 -149 167h100q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5h-184q-15 0 -25.5 -10.5t-10.5 -25.5v-184q0 -15 10.5 -25.5t25.5 -10.5
t25.5 10.5t10.5 25.5v86q59 -100 157 -165q128 -85 283 -85q98 0 188 35.5t161 101.5t112.5 153t48.5 183q2 15 -8 26.5t-25 12.5zM988 768q-15 0 -25.5 -10.5t-10.5 -25.5v-86q-59 100 -157 165q-128 85 -283 85q-98 0 -188 -35.5t-161 -101.5t-112.5 -153t-49.5 -183
q-1 -15 9 -26.5t25 -12.5h2q14 0 24.5 9.5t11.5 23.5q6 83 42 157.5t97 131.5t138.5 87.5t161.5 30.5q133 0 243 -73q97 -64 149 -167h-100q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h184q15 0 25.5 10.5t10.5 25.5v184q0 15 -10.5 25.5t-25.5 10.5z" />
<glyph glyph-name="login" unicode="&#xe657;"
d="M443 274q-11 -11 -11 -26t10.5 -25.5t25.5 -10.5t26 11l136 135q10 11 10 26t-10 26l-136 135q-11 11 -26 11t-25.5 -10.5t-10.5 -25.5t11 -26l74 -74h-481q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h481zM984 583q-39 92 -110 163t-163 110q-95 40 -199 40
q-123 0 -231 -55q-105 -53 -177 -147q-9 -12 -7 -27t14 -24t27 -7t24 14q61 81 151 127q94 47 199 47q90 0 171 -35q79 -33 140 -94t94 -140q35 -81 35 -171t-34 -171q-34 -79 -95 -140t-140 -94q-81 -35 -171 -35q-105 0 -199 47q-90 46 -151 127q-9 12 -24 14t-27 -7
t-14 -24t7 -27q72 -94 177 -147q108 -55 231 -55q104 0 199 40q92 39 163 110t110 163q40 95 40 199t-40 199z" />
<glyph glyph-name="logout" unicode="&#xe65a;"
d="M772 29q-116 -85 -260 -85q-90 0 -171 34q-79 34 -140 95t-94 140q-35 81 -35 171t34 171q34 79 95 140t140 94q81 35 171 35q144 0 260 -85q12 -9 26.5 -6.5t23.5 14.5t7 26.5t-14 23.5q-135 99 -303 99q-104 0 -199 -40q-92 -39 -163 -110t-110 -163q-40 -95 -40 -199
t40 -199q39 -92 110 -163t163 -110q95 -40 199 -40q168 0 303 99q12 9 14 23.5t-6.5 26.5t-23.5 14.5t-27 -6.5zM1014 410l-136 135q-11 11 -26 11t-25.5 -10.5t-10.5 -25.5t11 -26l74 -74h-481q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h481l-74 -74
q-11 -11 -11 -26t10.5 -25.5t25.5 -10.5t26 11l136 135q10 11 10 26t-10 26z" />
<glyph glyph-name="reload1" unicode="&#xe616;"
d="M954 392q-2 15 -14.5 23.5t-27 6t-23 -14.5t-6.5 -27q5 -28 5 -60q0 -76 -28.5 -144.5t-81.5 -121.5t-122 -81.5t-144 -28.5t-144 28.5t-122 81.5t-81.5 122t-28.5 144t28.5 144t81.5 122t122 81.5t144 28.5h13l-82 -82q-11 -11 -11 -25.5t10.5 -25.5t25.5 -11t26 11
l135 136q11 10 11 25t-11 26l-135 135q-11 11 -26 11t-25.5 -10.5t-10.5 -25.5t11 -25l66 -67q-89 -1 -171 -35q-81 -34 -143 -96t-96 -143q-35 -83 -35 -174t35 -174q34 -81 96 -143t143 -96q83 -35 174 -35t174 35q81 34 143 96t96 142q35 83 35 175q0 37 -6 72z" />
<glyph glyph-name="message1" unicode="&#xe6ab;"
d="M292 471q-23 0 -39 -16t-16 -39t16 -39t39 -16t39 16t16 39t-16 39t-39 16zM732 471q-23 0 -39 -16t-16 -39t16 -39t39 -16t39 16t16 39t-16 39t-39 16zM512 471q-23 0 -39 -16t-16 -39t16 -39t39 -16t39 16t16 39t-16 39t-39 16zM983 604q-39 86 -110 153
q-71 66 -163 102q-94 37 -198 37t-198 -37q-92 -36 -163 -102q-71 -67 -110 -153q-41 -90 -41 -187q0 -88 33 -169.5t94 -147.5l23 -196q3 -19 20 -28q7 -4 16 -4t18 5l148 84q78 -24 160 -24q103 0 198 37q92 37 163 103t110 152q41 89 41 188q0 97 -41 187zM918 259
q-33 -73 -94 -130q-61 -56 -140 -87q-82 -33 -172 -33q-79 0 -152 25q-16 5 -30 -3l-115 -65l-18 155q-1 12 -10 21q-56 56 -85.5 127t-29.5 148q0 82 34 157q33 73 94 130t140 88q82 32 172 32t172 -32q79 -32 140 -88.5t94 -129.5q34 -75 34 -157.5t-34 -157.5z" />
<glyph glyph-name="shake" unicode="&#xe94f;"
d="M760 896h-496q-30 0 -51 -21t-21 -51v-880q0 -30 21 -51t51 -21h464q33 0 68.5 22t35.5 50v880q0 30 -21 51t-51 21zM542 -64h-60q-15 0 -24.5 9.5t-9.5 22.5t9.5 22.5t24.5 9.5h60q15 0 24.5 -9.5t9.5 -22.5t-9.5 -22.5t-24.5 -9.5zM760 65h-496v704h496v-704zM80 870
l-44 -10q-19 -12 -29 -33t-6 -44l127 -832l-75 853q-3 39 27 66zM130 886q-20 -11 -31.5 -31t-10.5 -44l54 -839v856q0 39 32 63zM988 860l-44 10q30 -26 27 -66l-75 -853l127 832q4 23 -6 44t-29 33zM936 812q1 23 -10.5 43t-31.5 31l-44 6q32 -25 32 -64v-856z" />
<glyph glyph-name="API" unicode="&#xe951;"
d="M952 722l-183 106q-8 4 -16.5 4t-15.5 -4l-183 -106q-16 -9 -16 -27v-9l-10 6q-7 4 -15.5 4t-16.5 -4l-10 -6v9q0 18 -16 27l-183 106q-8 4 -16 4t-16 -4l-183 -106q-16 -9 -16 -27v-212q0 -18 16 -27l183 -106q8 -4 16 -4t16 4l10 6v-9q0 -18 16 -27l6 -4l-6 -4
q-16 -9 -16 -27v-212q0 -18 16 -27l183 -106q8 -4 16 -4t16 4l183 106q16 9 16 27v212q0 18 -16 27l-6 4l6 4q16 9 16 27v9l10 -6q7 -4 15.5 -4t16.5 4l183 106q16 9 16 27v212q0 18 -16 27zM271 424l-143 82v166l143 82l143 -82v-28l-101 -58q-16 -9 -16 -27v-120zM414 591
v-85l-71 -40v84zM655 261v-165l-143 -82l-143 82v165l23 13l104 -60q8 -4 16 -4t16 4l104 60zM438 301l74 43l74 -43l-74 -43zM681 355l-23 -13l-130 76q-8 4 -16 4t-16 -4l-130 -76l-23 13v28l127 73q16 9 16 27v150l26 15l26 -15v-150q0 -18 16 -27l127 -74v-27zM681 466
l-71 40v86l71 -41v-85zM896 506l-143 -82l-26 15v120q0 18 -16 27l-101 58v28l143 82l143 -82v-166z" />
<glyph glyph-name="appstore-o" unicode="&#xe695;"
d="M398 760v-262h-262v262h262zM398 832h-262q-30 0 -51 -21t-21 -51v-262q0 -30 21 -51t51 -21h262q30 0 51 21t21 51v262q0 30 -21 51t-51 21zM888 760v-262h-262v262h262zM888 832h-262q-30 0 -51 -21t-21 -51v-262q0 -30 21 -51t51 -21h262q30 0 51 21t21 51v262
q0 30 -21 51t-51 21zM398 270v-262h-262v262h262zM398 342h-262q-30 0 -51 -21t-21 -51v-262q0 -30 21 -51t51 -21h262q30 0 51 21t21 51v262q0 30 -21 51t-51 21zM888 270v-262h-262v262h262zM888 342h-262q-30 0 -51 -21t-21 -51v-262q0 -30 21 -51t51 -21h262q30 0 51 21
t21 51v262q0 30 -21 51t-51 21z" />
<glyph glyph-name="appstore1" unicode="&#xe696;"
d="M398 832h-262q-30 0 -51 -21t-21 -51v-262q0 -30 21 -51t51 -21h262q30 0 51 21t21 51v262q0 30 -21 51t-51 21zM888 832h-262q-30 0 -51 -21t-21 -51v-262q0 -30 21 -51t51 -21h262q30 0 51 21t21 51v262q0 30 -21 51t-51 21zM398 342h-262q-30 0 -51 -21t-21 -51v-262
q0 -30 21 -51t51 -21h262q30 0 51 21t21 51v262q0 30 -21 51t-51 21zM888 342h-262q-30 0 -51 -21t-21 -51v-262q0 -30 21 -51t51 -21h262q30 0 51 21t21 51v262q0 30 -21 51t-51 21z" />
<glyph glyph-name="scan1" unicode="&#xe697;"
d="M768 200v368q0 30 -21 51t-51 21h-368q-30 0 -51 -21t-21 -51v-368q0 -30 21 -51t51 -21h368q30 0 51 21t21 51zM696 200h-368v368h368v-368zM100 572q15 0 25.5 10.5t10.5 25.5v152h152q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5h-152q-30 0 -51 -21t-21 -51
v-152q0 -15 10.5 -25.5t25.5 -10.5zM288 8h-152v152q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5v-152q0 -30 21 -51t51 -21h152q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5zM888 832h-152q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h152v-152
q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v152q0 30 -21 51t-51 21zM924 196q-15 0 -25.5 -10.5t-10.5 -25.5v-152h-152q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h152q30 0 51 21t21 51v152q0 15 -10.5 25.5t-25.5 10.5z" />
<glyph glyph-name="exception1" unicode="&#xe665;"
d="M888 832h-753q-30 0 -51 -21t-21 -51v-752q0 -30 21 -51t51 -21h277q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5h-277v752h753v-752h-84q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h84q30 0 51 21t21 51v752q0 30 -21 51t-51 21zM640 -28
q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5zM676 512q-15 0 -25.5 -10.5t-10.5 -25.5v-376q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v376q0 15 -10.5 25.5t-25.5 10.5zM540 640h-312q-15 0 -25.5 -10.5
t-10.5 -25.5t10.5 -25.5t25.5 -10.5h312q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5zM412 448h-184q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h184q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5zM412 256h-184q-15 0 -25.5 -10.5t-10.5 -25.5
t10.5 -25.5t25.5 -10.5h184q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5z" />
<glyph glyph-name="contacts" unicode="&#xe6f0;"
d="M256 204q0 15 -10.5 25.5t-25.5 10.5h-120q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h120q15 0 25.5 10.5t10.5 25.5zM100 526h120q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5h-120q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5zM888 832
h-688q-30 0 -51 -21t-21 -51v-56q0 -15 10.5 -25.5t25.5 -10.5t25.5 10.5t10.5 25.5v56h688v-752h-688v54v0v1v1q0 15 -10.5 25.5t-25.5 10.5t-25.5 -10.5t-10.5 -25.5v-2v0v-54q0 -30 21 -51t51 -21h688q30 0 51 21t21 51v752q0 30 -21 51t-51 21zM100 347h120
q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5h-120q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5zM575.5 312q-67.5 0 -115.5 48t-48 116t48 116t115.5 48t116 -48t48.5 -116t-48.5 -116t-116 -48zM576 568q-38 0 -65 -27t-27 -65t27 -65t65 -27t65 27t27 65
t-27 65t-65 27zM764 128q-13 0 -23 8t-12 21q-11 55 -54 91t-99.5 36t-99.5 -36t-54 -91q-2 -13 -12 -21t-23 -8q-3 0 -7 1q-14 2 -22.5 14.5t-5.5 27.5q15 80 78 132.5t145.5 52.5t145.5 -52.5t79 -132.5q2 -15 -6 -27.5t-23 -14.5q-3 -1 -7 -1z" />
<glyph glyph-name="solution1" unicode="&#xe66f;"
d="M959 -21q-10 50 -41.5 88t-77.5 56q28 18 43.5 47t15.5 63q0 55 -38.5 93.5t-93 38.5t-93.5 -38.5t-39 -93.5q0 -33 16 -62.5t44 -47.5q-46 -18 -77.5 -56t-41.5 -88q-3 -14 5.5 -26.5t23.5 -15.5t27 5.5t15 23.5q8 43 42 71t78.5 28t78.5 -28t42 -71q3 -13 13 -21.5
t22 -8.5q4 0 7 1q15 3 23.5 15.5t5.5 26.5zM767.5 293q24.5 0 42.5 -17.5t18 -42.5t-18 -42.5t-42.5 -17.5t-42 17.5t-17.5 42.5t17.5 42.5t42 17.5zM888 832h-752q-30 0 -51 -21t-21 -51v-752q0 -30 21 -51t51 -21h276q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5
h-276v752h752v-340q0 -15 11 -25.5t25.5 -10.5t25 10.5t10.5 25.5v340q0 30 -21 51t-51 21zM228 568h312q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5h-312q-14 0 -25 -10.5t-11 -25.5t11 -25.5t25 -10.5zM412 448h-184q-14 0 -25 -10.5t-11 -25.5t11 -25.5t25 -10.5
h184q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5zM412 256h-184q-14 0 -25 -10.5t-11 -25.5t11 -25.5t25 -10.5h184q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5z" />
<glyph glyph-name="fork" unicode="&#xe6f2;"
d="M896 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5q0 -43 26 -77t66 -46v-127l-220 -221l-220 221v127q40 12 66 46t26 77q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5q0 -43 25.5 -77t66.5 -46v-157h-1l257 -257v-108q-40 -12 -66 -46t-26 -77
q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5q0 43 -26 77t-66 46v109l256 256v0v157q40 12 66 46t26 77zM200 768q0 23 16.5 39.5t39.5 16.5t39.5 -16.5t16.5 -39.5t-16.5 -39.5t-39.5 -16.5t-39.5 16.5t-16.5 39.5zM568 0q0 -23 -16.5 -39.5t-39.5 -16.5t-39.5 16.5
t-16.5 39.5t16.5 39.5t39.5 16.5t39.5 -16.5t16.5 -39.5zM768 712q-23 0 -39.5 16.5t-16.5 39.5t16.5 39.5t39.5 16.5t39.5 -16.5t16.5 -39.5t-16.5 -39.5t-39.5 -16.5z" />
<glyph glyph-name="edit1" unicode="&#xe692;"
d="M924 8h-824q-15 0 -25.5 -10.5t-10.5 -25.5t10.5 -25.5t25.5 -10.5h824q15 0 25.5 10.5t10.5 25.5t-10.5 25.5t-25.5 10.5zM296 126l236 100q5 2 10 6l397 398q21 21 21 51t-21 51l-79 79q-21 21 -51 21t-51 -21l-397 -397q-5 -5 -7 -11l-100 -235q-8 -20 7 -35t35 -7z
M809 760v0l79 -79l-62 -62l-79 79zM417 368l279 279l79 -79l-279 -279l-137 -58z" />
</font>
</defs></svg>

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.
Binary file not shown.
+65
View File
@@ -0,0 +1,65 @@
@font-face {font-family: "antdadmin";
src: url('iconfont.eot?t=1494298210172'); /* IE9*/
src: url('iconfont.eot?t=1494298210172#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('iconfont.woff?t=1494298210172') format('woff'), /* chrome, firefox */
url('iconfont.ttf?t=1494298210172') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/
url('iconfont.svg?t=1494298210172#antdadmin') format('svg'); /* iOS 4.1- */
}
.antdadmin {
font-family:"antdadmin" !important;
font-size:16px;
font-style:normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-home:before { content: "\e600"; }
.icon-user:before { content: "\e601"; }
.icon-timelimit:before { content: "\e602"; }
.icon-shopcart:before { content: "\e603"; }
.icon-message:before { content: "\e604"; }
.icon-remind:before { content: "\e605"; }
.icon-service:before { content: "\e606"; }
.icon-shop:before { content: "\e607"; }
.icon-sweep:before { content: "\e609"; }
.icon-express:before { content: "\e60a"; }
.icon-payment:before { content: "\e60b"; }
.icon-search:before { content: "\e60c"; }
.icon-feedback:before { content: "\e60d"; }
.icon-pencil:before { content: "\e60e"; }
.icon-setting:before { content: "\e60f"; }
.icon-refund:before { content: "\e610"; }
.icon-delete:before { content: "\e611"; }
.icon-star:before { content: "\e612"; }
.icon-heart:before { content: "\e613"; }
.icon-share:before { content: "\e615"; }
.icon-location:before { content: "\e616"; }
.icon-position:before { content: "\e617"; }
.icon-console:before { content: "\e618"; }
.icon-mobile:before { content: "\e61a"; }
Binary file not shown.
File diff suppressed because one or more lines are too long
+163
View File
@@ -0,0 +1,163 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>
Created by FontForge 20120731 at Tue May 9 10:50:10 2017
By admin
</metadata>
<defs>
<font id="antdadmin" horiz-adv-x="1024" >
<font-face
font-family="antdadmin"
font-weight="500"
font-stretch="normal"
units-per-em="1024"
panose-1="2 0 6 3 0 0 0 0 0 0"
ascent="896"
descent="-128"
x-height="792"
bbox="44 -69 970.781 847"
underline-thickness="0"
underline-position="0"
unicode-range="U+0078-E61A"
/>
<missing-glyph
/>
<glyph glyph-name=".notdef"
/>
<glyph glyph-name=".notdef"
/>
<glyph glyph-name=".null" horiz-adv-x="0"
/>
<glyph glyph-name="nonmarkingreturn" horiz-adv-x="341"
/>
<glyph glyph-name="x" unicode="x" horiz-adv-x="1001"
d="M281 543q-27 -1 -53 -1h-83q-18 0 -36.5 -6t-32.5 -18.5t-23 -32t-9 -45.5v-76h912v41q0 16 -0.5 30t-0.5 18q0 13 -5 29t-17 29.5t-31.5 22.5t-49.5 9h-133v-97h-438v97zM955 310v-52q0 -23 0.5 -52t0.5 -58t-10.5 -47.5t-26 -30t-33 -16t-31.5 -4.5q-14 -1 -29.5 -0.5
t-29.5 0.5h-32l-45 128h-439l-44 -128h-29h-34q-20 0 -45 1q-25 0 -41 9.5t-25.5 23t-13.5 29.5t-4 30v167h911zM163 247q-12 0 -21 -8.5t-9 -21.5t9 -21.5t21 -8.5q13 0 22 8.5t9 21.5t-9 21.5t-22 8.5zM316 123q-8 -26 -14 -48q-5 -19 -10.5 -37t-7.5 -25t-3 -15t1 -14.5
t9.5 -10.5t21.5 -4h37h67h81h80h64h36q23 0 34 12t2 38q-5 13 -9.5 30.5t-9.5 34.5q-5 19 -11 39h-368zM336 498v228q0 11 2.5 23t10 21.5t20.5 15.5t34 6h188q31 0 51.5 -14.5t20.5 -52.5v-227h-327z" />
<glyph glyph-name="home" unicode="&#xe600;"
d="M731 -52h-436q-72 0 -97.5 28.5t-25.5 104.5v457q0 10 7.5 17.5t18 7.5t18 -7.5t7.5 -17.5v-457q0 -56 10.5 -68.5t61.5 -12.5h436q52 0 66.5 13.5t14.5 67.5v457q0 10 7.5 17.5t18.5 7.5t18.5 -7.5t7.5 -17.5v-457q0 -75 -30 -104t-103 -29zM620 -39q-5 0 -9 4t-4 9v243
q0 18 -5.5 22t-27.5 4h-123q-8 0 -11.5 -0.5t-7 -0.5t-4 -3t-1 -4t0 -7.5t0.5 -10.5v-243q0 -5 -3.5 -9t-9 -4t-9.5 4t-4 9v243q0 32 10 42t39 10h123q31 0 45 -10.5t14 -41.5v-243q0 -5 -4 -9t-9 -4zM90 461q-13 0 -20 10q-7 9 -5.5 19.5t10.5 16.5l422 318q9 7 19.5 5.5
t17 -10t5 -19t-10.5 -16.5l-423 -319q-6 -5 -15 -5zM936 461q-9 0 -16 5l-423 319q-8 6 -9.5 16.5t5 19t17 10t18.5 -5.5l423 -318q8 -6 9.5 -16.5t-4.5 -19.5q-8 -10 -20 -10zM287 345q-5 0 -9 4t-4 9v146q0 8 3 10l167 129q10 8 17 -2q9 -12 0 -18l-161 -125v-140
q0 -5 -4 -9t-9 -4zM287 281q-5 0 -9 4t-4 9v13q0 5 4 9t9 4t9 -4t4 -9v-13q0 -5 -4 -9t-9 -4z" />
<glyph glyph-name="user" unicode="&#xe601;"
d="M513 -65h-298q-34 0 -59 24.5t-25 57.5q0 75 65 167.5t144 130.5q10 4 20 0.5t14.5 -13t1 -20t-13.5 -14.5q-68 -33 -123.5 -113.5t-55.5 -137.5q0 -11 10 -20.5t22 -9.5h298q11 0 18.5 -7.5t7.5 -18.5t-7.5 -18.5t-18.5 -7.5zM811 -65h-298q-11 0 -18.5 7.5t-7.5 18.5
t7.5 18.5t18.5 7.5h298q12 0 22 9.5t10 20.5q0 57 -55.5 137.5t-124.5 113.5q-9 4 -13 14.5t1 20t15 13t20 -0.5q79 -38 144 -130.5t65 -167.5q0 -33 -25.5 -57.5t-58.5 -24.5zM516.5 318q-105.5 0 -180 75t-74.5 180.5t74.5 180t180 74.5t180.5 -74.5t75 -180t-75 -180.5
t-180.5 -75zM517 777q-84 0 -143.5 -60t-59.5 -144t59.5 -143.5t143.5 -59.5t143.5 59.5t59.5 143.5t-59.5 144t-143.5 60zM370.5 560q-5.5 0 -9 4t-3.5 9q0 66 46.5 113t112.5 47q5 0 9 -4t4 -9.5t-4 -9t-9 -3.5q-55 0 -94.5 -39.5t-39.5 -94.5q0 -5 -3.5 -9t-9 -4z
M397 520.5q0 -5.5 -3.5 -9t-9 -3.5t-9.5 3.5t-4 9t4 9.5t9.5 4t9 -4t3.5 -9.5z" />
<glyph glyph-name="timelimit" unicode="&#xe602;"
d="M457 362l2 -2q1 0 1 -1q17 -21 44 -21q24 0 40.5 16.5t16.5 40.5q0 25 -19 42q-3 4 -5 5l-230 175q-11 9 -23 0q-6 -5 -7 -13t4 -14zM511 833q-12 0 -20 -8t-8 -19v-178q0 -11 8 -19t19.5 -8t19.5 8t8 19v149q99 -7 182.5 -61.5t133 -142t49.5 -187.5q0 -106 -52.5 -196
t-143 -142.5t-196.5 -52.5t-196.5 52.5t-143 142.5t-52.5 197q0 83 33.5 159t94.5 131q9 8 9.5 19t-7 19.5t-19 9t-20.5 -6.5q-69 -64 -107.5 -150.5t-38.5 -180.5q0 -91 35.5 -174t95.5 -142.5t142.5 -95t173.5 -35.5t173.5 35.5t142.5 95t95.5 142.5t35.5 173t-36.5 172.5
t-96.5 142.5t-142.5 96t-171.5 36zM607 54q2 0 4 1q109 32 177.5 125t68.5 207q0 5 -4 9t-9.5 4t-9.5 -4t-4 -9q0 -105 -63.5 -190.5t-163.5 -115.5q-6 -2 -8.5 -7t-0.5 -10q3 -10 13 -10v0zM511 66q-6 0 -10 -4t-3.5 -10t4.5 -9.5t9 -3.5h1q23 1 45 5q6 1 9 5.5t2 10
t-5.5 9t-10.5 2.5q-20 -4 -41 -5z" />
<glyph glyph-name="shopcart" unicode="&#xe603;"
d="M879 167h-490q-63 0 -76 70l-63 475l-1 9q-2 21 -3.5 33t-10 32.5t-22 31.5t-40.5 20t-64 9q-12 0 -20 -8t-8 -19.5t8 -20t20 -8.5q29 0 45.5 -4t24.5 -16t10.5 -22t3.5 -32l1 -11l63 -477v-1q11 -55 46 -86t86 -31h490q12 0 20 8t8 19.5t-8 20t-20 8.5zM948 709
q-28 31 -76 31h-538q-12 0 -20 -8.5t-8 -20t8 -19.5t20 -8h538q23 0 34 -12t8 -37l-42 -249q-3 -19 -17.5 -37t-41.5 -23l-411 -27q-12 0 -19.5 -9t-6.5 -20t9 -19t19 -8h2l414 28q45 7 73 37.5t34 68.5l42 250l1 1q5 50 -22 81zM820.5 434.5q-5.5 0.5 -10.5 -3t-5 -8.5
q-1 -5 -8 -22q-5 -12 8 -18q2 -1 5 -1q9 0 13 9q8 19 9 28q1 5 -2.5 10t-9 5.5zM844 487l15 90q3 29 -12 47q-16 18 -46 18h-90q-6 0 -10 -4t-4 -10t4 -10t10 -4h90q17 0 25 -9q7 -8 5 -24l-15 -90q-1 -5 2.5 -10t9.5 -6h2q12 0 14 12zM367 83q-27 0 -45.5 -19t-18.5 -46
t18.5 -45.5t45.5 -18.5t46 18.5t19 45.5t-19 46t-46 19zM814.5 83q-26.5 0 -45.5 -19t-19 -46t19 -45.5t45.5 -18.5t45.5 18.5t19 45.5t-19 46t-45.5 19z" />
<glyph glyph-name="message" unicode="&#xe604;"
d="M320 -69q-11 0 -19 7q-14 13 -7 32l32 76q9 19 10 31q-12 19 4 34q8 8 19.5 8t19.5 -8q27 -27 -2 -88l-1 -2l126 69q6 4 13 4q106 0 196.5 46t142.5 125.5t52 172.5q0 87 -53.5 163.5t-144 122t-193.5 45.5q-101 0 -190.5 -45t-143.5 -121.5t-57 -164.5q-2 -77 36 -147
t110 -121q10 -7 11.5 -18t-5 -20.5t-18 -11.5t-20.5 5q-83 59 -127.5 141t-41.5 173q3 103 64.5 192t163.5 141.5t218 52.5q119 0 222 -52.5t164 -142t61 -192.5q0 -107 -59 -198.5t-160 -145.5t-220 -56l-190 -103q-6 -4 -13 -4zM586 489h-250q-6 0 -10 4t-4 10t4 10t10 4
h250q6 0 10 -4t4 -10t-4 -10t-10 -4zM697 489h-42q-5 0 -9 4t-4 10t4 10t9 4h42q6 0 10 -4t4 -10t-4 -10t-10 -4zM503 350h-153q-6 0 -10 4.5t-4 10t4 9.5t10 4h153q5 0 9.5 -4t4.5 -9.5t-4.5 -10t-9.5 -4.5zM586 350h-28q-6 0 -10 4.5t-4 10t4 9.5t10 4h28q6 0 10 -4
t4 -9.5t-4 -10t-10 -4.5z" />
<glyph glyph-name="remind" unicode="&#xe605;"
d="M578 474h-240q-6 0 -10 4t-4 9.5t4 9.5t10 4h240q6 0 10 -4t4 -9.5t-4 -9.5t-10 -4zM685 474h-40q-6 0 -9.5 4t-3.5 9.5t3.5 9.5t9.5 4h40q6 0 9.5 -4t3.5 -9.5t-3.5 -9.5t-9.5 -4zM498 341h-147q-5 0 -9 3.5t-4 9t4 9.5t9 4h147q6 0 9.5 -4t3.5 -9.5t-3.5 -9t-9.5 -3.5z
M578 341h-26q-6 0 -10 3.5t-4 9t4 9.5t10 4h26q6 0 10 -4t4 -9.5t-4 -9t-10 -3.5zM274 167q-69 49 -105.5 116.5t-34.5 140.5q2 85 54 159t138.5 117t183.5 43q104 0 196 -49q-1 6 -1 12q0 23 8 45q-95 46 -203 46q-111 0 -209.5 -50.5t-158 -136t-62.5 -184.5
q-2 -87 40.5 -166.5t122.5 -136.5q9 -6 20 -4.5t17.5 10.5t4.5 20t-11 18zM836 579q51 -73 51 -154q0 -90 -50.5 -166.5t-137.5 -121t-189 -44.5q-7 0 -13 -3l-121 -66l1 1q28 59 2 85q-8 8 -19 8t-19 -8q-15 -15 -4 -33q0 -11 -9 -30l-31 -73q-7 -18 7 -30q8 -7 18 -7
q7 0 13 3l182 100q115 2 212.5 53.5t154 140t56.5 191.5q0 88 -48 168q-26 -13 -56 -14zM956 718.5q0 -46.5 -33 -79t-79.5 -32.5t-79 32.5t-32.5 79t32.5 79t79 32.5t79.5 -32.5t33 -79z" />
<glyph glyph-name="service" unicode="&#xe606;"
d="M512 756q-127 0 -225.5 -78t-127.5 -199q-4 0 -10.5 -1.5t-23.5 -9.5t-29.5 -19.5t-22 -33.5t-8.5 -49.5t13 -48.5t26.5 -31.5t31.5 -16.5t25.5 -7t11.5 -1q3 -1 6.5 -1t13 2.5t11.5 2.5q-26 61 -26 127q0 91 45 168t122 121.5t167.5 44.5t167.5 -44.5t121.5 -121.5
t44.5 -168q0 -109 -63.5 -196t-163.5 -120q-4 -2 -8 -1.5t-7 1.5l-3 1q-22 4 -50 -4q-10 -3 -15 -12t-4 -20q2 -25 23 -29q50 -8 61 15q1 2 2.5 6t3 6t3.5 4.5t5 3.5q76 26 134.5 82t87.5 132q4 0 11 1.5t25 8.5t32 17.5t25.5 31.5t12.5 47.5t-8 48t-23 32.5t-27.5 19
t-23.5 10l-10 2q-30 121 -128.5 199t-225.5 78v0zM512 111q-119 0 -203.5 84.5t-84.5 203t84.5 203t203.5 84.5t203 -84.5t84 -203t-84 -203t-203 -84.5zM511.5 630q-95.5 0 -163.5 -68t-68 -163.5t68 -163.5t163.5 -68t163.5 68t68 163.5t-68 163.5t-163.5 68zM515 204
q-46 0 -86 23q-38 22 -61 60q-8 12 4 19t20 -5q19 -31 51 -50q33 -19 72 -19t72 19q32 19 51 50q8 12 20 5t4 -19q-23 -38 -61 -60q-40 -23 -86 -23zM668 331q-5 0 -9 4q-10 9 -1 20q6 6 6 21q0 6 4 10t10 4t10 -4t4 -10q0 -26 -13 -41q-5 -4 -11 -4z" />
<glyph glyph-name="shop" unicode="&#xe607;"
d="M820.5 287q-10.5 0 -18.5 -8t-8 -18v-154q0 -25 -21.5 -47t-45.5 -22h-456q-23 0 -38.5 21t-15.5 48v154q0 10 -7.5 18t-18.5 8t-19 -8t-8 -18v-154q0 -47 30 -84.5t77 -37.5h456q46 0 83 37.5t37 84.5v154q0 10 -8 18t-18.5 8zM597 90q6 0 10 4t4 9.5t-4 9t-10 3.5h-39
q-5 0 -9 -3.5t-4 -9t4 -9.5t9 -4h39zM742 142v119q0 5 -4 9t-9.5 4t-9.5 -4t-4 -9v-119q0 -11 -8 -18t-13 -8q-6 0 -10 -3.5t-4 -9t4 -9.5t10 -4q14 0 31 14.5t17 37.5zM824 780q-7 5 -16 5h-594q-9 0 -16 -5q-46 -35 -91 -129t-45 -163q0 -66 47 -122t115 -56q47 0 87 19.5
t64 52.5q25 -33 64.5 -51.5t79.5 -18.5t77.5 19t58.5 52q26 -29 63.5 -47t70.5 -24q16 -2 30 -2q56 0 92 36q45 46 44 125q0 58 -44.5 167t-86.5 142zM874 383q-27 -27 -77 -19q-35 6 -72 28.5t-49 54.5v155q0 11 -7.5 18.5t-18.5 7.5t-18.5 -7.5t-7.5 -18.5v-152
q-1 -1 -1 -3q-3 -37 -34.5 -59.5t-69.5 -22.5q-40 0 -75.5 24t-41.5 61q-1 2 -1 5v147q0 11 -8 18.5t-18.5 7.5t-18.5 -7.5t-8 -18.5v-159q-10 -35 -44.5 -57.5t-79.5 -22.5t-77 39.5t-32 85.5q0 55 36.5 133.5t71.5 111.5h575q32 -32 68.5 -124.5t36.5 -137.5
q0 -58 -29 -88zM440 628q-5 0 -9 -4t-4 -9v-40q0 -5 4 -9t9 -4t9 4t4 9v40q0 5 -4 9t-9 4z" />
<glyph glyph-name="sweep" unicode="&#xe609;"
d="M94 526q-12 0 -20.5 8.5t-8.5 20.5v164q0 48 34.5 78.5t87.5 30.5h166q12 0 20.5 -8.5t8.5 -20t-8.5 -20t-20.5 -8.5h-166q-26 0 -45.5 -13t-19.5 -39v-164q0 -12 -8 -20.5t-20 -8.5zM353 -65h-166q-50 0 -86 36t-36 86v166q0 12 8.5 20.5t20.5 8.5t20 -8.5t8 -20.5v-166
q0 -26 19.5 -45t45.5 -19h166q12 0 20.5 -8.5t8.5 -20.5t-8.5 -20.5t-20.5 -8.5v0zM849 -65h-179q-12 0 -20.5 8.5t-8.5 20.5t8.5 20.5t20.5 8.5h179q26 0 39 19t13 45v166q0 12 8 20.5t20 8.5t20.5 -8.5t8.5 -20.5v-166q0 -53 -30.5 -87.5t-78.5 -34.5v0zM929 526
q-12 0 -20 8.5t-8 20.5v164q0 52 -52 52h-179q-12 0 -20.5 8.5t-8.5 20t8.5 20t20.5 8.5h179q51 0 80 -29t29 -80v-164q0 -12 -8.5 -20.5t-20.5 -8.5zM785 367h-706q-6 0 -10 4.5t-4 10.5t4 10t10 4h706q6 0 10.5 -4t4.5 -10t-4.5 -10.5t-10.5 -4.5zM944 367h-101
q-6 0 -10 4.5t-4 10.5t4 10t10 4h101q6 0 10 -4t4 -10t-4 -10.5t-10 -4.5z" />
<glyph glyph-name="express" unicode="&#xe60a;"
d="M931.5 70q-10.5 0 -18.5 8t-8 19v572q0 29 -20.5 49.5t-49.5 20.5h-409q-29 0 -49.5 -20.5t-20.5 -49.5v-70q0 -20 -19 -25q-51 -15 -116.5 -43.5t-93.5 -59.5q-7 -9 -9 -26t0 -29v-4v-308q0 -11 -8 -18.5t-18.5 -7.5t-18.5 7.5t-8 18.5v307q-7 61 23 94q54 62 215 114
v50q0 51 36 87t87 36h409q51 0 87 -36t36 -87v-572q0 -11 -8 -19t-18.5 -8zM314 325h-105q-5 0 -9 4t-4 9t4 9t9 4h105q10 0 16 10t6 22v115q0 5 4 9t9.5 4t9 -4t3.5 -9v-115q0 -23 -13 -40.5t-35 -17.5zM169 325h-20q-5 0 -9 4t-4 9t4 9t9 4h20q6 0 9.5 -4t3.5 -9t-3.5 -9
t-9.5 -4zM309 -28q-48 0 -82 34t-34 82t34 82t82 34t82.5 -34t34.5 -82t-34.5 -82t-82.5 -34zM309.5 152q-26.5 0 -45 -19t-18.5 -45t18.5 -45t45 -19t45 19t18.5 45t-18.5 45t-45 19zM709.5 -28q-48.5 0 -82.5 34t-34 82t34 82t82.5 34t82.5 -34t34 -82t-34 -82t-82.5 -34z
M709.5 152q-26.5 0 -45 -19t-18.5 -45t18.5 -45t45 -19t45 19t18.5 45t-18.5 45t-45 19zM619 62h-210q-11 0 -18.5 7.5t-7.5 18.5t7.5 18.5t18.5 7.5h210q11 0 19 -7.5t8 -18.5t-8 -18.5t-19 -7.5z" />
<glyph glyph-name="payment" unicode="&#xe60b;"
d="M235 87q-21 0 -35.5 15.5t-14.5 37.5v227q0 5 -4 9t-9.5 4t-9.5 -4t-4 -9v-227q0 -33 22.5 -56.5t54.5 -23.5q6 0 9.5 4t3.5 9.5t-3.5 9.5t-9.5 4zM300 87h-13q-6 0 -10 -4t-4 -9.5t4 -9.5t10 -4h13q6 0 9.5 4t3.5 9.5t-3.5 9.5t-9.5 4zM866 407h-54v122q0 30 -20.5 54.5
t-51.5 32.5q2 8 -1 15l-58 154q-3 10 -13.5 14.5t-20.5 1.5l-462 -173q-7 -2 -11 -8h-21q-38 0 -63 -26.5t-25 -64.5v-469q0 -39 25 -66t63 -27h561q39 0 68.5 27.5t29.5 65.5v107h54q38 0 65.5 27t27.5 65v55q0 38 -27.5 65.5t-65.5 27.5zM641 741l45 -121h-370zM759 60
q0 -16 -14 -28t-31 -12h-561q-16 0 -25.5 11.5t-9.5 28.5v469q0 16 9.5 27t25.5 11h561q17 0 31 -11.5t14 -26.5v-122h-81q-39 0 -66 -27.5t-27 -65.5v-55q0 -38 27 -65t66 -27h81v-107zM905 259q0 -16 -11.5 -27.5t-27.5 -11.5h-188q-17 0 -28.5 11.5t-11.5 27.5v55
q0 16 11.5 27.5t28.5 11.5h188q16 0 27.5 -11.5t11.5 -27.5v-55zM705.5 313q-10.5 0 -18 -7.5t-7.5 -18t7.5 -18t18 -7.5t18 7.5t7.5 18t-7.5 18t-18 7.5z" />
<glyph glyph-name="search" unicode="&#xe60c;"
d="M216 525q3 -2 8 -2q9 0 13 8q35 57 93.5 90.5t125.5 33.5q6 0 11 4.5t5 11.5t-5 11.5t-11 4.5q-75 0 -141.5 -37.5t-104.5 -102.5q-3 -6 -1.5 -12.5t7.5 -9.5zM196.5 478.5q-6.5 1.5 -12 -2t-6.5 -9.5q-8 -32 -8 -56q0 -7 4.5 -11.5t11.5 -4.5t11.5 4.5t4.5 11.5
q0 20 7 48q1 7 -2.5 12.5t-10 7zM947 20l-163 163l-1 1q65 99 65 217q0 107 -52.5 197.5t-143 143t-197 52.5t-197 -52.5t-143 -143t-52.5 -197t52.5 -197t143 -143t197.5 -52.5q116 0 213 63l-46 47q-78 -46 -167 -46t-165 44t-120 119.5t-44 164.5t44 165t120 120t165 44
t164.5 -44t119.5 -120t44 -165q0 -127 -86 -221l36 -37q2 -3 5 -5l163 -163q9 -10 22.5 -10t23 9.5t9.5 22.5t-10 23v0z" />
<glyph glyph-name="feedback" unicode="&#xe60d;"
d="M512 -63q-91 0 -174 35.5t-142.5 95.5t-95 142.5t-35.5 173.5q0 90 33.5 171.5t97 144.5t145 97t171.5 34q137 0 250 -77q92 -63 144 -161t52 -209q0 -16 -1 -30q-7 -115 -69 -211t-161.5 -151t-214.5 -55zM512 775q-79 0 -150 -29.5t-126.5 -85t-85.5 -127t-30 -149.5
q0 -106 52.5 -196t142.5 -142.5t197 -52.5q101 0 188 48t141 132t61 185q1 12 1 26q0 97 -45.5 183t-126.5 141q-99 67 -219 67zM177 344q-12 0 -13 13q-2 13 -2 27q0 6 4.5 10t10 4t9.5 -4t4 -10q0 -12 1 -25q1 -6 -3 -10t-9 -5h-2zM302 120q-4 0 -8 3q-84 63 -116 162
q-4 13 9 17.5t17 -8.5q29 -91 106 -148q12 -9 3 -20q-4 -6 -11 -6zM505.5 197q-11.5 0 -20 8.5t-8.5 19.5v136q0 12 8.5 20t19.5 8q49 0 79.5 31t30.5 79q0 46 -30 78t-74 32t-73.5 -31.5t-29.5 -77.5v-24q0 -12 -8.5 -20t-20 -8t-19.5 8t-8 20v24q0 69 46 116.5t113 47.5
t113.5 -47.5t46.5 -117.5q0 -63 -38.5 -108.5t-99.5 -54.5v-111q0 -11 -8 -19.5t-19.5 -8.5zM532 146q0 -11 -8 -19t-19 -8t-19 8t-8 19t8 19t19 8t19 -8t8 -19z" />
<glyph glyph-name="pencil" unicode="&#xe60e;"
d="M97 -61q-12 0 -20 8l-6 6q-11 11 -7 26q8 35 19 74.5t34.5 100t42.5 79.5l562 562q37 37 90 37q57 0 98 -41l6 -6q39 -39 42 -95q4 -58 -35 -97l-561 -561q-20 -20 -81.5 -42t-102 -32.5t-75.5 -18.5h-6v0zM812 776q-30 0 -51 -21l-561 -561q-28 -28 -72 -192
q166 41 194 69l562 562q20 21 18 54q-2 34 -26 58l-6 7q-24 24 -58 24zM860 579q-6 0 -10 4l-150 150q-10 10 -0.5 20t19.5 0l151 -150q10 -10 0 -20q-4 -4 -10 -4zM350.5 69q-5.5 0 -9.5 4l-151 151q-10 10 0 20t20 0l151 -151q9 -10 0 -20q-5 -4 -10.5 -4zM240.5 -2
q-5.5 0 -9.5 4l-97 96q-10 10 0 20t20 0l96 -97q10 -9 0 -19q-4 -4 -9.5 -4zM258 162q-6 0 -10 4q-10 10 0 20l417 417q10 10 20 0t0 -20l-417 -417q-4 -4 -10 -4zM715 619q-6 0 -10 4q-10 10 0 20l52 52q10 10 20 0t0 -20l-52 -52q-4 -4 -10 -4zM304.5 116q-5.5 0 -10.5 4
q-9 10 0 20l510 509q10 10 19.5 0t0.5 -20l-510 -509q-4 -4 -9.5 -4z" />
<glyph glyph-name="setting" unicode="&#xe60f;"
d="M507.5 258q-52.5 0 -89.5 37t-37 89t37 89t89.5 37t89.5 -37t37 -89t-37 -89t-89.5 -37zM507.5 456q-29.5 0 -50.5 -21t-21 -50.5t21 -50.5t50.5 -21t50.5 21t21 50.5t-21 50.5t-50.5 21zM511 -63h-2q-38 0 -69 25.5t-43 65.5q-32 10 -62 26q-32 -18 -66 -18
q-45 0 -75 30l-2 2q-26 26 -30 66t16 77q-12 23 -24 63q-40 12 -64 41.5t-24 67.5v2q0 37 24 67.5t64 42.5q11 38 25 65q-20 36 -16.5 74.5t29.5 64.5l1 2q31 32 79 32q34 0 65 -17q28 14 58 24q10 40 42 65.5t72 25.5h2q40 0 70 -25.5t40 -65.5q30 -10 59 -25q29 18 63 18
q48 0 81 -34l2 -1q28 -28 31.5 -67.5t-17.5 -74.5q18 -36 26 -59q40 -9 66.5 -40.5t26.5 -71.5v-2q0 -40 -26.5 -71.5t-66.5 -40.5q-8 -24 -25 -56q21 -35 17 -76t-33 -69l-2 -3q-33 -33 -77 -33v0q-32 0 -64 19q-28 -15 -63 -26q-11 -40 -41 -65t-67 -25zM334 113
q7 0 13 -4q38 -22 80 -33q17 -4 20 -22q4 -26 22 -44t40 -18h2q23 0 38.5 18.5t18.5 43.5q3 18 21 22q42 12 81 34q16 10 31 -2q21 -17 45 -17v0q22 0 38 16l2 1q17 17 17 42.5t-16 45.5q-12 14 -3 31q22 39 32 75q5 19 26 21q26 2 44 19t18 41v2q0 24 -18 41t-44 20
q-20 1 -25 20q-10 38 -33 78q-10 16 2 31q17 21 17.5 44t-15.5 40l-2 1q-18 18 -43 18t-45 -16q-14 -12 -31 -3q-37 22 -78 33q-18 5 -20 24q-2 26 -18.5 43t-39.5 17h-2q-24 0 -42 -17.5t-21 -43.5q-2 -18 -20 -23q-40 -11 -76 -32q-16 -9 -30 2q-22 16 -48 16
q-25 0 -40 -16l-2 -1q-15 -18 -13.5 -41t16.5 -43q10 -15 1 -30q-21 -36 -33 -82q-5 -17 -21 -20q-26 -5 -42.5 -22t-16.5 -38v-2q0 -21 16.5 -38t42.5 -21q17 -3 22 -20q11 -45 32 -80q9 -15 -2 -30q-15 -22 -15 -47t15 -40l2 -3q13 -13 35 -13q25 0 48 17q8 5 17 5z
M742 460q-9 0 -13 9q-26 68 -87 110t-134 42q-6 0 -10 4t-4 9.5t4 9.5t10 4v0q82 0 150 -46.5t97 -122.5q5 -13 -8 -18q-2 -1 -5 -1zM278 262q-8 0 -12 6q-3 5 -6 14q-3 8 -4 12q-5 13 7.5 18t17.5 -8q2 -6 4.5 -12.5t4.5 -9.5q7 -11 -5 -18q-3 -2 -7 -2zM502 125v0
q-58 0 -111 24.5t-91 69.5q-9 10 1.5 19t19.5 -2q34 -40 81.5 -62t99.5 -22q6 0 10 -4t4 -9.5t-4 -9.5t-10 -4z" />
<glyph glyph-name="refund" unicode="&#xe610;"
d="M848 379q0 -6 4 -9.5t9.5 -3.5t9 3.5t3.5 9.5q0 110 -67 198t-173 117q-13 4 -16.5 -9t9.5 -16q98 -27 159.5 -108t61.5 -182zM547 680q9 0 17 -1h1q5 0 9 3.5t4 9t-3.5 9.5t-8.5 4q-10 1 -19 1q-5 0 -9 -4t-4 -9.5t4 -9t9 -3.5zM536 809q-115 0 -212.5 -56.5
t-154 -154.5t-56.5 -212q0 -26 3 -51l-31 -11q-15 -5 -18 -21q-3 -18 12 -30l89 -73q8 -7 18 -7q20 0 25 24l23 111q3 16 -7 28q-13 15 -31 8l-23 -8q-1 15 -1 30q0 98 48.5 182t133 133t183 49t182.5 -49t133 -133t49 -182.5t-49 -182.5t-133 -133t-183 -49q-136 0 -239 90
q-9 8 -21.5 7t-20.5 -10t-7 -21.5t10 -20.5q119 -104 278 -104q115 0 213 56.5t154.5 154.5t56.5 212.5t-56.5 212.5t-154.5 154.5t-213 56.5zM406 298q-12 0 -18 -5.5t-6 -19.5q0 -25 26 -25h100v-85q0 -17 5.5 -24t21.5 -7t21 7t5 24v85h102q26 0 26 25t-26 25h-102v41
h102q26 0 26 25t-26 25h-74l93 156q7 12 7 20.5t-10 15.5q-10 6 -20 6t-20 -16l-104 -176l-104 176q-9 15 -20.5 15t-19.5 -6t-8 -15.5t5 -19.5l93 -156h-75q-12 0 -18 -5.5t-6 -19.5q0 -25 26 -25h100v-41h-102z" />
<glyph glyph-name="delete" unicode="&#xe611;"
d="M703 -63h-406q-39 0 -62 4.5t-39.5 18.5t-23 39.5t-6.5 68.5v438q0 11 8 19t19.5 8t19 -8t7.5 -19v-438v-31.5t3 -20t6.5 -14.5t13.5 -6t21.5 -4.5t32.5 -0.5h406q23 0 33.5 0.5t22.5 3.5t16 7t8 13t5 21t1 32v438q0 11 8 19t19 8t19 -8t8 -19v-438q0 -77 -30 -104
t-110 -27zM694 655q-11 0 -19 8t-8 19v8q0 58 -15.5 72.5t-69.5 14.5h-163q-29 0 -43.5 -2.5t-22.5 -13.5t-9.5 -24.5t-1.5 -46.5v-8q0 -11 -8 -19t-19 -8t-19 8t-8 19v8q0 80 27.5 110.5t103.5 30.5h163q81 0 110 -33t29 -108v-8q0 -11 -8 -19t-19 -8zM342.5 73
q-5.5 0 -9.5 4t-4 9v27q0 6 4 10t9.5 4t9.5 -4t4 -10v-27q0 -5 -4 -9t-9.5 -4zM342.5 167q-5.5 0 -9.5 4t-4 10v230q0 6 4 10t9.5 4t9.5 -4t4 -10v-230q0 -6 -4 -10t-9.5 -4zM504.5 73q-5.5 0 -9.5 4t-4 9v325q0 6 4 10t9.5 4t9.5 -4t4 -10v-325q0 -5 -4 -9t-9.5 -4zM667 73
q-6 0 -9.5 4t-3.5 9v325q0 6 3.5 10t9.5 4t10 -4t4 -10v-325q0 -5 -4 -9t-10 -4zM951 590q0 -46 -32.5 -78.5t-78.5 -32.5h-657q-46 0 -79 32.5t-33 78.5v7q0 46 33 79t79 33h657q46 0 78.5 -33t32.5 -79v-7zM897 597q0 24 -16.5 41t-40.5 17h-657q-24 0 -40.5 -17
t-16.5 -41v-7q0 -23 16.5 -40t40.5 -17h657q24 0 40.5 17t16.5 40v7z" />
<glyph glyph-name="star" unicode="&#xe612;"
d="M737 -62q-22 0 -43 11l-183 99l-184 -99q-22 -12 -48 -10.5t-46 15.5q-22 14 -32 37.5t-5 48.5l36 215l-156 155q-18 18 -23.5 42t2.5 48t27.5 39.5t44.5 19.5l211 32l92 190q11 23 33 36.5t48 13.5t48 -13.5t33 -36.5l92 -190l211 -32q25 -4 44 -19.5t27 -39.5t2.5 -48
t-23.5 -42l-155 -155l36 -215q4 -25 -6 -48.5t-31 -37.5q-23 -16 -52 -16zM511 106q7 0 13 -4l196 -105q20 -11 38 2q18 12 14 32l-38 229q-2 14 8 24l165 165q15 14 8 34q-7 19 -28 22l-226 34q-14 2 -20 15l-98 203q-10 20 -32.5 20t-31.5 -20l-98 -203q-7 -13 -21 -15
l-225 -34q-22 -3 -28 -22q-7 -20 8 -34l165 -165q10 -10 7 -24l-38 -229q-3 -20 14 -32q19 -13 38 -2l197 105q6 4 13 4v0zM213 437q-11 0 -13 12q-1 5 2.5 9.5t8.5 5.5l9 2q6 1 10.5 -2.5t5.5 -9t-2.5 -10t-8.5 -5.5l-9 -1q-2 -1 -3 -1zM263 445q-11 0 -13 11q-1 6 2 10.5
t9 5.5l146 29l56 127q5 12 17.5 6.5t7.5 -17.5l-58 -134q-3 -6 -10 -8l-154 -29q-2 -1 -3 -1z" />
<glyph glyph-name="heart" unicode="&#xe613;"
d="M512 -27v0q-35 0 -71 36q-38 37 -307 361q-70 71 -70 171q0 101 71 172l7 6q71 72 172 72t172 -72q2 -1 3 -3v0q9 -10 22 -10q14 0 20 9l4 4q71 72 172 72t173 -72l6 -6q71 -71 71 -172q0 -99 -70 -171q-263 -319 -304 -361q-36 -36 -71 -36v0zM314 734q-77 0 -132 -55
l-6 -6q-55 -55 -55 -132t55 -131q1 -1 1 -2q268 -323 304 -359q19 -19 30.5 -19t30.5 19q42 42 302 359l2 2q54 54 54 131t-54 132l-7 6q-54 55 -132 55q-76 0 -130 -53q-24 -32 -66 -32q-40 0 -66 31q-54 54 -131 54zM188 558h-4q-5 2 -8 7t-2 11q11 37 38 65l4 4
q28 27 64.5 37.5t73.5 1.5q6 -1 9 -6t2 -11t-6 -9t-11 -2q-30 7 -59.5 -1t-51.5 -30l-4 -4q-23 -23 -31 -53q-3 -10 -14 -10zM415 620q-6 0 -10 5q-7 7 -15 13q-12 8 -4 19.5t20 3.5q10 -7 19 -16q10 -10 0 -20q-4 -5 -10 -5z" />
<glyph glyph-name="share" unicode="&#xe615;"
d="M746.5 476q-73.5 0 -125.5 52t-52 125.5t52 125.5t125.5 52t125.5 -52t52 -125.5t-52 -125.5t-125.5 -52zM747 774q-50 0 -85.5 -35.5t-35.5 -85t35.5 -85t85.5 -35.5t85 35.5t35 85t-35 85t-85 35.5zM681 683q-4 0 -8 3q-11 7 -4 19q28 41 78 41q5 0 9.5 -4t4.5 -10
t-4.5 -10t-9.5 -4q-35 0 -54 -29q-4 -6 -12 -6zM266 215q-82 0 -140 58t-58 140t58 140.5t140 58.5t140.5 -58.5t58.5 -140.5t-58.5 -140t-140.5 -58zM266 555q-59 0 -100.5 -41.5t-41.5 -100.5t41.5 -100.5t100.5 -41.5t100.5 41.5t41.5 100.5t-41.5 100.5t-100.5 41.5z
M176 399q-6 0 -10 4t-4 10v3q0 6 1 11q1 6 5.5 9.5t10.5 2t9.5 -6t1.5 -10.5v-4.5v-4.5q0 -6 -4 -10t-10 -4zM191 449q-4 0 -8 2q-11 8 -3 20q30 46 86 46q6 0 10 -4t4 -10t-4 -10t-10 -4q-40 0 -63 -34q-4 -6 -12 -6zM732.5 -63q-91.5 0 -156.5 65t-65 156.5t65 156.5
t156.5 65t156.5 -65t65 -156.5t-65 -156.5t-156.5 -65zM732.5 324q-68.5 0 -116.5 -48.5t-48 -116.5t48 -116.5t116.5 -48.5t116.5 48.5t48 116.5t-48 116.5t-116.5 48.5zM633 216q-4 0 -7 2q-12 8 -4 20q16 24 41.5 37.5t54.5 13.5q6 0 10 -4t4 -10t-4 -10t-10 -4
q-47 0 -73 -39q-4 -6 -12 -6zM409 457l-22 52l233 100l22 -52zM410 331l155 -76l-25 -51l-155 76z" />
<glyph glyph-name="location" unicode="&#xe616;"
d="M501 55q-91 0 -168.5 45t-123 122.5t-45.5 169t45.5 169t123 122.5t168.5 45t169 -45t123 -122.5t45 -169t-45 -169t-123 -122.5t-169 -45zM501.5 673q-116.5 0 -199.5 -82.5t-83 -199t83 -199t199.5 -82.5t199 82.5t82.5 199t-82.5 199t-199 82.5zM339 537q-6 0 -10 5
q-9 10 1 19q42 39 97 54q5 1 10 -1.5t6 -8.5q4 -13 -9 -17q-48 -13 -85 -47q-4 -4 -10 -4zM282 451q-2 0 -4 1q-13 4 -9 17q6 17 15 32q6 12 18 5.5t6 -18.5q-8 -14 -13 -28q-3 -9 -13 -9zM508.5 583q-11.5 0 -19.5 8t-8 20v192q0 12 8 20t19.5 8t19.5 -8t8 -20v-192
q0 -12 -8 -20t-19.5 -8zM508.5 -63q-11.5 0 -19.5 8t-8 20v192q0 12 8 20t19.5 8t19.5 -8t8 -20v-192q0 -12 -8 -20t-19.5 -8zM916 350h-193q-11 0 -19 8t-8 19.5t8 19.5t19 8h193q11 0 19 -8t8 -19.5t-8 -19.5t-19 -8zM270 350h-193q-11 0 -19 8t-8 19.5t8 19.5t19 8h193
q11 0 19 -8t8 -19.5t-8 -19.5t-19 -8z" />
<glyph glyph-name="position" unicode="&#xe617;"
d="M512 407q-52 0 -88.5 36.5t-36.5 88.5t36.5 89t88.5 37v0q52 0 89 -37t37 -89t-37 -88.5t-89 -36.5zM512.5 603q-29.5 0 -50 -20.5t-20.5 -50t20.5 -50t50 -20.5t50 20.5t20.5 50t-20.5 50t-50 20.5zM693 561q-11 0 -13 10q-1 5 -2.5 10t-1.5 7q-6 12 6.5 17.5t18.5 -6.5
l3 -12q1 -6 2 -10q1 -5 -1.5 -10t-8.5 -6h-3zM668 619q-7 0 -11 7q-45 70 -127 81q-5 1 -8.5 5.5t-3 10t5 9t10.5 2.5q45 -6 83 -30.5t63 -63.5q7 -11 -5 -19q-3 -2 -7 -2zM512 -63q-61 0 -101 80q-52 101 -122.5 276.5t-70.5 244.5q0 121 86 207t207 86t207 -86t86 -207
q0 -68 -70.5 -245t-120.5 -276q-40 -80 -101 -80zM510.5 776q-98.5 0 -168.5 -70t-70 -168q0 -56 67 -224t120 -272q26 -50 53.5 -50t52.5 50q49 98 116.5 269t67.5 227q0 98 -70 168t-168.5 70z" />
<glyph glyph-name="console" unicode="&#xe618;"
d="M964 34q0 -40 -28 -68.5t-68 -28.5h-714q-40 0 -68.5 28.5t-28.5 68.5v700q0 40 28.5 68.5t68.5 28.5h714q40 0 68 -28.5t28 -68.5v-700zM909 734q0 17 -12 29t-29 12h-714q-17 0 -29 -12t-12 -29v-700q0 -17 12 -29t29 -12h714q17 0 29 12t12 29v700zM931 621h-851
q-6 0 -10 4t-4 10t4 10t10 4h851q6 0 10 -4t4 -10t-4 -10t-10 -4zM177 691h-14q-5 0 -9.5 4t-4.5 10t4.5 10t9.5 4h14q6 0 10 -4t4 -10t-4 -10t-10 -4zM275 691h-14q-6 0 -10 4t-4 10t4 10t10 4h14q6 0 10 -4t4 -10t-4 -10t-10 -4zM373 691h-14q-6 0 -10 4t-4 10t4 10t10 4
h14q6 0 10 -4t4 -10t-4 -10t-10 -4zM361 126q-6 0 -11 5l-128 158q-7 9 0 18l79 97q9 11 20 2t2 -20l-72 -88l121 -149q9 -11 -2 -20q-4 -3 -9 -3zM348 426q-5 0 -8 3q-11 9 -2 20l12 16q9 10 20 1.5t2 -19.5l-13 -16q-4 -5 -11 -5zM664 126q-5 0 -9 3q-11 9 -2 20l121 149
l-121 149q-9 11 2 19.5t19 -1.5l128 -158q8 -9 0 -18l-128 -158q-4 -5 -10 -5zM454 200q-5 0 -9 3q-10 9 -2 20l128 158q9 11 20 2t2 -20l-128 -158q-4 -5 -11 -5z" />
<glyph glyph-name="mobile" unicode="&#xe61a;"
d="M826 34q0 -40 -28.5 -68.5t-68.5 -28.5h-434q-40 0 -68.5 28.5t-28.5 68.5v700q0 40 28.5 68.5t68.5 28.5h434q40 0 68.5 -28.5t28.5 -68.5v-700v0zM770 734q0 17 -12 29t-29 12h-434q-17 0 -29 -12t-12 -29v-700q0 -17 12 -29t29 -12h434q17 0 29 12t12 29v700zM798 119
h-573q-6 0 -10 4t-4 10t4 10t10 4h573q5 0 9 -4t4 -10t-4 -10t-9 -4zM798 677h-573q-6 0 -10 4t-4 10t4 10t10 4h573q5 0 9 -4t4 -10t-4 -10t-9 -4zM547 59q0 -10 -7 -17t-18 -7h-7q-10 0 -17 7t-7 17v7q0 11 7 18t17 7h7q11 0 18 -7t7 -18v-7zM575 429q-2 0 -5 1
q-13 5 -8 18l4 11q4 13 17.5 8t8.5 -18l-4 -11q-3 -9 -13 -9zM522 278h-5q-13 5 -8 18l39 113q5 13 18 8.5t9 -17.5l-40 -113q-3 -9 -13 -9zM465 383q-2 0 -4 1q-14 4 -9 17l58 165q5 14 18 9t8 -18l-58 -165q-3 -9 -13 -9zM438 305q-2 0 -5 1q-13 5 -8 18l8 24q5 13 18 8.5
t9 -17.5l-9 -24q-3 -10 -13 -10z" />
</font>
</defs></svg>

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

+2 -1
View File
@@ -1,4 +1,5 @@
import React, { PropTypes } from 'react'
import React from 'react'
import PropTypes from 'prop-types'
import { TweenOneGroup } from 'rc-tween-one'
const enterAnim = [
+2 -1
View File
@@ -1,4 +1,5 @@
import React, { PropTypes } from 'react'
import React from 'react'
import PropTypes from 'prop-types'
import { Table } from 'antd'
import { request } from '../../utils'
import lodash from 'lodash'
+2 -1
View File
@@ -1,4 +1,5 @@
import React, { PropTypes } from 'react'
import React from 'react'
import PropTypes from 'prop-types'
import { Dropdown, Button, Icon, Menu } from 'antd'
const DropOption = ({ onMenuClick, menuOptions = [], buttonStyle, dropdownProps }) => {
+29
View File
@@ -0,0 +1,29 @@
import React from 'react'
import PropTypes from 'prop-types'
import styles from './FilterItem.less'
const FilterItem = ({
label = '',
children,
}) => {
const labelArray = label.split('')
return (
<div className={styles.filterItem}>
{labelArray.length > 0
? <div className={styles.labelWrap}>
{labelArray.map((item, index) => <span className="labelText" key={index}>{item}</span>)}
</div>
: ''}
<div className={styles.item}>
{children}
</div>
</div>
)
}
FilterItem.propTypes = {
label: PropTypes.string,
children: PropTypes.element.isRequired,
}
export default FilterItem
+17
View File
@@ -0,0 +1,17 @@
.filterItem {
display: flex;
justify-content: space-between;
.labelWrap {
width: 64px;
line-height: 28px;
margin-right: 12px;
justify-content: space-between;
display: flex;
overflow: hidden;
}
.item {
flex: 1;
}
}
+6
View File
@@ -0,0 +1,6 @@
{
"name": "FilterItem",
"version": "0.0.0",
"private": true,
"main": "./FilterItem.js"
}
+13 -6
View File
@@ -1,14 +1,21 @@
import React, { PropTypes } from 'react'
import React from 'react'
import PropTypes from 'prop-types'
import './iconfont.less'
const Iconfont = ({ type }) => <span
dangerouslySetInnerHTML={{
__html: `<svg class="iconfont" aria-hidden="true"><use xlink:href="#anticon-${type}"></use></svg>`,
}}
/>
const Iconfont = ({ type, colorful }) => {
if (colorful) {
return (<span
dangerouslySetInnerHTML={{
__html: `<svg class="colorful-icon" aria-hidden="true"><use xlink:href="#${type.startsWith('#') ? type.replace(/#/, '') : type}"></use></svg>`,
}}
/>)
}
return <i className={`antdadmin icon-${type}`} />
}
Iconfont.propTypes = {
type: PropTypes.string,
colorful: PropTypes.bool,
}
export default Iconfont
+1 -1
View File
@@ -1,4 +1,4 @@
:global .iconfont {
:global .colorful-icon {
width: 1em;
height: 1em;
vertical-align: -0.15em;
+36 -39
View File
@@ -1,47 +1,50 @@
import React, { PropTypes } from 'react'
import React from 'react'
import PropTypes from 'prop-types'
import { Breadcrumb, Icon } from 'antd'
import { Link } from 'dva/router'
import styles from './Bread.less'
import { menu } from '../../utils'
import pathToRegexp from 'path-to-regexp'
import { queryArray } from '../../utils'
let pathSet = []
const getPathSet = function (menuArray, parentPath) {
parentPath = parentPath || '/'
menuArray.forEach(item => {
pathSet[(parentPath + item.key).replace(/\//g, '-').hyphenToHump()] = {
path: parentPath + item.key,
name: item.name,
icon: item.icon || '',
clickable: item.clickable === undefined,
const Bread = ({ menu }) => {
// 匹配当前路由
let pathArray = []
let current
for (let index in menu) {
if (menu[index].router && pathToRegexp(menu[index].router).exec(location.pathname)) {
current = menu[index]
break
}
if (item.child) {
getPathSet(item.child, `${parentPath}${item.key}/`)
}
})
}
getPathSet(menu)
}
function Bread ({ location }) {
let pathNames = []
location.pathname.substr(1).split('/').forEach((item, key) => {
if (key > 0) {
pathNames.push((`${pathNames[key - 1]}-${item}`).hyphenToHump())
} else {
pathNames.push((`-${item}`).hyphenToHump())
const getPathArray = (item) => {
pathArray.unshift(item)
if (item.bpid) {
getPathArray(queryArray(menu, item.bpid, 'id'))
}
})
}
const breadsArray = pathNames.filter(item => (item in pathSet))
const breads = breadsArray.map((item, key) => {
if (!current) {
pathArray.push(menu[0])
pathArray.push({
id: 404,
name: 'Not Found',
})
} else {
getPathArray(current)
}
// 递归查找父级
const breads = pathArray.map((item, key) => {
const content = (
<span>{pathSet[item].icon
? <Icon type={pathSet[item].icon} style={{ marginRight: 4 }} />
: ''}{pathSet[item].name}</span>
<span>{item.icon
? <Icon type={item.icon} style={{ marginRight: 4 }} />
: ''}{item.name}</span>
)
return (
<Breadcrumb.Item key={key}>
{((breadsArray.length - 1) !== key && pathSet[item].clickable)
? <Link to={pathSet[item].path}>
{((pathArray.length - 1) !== key)
? <Link to={item.router}>
{content}
</Link>
: content}
@@ -52,12 +55,6 @@ function Bread ({ location }) {
return (
<div className={styles.bread}>
<Breadcrumb>
<Breadcrumb.Item >
<Link to="/dashboard">
<Icon type="home" />
<span>Home</span>
</Link>
</Breadcrumb.Item>
{breads}
</Breadcrumb>
</div>
@@ -65,7 +62,7 @@ function Bread ({ location }) {
}
Bread.propTypes = {
location: PropTypes.object,
menu: PropTypes.array,
}
export default Bread
+6 -3
View File
@@ -1,13 +1,15 @@
import React, { PropTypes } from 'react'
import React from 'react'
import PropTypes from 'prop-types'
import { Menu, Icon, Popover } from 'antd'
import styles from './Header.less'
import Menus from './Menu'
const SubMenu = Menu.SubMenu
function Header ({ user, logout, switchSider, siderFold, isNavbar, menuPopoverVisible, location, switchMenuPopover, navOpenKeys, changeOpenKeys }) {
const Header = ({ user, logout, switchSider, siderFold, isNavbar, menuPopoverVisible, location, switchMenuPopover, navOpenKeys, changeOpenKeys, menu }) => {
let handleClickMenu = e => e.key === 'logout' && logout()
const menusProps = {
menu,
siderFold: false,
darkTheme: false,
isNavbar,
@@ -38,7 +40,7 @@ function Header ({ user, logout, switchSider, siderFold, isNavbar, menuPopoverVi
{user.username} < /span>}
>
<Menu.Item key="logout">
<a>注销</a>
Sign out
</Menu.Item>
</SubMenu>
</Menu>
@@ -48,6 +50,7 @@ function Header ({ user, logout, switchSider, siderFold, isNavbar, menuPopoverVi
}
Header.propTypes = {
menu: PropTypes.array,
user: PropTypes.object,
logout: PropTypes.func,
switchSider: PropTypes.func,
+1
View File
@@ -17,6 +17,7 @@
.rightWarpper {
display: flex;
padding-right: 16px;
}
.button {
-1
View File
@@ -69,7 +69,6 @@
height: 100vh;
transition: @transition-ease-out;
box-shadow: @shadow-1;
z-index: 520;
color: #999;
&.light {
+77 -27
View File
@@ -1,36 +1,60 @@
import React, { PropTypes } from 'react'
import React from 'react'
import PropTypes from 'prop-types'
import { Menu, Icon } from 'antd'
import { Link } from 'dva/router'
import { menu } from '../../utils'
import { arrayToTree, queryArray } from '../../utils'
import pathToRegexp from 'path-to-regexp'
const topMenus = menu.map(item => item.key)
const getMenus = function (menuArray, siderFold, parentPath = '/') {
return menuArray.map(item => {
const linkTo = parentPath + item.key
if (item.child) {
const Menus = ({ siderFold, darkTheme, location, handleClickNavMenu, navOpenKeys, changeOpenKeys, menu }) => {
// 生成树状
const menuTree = arrayToTree(menu.filter(_ => _.mpid !== -1), 'id', 'mpid')
const levelMap = {}
// 递归生成菜单
const getMenus = (menuTreeN, siderFoldN) => {
return menuTreeN.map(item => {
if (item.children) {
if (item.mpid) {
levelMap[item.id] = item.mpid
}
return (
<Menu.SubMenu
key={item.id}
title={<span>
{item.icon && <Icon type={item.icon} />}
{(!siderFoldN || menuTree.indexOf(item) < 0) && item.name}
</span>}
>
{getMenus(item.children, siderFoldN)}
</Menu.SubMenu>
)
}
return (
<Menu.SubMenu key={linkTo} title={<span>{item.icon ? <Icon type={item.icon} /> : ''}{siderFold && topMenus.indexOf(item.key) >= 0 ? '' : item.name}</span>}>
{getMenus(item.child, siderFold, `${linkTo}/`)}
</Menu.SubMenu>
<Menu.Item key={item.id}>
<Link to={item.router}>
{item.icon && <Icon type={item.icon} />}
{(!siderFoldN || menuTree.indexOf(item) < 0) && item.name}
</Link>
</Menu.Item>
)
}
return (
<Menu.Item key={linkTo}>
<Link to={linkTo}>
{item.icon ? <Icon type={item.icon} /> : ''}
{siderFold && topMenus.indexOf(item.key) >= 0 ? '' : item.name}
</Link>
</Menu.Item>
)
})
}
function Menus ({ siderFold, darkTheme, location, handleClickNavMenu, navOpenKeys, changeOpenKeys }) {
const menuItems = getMenus(menu, siderFold)
})
}
const menuItems = getMenus(menuTree, siderFold)
// 保持选中
const getAncestorKeys = (key) => {
const map = {
'/navigation/navigation2': ['/navigation'],
let map = {}
const getParent = (index) => {
const result = [String(levelMap[index])]
if (levelMap[result[0]]) {
result.unshift(getParent(result[0])[0])
}
return result
}
for (let index in levelMap) {
if ({}.hasOwnProperty.call(levelMap, index)) {
map[index] = getParent(index)
}
}
return map[key] || []
}
@@ -53,13 +77,38 @@ function Menus ({ siderFold, darkTheme, location, handleClickNavMenu, navOpenKey
openKeys: navOpenKeys,
} : {}
// 寻找选中路由
let currentMenu
let defaultSelectedKeys
for (let item of menu) {
if (item.router && pathToRegexp(item.router).exec(location.pathname)) {
currentMenu = item
break
}
}
const getPathArray = (array, current, pid, id) => {
let result = [String(current[id])]
const getPath = (item) => {
if (item && item[pid]) {
result.unshift(String(item[pid]))
getPath(queryArray(array, item[pid], id))
}
}
getPath(current)
return result
}
if (currentMenu) {
defaultSelectedKeys = getPathArray(menu, currentMenu, 'mpid', 'id')
}
return (
<Menu
{...menuProps}
mode={siderFold ? 'vertical' : 'inline'}
theme={darkTheme ? 'dark' : 'light'}
onClick={handleClickNavMenu}
defaultSelectedKeys={[location.pathname !== '/' ? location.pathname : '/dashboard']}
defaultSelectedKeys={defaultSelectedKeys}
>
{menuItems}
</Menu>
@@ -67,6 +116,7 @@ function Menus ({ siderFold, darkTheme, location, handleClickNavMenu, navOpenKey
}
Menus.propTypes = {
menu: PropTypes.array,
siderFold: PropTypes.bool,
darkTheme: PropTypes.bool,
location: PropTypes.object,
+7 -4
View File
@@ -1,11 +1,13 @@
import React, { PropTypes } from 'react'
import React from 'react'
import PropTypes from 'prop-types'
import { Icon, Switch } from 'antd'
import styles from './Layout.less'
import { config } from '../../utils'
import Menus from './Menu'
function Sider ({ siderFold, darkTheme, location, changeTheme, navOpenKeys, changeOpenKeys }) {
const Sider = ({ siderFold, darkTheme, location, changeTheme, navOpenKeys, changeOpenKeys, menu }) => {
const menusProps = {
menu,
siderFold,
darkTheme,
location,
@@ -20,14 +22,15 @@ function Sider ({ siderFold, darkTheme, location, changeTheme, navOpenKeys, chan
</div>
<Menus {...menusProps} />
{!siderFold ? <div className={styles.switchtheme}>
<span><Icon type="bulb" />切换主题</span>
<Switch onChange={changeTheme} defaultChecked={darkTheme} checkedChildren="黑" unCheckedChildren="白" />
<span><Icon type="bulb" />Switch Theme</span>
<Switch onChange={changeTheme} defaultChecked={darkTheme} checkedChildren="Dark" unCheckedChildren="Light" />
</div> : ''}
</div>
)
}
Sider.propTypes = {
menu: PropTypes.array,
siderFold: PropTypes.bool,
darkTheme: PropTypes.bool,
location: PropTypes.object,
+2 -1
View File
@@ -1,4 +1,5 @@
import React, { PropTypes } from 'react'
import React from 'react'
import PropTypes from 'prop-types'
import ReactDOM from 'react-dom'
import styles from './Search.less'
import { Input, Select, Button, Icon } from 'antd'
+2
View File
@@ -3,6 +3,7 @@ import DropOption from './DropOption'
import Iconfont from './Iconfont'
import Search from './Search'
import Editor from './Editor'
import FilterItem from './FilterItem'
import * as Layout from './Layout/index.js'
import layer from './layer'
@@ -14,5 +15,6 @@ export {
Iconfont,
Search,
Editor,
FilterItem,
layer,
}
+5 -2
View File
@@ -3,13 +3,16 @@ import 'babel-polyfill'
import dva from 'dva'
import createLoading from 'dva-loading'
import { browserHistory } from 'dva/router'
import { message } from 'antd'
// 1. Initialize
const app = dva({
...createLoading(),
...createLoading({
effects: true,
}),
history: browserHistory,
onError (error) {
console.error('app onError -- ', error)
message.error(error.message)
},
})
+217
View File
@@ -0,0 +1,217 @@
const qs = require('qs')
const Mock = require('mockjs')
const config = require('../utils/config')
const { apiPrefix } = config
let usersListData = Mock.mock({
'data|80-100': [
{
id: '@id',
name: '@name',
nickName: '@last',
phone: /^1[34578]\d{9}$/,
'age|11-99': 1,
address: '@county(true)',
isMale: '@boolean',
email: '@email',
createTime: '@datetime',
avatar () {
return Mock.Random.image('100x100', Mock.Random.color(), '#757575', 'png', this.nickName.substr(0, 1))
},
},
],
})
let database = usersListData.data
const userPermission = {
DEFAULT: [
'dashboard', 'chart',
],
ADMIN: [
'dashboard', 'users', 'UIElement', 'UIElementIconfont', 'chart',
],
DEVELOPER: ['dashboard', 'users', 'UIElement', 'UIElementIconfont', 'chart'],
}
const adminUsers = [
{
id: 0,
username: 'admin',
password: 'admin',
permissions: userPermission.ADMIN,
}, {
id: 1,
username: 'guest',
password: 'guest',
permissions: userPermission.DEFAULT,
}, {
id: 2,
username: '吴彦祖',
password: '123456',
permissions: userPermission.DEVELOPER,
},
]
const queryArray = (array, key, keyAlias = 'key') => {
if (!(array instanceof Array)) {
return null
}
let data
for (let item of array) {
if (item[keyAlias] === key) {
data = item
break
}
}
if (data) {
return data
}
return null
}
const NOTFOUND = {
message: 'Not Found',
documentation_url: 'http://localhost:8000/request',
}
module.exports = {
[`POST ${apiPrefix}/user/login`] (req, res) {
const { username, password } = req.body
const user = adminUsers.filter((item) => item.username === username)
if (user.length > 0 && user[0].password === password) {
const now = new Date()
now.setDate(now.getDate() + 1)
res.cookie('token', JSON.stringify({ id: user[0].id, deadline: now.getTime() }), {
maxAge: 900000,
httpOnly: true,
})
res.json({ success: true, message: 'Ok' })
} else {
res.status(400).end()
}
},
[`GET ${apiPrefix}/user/logout`] (req, res) {
res.clearCookie('token')
res.status(200).end()
},
[`GET ${apiPrefix}/user`] (req, res) {
const cookie = req.headers.cookie || ''
const cookies = qs.parse(cookie.replace(/\s/g, ''), { delimiter: ';' })
const response = {}
const user = {}
if (!cookies.token) {
res.status(200).send({ message: 'Not Login' })
return
}
const token = JSON.parse(cookies.token)
if (token) {
response.success = token.deadline > new Date().getTime()
}
if (response.success) {
const userItem = adminUsers.filter(_ => _.id === token.id)
if (userItem.length > 0) {
user.permissions = userItem[0].permissions
user.username = userItem[0].username
user.id = userItem[0].id
}
}
response.user = user
res.json(response)
},
[`GET ${apiPrefix}/users`] (req, res) {
const { query } = req
let { pageSize, page, ...other } = query
pageSize = pageSize || 10
page = page || 1
let newData = database
for (let key in other) {
if ({}.hasOwnProperty.call(other, key)) {
newData = newData.filter((item) => {
if ({}.hasOwnProperty.call(item, key)) {
if (key === 'address') {
return other[key].every(iitem => item[key].indexOf(iitem) > -1)
} else if (key === 'createTime') {
const start = new Date(other[key][0]).getTime()
const end = new Date(other[key][1]).getTime()
const now = new Date(item[key]).getTime()
if (start && end) {
return now >= start && now <= end
}
return true
}
return String(item[key]).trim().indexOf(decodeURI(other[key]).trim()) > -1
}
return true
})
}
}
res.status(200).json({
data: newData.slice((page - 1) * pageSize, page * pageSize),
total: newData.length,
})
},
[`POST ${apiPrefix}/user`] (req, res) {
const newData = req.body
newData.createTime = Mock.mock('@now')
newData.avatar = newData.avatar || Mock.Random.image('100x100', Mock.Random.color(), '#757575', 'png', newData.nickName.substr(0, 1))
newData.id = Mock.mock('@id')
database.unshift(newData)
res.status(200).end()
},
[`GET ${apiPrefix}/user/:id`] (req, res) {
const { id } = req.params
const data = queryArray(database, id, 'id')
if (data) {
res.status(200).json(data)
} else {
res.status(404).json(NOTFOUND)
}
},
[`DELETE ${apiPrefix}/user/:id`] (req, res) {
const { id } = req.params
const data = queryArray(database, id, 'id')
if (data) {
database = database.filter((item) => item.id !== id)
res.status(204).end()
} else {
res.status(404).json(NOTFOUND)
}
},
[`PATCH ${apiPrefix}/user/:id`] (req, res) {
const { id } = req.params
const editItem = req.body
let isExist = false
database = database.map((item) => {
if (item.id === id) {
isExist = true
return Object.assign({}, item, editItem)
}
return item
})
if (isExist) {
res.status(201).end()
} else {
res.status(404).json(NOTFOUND)
}
},
}
-186
View File
@@ -1,186 +0,0 @@
const qs = require('qs')
const Mock = require('mockjs')
const config = require('../utils/config')
const { apiPrefix } = config
let usersListData = Mock.mock({
'data|100': [
{
'id|+1': 1,
name: '@cname',
nickName: '@last',
phone: /^1[34578]\d{9}$/,
'age|11-99': 1,
address: '@county(true)',
isMale: '@boolean',
email: '@email',
createTime: '@datetime',
avatar () {
return Mock.Random.image('100x100', Mock.Random.color(), '#757575', 'png', this.nickName.substr(0, 1))
},
},
],
page: {
total: 100,
current: 1,
},
})
const userPermission = {
DEFAULT: [
'dashboard', 'chart',
],
ADMIN: [
'dashboard', 'users', 'UIElement', 'UIElementIconfont', 'chart',
],
DEVELOPER: ['dashboard', 'users', 'UIElement', 'UIElementIconfont', 'chart'],
}
const adminUsers = [
{
id: 0,
username: 'admin',
password: 'admin',
permissions: userPermission.ADMIN,
}, {
id: 1,
username: 'guest',
password: 'guest',
permissions: userPermission.DEFAULT,
}, {
id: 2,
username: '吴彦祖',
password: '123456',
permissions: userPermission.DEVELOPER,
},
]
module.exports = {
[`POST ${apiPrefix}/user/login`] (req, res) {
const { username, password } = req.body
const user = adminUsers.filter((item) => item.username === username)
if (user && user[0].password === password) {
const now = new Date()
now.setDate(now.getDate() + 1)
res.cookie('token', JSON.stringify({ id: user[0].id, deadline: now.getTime() }), {
maxAge: 900000,
httpOnly: true,
})
res.json({ success: true, message: 'Ok' })
} else {
res.status(400).send({ message: 'Bad Request' })
}
},
[`GET ${apiPrefix}/user/logout`] (req, res) {
res.clearCookie('token')
res.status(200).send({ message: 'OK' })
},
[`GET ${apiPrefix}/userInfo`] (req, res) {
const cookies = qs.parse(req.headers.cookie, { delimiter: ';' })
const response = {}
const user = {}
if (!cookies.token) {
res.status(200).send({ message: 'Not Login' })
return
}
const token = JSON.parse(cookies.token)
if (token) {
response.success = token.deadline > new Date().getTime()
}
if (response.success) {
const userItem = adminUsers.filter(_ => _.id === token.id)
if (userItem.length > 0) {
user.permissions = userItem[0].permissions
user.username = userItem[0].username
user.id = userItem[0].id
}
}
response.user = user
res.json(response)
},
[`GET ${apiPrefix}/users`] (req, res) {
const page = req.query
const pageSize = page.pageSize || 10
const currentPage = page.page || 1
let data
let newPage
let newData = usersListData.data.concat()
if (page.field) {
const d = newData.filter((item) => {
return item[page.field].indexOf(decodeURI(page.keyword)) > -1
})
data = d.slice((currentPage - 1) * pageSize, currentPage * pageSize)
newPage = {
current: currentPage * 1,
total: d.length,
}
} else {
data = usersListData.data.slice((currentPage - 1) * pageSize, currentPage * pageSize)
usersListData.page.current = currentPage * 1
newPage = usersListData.page
}
res.json({
success: true,
data,
page: {
...newPage,
pageSize: Number(pageSize),
},
})
},
[`POST ${apiPrefix}/users`] (req, res) {
const newData = req.body
newData.createTime = Mock.mock('@now')
newData.avatar = Mock.Random.image('100x100', Mock.Random.color(), '#757575', 'png', newData.nickName.substr(0, 1))
newData.id = usersListData.data.length + 1
usersListData.data.unshift(newData)
usersListData.page.total = usersListData.data.length
usersListData.page.current = 1
res.json({ success: true, data: usersListData.data, page: usersListData.page })
},
[`DELETE ${apiPrefix}/users`] (req, res) {
const deleteItem = req.body
usersListData.data = usersListData.data.filter((item) => {
if (item.id === deleteItem.id) {
return false
}
return true
})
usersListData.page.total = usersListData.data.length
res.json({ success: true, data: usersListData.data, page: usersListData.page })
},
[`PUT ${apiPrefix}/users`] (req, res) {
const editItem = req.body
editItem.createTime = Mock.mock('@now')
editItem.avatar = Mock.Random.image('100x100', Mock.Random.color(), '#757575', 'png', editItem.nickName.substr(0, 1))
usersListData.data = usersListData.data.map((item) => {
if (item.id === editItem.id) {
return editItem
}
return item
})
res.json({ success: true, data: usersListData.data, page: usersListData.page })
},
}
+38 -58
View File
@@ -1,4 +1,4 @@
import { getUserInfo, logout } from '../services/app'
import { query, logout } from '../services/app'
import { routerRedux } from 'dva/router'
import { parse } from 'qs'
import { config } from '../utils'
@@ -8,29 +8,35 @@ export default {
namespace: 'app',
state: {
user: {},
loginButtonLoading: false,
menuPopoverVisible: false,
siderFold: localStorage.getItem(`${prefix}siderFold`) === 'true',
darkTheme: localStorage.getItem(`${prefix}darkTheme`) === 'true',
isNavbar: document.body.clientWidth < 769,
navOpenKeys: [],
navOpenKeys: JSON.parse(localStorage.getItem(`${prefix}navOpenKeys`)) || [],
},
subscriptions: {
setup ({ dispatch }) {
dispatch({ type: 'queryUser' })
dispatch({ type: 'query' })
let tid
window.onresize = () => {
dispatch({ type: 'changeNavbar' })
clearTimeout(tid)
tid = setTimeout(() => {
dispatch({ type: 'changeNavbar' })
}, 300)
}
},
},
effects: {
*queryUser ({
*query ({
payload,
}, { call, put }) {
const data = yield call(getUserInfo, parse(payload))
const data = yield call(query, parse(payload))
if (data.success && data.user) {
yield put({
type: 'queryUserSuccess',
type: 'querySuccess',
payload: data.user,
})
if (location.pathname === '/login') {
@@ -46,94 +52,68 @@ export default {
}
}
},
*logout ({
payload,
}, { call, put }) {
const data = yield call(logout, parse(payload))
if (data.success) {
yield put({ type: 'queryUser' })
yield put({ type: 'query' })
} else {
throw (data)
}
},
*switchSider ({
payload,
}, { put }) {
yield put({
type: 'handleSwitchSider',
})
},
*changeTheme ({
payload,
}, { put }) {
yield put({
type: 'handleChangeTheme',
})
},
*changeNavbar ({
payload,
}, { put }) {
if (document.body.clientWidth < 769) {
yield put({ type: 'showNavbar' })
} else {
yield put({ type: 'hideNavbar' })
}, { put, select }) {
const { app } = yield(select(_ => _))
const isNavbar = document.body.clientWidth < 769
if (isNavbar !== app.isNavbar) {
yield put({ type: 'handleNavbar', payload: isNavbar })
}
},
*switchMenuPopver ({
payload,
}, { put }) {
yield put({
type: 'handleSwitchMenuPopver',
})
},
},
reducers: {
queryUserSuccess (state, { payload: user }) {
querySuccess (state, { payload: user }) {
return {
...state,
user,
}
},
showLoginButtonLoading (state) {
return {
...state,
loginButtonLoading: true,
}
},
handleSwitchSider (state) {
switchSider (state) {
localStorage.setItem(`${prefix}siderFold`, !state.siderFold)
return {
...state,
siderFold: !state.siderFold,
}
},
handleChangeTheme (state) {
switchTheme (state) {
localStorage.setItem(`${prefix}darkTheme`, !state.darkTheme)
return {
...state,
darkTheme: !state.darkTheme,
}
},
showNavbar (state) {
return {
...state,
isNavbar: true,
}
},
hideNavbar (state) {
return {
...state,
isNavbar: false,
}
},
handleSwitchMenuPopver (state) {
switchMenuPopver (state) {
return {
...state,
menuPopoverVisible: !state.menuPopoverVisible,
}
},
handleNavbar (state, { payload }) {
return {
...state,
isNavbar: payload,
}
},
handleNavOpenKeys (state, { payload: navOpenKeys }) {
console.log(navOpenKeys)
return {
...state,
...navOpenKeys,
+2 -1
View File
@@ -79,8 +79,9 @@ let zuimei = {
return name
},
getWeatherByCode (num) {
getWeatherByCode (number) {
let wea = ''
let num = Number(number)
if (num === 0) {
wea = '晴'
} else if (num === 1) {
+1 -1
View File
@@ -17,7 +17,7 @@ export default {
yield put({ type: 'hideLoginLoading' })
if (data.success) {
const from = queryURL('from')
yield put({ type: 'app/queryUser' })
yield put({ type: 'app/query' })
if (from) {
yield put(routerRedux.push(from))
} else {
+37 -49
View File
@@ -1,9 +1,10 @@
import { create, remove, update, query } from '../services/users'
import { create, remove, update } from '../services/user'
import { query } from '../services/users'
import { parse } from 'qs'
export default {
namespace: 'users',
namespace: 'user',
state: {
list: [],
@@ -23,7 +24,7 @@ export default {
subscriptions: {
setup ({ dispatch, history }) {
history.listen(location => {
if (location.pathname === '/users') {
if (location.pathname === '/user') {
dispatch({
type: 'query',
payload: location.query,
@@ -34,77 +35,60 @@ export default {
},
effects: {
*query ({ payload }, { call, put }) {
const data = yield call(query, parse(payload))
payload = parse(location.search.substr(1))
const data = yield call(query, payload)
if (data) {
yield put({
type: 'querySuccess',
payload: {
list: data.data,
pagination: data.page,
pagination: {
current: Number(payload.page) || 1,
pageSize: Number(payload.pageSize) || 10,
total: data.total,
},
},
})
}
},
*'delete' ({ payload }, { call, put }) {
const data = yield call(remove, { id: payload })
if (data && data.success) {
yield put({
type: 'querySuccess',
payload: {
list: data.data,
pagination: {
total: data.page.total,
current: data.page.current,
},
},
})
if (data.success) {
yield put({ type: 'query' })
} else {
throw data
}
},
*create ({ payload }, { call, put }) {
yield put({ type: 'hideModal' })
const data = yield call(create, payload)
if (data && data.success) {
yield put({
type: 'querySuccess',
payload: {
list: data.data,
pagination: {
total: data.page.total,
current: data.page.current,
},
},
})
if (data.success) {
yield put({ type: 'hideModal' })
yield put({ type: 'query' })
} else {
throw data
}
},
*update ({ payload }, { select, call, put }) {
yield put({ type: 'hideModal' })
const id = yield select(({ users }) => users.currentItem.id)
const id = yield select(({ user }) => user.currentItem.id)
const newUser = { ...payload, id }
const data = yield call(update, newUser)
if (data && data.success) {
yield put({
type: 'querySuccess',
payload: {
list: data.data,
pagination: {
total: data.page.total,
current: data.page.current,
},
},
})
if (data.success) {
yield put({ type: 'hideModal' })
yield put({ type: 'query' })
} else {
throw data
}
},
*switchIsMotion ({
payload,
}, { put }) {
yield put({
type: 'handleSwitchIsMotion',
})
},
},
reducers: {
querySuccess (state, action) {
const { list, pagination } = action.payload
return { ...state,
@@ -114,16 +98,20 @@ export default {
...pagination,
} }
},
showModal (state, action) {
return { ...state, ...action.payload, modalVisible: true }
},
hideModal (state) {
return { ...state, modalVisible: false }
},
handleSwitchIsMotion (state) {
switchIsMotion (state) {
localStorage.setItem('antdAdminUserIsMotion', !state.isMotion)
return { ...state, isMotion: !state.isMotion }
},
},
}
+51
View File
@@ -0,0 +1,51 @@
import pathToRegexp from 'path-to-regexp'
import { query } from '../../services/user'
export default {
namespace: 'userDetail',
state: {
data: {},
},
subscriptions: {
setup ({ dispatch, history }) {
history.listen(() => {
const match = pathToRegexp('/user/:id').exec(location.pathname)
if (match) {
dispatch({ type: 'query', payload: { id: match[1] } })
}
})
},
},
effects: {
*query ({
payload,
}, { call, put }) {
const data = yield call(query, payload)
const { success, message, status, ...other } = data
if (success) {
yield put({
type: 'querySuccess',
payload: {
data: other,
},
})
} else {
throw data
}
},
},
reducers: {
querySuccess (state, { payload }) {
const { data } = payload
return {
...state,
data,
}
},
},
}
+15 -8
View File
@@ -1,12 +1,11 @@
import React, { PropTypes } from 'react'
import React from 'react'
import PropTypes from 'prop-types'
import { Router } from 'dva/router'
import App from './routes/app'
const cached = {}
const registerModel = (app, model) => {
if (!cached[model.namespace]) {
if (!(app._models.filter(m => m.namespace === model.namespace).length === 1)) {
app.model(model)
cached[model.namespace] = 1
}
}
@@ -31,12 +30,20 @@ const Routers = function ({ history, app }) {
}, 'dashboard')
},
}, {
path: 'users',
path: 'user',
getComponent (nextState, cb) {
require.ensure([], require => {
registerModel(app, require('./models/users'))
cb(null, require('./routes/users/'))
}, 'users')
registerModel(app, require('./models/user'))
cb(null, require('./routes/user/'))
}, 'user')
},
}, {
path: 'user/:id',
getComponent (nextState, cb) {
require.ensure([], require => {
registerModel(app, require('./models/user/detail'))
cb(null, require('./routes/user/detail/'))
}, 'user-detail')
},
}, {
path: 'login',
+8
View File
@@ -0,0 +1,8 @@
import '../../../svg/emoji/vomiting.svg'
import '../../../svg/emoji/smirking.svg'
import '../../../svg/emoji/surprised.svg'
import '../../../svg/emoji/unamused.svg'
import '../../../svg/emoji/zombie.svg'
import '../../../svg/emoji/tired.svg'
import '../../../svg/emoji/tongue.svg'
import '../../../svg/emoji/wink.svg'
+75 -9
View File
@@ -1,15 +1,60 @@
import React from 'react'
import { Iconfont } from '../../../components'
import { Table, Row, Col } from 'antd'
import { Table, Row, Col, Icon } from 'antd'
import styles from './index.less'
import './emoji.js'
const iconlist = ['Cherry', 'Cheese', 'Bread', 'Beer', 'Beet', 'Bacon', 'Banana', 'Asparagus', 'Apple']
const colorfulIcons = ['boluo', 'baixiangguo', 'chengzi', 'boluomei', 'caomei', 'dayouzi', 'chelizi', 'fanqie', 'hamigua', 'ganlan',
'juzi', 'heimei', 'huolongguo', 'hongmei', 'lizi', 'lanmei', 'mangguo', 'mihoutao', 'longyan', 'mugua', 'lizi1', 'ningmeng']
const flatIcons = ['home', 'user', 'timelimit', 'shopcart', 'message', 'remind', 'service', 'shop', 'sweep', 'express',
'payment', 'search', 'feedback', 'pencil', 'setting', 'refund', 'delete', 'star', 'heart', 'share', 'location', 'console']
const localSVGIcons = ['vomiting', 'smirking', 'surprised', 'unamused', 'zombie', 'tired', 'tongue', 'wink']
const localRequireSVGIcons = [
require('../../../svg/cute/congratulations.svg'),
require('../../../svg/cute/cry.svg'),
require('../../../svg/cute/kiss.svg'),
require('../../../svg/cute/leisurely.svg'),
require('../../../svg/cute/notice.svg'),
require('../../../svg/cute/proud.svg'),
require('../../../svg/cute/shy.svg'),
require('../../../svg/cute/sweat.svg'),
require('../../../svg/cute/think.svg'),
]
const IcoPage = () => <div className="content-inner">
<Icon type="star-oo" />
<h2 style={{ margin: '16px 0' }}>Colorful Icon</h2>
<ul className={styles.list}>
{iconlist.map(item => <li key={item}><Iconfont className={styles.icon} type={item} /><span className={styles.name}>{item}</span></li>)}
{colorfulIcons.map(item => <li key={item}>
<Iconfont className={styles.icon} colorful type={item} />
<span className={styles.name}>{item}</span>
</li>)}
</ul>
<h2 style={{ margin: '16px 0' }}>Props</h2>
<h2 style={{ margin: '16px 0' }}>Flat Icon</h2>
<ul className={styles.list}>
{flatIcons.map(item => <li key={item}>
<Iconfont className={styles.icon} type={item} />
<span className={styles.name}>{item}</span>
</li>)}
</ul>
<h2 style={{ margin: '16px 0' }}>Local SVG</h2>
<ul className={styles.list}>
{localSVGIcons.map(item => <li key={item}>
<Iconfont className={styles.icon} colorful type={item} />
<span className={styles.name}>{item}</span>
</li>)}
</ul>
<h2 style={{ margin: '16px 0' }}>Local Require SVG</h2>
<ul className={styles.list}>
{localRequireSVGIcons.map(item => <li key={item}>
<Iconfont className={styles.icon} colorful type={item} />
<span className={styles.name}>{item}</span>
</li>)}
</ul>
<h2 style={{ margin: '16px 0' }}>API</h2>
<Row>
<Col lg={18} md={24}>
<Table
@@ -19,32 +64,53 @@ const IcoPage = () => <div className="content-inner">
scroll={{ x: 800 }}
columns={[
{
title: '参数',
title: 'Property',
dataIndex: 'props',
},
{
title: '说明',
title: 'Description',
dataIndex: 'desciption',
},
{
title: '类型',
title: 'Type',
dataIndex: 'type',
},
{
title: '默认值',
title: 'Default',
dataIndex: 'default',
},
]}
dataSource={[
{
props: 'type',
desciption: '图标类型',
desciption: 'icon type',
type: 'String',
default: '-',
},
{
props: 'colorful',
desciption: "to set the SVG has 'symbol element'",
type: 'Bool',
default: 'false',
}]}
/>
</Col>
</Row>
<h2 style={{ margin: '16px 0' }}>Thanks</h2>
<div style={{ margin: '16px 0', lineHeight: 2 }}>
<p>
<a href="http://www.iconfont.cn/user/detail?uid=116813">何阿酥</a> colorful fruit icon
<a href="http://www.iconfont.cn/collections/detail?cid=4014" target="_blank"> http://www.iconfont.cn/collections/detail?cid=4014</a>
</p>
<p>
<a href="http://www.iconfont.cn/user/detail?uid=496384">ColinXu</a> colorful 'tsundere' emoji icon
<a href="http://www.iconfont.cn/collections/detail?cid=4116" target="_blank"> http://www.iconfont.cn/collections/detail?cid=4116</a>
</p>
<p>
<a href="http://www.iconfont.cn/user/detail?uid=116813">咕噜小莫莫</a> colorful 'face cute' emoji icon
<a href="http://www.iconfont.cn/collections/detail?cid=4268" target="_blank"> http://www.iconfont.cn/collections/detail?cid=4268</a>
</p>
</div>
</div>
export default IcoPage
+26 -6
View File
@@ -2,10 +2,9 @@
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
margin-right: -24px;
li {
width: 160px;
width: 120px;
text-align: center;
cursor: pointer;
height: 100px;
@@ -13,10 +12,10 @@
display: flex;
flex-direction: column;
align-items: center;
margin-right: 24px;
margin-bottom: 24px;
box-sizing: border-box;
border: solid 1px transparent;
justify-content: center;
&:hover {
border: solid 1px #f5f5f5;
@@ -24,10 +23,31 @@
}
.name {
margin-top: 16px;
margin-top: 8px;
}
:global .iconfont {
font-size: 48px;
:global {
.colorful-icon {
font-size: 36px;
}
.antdadmin {
font-size: 32px;
line-height: 1;
}
}
}
@media (min-width: 1600px) {
.list {
li {
width: 160px;
}
}
}
@media (max-width: 767px) {
.list {
li {
width: 100px;
}
}
}
+33 -9
View File
@@ -1,16 +1,31 @@
import React, { PropTypes } from 'react'
import React from 'react'
import PropTypes from 'prop-types'
import { connect } from 'dva'
import { Layout } from '../components'
import { classnames, config } from '../utils'
import { classnames, config, menu } from '../utils'
import { Helmet } from 'react-helmet'
import '../themes/index.less'
import './app.less'
import NProgress from 'nprogress'
const { prefix } = config
const { Header, Bread, Footer, Sider, styles } = Layout
let lastHref
const App = ({ children, location, dispatch, app }) => {
const App = ({ children, location, dispatch, app, loading }) => {
const { user, siderFold, darkTheme, isNavbar, menuPopoverVisible, navOpenKeys } = app
const href = window.location.href
if (lastHref !== href) {
NProgress.start()
if (!loading.global) {
NProgress.done()
lastHref = href
}
}
const headerProps = {
menu,
user,
siderFold,
location,
@@ -32,30 +47,38 @@ const App = ({ children, location, dispatch, app }) => {
}
const siderProps = {
menu,
siderFold,
darkTheme,
location,
navOpenKeys,
changeTheme () {
dispatch({ type: 'app/changeTheme' })
dispatch({ type: 'app/switchTheme' })
},
changeOpenKeys (openKeys) {
localStorage.setItem('navOpenKeys', JSON.stringify(openKeys))
localStorage.setItem(`${prefix}navOpenKeys`, JSON.stringify(openKeys))
dispatch({ type: 'app/handleNavOpenKeys', payload: { navOpenKeys: openKeys } })
},
}
const breadProps = {
menu,
}
if (config.openPages && config.openPages.indexOf(location.pathname) > -1) {
return <div>{children}</div>
}
const { iconFontJS, iconFontCSS, logo } = config
return (
<div>
<Helmet>
<title>ANTD ADMIN</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="icon" href={config.logoSrc} type="image/x-icon" />
{config.iconFontUrl ? <script src={config.iconFontUrl}></script> : ''}
<link rel="icon" href={logo} type="image/x-icon" />
{iconFontJS && <script src={iconFontJS}></script>}
{iconFontCSS && <link rel="stylesheet" href={iconFontCSS} />}
</Helmet>
<div className={classnames(styles.layout, { [styles.fold]: isNavbar ? false : siderFold }, { [styles.withnavbar]: isNavbar })}>
{!isNavbar ? <aside className={classnames(styles.sider, { [styles.light]: !darkTheme })}>
@@ -63,7 +86,7 @@ const App = ({ children, location, dispatch, app }) => {
</aside> : ''}
<div className={styles.main}>
<Header {...headerProps} />
<Bread location={location} />
<Bread {...breadProps} location={location} />
<div className={styles.container}>
<div className={styles.content}>
{children}
@@ -81,6 +104,7 @@ App.propTypes = {
location: PropTypes.object,
dispatch: PropTypes.func,
app: PropTypes.object,
loading: PropTypes.object,
}
export default connect(({ app }) => ({ app }))(App)
export default connect(({ app, loading }) => ({ app, loading }))(App)
+72
View File
@@ -0,0 +1,72 @@
@import "../themes/vars.less";
:global {
#nprogress {
pointer-events: none;
.bar {
background: @primary-color;
position: fixed;
z-index: 1024;
top: 0;
left: 0;
right: 0;
width: 100%;
height: 2px;
}
.peg {
display: block;
position: absolute;
right: 0;
width: 100px;
height: 100%;
box-shadow: 0 0 10px @primary-color,0 0 5px @primary-color;
opacity: 1.0;
transform: rotate(3deg) translate(0px,-4px);
}
.spinner {
display: block;
position: fixed;
z-index: 1031;
top: 15px;
right: 15px;
}
.spinner-icon {
width: 18px;
height: 18px;
box-sizing: border-box;
border: solid 2px transparent;
border-top-color: @primary-color;
border-left-color: @primary-color;
border-radius: 50%;
:local {
animation: nprogress-spinner 400ms linear infinite;
}
}
}
.nprogress-custom-parent {
overflow: hidden;
position: relative;
#nprogress {
.bar,
.spinner {
position: absolute;
}
}
}
}
@keyframes nprogress-spinner {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
+2 -1
View File
@@ -1,4 +1,5 @@
import React, { PropTypes } from 'react'
import React from 'react'
import PropTypes from 'prop-types'
import styles from './Container.less'
import { ResponsiveContainer } from 'recharts'
+2 -1
View File
@@ -1,4 +1,5 @@
import React, { PropTypes } from 'react'
import React from 'react'
import PropTypes from 'prop-types'
import { Row, Col, Card, Button } from 'antd'
import Container from '../Container'
import {
+2 -1
View File
@@ -1,4 +1,5 @@
import React, { PropTypes } from 'react'
import React from 'react'
import PropTypes from 'prop-types'
import { Row, Col, Card, Button } from 'antd'
import Container from '../Container'
import {
+2 -1
View File
@@ -1,4 +1,5 @@
import React, { PropTypes } from 'react'
import React from 'react'
import PropTypes from 'prop-types'
import { Table, Tag } from 'antd'
import styles from './browser.less'
import { color } from '../../../utils'
+2 -1
View File
@@ -1,4 +1,5 @@
import React, { PropTypes } from 'react'
import React from 'react'
import PropTypes from 'prop-types'
import { Table, Tag } from 'antd'
import styles from './comments.less'
import { color } from '../../../utils'
+2 -1
View File
@@ -1,4 +1,5 @@
import React, { PropTypes } from 'react'
import React from 'react'
import PropTypes from 'prop-types'
import styles from './completed.less'
import classnames from 'classnames'
import { color } from '../../../utils'
+2 -1
View File
@@ -1,4 +1,5 @@
import React, { PropTypes } from 'react'
import React from 'react'
import PropTypes from 'prop-types'
import styles from './cpu.less'
import { color } from '../../../utils'
import CountUp from 'react-countup'
@@ -1,4 +1,5 @@
import React, { PropTypes } from 'react'
import React from 'react'
import PropTypes from 'prop-types'
import { Icon, Card } from 'antd'
import CountUp from 'react-countup'
import styles from './numberCard.less'
+2 -1
View File
@@ -1,4 +1,5 @@
import React, { PropTypes } from 'react'
import React from 'react'
import PropTypes from 'prop-types'
import styles from './quote.less'
function Quote ({ name, content, title, avatar }) {
@@ -1,4 +1,5 @@
import React, { PropTypes } from 'react'
import React from 'react'
import PropTypes from 'prop-types'
import { Table, Tag } from 'antd'
import styles from './recentSales.less'
import { color } from '../../../utils'
+2 -1
View File
@@ -1,4 +1,5 @@
import React, { PropTypes } from 'react'
import React from 'react'
import PropTypes from 'prop-types'
import styles from './sales.less'
import classnames from 'classnames'
import { color } from '../../../utils'
+2 -1
View File
@@ -1,4 +1,5 @@
import React, { PropTypes } from 'react'
import React from 'react'
import PropTypes from 'prop-types'
import { Button } from 'antd'
import styles from './user.less'
import CountUp from 'react-countup'
+2 -1
View File
@@ -1,4 +1,5 @@
import React, { PropTypes } from 'react'
import React from 'react'
import PropTypes from 'prop-types'
import styles from './weather.less'
function Weather ({ city, icon, dateTime, temperature, name }) {
+2 -1
View File
@@ -1,4 +1,5 @@
import React, { PropTypes } from 'react'
import React from 'react'
import PropTypes from 'prop-types'
import { connect } from 'dva'
import { Row, Col, Card } from 'antd'
import { NumberCard, Quote, Sales, Weather, RecentSales, Comments, Completed, Browser, Cpu, User } from './components'
+7 -8
View File
@@ -1,4 +1,5 @@
import React, { PropTypes } from 'react'
import React from 'react'
import PropTypes from 'prop-types'
import { connect } from 'dva'
import { Button, Row, Form, Input } from 'antd'
import { config } from '../../utils'
@@ -37,28 +38,26 @@ const Login = ({
rules: [
{
required: true,
message: '请填写用户名',
},
],
})(<Input size="large" onPressEnter={handleOk} placeholder="用户名" />)}
})(<Input size="large" onPressEnter={handleOk} placeholder="Username" />)}
</FormItem>
<FormItem hasFeedback>
{getFieldDecorator('password', {
rules: [
{
required: true,
message: '请填写密码',
},
],
})(<Input size="large" type="password" onPressEnter={handleOk} placeholder="密码" />)}
})(<Input size="large" type="password" onPressEnter={handleOk} placeholder="Password" />)}
</FormItem>
<Row>
<Button type="primary" size="large" onClick={handleOk} loading={loginLoading}>
登录
Sign in
</Button>
<p>
<span>账号:guest</span>
<span>密码:guest</span>
<span>Username:guest</span>
<span>Password:guest</span>
</p>
</Row>
+20 -25
View File
@@ -11,36 +11,42 @@ import {
Button,
} from 'antd'
const { api, baseURL } = config
const { userInfo, dashboard, users, userLogin } = api
const { dashboard, users, userLogin, user } = api
const requestOptions = [
{
url: baseURL + userInfo,
url: baseURL + user.replace('/:id', ''),
desc: 'intercept request by mock.js',
},
{
url: baseURL + dashboard,
desc: 'intercept request by mock.js',
},
{
url: baseURL + users,
desc: 'intercept request by mock.js',
},
{
url: baseURL + userLogin,
method: 'post',
data: {
username: 'admin',
password: 'admin6',
username: 'guest',
password: 'guest',
},
desc: 'intercept request by mock.js',
},
{
url: baseURL + users,
desc: 'intercept request by mock.js',
},
{
url: baseURL + user,
desc: 'intercept request by mock.js',
data: Mock.mock({
id: '@id',
}),
},
{
url: baseURL + user.replace('/:id', ''),
desc: 'intercept request by mock.js',
method: 'post',
data: Mock.mock({
'id|+1': 1000,
name: '@cname',
nickName: '@last',
phone: /^1[34578]\d{9}$/,
@@ -48,37 +54,26 @@ const requestOptions = [
address: '@county(true)',
isMale: '@boolean',
email: '@email',
createTime: '@datetime',
avatar () {
return Mock.Random.image('100x100', Mock.Random.color(), '#757575', 'png', this.nickName.substr(0, 1))
},
}),
},
{
url: baseURL + users,
url: baseURL + user,
desc: 'intercept request by mock.js',
method: 'put',
method: 'patch',
data: Mock.mock({
id: 1,
id: '@id',
name: '@cname',
nickName: '@last',
phone: /^1[34578]\d{9}$/,
'age|11-99': 1,
address: '@county(true)',
isMale: '@boolean',
email: '@email',
createTime: '@datetime',
avatar () {
return Mock.Random.image('100x100', Mock.Random.color(), '#757575', 'png', this.nickName.substr(0, 1))
},
}),
},
{
url: baseURL + users,
url: baseURL + user,
desc: 'intercept request by mock.js',
method: 'delete',
data: Mock.mock({
id: 10,
id: '@id',
}),
},
{
+128
View File
@@ -0,0 +1,128 @@
import React from 'react'
import PropTypes from 'prop-types'
import moment from 'moment'
import { FilterItem } from '../../components'
import { Form, Button, Row, Col, DatePicker, Input, Cascader, Switch } from 'antd'
import city from '../../utils/city'
const Search = Input.Search
const { RangePicker } = DatePicker
const ColProps = {
xs: 24,
sm: 12,
style: {
marginBottom: 16,
},
}
const TwoColProps = {
...ColProps,
xl: 96,
}
const Filter = ({
onAdd,
isMotion,
switchIsMotion,
onFilterChange,
filter,
form: {
getFieldDecorator,
getFieldsValue,
setFieldsValue,
},
}) => {
const handleFields = (fields) => {
const { createTime } = fields
if (createTime.length) {
fields.createTime = [createTime[0].format('YYYY-MM-DD'), createTime[1].format('YYYY-MM-DD')]
}
return fields
}
const handleSubmit = () => {
let fields = getFieldsValue()
fields = handleFields(fields)
onFilterChange(fields)
}
const handleReset = () => {
const fields = getFieldsValue()
for (let item in fields) {
if ({}.hasOwnProperty.call(fields, item)) {
if (fields[item] instanceof Array) {
fields[item] = []
} else {
fields[item] = undefined
}
}
}
setFieldsValue(fields)
handleSubmit()
}
const handleChange = (key, values) => {
let fields = getFieldsValue()
fields[key] = values
fields = handleFields(fields)
onFilterChange(fields)
}
const { name, address } = filter
let initialCreateTime = []
if (filter.createTime && filter.createTime[0]) {
initialCreateTime[0] = moment(filter.createTime[0])
}
if (filter.createTime && filter.createTime[1]) {
initialCreateTime[1] = moment(filter.createTime[1])
}
return (
<Row gutter={24}>
<Col {...ColProps} xl={{ span: 4 }} md={{ span: 8 }}>
{getFieldDecorator('name', { initialValue: name })(<Search placeholder="Search Name" size="large" onSearch={handleSubmit} />)}
</Col>
<Col {...ColProps} xl={{ span: 4 }} md={{ span: 8 }}>
{getFieldDecorator('address', { initialValue: address })(
<Cascader
size="large"
style={{ width: '100%' }}
options={city}
placeholder="Please pick an address"
onChange={handleChange.bind(null, 'address')}
/>)}
</Col>
<Col {...ColProps} xl={{ span: 6 }} md={{ span: 8 }} sm={{ span: 12 }}>
<FilterItem label="Createtime">
{getFieldDecorator('createTime', { initialValue: initialCreateTime })(
<RangePicker style={{ width: '100%' }} size="large" onChange={handleChange.bind(null, 'createTime')} />
)}
</FilterItem>
</Col>
<Col {...TwoColProps} xl={{ span: 10 }} md={{ span: 24 }} sm={{ span: 24 }}>
<div style={{ display: 'flex', justifyContent: 'space-between' }}>
<div >
<Button type="primary" size="large" className="margin-right" onClick={handleSubmit}>Search</Button>
<Button size="large" onClick={handleReset}>Reset</Button>
</div>
<div>
<Switch style={{ marginRight: 16 }} size="large" defaultChecked={isMotion} onChange={switchIsMotion} checkedChildren={'Motion'} unCheckedChildren={'Motion'} />
<Button size="large" type="ghost" onClick={onAdd}>Create</Button>
</div>
</div>
</Col>
</Row>
)
}
Filter.propTypes = {
onAdd: PropTypes.func,
isMotion: PropTypes.bool,
switchIsMotion: PropTypes.func,
form: PropTypes.object,
filter: PropTypes.object,
onFilterChange: PropTypes.func,
}
export default Form.create()(Filter)
@@ -1,20 +1,21 @@
import React, { PropTypes } from 'react'
import React from 'react'
import PropTypes from 'prop-types'
import { Table, Modal } from 'antd'
import styles from './UserList.less'
import styles from './List.less'
import classnames from 'classnames'
import AnimTableBody from '../../components/DataTable/AnimTableBody'
import { DropOption } from '../../components'
import { Link } from 'dva/router'
const confirm = Modal.confirm
function list ({ loading, dataSource, pagination, onPageChange, onDeleteItem, onEditItem, isMotion, location }) {
const List = ({ onDeleteItem, onEditItem, isMotion, location, ...tableProps }) => {
const handleMenuClick = (record, e) => {
if (e.key === '1') {
onEditItem(record)
} else if (e.key === '2') {
confirm({
title: '您确定要删除这条记录吗?',
title: 'Are you sure delete this record?',
onOk () {
onDeleteItem(record.id)
},
@@ -24,61 +25,61 @@ function list ({ loading, dataSource, pagination, onPageChange, onDeleteItem, on
const columns = [
{
title: '头像',
title: 'Avatar',
dataIndex: 'avatar',
key: 'avatar',
width: 64,
className: styles.avatar,
render: (text) => <img alt={'avatar'} width={24} src={text} />,
}, {
title: '姓名',
title: 'Name',
dataIndex: 'name',
key: 'name',
render: (text, record) => <Link to={`user/${record.id}`}>{text}</Link>,
}, {
title: '昵称',
title: 'NickName',
dataIndex: 'nickName',
key: 'nickName',
}, {
title: '年龄',
title: 'Age',
dataIndex: 'age',
key: 'age',
render: (text) => <span>{text}岁</span>,
}, {
title: '性别',
title: 'Gender',
dataIndex: 'isMale',
key: 'isMale',
render: (text) => <span>{text
? '男'
: '女'}</span>,
? 'Male'
: 'Female'}</span>,
}, {
title: '电话',
title: 'Phone',
dataIndex: 'phone',
key: 'phone',
}, {
title: '邮箱',
title: 'Email',
dataIndex: 'email',
key: 'email',
}, {
title: '住址',
title: 'Address',
dataIndex: 'address',
key: 'address',
}, {
title: '创建时间',
title: 'CreateTime',
dataIndex: 'createTime',
key: 'createTime',
}, {
title: '操作',
title: 'Operation',
key: 'operation',
width: 100,
render: (text, record) => {
return <DropOption onMenuClick={e => handleMenuClick(record, e)} menuOptions={[{ key: '1', name: '编辑' }, { key: '2', name: '删除' }]} />
return <DropOption onMenuClick={e => handleMenuClick(record, e)} menuOptions={[{ key: '1', name: 'Update' }, { key: '2', name: 'Delete' }]} />
},
},
]
const getBodyWrapperProps = {
page: location.query.page,
current: pagination.current,
current: tableProps.pagination.current,
}
const getBodyWrapper = body => { return isMotion ? <AnimTableBody {...getBodyWrapperProps} body={body} /> : body }
@@ -86,14 +87,11 @@ function list ({ loading, dataSource, pagination, onPageChange, onDeleteItem, on
return (
<div>
<Table
{...tableProps}
className={classnames({ [styles.table]: true, [styles.motion]: isMotion })}
bordered
scroll={{ x: 1200 }}
columns={columns}
dataSource={dataSource}
loading={loading}
onChange={onPageChange}
pagination={pagination}
simple
rowKey={record => record.id}
getBodyWrapper={getBodyWrapper}
@@ -102,15 +100,11 @@ function list ({ loading, dataSource, pagination, onPageChange, onDeleteItem, on
)
}
list.propTypes = {
loading: PropTypes.bool,
dataSource: PropTypes.array,
pagination: PropTypes.object,
onPageChange: PropTypes.func,
List.propTypes = {
onDeleteItem: PropTypes.func,
onEditItem: PropTypes.func,
isMotion: PropTypes.bool,
location: PropTypes.object,
}
export default list
export default List
@@ -1,5 +1,8 @@
import React, { PropTypes } from 'react'
import { Form, Input, InputNumber, Radio, Modal } from 'antd'
import React from 'react'
import PropTypes from 'prop-types'
import { Form, Input, InputNumber, Radio, Modal, Cascader } from 'antd'
import city from '../../utils/city'
const FormItem = Form.Item
const formItemLayout = {
@@ -12,18 +15,16 @@ const formItemLayout = {
}
const modal = ({
visible,
type,
item = {},
onOk,
onCancel,
form: {
getFieldDecorator,
validateFields,
getFieldsValue,
},
...modalProps
}) => {
function handleOk () {
const handleOk = () => {
validateFields((errors) => {
if (errors) {
return
@@ -32,104 +33,104 @@ const modal = ({
...getFieldsValue(),
key: item.key,
}
data.address = data.address.join(' ')
onOk(data)
})
}
const modalOpts = {
title: `${type === 'create' ? '新建用户' : '修改用户'}`,
visible,
...modalProps,
onOk: handleOk,
onCancel,
wrapClassName: 'vertical-center-modal',
}
return (
<Modal {...modalOpts}>
<Form layout="horizontal">
<FormItem label="姓名:" hasFeedback {...formItemLayout}>
<FormItem label="Name" hasFeedback {...formItemLayout}>
{getFieldDecorator('name', {
initialValue: item.name,
rules: [
{
required: true,
message: '姓名未填写',
},
],
})(<Input />)}
</FormItem>
<FormItem label="昵称:" hasFeedback {...formItemLayout}>
<FormItem label="NickName" hasFeedback {...formItemLayout}>
{getFieldDecorator('nickName', {
initialValue: item.nickName,
rules: [
{
required: true,
message: '昵称未填写',
},
],
})(<Input />)}
</FormItem>
<FormItem label="性别" hasFeedback {...formItemLayout}>
<FormItem label="Gender" hasFeedback {...formItemLayout}>
{getFieldDecorator('isMale', {
initialValue: item.isMale,
rules: [
{
required: true,
type: 'boolean',
message: '请选择性别',
},
],
})(
<Radio.Group>
<Radio value>男</Radio>
<Radio value={false}>女</Radio>
<Radio value>Male</Radio>
<Radio value={false}>Female</Radio>
</Radio.Group>
)}
</FormItem>
<FormItem label="年龄:" hasFeedback {...formItemLayout}>
<FormItem label="Age" hasFeedback {...formItemLayout}>
{getFieldDecorator('age', {
initialValue: item.age,
rules: [
{
required: true,
type: 'number',
message: '年龄未填写',
},
],
})(<InputNumber min={18} max={100} />)}
</FormItem>
<FormItem label="电话:" hasFeedback {...formItemLayout}>
<FormItem label="Phone" hasFeedback {...formItemLayout}>
{getFieldDecorator('phone', {
initialValue: item.phone,
rules: [
{
required: true,
message: '不能为空',
pattern: /^1[34578]\d{9}$/,
message: 'The input is not valid phone!',
},
],
})(<Input />)}
</FormItem>
<FormItem label="邮箱:" hasFeedback {...formItemLayout}>
<FormItem label="E-mail" hasFeedback {...formItemLayout}>
{getFieldDecorator('email', {
initialValue: item.email,
rules: [
{
required: true,
message: '不能为空',
pattern: /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/,
message: 'The input is not valid E-mail!',
},
],
})(<Input />)}
</FormItem>
<FormItem label="住址:" hasFeedback {...formItemLayout}>
<FormItem label="Address" hasFeedback {...formItemLayout}>
{getFieldDecorator('address', {
initialValue: item.address,
initialValue: item.address && item.address.split(' '),
rules: [
{
required: true,
message: '不能为空',
},
],
})(<Input />)}
})(<Cascader
size="large"
style={{ width: '100%' }}
options={city}
placeholder="Pick an address"
/>)}
</FormItem>
</Form>
</Modal>
@@ -138,10 +139,8 @@ const modal = ({
modal.propTypes = {
form: PropTypes.object.isRequired,
visible: PropTypes.bool,
type: PropTypes.string,
item: PropTypes.object,
onCancel: PropTypes.func,
onOk: PropTypes.func,
}
+29
View File
@@ -0,0 +1,29 @@
import React from 'react'
import PropTypes from 'prop-types'
import { connect } from 'dva'
import styles from './index.less'
const Detail = ({ userDetail }) => {
const { data } = userDetail
const content = []
for (let key in data) {
if ({}.hasOwnProperty.call(data, key)) {
content.push(<div key={key} className={styles.item}>
<div>{key}</div>
<div>{String(data[key])}</div>
</div>)
}
}
return (<div className="content-inner">
<div className={styles.content}>
{content}
</div>
</div>)
}
Detail.propTypes = {
userDetail: PropTypes.object,
loading: PropTypes.bool,
}
export default connect(({ userDetail, loading }) => ({ userDetail, loading: loading.models.userDetail }))(Detail)
+14
View File
@@ -0,0 +1,14 @@
.content {
line-height: 2.4;
font-size: 13px;
.item {
display: flex;
& > div {
&:first-child {
width: 100px;
}
}
}
}
@@ -1,38 +1,42 @@
import React, { PropTypes } from 'react'
import React from 'react'
import PropTypes from 'prop-types'
import { routerRedux } from 'dva/router'
import { connect } from 'dva'
import UserList from './UserList'
import UserFilter from './UserFilter'
import UserModal from './UserModal'
import List from './List'
import Filter from './Filter'
import Modal from './Modal'
function Users ({ location, dispatch, users, loading }) {
const { list, pagination, currentItem, modalVisible, modalType, isMotion } = users
const { field, keyword } = location.query
const User = ({ location, dispatch, user, loading }) => {
const { list, pagination, currentItem, modalVisible, modalType, isMotion } = user
const { pageSize } = pagination
const userModalProps = {
const modalProps = {
item: modalType === 'create' ? {} : currentItem,
type: modalType,
visible: modalVisible,
maskClosable: false,
confirmLoading: loading.effects['user/update'],
title: `${modalType === 'create' ? 'Create User' : 'Update User'}`,
wrapClassName: 'vertical-center-modal',
onOk (data) {
dispatch({
type: `users/${modalType}`,
type: `user/${modalType}`,
payload: data,
})
},
onCancel () {
dispatch({
type: 'users/hideModal',
type: 'user/hideModal',
})
},
}
const userListProps = {
const listProps = {
dataSource: list,
loading,
loading: loading.effects['user/query'],
pagination,
location,
isMotion,
onPageChange (page) {
onChange (page) {
const { query, pathname } = location
dispatch(routerRedux.push({
pathname,
@@ -45,13 +49,13 @@ function Users ({ location, dispatch, users, loading }) {
},
onDeleteItem (id) {
dispatch({
type: 'users/delete',
type: 'user/delete',
payload: id,
})
},
onEditItem (item) {
dispatch({
type: 'users/showModal',
type: 'user/showModal',
payload: {
modalType: 'update',
currentItem: item,
@@ -60,51 +64,59 @@ function Users ({ location, dispatch, users, loading }) {
},
}
const userFilterProps = {
field,
keyword,
const filterProps = {
isMotion,
filter: {
...location.query,
},
onFilterChange (value) {
dispatch(routerRedux.push({
pathname: location.pathname,
query: {
...value,
page: 1,
pageSize,
},
}))
},
onSearch (fieldsValue) {
fieldsValue.keyword.length ? dispatch(routerRedux.push({
pathname: '/users',
pathname: '/user',
query: {
field: fieldsValue.field,
keyword: fieldsValue.keyword,
},
})) : dispatch(routerRedux.push({
pathname: '/users',
pathname: '/user',
}))
},
onAdd () {
dispatch({
type: 'users/showModal',
type: 'user/showModal',
payload: {
modalType: 'create',
},
})
},
switchIsMotion () {
dispatch({ type: 'users/switchIsMotion' })
dispatch({ type: 'user/switchIsMotion' })
},
}
const UserModalGen = () =>
<UserModal {...userModalProps} />
return (
<div className="content-inner">
<UserFilter {...userFilterProps} />
<UserList {...userListProps} />
<UserModalGen />
<Filter {...filterProps} />
<List {...listProps} />
{modalVisible && <Modal {...modalProps} />}
</div>
)
}
Users.propTypes = {
users: PropTypes.object,
User.propTypes = {
user: PropTypes.object,
location: PropTypes.object,
dispatch: PropTypes.func,
loading: PropTypes.bool,
loading: PropTypes.object,
}
export default connect(({ users, loading }) => ({ users, loading: loading.models.users }))(Users)
export default connect(({ user, loading }) => ({ user, loading }))(User)
-49
View File
@@ -1,49 +0,0 @@
import React, { PropTypes } from 'react'
import { Form, Button, Row, Col, Switch } from 'antd'
import { Search } from '../../components'
const UserFilter = ({
field,
keyword,
onSearch,
onAdd,
isMotion,
switchIsMotion,
}) => {
const searchGroupProps = {
field,
keyword,
size: 'large',
select: true,
selectOptions: [{ value: 'name', name: '姓名' }, { value: 'address', name: '地址' }],
selectProps: {
defaultValue: field || 'name',
},
onSearch: (value) => {
onSearch(value)
},
}
return (
<Row gutter={24}>
<Col lg={8} md={12} sm={16} xs={24} style={{ marginBottom: 16 }}>
<Search {...searchGroupProps} />
</Col>
<Col lg={{ offset: 8, span: 8 }} md={12} sm={8} xs={24} style={{ marginBottom: 16, textAlign: 'right' }}>
{/* <Switch style={{ marginRight: 16 }} defaultChecked={isMotion} onChange={switchIsMotion} checkedChildren={'动画开'} unCheckedChildren={'动画关'} /> */}
<Button size="large" type="ghost" onClick={onAdd}>添加</Button>
</Col>
</Row>
)
}
UserFilter.propTypes = {
form: PropTypes.object.isRequired,
onSearch: PropTypes.func,
onAdd: PropTypes.func,
field: PropTypes.string,
keyword: PropTypes.string,
isMotion: PropTypes.bool,
switchIsMotion: PropTypes.func,
}
export default Form.create()(UserFilter)
+4 -4
View File
@@ -1,10 +1,10 @@
import { request, config } from '../utils'
const { api } = config
const { userInfo, userLogout } = api
const { user, userLogout, userLogin } = api
export async function login (params) {
return request({
url: '/api/login',
url: userLogin,
method: 'post',
data: params,
})
@@ -18,9 +18,9 @@ export async function logout (params) {
})
}
export async function getUserInfo (params) {
export async function query (params) {
return request({
url: userInfo,
url: user.replace('/:id', ''),
method: 'get',
data: params,
})
+35
View File
@@ -0,0 +1,35 @@
import { request, config } from '../utils'
const { api } = config
const { user } = api
export async function query (params) {
return request({
url: user,
method: 'get',
data: params,
})
}
export async function create (params) {
return request({
url: user.replace('/:id', ''),
method: 'post',
data: params,
})
}
export async function remove (params) {
return request({
url: user,
method: 'delete',
data: params,
})
}
export async function update (params) {
return request({
url: user,
method: 'patch',
data: params,
})
}
-24
View File
@@ -9,27 +9,3 @@ export async function query (params) {
data: params,
})
}
export async function create (params) {
return request({
url: users,
method: 'post',
data: params,
})
}
export async function remove (params) {
return request({
url: users,
method: 'delete',
data: params,
})
}
export async function update (params) {
return request({
url: users,
method: 'put',
data: params,
})
}
File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 13 KiB

+1
View File
@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1494313893676" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="8999" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M915.626667 472.746667c0 231.253333-194.56 418.133333-435.2 418.133333s-435.2-186.88-435.2-418.133333 194.56-418.133333 435.2-418.133334 435.2 187.733333 435.2 418.133334" fill="#FFE04A" p-id="9000"></path><path d="M480.426667 903.68c-246.613333 0-448-192.853333-448-430.933333S232.96 42.666667 480.426667 42.666667s448 192.853333 448 430.933333-201.386667 430.08-448 430.08z m0-836.266667C246.613333 67.413333 57.173333 249.173333 57.173333 472.746667S246.613333 878.933333 480.426667 878.933333s423.253333-181.76 423.253333-405.333333S713.386667 67.413333 480.426667 67.413333z" fill="#545971" p-id="9001"></path><path d="M480.426667 759.466667C302.933333 759.466667 150.186667 702.293333 76.8 580.266667c50.346667 174.933333 211.626667 302.933333 402.773333 302.933333s353.28-128 402.773334-302.933333C810.666667 702.293333 657.066667 759.466667 480.426667 759.466667" fill="#FFD05A" p-id="9002"></path><path d="M328.533333 295.253333c-0.853333 0-2.56 0-3.413333-0.853333l-126.293333-37.546667c-6.826667-1.706667-10.24-8.533333-8.533334-15.36 1.706667-6.826667 8.533333-10.24 15.36-8.533333l126.293334 37.546667c6.826667 1.706667 10.24 8.533333 8.533333 15.36-1.706667 5.973333-6.826667 9.386667-11.946667 9.386666zM626.346667 295.253333c-5.12 0-10.24-3.413333-11.946667-9.386666-1.706667-6.826667 1.706667-13.653333 8.533333-15.36l126.293334-37.546667c6.826667-1.706667 13.653333 1.706667 15.36 8.533333 1.706667 6.826667-1.706667 13.653333-8.533334 15.36l-126.293333 37.546667c-0.853333 0.853333-2.56 0.853333-3.413333 0.853333z" fill="#545971" p-id="9003"></path><path d="M350.72 354.986667c0-12.8-11.093333-23.04-23.893333-23.04H203.946667c-13.653333 0-23.893333 10.24-23.893334 23.04v552.106666c0 12.8-5.973333 31.573333-13.653333 42.666667l-26.453333 38.4c-7.68 10.24-2.56 19.626667 10.24 19.626667h229.546666c13.653333 0 17.92-8.533333 10.24-19.626667l-26.453333-38.4c-7.68-10.24-13.653333-29.866667-13.653333-42.666667V354.986667zM804.693333 1006.933333c13.653333 0 17.92-8.533333 10.24-19.626666l-26.453333-38.4c-7.68-10.24-13.653333-29.866667-13.653333-42.666667V354.986667c0-12.8-11.093333-23.04-23.893334-23.04H628.906667c-13.653333 0-23.893333 10.24-23.893334 23.04v552.106666c0 12.8-5.973333 31.573333-13.653333 42.666667l-26.453333 38.4c-7.68 10.24-2.56 19.626667 10.24 19.626667h229.546666z" fill="#88C8FC" p-id="9004"></path><path d="M813.226667 331.946667c0 8.533333-9.386667 14.506667-20.48 14.506666h-204.8c-11.093333 0-20.48-6.826667-20.48-14.506666s9.386667-14.506667 20.48-14.506667h204.8c11.093333 0 20.48 5.973333 20.48 14.506667M388.266667 331.946667c0 8.533333-9.386667 14.506667-20.48 14.506666H162.133333c-11.093333 0-20.48-6.826667-20.48-14.506666s9.386667-14.506667 20.48-14.506667h204.8c11.946667 0 21.333333 5.973333 21.333334 14.506667" fill="#545971" p-id="9005"></path><path d="M477.013333 468.48c-23.04-0.853333-44.373333 17.92-46.933333 41.813333l-25.6 256c-2.56 23.04 14.506667 41.813333 38.4 41.813334l75.093333-1.706667c23.04-0.853333 40.96-19.626667 38.4-43.52l-25.6-250.88c-2.56-23.04-23.04-42.666667-46.933333-43.52h-6.826667z" fill="#DD6B73" p-id="9006"></path><path d="M442.026667 820.053333c-14.506667 0-28.16-5.973333-37.546667-16.213333-9.386667-10.24-14.506667-24.746667-12.8-40.106667l25.6-256c2.56-29.866667 29.013333-52.906667 58.88-52.906666h7.68c29.866667 0.853333 56.32 25.6 58.88 54.613333l24.746667 250.88c1.706667 14.506667-3.413333 29.013333-12.8 40.106667-9.386667 11.093333-23.04 17.066667-38.4 17.066666l-75.093334 1.706667c1.706667 0.853333 0.853333 0.853333 0.853334 0.853333z m34.133333-339.626666c-16.213333 0-31.573333 13.653333-33.28 29.866666l-25.6 256c-0.853333 7.68 1.706667 14.506667 5.973333 19.626667 5.12 5.12 11.946667 7.68 18.773334 7.68l75.093333-1.706667c7.68 0 14.506667-3.413333 19.626667-8.533333s6.826667-12.8 6.826666-20.48L518.826667 512c-1.706667-17.066667-17.066667-31.573333-34.133334-31.573333h-8.533333c0.853333 0 0 0 0 0z" fill="#545971" p-id="9007"></path><path d="M826.88 897.706667m-28.16 0a28.16 28.16 0 1 0 56.32 0 28.16 28.16 0 1 0-56.32 0Z" fill="#88C8FC" p-id="9008"></path><path d="M576 945.493333m-24.746667 0a24.746667 24.746667 0 1 0 49.493334 0 24.746667 24.746667 0 1 0-49.493334 0Z" fill="#88C8FC" p-id="9009"></path><path d="M119.466667 897.706667m-23.04 0a23.04 23.04 0 1 0 46.08 0 23.04 23.04 0 1 0-46.08 0Z" fill="#88C8FC" p-id="9010"></path></svg>

After

Width:  |  Height:  |  Size: 4.6 KiB

+1
View File
@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1494313884985" class="icon" style="" viewBox="0 0 1058 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="8760" xmlns:xlink="http://www.w3.org/1999/xlink" width="206.640625" height="200"><defs><style type="text/css"></style></defs><path d="M981.333333 492.373333c0 231.253333-194.56 418.133333-435.2 418.133334s-435.2-186.88-435.2-418.133334 194.56-418.133333 435.2-418.133333c240.64-0.853333 435.2 186.88 435.2 418.133333" fill="#FFE04A" p-id="8761"></path><path d="M546.133333 922.453333C299.52 922.453333 98.133333 729.6 98.133333 492.373333S299.52 61.44 546.133333 61.44s448 192.853333 448 430.933333-200.533333 430.08-448 430.08z m0-836.266666c-232.96 0-423.253333 181.76-423.253333 405.333333s189.44 405.333333 423.253333 405.333333 423.253333-181.76 423.253334-405.333333-190.293333-405.333333-423.253334-405.333333z" fill="#545971" p-id="8762"></path><path d="M548.693333 778.24c-180.053333 0-336.213333-57.173333-410.453333-180.053333 51.2 174.933333 215.04 302.933333 410.453333 302.933333s359.253333-128 410.453334-302.933333c-75.093333 123.733333-230.4 180.053333-410.453334 180.053333" fill="#FFD05A" p-id="8763"></path><path d="M787.626667 372.906667c-9.386667 0-17.066667-7.68-17.066667-17.066667 0-33.28-31.573333-74.24-68.266667-74.24s-68.266667 40.96-68.266666 74.24c0 9.386667-7.68 17.066667-17.066667 17.066667s-17.066667-7.68-17.066667-17.066667c0-49.493333 44.373333-107.52 101.546667-107.52S802.986667 306.346667 802.986667 355.84c0.853333 9.386667-5.973333 17.066667-15.36 17.066667zM416.426667 372.906667c-9.386667 0-17.066667-7.68-17.066667-17.066667 0-33.28-31.573333-74.24-68.266667-74.24s-68.266667 40.96-68.266666 74.24c0 9.386667-7.68 17.066667-17.066667 17.066667s-17.066667-7.68-17.066667-17.066667c0-49.493333 44.373333-107.52 101.546667-107.52s101.546667 58.026667 101.546667 107.52c1.706667 9.386667-5.973333 17.066667-15.36 17.066667z" fill="#545971" p-id="8764"></path><path d="M395.093333 448c0 35.84-29.866667 64.853333-67.413333 64.853333s-67.413333-29.013333-67.413333-64.853333c0-35.84 29.866667-64.853333 67.413333-64.853333s67.413333 29.013333 67.413333 64.853333M764.586667 448c0 35.84-30.72 64.853333-67.413334 64.853333-37.546667 0-67.413333-29.013333-67.413333-64.853333 0-35.84 29.866667-64.853333 67.413333-64.853333 36.693333 0 67.413333 29.013333 67.413334 64.853333" fill="#FCBD83" p-id="8765"></path><path d="M512.853333 743.253333c-12.8 0-24.746667-4.266667-36.693333-11.946666-23.04-17.92-33.28-36.693333-32.426667-58.026667 0.853333-22.186667 14.506667-40.106667 26.453334-52.053333-15.36-9.386667-35.84-24.746667-41.813334-46.933334-5.12-17.92 0-35.84 13.653334-53.76 38.4-49.493333 102.4-22.186667 130.56-0.853333 5.973333 4.266667 6.826667 11.946667 2.56 17.92-4.266667 5.973333-11.946667 6.826667-17.92 2.56-2.56-1.706667-62.293333-45.226667-95.573334-3.413333-8.533333 11.093333-11.946667 21.333333-9.386666 31.573333 5.12 20.48 34.133333 34.986667 45.226666 39.253333 4.266667 1.706667 7.68 5.973333 7.68 10.24 0.853333 5.12-1.706667 9.386667-5.973333 11.946667-8.533333 5.973333-29.866667 24.746667-30.72 44.373333 0 11.946667 6.826667 23.893333 22.186667 35.84 11.946667 8.533333 24.746667 9.386667 36.693333 3.413334 15.36-6.826667 26.453333-23.893333 27.306667-35.84 0.853333-6.826667 6.826667-11.946667 13.653333-11.946667 6.826667 0.853333 11.946667 6.826667 11.946667 13.653333-1.706667 20.48-17.066667 46.08-41.813334 58.026667-8.533333 4.266667-17.066667 5.973333-25.6 5.973333z" fill="#545971" p-id="8766"></path><path d="M89.6 505.173333c-34.133333-30.72-89.6-10.24-89.6 39.253334 0 68.266667 89.6 107.52 89.6 107.52S180.053333 609.28 180.053333 544.426667c0-49.493333-50.346667-69.12-90.453333-39.253334z m0 0" fill="#F49792" p-id="8767"></path><path d="M297.813333 577.706667C253.44 537.6 180.053333 564.053333 180.053333 629.76c0 89.6 118.613333 140.8 118.613334 140.8s118.613333-55.466667 118.613333-140.8c-0.853333-65.706667-66.56-91.306667-119.466667-52.053333z m0 0" fill="#F66E60" p-id="8768"></path></svg>

After

Width:  |  Height:  |  Size: 4.0 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 12 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 10 KiB

+1
View File
@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1494313890142" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="8880" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M155.306667 161.28c-1.706667 0-4.266667-0.853333-5.973334-1.706667-5.973333-3.413333-8.533333-11.093333-5.12-17.066666 23.04-44.373333 79.36-62.293333 125.44-40.106667 5.973333 3.413333 8.533333 10.24 5.973334 17.066667-3.413333 5.973333-10.24 8.533333-17.066667 5.973333-34.133333-16.213333-75.093333-3.413333-92.16 29.013333-1.706667 4.266667-6.826667 6.826667-11.093333 6.826667zM833.706667 106.666667c-4.266667 0-8.533333-2.56-11.093334-6.826667-17.066667-32.426667-58.026667-45.226667-92.16-29.013333-5.973333 3.413333-13.653333 0-17.066666-5.973334s0-13.653333 5.973333-17.066666c46.08-22.186667 102.4-4.266667 125.44 40.106666 3.413333 5.973333 0.853333 13.653333-5.12 17.066667-1.706667 0.853333-3.413333 1.706667-5.973333 1.706667z" fill="#545971" p-id="8881"></path><path d="M959.146667 512c0 231.253333-194.56 418.133333-435.2 418.133333s-435.2-186.88-435.2-418.133333 194.56-418.133333 435.2-418.133333c239.786667 0 435.2 186.88 435.2 418.133333" fill="#FFE04A" p-id="8882"></path><path d="M523.093333 942.933333C276.48 942.933333 75.093333 749.226667 75.093333 512S275.626667 81.066667 523.093333 81.066667c246.613333 0 448 192.853333 448 430.933333 0 237.226667-200.533333 430.933333-448 430.933333z m0-836.266666C290.133333 106.666667 100.693333 288.426667 100.693333 512s189.44 405.333333 423.253334 405.333333c232.96 0 423.253333-181.76 423.253333-405.333333-0.853333-223.573333-190.293333-405.333333-424.106667-405.333333z" fill="#545971" p-id="8883"></path><path d="M518.826667 798.72c-180.053333 0-335.36-57.173333-409.6-180.053333C160.426667 793.6 324.266667 921.6 518.826667 921.6s358.4-128 409.6-302.933333c-74.24 122.88-229.546667 180.053333-409.6 180.053333" fill="#FFD05A" p-id="8884"></path><path d="M562.346667 753.493333c-20.48 0-32.426667-3.413333-34.133334-4.266666-8.533333-3.413333-13.653333-12.8-10.24-21.333334 3.413333-8.533333 12.8-13.653333 21.333334-10.24 0 0 38.4 11.093333 112.64-16.213333s104.106667-78.506667 105.813333-81.066667c4.266667-7.68 12.8-11.093333 21.333333-7.68s12.8 12.8 9.386667 21.333334c0 0.853333-33.28 65.706667-124.586667 98.986666-45.226667 16.213333-78.506667 20.48-101.546666 20.48zM436.906667 352.426667s-11.946667 164.693333-177.493334 180.906666C93.013333 549.546667 102.4 352.426667 102.4 352.426667s-5.973333-69.12 157.013333-79.36c162.986667-10.24 177.493333 79.36 177.493334 79.36M857.6 352.426667s-11.946667 164.693333-177.493333 180.906666c-165.546667 16.213333-157.013333-180.906667-157.013334-180.906666s-5.973333-69.12 157.013334-79.36c162.986667-10.24 177.493333 79.36 177.493333 79.36" fill="#545971" p-id="8885"></path><path d="M475.306667 374.613333c-58.88 0-82.773333-17.066667-85.333334-19.626666-5.12-4.266667-6.826667-11.946667-2.56-17.92 4.266667-5.12 11.946667-6.826667 17.92-2.56 0 0 23.04 16.213333 81.066667 14.506666 58.026667-1.706667 90.453333-30.72 92.16-31.573333 4.266667-4.266667 11.946667-5.12 17.066667-0.853333 5.12 4.266667 5.973333 11.946667 1.706666 17.92 0 0-39.253333 37.546667-109.226666 40.106666h-12.8z" fill="#545971" p-id="8886"></path><path d="M145.92 397.653333c-7.68-0.853333-12.8-6.826667-12.8-13.653333 0-1.706667 2.56-43.52 26.453333-67.413333 23.893333-23.893333 54.613333-23.04 55.466667-23.04 6.826667 0 12.8 5.973333 11.946667 12.8 0 6.826667-5.973333 11.946667-12.8 11.946666-0.853333 0-21.333333 0-37.546667 16.213334-13.653333 13.653333-18.773333 40.96-19.626667 51.2 0.853333 6.826667-4.266667 11.946667-11.093333 11.946666zM568.32 389.973333c-0.853333 0-2.56 0-3.413333-0.853333-6.826667-1.706667-10.24-8.533333-8.533334-15.36 0.853333-1.706667 11.946667-42.666667 40.106667-60.586667 28.16-17.92 58.026667-11.946667 58.88-11.093333 6.826667 1.706667 11.093333 8.533333 9.386667 15.36-1.706667 6.826667-8.533333 11.093333-15.36 9.386667 0 0-20.48-4.266667-40.106667 8.533333-17.066667 11.093333-27.306667 36.693333-29.866667 46.08-0.853333 5.12-5.973333 8.533333-11.093333 8.533333z" fill="#FFFFFF" p-id="8887"></path></svg>

After

Width:  |  Height:  |  Size: 4.2 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.3 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 6.0 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 13 KiB

+1
View File
@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1494309096402" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="13283" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M512.002 512.002m-491.988 0a491.988 491.988 0 1 0 983.976 0 491.988 491.988 0 1 0-983.976 0Z" fill="#FDDF6D" p-id="13284"></path><path d="M617.43 931.354c-271.716 0-491.986-220.268-491.986-491.986 0-145.168 62.886-275.632 162.888-365.684C129.054 155.124 20.014 320.828 20.014 512c0 271.716 220.268 491.986 491.986 491.986 126.548 0 241.924-47.796 329.098-126.298-67.106 34.31-143.124 53.666-223.668 53.666z" fill="#FCC56B" p-id="13285"></path><path d="M754.796 415.426c0 36.912 29.924 66.834 66.834 66.834 36.912 0 66.834-29.924 66.834-66.834h-133.668zM412.944 415.426c0 36.912 29.924 66.834 66.834 66.834 36.91 0 66.834-29.924 66.834-66.834h-133.668z" fill="#FFFFFF" p-id="13286"></path><path d="M300.576 550.976c-36.536 0-66.156 29.62-66.156 66.158h132.314c-0.004-36.54-29.622-66.158-66.158-66.158zM877.628 542.112c-36.536 0-66.156 29.62-66.156 66.156h132.314c0-36.536-29.622-66.156-66.158-66.156z" fill="#F9A880" p-id="13287"></path><path d="M625.648 761.938h-163.018c-11.054 0-20.014-8.962-20.014-20.014 0-11.054 8.962-20.014 20.014-20.014h163.018c53.874 0 104.522-20.978 142.62-59.072 7.816-7.816 20.49-7.816 28.304 0 7.816 7.816 7.816 20.49 0 28.304-45.656 45.652-106.356 70.796-170.924 70.796z" fill="" p-id="13288"></path><path d="M931.774 218.78c-58.966-84.262-140.682-148.21-236.314-184.926-10.314-3.962-21.896 1.19-25.856 11.51-3.962 10.32 1.19 21.896 11.51 25.856 88.156 33.846 163.49 92.806 217.864 170.506 55.604 79.458 84.994 172.916 84.994 270.268 0 260.248-211.724 471.97-471.97 471.97S40.03 772.244 40.03 512 251.752 40.03 512 40.03c11.054 0 20.014-8.962 20.014-20.014S523.054 0 512 0C229.68 0 0 229.68 0 512s229.68 512 512 512 512-229.68 512-512c0-105.602-31.89-206.998-92.226-293.22z" fill="" p-id="13289"></path><path d="M737.106 435.44c9.062 38.27 43.52 66.834 84.52 66.834 47.888 0 86.848-38.96 86.848-86.848 0-11.054-8.962-20.014-20.014-20.014h-194.996c-11.054 0-20.014 8.962-20.014 20.014 0 11.054 8.962 20.014 20.014 20.014h43.642z m126.846 0c-7.518 15.83-23.662 26.804-42.322 26.804-18.658 0-34.804-10.974-42.322-26.804h84.644zM341.208 415.426c0 11.054 8.962 20.014 20.014 20.014h34.032c9.062 38.27 43.52 66.834 84.52 66.834 47.888 0 86.848-38.96 86.848-86.848 0-11.054-8.962-20.014-20.014-20.014h-185.386c-11.052-0.002-20.014 8.96-20.014 20.014z m180.89 20.014c-7.518 15.83-23.662 26.804-42.322 26.804-18.66 0-34.804-10.974-42.322-26.804h84.644zM462.63 721.908c-11.054 0-20.014 8.962-20.014 20.014 0 11.054 8.962 20.014 20.014 20.014h163.018c64.568 0 125.268-25.144 170.922-70.798 7.816-7.816 7.816-20.49 0-28.304-7.816-7.816-20.49-7.816-28.304 0-38.094 38.094-88.746 59.076-142.62 59.076h-163.018v-0.002z" fill="" p-id="13290"></path><path d="M626.354 35.496m-20.014 0a20.014 20.014 0 1 0 40.028 0 20.014 20.014 0 1 0-40.028 0Z" fill="" p-id="13291"></path></svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

+1
View File
@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1494309102594" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="13403" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M512.002 512.002m-491.988 0a491.988 491.988 0 1 0 983.976 0 491.988 491.988 0 1 0-983.976 0Z" fill="#FDDF6D" p-id="13404"></path><path d="M617.43 931.354c-271.716 0-491.986-220.268-491.986-491.986 0-145.168 62.886-275.632 162.888-365.684C129.054 155.124 20.014 320.828 20.014 512c0 271.716 220.268 491.986 491.986 491.986 126.548 0 241.924-47.796 329.098-126.298-67.106 34.31-143.124 53.666-223.668 53.666z" fill="#FCC56B" p-id="13405"></path><path d="M444.112 359.704m-141.544 0a141.544 141.544 0 1 0 283.088 0 141.544 141.544 0 1 0-283.088 0Z" fill="#FFFFFF" p-id="13406"></path><path d="M786.872 359.704m-89.132 0a89.132 89.132 0 1 0 178.264 0 89.132 89.132 0 1 0-178.264 0Z" fill="#FFFFFF" p-id="13407"></path><path d="M631.29 722.638m-66.822 0a66.822 66.822 0 1 0 133.644 0 66.822 66.822 0 1 0-133.644 0Z" fill="#7F184C" p-id="13408"></path><path d="M486.89 359.704m-40.03 0a40.03 40.03 0 1 0 80.06 0 40.03 40.03 0 1 0-80.06 0Z" fill="#7F184C" p-id="13409"></path><path d="M801.068 359.704m-40.03 0a40.03 40.03 0 1 0 80.06 0 40.03 40.03 0 1 0-80.06 0Z" fill="#7F184C" p-id="13410"></path><path d="M944.24 237.454c-50.778-79.784-122.42-143.916-207.182-185.458-9.924-4.87-21.914-0.766-26.78 9.164-4.864 9.924-0.764 21.914 9.164 26.78 78.148 38.302 144.204 97.436 191.028 171.008 48.084 75.552 73.5 163.056 73.5 253.052 0 260.248-211.724 471.97-471.97 471.97S40.03 772.244 40.03 512 251.752 40.03 512 40.03c11.054 0 20.014-8.962 20.014-20.014S523.054 0 512 0C229.68 0 0 229.68 0 512s229.68 512 512 512 512-229.68 512-512c0-97.626-27.58-192.56-79.76-274.546z" fill="" p-id="13411"></path><path d="M282.546 359.71c0 89.09 72.48 161.57 161.57 161.57s161.57-72.48 161.57-161.57-72.48-161.57-161.57-161.57c-89.088 0-161.57 72.48-161.57 161.57z m283.112 0c0 67.018-54.522 121.54-121.54 121.54s-121.54-54.522-121.54-121.54 54.522-121.54 121.54-121.54 121.54 54.522 121.54 121.54zM786.86 468.856c60.182 0 109.146-48.964 109.146-109.146s-48.964-109.146-109.146-109.146-109.146 48.964-109.146 109.146 48.964 109.146 109.146 109.146z m0-178.262c38.11 0 69.118 31.006 69.118 69.118s-31.006 69.118-69.118 69.118c-38.11 0-69.118-31.006-69.118-69.118s31.008-69.118 69.118-69.118zM543.284 722.642c0 47.888 38.962 86.848 86.848 86.848 47.886 0 86.848-38.962 86.848-86.848s-38.962-86.848-86.848-86.848c-47.886 0-86.848 38.962-86.848 86.848z m86.848-46.818c25.816 0 46.818 21.004 46.818 46.818s-21.004 46.818-46.818 46.818c-25.814 0-46.818-21.004-46.818-46.818s21.004-46.818 46.818-46.818z" fill="" p-id="13412"></path><path d="M660.726 43.072m-20.014 0a20.014 20.014 0 1 0 40.028 0 20.014 20.014 0 1 0-40.028 0Z" fill="" p-id="13413"></path></svg>

After

Width:  |  Height:  |  Size: 2.9 KiB

+1
View File
@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1494309091262" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="13163" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M512.002 512.002m-491.988 0a491.988 491.988 0 1 0 983.976 0 491.988 491.988 0 1 0-983.976 0Z" fill="#FDDF6D" p-id="13164"></path><path d="M617.43 931.356c-271.716 0-491.986-220.268-491.986-491.986 0-145.168 62.886-275.632 162.888-365.684C129.054 155.124 20.014 320.828 20.014 512c0 271.716 220.268 491.986 491.986 491.986 126.548 0 241.924-47.796 329.098-126.298-67.106 34.31-143.124 53.668-223.668 53.668z" fill="#FCC56B" p-id="13165"></path><path d="M337.936 547.698c-36.536 0-66.156 29.62-66.156 66.158h132.314c-0.002-36.538-29.622-66.158-66.158-66.158zM877.628 547.698c-36.536 0-66.156 29.62-66.156 66.158h132.314c0-36.538-29.622-66.158-66.158-66.158z" fill="#F9A880" p-id="13166"></path><path d="M738.086 816.378H518.122c-40.532 0-73.388-32.856-73.388-73.388 0-40.532 32.856-73.388 73.388-73.388h219.964c40.532 0 73.388 32.856 73.388 73.388 0 40.532-32.86 73.388-73.388 73.388z" fill="#FFFFFF" p-id="13167"></path><path d="M444.732 742.99c0 6.942 0.984 13.65 2.786 20.014h361.166a73.34 73.34 0 0 0 0-40.028H447.518a73.35 73.35 0 0 0-2.786 20.014z" fill="#E6E6E6" p-id="13168"></path><path d="M711.298 40.246c-10.178-4.302-21.922 0.454-26.23 10.634-4.304 10.18 0.456 21.926 10.638 26.23C870.818 151.176 983.97 321.88 983.97 512c0 260.248-211.724 471.968-471.97 471.968S40.03 772.248 40.03 512 251.752 40.03 512 40.03c11.054 0 20.014-8.958 20.014-20.014S523.054 0 512 0C229.68 0 0 229.68 0 512c0 282.316 229.68 512 512 512s512-229.68 512-511.998c0-206.238-122.744-391.412-312.702-471.756z" fill="" p-id="13169"></path><path d="M364.428 469.032a20.014 20.014 0 0 0 18.354 12.02 19.92 19.92 0 0 0 7.99-1.674l123.92-54.04a20.014 20.014 0 0 0 0.082-36.656l-123.92-54.706c-10.106-4.464-21.928 0.112-26.392 10.226-4.464 10.114 0.114 21.93 10.228 26.396l82.188 36.286-82.108 35.804c-10.128 4.416-14.762 16.212-10.342 26.344zM891.774 469.032a20.014 20.014 0 0 1-18.354 12.02 19.92 19.92 0 0 1-7.99-1.674l-123.92-54.04a20.014 20.014 0 0 1-0.082-36.656l123.92-54.706c10.106-4.464 21.928 0.112 26.392 10.226 4.464 10.114-0.114 21.93-10.228 26.396l-82.188 36.286 82.108 35.804c10.13 4.416 14.762 16.212 10.342 26.344zM424.718 742.99c0 51.502 41.9 93.402 93.402 93.402h219.964c51.502 0 93.402-41.9 93.402-93.402s-41.9-93.402-93.402-93.402H518.12c-51.5 0.002-93.402 41.902-93.402 93.402z m366.74 0c0 29.43-23.942 53.372-53.372 53.372H518.122c-29.43 0-53.372-23.942-53.372-53.372s23.942-53.372 53.372-53.372h219.964c29.428 0 53.372 23.944 53.372 53.372z" fill="" p-id="13170"></path><path d="M632.784 36.694m-20.014 0a20.014 20.014 0 1 0 40.028 0 20.014 20.014 0 1 0-40.028 0Z" fill="" p-id="13171"></path></svg>

After

Width:  |  Height:  |  Size: 2.9 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.8 KiB

+1
View File
@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1494309080371" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="12920" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M512.002 512.002m-491.988 0a491.988 491.988 0 1 0 983.976 0 491.988 491.988 0 1 0-983.976 0Z" fill="#FDDF6D" p-id="12921"></path><path d="M617.43 931.354c-271.716 0-491.986-220.268-491.986-491.986 0-145.168 62.886-275.632 162.888-365.684C129.054 155.124 20.014 320.828 20.014 512c0 271.716 220.268 491.986 491.986 491.986 126.548 0 241.924-47.796 329.098-126.298-67.106 34.31-143.124 53.666-223.668 53.666z" fill="#FCC56B" p-id="12922"></path><path d="M754.794 359.71c0 36.912 29.924 66.834 66.834 66.834 36.912 0 66.834-29.924 66.834-66.834h-133.668zM412.944 359.71c0 36.912 29.924 66.834 66.834 66.834 36.91 0 66.834-29.924 66.834-66.834h-133.668z" fill="#FFFFFF" p-id="12923"></path><path d="M300.572 481.542c-36.536 0-66.156 29.62-66.156 66.158h132.314c0-36.538-29.618-66.158-66.158-66.158zM877.628 472.678c-36.536 0-66.158 29.62-66.158 66.156h132.314c0-36.538-29.62-66.156-66.156-66.156z" fill="#F9A880" p-id="12924"></path><path d="M465.712 780.218a19.96 19.96 0 0 1-14.648-6.372c-7.534-8.088-7.086-20.752 1-28.288 33.622-31.324 92.184-50.782 152.838-50.782 63.42 0 120.406 19.176 152.438 51.294 7.806 7.828 7.788 20.498-0.038 28.304-7.828 7.806-20.5 7.788-28.306-0.038-24.316-24.384-71.868-39.53-124.094-39.53-50.93 0-99.04 15.344-125.55 40.042a19.952 19.952 0 0 1-13.64 5.37z" fill="#7F184C" p-id="12925"></path><path d="M943.196 235.822c-51.46-80.184-123.956-144.338-209.648-185.53-9.96-4.784-21.918-0.596-26.71 9.37-4.788 9.962-0.596 21.92 9.37 26.71 79.004 37.978 145.846 97.132 193.3 171.072 48.714 75.904 74.46 163.928 74.46 254.558 0 260.248-211.724 471.97-471.97 471.97S40.03 772.244 40.03 512 251.752 40.03 512 40.03c11.054 0 20.014-8.962 20.014-20.014S523.054 0 512 0C229.68 0 0 229.68 0 512s229.68 512 512 512 512-229.68 512-512c0-98.31-27.94-193.812-80.804-276.178z" fill="" p-id="12926"></path><path d="M642.25 359.71c0 11.054 8.962 20.014 20.014 20.014h74.842c9.062 38.27 43.52 66.834 84.52 66.834 47.888 0 86.848-38.962 86.848-86.848 0-11.054-8.962-20.014-20.014-20.014H662.266c-11.054-0.002-20.016 8.96-20.016 20.014z m221.702 20.014c-7.518 15.832-23.662 26.804-42.322 26.804-18.658 0-34.804-10.974-42.322-26.804h84.644zM300.4 359.71c0 11.054 8.962 20.014 20.014 20.014h74.842c9.062 38.27 43.52 66.834 84.52 66.834 47.888 0 86.848-38.962 86.848-86.848 0-11.054-8.962-20.014-20.014-20.014H320.414c-11.054-0.002-20.014 8.96-20.014 20.014z m221.698 20.014c-7.518 15.832-23.662 26.804-42.322 26.804-18.66 0-34.804-10.974-42.322-26.804h84.644zM451.062 773.848a19.964 19.964 0 0 0 14.648 6.372 19.948 19.948 0 0 0 13.64-5.37c26.512-24.7 74.62-40.042 125.55-40.042 52.226 0 99.774 15.148 124.094 39.534 7.806 7.828 20.48 7.844 28.306 0.038 7.828-7.806 7.844-20.48 0.038-28.304-32.032-32.12-89.018-51.296-152.438-51.296-60.65 0-119.212 19.46-152.838 50.784-8.086 7.534-8.534 20.198-1 28.284z" fill="" p-id="12927"></path><path d="M654.428 43.39m-20.014 0a20.014 20.014 0 1 0 40.028 0 20.014 20.014 0 1 0-40.028 0Z" fill="" p-id="12928"></path></svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 6.8 KiB

+1
View File
@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1494309076179" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="12800" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M512.002 512.002m-491.988 0a491.988 491.988 0 1 0 983.976 0 491.988 491.988 0 1 0-983.976 0Z" fill="#FDDF6D" p-id="12801"></path><path d="M617.43 931.356c-271.716 0-491.986-220.268-491.986-491.986 0-145.168 62.886-275.632 162.888-365.684C129.054 155.124 20.014 320.828 20.014 512c0 271.716 220.268 491.986 491.986 491.986 126.548 0 241.924-47.796 329.098-126.298-67.106 34.31-143.124 53.668-223.668 53.668z" fill="#FCC56B" p-id="12802"></path><path d="M600.658 785.74c-53.02 0-102-28.8-127.822-75.16-5.38-9.658-1.91-21.848 7.744-27.226 9.656-5.38 21.846-1.91 27.226 7.744 18.764 33.686 54.342 54.608 92.852 54.608 37.528 0 73.51-21.136 93.908-55.16 5.684-9.478 17.978-12.562 27.458-6.874 9.482 5.684 12.558 17.978 6.874 27.458-27.59 46.024-76.732 74.61-128.24 74.61zM832.922 448.042a20.01 20.01 0 0 1-17.504-10.28c-12.842-23.054-37.19-37.374-63.542-37.374-25.702 0-50.378 14.53-64.404 37.924-5.682 9.482-17.974 12.562-27.458 6.874-9.482-5.684-12.558-17.976-6.874-27.458 21.216-35.388 59.048-57.372 98.736-57.372 40.862 0 78.61 22.194 98.512 57.922 5.38 9.658 1.91 21.848-7.744 27.226a19.914 19.914 0 0 1-9.722 2.538z" fill="#7F184C" p-id="12803"></path><path d="M430.556 420.388m-60.044 0a60.044 60.044 0 1 0 120.088 0 60.044 60.044 0 1 0-120.088 0Z" fill="#FFFFFF" p-id="12804"></path><path d="M354.876 561.148c-36.536 0-66.158 29.62-66.158 66.156h132.314c0-36.536-29.62-66.156-66.156-66.156zM841.098 561.148c-36.536 0-66.156 29.62-66.156 66.156h132.314c-0.004-36.536-29.622-66.156-66.158-66.156z" fill="#F9A880" p-id="12805"></path><path d="M683.276 29.354c-10.416-3.69-21.858 1.754-25.554 12.168-3.698 10.418 1.75 21.858 12.168 25.558C857.752 133.748 983.974 312.546 983.974 512c0 260.248-211.724 471.97-471.97 471.97S40.03 772.244 40.03 512 251.752 40.03 512 40.03c11.054 0 20.014-8.962 20.014-20.014S523.054 0 512 0C229.68 0 0 229.68 0 512s229.68 512 512 512 512-229.68 512-512c0-216.362-136.928-410.32-340.724-482.646z" fill="" p-id="12806"></path><path d="M600.658 785.742c51.512 0 100.652-28.586 128.244-74.606 5.684-9.478 2.608-21.774-6.874-27.458-9.48-5.684-21.774-2.608-27.458 6.874-20.398 34.024-56.382 55.158-93.908 55.158-38.51 0-74.09-20.924-92.852-54.608-5.38-9.656-17.57-13.124-27.226-7.744-9.658 5.38-13.124 17.568-7.744 27.226 25.816 46.358 74.794 75.158 127.818 75.158zM660.012 445.188c9.482 5.684 21.776 2.604 27.458-6.874 14.024-23.394 38.704-37.924 64.404-37.924 26.352 0 50.702 14.32 63.542 37.372a20.012 20.012 0 0 0 27.226 7.748c9.658-5.38 13.124-17.568 7.744-27.226-19.902-35.728-57.65-57.922-98.512-57.922-39.688 0-77.52 21.982-98.736 57.37-5.684 9.478-2.604 21.772 6.874 27.456zM510.614 420.388c0-44.144-35.914-80.058-80.058-80.058s-80.058 35.914-80.058 80.058 35.914 80.058 80.058 80.058 80.058-35.912 80.058-80.058z m-80.058 40.03c-22.072 0-40.03-17.958-40.03-40.03s17.958-40.03 40.03-40.03c22.072 0 40.03 17.958 40.03 40.03s-17.958 40.03-40.03 40.03z" fill="" p-id="12807"></path><path d="M607.22 29.568m-20.014 0a20.014 20.014 0 1 0 40.028 0 20.014 20.014 0 1 0-40.028 0Z" fill="" p-id="12808"></path></svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 6.7 KiB

+12 -10
View File
@@ -2,13 +2,15 @@
// https://github.com/ant-design/ant-design/blob/master/components/style/themes/default.less
// 相应变量值的覆盖
// 注意:只需写出要覆盖的变量即可(不需要覆盖的变量不要写)
@import "../../node_modules/antd/lib/style/themes/default.less"; // // Prefix
// @border-radius-base: 3px;
// @border-radius-sm: 2px;
// @shadow-color: rgba(0,0,0,0.05);
// @shadow-1-down: 4px 4px 40px @shadow-color;
// @border-color-split: #f4f4f4;
// @border-color-base: #e5e5e5;
// @menu-dark-bg: #3e3e3e;
// @text-color: #666;
// @font-family: "AvenirNext-Regular", "Helvetica Neue", "lucida grande", "PingFangHK-Light", "STHeiti", "Heiti SC", "Hiragino Sans GB", "Microsoft JhengHei", "Microsoft Yahei", SimHei, "WenQuanYi Micro Hei", "Droid Sans", "Roboto", Helvetica, Tahoma, Arial, "sans-serif";
// http://www.iconfont.cn/collections/detail?cid=790
@import "../../node_modules/antd/lib/style/themes/default.less";
@border-radius-base: 3px;
@border-radius-sm: 2px;
@shadow-color: rgba(0,0,0,0.05);
@shadow-1-down: 4px 4px 40px @shadow-color;
@border-color-split: #f4f4f4;
@border-color-base: #e5e5e5;
@menu-dark-bg: #3e3e3e;
@text-color: #666;
@font-family: "AvenirNext-Regular", "Helvetica Neue", "lucida grande", "PingFangHK-Light", "STHeiti", "Heiti SC", "Hiragino Sans GB", "Microsoft JhengHei", "Microsoft Yahei", SimHei, "WenQuanYi Micro Hei", "Droid Sans", "Roboto", Helvetica, Tahoma, Arial, "sans-serif";
@icon-url: "/antd/iconfont";
+7 -14
View File
@@ -113,21 +113,14 @@ body {
}
}
@media (min-width: 1600px) {
.ant-col-xl-48 {
width: 20%;
}
:global {
.ant-col-xl-48 {
width: 20%;
}
.ant-col-xl-96 {
width: 40%;
}
}
@media (min-width: 1600px) {
.ant-col-xl-48 {
width: 20%;
}
.ant-col-xl-96 {
width: 40%;
.ant-col-xl-96 {
width: 40%;
}
}
}
@media (max-width: 767px) {
+4073
View File
File diff suppressed because it is too large Load Diff
+6 -4
View File
@@ -1,12 +1,13 @@
module.exports = {
name: 'AntD Admin',
prefix: 'antdAdmin',
footerText: 'Ant Design Admin 版权所有 © 2016 由 zuiidea 支持',
logo: 'https://t.alipayobjects.com/images/T1QUBfXo4fXXXXXXXX.png',
iconFontUrl: '//at.alicdn.com/t/font_c4y7asse3q1cq5mi.js',
footerText: 'Ant Design Admin © 2017 zuiidea',
logo: '/logo.png',
iconFontCSS: '/iconfont.css',
iconFontJS: '/iconfont.js',
baseURL: 'http://localhost:8000/api/v1',
YQL: ['http://www.zuimeitianqi.com'],
CORS: ['http://localhost:7001'],
CORS: ['http://localhost:7000'],
openPages: ['/login'],
apiPrefix: '/api/v1',
api: {
@@ -14,6 +15,7 @@ module.exports = {
userLogout: '/user/logout',
userInfo: '/userInfo',
users: '/users',
user: '/user/:id',
dashboard: '/dashboard',
},
}
+49
View File
@@ -3,6 +3,7 @@ import menu from './menu'
import request from './request'
import classnames from 'classnames'
import { color } from './theme'
import lodash from 'lodash'
// 连字符转驼峰
String.prototype.hyphenToHump = function () {
@@ -52,6 +53,52 @@ const queryURL = (name) => {
return null
}
/**
* 数组内查询
* @param {array} array
* @param {String} id
* @param {String} keyAlias
* @return {Array}
*/
const queryArray = (array, key, keyAlias = 'key') => {
if (!(array instanceof Array)) {
return null
}
const item = array.filter(_ => _[keyAlias] === key)
if (item.length) {
return item[0]
}
return null
}
/**
* 数组格式转树状结构
* @param {array} array
* @param {String} id
* @param {String} pid
* @param {String} children
* @return {Array}
*/
const arrayToTree = (array, id = 'id', pid = 'pid', children = 'children') => {
let data = lodash.cloneDeep(array)
let result = []
let hash = {}
data.forEach((item, index) => {
hash[data[index][id]] = data[index]
})
data.forEach((item) => {
let hashVP = hash[item[pid]]
if (hashVP) {
!hashVP[children] && (hashVP[children] = [])
hashVP[children].push(item)
} else {
result.push(item)
}
})
return result
}
module.exports = {
config,
menu,
@@ -59,4 +106,6 @@ module.exports = {
color,
classnames,
queryURL,
queryArray,
arrayToTree,
}
+122 -77
View File
@@ -1,102 +1,147 @@
module.exports = [
{
key: 'dashboard',
name: 'Dashboard',
id: 1,
icon: 'laptop',
name: 'Dashboard',
router: '/dashboard',
},
{
key: 'users',
id: 2,
bpid: 1,
name: 'User Manage',
icon: 'user',
router: '/user',
},
{
key: 'request',
id: 21,
mpid: -1,
bpid: 2,
name: 'User Detail',
router: '/user/:id',
},
{
id: 3,
bpid: 1,
name: 'Request',
icon: 'api',
router: '/request',
},
{
key: 'UIElement',
id: 4,
bpid: 1,
name: 'UI Element',
icon: 'camera-o',
clickable: false,
child: [
{
key: 'iconfont',
name: 'IconFont',
icon: 'heart-o',
},
{
key: 'dataTable',
name: 'DataTable',
icon: 'database',
},
{
key: 'dropOption',
name: 'DropOption',
icon: 'bars',
},
{
key: 'search',
name: 'Search',
icon: 'search',
},
{
key: 'editor',
name: 'Editor',
icon: 'edit',
},
{
key: 'layer',
name: 'layer (Function)',
icon: 'credit-card',
},
],
},
{
key: 'chart',
id: 41,
bpid: 4,
mpid: 4,
name: 'IconFont',
icon: 'heart-o',
router: '/UIElement/iconfont',
},
{
id: 42,
bpid: 4,
mpid: 4,
name: 'DataTable',
icon: 'database',
router: '/UIElement/dataTable',
},
{
id: 43,
bpid: 4,
mpid: 4,
name: 'DropOption',
icon: 'bars',
router: '/UIElement/dropOption',
},
{
id: 44,
bpid: 4,
mpid: 4,
name: 'Search',
icon: 'search',
router: '/UIElement/search',
},
{
id: 45,
bpid: 4,
mpid: 4,
name: 'Editor',
icon: 'edit',
router: '/UIElement/editor',
},
{
id: 46,
bpid: 4,
mpid: 4,
name: 'layer (Function)',
icon: 'credit-card',
router: '/UIElement/layer',
},
{
id: 5,
bpid: 1,
name: 'Recharts',
icon: 'code-o',
child: [
{
key: 'lineChart',
name: 'LineChart',
icon: 'line-chart',
},
{
key: 'barChart',
name: 'BarChart',
icon: 'bar-chart',
},
{
key: 'areaChart',
name: 'AreaChart',
icon: 'area-chart',
},
],
},
{
key: 'navigation',
id: 51,
bpid: 5,
mpid: 5,
name: 'LineChart',
icon: 'line-chart',
router: '/chart/lineChart',
},
{
id: 52,
bpid: 5,
mpid: 5,
name: 'BarChart',
icon: 'bar-chart',
router: '/chart/barChart',
},
{
id: 53,
bpid: 5,
mpid: 5,
name: 'AreaChart',
icon: 'area-chart',
router: '/chart/areaChart',
},
{
id: 6,
bpid: 1,
name: 'Test Navigation',
icon: 'setting',
child: [
{
key: 'navigation1',
name: 'Test Navigation1',
},
{
key: 'navigation2',
name: 'Test Navigation2',
child: [
{
key: 'navigation21',
name: 'Test Navigation21',
},
{
key: 'navigation22',
name: 'Test Navigation22',
},
],
},
],
},
{
id: 61,
bpid: 6,
mpid: 6,
name: 'Test Navigation1',
router: '/navigation/navigation1',
},
{
id: 62,
bpid: 6,
mpid: 6,
name: 'Test Navigation2',
router: '/navigation/navigation2',
},
{
id: 621,
bpid: 62,
mpid: 62,
name: 'Test Navigation21',
router: '/navigation/navigation2/navigation1',
},
{
id: 622,
bpid: 62,
mpid: 62,
name: 'Test Navigation22',
router: '/navigation/navigation2/navigation2',
},
]
+38 -12
View File
@@ -3,6 +3,8 @@ import qs from 'qs'
import { YQL, CORS, baseURL } from './config'
import jsonp from 'jsonp'
import lodash from 'lodash'
import pathToRegexp from 'path-to-regexp'
import { message } from 'antd'
axios.defaults.baseURL = baseURL
@@ -14,6 +16,26 @@ const fetch = (options) => {
url,
} = options
const cloneData = lodash.cloneDeep(data)
try {
let domin = ''
if (url.match(/[a-zA-z]+:\/\/[^/]*/)) {
domin = url.match(/[a-zA-z]+:\/\/[^/]*/)[0]
url = url.slice(domin.length)
}
const match = pathToRegexp.parse(url)
url = pathToRegexp.compile(url)(data)
for (let item of match) {
if (item instanceof Object && item.name in cloneData) {
delete cloneData[item.name]
}
}
url = domin + url
} catch (e) {
message.error(e.message)
}
if (fetchType === 'JSONP') {
return new Promise((resolve, reject) => {
jsonp(url, {
@@ -34,17 +56,19 @@ const fetch = (options) => {
switch (method.toLowerCase()) {
case 'get':
return axios.get(`${url}${!lodash.isEmpty(data) ? `?${qs.stringify(data)}` : ''}`)
return axios.get(url, {
params: cloneData,
})
case 'delete':
return axios.delete(url, { data })
case 'head':
return axios.head(url, data)
return axios.delete(url, {
data: cloneData,
})
case 'post':
return axios.post(url, data)
return axios.post(url, cloneData)
case 'put':
return axios.put(url, data)
return axios.put(url, cloneData)
case 'patch':
return axios.patch(url, data)
return axios.patch(url, cloneData)
default:
return axios(options)
}
@@ -75,16 +99,18 @@ export default function request (options) {
}
}).catch((error) => {
const { response } = error
let message
let msg
let status
let otherData = {}
if (response) {
status = response.status
const { data, statusText } = response
message = data.message || statusText
otherData = data
status = response.status
msg = data.message || statusText
} else {
status = 600
message = 'Network Error'
msg = 'Network Error'
}
return { success: false, status, message }
return { success: false, status, message: msg, ...otherData }
})
}
-50
View File
@@ -1,50 +0,0 @@
const webpack = require('atool-build/lib/webpack')
module.exports = function (webpackConfig, env) {
webpackConfig.babel.plugins.push('transform-runtime')
webpackConfig.babel.plugins.push(['import', {
libraryName: 'antd',
style: true,
}])
// Support hmr
if (env === 'development') {
webpackConfig.devtool = '#eval'
webpackConfig.babel.plugins.push(['dva-hmr', {
entries: [
'./src/index.js',
],
}])
} else {
webpackConfig.babel.plugins.push('dev-expression')
webpackConfig.entry = { index: './src/_index.js' }
}
// Don't extract common.js and common.css
webpackConfig.plugins = webpackConfig.plugins.filter((plugin) => {
return !(plugin instanceof webpack.optimize.CommonsChunkPlugin)
})
// Support CSS Modules
// Parse all less files as css module.
webpackConfig.module.loaders.forEach((loader) => {
if (typeof loader.test === 'function' && loader.test.toString().indexOf('\\.less$') > -1) {
loader.include = /node_modules/
loader.test = /\.less$/
}
if (loader.test.toString() === '/\\.module\\.less$/') {
loader.exclude = /node_modules/
loader.test = /\.less$/
}
if (typeof loader.test === 'function' && loader.test.toString().indexOf('\\.css$') > -1) {
loader.include = /node_modules/
loader.test = /\.css$/
}
if (loader.test.toString() === '/\\.module\\.css$/') {
loader.exclude = /node_modules/
loader.test = /\.css$/
}
})
return webpackConfig
}