提交修改

pull/1/head
袁野 4 years ago
parent b8b80e271e
commit dd70fae0d6
  1. 168
      src/assets/node_modules/@notadd/neditor/README.md
  2. 40
      src/assets/node_modules/@notadd/neditor/dialogs/anchor/anchor.html
  3. 682
      src/assets/node_modules/@notadd/neditor/dialogs/attachment/attachment.css
  4. 60
      src/assets/node_modules/@notadd/neditor/dialogs/attachment/attachment.html
  5. 777
      src/assets/node_modules/@notadd/neditor/dialogs/attachment/attachment.js
  6. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/attachment/fileTypeImages/icon_chm.gif
  7. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/attachment/fileTypeImages/icon_default.png
  8. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/attachment/fileTypeImages/icon_doc.gif
  9. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/attachment/fileTypeImages/icon_exe.gif
  10. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/attachment/fileTypeImages/icon_jpg.gif
  11. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/attachment/fileTypeImages/icon_mp3.gif
  12. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/attachment/fileTypeImages/icon_mv.gif
  13. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/attachment/fileTypeImages/icon_pdf.gif
  14. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/attachment/fileTypeImages/icon_ppt.gif
  15. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/attachment/fileTypeImages/icon_psd.gif
  16. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/attachment/fileTypeImages/icon_rar.gif
  17. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/attachment/fileTypeImages/icon_txt.gif
  18. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/attachment/fileTypeImages/icon_xls.gif
  19. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/attachment/images/alignicon.gif
  20. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/attachment/images/alignicon.png
  21. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/attachment/images/bg.png
  22. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/attachment/images/file-icons.gif
  23. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/attachment/images/file-icons.png
  24. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/attachment/images/icons.gif
  25. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/attachment/images/icons.png
  26. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/attachment/images/image.png
  27. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/attachment/images/progress.png
  28. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/attachment/images/success.gif
  29. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/attachment/images/success.png
  30. 97
      src/assets/node_modules/@notadd/neditor/dialogs/background/background.css
  31. 56
      src/assets/node_modules/@notadd/neditor/dialogs/background/background.html
  32. 376
      src/assets/node_modules/@notadd/neditor/dialogs/background/background.js
  33. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/background/images/bg.png
  34. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/background/images/success.png
  35. 65
      src/assets/node_modules/@notadd/neditor/dialogs/charts/chart.config.js
  36. 165
      src/assets/node_modules/@notadd/neditor/dialogs/charts/charts.css
  37. 89
      src/assets/node_modules/@notadd/neditor/dialogs/charts/charts.html
  38. 519
      src/assets/node_modules/@notadd/neditor/dialogs/charts/charts.js
  39. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/charts/images/charts0.png
  40. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/charts/images/charts1.png
  41. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/charts/images/charts2.png
  42. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/charts/images/charts3.png
  43. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/charts/images/charts4.png
  44. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/charts/images/charts5.png
  45. 43
      src/assets/node_modules/@notadd/neditor/dialogs/emotion/emotion.css
  46. 54
      src/assets/node_modules/@notadd/neditor/dialogs/emotion/emotion.html
  47. 186
      src/assets/node_modules/@notadd/neditor/dialogs/emotion/emotion.js
  48. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/emotion/images/0.gif
  49. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/emotion/images/bface.gif
  50. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/emotion/images/cface.gif
  51. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/emotion/images/fface.gif
  52. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/emotion/images/jxface2.gif
  53. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/emotion/images/neweditor-tab-bg.png
  54. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/emotion/images/tface.gif
  55. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/emotion/images/wface.gif
  56. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/emotion/images/yface.gif
  57. 272
      src/assets/node_modules/@notadd/neditor/dialogs/fonts/buttoniconex.css
  58. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/fonts/iconfont.eot
  59. 398
      src/assets/node_modules/@notadd/neditor/dialogs/fonts/iconfont.svg
  60. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/fonts/iconfont.ttf
  61. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/fonts/iconfont.woff
  62. 1
      src/assets/node_modules/@notadd/neditor/dialogs/fonts/images/addfile.svg
  63. 1
      src/assets/node_modules/@notadd/neditor/dialogs/fonts/images/selected.svg
  64. 106
      src/assets/node_modules/@notadd/neditor/dialogs/gmap/gmap.html
  65. 7
      src/assets/node_modules/@notadd/neditor/dialogs/help/help.css
  66. 82
      src/assets/node_modules/@notadd/neditor/dialogs/help/help.html
  67. 56
      src/assets/node_modules/@notadd/neditor/dialogs/help/help.js
  68. 936
      src/assets/node_modules/@notadd/neditor/dialogs/image/image.css
  69. 127
      src/assets/node_modules/@notadd/neditor/dialogs/image/image.html
  70. 1131
      src/assets/node_modules/@notadd/neditor/dialogs/image/image.js
  71. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/image/images/alignicon.jpg
  72. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/image/images/bg.png
  73. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/image/images/icons.gif
  74. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/image/images/icons.png
  75. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/image/images/image.png
  76. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/image/images/progress.png
  77. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/image/images/success.gif
  78. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/image/images/success.png
  79. 115
      src/assets/node_modules/@notadd/neditor/dialogs/insertframe/insertframe.html
  80. 81
      src/assets/node_modules/@notadd/neditor/dialogs/internal.js
  81. 135
      src/assets/node_modules/@notadd/neditor/dialogs/link/link.html
  82. 159
      src/assets/node_modules/@notadd/neditor/dialogs/map/map.html
  83. 118
      src/assets/node_modules/@notadd/neditor/dialogs/map/show.html
  84. 21
      src/assets/node_modules/@notadd/neditor/dialogs/music/balls.svg
  85. 90
      src/assets/node_modules/@notadd/neditor/dialogs/music/music.css
  86. 32
      src/assets/node_modules/@notadd/neditor/dialogs/music/music.html
  87. 192
      src/assets/node_modules/@notadd/neditor/dialogs/music/music.js
  88. 40
      src/assets/node_modules/@notadd/neditor/dialogs/preview/preview.html
  89. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/scrawl/images/addimg.png
  90. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/scrawl/images/brush.png
  91. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/scrawl/images/delimg.png
  92. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/scrawl/images/delimgH.png
  93. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/scrawl/images/empty.png
  94. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/scrawl/images/emptyH.png
  95. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/scrawl/images/eraser.png
  96. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/scrawl/images/redo.png
  97. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/scrawl/images/redoH.png
  98. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/scrawl/images/scale.png
  99. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/scrawl/images/scaleH.png
  100. BIN
      src/assets/node_modules/@notadd/neditor/dialogs/scrawl/images/size.png
  101. Some files were not shown because too many files have changed in this diff Show More

@ -0,0 +1,168 @@
<p align="center">
<a href="https://jq.qq.com/?_wv=1027&k=5qVzRh4" title="Notadd 官方技术交流群"><img src="https://img.shields.io/badge/QQ%20Group-321735506-6782d6.svg?style=flat-square"></a>
<a href="https://travis-ci.org/notadd/neditor" title="Build Status"><img src="https://img.shields.io/travis/notadd/neditor/master.svg?style=flat-square"></a>
</p>
## 新版发布
2.1 发布,此次版本移除了后端相关代码,纯 ajax 提交,请配置 `neditor.config.js` `neditor.service.js`,支持各种后端或者云存储。
## 捐赠
该项目需要您的支持, [捐赠](https://gitee.com/notadd/neditor?donate=true) 以支持此项目的发展。
## 第一步:下载编辑器
**方式一:完整安装包 (推荐)**
* [Neditor.tar.xz](https://www.notadd.com/download/neditor/Neditor-next-master.tar.xz)
**方式二: npm安装**
`npm i @notadd/neditor -S`
**方式三:编译安装**
```shell
git clone https://github.com/notadd/neditor.git
npm install
npm run build
```
### 第二步:在浏览器打开 index.html ###
进入到目录 `dist` , 使用浏览器打开文件 `index.html`
如果看到了下面这样的编辑器,恭喜你,初次部署成功!
![部署成功](https://www.notadd.com/src/neditor-demo.webp)
## 相关版本
[Angular 版 Neditor](https://github.com/notadd/ngx-neditor)
[Vue 版 Neditor](https://github.com/caiya/vue-neditor-wrap) 【第三方维护】
## 技术支持
该项目基于 MIT 协议开源,任何组织/企业以及个人都可以免费使用(保留版权)。
如果您需要额外商业技术支持或者定制编辑器,请联系 QQ:1256985886
其他版本待添加
### 自定义的参数
编辑器有很多可自定义的参数项,在实例化的时候可以传入给编辑器:
```javascript
var ue = UE.getEditor('container', {
autoHeight: false
});
```
配置项也可以通过 `neditor.config.js` 文件修改,具体的配置方法请看 [前端配置项说明](http://fex.baidu.com/ueditor/#start-config1.4 前端配置项说明.md)、[后端配置项说明](http://fex.baidu.com/ueditor/#server-config)
### 编辑器图片、视频、涂鸦、附件上传service
编辑器上传逻辑单独在 `neditor.service.js` 文件配置,具体的配置方法见注释
### 设置和读取编辑器的内容
通 getContent 和 setContent 方法可以设置和读取编辑器的内容
```javascript
var ue = UE.getContent();
ue.ready(function(){
//设置编辑器的内容
ue.setContent('hello');
//获取html内容,返回: <p>hello</p>
var html = ue.getContent();
//获取纯文本内容,返回: hello
var txt = ue.getContentTxt();
});
```
Ueditor 的更多API请看[API 文档](http://ueditor.baidu.com/doc "ueditor API 文档")
## 下载地址
Neditor 码云: [http://gitee.com/notadd/neditor](http://gitee.com/notadd/neditor "Neditor github 地址")
Neditor github 地址:[http://github.com/notadd/neditor](http://github.com/notadd/neditor "Neditor github 地址")
## 相关链接
Ueditor 官网:[http://ueditor.baidu.com](http://ueditor.baidu.com "ueditor 官网")
Ueditor API 文档:[http://ueditor.baidu.com/doc](http://ueditor.baidu.com/doc "ueditor API 文档")
## 详细文档
Ueditor 文档:[http://fex.baidu.com/ueditor/](http://fex.baidu.com/ueditor/)
注: 对IE8以下版本不再承诺兼容
### 关于 HTTPS
使用了 [又拍云CDN](https://console.upyun.com/register/?invite=r17EYO3BW) 服务,支持跨域 和 https。
如果有需要,也可将下面域名改成自己的。
```
imgbaidu.b0.upaiyun.com
tingapi.b0.upaiyun.com
```
## 联系我们 ##
Neditor官方交流群:257753500
QQ 群: 321735506
[issue](http://github.com/notadd/neditor/issues)
## Todo
### 2.1
- [x] 将上传封装为 service ,支持非 GraphQL 接口。
- [x] 细节样式修改(美化)
### 2.2
- [ ] word 内图片自动上传
- [x] 粘贴图片转为本地图片(图片本地化)
### 2.3
- [ ] 上传文件/图片无需后端
### 3.0
- [ ] 使用 Typescript 重构
- [ ] 草稿箱功能与离线保存
- [ ] service worker 特性
- [ ] 实现 2.0 的大部分功能
## 其他项目:Notadd
https://github.com/notadd/notadd
## 感谢提供赞助:
<a href="https://www.ucloud.cn/site/active/gift.html?ytag=notadd"><img src="https://www.notadd.com/src/ucloud_logo.svg" width="150" /></a> &nbsp;
**UCloud 云服务器限时优惠 — Notadd 项目用户福利**
[【基础型】1核2G 1M带宽 50GB SSD数据盘 低至250元/年](https://www.ucloud.cn/site/active/gift.html?ytag=notadd )
[【标准型】2核4G 1M带宽 50GB SSD数据盘 低至550元/年](https://www.ucloud.cn/site/active/gift.html?ytag=notadd )

@ -0,0 +1,40 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<style type="text/css">
*{color: #838383;margin: 0;padding: 0}
html,body {font-size: 12px;overflow: hidden; }
.content{padding:15px 0 0 15px;}
input{width:210px;height:28px;line-height:28px;margin-left: 4px;border-radius: 5px;border: 1px solid #ccc;}
</style>
</head>
<body>
<div class="content">
<span><var id="lang_input_anchorName"></var></span><input id="anchorName" value="" />
</div>
<script type="text/javascript" src="../internal.js"></script>
<script type="text/javascript">
var anchorInput = $G('anchorName'),
node = editor.selection.getRange().getClosedNode();
if(node && node.tagName == 'IMG' && (node = node.getAttribute('anchorname'))){
anchorInput.value = node;
}
anchorInput.onkeydown = function(evt){
evt = evt || window.event;
if(evt.keyCode == 13){
editor.execCommand('anchor', anchorInput.value);
dialog.close();
domUtils.preventDefault(evt)
}
};
dialog.onok = function (){
editor.execCommand('anchor', anchorInput.value);
dialog.close();
};
$focus(anchorInput);
</script>
</body>
</html>

@ -0,0 +1,682 @@
@charset "utf-8";
/* dialog样式 */
.wrapper {
zoom: 1;
width: 630px;
*width: 626px;
height: 380px;
margin: 0 auto;
padding: 10px;
position: relative;
font-family: sans-serif;
}
/*tab样式框大小*/
.tabhead {
float:left;
}
.tabbody {
width: 100%;
height: 346px;
position: relative;
clear: both;
}
.tabbody .panel {
position: absolute;
width: 0;
height: 0;
background: #fff;
overflow: hidden;
display: none;
}
.tabbody .panel.focus {
width: 100%;
height: 346px;
display: block;
}
/* 上传附件 */
.tabbody #upload.panel {
width: 0;
height: 0;
overflow: hidden;
position: absolute !important;
clip: rect(1px, 1px, 1px, 1px);
background: #fff;
display: block;
}
.tabbody #upload.panel.focus {
width: 100%;
height: 346px;
display: block;
clip: auto;
}
#upload .queueList {
margin: 0;
width: 100%;
height: 100%;
position: absolute;
overflow: hidden;
}
#upload p {
margin: 0;
}
.element-invisible {
width: 0 !important;
height: 0 !important;
border: 0;
padding: 0;
margin: 0;
overflow: hidden;
position: absolute !important;
clip: rect(1px, 1px, 1px, 1px);
}
#upload .placeholder {
margin: 10px;
/*border: 2px dashed #e6e6e6;*/
height: 172px;
padding-top: 150px;
text-align: center;
/*background: url(./images/image.png) center 70px no-repeat;*/
background-color: #f3f3f3;
color: #cccccc;
font-size: 18px;
position: relative;
top:0;
*top: 10px;
}
#upload .placeholder .webuploader-pick {
font-size: 16px;
background: #f3f3f3;
border-radius: 3px;
line-height: 44px;
padding: 0 30px;
color: #646464;
display: inline-block;
margin: 0 auto 20px auto;
cursor: pointer;
/* box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); */
border: 1px solid #ccc;
}
#upload .placeholder .webuploader-pick-hover {
border: 1px solid #00a2d4;
color: #00a2d4;
}
#filePickerContainer {
text-align: center;
}
#upload .placeholder .flashTip {
color: #666666;
font-size: 12px;
position: absolute;
width: 100%;
text-align: center;
bottom: 20px;
}
#upload .placeholder .flashTip a {
color: #0785d1;
text-decoration: none;
}
#upload .placeholder .flashTip a:hover {
text-decoration: underline;
}
#upload .placeholder.webuploader-dnd-over {
border-color: #999999;
}
#upload .filelist {
list-style: none;
margin: 0;
padding: 0;
overflow-x: hidden;
overflow-y: auto;
position: relative;
height: 300px;
}
#upload .filelist:after {
content: '';
display: block;
width: 0;
height: 0;
overflow: hidden;
clear: both;
}
#upload .filelist li {
width: 113px;
height: 113px;
background: url(./images/bg.png);
text-align: center;
margin: 9px 0 0 9px;
*margin: 6px 0 0 6px;
position: relative;
display: block;
float: left;
overflow: hidden;
font-size: 12px;
}
#upload .filelist li p.log {
position: relative;
top: -45px;
}
#upload .filelist li p.title {
position: absolute;
top: 0;
left: 0;
width: 100%;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
top: 5px;
text-indent: 5px;
text-align: left;
}
#upload .filelist li p.progress {
position: absolute;
width: 100%;
bottom: 0;
left: 0;
height: 8px;
overflow: hidden;
z-index: 50;
margin: 0;
border-radius: 0;
background: none;
-webkit-box-shadow: 0 0 0;
}
#upload .filelist li p.progress span {
display: none;
overflow: hidden;
width: 0;
height: 100%;
background: #1483d8 url(./images/progress.png) repeat-x;
-webit-transition: width 200ms linear;
-moz-transition: width 200ms linear;
-o-transition: width 200ms linear;
-ms-transition: width 200ms linear;
transition: width 200ms linear;
-webkit-animation: progressmove 2s linear infinite;
-moz-animation: progressmove 2s linear infinite;
-o-animation: progressmove 2s linear infinite;
-ms-animation: progressmove 2s linear infinite;
animation: progressmove 2s linear infinite;
-webkit-transform: translateZ(0);
}
@-webkit-keyframes progressmove {
0% {
background-position: 0 0;
}
100% {
background-position: 17px 0;
}
}
@-moz-keyframes progressmove {
0% {
background-position: 0 0;
}
100% {
background-position: 17px 0;
}
}
@keyframes progressmove {
0% {
background-position: 0 0;
}
100% {
background-position: 17px 0;
}
}
#upload .filelist li p.imgWrap {
position: relative;
z-index: 2;
line-height: 113px;
vertical-align: middle;
overflow: hidden;
width: 113px;
height: 113px;
-webkit-transform-origin: 50% 50%;
-moz-transform-origin: 50% 50%;
-o-transform-origin: 50% 50%;
-ms-transform-origin: 50% 50%;
transform-origin: 50% 50%;
-webit-transition: 200ms ease-out;
-moz-transition: 200ms ease-out;
-o-transition: 200ms ease-out;
-ms-transition: 200ms ease-out;
transition: 200ms ease-out;
}
#upload .filelist li p.imgWrap.notimage {
margin-top: 0;
width: 111px;
height: 111px;
border: 1px #eeeeee solid;
}
#upload .filelist li p.imgWrap.notimage i.file-preview {
margin-top: 15px;
}
#upload .filelist li img {
width: 100%;
}
#upload .filelist li p.error {
background: #f43838;
color: #fff;
position: absolute;
bottom: 0;
left: 0;
height: 28px;
line-height: 28px;
width: 100%;
z-index: 100;
display:none;
}
#upload .filelist li .success {
display: block;
position: absolute;
left: 0;
bottom: 0;
height: 40px;
width: 100%;
z-index: 200;
background: url(./images/success.png) no-repeat right bottom;
background-image: url(./images/success.gif) \9;
}
#upload .filelist li.filePickerBlock {
width: 113px;
height: 113px;
background: url(../fonts/images/addfile.svg) no-repeat center;
border: 1px solid #eeeeee;
border-radius: 0;
}
#upload .filelist li.filePickerBlock div.webuploader-pick {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
opacity: 0;
background: none;
font-size: 0;
}
#upload .filelist div.file-panel {
position: absolute;
height: 0;
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#80000000', endColorstr='#80000000') \0;
background: rgba(0, 0, 0, 0.5);
width: 100%;
top: 0;
left: 0;
overflow: hidden;
z-index: 300;
}
#upload .filelist div.file-panel span {
width: 24px;
height: 24px;
display: inline;
float: right;
text-indent: -9999px;
overflow: hidden;
background: url(./images/icons.png) no-repeat;
background: url(./images/icons.gif) no-repeat \9;
margin: 5px 1px 1px;
cursor: pointer;
-webkit-tap-highlight-color: rgba(0,0,0,0);
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
#upload .filelist div.file-panel span.rotateLeft {
display:none;
background-position: 0 -24px;
}
#upload .filelist div.file-panel span.rotateLeft:hover {
background-position: 0 0;
}
#upload .filelist div.file-panel span.rotateRight {
display:none;
background-position: -24px -24px;
}
#upload .filelist div.file-panel span.rotateRight:hover {
background-position: -24px 0;
}
#upload .filelist div.file-panel span.cancel {
background-position: -48px -24px;
}
#upload .filelist div.file-panel span.cancel:hover {
background-position: -48px 0;
}
#upload .statusBar {
height: 45px;
border-bottom: 1px solid #dadada;
margin: 0 10px;
padding: 0;
line-height: 45px;
vertical-align: middle;
position: relative;
}
#upload .statusBar .progress {
border: 1px solid #1483d8;
width: 198px;
background: #fff;
height: 18px;
position: absolute;
top: 12px;
display: none;
text-align: center;
line-height: 18px;
color: #6dbfff;
margin: 0 10px 0 0;
}
#upload .statusBar .progress span.percentage {
width: 0;
height: 100%;
left: 0;
top: 0;
background: #1483d8;
position: absolute;
}
#upload .statusBar .progress span.text {
position: relative;
z-index: 10;
}
#upload .statusBar .info {
display: inline-block;
font-size: 14px;
color: #666666;
}
#upload .statusBar .btns {
position: absolute;
top: 7px;
right: 0;
line-height: 30px;
}
#filePickerBtn {
display: inline-block;
float: left;
}
#upload .statusBar .btns .webuploader-pick,
#upload .statusBar .btns .uploadBtn,
#upload .statusBar .btns .uploadBtn.state-uploading,
#upload .statusBar .btns .uploadBtn.state-paused {
background: #ffffff;
border: 1px solid #cfcfcf;
color: #565656;
padding: 0 18px;
display: inline-block;
border-radius: 3px;
margin-left: 10px;
cursor: pointer;
font-size: 14px;
float: left;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
#upload .statusBar .btns .webuploader-pick-hover,
#upload .statusBar .btns .uploadBtn:hover,
#upload .statusBar .btns .uploadBtn.state-uploading:hover,
#upload .statusBar .btns .uploadBtn.state-paused:hover {
background: #f0f0f0;
}
#upload .statusBar .btns .uploadBtn,
#upload .statusBar .btns .uploadBtn.state-paused{
background: #00b7ee;
color: #fff;
border-color: transparent;
}
#upload .statusBar .btns .uploadBtn:hover,
#upload .statusBar .btns .uploadBtn.state-paused:hover{
background: #00a2d4;
}
#upload .statusBar .btns .uploadBtn.disabled {
pointer-events: none;
filter:alpha(opacity=60);
-moz-opacity:0.6;
-khtml-opacity: 0.6;
opacity: 0.6;
}
/* 图片管理样式 */
#online {
width: 100%;
height: 336px;
padding: 10px 0 0 0;
}
#online #fileList{
width: 100%;
height: 100%;
overflow-x: hidden;
overflow-y: auto;
position: relative;
}
#online ul {
display: block;
list-style: none;
margin: 0;
padding: 0;
}
#online li {
float: left;
display: block;
list-style: none;
padding: 0;
width: 113px;
height: 113px;
margin: 0 0 9px 9px;
*margin: 0 0 6px 6px;
background-color: #eee;
overflow: hidden;
cursor: pointer;
position: relative;
}
#online li.clearFloat {
float: none;
clear: both;
display: block;
width:0;
height:0;
margin: 0;
padding: 0;
}
#online li img {
cursor: pointer;
}
#online li div.file-wrapper {
cursor: pointer;
position: absolute;
display: block;
width: 111px;
height: 111px;
border: 1px solid #eee;
background: url("./images/bg.png") repeat;
}
#online li div span.file-title{
display: block;
padding: 0 3px;
margin: 3px 0 0 0;
font-size: 12px;
height: 15px;
color: #555555;
text-align: center;
width: 107px;
white-space: nowrap;
word-break: break-all;
overflow: hidden;
text-overflow: ellipsis;
}
#online li .icon {
cursor: pointer;
width: 113px;
height: 113px;
position: absolute;
top: 0;
left: 0;
z-index: 2;
border: 0;
background-repeat: no-repeat;
}
#online li .icon:hover {
width: 107px;
height: 107px;
border: 3px solid #1094fa;
}
#online li.selected .icon {
background-image: url(images/success.png);
background-image: url(images/success.gif) \9;
background-position: 75px 75px;
}
#online li.selected .icon:hover {
width: 107px;
height: 107px;
border: 3px solid #1094fa;
background-position: 72px 72px;
}
/* 在线文件的文件预览图标 */
i.file-preview {
display: block;
margin: 10px auto;
width: 70px;
height: 70px;
background-image: url("./images/file-icons.png");
background-image: url("./images/file-icons.gif") \9;
background-position: -140px center;
background-repeat: no-repeat;
}
i.file-preview.file-type-dir{
background-position: 0 center;
}
i.file-preview.file-type-file{
background-position: -140px center;
}
i.file-preview.file-type-filelist{
background-position: -210px center;
}
i.file-preview.file-type-zip,
i.file-preview.file-type-rar,
i.file-preview.file-type-7z,
i.file-preview.file-type-tar,
i.file-preview.file-type-gz,
i.file-preview.file-type-bz2{
background-position: -280px center;
}
i.file-preview.file-type-xls,
i.file-preview.file-type-xlsx{
background-position: -350px center;
}
i.file-preview.file-type-doc,
i.file-preview.file-type-docx{
background-position: -420px center;
}
i.file-preview.file-type-ppt,
i.file-preview.file-type-pptx{
background-position: -490px center;
}
i.file-preview.file-type-vsd{
background-position: -560px center;
}
i.file-preview.file-type-pdf{
background-position: -630px center;
}
i.file-preview.file-type-txt,
i.file-preview.file-type-md,
i.file-preview.file-type-json,
i.file-preview.file-type-htm,
i.file-preview.file-type-xml,
i.file-preview.file-type-html,
i.file-preview.file-type-js,
i.file-preview.file-type-css,
i.file-preview.file-type-php,
i.file-preview.file-type-jsp,
i.file-preview.file-type-asp{
background-position: -700px center;
}
i.file-preview.file-type-apk{
background-position: -770px center;
}
i.file-preview.file-type-exe{
background-position: -840px center;
}
i.file-preview.file-type-ipa{
background-position: -910px center;
}
i.file-preview.file-type-mp4,
i.file-preview.file-type-swf,
i.file-preview.file-type-mkv,
i.file-preview.file-type-avi,
i.file-preview.file-type-flv,
i.file-preview.file-type-mov,
i.file-preview.file-type-mpg,
i.file-preview.file-type-mpeg,
i.file-preview.file-type-ogv,
i.file-preview.file-type-webm,
i.file-preview.file-type-rm,
i.file-preview.file-type-rmvb{
background-position: -980px center;
}
i.file-preview.file-type-ogg,
i.file-preview.file-type-wav,
i.file-preview.file-type-wmv,
i.file-preview.file-type-mid,
i.file-preview.file-type-mp3{
background-position: -1050px center;
}
i.file-preview.file-type-jpg,
i.file-preview.file-type-jpeg,
i.file-preview.file-type-gif,
i.file-preview.file-type-bmp,
i.file-preview.file-type-png,
i.file-preview.file-type-psd{
background-position: -140px center;
}

@ -0,0 +1,60 @@
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>neditor图片对话框</title>
<script type="text/javascript" src="../internal.js"></script>
<!-- jquery -->
<script type="text/javascript" src="../../third-party/jquery-1.10.2.min.js"></script>
<!-- webuploader -->
<script src="../../third-party/webuploader/webuploader.js"></script>
<link rel="stylesheet" type="text/css" href="../../third-party/webuploader/webuploader.css">
<!-- attachment dialog -->
<link rel="stylesheet" href="attachment.css" type="text/css" />
</head>
<body>
<div class="wrapper">
<div id="tabhead" class="tabhead">
<span class="tab focus" data-content-id="upload"><var id="lang_tab_upload"></var></span>
<!-- <span class="tab" data-content-id="online"><var id="lang_tab_online"></var></span> -->
</div>
<div id="tabbody" class="tabbody">
<!-- 上传图片 -->
<div id="upload" class="panel focus">
<div id="queueList" class="queueList">
<div class="statusBar element-invisible">
<div class="progress">
<span class="text">0%</span>
<span class="percentage"></span>
</div><div class="info"></div>
<div class="btns">
<div id="filePickerBtn"></div>
<div class="uploadBtn"><var id="lang_start_upload"></var></div>
</div>
</div>
<div id="dndArea" class="placeholder">
<div class="filePickerContainer">
<div id="filePickerReady"></div>
</div>
</div>
<ul class="filelist element-invisible">
<li id="filePickerBlock" class="filePickerBlock"></li>
</ul>
</div>
</div>
<!-- 在线图片 -->
<div id="online" class="panel">
<div id="fileList"><var id="lang_imgLoading"></var></div>
</div>
</div>
</div>
<script type="text/javascript" src="attachment.js"></script>
</body>
</html>

@ -0,0 +1,777 @@
/**
* User: Jinqn
* Date: 14-04-08
* Time: 下午16:34
* 上传图片对话框逻辑代码,包括tab: 远程图片/上传图片/在线图片/搜索图片
*/
(function () {
var uploadFile,
onlineFile;
window.onload = function () {
initTabs();
initButtons();
};
/* 初始化tab标签 */
function initTabs() {
var tabs = $G('tabhead').children;
for (var i = 0; i < tabs.length; i++) {
domUtils.on(tabs[i], "click", function (e) {
var target = e.target || e.srcElement;
setTabFocus(target.getAttribute('data-content-id'));
});
}
setTabFocus('upload');
}
/* 初始化tabbody */
function setTabFocus(id) {
if(!id) return;
var i, bodyId, tabs = $G('tabhead').children;
for (i = 0; i < tabs.length; i++) {
bodyId = tabs[i].getAttribute('data-content-id')
if (bodyId == id) {
domUtils.addClass(tabs[i], 'focus');
domUtils.addClass($G(bodyId), 'focus');
} else {
domUtils.removeClasses(tabs[i], 'focus');
domUtils.removeClasses($G(bodyId), 'focus');
}
}
switch (id) {
case 'upload':
uploadFile = uploadFile || new UploadFile('queueList');
break;
case 'online':
onlineFile = onlineFile || new OnlineFile('fileList');
break;
}
}
/* 初始化onok事件 */
function initButtons() {
dialog.onok = function () {
var list = [], id, tabs = $G('tabhead').children;
for (var i = 0; i < tabs.length; i++) {
if (domUtils.hasClass(tabs[i], 'focus')) {
id = tabs[i].getAttribute('data-content-id');
break;
}
}
switch (id) {
case 'upload':
list = uploadFile.getInsertList();
var count = uploadFile.getQueueCount();
if (count) {
$('.info', '#queueList').html('<span style="color:red;">' + '还有2个未上传文件'.replace(/[\d]/, count) + '</span>');
return false;
}
break;
case 'online':
list = onlineFile.getInsertList();
break;
}
editor.execCommand('insertfile', list);
};
}
/* 上传附件 */
function UploadFile(target) {
this.$wrap = target.constructor == String ? $('#' + target) : $(target);
this.init();
}
UploadFile.prototype = {
init: function () {
this.fileList = [];
this.initContainer();
this.initUploader();
},
initContainer: function () {
this.$queue = this.$wrap.find('.filelist');
},
/* 初始化容器 */
initUploader: function () {
var _this = this,
$ = jQuery, // just in case. Make sure it's not an other libaray.
$wrap = _this.$wrap,
// 图片容器
$queue = $wrap.find('.filelist'),
// 状态栏,包括进度和控制按钮
$statusBar = $wrap.find('.statusBar'),
// 文件总体选择信息。
$info = $statusBar.find('.info'),
// 上传按钮
$upload = $wrap.find('.uploadBtn'),
// 上传按钮
$filePickerBtn = $wrap.find('.filePickerBtn'),
// 上传按钮
$filePickerBlock = $wrap.find('.filePickerBlock'),
// 没选择文件之前的内容。
$placeHolder = $wrap.find('.placeholder'),
// 总体进度条
$progress = $statusBar.find('.progress').hide(),
// 添加的文件数量
fileCount = 0,
// 添加的文件总大小
fileSize = 0,
// 优化retina, 在retina下这个值是2
ratio = window.devicePixelRatio || 1,
// 缩略图大小
thumbnailWidth = 113 * ratio,
thumbnailHeight = 113 * ratio,
// 可能有pedding, ready, uploading, confirm, done.
state = '',
// 所有文件的进度信息,key为file id
percentages = {},
supportTransition = (function () {
var s = document.createElement('p').style,
r = 'transition' in s ||
'WebkitTransition' in s ||
'MozTransition' in s ||
'msTransition' in s ||
'OTransition' in s;
s = null;
return r;
})(),
// WebUploader实例
uploader,
actionUrl = editor.getActionUrl(editor.getOpt('fileActionName')),
fileMaxSize = editor.getOpt('fileMaxSize'),
acceptExtensions = (editor.getOpt('fileAllowFiles') ||
[".accdb",".pub","psd",".exe",".webm",".flv",".rmvb",".mp4",".mvb",".tiff",".swf",".jpg",".jpeg",".gif",".png",".txt",".doc",".docs",".xls",
".xlsx",".ppt",".pdf",".odt",".ott",".fodt",".uot",".xml",".dot",".htm",".html",".rtf",".docm",
".zip",".rar",".tar",".7z",".tar.gz",".tar.bz",".tar.xz"]).join('').replace(/\./g, ',').replace(/^[,]/, '');;
if (!WebUploader.Uploader.support()) {
$('#filePickerReady').after($('<div>').html(lang.errorNotSupport)).hide();
return;
} else if (!editor.getOpt('fileActionName')) {
$('#filePickerReady').after($('<div>').html(lang.errorLoadConfig)).hide();
return;
}
uploader = _this.uploader = WebUploader.create({
pick: {
id: '#filePickerReady',
label: lang.uploadSelectFile
},
swf: '../../third-party/webuploader/Uploader.swf',
server: actionUrl,
fileVal: editor.getOpt('fileFieldName'),
duplicate: true,
fileSingleSizeLimit: fileMaxSize,
compress: false
});
uploader.addButton({
id: '#filePickerBlock'
});
uploader.addButton({
id: '#filePickerBtn',
label: lang.uploadAddFile
});
setState('pedding');
// 当有文件添加进来时执行,负责view的创建
function addFile(file) {
var $li = $('<li id="' + file.id + '">' +
'<p class="title">' + file.name + '</p>' +
'<p class="imgWrap"></p>' +
'<p class="progress"><span></span></p>' +
'</li>'),
$btns = $('<div class="file-panel">' +
'<span class="cancel">' + lang.uploadDelete + '</span>' +
'<span class="rotateRight">' + lang.uploadTurnRight + '</span>' +
'<span class="rotateLeft">' + lang.uploadTurnLeft + '</span></div>').appendTo($li),
$prgress = $li.find('p.progress span'),
$wrap = $li.find('p.imgWrap'),
$info = $('<p class="error"></p>').hide().appendTo($li),
showError = function (code) {
switch (code) {
case 'exceed_size':
text = lang.errorExceedSize;
break;
case 'interrupt':
text = lang.errorInterrupt;
break;
case 'http':
text = lang.errorHttp;
break;
case 'not_allow_type':
text = lang.errorFileType;
break;
default:
text = lang.errorUploadRetry;
break;
}
$info.text(text).show();
};
if (file.getStatus() === 'invalid') {
showError(file.statusText);
} else {
$wrap.text(lang.uploadPreview);
if ('|png|jpg|jpeg|bmp|gif|'.indexOf('|'+file.ext.toLowerCase()+'|') == -1) {
$wrap.empty().addClass('notimage').append('<i class="file-preview file-type-' + file.ext.toLowerCase() + '"></i>' +
'<span class="file-title" title="' + file.name + '">' + file.name + '</span>');
} else {
if (browser.ie && browser.version <= 7) {
$wrap.text(lang.uploadNoPreview);
} else {
uploader.makeThumb(file, function (error, src) {
if (error || !src) {
$wrap.text(lang.uploadNoPreview);
} else {
var $img = $('<img src="' + src + '">');
$wrap.empty().append($img);
$img.on('error', function () {
$wrap.text(lang.uploadNoPreview);
});
}
}, thumbnailWidth, thumbnailHeight);
}
}
percentages[ file.id ] = [ file.size, 0 ];
file.rotation = 0;
/* 检查文件格式 */
if (!file.ext || acceptExtensions.indexOf(file.ext.toLowerCase()) == -1) {
showError('not_allow_type');
uploader.removeFile(file);
}
}
file.on('statuschange', function (cur, prev) {
if (prev === 'progress') {
$prgress.hide().width(0);
} else if (prev === 'queued') {
$li.off('mouseenter mouseleave');
$btns.remove();
}
// 成功
if (cur === 'error' || cur === 'invalid') {
showError(file.statusText);
percentages[ file.id ][ 1 ] = 1;
} else if (cur === 'interrupt') {
showError('interrupt');
} else if (cur === 'queued') {
percentages[ file.id ][ 1 ] = 0;
} else if (cur === 'progress') {
$info.hide();
$prgress.css('display', 'block');
} else if (cur === 'complete') {
}
$li.removeClass('state-' + prev).addClass('state-' + cur);
});
$li.on('mouseenter', function () {
$btns.stop().animate({height: 30});
});
$li.on('mouseleave', function () {
$btns.stop().animate({height: 0});
});
$btns.on('click', 'span', function () {
var index = $(this).index(),
deg;
switch (index) {
case 0:
uploader.removeFile(file);
return;
case 1:
file.rotation += 90;
break;
case 2:
file.rotation -= 90;
break;
}
if (supportTransition) {
deg = 'rotate(' + file.rotation + 'deg)';
$wrap.css({
'-webkit-transform': deg,
'-mos-transform': deg,
'-o-transform': deg,
'transform': deg
});
} else {
$wrap.css('filter', 'progid:DXImageTransform.Microsoft.BasicImage(rotation=' + (~~((file.rotation / 90) % 4 + 4) % 4) + ')');
}
});
$li.insertBefore($filePickerBlock);
}
// 负责view的销毁
function removeFile(file) {
var $li = $('#' + file.id);
delete percentages[ file.id ];
updateTotalProgress();
$li.off().find('.file-panel').off().end().remove();
}
function updateTotalProgress() {
var loaded = 0,
total = 0,
spans = $progress.children(),
percent;
$.each(percentages, function (k, v) {
total += v[ 0 ];
loaded += v[ 0 ] * v[ 1 ];
});
percent = total ? loaded / total : 0;
spans.eq(0).text(Math.round(percent * 100) + '%');
spans.eq(1).css('width', Math.round(percent * 100) + '%');
updateStatus();
}
function setState(val, files) {
if (val != state) {
var stats = uploader.getStats();
$upload.removeClass('state-' + state);
$upload.addClass('state-' + val);
switch (val) {
/* 未选择文件 */
case 'pedding':
$queue.addClass('element-invisible');
$statusBar.addClass('element-invisible');
$placeHolder.removeClass('element-invisible');
$progress.hide(); $info.hide();
uploader.refresh();
break;
/* 可以开始上传 */
case 'ready':
$placeHolder.addClass('element-invisible');
$queue.removeClass('element-invisible');
$statusBar.removeClass('element-invisible');
$progress.hide(); $info.show();
$upload.text(lang.uploadStart);
uploader.refresh();
break;
/* 上传中 */
case 'uploading':
$progress.show(); $info.hide();
$upload.text(lang.uploadPause);
break;
/* 暂停上传 */
case 'paused':
$progress.show(); $info.hide();
$upload.text(lang.uploadContinue);
break;
case 'confirm':
$progress.show(); $info.hide();
$upload.text(lang.uploadStart);
stats = uploader.getStats();
if (stats.successNum && !stats.uploadFailNum) {
setState('finish');
return;
}
break;
case 'finish':
$progress.hide(); $info.show();
if (stats.uploadFailNum) {
$upload.text(lang.uploadRetry);
} else {
$upload.text(lang.uploadStart);
}
break;
}
state = val;
updateStatus();
}
if (!_this.getQueueCount()) {
$upload.addClass('disabled')
} else {
$upload.removeClass('disabled')
}
}
function updateStatus() {
var text = '', stats;
if (state === 'ready') {
text = lang.updateStatusReady.replace('_', fileCount).replace('_KB', WebUploader.formatSize(fileSize));
} else if (state === 'confirm') {
stats = uploader.getStats();
if (stats.uploadFailNum) {
text = lang.updateStatusConfirm.replace('_', stats.successNum).replace('_', stats.successNum);
}
} else {
stats = uploader.getStats();
text = lang.updateStatusFinish.replace('_', fileCount).
replace('_KB', WebUploader.formatSize(fileSize)).
replace('_', stats.successNum);
if (stats.uploadFailNum) {
text += lang.updateStatusError.replace('_', stats.uploadFailNum);
}
}
$info.html(text);
}
uploader.on('fileQueued', function (file) {
/* 选择文件后设置上传相关的url和自定义参数 */
editor.getOpt("fileUploadService")(_this, editor).setUploadData(file);
if (file.ext && acceptExtensions.indexOf(file.ext.toLowerCase()) != -1 && file.size <= fileMaxSize) {
fileCount++;
fileSize += file.size;
}
if (fileCount === 1) {
$placeHolder.addClass('element-invisible');
$statusBar.show();
}
addFile(file);
});
uploader.on('fileDequeued', function (file) {
if (file.ext && acceptExtensions.indexOf(file.ext.toLowerCase()) != -1 && file.size <= fileMaxSize) {
fileCount--;
fileSize -= file.size;
}
removeFile(file);
updateTotalProgress();
});
uploader.on('filesQueued', function (file) {
if (!uploader.isInProgress() && (state == 'pedding' || state == 'finish' || state == 'confirm' || state == 'ready')) {
setState('ready');
}
updateTotalProgress();
});
uploader.on('all', function (type, files) {
switch (type) {
case 'uploadFinished':
setState('confirm', files);
break;
case 'startUpload':
/* 设置Uploader配置项 */
editor.getOpt("fileUploadService")(_this, editor).setUploaderOptions(uploader);
setState('uploading', files);
break;
case 'stopUpload':
setState('paused', files);
break;
}
});
uploader.on('uploadBeforeSend', function (object, data, headers) {
//这里可以通过data对象添加POST参数
editor.getOpt("fileUploadService")(_this, editor).setFormData(object, data, headers);
});
uploader.on('uploadProgress', function (file, percentage) {
var $li = $('#' + file.id),
$percent = $li.find('.progress span');
$percent.css('width', percentage * 100 + '%');
percentages[ file.id ][ 1 ] = percentage;
updateTotalProgress();
});
uploader.on('uploadSuccess', function (file, res) {
var $file = $('#' + file.id);
try {
if (editor.getOpt("fileUploadService")(_this, editor).getResponseSuccess(res)) {
_this.fileList.push(res);
$file.append('<span class="success"></span>');
} else {
$file.find('.error').text(res.message).show();
}
} catch (e) {
$file.find('.error').text(lang.errorServerUpload).show();
}
});
uploader.on('uploadError', function (file, code) {
});
uploader.on('error', function (code, file) {
if (code == 'Q_TYPE_DENIED' || code == 'F_EXCEED_SIZE') {
addFile(file);
}
});
uploader.on('uploadComplete', function (file, ret) {
});
$upload.on('click', function () {
if ($(this).hasClass('disabled')) {
return false;
}
if (state === 'ready') {
uploader.upload();
} else if (state === 'paused') {
uploader.upload();
} else if (state === 'uploading') {
uploader.stop();
}
});
$upload.addClass('state-' + state);
updateTotalProgress();
},
getQueueCount: function () {
var file, i, status, readyFile = 0, files = this.uploader.getFiles();
for (i = 0; file = files[i++]; ) {
status = file.getStatus();
if (status == 'queued' || status == 'uploading' || status == 'progress') readyFile++;
}
return readyFile;
},
getInsertList: function () {
var i, link, data, list = [],
prefix = editor.getOpt('fileUrlPrefix'),
fileSrcField = editor.getOpt("fileUploadService")(this, editor).fileSrcField || 'url',
fileSrc = '',
fileSrcFieldKeys = fileSrcField.split('.');
for (i = 0; i < this.fileList.length; i++) {
data = this.fileList[i];
if(fileSrcFieldKeys.length > 1) {
function setFileSrc(obj, keys, index) {
obj = obj[keys[index]];
if (index < keys.length - 1) {
setFileSrc(obj, keys, index += 1)
} else {
fileSrc = obj;
}
}
setFileSrc(data, fileSrcFieldKeys, 0);
} else {
fileSrc = data[fileSrcField];
}
link = fileSrc;
list.push({
title: data.original || link.substr(link.lastIndexOf('/') + 1),
url: prefix + link
});
}
return list;
}
};
/* 在线附件 */
function OnlineFile(target) {
this.container = utils.isString(target) ? document.getElementById(target) : target;
this.init();
}
OnlineFile.prototype = {
init: function () {
this.initContainer();
this.initEvents();
this.initData();
},
/* 初始化容器 */
initContainer: function () {
this.container.innerHTML = '';
this.list = document.createElement('ul');
this.clearFloat = document.createElement('li');
domUtils.addClass(this.list, 'list');
domUtils.addClass(this.clearFloat, 'clearFloat');
this.list.appendChild(this.clearFloat);
this.container.appendChild(this.list);
},
/* 初始化滚动事件,滚动到地步自动拉取数据 */
initEvents: function () {
var _this = this;
/* 滚动拉取图片 */
domUtils.on($G('fileList'), 'scroll', function(e){
var panel = this;
if (panel.scrollHeight - (panel.offsetHeight + panel.scrollTop) < 10) {
_this.getFileData();
}
});
/* 选中图片 */
domUtils.on(this.list, 'click', function (e) {
var target = e.target || e.srcElement,
li = target.parentNode;
if (li.tagName.toLowerCase() == 'li') {
if (domUtils.hasClass(li, 'selected')) {
domUtils.removeClasses(li, 'selected');
} else {
domUtils.addClass(li, 'selected');
}
}
});
},
/* 初始化第一次的数据 */
initData: function () {
/* 拉取数据需要使用的值 */
this.state = 0;
this.listSize = editor.getOpt('fileManagerListSize');
this.listIndex = 0;
this.listEnd = false;
/* 第一次拉取数据 */
this.getFileData();
},
/* 向后台拉取图片列表数据 */
getFileData: function () {
var _this = this;
if(!_this.listEnd && !this.isLoadingData) {
this.isLoadingData = true;
ajax.request(editor.getActionUrl(editor.getOpt('fileManagerActionName')), {
timeout: 100000,
data: utils.extend({
start: this.listIndex,
size: this.listSize
}, editor.queryCommandValue('serverparam')),
method: 'get',
onsuccess: function (r) {
try {
var json = eval('(' + r.responseText + ')');
if (json.state == 'SUCCESS') {
_this.pushData(json.list);
_this.listIndex = parseInt(json.start) + parseInt(json.list.length);
if(_this.listIndex >= json.total) {
_this.listEnd = true;
}
_this.isLoadingData = false;
}
} catch (e) {
if(r.responseText.indexOf('ue_separate_ue') != -1) {
var list = r.responseText.split(r.responseText);
_this.pushData(list);
_this.listIndex = parseInt(list.length);
_this.listEnd = true;
_this.isLoadingData = false;
}
}
},
onerror: function () {
_this.isLoadingData = false;
}
});
}
},
/* 添加图片到列表界面上 */
pushData: function (list) {
var i, item, img, filetype, preview, icon, _this = this,
urlPrefix = editor.getOpt('fileManagerUrlPrefix');
for (i = 0; i < list.length; i++) {
if(list[i] && list[i].url) {
item = document.createElement('li');
icon = document.createElement('span');
filetype = list[i].url.substr(list[i].url.lastIndexOf('.') + 1);
if ( "png|jpg|jpeg|gif|bmp".indexOf(filetype) != -1 ) {
preview = document.createElement('img');
domUtils.on(preview, 'load', (function(image){
return function(){
_this.scale(image, image.parentNode.offsetWidth, image.parentNode.offsetHeight);
};
})(preview));
preview.width = 113;
preview.setAttribute('src', urlPrefix + list[i].url + (list[i].url.indexOf('?') == -1 ? '?noCache=':'&noCache=') + (+new Date()).toString(36) );
} else {
var ic = document.createElement('i'),
textSpan = document.createElement('span');
textSpan.innerHTML = list[i].url.substr(list[i].url.lastIndexOf('/') + 1);
preview = document.createElement('div');
preview.appendChild(ic);
preview.appendChild(textSpan);
domUtils.addClass(preview, 'file-wrapper');
domUtils.addClass(textSpan, 'file-title');
domUtils.addClass(ic, 'file-type-' + filetype);
domUtils.addClass(ic, 'file-preview');
}
domUtils.addClass(icon, 'icon');
item.setAttribute('data-url', urlPrefix + list[i].url);
if (list[i].original) {
item.setAttribute('data-title', list[i].original);
}
item.appendChild(preview);
item.appendChild(icon);
this.list.insertBefore(item, this.clearFloat);
}
}
},
/* 改变图片大小 */
scale: function (img, w, h, type) {
var ow = img.width,
oh = img.height;
if (type == 'justify') {
if (ow >= oh) {
img.width = w;
img.height = h * oh / ow;
img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px';
} else {
img.width = w * ow / oh;
img.height = h;
img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px';
}
} else {
if (ow >= oh) {
img.width = w * ow / oh;
img.height = h;
img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px';
} else {
img.width = w;
img.height = h * oh / ow;
img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px';
}
}
},
getInsertList: function () {
var i, lis = this.list.children, list = [];
for (i = 0; i < lis.length; i++) {
if (domUtils.hasClass(lis[i], 'selected')) {
var url = lis[i].getAttribute('data-url');
var title = lis[i].getAttribute('data-title') || url.substr(url.lastIndexOf('/') + 1);
list.push({
title: title,
url: url
});
}
}
return list;
}
};
})();

Binary file not shown.

After

Width:  |  Height:  |  Size: 923 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 841 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1012 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 949 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 950 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 986 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1001 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 996 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1001 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1009 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1007 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 970 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1005 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 453 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 445 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

@ -0,0 +1,97 @@
.wrapper{ width: 424px;margin: 20px; zoom:1;position: relative}
.tabbody{height:225px;}
.tabbody .panel { position: absolute;width:100%; height:100%;background: #fff; display: none;}
.tabbody .focus { display: block;}
body{font-size: 12px;color: #888;overflow: hidden;}
input,label{vertical-align:middle}
.clear{clear: both;}
.pl{padding-left: 18px;padding-left: 23px\9;}
#imageList {width: 420px;height: 215px;margin-top: 10px;overflow: hidden;overflow-y: auto;}
#imageList div {float: left;width: 100px;height: 95px;margin: 5px 10px;}
#imageList img {cursor: pointer;border: 2px solid white;}
.bgarea{margin: 10px;padding: 5px;height: 84%;border: 1px solid #A8A297;border-radius: 4px;}
.content div{margin: 10px 0 10px 5px;}
.content .iptradio{margin: 0px 5px 5px 0px;}
.txt{width:280px; margin-left: 10px;height: 26px;line-height: 26px; border-radius: 5px;border: 1px solid #ccc;}
.wrapcolor{height: 19px;}
div.color{float: left;margin: 0;}
#colorPicker{width: 17px;height: 17px;border: 1px solid #CCC;display: inline-block;border-radius: 3px;box-shadow: 2px 2px 5px #D3D6DA;margin: 0 0 0 10px;float: left;}
div.alignment,#custom{margin-left: 23px;margin-left: 28px\9;}
#custom input{height: 15px;min-height: 15px;width:20px;}
#repeatType{width:100px;
margin-left: 10px;
border-radius: 4px;
height: 23px;}
/* 图片管理样式 */
#imgManager {
width: 100%;
height: 225px;
}
#imgManager #imageList{
width: 100%;
overflow-x: hidden;
overflow-y: auto;
}
#imgManager ul {
display: block;
list-style: none;
margin: 0;
padding: 0;
}
#imgManager li {
float: left;
display: block;
list-style: none;
padding: 0;
width: 113px;
height: 113px;
margin: 9px 0 0 19px;
background-color: #eee;
overflow: hidden;
cursor: pointer;
position: relative;
}
#imgManager li.clearFloat {
float: none;
clear: both;
display: block;
width:0;
height:0;
margin: 0;
padding: 0;
}
#imgManager li img {
cursor: pointer;
}
#imgManager li .icon {
cursor: pointer;
width: 113px;
height: 113px;
position: absolute;
top: 0;
left: 0;
z-index: 2;
border: 0;
background-repeat: no-repeat;
}
#imgManager li .icon:hover {
width: 107px;
height: 107px;
border: 3px solid #1094fa;
}
#imgManager li.selected .icon {
background-image: url(images/success.png);
background-position: 75px 75px;
}
#imgManager li.selected .icon:hover {
width: 107px;
height: 107px;
border: 3px solid #1094fa;
background-position: 72px 72px;
}

@ -0,0 +1,56 @@
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<script type="text/javascript" src="../internal.js"></script>
<link rel="stylesheet" type="text/css" href="background.css">
</head>
<body>
<div id="bg_container" class="wrapper">
<div id="tabHeads" class="tabhead">
<span class="focus" data-content-id="normal"><var id="lang_background_normal"></var></span>
<!-- <span class="" data-content-id="imgManager"><var id="lang_background_local"></var></span> -->
</div>
<div id="tabBodys" class="tabbody">
<div id="normal" class="panel focus">
<fieldset class="bgarea">
<legend><var id="lang_background_set"></var></legend>
<div class="content">
<div>
<label><input id="nocolorRadio" class="iptradio" type="radio" name="t" value="none" checked="checked"><var id="lang_background_none"></var></label>
<label><input id="coloredRadio" class="iptradio" type="radio" name="t" value="color"><var id="lang_background_colored"></var></label>
</div>
<div class="wrapcolor pl">
<div class="color">
<var id="lang_background_color"></var>:
</div>
<div id="colorPicker"></div>
<div class="clear"></div>
</div>
<div class="wrapcolor pl">
<label><var id="lang_background_netimg"></var>:</label><input class="txt" type="text" id="url">
</div>
<div id="alignment" class="alignment">
<var id="lang_background_align"></var>:<select id="repeatType">
<option value="center"></option>
<option value="repeat-x"></option>
<option value="repeat-y"></option>
<option value="repeat"></option>
<option value="self"></option>
</select>
</div>
<div id="custom" >
<var id="lang_background_position"></var>:x:<input type="text" size="1" id="x" maxlength="4" value="0">px&nbsp;&nbsp;y:<input type="text" size="1" id="y" maxlength="4" value="0">px
</div>
</div>
</fieldset>
</div>
<div id="imgManager" class="panel">
<div id="imageList" style=""></div>
</div>
</div>
</div>
<script type="text/javascript" src="background.js"></script>
</body>
</html>

@ -0,0 +1,376 @@
(function () {
var onlineImage,
backupStyle = editor.queryCommandValue('background');
window.onload = function () {
initTabs();
initColorSelector();
};
/* 初始化tab标签 */
function initTabs(){
var tabs = $G('tabHeads').children;
for (var i = 0; i < tabs.length; i++) {
domUtils.on(tabs[i], "click", function (e) {
var target = e.target || e.srcElement;
for (var j = 0; j < tabs.length; j++) {
if(tabs[j] == target){
tabs[j].className = "focus";
var contentId = tabs[j].getAttribute('data-content-id');
$G(contentId).style.display = "block";
if(contentId == 'imgManager') {
initImagePanel();
}
}else {
tabs[j].className = "";
$G(tabs[j].getAttribute('data-content-id')).style.display = "none";
}
}
});
}
}
/* 初始化颜色设置 */
function initColorSelector () {
var obj = editor.queryCommandValue('background');
if (obj) {
var color = obj['background-color'],
repeat = obj['background-repeat'] || 'repeat',
image = obj['background-image'] || '',
position = obj['background-position'] || 'center center',
pos = position.split(' '),
x = parseInt(pos[0]) || 0,
y = parseInt(pos[1]) || 0;
if(repeat == 'no-repeat' && (x || y)) repeat = 'self';
image = image.match(/url[\s]*\(([^\)]*)\)/);
image = image ? image[1]:'';
updateFormState('colored', color, image, repeat, x, y);
} else {
updateFormState();
}
var updateHandler = function () {
updateFormState();
updateBackground();
}
domUtils.on($G('nocolorRadio'), 'click', updateBackground);
domUtils.on($G('coloredRadio'), 'click', updateHandler);
domUtils.on($G('url'), 'keyup', function(){
if($G('url').value && $G('alignment').style.display == "none") {
utils.each($G('repeatType').children, function(item){
item.selected = ('repeat' == item.getAttribute('value') ? 'selected':false);
});
}
updateHandler();
});
domUtils.on($G('repeatType'), 'change', updateHandler);
domUtils.on($G('x'), 'keyup', updateBackground);
domUtils.on($G('y'), 'keyup', updateBackground);
initColorPicker();
}
/* 初始化颜色选择器 */
function initColorPicker() {
var me = editor,
cp = $G("colorPicker");
/* 生成颜色选择器ui对象 */
var popup = new UE.ui.Popup({
content: new UE.ui.ColorPicker({
noColorText: me.getLang("clearColor"),
editor: me,
onpickcolor: function (t, color) {
updateFormState('colored', color);
updateBackground();
UE.ui.Popup.postHide();
},
onpicknocolor: function (t, color) {
updateFormState('colored', 'transparent');
updateBackground();
UE.ui.Popup.postHide();
}
}),
editor: me,
onhide: function () {
}
});
/* 设置颜色选择器 */
domUtils.on(cp, "click", function () {
popup.showAnchor(this);
});
domUtils.on(document, 'mousedown', function (evt) {
var el = evt.target || evt.srcElement;
UE.ui.Popup.postHide(el);
});
domUtils.on(window, 'scroll', function () {
UE.ui.Popup.postHide();
});
}
/* 初始化在线图片列表 */
function initImagePanel() {
onlineImage = onlineImage || new OnlineImage('imageList');
}
/* 更新背景色设置面板 */
function updateFormState (radio, color, url, align, x, y) {
var nocolorRadio = $G('nocolorRadio'),
coloredRadio = $G('coloredRadio');
if(radio) {
nocolorRadio.checked = (radio == 'colored' ? false:'checked');
coloredRadio.checked = (radio == 'colored' ? 'checked':false);
}
if(color) {
domUtils.setStyle($G("colorPicker"), "background-color", color);
}
if(url && /^\//.test(url)) {
var a = document.createElement('a');
a.href = url;
browser.ie && (a.href = a.href);
url = browser.ie ? a.href:(a.protocol + '//' + a.host + a.pathname + a.search + a.hash);
}
if(url || url === '') {
$G('url').value = url;
}
if(align) {
utils.each($G('repeatType').children, function(item){
item.selected = (align == item.getAttribute('value') ? 'selected':false);
});
}
if(x || y) {
$G('x').value = parseInt(x) || 0;
$G('y').value = parseInt(y) || 0;
}
$G('alignment').style.display = coloredRadio.checked && $G('url').value ? '':'none';
$G('custom').style.display = coloredRadio.checked && $G('url').value && $G('repeatType').value == 'self' ? '':'none';
}
/* 更新背景颜色 */
function updateBackground () {
if ($G('coloredRadio').checked) {
var color = domUtils.getStyle($G("colorPicker"), "background-color"),
bgimg = $G("url").value,
align = $G("repeatType").value,
backgroundObj = {
"background-repeat": "no-repeat",
"background-position": "center center"
};
if (color) backgroundObj["background-color"] = color;
if (bgimg) backgroundObj["background-image"] = 'url(' + bgimg + ')';
if (align == 'self') {
backgroundObj["background-position"] = $G("x").value + "px " + $G("y").value + "px";
} else if (align == 'repeat-x' || align == 'repeat-y' || align == 'repeat') {
backgroundObj["background-repeat"] = align;
}
editor.execCommand('background', backgroundObj);
} else {
editor.execCommand('background', null);
}
}
/* 在线图片 */
function OnlineImage(target) {
this.container = utils.isString(target) ? document.getElementById(target) : target;
this.init();
}
OnlineImage.prototype = {
init: function () {
this.reset();
this.initEvents();
},
/* 初始化容器 */
initContainer: function () {
this.container.innerHTML = '';
this.list = document.createElement('ul');
this.clearFloat = document.createElement('li');
domUtils.addClass(this.list, 'list');
domUtils.addClass(this.clearFloat, 'clearFloat');
this.list.id = 'imageListUl';
this.list.appendChild(this.clearFloat);
this.container.appendChild(this.list);
},
/* 初始化滚动事件,滚动到地步自动拉取数据 */
initEvents: function () {
var _this = this;
/* 滚动拉取图片 */
domUtils.on($G('imageList'), 'scroll', function(e){
var panel = this;
if (panel.scrollHeight - (panel.offsetHeight + panel.scrollTop) < 10) {
_this.getImageData();
}
});
/* 选中图片 */
domUtils.on(this.container, 'click', function (e) {
var target = e.target || e.srcElement,
li = target.parentNode,
nodes = $G('imageListUl').childNodes;
if (li.tagName.toLowerCase() == 'li') {
updateFormState('nocolor', null, '');
for (var i = 0, node; node = nodes[i++];) {
if (node == li && !domUtils.hasClass(node, 'selected')) {
domUtils.addClass(node, 'selected');
updateFormState('colored', null, li.firstChild.getAttribute("_src"), 'repeat');
} else {
domUtils.removeClasses(node, 'selected');
}
}
updateBackground();
}
});
},
/* 初始化第一次的数据 */
initData: function () {
/* 拉取数据需要使用的值 */
this.state = 0;
this.listSize = editor.getOpt('imageManagerListSize');
this.listIndex = 0;
this.listEnd = false;
/* 第一次拉取数据 */
this.getImageData();
},
/* 重置界面 */
reset: function() {
this.initContainer();
this.initData();
},
/* 向后台拉取图片列表数据 */
getImageData: function () {
var _this = this;
if(!_this.listEnd && !this.isLoadingData) {
this.isLoadingData = true;
var url = editor.getActionUrl(editor.getOpt('imageManagerActionName')),
isJsonp = utils.isCrossDomainUrl(url);
ajax.request(url, {
'timeout': 100000,
'dataType': isJsonp ? 'jsonp':'',
'data': utils.extend({
start: this.listIndex,
size: this.listSize
}, editor.queryCommandValue('serverparam')),
'method': 'get',
'onsuccess': function (r) {
try {
var json = isJsonp ? r:eval('(' + r.responseText + ')');
if (json.state == 'SUCCESS') {
_this.pushData(json.list);
_this.listIndex = parseInt(json.start) + parseInt(json.list.length);
if(_this.listIndex >= json.total) {
_this.listEnd = true;
}
_this.isLoadingData = false;
}
} catch (e) {
if(r.responseText.indexOf('ue_separate_ue') != -1) {
var list = r.responseText.split(r.responseText);
_this.pushData(list);
_this.listIndex = parseInt(list.length);
_this.listEnd = true;
_this.isLoadingData = false;
}
}
},
'onerror': function () {
_this.isLoadingData = false;
}
});
}
},
/* 添加图片到列表界面上 */
pushData: function (list) {
var i, item, img, icon, _this = this,
urlPrefix = editor.getOpt('imageManagerUrlPrefix');
for (i = 0; i < list.length; i++) {
if(list[i] && list[i].url) {
item = document.createElement('li');
img = document.createElement('img');
icon = document.createElement('span');
domUtils.on(img, 'load', (function(image){
return function(){
_this.scale(image, image.parentNode.offsetWidth, image.parentNode.offsetHeight);
}
})(img));
img.width = 113;
img.setAttribute('src', urlPrefix + list[i].url + (list[i].url.indexOf('?') == -1 ? '?noCache=':'&noCache=') + (+new Date()).toString(36) );
img.setAttribute('_src', urlPrefix + list[i].url);
domUtils.addClass(icon, 'icon');
item.appendChild(img);
item.appendChild(icon);
this.list.insertBefore(item, this.clearFloat);
}
}
},
/* 改变图片大小 */
scale: function (img, w, h, type) {
var ow = img.width,
oh = img.height;
if (type == 'justify') {
if (ow >= oh) {
img.width = w;
img.height = h * oh / ow;
img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px';
} else {
img.width = w * ow / oh;
img.height = h;
img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px';
}
} else {
if (ow >= oh) {
img.width = w * ow / oh;
img.height = h;
img.style.marginLeft = '-' + parseInt((img.width - w) / 2) + 'px';
} else {
img.width = w;
img.height = h * oh / ow;
img.style.marginTop = '-' + parseInt((img.height - h) / 2) + 'px';
}
}
},
getInsertList: function () {
var i, lis = this.list.children, list = [], align = getAlign();
for (i = 0; i < lis.length; i++) {
if (domUtils.hasClass(lis[i], 'selected')) {
var img = lis[i].firstChild,
src = img.getAttribute('_src');
list.push({
src: src,
_src: src,
floatStyle: align
});
}
}
return list;
}
};
dialog.onok = function () {
updateBackground();
editor.fireEvent('saveScene');
};
dialog.oncancel = function () {
editor.execCommand('background', backupStyle);
};
})();

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

@ -0,0 +1,65 @@
/*
* 图表配置文件
* */
//不同类型的配置
var typeConfig = [
{
chart: {
type: 'line'
},
plotOptions: {
line: {
dataLabels: {
enabled: false
},
enableMouseTracking: true
}
}
}, {
chart: {
type: 'line'
},
plotOptions: {
line: {
dataLabels: {
enabled: true
},
enableMouseTracking: false
}
}
}, {
chart: {
type: 'area'
}
}, {
chart: {
type: 'bar'
}
}, {
chart: {
type: 'column'
}
}, {
chart: {
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: true,
color: '#000000',
connectorColor: '#000000',
formatter: function() {
return '<b>'+ this.point.name +'</b>: '+ ( Math.round( this.point.percentage*100 ) / 100 ) +' %';
}
}
}
}
}
];

@ -0,0 +1,165 @@
html, body {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
overflow-x: hidden;
}
.main {
width: 100%;
overflow: hidden;
}
.table-view {
height: 100%;
float: left;
margin: 20px;
width: 40%;
}
.table-view .table-container {
width: 100%;
margin-bottom: 50px;
overflow: scroll;
}
.table-view th {
padding: 5px 10px;
background-color: #F7F7F7;
}
.table-view td {
width: 50px;
text-align: center;
padding:0;
}
.table-container input {
width: 40px;
padding: 5px;
border: none;
outline: none;
}
.table-view caption {
font-size: 18px;
text-align: left;
}
.charts-view {
/*margin-left: 49%!important;*/
width: 50%;
margin-left: 49%;
height: 400px;
}
.charts-container {
border-left: 1px solid #c3c3c3;
}
.charts-format fieldset {
padding-left: 20px;
margin-bottom: 50px;
}
.charts-format legend {
padding-left: 10px;
padding-right: 10px;
}
.format-item-container {
padding: 20px;
}
.format-item-container label {
display: block;
margin: 10px 0;
}
.charts-format .data-item {
border: 1px solid black;
outline: none;
padding: 2px 3px;
}
/* 图表类型 */
.charts-type {
margin-top: 50px;
height: 300px;
}
.scroll-view {
border: 1px solid #c3c3c3;
border-left: none;
border-right: none;
overflow: hidden;
}
.scroll-container {
margin: 20px;
width: 100%;
overflow: hidden;
}
.scroll-bed {
width: 10000px;
_margin-top: 20px;
-webkit-transition: margin-left .5s ease;
-moz-transition: margin-left .5s ease;
transition: margin-left .5s ease;
}
.view-box {
display: inline-block;
*display: inline;
*zoom: 1;
margin-right: 20px;
border: 2px solid white;
line-height: 0;
overflow: hidden;
cursor: pointer;
}
.view-box img {
border: 1px solid #cecece;
}
.view-box.selected {
border-color: #7274A7;
}
.button-container {
margin-bottom: 20px;
text-align: center;
}
.button-container a {
display: inline-block;
width: 100px;
height: 25px;
line-height: 25px;
border: 1px solid #c2ccd1;
margin-right: 30px;
text-decoration: none;
color: black;
-webkit-border-radius: 2px;
-moz-border-radius: 2px;
border-radius: 2px;
}
.button-container a:HOVER {
background: #fcfcfc;
}
.button-container a:ACTIVE {
border-top-color: #c2ccd1;
box-shadow:inset 0 5px 4px -4px rgba(49, 49, 64, 0.1);
}
.edui-charts-not-data {
height: 100px;
line-height: 100px;
text-align: center;
}

@ -0,0 +1,89 @@
<!DOCTYPE html>
<html>
<head>
<title>chart</title>
<meta chartset="utf-8">
<link rel="stylesheet" type="text/css" href="charts.css">
<script type="text/javascript" src="../internal.js"></script>
</head>
<body>
<div class="main">
<div class="table-view">
<h3><var id="lang_data_source"></var></h3>
<div id="tableContainer" class="table-container"></div>
<h3><var id="lang_chart_format"></var></h3>
<form name="data-form">
<div class="charts-format">
<fieldset>
<legend><var id="lang_data_align"></var></legend>
<div class="format-item-container">
<label>
<input type="radio" class="format-ctrl not-pie-item" name="charts-format" value="1" checked="checked">
<var id="lang_chart_align_same"></var>
</label>
<label>
<input type="radio" class="format-ctrl not-pie-item" name="charts-format" value="-1">
<var id="lang_chart_align_reverse"></var>
</label>
<br>
</div>
</fieldset>
<fieldset>
<legend><var id="lang_chart_title"></var></legend>
<div class="format-item-container">
<label>
<var id="lang_chart_main_title"></var><input type="text" name="title" class="data-item">
</label>
<label>
<var id="lang_chart_sub_title"></var><input type="text" name="sub-title" class="data-item not-pie-item">
</label>
<label>
<var id="lang_chart_x_title"></var><input type="text" name="x-title" class="data-item not-pie-item">
</label>
<label>
<var id="lang_chart_y_title"></var><input type="text" name="y-title" class="data-item not-pie-item">
</label>
</div>
</fieldset>
<fieldset>
<legend><var id="lang_chart_tip"></var></legend>
<div class="format-item-container">
<label>
<var id="lang_cahrt_tip_prefix"></var>
<input type="text" id="tipInput" name="tip" class="data-item" disabled="disabled">
</label>
<p><var id="lang_cahrt_tip_description"></var></p>
</div>
</fieldset>
<fieldset>
<legend><var id="lang_chart_data_unit"></var></legend>
<div class="format-item-container">
<label><var id="lang_chart_data_unit_title"></var><input type="text" name="unit" class="data-item"></label>
<p><var id="lang_chart_data_unit_description"></var></p>
</div>
</fieldset>
</div>
</form>
</div>
<div class="charts-view">
<div id="chartsContainer" class="charts-container"></div>
<div id="chartsType" class="charts-type">
<h3><var id="lang_chart_type"></var></h3>
<div class="scroll-view">
<div class="scroll-container">
<div id="scrollBed" class="scroll-bed"></div>
</div>
<div id="buttonContainer" class="button-container">
<a href="#" data-title="prev"><var id="lang_prev_btn"></var></a>
<a href="#" data-title="next"><var id="lang_next_btn"></var></a>
</div>
</div>
</div>
</div>
</div>
<script src="../../third-party/jquery-1.10.2.min.js"></script>
<script src="../../third-party/highcharts/highcharts.js"></script>
<script src="chart.config.js"></script>
<script src="charts.js"></script>
</body>
</html>

@ -0,0 +1,519 @@
/*
* 图片转换对话框脚本
**/
var tableData = [],
//编辑器页面table
editorTable = null,
chartsConfig = window.typeConfig,
resizeTimer = null,
//初始默认图表类型
currentChartType = 0;
window.onload = function () {
editorTable = domUtils.findParentByTagName( editor.selection.getRange().startContainer, 'table', true);
//未找到表格, 显示错误页面
if ( !editorTable ) {
document.body.innerHTML = "<div class='edui-charts-not-data'>未找到数据</div>";
return;
}
//初始化图表类型选择
initChartsTypeView();
renderTable( editorTable );
initEvent();
initUserConfig( editorTable.getAttribute( "data-chart" ) );
$( "#scrollBed .view-box:eq("+ currentChartType +")" ).trigger( "click" );
updateViewType( currentChartType );
dialog.addListener( "resize", function () {
if ( resizeTimer != null ) {
window.clearTimeout( resizeTimer );
}
resizeTimer = window.setTimeout( function () {
resizeTimer = null;
renderCharts();
}, 500 );
} );
};
function initChartsTypeView () {
var contents = [];
for ( var i = 0, len = chartsConfig.length; i<len; i++ ) {
contents.push( '<div class="view-box" data-chart-type="'+ i +'"><img width="300" src="images/charts'+ i +'.png"></div>' );
}
$( "#scrollBed" ).html( contents.join( "" ) );
}
//渲染table, 以便用户修改数据
function renderTable ( table ) {
var tableHtml = [];
//构造数据
for ( var i = 0, row; row = table.rows[ i ]; i++ ) {
tableData[ i ] = [];
tableHtml[ i ] = [];
for ( var j = 0, cell; cell = row.cells[ j ]; j++ ) {
var value = getCellValue( cell );
if ( i > 0 && j > 0 ) {
value = +value;
}
if ( i === 0 || j === 0 ) {
tableHtml[ i ].push( '<th>'+ value +'</th>' );
} else {
tableHtml[ i ].push( '<td><input type="text" class="data-item" value="'+ value +'"></td>' );
}
tableData[ i ][ j ] = value;
}
tableHtml[ i ] = tableHtml[ i ].join( "" );
}
//draw 表格
$( "#tableContainer" ).html( '<table id="showTable" border="1"><tbody><tr>'+ tableHtml.join( "</tr><tr>" ) +'</tr></tbody></table>' );
}
/*
* 根据表格已有的图表属性初始化当前图表属性
*/
function initUserConfig ( config ) {
var parsedConfig = {};
if ( !config ) {
return;
}
config = config.split( ";" );
$.each( config, function ( index, item ) {
item = item.split( ":" );
parsedConfig[ item[ 0 ] ] = item[ 1 ];
} );
setUserConfig( parsedConfig );
}
function initEvent () {
var cacheValue = null,
//图表类型数
typeViewCount = chartsConfig.length- 1,
$chartsTypeViewBox = $( '#scrollBed .view-box' );
$( ".charts-format" ).delegate( ".format-ctrl", "change", function () {
renderCharts();
} )
$( ".table-view" ).delegate( ".data-item", "focus", function () {
cacheValue = this.value;
} ).delegate( ".data-item", "blur", function () {
if ( this.value !== cacheValue ) {
renderCharts();
}
cacheValue = null;
} );
$( "#buttonContainer" ).delegate( "a", "click", function (e) {
e.preventDefault();
if ( this.getAttribute( "data-title" ) === 'prev' ) {
if ( currentChartType > 0 ) {
currentChartType--;
updateViewType( currentChartType );
}
} else {
if ( currentChartType < typeViewCount ) {
currentChartType++;
updateViewType( currentChartType );
}
}
} );
//图表类型变化
$( '#scrollBed' ).delegate( ".view-box", "click", function (e) {
var index = $( this ).attr( "data-chart-type" );
$chartsTypeViewBox.removeClass( "selected" );
$( $chartsTypeViewBox[ index ] ).addClass( "selected" );
currentChartType = index | 0;
//饼图, 禁用部分配置
if ( currentChartType === chartsConfig.length - 1 ) {
disableNotPieConfig();
//启用完整配置
} else {
enableNotPieConfig();
}
renderCharts();
} );
}
function renderCharts () {
var data = collectData();
$('#chartsContainer').highcharts( $.extend( {}, chartsConfig[ currentChartType ], {
credits: {
enabled: false
},
exporting: {
enabled: false
},
title: {
text: data.title,
x: -20 //center
},
subtitle: {
text: data.subTitle,
x: -20
},
xAxis: {
title: {
text: data.xTitle
},
categories: data.categories
},
yAxis: {
title: {
text: data.yTitle
},
plotLines: [{
value: 0,
width: 1,
color: '#808080'
}]
},
tooltip: {
enabled: true,
valueSuffix: data.suffix
},
legend: {
layout: 'vertical',
align: 'right',
verticalAlign: 'middle',
borderWidth: 1
},
series: data.series
} ));
}
function updateViewType ( index ) {
$( "#scrollBed" ).css( 'marginLeft', -index*324+'px' );
}
function collectData () {
var form = document.forms[ 'data-form' ],
data = null;
if ( currentChartType !== chartsConfig.length - 1 ) {
data = getSeriesAndCategories();
$.extend( data, getUserConfig() );
//饼图数据格式
} else {
data = getSeriesForPieChart();
data.title = form[ 'title' ].value;
data.suffix = form[ 'unit' ].value;
}
return data;
}
/**
* 获取用户配置信息
*/
function getUserConfig () {
var form = document.forms[ 'data-form' ],
info = {
title: form[ 'title' ].value,
subTitle: form[ 'sub-title' ].value,
xTitle: form[ 'x-title' ].value,
yTitle: form[ 'y-title' ].value,
suffix: form[ 'unit' ].value,
//数据对齐方式
tableDataFormat: getTableDataFormat (),
//饼图提示文字
tip: $( "#tipInput" ).val()
};
return info;
}
function setUserConfig ( config ) {
var form = document.forms[ 'data-form' ];
config.title && ( form[ 'title' ].value = config.title );
config.subTitle && ( form[ 'sub-title' ].value = config.subTitle );
config.xTitle && ( form[ 'x-title' ].value = config.xTitle );
config.yTitle && ( form[ 'y-title' ].value = config.yTitle );
config.suffix && ( form[ 'unit' ].value = config.suffix );
config.dataFormat == "-1" && ( form[ 'charts-format' ][ 1 ].checked = true );
config.tip && ( form[ 'tip' ].value = config.tip );
currentChartType = config.chartType || 0;
}
function getSeriesAndCategories () {
var form = document.forms[ 'data-form' ],
series = [],
categories = [],
tmp = [],
tableData = getTableData();
//反转数据
if ( getTableDataFormat() === "-1" ) {
for ( var i = 0, len = tableData.length; i < len; i++ ) {
for ( var j = 0, jlen = tableData[ i ].length; j < jlen; j++ ) {
if ( !tmp[ j ] ) {
tmp[ j ] = [];
}
tmp[ j ][ i ] = tableData[ i ][ j ];
}
}
tableData = tmp;
}
categories = tableData[0].slice( 1 );
for ( var i = 1, data; data = tableData[ i ]; i++ ) {
series.push( {
name: data[ 0 ],
data: data.slice( 1 )
} );
}
return {
series: series,
categories: categories
};
}
/*
* 获取数据源数据对齐方式
*/
function getTableDataFormat () {
var form = document.forms[ 'data-form' ],
items = form['charts-format'];
return items[ 0 ].checked ? items[ 0 ].value : items[ 1 ].value;
}
/*
* 禁用非饼图类型的配置项
*/
function disableNotPieConfig() {
updateConfigItem( 'disable' );
}
/*
* 启用非饼图类型的配置项
*/
function enableNotPieConfig() {
updateConfigItem( 'enable' );
}
function updateConfigItem ( value ) {
var table = $( "#showTable" )[ 0 ],
isDisable = value === 'disable' ? true : false;
//table中的input处理
for ( var i = 2 , row; row = table.rows[ i ]; i++ ) {
for ( var j = 1, cell; cell = row.cells[ j ]; j++ ) {
$( "input", cell ).attr( "disabled", isDisable );
}
}
//其他项处理
$( "input.not-pie-item" ).attr( "disabled", isDisable );
$( "#tipInput" ).attr( "disabled", !isDisable )
}
/*
* 获取饼图数据
* 饼图的数据只取第一行的
**/
function getSeriesForPieChart () {
var series = {
type: 'pie',
name: $("#tipInput").val(),
data: []
},
tableData = getTableData();
for ( var j = 1, jlen = tableData[ 0 ].length; j < jlen; j++ ) {
var title = tableData[ 0 ][ j ],
val = tableData[ 1 ][ j ];
series.data.push( [ title, val ] );
}
return {
series: [ series ]
};
}
function getTableData () {
var table = document.getElementById( "showTable" ),
xCount = table.rows[0].cells.length - 1,
values = getTableInputValue();
for ( var i = 0, value; value = values[ i ]; i++ ) {
tableData[ Math.floor( i / xCount ) + 1 ][ i % xCount + 1 ] = values[ i ];
}
return tableData;
}
function getTableInputValue () {
var table = document.getElementById( "showTable" ),
inputs = table.getElementsByTagName( "input" ),
values = [];
for ( var i = 0, input; input = inputs[ i ]; i++ ) {
values.push( input.value | 0 );
}
return values;
}
function getCellValue ( cell ) {
var value = utils.trim( ( cell.innerText || cell.textContent || '' ) );
return value.replace( new RegExp( UE.dom.domUtils.fillChar, 'g' ), '' ).replace( /^\s+|\s+$/g, '' );
}
//dialog确认事件
dialog.onok = function () {
//收集信息
var form = document.forms[ 'data-form' ],
info = getUserConfig();
//添加图表类型
info.chartType = currentChartType;
//同步表格数据到编辑器
syncTableData();
//执行图表命令
editor.execCommand( 'charts', info );
};
/*
* 同步图表编辑视图的表格数据到编辑器里的原始表格
*/
function syncTableData () {
var tableData = getTableData();
for ( var i = 1, row; row = editorTable.rows[ i ]; i++ ) {
for ( var j = 1, cell; cell = row.cells[ j ]; j++ ) {
cell.innerHTML = tableData[ i ] [ j ];
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

@ -0,0 +1,43 @@
.jd img{
background:transparent url(images/jxface2.gif?v=1.1) no-repeat scroll left top;
cursor:pointer;width:35px;height:35px;display:block;
}
.pp img{
background:transparent url(images/fface.gif?v=1.1) no-repeat scroll left top;
cursor:pointer;width:25px;height:25px;display:block;
}
.ldw img{
background:transparent url(images/wface.gif?v=1.1) no-repeat scroll left top;
cursor:pointer;width:35px;height:35px;display:block;
}
.tsj img{
background:transparent url(images/tface.gif?v=1.1) no-repeat scroll left top;
cursor:pointer;width:35px;height:35px;display:block;
}
.cat img{
background:transparent url(images/cface.gif?v=1.1) no-repeat scroll left top;
cursor:pointer;width:35px;height:35px;display:block;
}
.bb img{
background:transparent url(images/bface.gif?v=1.1) no-repeat scroll left top;
cursor:pointer;width:35px;height:35px;display:block;
}
.youa img{
background:transparent url(images/yface.gif?v=1.1) no-repeat scroll left top;
cursor:pointer;width:35px;height:35px;display:block;
}
.smileytable td {height: 37px;}
#tabPanel{margin-left:5px;overflow: hidden;}
#tabContent {float:left;background:#FFFFFF;}
#tabContent div{display: none;width:480px;overflow:hidden;}
#tabIconReview.show{left:17px;display:block;}
.menuFocus{background:#ACCD3C;}
.menuDefault{background:#FFFFFF;}
#tabIconReview{position:absolute;left:406px;left:398px \9;top:41px;z-index:65533;width:90px;height:76px;}
img.review{width:90px;height:76px;border:2px solid #9cb945;background:#FFFFFF;background-position:center;background-repeat:no-repeat;}
.wrapper .tabbody{position:relative;float:left;clear:both;padding:10px;width: 95%;}
.tabbody table{width: 100%;}
.tabbody td{border:1px solid #BAC498;}
.tabbody td span{display: block;zoom:1;padding:0 4px;}

@ -0,0 +1,54 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="robots" content="noindex, nofollow"/>
<script type="text/javascript" src="../internal.js"></script>
<link rel="stylesheet" type="text/css" href="emotion.css">
</head>
<body>
<div id="tabPanel" class="wrapper">
<div id="tabHeads" class="tabhead">
<span><var id="lang_input_choice"></var></span>
<span><var id="lang_input_Tuzki"></var></span>
<span><var id="lang_input_lvdouwa"></var></span>
<span><var id="lang_input_BOBO"></var></span>
<span><var id="lang_input_babyCat"></var></span>
<span><var id="lang_input_bubble"></var></span>
<span><var id="lang_input_youa"></var></span>
</div>
<div id="tabBodys" class="tabbody">
<div id="tab0"></div>
<div id="tab1"></div>
<div id="tab2"></div>
<div id="tab3"></div>
<div id="tab4"></div>
<div id="tab5"></div>
<div id="tab6"></div>
</div>
</div>
<div id="tabIconReview">
<img id='faceReview' class='review' src="../../themes/notadd/images/spacer.gif"/>
</div>
<script type="text/javascript" src="emotion.js"></script>
<script type="text/javascript">
var emotion = {
tabNum:7, //切换面板数量
SmilmgName:{ tab0:['j_00', 84], tab1:['t_00', 40], tab2:['w_00', 52], tab3:['B_00', 63], tab4:['C_00', 20], tab5:['i_f', 50], tab6:['y_00', 40] }, //图片前缀名
imageFolders:{ tab0:'jx2/', tab1:'tsj/', tab2:'ldw/', tab3:'bobo/', tab4:'babycat/', tab5:'face/', tab6:'youa/'}, //图片对应文件夹路径
imageCss:{tab0:'jd', tab1:'tsj', tab2:'ldw', tab3:'bb', tab4:'cat', tab5:'pp', tab6:'youa'}, //图片css类名
imageCssOffset:{tab0:35, tab1:35, tab2:35, tab3:35, tab4:35, tab5:25, tab6:35}, //图片偏移
SmileyInfor:{
tab0:['Kiss', 'Love', 'Yeah', '啊!', '背扭', '顶', '抖胸', '88', '汗', '瞌睡', '鲁拉', '拍砖', '揉脸', '生日快乐', '大笑', '瀑布汗~', '惊讶', '臭美', '傻笑', '抛媚眼', '发怒', '打酱油', '俯卧撑', '气愤', '?', '吻', '怒', '胜利', 'HI', 'KISS', '不说', '不要', '扯花', '大心', '顶', '大惊', '飞吻', '鬼脸', '害羞', '口水', '狂哭', '来', '发财了', '吃西瓜', '套牢', '害羞', '庆祝', '我来了', '敲打', '晕了', '胜利', '臭美', '被打了', '贪吃', '迎接', '酷', '微笑', '亲吻', '调皮', '惊恐', '耍酷', '发火', '害羞', '汗水', '大哭', '', '加油', '困', '你NB', '晕倒', '开心', '偷笑', '大哭', '滴汗', '叹气', '超赞', '??', '飞吻', '天使', '撒花', '生气', '被砸', '吓傻', '随意吐'],
tab1:['Kiss', 'Love', 'Yeah', '啊!', '背扭', '顶', '抖胸', '88', '汗', '瞌睡', '鲁拉', '拍砖', '揉脸', '生日快乐', '摊手', '睡觉', '瘫坐', '无聊', '星星闪', '旋转', '也不行', '郁闷', '正Music', '抓墙', '撞墙至死', '歪头', '戳眼', '飘过', '互相拍砖', '砍死你', '扔桌子', '少林寺', '什么?', '转头', '我爱牛奶', '我踢', '摇晃', '晕厥', '在笼子里', '震荡'],
tab2:['大笑', '瀑布汗~', '惊讶', '臭美', '傻笑', '抛媚眼', '发怒', '我错了', 'money', '气愤', '挑逗', '吻', '怒', '胜利', '委屈', '受伤', '说啥呢?', '闭嘴', '不', '逗你玩儿', '飞吻', '眩晕', '魔法', '我来了', '睡了', '我打', '闭嘴', '打', '打晕了', '刷牙', '爆揍', '炸弹', '倒立', '刮胡子', '邪恶的笑', '不要不要', '爱恋中', '放大仔细看', '偷窥', '超高兴', '晕', '松口气', '我跑', '享受', '修养', '哭', '汗', '啊~', '热烈欢迎', '打酱油', '俯卧撑', '?'],
tab3:['HI', 'KISS', '不说', '不要', '扯花', '大心', '顶', '大惊', '飞吻', '鬼脸', '害羞', '口水', '狂哭', '来', '泪眼', '流泪', '生气', '吐舌', '喜欢', '旋转', '再见', '抓狂', '汗', '鄙视', '拜', '吐血', '嘘', '打人', '蹦跳', '变脸', '扯肉', '吃To', '吃花', '吹泡泡糖', '大变身', '飞天舞', '回眸', '可怜', '猛抽', '泡泡', '苹果', '亲', '', '骚舞', '烧香', '睡', '套娃娃', '捅捅', '舞倒', '西红柿', '爱慕', '摇', '摇摆', '杂耍', '招财', '被殴', '被球闷', '大惊', '理想', '欧打', '呕吐', '碎', '吐痰'],
tab4:['发财了', '吃西瓜', '套牢', '害羞', '庆祝', '我来了', '敲打', '晕了', '胜利', '臭美', '被打了', '贪吃', '迎接', '酷', '顶', '幸运', '爱心', '躲', '送花', '选择'],
tab5:['微笑', '亲吻', '调皮', '惊讶', '耍酷', '发火', '害羞', '汗水', '大哭', '得意', '鄙视', '困', '夸奖', '晕倒', '疑问', '媒婆', '狂吐', '青蛙', '发愁', '亲吻', '', '爱心', '心碎', '玫瑰', '礼物', '哭', '奸笑', '可爱', '得意', '呲牙', '暴汗', '楚楚可怜', '困', '哭', '生气', '惊讶', '口水', '彩虹', '夜空', '太阳', '钱钱', '灯泡', '咖啡', '蛋糕', '音乐', '爱', '胜利', '赞', '鄙视', 'OK'],
tab6:['男兜', '女兜', '开心', '乖乖', '偷笑', '大笑', '抽泣', '大哭', '无奈', '滴汗', '叹气', '狂晕', '委屈', '超赞', '??', '疑问', '飞吻', '天使', '撒花', '生气', '被砸', '口水', '泪奔', '吓傻', '吐舌头', '点头', '随意吐', '旋转', '困困', '鄙视', '狂顶', '篮球', '再见', '欢迎光临', '恭喜发财', '稍等', '我在线', '恕不议价', '库房有货', '货在路上']
}
};
</script>
</body>
</html>

@ -0,0 +1,186 @@
window.onload = function () {
editor.setOpt({
emotionLocalization:false
});
emotion.SmileyPath = editor.options.emotionLocalization === true ? 'images/' : "//imgbaidu.b0.upaiyun.com/hi/";
emotion.SmileyBox = createTabList( emotion.tabNum );
emotion.tabExist = createArr( emotion.tabNum );
initImgName();
initEvtHandler( "tabHeads" );
};
function initImgName() {
for ( var pro in emotion.SmilmgName ) {
var tempName = emotion.SmilmgName[pro],
tempBox = emotion.SmileyBox[pro],
tempStr = "";
if ( tempBox.length ) return;
for ( var i = 1; i <= tempName[1]; i++ ) {
tempStr = tempName[0];
if ( i < 10 ) tempStr = tempStr + '0';
tempStr = tempStr + i + '.gif';
tempBox.push( tempStr );
}
}
}
function initEvtHandler( conId ) {
var tabHeads = $G( conId );
for ( var i = 0, j = 0; i < tabHeads.childNodes.length; i++ ) {
var tabObj = tabHeads.childNodes[i];
if ( tabObj.nodeType == 1 ) {
domUtils.on( tabObj, "click", (function ( index ) {
return function () {
switchTab( index );
};
})( j ) );
j++;
}
}
switchTab( 0 );
$G( "tabIconReview" ).style.display = 'none';
}
function InsertSmiley( url, evt ) {
var obj = {
src:editor.options.emotionLocalization ? editor.options.UEDITOR_HOME_URL + "dialogs/emotion/" + url : url
};
obj._src = obj.src;
editor.execCommand( 'insertimage', obj );
if ( !evt.ctrlKey ) {
dialog.popup.hide();
}
}
function switchTab( index ) {
autoHeight( index );
if ( emotion.tabExist[index] == 0 ) {
emotion.tabExist[index] = 1;
createTab( 'tab' + index );
}
//获取呈现元素句柄数组
var tabHeads = $G( "tabHeads" ).getElementsByTagName( "span" ),
tabBodys = $G( "tabBodys" ).getElementsByTagName( "div" ),
i = 0, L = tabHeads.length;
//隐藏所有呈现元素
for ( ; i < L; i++ ) {
tabHeads[i].className = "";
tabBodys[i].style.display = "none";
}
//显示对应呈现元素
tabHeads[index].className = "focus";
tabBodys[index].style.display = "block";
}
function autoHeight( index ) {
var iframe = dialog.getDom( "iframe" ),
parent = iframe.parentNode.parentNode;
switch ( index ) {
case 0:
iframe.style.height = "380px";
parent.style.height = "392px";
break;
case 1:
iframe.style.height = "220px";
parent.style.height = "232px";
break;
case 2:
iframe.style.height = "260px";
parent.style.height = "272px";
break;
case 3:
iframe.style.height = "300px";
parent.style.height = "312px";
break;
case 4:
iframe.style.height = "140px";
parent.style.height = "152px";
break;
case 5:
iframe.style.height = "260px";
parent.style.height = "272px";
break;
case 6:
iframe.style.height = "230px";
parent.style.height = "242px";
break;
default:
}
}
function createTab( tabName ) {
var faceVersion = "?v=1.1", //版本号
tab = $G( tabName ), //获取将要生成的Div句柄
imagePath = emotion.SmileyPath + emotion.imageFolders[tabName], //获取显示表情和预览表情的路径
positionLine = 11 / 2, //中间数
iWidth = iHeight = 35, //图片长宽
iColWidth = 3, //表格剩余空间的显示比例
tableCss = emotion.imageCss[tabName],
cssOffset = emotion.imageCssOffset[tabName],
textHTML = ['<table class="smileytable">'],
i = 0, imgNum = emotion.SmileyBox[tabName].length, imgColNum = 11, faceImage,
sUrl, realUrl, posflag, offset, infor;
for ( ; i < imgNum; ) {
textHTML.push( '<tr>' );
for ( var j = 0; j < imgColNum; j++, i++ ) {
faceImage = emotion.SmileyBox[tabName][i];
if ( faceImage ) {
sUrl = imagePath + faceImage + faceVersion;
realUrl = imagePath + faceImage;
posflag = j < positionLine ? 0 : 1;
offset = cssOffset * i * (-1) - 1;
infor = emotion.SmileyInfor[tabName][i];
textHTML.push( '<td class="' + tableCss + '" border="1" width="' + iColWidth + '%" style="border-collapse:collapse;" align="center" bgcolor="transparent" onclick="InsertSmiley(\'' + realUrl.replace( /'/g, "\\'" ) + '\',event)" onmouseover="over(this,\'' + sUrl + '\',\'' + posflag + '\')" onmouseout="out(this)">' );
textHTML.push( '<span>' );
textHTML.push( '<img style="background-position:left ' + offset + 'px;" title="' + infor + '" src="' + emotion.SmileyPath + (editor.options.emotionLocalization ? '0.gif" width="' : 'default/0.gif" width="') + iWidth + '" height="' + iHeight + '"></img>' );
textHTML.push( '</span>' );
} else {
textHTML.push( '<td width="' + iColWidth + '%" bgcolor="#FFFFFF">' );
}
textHTML.push( '</td>' );
}
textHTML.push( '</tr>' );
}
textHTML.push( '</table>' );
textHTML = textHTML.join( "" );
tab.innerHTML = textHTML;
}
function over( td, srcPath, posFlag ) {
td.style.backgroundColor = "#ACCD3C";
$G( 'faceReview' ).style.backgroundImage = "url(" + srcPath + ")";
if ( posFlag == 1 ) $G( "tabIconReview" ).className = "show";
$G( "tabIconReview" ).style.display = 'block';
}
function out( td ) {
td.style.backgroundColor = "transparent";
var tabIconRevew = $G( "tabIconReview" );
tabIconRevew.className = "";
tabIconRevew.style.display = 'none';
}
function createTabList( tabNum ) {
var obj = {};
for ( var i = 0; i < tabNum; i++ ) {
obj["tab" + i] = [];
}
return obj;
}
function createArr( tabNum ) {
var arr = [];
for ( var i = 0; i < tabNum; i++ ) {
arr[i] = 0;
}
return arr;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

File diff suppressed because one or more lines are too long

@ -0,0 +1,398 @@
<?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" >
<!--
2013-9-30: Created.
-->
<svg>
<metadata>
Created by iconfont
</metadata>
<defs>
<font id="edui-notadd" horiz-adv-x="1024" >
<font-face
font-family="edui-notadd"
font-weight="500"
font-stretch="normal"
units-per-em="1024"
ascent="896"
descent="-128"
/>
<missing-glyph />
<glyph glyph-name="close" unicode="&#58964;" d="M960 742.4l-89.6 89.6-358.4-358.4-358.4 358.4-89.6-89.6 358.4-358.4-358.4-358.4 89.6-89.6 358.4 358.4 358.4-358.4 89.6 89.6-358.4 358.4 358.4 358.4z" horiz-adv-x="1024" />
<glyph glyph-name="searchreplace" unicode="&#59151;" d="M437.771654 317.01890000000003h82.93098L299.553354 896H219.181972L0.080371 317.01890000000003h80.883302L136.762912 476.225905h241.626065zM160.823135 541.751617l87.026337 241.114145A222.173119 222.173119 0 0 1 256.040186 823.307413a274.388921 274.388921 0 0 1 9.214553-40.441651l90.097855-241.114145h-194.529459z m825.214441-403.904587a146.920933 146.920933 0 0 1-94.705131 44.537008 145.897094 145.897094 0 0 1 74.740266 51.191963 138.730219 138.730219 0 0 1 27.13174 84.466738 117.741515 117.741515 0 0 1-45.560847 96.75281 189.922182 189.922182 0 0 1-122.348791 36.346294h-170.469237V-127.83925699999998h175.076513a204.767851 204.767851 0 0 1 137.70638 46.072766 153.575889 153.575889 0 0 1 53.751561 121.324952 136.170621 136.170621 0 0 1-35.322454 98.288569z m-255.959814 250.840618h74.740266q109.550801 0 109.5508-81.907141a91.121694 91.121694 0 0 0-30.715178-73.204506 126.956068 126.956068 0 0 0-84.978658-26.619821h-68.59723V388.687648z m180.707629-421.821774a136.682541 136.682541 0 0 0-90.609775-27.13174h-90.097854v204.767851h77.299864q135.146782 0 135.146782-99.824327a93.681292 93.681292 0 0 0-31.739017-78.323704zM460.808037 94.33386199999995a176.100352 176.100352 0 0 0-85.490578 40.95357 178.148031 178.148031 0 0 0-38.905892 219.613521L282.148087 384.080371A241.114145 241.114145 0 0 1 460.808037 29.32006899999999v-42.489329l112.110399 77.811783L460.808037 142.966226v-51.191963z" horiz-adv-x="1024" />
<glyph glyph-name="italic" unicode="&#58925;" d="M384 832v-64h128L384 0H256v-64h384v64H512l128 768h128V832z" horiz-adv-x="1024" />
<glyph glyph-name="insertcaption" unicode="&#58967;" d="M568.25 834v-393.75h393.75V834z m337.5-225h-112.5v-112.5h-56.25V609h-112.5V665.25h112.5V777.75h56.25v-112.5h112.5zM938.375 440.25H62v-506.25h900V440.25zM114.875-9.75v225H343.25v-225z m423.5625 0H399.5v225h225v-225z m370.6875 0H680.75v225h228.375zM455.75 834H62v-56.25h168.75v-337.5h56.25V777.75h168.75V834z" horiz-adv-x="1024" />
<glyph glyph-name="insertparagraph" unicode="&#58926;" d="M997.12 896h-997.12v-576h1024v576zM60.16 384v256h259.84v-256zM542.080 384h-158.080v256h256v-256zM963.84 384h-259.84v256h259.84zM448 320h-448v-64h192v-384h64v384h192v64z" horiz-adv-x="1024" />
<glyph glyph-name="inserttitlecol" unicode="&#58969;" d="M64-64v128h-64v-192h192v64h-128zM448-128h576v1024h-576zM960 192v-256h-192v256zM704 192v-256h-192v256zM960 512v-256h-192v256zM704 512v-256h-192v256zM960 832v-256h-192v256zM704 832v-256h-192v256zM64 384h128v64h-192v-192h64v128zM384 384v-128h64v192h-192v-64h128zM384-64h-128v-64h192v192h-64v-128zM64-64v128h-64v-192h192v64h-128zM448-128h576v1024h-576zM960 192v-256h-192v256zM704 192v-256h-192v256zM960 512v-256h-192v256zM704 512v-256h-192v256zM960 832v-256h-192v256zM704 832v-256h-192v256zM64 384h128v64h-192v-192h64v128zM384 384v-128h64v192h-192v-64h128zM384-64h-128v-64h192v192h-64v-128zM0 448h448v448h-448zM256 832v-128h128v-64h-128v-128h-64v128h-128v64h128v128z" horiz-adv-x="1024" />
<glyph glyph-name="insertimage" unicode="&#58903;" d="M350.080 360.96l128-192 263.68 430.080 156.16-256v-23.040h64v458.88c0 0.010 0 0.023 0 0.035 0 29.337-23.783 53.12-53.12 53.12-0.675 0-1.347-0.013-2.017-0.038l-853.663 0.003c-29.337 0-53.12-23.783-53.12-53.12v-727.040c0-28.63 23.21-51.84 51.84-51.84 0 0 0 0 0 0h588.16v64h-485.12zM296.96 711.68c-0.034-0-0.033-0-0.032-0-118.007-53.154-65.211-0.36 0 0zM1024 192h-192v192h-64v-192h-192v-64h192v-192h64v192h192v64z" horiz-adv-x="1024" />
<glyph glyph-name="previousstep" unicode="&#58928;" d="M483.84 0c-9.271 0.086-17.958 2.506-25.527 6.698l-3.273-0.298-368 332.8c-13.235 9.399-22.074 24.243-23.235 41.197 0.134-1.173 0.1-0.024 0.1 1.134 0 18.444 8.766 34.84 22.359 45.25l371.336 328.42c8.13 7.803 19.143 12.656 31.289 12.811-0.567-0.011-0.565-0.011-0.563-0.011 15.34 0 28.71-8.432 35.728-20.914 4.536-8.376 7.142-18.094 7.146-28.419l-0-191.946h29.44c34.754-0.054 68.438-4.531 100.552-12.9 60.101-15.232 114.839-46.015 159.094-87.786 24.409-12.831 74.63-78.825 101.032-155.877 11.808-7.806 39.215-98.972 43.624-196.13-3.497 49.062-2.666 43.42-2.666 37.584 0-13.892-4.709-26.684-12.617-36.868-7.167-8.081-17.718-13.251-29.479-13.305-18.37 1.665-34.085 12.269-42.803 27.412-24.444 39.773-60.939 71.608-104.398 90.375-0.074 8.386-50.308 30.081-105.051 37.675 15.832 0.434-31.071 8.408-79.837 8.408-1.776 0-3.549-0.011-5.32-0.032l-48.371 0.003v-161.28c0.493-3.088 0.775-6.648 0.775-10.274 0-15.423-5.098-29.655-13.702-41.102-7.798-8.019-18.891-13.106-31.173-13.106-2.28 0-4.519 0.175-6.704 0.513zM145.28 384l312.96-281.6v148.48c7.245 27.987 32.273 48.324 62.050 48.324 2.264 0 4.501-0.118 6.705-0.347l52.844 0.023c1.379 0.014 3.008 0.021 4.64 0.021 58.359 0 114.417-9.85 166.603-27.978 61.993-22.007 117.34-60.173 160.325-109.408l-43.568 42.646c-22.699 92.319-79.174 168.698-155.264 216.901-21.633 14.132-81.989 33.984-146.982 33.984-0.617 0-1.233-0.002-1.849-0.005-4.98 0.383-10.897 0.6-16.865 0.6-5.968 0-11.885-0.218-17.744-0.646l-12.016 0.046c-0.636-0.025-1.382-0.040-2.131-0.040-19.528 0-36.761 9.827-47.023 24.805-5.559 8.317-8.91 18.241-9.215 28.927l0.13 152.388z" horiz-adv-x="1024" />
<glyph glyph-name="nextstep" unicode="&#58929;" d="M506.88 15.36c-8.477 11.272-13.575 25.504-13.575 40.926 0 3.626 0.282 7.186 0.825 10.66l-0.050 159.614h-48.64c-1.501 0.019-3.275 0.029-5.051 0.029-48.766 0-95.669-7.974-139.477-22.689-50.006-17.279-94.98-47.496-130.256-86.627 4.899 12.591-24.587-25.889-40.469-70.797 10.925 27.391-5.086 17.214-23.542 16.13-10.253 0.213-20.784 5.419-27.986 13.621-9.722 10.595-15.716 24.869-15.716 40.544 0 3.971 0.385 7.852 1.119 11.608 13.646 97.38 48.926 184.899 100.832 260.053 10.486 22.71 71.898 78.958 145.81 112.475-16.158-3.265 43.015 19.543 107.047 25.738-22.32-1.169 11.377 3.266 46.109 3.274l28.94-0v192c0.014 10.328 2.629 20.042 7.223 28.527 7.288 10.538 19.676 17.6 33.714 17.6 0.683 0 1.363-0.017 2.038-0.050 12.071-0.314 23.014-5.3 31.061-13.22l370.124-327.897c13.729-10.51 22.495-26.906 22.495-45.35 0-1.157-0.035-2.307-0.103-3.447-1.522-16.856-10.584-31.479-23.778-40.507l-366.614-329.256h-3.84c-7.316-4.007-16.024-6.375-25.284-6.402-0.212-0.022-0.839-0.035-1.47-0.035-12.377 0-23.547 5.166-31.471 13.46zM565.12 661.12v-154.24c-0.823-10.739-4.61-20.458-10.535-28.506-8.813-12.907-26.046-22.734-45.574-22.734-0.75 0-1.496 0.014-2.238 0.043l-9.493-0.003c-5.075 0.382-10.992 0.6-16.96 0.6-5.968 0-11.885-0.218-17.744-0.646 0.263 0.049-0.353 0.051-0.97 0.051-64.993 0-125.349-19.852-175.335-53.823-70.569-55.034-119.949-136.478-133.177-229.562l15.866 40.18c50.614 39.788 112.633 67.349 180.391 77.216-20.185 0.726 36.912 11.038 96.409 11.112l50.881-0.008c1.928 0.206 4.165 0.324 6.43 0.324 29.778 0 54.806-20.337 61.952-47.879l0.098-150.845 313.6 281.6z" horiz-adv-x="1024" />
<glyph glyph-name="scaleboard" unicode="&#58930;" d="M374.935 244.376c-6.461 7.093-15.736 11.526-26.046 11.526-0.291 0-0.581-0.004-0.87-0.011l-308.991 0.001c-21.495-0.701-38.694-18.129-39.029-39.649l-0-24.333c2.003-21.281 19.78-37.802 41.416-37.802 0.736 0 1.467 0.019 2.194 0.057l163.053-0.004-186.828-190.667c-9.538-9.598-15.433-22.825-15.433-37.43s5.895-27.832 15.436-37.432c9.39-9.462 22.404-15.321 36.787-15.321 14.383 0 27.397 5.859 36.787 15.32l186.831 188.111v-165.074c-0.014-0.383-0.022-0.833-0.022-1.285 0-20.631 16.551-37.397 37.099-37.744l26.905-0c0.983-0.094 2.125-0.148 3.279-0.148 19.293 0 35.087 14.981 36.384 33.945l0.006 309.786c0.069 0.841 0.108 1.82 0.108 2.809 0 9.24-3.436 17.677-9.1 24.104zM383.893 570.045v291.758c-0.898 19.073-16.579 34.196-35.793 34.196-1.592 0-3.16-0.104-4.697-0.305l-27.971 0.019c-0.015 0-0.032 0-0.050 0-20.495 0-37.11-16.615-37.11-37.11 0-0.675 0.018-1.346 0.054-2.012l-0.004-166.261-184.269 184.269c-9.289 9.429-22.197 15.27-36.47 15.27s-27.18-5.841-36.464-15.264c-9.318-9.469-15.067-22.461-15.067-36.796 0-14.335 5.749-27.327 15.067-36.797l184.262-184.262h-161.875c-0.387 0.013-0.842 0.020-1.298 0.020-22.879 0-41.508-18.195-42.208-40.904l-0.002-26.937c1.642-20.273 18.063-36.222 38.394-37.111l310.308 0.001c0.233-0.006 0.508-0.009 0.784-0.009 10.002 0 19.029 4.173 25.436 10.873 5.684 6.325 9.152 14.716 9.152 23.917 0 1.271-0.066 2.526-0.195 3.763l0.013 19.040zM648.779 523.338c6.421-6.724 15.456-10.905 25.467-10.905 0.494 0 0.986 0.010 1.475 0.030l308.964-0.002c21.282 0.686 38.357 17.77 39.028 38.991l0.001 24.351c-2.003 21.281-19.78 37.802-41.416 37.802-0.736 0-1.467-0.019-2.194-0.057l-163.053 0.004 186.828 187.468c9.538 9.598 15.433 22.825 15.433 37.43s-5.895 27.832-15.436 37.432c-9.39 9.462-22.404 15.321-36.787 15.321-14.383 0-27.397-5.859-36.787-15.32l-186.831-184.912v165.074c0.032 0.579 0.050 1.257 0.050 1.94 0 20.416-16.207 37.047-36.457 37.728l-26.935 0.002c-1.164 0.132-2.513 0.207-3.879 0.207-19.539 0-35.49-15.366-36.426-34.673l-0.003-309.757c-0.069-0.841-0.108-1.82-0.108-2.809 0-9.24 3.436-17.677 9.1-24.104zM639.821 197.669v-291.119c0.998-18.987 16.637-34.005 35.784-34.005 0.917 0 1.826 0.034 2.726 0.102l28.032-0.007c0.015-0 0.032-0 0.050-0 20.495 0 37.11 16.615 37.11 37.11 0 0.675-0.018 1.346-0.054 2.012l0.004 166.261 185.548-184.269c9.289-9.429 22.197-15.27 36.47-15.27s27.18 5.841 36.464 15.264c9.318 9.469 15.067 22.461 15.067 36.796 0 14.335-5.749 27.327-15.067 36.797l-183.622 183.622h161.875c0.387-0.013 0.842-0.020 1.298-0.020 22.879 0 41.508 18.195 42.208 40.904l0.002 26.937c-0.666 21.074-17.41 38.028-38.335 39.027l-309.728 0.002c-0.233 0.006-0.508 0.009-0.784 0.009-10.002 0-19.029-4.173-25.436-10.873-5.651-6.317-9.098-14.684-9.098-23.857 0-1.066 0.047-2.121 0.138-3.164l-0.010-19.059z" horiz-adv-x="1024" />
<glyph glyph-name="brush" unicode="&#58931;" d="M986.879 611.21l-247.031 249.591c-22.153 21.757-52.546 35.188-86.077 35.188s-63.924-13.431-86.095-35.206l-474.845-476.765c-18.637-14.716-31.089-36.552-33.229-61.336l-59.567-342.489c-0.021-0.846-0.034-1.842-0.034-2.841 0-29.481 10.66-56.473 28.336-77.331 16.942-17.233 40.717-28.021 67.013-28.021 0.915 0 1.826 0.013 2.734 0.039l13.946-0.003 344.308 63.998c24.036 2.986 44.69 15.459 58.416 33.491l472.125 472.091c22.918 21.123 37.224 51.289 37.224 84.797 0 33.508-14.306 63.674-37.144 84.724zM448.018 27.551l-348.788-63.998 60.798 348.148 347.508 351.347 288.63-287.35zM922.881 507.534l-63.998-70.397-291.19 286.71 63.998 63.998c5.716 4.344 12.952 6.96 20.799 6.96s15.083-2.615 20.885-7.022l246.306-249.529c5.572-5.706 9.258-13.277 10.035-21.691 1.485 0.571-3.635-4.548-8.115-9.028z" horiz-adv-x="1024" />
<glyph glyph-name="background" unicode="&#58973;" d="M988.16 448h-568.32c-19.794 0-35.84-16.046-35.84-35.84 0 0 0 0 0 0v-504.32c0-19.794 16.046-35.84 35.84-35.84h568.96c0 0 0 0 0 0 19.794 0 35.84 16.046 35.84 35.84 0 0 0 0 0 0v504.32c0 0.002 0 0.004 0 0.006 0 19.794-16.046 35.84-35.84 35.84-0.225 0-0.45-0.002-0.674-0.006zM664.32 283.52c-1.074-43.349-36.469-78.080-79.977-78.080-44.183 0-80 35.817-80 80 0 44.175 35.804 79.987 79.976 80 44.338-0.719 80.004-36.829 80.004-81.27 0-0.229-0.001-0.457-0.003-0.685zM929.28-64h-467.84l131.2 205.44 85.12-133.12 177.28 298.24 104.96-178.56v-163.2c-1.040-16.12-14.369-28.8-30.66-28.8-0.021 0-0.042 0-0.063 0zM320 64h-96c-17.673 0-32-14.327-32-32s14.327-32 32-32h96zM320 256h-192c-35.346 0-64 28.654-64 64v448c0 35.346 28.654 64 64 64h640c35.346 0 64-28.654 64-64v-256h64v320c0 35.346-28.654 64-64 64h-768c-35.346 0-64-28.654-64-64v-576c0-35.346 28.654-64 64-64h256z" horiz-adv-x="1024" />
<glyph glyph-name="strikethrough" unicode="&#58892;" d="M994.56 224c-23.431-29.473-59.162-48.299-99.302-48.649-73.498 0.009-122.138 57.609-127.258 150.409h236.8v52.48h-236.8c7.68 92.8 58.24 150.4 132.48 150.4 35.063-0.422 66.321-16.357 87.286-41.248l28.554 35.488c-28.874 32.657-70.869 53.143-117.65 53.143-0.939 0-1.876-0.008-2.811-0.025-100.339 0.002-176.499-74.238-186.739-197.758h-100.48c26.76 17.48 44.197 47.29 44.197 81.173 0 0.938-0.013 1.873-0.040 2.804 0.003 76.023-59.517 105.463-146.557 105.463h-128v-192h-110.72l-64 192h-58.88l-64-192h-58.24v-52.48h41.6l-64-192h54.4l41.6 136.32h155.52l40.32-131.84h56.96l-64 192h95.36v-192h135.68c95.36 0 161.28 41.6 161.28 128 0.031 0.938 0.048 2.041 0.048 3.148 0 22.888-7.462 44.033-20.087 61.134l52.679-0.282c9.6-126.080 84.48-199.68 186.24-199.68 52.305 0.631 98.632 25.674 128.197 64.243zM433.92 524.8h64c64 0 100.48-18.56 100.48-69.76s-28.16-71.040-101.12-71.040h-64zM172.16 524.8c14.080-49.92 26.88-96.64 42.88-145.28h-87.040c17.28 47.36 31.36 93.44 44.16 144zM236.16 312.32h-128l4.48 14.72h120.96zM620.16 264.96c0-58.24-42.88-85.12-115.84-85.12h-70.4v145.92h154.88c21.122-10.749 35.339-32.326 35.339-57.224 0-1.484-0.050-2.955-0.15-4.414z" horiz-adv-x="1024" />
<glyph glyph-name="spechars" unicode="&#58883;" d="M954.24-128l-158.72 160c-74.993-63.304-172.734-101.779-279.462-101.779-1.427 0-2.852 0.007-4.275 0.021-2.434-0.062-5.559-0.096-8.691-0.096-105.177 0-201.348 38.558-275.15 102.309l-158.182-160.455-69.76 72.32 160.64 155.52c-60.013 78.679-96.281 178.281-96.653 286.339-0.087 1.262-0.144 5.312-0.144 9.374 0 103.089 36.542 197.643 97.38 271.415l-161.223 156.712 69.76 72.32 158.72-160c77.817 61.889 177.407 99.439 285.753 99.854-0.643 0.007 1.234 0.019 3.114 0.019 105.383 0 201.953-37.734 276.935-100.428l159.958 160.555 69.76-72.32-161.92-157.44c61.004-73.69 98.013-169.18 98.013-273.313 0-3.139-0.034-6.27-0.101-9.393 0.012-0.237 0.014-1.069 0.014-1.901 0-106.863-37.416-204.987-99.861-281.987l163.855-155.326zM512 736c-2.049 0.045-4.464 0.070-6.885 0.070-95.58 0-181.874-39.758-243.247-103.638-62.592-62.161-101.269-148.112-101.269-243.098 0-1.876 0.015-3.748 0.045-5.617-0.010-0.497-0.014-1.417-0.014-2.338 0-96.943 40.213-184.494 104.868-246.882 62.121-65.122 149.43-105.554 246.182-105.554 96.752 0 184.061 40.432 245.952 105.321 64.513 62.767 104.458 150.238 104.458 247.038 0 0.948-0.004 1.895-0.011 2.842 0.048 1.936 0.074 4.389 0.074 6.847 0 95.909-40.57 182.342-105.486 243.074-61.899 63.002-147.752 101.939-242.699 101.939-0.692 0-1.384-0.002-2.075-0.006z" horiz-adv-x="1024" />
<glyph glyph-name="clearboard" unicode="&#58932;" d="M704 768v128h-384v-128h-320v-64h64v-832h896v832h64v64zM384 832h256v-64h-256zM320-64h-192v576h192zM640-64h-256v576h256zM896-64h-192v576h192zM896 576h-768v128h768z" horiz-adv-x="1024" />
<glyph glyph-name="bold" unicode="&#58884;" d="M876.8 185.60000000000002c-6.4 51.2-25.6 102.4-57.6 140.8-32 38.4-83.2 70.4-128 76.8 44.8 12.8 76.8 38.4 102.4 76.8 32 38.4 38.4 83.2 38.4 134.4 0 57.6-25.6 121.6-70.4 166.4C710.4 819.2 640 832 576 832H192v-896h384c76.8-6.4 140.8 12.8 211.2 51.2 57.6 44.8 96 121.6 89.6 198.4zM288 742.4h262.4c44.8 0 96-6.4 134.4-38.4 32-25.6 51.2-57.6 44.8-96 0-44.8-12.8-83.2-44.8-115.2-38.4-32-89.6-44.8-134.4-38.4H288V742.4zM768 192c0-51.2-25.6-102.4-70.4-134.4-44.8-25.6-89.6-38.4-140.8-38.4H288V352h275.2c51.2 0 102.4-6.4 147.2-38.4 44.8-25.6 64-76.8 57.6-121.6z" horiz-adv-x="1024" />
<glyph glyph-name="fullscreen" unicode="&#58966;" d="M960 896h-896c-35.346 0-64-28.654-64-64v-704c0-35.346 28.654-64 64-64h320v-128h-96c-17.673 0-32-14.327-32-32s14.327-32 32-32h448c17.673 0 32 14.327 32 32s-14.327 32-32 32h-96v128h320c35.346 0 64 28.654 64 64v704c0 35.346-28.654 64-64 64zM576-64h-128v128h128zM960 192c0-35.346-28.654-64-64-64h-768c-35.346 0-64 28.654-64 64v576c0 35.346 28.654 64 64 64h768c35.346 0 64-28.654 64-64z" horiz-adv-x="1024" />
<glyph glyph-name="formatmatch" unicode="&#58893;" d="M128 448v-448l108.8 300.8L396.8 0H896V448zM128 640h768v-64H128zM384 768h256v-128H384z" horiz-adv-x="1024" />
<glyph glyph-name="underline" unicode="&#58885;" d="M192 0h640v-64H192zM704 832v-384c0-102.4-83.2-192-192-192-102.4 0-192 83.2-192 192V832H192v-384c0-179.2 147.2-320 320-320s320 147.2 320 320V832h-128z" horiz-adv-x="1024" />
<glyph glyph-name="removeformat" unicode="&#58894;" d="M682.88 832l-682.88-704 170.88-192h398.080l455.040 512zM528 64h-288l-48 56.96 192 227.2 192-227.84z" horiz-adv-x="1024" />
<glyph glyph-name="blockquote" unicode="&#58895;" d="M401.92 1.7279999999999518v292.48H248.064c-7.36 187.392 65.92 344.96 219.648 472.448L401.856 834.112C218.88 706.56 127.36 511.616 127.36 249.27999999999997v-247.552h274.56z m428.16 0v292.48h-153.728c-7.36 187.392 65.92 344.96 219.648 472.448L830.08 834.112c-182.976-127.616-274.432-322.496-274.432-584.832v-247.552h274.496z" horiz-adv-x="1024" />
<glyph glyph-name="anchor" unicode="&#58904;" d="M722.56 227.84l76.8-72.32c-69.066-57.593-157.186-94.491-253.698-100.167l30.338 404.167c75.21 27.154 128 97.922 128 181.019 0 106.039-85.961 192-192 192-106.039 0-192-85.961-192-192 0-83.098 52.79-153.865 126.663-180.597l1.337-400.423c-96.583 9.193-182.742 47.773-250.98 106.575l101.86 61.745-298.88 42.88 45.44-280.96 79.36 74.24c103.19-79.877 234.444-128.040 376.947-128.040 2.48 0 4.957 0.015 7.43 0.044 2.030-0.038 4.87-0.058 7.715-0.058 142.963 0 274.192 50.241 376.992 134.031l85.956-82.776 44.16 283.52zM384 640c0 70.692 57.308 128 128 128s128-57.308 128-128c0-70.692-57.308-128-128-128-70.692 0-128 57.308-128 128z" horiz-adv-x="1024" />
<glyph glyph-name="help" unicode="&#58905;" d="M512 896c-282.77 0-512-229.23-512-512s229.23-512 512-512c282.77 0 512 229.23 512 512 0 282.77-229.23 512-512 512zM512-64c-247.424 0-448 200.576-448 448s200.576 448 448 448c247.424 0 448-200.576 448-448 0-247.424-200.576-448-448-448zM512 256h-64v27.52c4.886 52.070 35.44 96.057 78.726 119.583q60.794 45.537 60.794 88.417c-3.36 32.484-30.587 57.601-63.679 57.601-0.113 0-0.225-0-0.338-0.001q-76.783 0-95.343-87.68l-108.16 20.48c15.836 91.427 94.565 160.079 189.328 160.079 9.749 0 19.329-0.727 28.687-2.129q152.545-7.55 165.985-135.55c-0.314-62.091-36.817-115.582-89.483-140.485-79.833-53.479-142.936-124.653-185.13-208.189zM448 192h128v-128h-128z" horiz-adv-x="1024" />
<glyph glyph-name="horizontal" unicode="&#58936;" d="M0 448h1024v-128h-1024z" horiz-adv-x="1024" />
<glyph glyph-name="simpleupload" unicode="&#58906;" d="M128 64l160 320 160-320h-320zM514.56 64l254.72 512 254.72-512h-509.44zM960 832h-896c-35.346 0-64-28.654-64-64v-768c0-35.346 28.654-64 64-64h896c35.346 0 64 28.654 64 64v768c0 35.346-28.654 64-64 64zM960 64c0-35.346-28.654-64-64-64h-768c-35.346 0-64 28.654-64 64v640c0 35.346 28.654 64 64 64h768c35.346 0 64-28.654 64-64z" horiz-adv-x="1024" />
<glyph glyph-name="indent" unicode="&#58907;" d="M896 480L768 576v-384l128 96L1024 384zM32 768h960c19.2 0 32 12.8 32 32s-12.8 32-32 32H32c-19.2 0-32-12.8-32-32s12.8-32 32-32zM32-64h960c19.2 0 32 12.8 32 32s-12.8 32-32 32H32c-19.2 0-32-12.8-32-32s12.8-32 32-32zM64 448h512c32 0 64 25.6 64 64 0 32-25.6 64-64 64H64c-38.4 0-64-25.6-64-64s25.6-64 64-64zM64 192h512c32 0 64 25.6 64 64 0 32-25.6 64-64 64H64c-32 0-64-25.6-64-64s25.6-64 64-64z" horiz-adv-x="1024" />
<glyph glyph-name="justifycenter" unicode="&#58908;" d="M992 832H32C12.8 832 0 844.8 0 864S12.8 896 32 896h960c19.2 0 32-12.8 32-32s-12.8-32-32-32zM800 640h-576c-19.2 0-32 12.8-32 32s12.8 32 32 32h576c19.2 0 32-12.8 32-32s-12.8-32-32-32zM992 448H32C12.8 448 0 460.8 0 480S12.8 512 32 512h960c19.2 0 32-12.8 32-32s-12.8-32-32-32zM800 256h-576c-19.2 0-32 12.8-32 32s12.8 32 32 32h576c19.2 0 32-12.8 32-32s-12.8-32-32-32zM992 64H32c-19.2 0-32 12.8-32 32s12.8 32 32 32h960c19.2 0 32-12.8 32-32s-12.8-32-32-32zM800-128h-576c-19.2 0-32 12.8-32 32s12.8 32 32 32h576c19.2 0 32-12.8 32-32s-12.8-32-32-32zM992 448H32C12.8 448 0 460.8 0 480S12.8 512 32 512h960c19.2 0 32-12.8 32-32s-12.8-32-32-32zM800 256h-576c-19.2 0-32 12.8-32 32s12.8 32 32 32h576c19.2 0 32-12.8 32-32s-12.8-32-32-32z" horiz-adv-x="1024" />
<glyph glyph-name="justifyleft" unicode="&#58909;" d="M992 832H32C12.8 832 0 844.8 0 864S12.8 896 32 896h960c19.2 0 32-12.8 32-32s-12.8-32-32-32zM608 640h-576C12.8 640 0 652.8 0 672S12.8 704 32 704h576c19.2 0 32-12.8 32-32s-12.8-32-32-32zM992 448H32C12.8 448 0 460.8 0 480S12.8 512 32 512h960c19.2 0 32-12.8 32-32s-12.8-32-32-32zM992 64H32c-19.2 0-32 12.8-32 32s12.8 32 32 32h960c19.2 0 32-12.8 32-32s-12.8-32-32-32zM608-128h-576c-19.2 0-32 12.8-32 32s12.8 32 32 32h576c19.2 0 32-12.8 32-32s-12.8-32-32-32zM992 448H32C12.8 448 0 460.8 0 480S12.8 512 32 512h960c19.2 0 32-12.8 32-32s-12.8-32-32-32zM608 256h-576c-19.2 0-32 12.8-32 32S12.8 320 32 320h576c19.2 0 32-12.8 32-32s-12.8-32-32-32z" horiz-adv-x="1024" />
<glyph glyph-name="justifyjustify" unicode="&#58910;" d="M992 832H32C12.8 832 0 844.8 0 864S12.8 896 32 896h960c19.2 0 32-12.8 32-32s-12.8-32-32-32zM992 640H32C12.8 640 0 652.8 0 672S12.8 704 32 704h960c19.2 0 32-12.8 32-32s-12.8-32-32-32zM992 448H32C12.8 448 0 460.8 0 480S12.8 512 32 512h960c19.2 0 32-12.8 32-32s-12.8-32-32-32zM992 64H32c-19.2 0-32 12.8-32 32s12.8 32 32 32h960c19.2 0 32-12.8 32-32s-12.8-32-32-32zM992-128H32c-19.2 0-32 12.8-32 32s12.8 32 32 32h960c19.2 0 32-12.8 32-32s-12.8-32-32-32zM992 448H32C12.8 448 0 460.8 0 480S12.8 512 32 512h960c19.2 0 32-12.8 32-32s-12.8-32-32-32zM992 256H32c-19.2 0-32 12.8-32 32S12.8 320 32 320h960c19.2 0 32-12.8 32-32s-12.8-32-32-32z" horiz-adv-x="1024" />
<glyph glyph-name="justifyright" unicode="&#58911;" d="M992 832H32C12.8 832 0 844.8 0 864S12.8 896 32 896h960c19.2 0 32-12.8 32-32s-12.8-32-32-32zM992 640h-576c-19.2 0-32 12.8-32 32s12.8 32 32 32h576c19.2 0 32-12.8 32-32s-12.8-32-32-32zM992 448H32C12.8 448 0 460.8 0 480S12.8 512 32 512h960c19.2 0 32-12.8 32-32s-12.8-32-32-32zM992 64H32c-19.2 0-32 12.8-32 32s12.8 32 32 32h960c19.2 0 32-12.8 32-32s-12.8-32-32-32zM992-128h-576c-19.2 0-32 12.8-32 32s12.8 32 32 32h576c19.2 0 32-12.8 32-32s-12.8-32-32-32zM992 448H32C12.8 448 0 460.8 0 480S12.8 512 32 512h960c19.2 0 32-12.8 32-32s-12.8-32-32-32zM992 256h-576c-19.2 0-32 12.8-32 32s12.8 32 32 32h576c19.2 0 32-12.8 32-32s-12.8-32-32-32z" horiz-adv-x="1024" />
<glyph glyph-name="link" unicode="&#58912;" d="M759.040 128v124.16c73.167 0 132.48 59.313 132.48 132.48 0 73.167-59.313 132.48-132.48 132.48l-150.4-0c-0.384 0.004-0.839 0.006-1.294 0.006-73.908 0-133.948-59.373-135.025-133.025l-128.001-0.101c2.862 142.002 118.651 256.020 261.070 256.020 1.143 0 2.284-0.007 3.423-0.022l150.227 0.002c1.157 0.018 2.522 0.029 3.89 0.029 142.422 0 258.213-114.023 261.066-255.763-2.853-142.272-118.644-256.295-261.066-256.295-1.368 0-2.733 0.011-4.095 0.031zM415.36 128h-150.4c-1.157-0.018-2.522-0.029-3.89-0.029-142.422 0-258.213 114.023-261.066 255.763 2.853 142.272 118.644 256.295 261.066 256.295 1.368 0 2.733-0.011 4.095-0.031l-0.206-124.158c-0 0-0 0-0 0-73.167 0-132.48-59.313-132.48-132.48 0-73.167 59.313-132.48 132.48-132.48 0 0 0 0 0 0h150.4c0.575-0.009 1.254-0.014 1.933-0.014 73.91 0 133.952 59.378 135.025 133.033l128.001 0.101c-2.857-142.006-118.648-256.029-261.070-256.029-1.368 0-2.733 0.011-4.095 0.031z" horiz-adv-x="1024" />
<glyph glyph-name="cleardoc" unicode="&#58913;" d="M895.91 639.939h-191.955v199.633c-3.964 31.88-30.89 56.308-63.523 56.308-0.162 0-0.325-0.001-0.487-0.002l-502.257 0c-1.216 0.076-2.637 0.119-4.068 0.119-36.533 0-66.506-28.090-69.498-63.85l-0.017-896.043c3.010-36.014 32.982-64.104 69.515-64.104 1.431 0 2.852 0.043 4.261 0.128l748.43-0.009c1.216-0.076 2.637-0.119 4.068-0.119 36.533 0 66.506 28.090 69.498 63.85l0.017 647.142c-3.664 32.179-30.738 56.948-63.597 56.948-0.136 0-0.273-0-0.409-0.001zM895.91-55.577c-0-4.594-3.724-8.318-8.318-8.318h-749.903c-5.301 0-9.598 4.297-9.598 9.598 0 0 0 0 0 0v877.873c0 4.594 3.724 8.318 8.318 8.318h491.404c0.196 0.012 0.426 0.019 0.657 0.019 6.142 0 11.162-4.808 11.499-10.866l0.001-191.985c3.573-30.12 28.96-53.257 59.75-53.257 1.49 0 2.968 0.054 4.431 0.161l180.242-0.011c0.196 0.012 0.426 0.019 0.657 0.019 6.142 0 11.162-4.808 11.499-10.866l0.001-620.684z" horiz-adv-x="1024" />
<glyph glyph-name="drafts" unicode="&#58896;" d="M832 576v160c0 17.673-14.327 32-32 32h-224v64c0 35.346-28.654 64-64 64h-128c-35.346 0-64-28.654-64-64v-64h-224c-17.673 0-32-14.327-32-32v-640c0-17.673 14.327-32 32-32h288v-192h448l192 192v512zM384 832h128v-64h-128zM192 704h512v-64h-512zM832-37.76v101.76h101.76zM960 128h-192v-192h-320v576h512z" horiz-adv-x="1024" />
<glyph glyph-name="subscript" unicode="&#58897;" d="M716.8 76.79999999999995v29.696c0 99.328 160.256 135.68 160.256 179.2 0 16.896-10.752 27.136-32.768 27.136a116.736 116.736 0 0 1-74.24-35.84l-47.104 51.2A170.496 170.496 0 0 0 852.992 384c76.288 0 119.808-40.448 119.808-93.184 0-74.752-95.232-94.72-142.848-141.312H972.8V76.79999999999995zM72.192 175.61599999999999l494.592 494.592a56.832 56.832 0 0 0 78.848 8.704l7.68-7.68a56.832 56.832 0 0 0-8.704-78.848l-494.592-494.592a56.832 56.832 0 0 0-78.848-8.704l-7.68 7.68a56.832 56.832 0 0 0 8.704 78.848zM566.784 97.79200000000003L72.192 592.384a56.832 56.832 0 0 0-8.704 78.848l7.68 7.68a56.832 56.832 0 0 0 78.848-8.704l494.592-494.592a56.832 56.832 0 0 0 8.704-78.848l-7.68-7.68a56.832 56.832 0 0 0-78.848 8.704z" horiz-adv-x="1024" />
<glyph glyph-name="unlink" unicode="&#58914;" d="M539.417 447.988v127.976c1.652-0.102 3.582-0.16 5.526-0.16 49.558 0 90.285 37.811 94.905 86.159l0.030 19.581c-4.65 48.732-45.377 86.544-94.935 86.544-1.944 0-3.874-0.058-5.789-0.173l-310.717 0.013c-1.652 0.102-3.582 0.16-5.526 0.16-49.558 0-90.285-37.811-94.905-86.159l-0.030-18.942c4.338-49.025 45.209-87.18 94.992-87.18 1.924 0 3.835 0.057 5.73 0.169l-0.261-127.988c-1.945-0.061-4.233-0.096-6.528-0.096-119.961 0-217.703 95.133-221.897 214.072l-0.011 19.58c4.205 119.322 101.947 214.455 221.908 214.455 2.296 0 4.583-0.035 6.862-0.104l310.647 0.008c1.945 0.061 4.233 0.096 6.528 0.096 119.961 0 217.703-95.133 221.897-214.072l0.011-18.94c-3.859-119.604-101.743-215.094-221.929-215.094-2.288 0-4.568 0.035-6.84 0.103zM795.368-127.902h-310.981c-1.945-0.061-4.233-0.096-6.528-0.096-119.961 0-217.703 95.133-221.897 214.072l-0.011 18.94c3.859 119.604 101.743 215.094 221.929 215.094 2.288 0 4.568-0.035 6.84-0.103l-0.333-127.968c-1.652 0.102-3.582 0.16-5.526 0.16-49.558 0-90.285-37.811-94.905-86.159l-0.030-18.942c4.338-49.025 45.209-87.18 94.992-87.18 1.924 0 3.835 0.057 5.73 0.169l311.359-0.012c1.46-0.080 3.169-0.125 4.889-0.125 49.546 0 90.265 37.792 94.902 86.123l0.030 18.943c-4.338 49.025-45.209 87.18-94.992 87.18-1.924 0-3.835-0.057-5.73-0.169l0.261 127.988c1.945 0.061 4.233 0.096 6.528 0.096 119.961 0 217.703-95.133 221.897-214.072l0.011-18.94c-3.859-119.604-101.743-215.094-221.929-215.094-2.288 0-4.568 0.035-6.84 0.103z" horiz-adv-x="1024" />
<glyph glyph-name="superscript" unicode="&#58898;" d="M716.8 384v29.696c0 99.328 160.256 135.68 160.256 179.2 0 16.896-10.752 27.136-32.768 27.136a116.736 116.736 0 0 1-74.24-35.84l-47.104 51.2A170.496 170.496 0 0 0 852.992 691.2C929.28 691.2 972.8 650.752 972.8 598.0160000000001c0-74.752-95.232-94.72-142.848-141.312H972.8V384zM72.192 175.61599999999999l494.592 494.592a56.832 56.832 0 0 0 78.848 8.704l7.68-7.68a56.832 56.832 0 0 0-8.704-78.848l-494.592-494.592a56.832 56.832 0 0 0-78.848-8.704l-7.68 7.68a56.832 56.832 0 0 0 8.704 78.848zM566.784 97.79200000000003L72.192 592.384a56.832 56.832 0 0 0-8.704 78.848l7.68 7.68a56.832 56.832 0 0 0 78.848-8.704l494.592-494.592a56.832 56.832 0 0 0 8.704-78.848l-7.68-7.68a56.832 56.832 0 0 0-78.848 8.704z" horiz-adv-x="1024" />
<glyph glyph-name="forecolor" unicode="&#58938;" d="M588.8 832H428.8L192 128h108.8l57.6 166.4h275.2l57.6-166.4H832L588.8 832zM390.4 396.8l102.4 313.6 102.4-313.6H390.4zM192 0h640v-64H192z" horiz-adv-x="1024" />
<glyph glyph-name="backcolor" unicode="&#58965;" d="M910.594 232.538s-105.392-190.467-105.392-246.973c-0.202-2.447-0.317-5.297-0.317-8.174 0-58.206 47.186-105.392 105.392-105.392 58.206 0 105.392 47.186 105.392 105.392 0 2.877-0.115 5.727-0.341 8.545 0.659 58.674-104.733 246.601-104.733 246.601zM412.839 795.052l-24.126-26.031-121.899 126.978-97.138-100.313 121.899-126.978-291.415-299.034 412.679-426.012 412.679 426.012zM138.566 369.675l275.543 283.797 274.908-283.797z" horiz-adv-x="1024" />
<glyph glyph-name="touppercase" unicode="&#58915;" d="M295.68 768l-295.68-768h113.28l74.24 192h328.96l71.040-192h116.48l-295.68 768zM242.56 320l92.16 250.88c11.787 26.52 19.084 57.373 20.096 89.81 0.577-50.126 8.010-77.346 19.81-102.083l86.814-238.607zM996.48 83.84v115.84q1.92 120.32-131.2 120.32t-152.32-92.16l67.84-17.92q8.32 55.68 82.56 51.84t64-53.76c-27.154-12.564-58.932-19.893-92.421-19.893-1.709 0-3.413 0.019-5.112 0.057q-122.627-12.164-127.747-101.764t118.4-86.4c3.66-0.341 7.916-0.536 12.216-0.536 40.397 0 76.785 17.169 102.263 44.608 0.399-15.437 7.943-29.137 19.476-37.823l69.565 0.151c-17.207 18.277-27.781 42.967-27.781 70.127 0 2.573 0.095 5.124 0.281 7.65zM926.72 128q-6.4-64-95.36-71.68-56.96 0-55.040 32t67.84 44.16c0.513-0.006 1.118-0.010 1.724-0.010 30.022 0 57.98 8.834 81.418 24.044zM949.76 512h74.24c-15.36 106.88-232.32 128-311.040 128v128l-200.96-160 200.32-160v120.96c2.461 0.045 5.363 0.070 8.271 0.070 83.861 0 162.791-21.112 231.766-58.31z" horiz-adv-x="1024" />
<glyph glyph-name="tolowercase" unicode="&#58916;" d="M295.68 768l-295.68-768h113.28l74.24 192h328.96l71.040-192h116.48l-295.68 768zM242.56 320l92.16 250.88c11.787 26.52 19.084 57.373 20.096 89.81 0.577-50.126 8.010-77.346 19.81-102.083l86.814-238.607zM996.48 83.84v115.84q1.92 120.32-131.2 120.32t-152.32-92.16l67.84-17.92q8.32 55.68 82.56 51.84t64-53.76c-27.154-12.564-58.932-19.893-92.421-19.893-1.709 0-3.413 0.019-5.112 0.057q-122.627-12.164-127.747-101.764t118.4-86.4c3.66-0.341 7.916-0.536 12.216-0.536 40.397 0 76.785 17.169 102.263 44.608 0.399-15.437 7.943-29.137 19.476-37.823l69.565 0.151c-17.207 18.277-27.781 42.967-27.781 70.127 0 2.573 0.095 5.124 0.281 7.65zM926.72 128q-6.4-64-95.36-71.68-56.96 0-55.040 32t67.84 44.16c0.513-0.006 1.118-0.010 1.724-0.010 30.022 0 57.98 8.834 81.418 24.044zM586.24 512h-74.24c15.36 106.88 232.32 128 311.040 128v128l200.96-160-200.96-160v120.96c-2.276 0.038-4.96 0.060-7.65 0.060-83.854 0-162.777-21.108-231.747-58.3z" horiz-adv-x="1024" />
<glyph glyph-name="insertvideo" unicode="&#58919;" d="M384 128l256 256-256 256v-512zM960 832h-896c-35.346 0-64-28.654-64-64v-768c0-35.346 28.654-64 64-64h896c35.346 0 64 28.654 64 64v768c0 35.346-28.654 64-64 64zM960 0h-896v768h896z" horiz-adv-x="1024" />
<glyph glyph-name="emotion" unicode="&#58886;" d="M512 896c-282.77 0-512-229.23-512-512s229.23-512 512-512c282.77 0 512 229.23 512 512 0 282.77-229.23 512-512 512zM512-64c-247.424 0-448 200.576-448 448s200.576 448 448 448c247.424 0 448-200.576 448-448 0-247.424-200.576-448-448-448zM256 512c0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64zM640 512c0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64zM512 64c141.385 0 256 114.615 256 256h-512c0-141.385 114.615-256 256-256z" horiz-adv-x="1024" />
<glyph glyph-name="pasteplain" unicode="&#58899;" d="M640 640v128h-64v64c0 35.346-28.654 64-64 64h-192c-35.346 0-64-28.654-64-64v-64h-64v-128zM320 832h192v-64h-192zM832 512v224c-0.704 17.824-15.323 32.007-33.256 32.007-0.234 0-0.467-0.002-0.699-0.007l-94.045 0.001v-64h64v-64h-64v-64h-576v192h-94.080c-0.198 0.004-0.431 0.007-0.664 0.007-17.932 0-32.552-14.183-33.254-31.943l-0.002-736.064h384v-128h640v640zM448-64v512h512v-512zM576 320h320v-64h-320zM704 256h64v-256h-64zM704 704h64v-128h-64z" horiz-adv-x="1024" />
<glyph glyph-name="preview" unicode="&#58939;" d="M895.91 639.939h-191.955v199.633c-3.964 31.88-30.89 56.308-63.523 56.308-0.162 0-0.325-0.001-0.487-0.002l-502.257 0c-1.216 0.076-2.637 0.119-4.068 0.119-36.533 0-66.506-28.090-69.498-63.85l-0.017-896.043c3.010-36.014 32.982-64.104 69.515-64.104 1.431 0 2.852 0.043 4.261 0.128l748.43-0.009c1.216-0.076 2.637-0.119 4.068-0.119 36.533 0 66.506 28.090 69.498 63.85l0.017 647.142c-3.664 32.179-30.738 56.948-63.597 56.948-0.136 0-0.273-0-0.409-0.001zM895.91-55.577c-0-4.594-3.724-8.318-8.318-8.318h-749.903c-5.301 0-9.598 4.297-9.598 9.598 0 0 0 0 0 0v877.873c0 4.594 3.724 8.318 8.318 8.318h491.404c0.196 0.012 0.426 0.019 0.657 0.019 6.142 0 11.162-4.808 11.499-10.866l0.001-191.985c3.573-30.12 28.96-53.257 59.75-53.257 1.49 0 2.968 0.054 4.431 0.161l180.242-0.011c0.196 0.012 0.426 0.019 0.657 0.019 6.142 0 11.162-4.808 11.499-10.866l0.001-620.684zM767.94 45.519l-173.399 172.759c11.267 14.903 21.003 31.929 28.429 50.141l99.541-268.33zM256.060 352.007c-0 88.345 71.618 159.962 159.962 159.962s159.962-71.618 159.962-159.962c0-88.345-71.618-159.962-159.962-159.962-88.345 0-159.962 71.618-159.962 159.962z" horiz-adv-x="1024" />
<glyph glyph-name="print" unicode="&#58940;" d="M320.006 448h384v-64h-384zM320.006 320h384v-64h-384zM988.806 716.8h-156.8v179.2h-640v-179.2h-156.8c-0.002 0-0.004 0-0.006 0-19.44 0-35.2-15.76-35.2-35.2 0-0.225 0.002-0.45 0.006-0.674l-0-443.486h192v-45.44l256-256h384v301.44h192v311.68c0.032 0.574 0.051 1.245 0.051 1.92s-0.018 1.346-0.055 2.013l0.004 127.907c0.004 0.19 0.006 0.415 0.006 0.64 0 19.44-15.76 35.2-35.2 35.2-0.002 0-0.004-0-0.006-0zM256.006 832h512v-115.2h-512zM896.006 320h-56.96v120.32h-71.040v-440.32h-296.96v199.040h-215.040v241.28h-68.48v-120.32h-59.52v192h768zM928.006 594.56c-0.19-0.004-0.415-0.006-0.64-0.006-18.027 0-32.64 14.613-32.64 32.64 0 18.027 14.613 32.64 32.64 32.64 18.024 0 32.636-14.61 32.64-32.633 0.004-0.191 0.006-0.415 0.006-0.64 0-17.673-14.327-32-32-32-0.002 0-0.005 0-0.007 0z" horiz-adv-x="1024" />
<glyph glyph-name="selectall" unicode="&#58900;" d="M184.32 782.080l113.92 113.92h-40.32l-113.92-113.92h40.32zM113.92 752l-113.92-113.92v-40.32l113.92 113.92v40.32zM144 896l-144-144v-40.32l184.32 184.32h-40.32zM30.72 896l-30.72-30.72v-40.32l71.040 71.040h-40.32zM527.36 782.080l113.92 113.92h-40.32l-113.28-113.92h39.68zM113.92 408.32l-113.92-113.28v-40.32l113.92 113.92v39.68zM113.92 522.24l-113.92-113.92v-39.68l113.92 113.28v40.32zM414.080 782.080l113.28 113.92h-39.68l-113.92-113.92h40.32zM300.16 782.080l113.92 113.92h-40.32l-113.92-113.92h40.32zM113.92 636.16l-113.92-113.92v-40.32l113.92 113.92v40.32zM113.92 60.8l-113.92-113.28v-40.32l113.92 113.28v40.32zM875.52 782.080l113.28 113.92h-40.32l-113.28-113.92h40.32zM113.92 174.72l-113.92-113.92v-40.32l113.92 113.92v40.32zM761.6 782.080l113.92 113.92h-40.32l-113.92-113.92h40.32zM113.92 288.64l-113.92-113.92v-40.32l113.92 113.92v40.32zM647.68 782.080l113.92 113.92h-40.32l-113.92-113.92h40.32zM910.080 476.8l113.92 113.92v40.32l-113.92-113.92v-40.32zM378.88-14.080l-113.92-113.92h40.32l113.92 113.92h-40.32zM910.080 590.72l113.92 113.28v40.32l-113.92-113.28v-40.32zM264.96-14.080l-113.28-113.92h40.32l113.28 113.92h-40.32zM151.68-14.080l-113.92-113.92h40.32l113.92 113.92h-40.32zM910.080 744.32v-40.32l113.92 113.92v40.32l-113.92-113.92zM910.080 136.96l113.92 113.92v40.32l-113.92-113.92v-40.32zM718.72-14.080l-113.92-113.92h40.32l113.92 113.92h-40.32zM910.080 250.88l113.92 113.92v40.32l-113.92-113.92v-40.32zM604.8-14.080l-113.92-113.92h40.32l113.92 113.92h-40.32zM490.88-14.080l-113.92-113.92h40.32l113.92 113.92h-40.32zM910.080 364.8l113.92 113.92v40.32l-113.92-113.92v-40.32zM988.16-128l35.84 35.84v40.32l-76.16-76.16h40.32zM874.24-128l149.76 149.76v40.32l-190.080-190.080h40.32zM833.92-14.080l-113.28-113.92h39.68l113.92 113.92h-40.32zM910.080 21.76l113.92 113.92v39.68l-113.92-113.28v-40.32zM256 265.6q7.040-137.6 186.24-137.6c5.836-0.542 12.621-0.851 19.478-0.851 64.527 0 122.663 27.362 163.439 71.117 0.443-24.781 12.479-46.819 30.964-60.763l111.879 0.097c-27.64 29.266-44.63 68.846-44.63 112.395 0 4.366 0.171 8.692 0.506 12.971l-0.036 185.034q3.2 192-211.84 192t-242.56-147.2l108.8-28.8q13.44 89.6 133.76 83.2 112 6.4 101.76-86.4c-43.614-20.262-94.671-32.082-148.489-32.082-2.697 0-5.387 0.030-8.070 0.089q-198-19.207-201.2-163.207zM611.84 377.6v-44.8q-10.24-105.6-152.32-115.2-91.52 0-88.32 51.2-6.4 60.8 108.8 70.4c0.479-0.003 1.045-0.005 1.611-0.005 48.398 0 93.45 14.326 131.147 38.969z" horiz-adv-x="1024" />
<glyph glyph-name="mergecells" unicode="&#58941;" d="M0 896v-1024h1024v1024zM320-64h-256v256h256zM320 256h-256v256h256zM320 576h-256v256h256zM384 832h256v-256h-256zM960-64h-576v576h576zM960 576h-256v256h256z" horiz-adv-x="1024" />
<glyph glyph-name="deletecol" unicode="&#58942;" d="M1024 588.16v307.84h-256v-576h256zM832 640v192h128v-192zM832 384v192h128v-192zM448 588.16v307.84h-448v-576h448zM64 640v192h128v-192zM256 640v192h128v-192zM64 384v192h128v-192zM256 384v192h128v-192zM640 192v68.48l-69.76-68.48h69.76zM593.28 187.52zM640 384v-136.32l64 34.56v357.76h-192v-352l64-32v128zM576 448v128h64v-128zM734.72-128l96.64 92.8-127.36 122.24 128 122.88-96 92.16-32-19.84v-154.24h-192v160l-32 14.080-96-92.16 128-122.88-127.36-122.24 96-92.8 127.36 122.24 126.72-122.24zM512 192h76.8l-76.8 74.24v-74.24z" horiz-adv-x="1024" />
<glyph glyph-name="deleterow" unicode="&#58943;" d="M307.84 896h-307.84v-256h576v256zM256 704h-192v128h192zM512 704h-192v128h192zM307.84 320h-307.84v-448h576v448zM256-64h-192v128h192zM256 128h-192v128h192zM512-64h-192v128h192zM512 128h-192v128h192zM716.8 535.68h-68.48l68.48-70.4v70.4zM708.48 465.28zM520.96 551.040h128l-34.56 35.84h-358.4v-219.52h352l32 35.84h-119.040zM448 448h-131.84v64h131.84zM1024 607.36l-92.8 96-122.24-127.36-122.88 128-92.16-96 19.84-21.12h137.6v-219.52h-143.36l-14.080-15.36 92.16-96 122.88 128 122.24-127.36 92.8 96.64-122.24 126.72 122.24 127.36zM716.8 403.2v76.8l-74.24-76.8h74.24z" horiz-adv-x="1024" />
<glyph glyph-name="attachment" unicode="&#58920;" d="M972.16 523.52l-520.32-512c-40.168-39.518-95.315-63.917-156.16-63.917-60.845 0-115.992 24.399-156.19 63.947-40.076 39.269-64.939 93.994-64.939 154.525 0 60.216 24.604 114.685 64.307 153.904l468.502 460.822c26.767 26.283 63.489 42.507 104 42.507s77.233-16.224 104.022-42.529c26.612-26.227 43.112-62.696 43.112-103.018 0-40.323-16.5-76.791-43.117-103.023l-467.857-463.377c-13.401-13.236-31.826-21.411-52.16-21.411s-38.759 8.175-52.168 21.418c-13.309 13.117-21.559 31.351-21.559 51.513 0 20.161 8.25 38.396 21.558 51.511l416.649 411.529-51.84 51.2-416-411.52c-26.634-26.249-43.134-62.717-43.134-103.040s16.5-76.791 43.117-103.023c26.785-26.3 63.506-42.524 104.017-42.524 40.511 0 77.233 16.224 104.022 42.529l468.458 463.338c39.758 39.343 64.377 93.916 64.377 154.24s-24.619 114.897-64.358 154.222c-40.254 39.917-95.659 64.572-156.823 64.572-60.843 0-115.989-24.397-156.186-63.943l-491.49-488.931c-37.461-48.505-60.045-110.166-60.045-177.101 0-80.906 32.995-154.105 86.262-206.877 53.349-51.49 126.039-83.2 206.136-83.2 67.624 0 129.969 22.604 179.89 60.668l547.756 535.151-51.84 51.2z" horiz-adv-x="1024" />
<glyph glyph-name="music" unicode="&#58944;" d="M991.14 895.112h-7.673c-2.402 0.564-5.16 0.887-7.993 0.887s-5.591-0.323-8.239-0.935l-747.266-134.875c-15.608-1.932-27.64-14.874-28.137-30.724-0.026-0.447-0.041-1.006-0.041-1.568 0-0.562 0.015-1.121 0.046-1.676l-0.003-616.348c-18.531 11.177-40.89 17.823-64.795 17.91-69.781-0.006-127.038-57.264-127.038-127.895 0-70.631 57.258-127.889 127.889-127.889 70.631 0 127.889 57.258 127.889 127.889l-0 511.556c2.687-0.709 5.772-1.116 8.952-1.116s6.265 0.407 9.206 1.172l685.232 123.996v-457.203c-18.531 11.177-40.89 17.823-64.795 17.91-69.747-0.051-126.96-57.291-126.96-127.895 0-70.631 57.258-127.889 127.889-127.889 69.057 0 125.33 54.734 127.804 123.187l0.006 799.532c0 17.658-14.314 31.972-31.972 31.972z" horiz-adv-x="1024" />
<glyph glyph-name="gmap" unicode="&#58921;" d="M543.36 323.84h128v-144.64c-27.042-18.911-60.614-30.218-96.827-30.218-2.41 0-4.808 0.050-7.194 0.149-135.339-0.011-207.659 89.589-207.659 236.789s83.84 233.6 206.080 233.6c1.985 0.077 4.316 0.121 6.658 0.121 51.625 0 98.258-21.372 131.535-55.751l56.368 63.95c-48.672 47.215-115.142 76.321-188.411 76.321-3.288 0-6.562-0.059-9.822-0.175-2.247 0.102-5.444 0.153-8.653 0.153-164.713 0-298.24-133.527-298.24-298.24 0-7.707 0.292-15.345 0.866-22.905-0.061-201.235 127.939-318.995 303.939-318.995 2.993-0.105 6.51-0.164 10.041-0.164 75.665 0 144.927 27.412 198.397 72.848l-0.438 267.157h-224.64zM896 896h-768c-35.346 0-64-28.654-64-64v-896c0-35.346 28.654-64 64-64h768c35.346 0 64 28.654 64 64v896c0 35.346-28.654 64-64 64zM896 0c0-35.346-28.654-64-64-64h-640c-35.346 0-64 28.654-64 64v768c0 35.346 28.654 64 64 64h640c35.346 0 64-28.654 64-64z" horiz-adv-x="1024" />
<glyph glyph-name="insertframe" unicode="&#58949;" d="M448 512c-141.385 0-256-114.615-256-256s114.615-256 256-256c141.385 0 256 114.615 256 256 0 141.385-114.615 256-256 256zM643.84 341.12c11.26-25.164 17.818-54.536 17.818-85.44s-6.558-60.276-18.358-86.801l-96.099 1.361c4.638 25.688 7.29 55.254 7.29 85.44 0 30.186-2.652 59.752-7.736 88.479zM384 256c-0.006 0.936-0.009 2.043-0.009 3.15 0 28.938 2.331 57.331 6.815 85.002l114.795-3.032c4.079-24.639 6.409-53.032 6.409-81.97 0-1.108-0.003-2.214-0.010-3.32 0.007-0.766 0.010-1.872 0.010-2.98 0-28.938-2.331-57.331-6.815-85.002l-114.795 3.032c-4.079 24.639-6.409 53.032-6.409 81.97 0 1.108 0.003 2.214 0.010 3.32zM618.88 384h-81.28c-11.121 41.020-32.662 76.060-61.625 103.299 78.384-37.794 124.984-72.611 153.982-119.469zM448 448c19.2 0 35.84-24.96 48-64h-96c12.16 39.040 28.8 64 48 64zM398.080 463.36c-24.403-30.724-40.833-68.802-45.587-110.426l-75.373 31.066c33.569 44.293 83.219 74.881 140.108 83.067zM252.16 341.12h96c-4.638-25.688-7.29-55.254-7.29-85.44 0-30.186 2.652-59.752 7.736-88.479l-96.446 3.039c-11.26 25.164-17.818 54.536-17.818 85.44s6.558 60.276 18.358 86.801zM277.12 128h81.28c11.121-41.020 32.662-76.060 61.625-103.299-78.384 37.794-124.984 72.611-153.982 119.469zM448 64c-19.2 0-35.84 24.96-48 64h96c-12.16-39.040-28.8-64-48-64zM497.92 48.64c24.403 30.724 40.833 68.802 45.587 110.426l75.373-31.066c-33.569-44.293-83.219-74.881-140.108-83.067zM597.76 896h-533.76v-1024h896v693.76zM896 540.16v-604.16h-768v896h448v-256h320z" horiz-adv-x="1024" />
<glyph glyph-name="pdfformat" unicode="&#58927;" d="M597.76 896h-533.76v-1024h896v693.76zM896-64h-768v896h448v-291.2h320zM213.76 280.32h-47.36v-133.12h49.28c58.24 0 85.76 21.76 85.76 69.76s-30.72 63.36-87.68 63.36zM486.4 273.92h-32.64v-268.8h32.64c77.44 0 119.040 45.44 119.040 135.68s-40.96 133.12-119.040 133.12zM64 448v-576h874.24v576zM239.36 95.36h-54.4v-136.96h-56.96v361.6h109.44c82.56 0 138.24-27.52 138.24-108.8s-55.68-115.84-136.32-115.84zM495.36-41.6h-98.56v361.6h93.44c5.013 0.56 10.826 0.879 16.713 0.879 88.012 0 159.36-71.348 159.36-159.36 0-7.305-0.492-14.496-1.443-21.54 1.076-5.861 1.638-13.575 1.638-21.42 0-88.719-71.921-160.64-160.64-160.64-4.374 0-8.707 0.175-12.992 0.518zM906.88 272h-158.72v-110.72h133.76v-48h-133.76v-155.52h-56.96v362.24h214.4z" horiz-adv-x="1024" />
<glyph glyph-name="word" unicode="&#58950;" d="M718.080 350.080c-12.16-60.16-21.12-117.76-32-177.28h-3.84c-12.8 58.88-23.68 117.12-36.48 177.28l-78.080 337.92h-106.24l-77.44-337.92c-12.8-58.88-23.68-117.76-35.84-177.28h-2.56c-9.6 58.88-18.56 117.12-29.44 177.28l-72.96 337.92h-115.2l147.84-624h131.84l64 307.2c14.080 58.88 23.68 117.12 34.56 181.76h5.76c12.16-64 21.76-121.6 34.56-180.48l71.68-308.48h136.96l140.8 624h-106.88zM960 896h-896c-35.346 0-64-28.654-64-64v-896c0-35.346 28.654-64 64-64h896c35.346 0 64 28.654 64 64v896c0 35.346-28.654 64-64 64zM960 0c0-35.346-28.654-64-64-64h-768c-35.346 0-64 28.654-64 64v768c0 35.346 28.654 64 64 64h768c35.346 0 64-28.654 64-64z" horiz-adv-x="1024" />
<glyph glyph-name="excel" unicode="&#58951;" d="M960 896h-896c-35.346 0-64-28.654-64-64v-896c0-35.346 28.654-64 64-64h896c35.346 0 64 28.654 64 64v896c0 35.346-28.654 64-64 64zM960 0c0-35.346-28.654-64-64-64h-768c-35.346 0-64 28.654-64 64v768c0 35.346 28.654 64 64 64h768c35.346 0 64-28.654 64-64zM816.64 768h-155.52l-74.88-154.88c-19.2-41.6-40.32-85.12-59.52-128h-5.12c-23.040 43.52-46.72 86.4-67.2 128l-85.12 154.88h-160.64l213.76-367.36-230.4-400.64h156.16l82.56 161.92c21.76 47.36 44.16 93.44 64 136.96h6.4c25.6-43.52 50.56-90.88 73.6-136.96l96-161.92h161.28l-229.12 384z" horiz-adv-x="1024" />
<glyph glyph-name="time" unicode="&#58954;" d="M839.71 665.392l21.719 21.719 43.439-43.439 54.298 53.659-127.76 127.76-54.937-54.298 43.439-43.439-21.719-21.719c-75.422 67.785-173.222 112.028-281.079 120.458 35.914 34.385 3.15 64.831-36.725 64.831-39.875 0-72.639-30.446-76.313-69.359-53.727-9.585-101.81-26.59-145.709-50.339l109.274-52.815c33.919 10.918 72.943 17.223 113.435 17.25 210.674-0.002 382.275-171.603 382.275-383.283 0-211.68-171.601-383.281-383.281-383.281-211.68 0-383.281 171.601-383.281 383.281-0 0.065-0 0.141-0 0.218 0 67.637 17.52 131.182 48.269 186.345l-80.209 52.35c-40.161-67.975-63.89-149.791-63.89-237.149 0-1.069 0.004-2.137 0.011-3.204-0.001-264.436 214.5-478.938 479.101-478.938 264.601 0 479.102 214.501 479.102 479.102-0.017 120.866-45.332 231.144-119.891 314.787zM480.065 640.479c-0.001 0-0.003 0-0.004 0-25.53 0-46.268-20.516-46.628-45.96l-0-182.093c-18.945-13.991-31.096-36.239-31.096-61.325s12.151-47.334 30.889-61.179l0.207-64.027c2.821-23.303 22.479-41.184 46.313-41.184s43.492 17.881 46.291 40.96l0.022 64.104c18.945 13.991 31.096 36.239 31.096 61.325s-12.151 47.334-30.889 61.179l-0.207 184.76c-1.708 24.169-21.601 43.165-45.99 43.439zM252.651 896l-109.235-251.049 274.685-5.11-50.465 77.934-51.104 79.85-63.88 98.376z" horiz-adv-x="1024" />
<glyph glyph-name="snapscreen" unicode="&#58960;" d="M665.6 503.040l-204.8-155.52-204.8 233.6v-389.12h512v155.52l-102.4 155.52zM1024 64h-128v704h-704v128h-64v-128h-128v-64h128v-704h704v-128h64v128h128zM192 64v640h640v-640z" horiz-adv-x="1024" />
<glyph glyph-name="wordimage" unicode="&#58962;" d="M988.16 448h-568.32c-19.794 0-35.84-16.046-35.84-35.84 0 0 0 0 0 0v-504.32c0-19.794 16.046-35.84 35.84-35.84h568.96c0 0 0 0 0 0 19.794 0 35.84 16.046 35.84 35.84 0 0 0 0 0 0v504.32c0 0.002 0 0.004 0 0.006 0 19.794-16.046 35.84-35.84 35.84-0.225 0-0.45-0.002-0.674-0.006zM664.32 283.52c-1.074-43.349-36.469-78.080-79.977-78.080-44.183 0-80 35.817-80 80 0 44.175 35.804 79.987 79.976 80 44.338-0.719 80.004-36.829 80.004-81.27 0-0.229-0.001-0.457-0.003-0.685zM929.28-64h-467.84l131.2 205.44 85.12-133.12 177.28 298.24 104.96-178.56v-163.2c-1.040-16.12-14.369-28.8-30.66-28.8-0.021 0-0.042 0-0.063 0zM960 896h-896c-35.346 0-64-28.654-64-64v-896c0-35.346 28.654-64 64-64h256v64h-192c-35.346 0-64 28.654-64 64v768c0 35.346 28.654 64 64 64h768c35.346 0 64-28.654 64-64v-256h64v320c0 35.346-28.654 64-64 64zM320 341.76l-78.72 362.24h-118.4l151.68-640h45.44v266.24zM858.88 512l43.52 192h-116.48l-40.32-192h113.28zM501.76 512c0 26.88 4.48 40.32 7.040 64h3.2c0-23.68 7.68-64 7.68-64h97.28l-44.8 192h-115.84l-42.88-192z" horiz-adv-x="1024" />
<glyph glyph-name="edittd" unicode="&#58970;" d="M576 128c0-106.039 85.961-192 192-192s192 85.961 192 192c0 106.039-85.961 192-192 192-106.039 0-192-85.961-192-192zM448 128c0.094 176.66 143.327 319.835 320 319.835 46.3 0 90.303-9.833 130.036-27.525l-2.036 347.69h-768v-768h346.88c-16.972 37.769-26.865 81.866-26.88 128.273zM0 896v-1024h576c-46.418 35.069-82.504 81.491-104.415 135.203l-407.585-71.203v896h896v-448c46.418-35.069 82.504-81.491 104.415-135.203l-40.415 647.203z" horiz-adv-x="1024" />
<glyph glyph-name="lineheight" unicode="&#58922;" d="M380.8 128h-380.8l190.72-254.72 190.080 254.72zM512 128h512v-64h-512v64zM512 320h512v-64h-512v64zM512 512h512v-64h-512v64zM512 704h512v-64h-512v64zM2.56 640h380.8l-190.080 254.72-190.72-254.72z" horiz-adv-x="1024" />
<glyph glyph-name="rowspacingbottom" unicode="&#58923;" d="M704 128H320l192-256zM672 256H32c-19.2 0-32 12.8-32 32S12.8 320 32 320h640c19.2 0 32-12.8 32-32s-12.8-32-32-32zM864 448H32C12.8 448 0 460.8 0 480S12.8 512 32 512h832c19.2 0 32-12.8 32-32s-12.8-32-32-32zM480 640h-448C12.8 640 0 652.8 0 672S12.8 704 32 704h448c19.2 0 32-12.8 32-32s-12.8-32-32-32zM992 832H32C12.8 832 0 844.8 0 864S12.8 896 32 896h960c19.2 0 32-12.8 32-32s-12.8-32-32-32z" horiz-adv-x="1024" />
<glyph glyph-name="rowspacingtop" unicode="&#58924;" d="M320 640h384L512 896zM352 512h640c19.2 0 32-12.8 32-32s-12.8-32-32-32h-640c-19.2 0-32 12.8-32 32s12.8 32 32 32zM160 320h832c19.2 0 32-12.8 32-32s-12.8-32-32-32h-832c-19.2 0-32 12.8-32 32s12.8 32 32 32zM544 128h448c19.2 0 32-12.8 32-32s-12.8-32-32-32h-448c-19.2 0-32 12.8-32 32s12.8 32 32 32zM32-64h960c19.2 0 32-12.8 32-32s-12.8-32-32-32H32c-19.2 0-32 12.8-32 32s12.8 32 32 32z" horiz-adv-x="1024" />
<glyph glyph-name="scrawl" unicode="&#58902;" d="M1018.284 618.88c-3.741 3.949-9.022 6.406-14.878 6.406-0.17 0-0.339-0.002-0.507-0.006-18.281-3.25-33.767-13.388-43.958-27.584l-387.377-385.216c-97.674-132.446-170.577-289.537-208.303-459.854l130.863 340.174 14.080 8.96c3.84 0 90.24 56.96 104.96 71.040l390.4 389.12c16.64 14.080 29.44 41.6 14.72 56.96zM774.444 497.92c-1.065-30.621-26.145-55.040-56.928-55.040-31.458 0-56.96 25.502-56.96 56.96 0 31.447 25.483 56.942 56.926 56.96 31.613-0.715 56.965-26.51 56.965-58.226 0-0.23-0.001-0.46-0.004-0.689zM173.484 292.48c-0.572-0.020-1.245-0.031-1.92-0.031-32.519 0-58.88 26.361-58.88 58.88 0 32.519 26.361 58.88 58.88 58.88 32.508 0 58.862-26.344 58.88-58.847 0.002-0.196 0.004-0.426 0.004-0.656 0-31.716-25.352-57.511-56.897-58.225zM256.684 497.92c1.065 30.621 26.145 55.040 56.928 55.040 31.458 0 56.96-25.502 56.96-56.96 0-31.447-25.483-56.942-56.926-56.96-31.613 0.715-56.965 26.51-56.965 58.226 0 0.23 0.001 0.46 0.004 0.689zM459.564 556.8c1.065 30.621 26.145 55.040 56.928 55.040 31.458 0 56.96-25.502 56.96-56.96 0-31.447-25.483-56.942-56.926-56.96-31.613 0.715-56.965 26.51-56.965 58.226 0 0.23 0.001 0.46 0.004 0.689zM902.444 357.76c-31.114-198.424-199.103-348.964-402.953-352.649-44.127 0.133-86.562 8.912-125.365 24.752-35.522 14.937-52.802 33.497-56.642 45.657s-3.84 13.44-5.12 20.48c-7.834 36.146-22.479 67.979-42.623 95.538 5.698-5.462-21.312 11.988-52.397 11.988-0.345 0-0.689-0.002-1.033-0.006-3.886 0.48-8.445 0.754-13.068 0.754-4.623 0-9.182-0.274-13.662-0.806-12.472-3.188-27.415-5.056-42.792-5.072-27.705 0.004-76.345 7.684-77.625 60.164-8.32 266.88 206.080 412.16 421.76 437.76 7.269 0.45 15.764 0.706 24.32 0.706 8.556 0 17.051-0.256 25.48-0.762-0.547 0.058 0.179 0.060 0.905 0.060 61.978 0 121.325-11.266 176.105-31.862 7.43-3.343 13.19-5.903 41.35-19.983 45.5-22.593 82.418-56.579 107.926-98.3l0.234 108.54c-39.591 39.065-89.533 67.734-145.34 81.521 39.74-11.761 32.060-7.921 18.62-2.161-57.675 21.514-124.314 33.964-193.861 33.964-2.496 0-4.989-0.016-7.477-0.048-8.039 0.525-17.876 0.822-27.782 0.822-9.906 0-19.744-0.297-29.503-0.882-141.37-14.839-266.964-78.425-360.631-173.541-66.027-62.45-121.268-181.419-121.268-313.291 0-8.831 0.248-17.603 0.737-26.312-0.056 0.957-0.057 0.66-0.057 0.363 0-38.985 18.155-73.73 46.471-96.241 26.281-19.448 59.014-31.013 94.449-31.013 1.984 0 3.961 0.036 5.927 0.108 20.847 0.167 41.263 2.875 60.785 7.826l7.41-0.794c13.44 0 19.2-11.52 30.72-57.6 0-7.68 3.84-15.36 5.76-23.040 18.972-47.312 59.266-82.528 108.663-94.1 33.53-14.445 83.337-24.315 135.45-24.315 1.254 0 2.507 0.006 3.758 0.017 0.225-0.003 0.719-0.004 1.212-0.004 63.695 0 124.367 12.941 179.531 36.338 81.727 34.251 151.681 90.814 202.313 162.068 5.358-6.858 54.273 74.77 77.563 166.616-8.168-44.029 10.698 24.185 13.446 96.526l-3.217-20.585z" horiz-adv-x="1024" />
<glyph glyph-name="redo" unicode="&#58889;" d="M900.608 421.888c-51.2 51.2-260.608 261.632-291.84 292.352-11.806 10.097-27.254 16.241-44.137 16.241-18.488 0-35.255-7.368-47.525-19.327-11.992-12.987-19.355-30.431-19.355-49.596 0-9.601 1.848-18.77 5.208-27.172 12.114-17.938 187.73-199.186 187.73-199.186h-520.704c-1.707 0.167-3.691 0.262-5.696 0.262-34.215 0-61.952-27.737-61.952-61.952 0-0.993 0.023-1.98 0.070-2.961 1.872-36.617 31.37-65.906 68.041-67.444l517.682-0.001-173.056-172.032c-11.419-12.149-18.435-28.551-18.435-46.592s7.016-34.443 18.468-46.628c12.029-13.522 29.523-22.020 49.001-22.020 15.841 0 30.37 5.621 41.7 14.976 24.977 22.951 255.889 252.839 297.873 296.359s-3.072 94.72-3.072 94.72z" horiz-adv-x="1024" />
<glyph glyph-name="undo" unicode="&#58880;" d="M128.512 419.84c51.2 51.2 260.608 261.632 291.84 292.352 11.806 10.097 27.254 16.241 44.137 16.241 18.488 0 35.255-7.368 47.525-19.327 11.777-12.935 18.997-30.227 18.997-49.205 0-9.749-1.905-19.053-5.364-27.559-13.648-17.942-187.216-197.142-187.216-197.142h520.192c1.125 0.073 2.44 0.114 3.764 0.114 34.215 0 61.952-27.737 61.952-61.952 0-1.662-0.065-3.309-0.194-4.938-1.863-36.541-31.361-65.829-68.033-67.368l-517.682-0.001 173.568-173.056c11.419-12.149 18.435-28.551 18.435-46.592s-7.016-34.443-18.468-46.628c-12.029-13.522-29.523-22.020-49.001-22.020-15.841 0-30.37 5.621-41.7 14.976-24.977 22.951-255.889 252.839-297.873 296.359s5.12 95.744 5.12 95.744z" horiz-adv-x="1024" />
<glyph glyph-name="inserttitle" unicode="&#58971;" d="M512 379.904v153.6h-51.2v-102.4h-102.4v-51.2h-153.6v51.2h-102.4v102.4h-51.2v-614.4h921.6v460.8zM338.944-29.696h-240.64v167.936h238.592zM338.944 189.44h-240.64v139.264h238.592zM636.416-29.696h-248.32v167.936h246.272zM636.416 189.44h-248.32v139.264h246.272zM919.552-29.696h-233.984v167.936h231.936zM919.552 189.44h-233.984v139.264h231.936zM512 430.592v-51.2h460.8v465.408h-460.8v-307.2zM563.2 635.392h153.6v153.6h51.2v-153.6h153.6v-51.2h-153.6v-153.6h-51.2v153.6h-153.6zM99.328 787.968h102.4v51.2h-153.6v-153.6h51.2v102.4zM512.512 791.040v51.2h-153.6v-51.2h102.4v-102.4h51.2v102.4z" horiz-adv-x="1024" />
<glyph glyph-name="insertparagraphtrue" unicode="&#58976;" d="M997.12 448h-997.12v-576h1024v576zM60.16-64v256h259.84v-256zM542.080-64h-158.080v256h256v-256zM963.84-64h-259.84v256h259.84zM448 896h-448v-64h192v-384h64v384h192v64z" horiz-adv-x="1024" />
<glyph glyph-name="aligntable" unicode="&#58978;" d="M992 832H32C12.8 832 0 844.8 0 864S12.8 896 32 896h960c19.2 0 32-12.8 32-32s-12.8-32-32-32z m0-192H32C12.8 640 0 652.8 0 672S12.8 704 32 704h960c19.2 0 32-12.8 32-32s-12.8-32-32-32z m0-192H32C12.8 448 0 460.8 0 480S12.8 512 32 512h960c19.2 0 32-12.8 32-32s-12.8-32-32-32z m0-384H32c-19.2 0-32 12.8-32 32s12.8 32 32 32h960c19.2 0 32-12.8 32-32s-12.8-32-32-32z m0-192H32c-19.2 0-32 12.8-32 32s12.8 32 32 32h960c19.2 0 32-12.8 32-32s-12.8-32-32-32zM992 448H32C12.8 448 0 460.8 0 480S12.8 512 32 512h960c19.2 0 32-12.8 32-32s-12.8-32-32-32z m0-192H32c-19.2 0-32 12.8-32 32S12.8 320 32 320h960c19.2 0 32-12.8 32-32s-12.8-32-32-32z" horiz-adv-x="1024" />
<glyph glyph-name="table" unicode="&#58980;" d="M0 896v-1024h1024v1024zM320-64h-256v256h256zM320 256h-256v256h256zM640-64h-256v256h256zM640 256h-256v256h256zM960-64h-256v256h256zM960 256h-256v256h256zM960 576h-896v256h896z" horiz-adv-x="1024" />
<glyph glyph-name="tablealignment-left" unicode="&#58979;" d="M51.2 793.6l921.6 0 0-51.2-921.6 0 0 51.2ZM51.2 640l614.4 0 0-51.2-614.4 0 0 51.2ZM51.2 486.4l921.6 0 0-51.2-921.6 0 0 51.2ZM51.2 332.79999999999995l614.4 0 0-51.2-614.4 0 0 51.2ZM51.2 179.20000000000005l921.6 0 0-51.2-921.6 0 0 51.2ZM51.2 25.600000000000023l614.4 0 0-51.2-614.4 0 0 51.2Z" horiz-adv-x="1024" />
<glyph glyph-name="tablealignment-center" unicode="&#58981;" d="M51.2 793.6l921.6 0 0-51.2-921.6 0 0 51.2ZM51.2 486.4l921.6 0 0-51.2-921.6 0 0 51.2ZM51.2 179.20000000000005l921.6 0 0-51.2-921.6 0 0 51.2ZM51.2 640l921.6 0 0-51.2-921.6 0 0 51.2ZM51.2 332.79999999999995l921.6 0 0-51.2-921.6 0 0 51.2ZM51.2 25.600000000000023l921.6 0 0-51.2-921.6 0 0 51.2ZM51.2 793.6l921.6 0 0-51.2-921.6 0 0 51.2ZM51.2 486.4l921.6 0 0-51.2-921.6 0 0 51.2ZM51.2 179.20000000000005l921.6 0 0-51.2-921.6 0 0 51.2Z" horiz-adv-x="1024" />
<glyph glyph-name="tablealignment-right" unicode="&#58982;" d="M51.2 793.6l921.6 0 0-51.2-921.6 0 0 51.2ZM358.4 640l614.4 0 0-51.2-614.4 0 0 51.2ZM51.2 486.4l921.6 0 0-51.2-921.6 0 0 51.2ZM358.4 332.79999999999995l614.4 0 0-51.2-614.4 0 0 51.2ZM51.2 179.20000000000005l921.6 0 0-51.2-921.6 0 0 51.2ZM358.4 25.600000000000023l614.4 0 0-51.2-614.4 0 0 51.2Z" horiz-adv-x="1024" />
<glyph glyph-name="paste" unicode="&#58983;" d="M832 576v160c0 17.673-14.327 32-32 32h-224v64c0 35.346-28.654 64-64 64h-128c-35.346 0-64-28.654-64-64v-64h-224c-17.673 0-32-14.327-32-32v-640c0-17.673 14.327-32 32-32h288v-192h448l192 192v512zM384 832h128v-64h-128zM192 704h512v-64h-512zM832-37.76v101.76h101.76zM960 128h-192v-192h-320v576h512z" horiz-adv-x="1024" />
<glyph glyph-name="map" unicode="&#58984;" d="M375.424 564.176c-2.432-6.96-7.856-24.704-3.152-40.208 9.232-34.672 39.424-36.24 39.424-36.24h43.264V593.632h-46.4c-20.864-6.24-30.944-22.432-33.136-29.456z m129.072-119.072H397.008c-46.448 9.28-64.896 40.992-67.28 46.368-2.288 5.456-15.504 30.944-8.464 74.256 20.032 64.976 77.28 69.616 77.28 69.616h57.248v70.368l48.704-0.8v-259.808z m200.272 0.768H581.04c-47.92 12.368-50.176 46.496-50.176 46.496V629.184L581.04 630v-123.024c3.008-13.024 19.376-15.44 19.376-15.44h50.912V629.232h53.456v-183.36h-0.016zM512-125.45c-11.203 0-21.563 6-27.172 15.688L208.375 368.274c-30.803 53.1-47.11 113.662-47.11 175.084 0 193.047 157.35 350.094 350.75 350.094 193.391 0 350.72-157.047 350.72-350.094 0-61.421-16.298-121.975-47.126-175.115l-276.437-478.007c-5.61-9.687-15.953-15.687-27.172-15.687z m0.016 956.138c-158.788 0-287.985-128.907-287.985-287.329 0-50.375 13.375-100.037 38.663-143.615l249.303-431.1 249.297 431.062c25.297 43.616 38.656 93.281 38.656 143.656 0 158.42-129.172 287.325-287.934 287.325z" horiz-adv-x="1024" />
<glyph glyph-name="directionalityrtl" unicode="&#58881;" d="M960 62.080l-384 320 384 320.64v-640.64zM64 704v64h448v-64h-192v-640h192v-64h-448v64h192v640h-192z" horiz-adv-x="1024" />
<glyph glyph-name="imagecenter" unicode="&#58882;" d="M0 896h1024v-64h-1024zM128 704h768v-448h-768v448zM0 128h1024v-64h-1024zM0-64h1024v-64h-1024z" horiz-adv-x="1024" />
<glyph glyph-name="imagenone" unicode="&#58887;" d="M52.736 788.992l921.6 0 0-51.2-921.6 0 0 51.2ZM52.736 635.392l409.6 0 0-512-409.6 0 0 512ZM564.736 174.592l409.6 0 0-51.2-409.6 0 0 51.2ZM54.784 20.992l921.6 0 0-51.2-921.6 0 0 51.2ZM564.736 328.192l409.6 0 0-51.2-409.6 0 0 51.2Z" horiz-adv-x="1024" />
<glyph glyph-name="fontborder" unicode="&#58888;" d="M345.6 64l44.8 153.6h224l44.8-153.6H768L576 704H448L256 64h89.6z m153.6 531.2l83.2-288H416l83.2 288zM896 832H64v-896h896V832h-64z m0-832H128V768h768v-768z" horiz-adv-x="1024" />
<glyph glyph-name="edittable" unicode="&#58890;" d="M993.92 47.36l-144 144.64c8.659 23.774 13.667 51.219 13.667 79.833 0 132.548-107.452 240-240 240-33.832 0-66.029-7-95.221-19.632l-16.365-6.441v-2.56c-2.225-2.205-3.603-5.261-3.603-8.64s1.378-6.435 3.602-8.639l134.401-134.401-81.92-80.64-131.84 133.12c-2.579 2.775-6.249 4.505-10.323 4.505-6.183 0-11.434-3.985-13.327-9.526l-4.509-10.339c-12.032-27.638-19.033-59.835-19.033-93.667 0-132.548 107.452-240 240-240 28.614 0 56.059 5.008 81.505 14.194l142.328-144.527c18.54-18.584 44.175-30.081 72.496-30.081 0.163 0 0.326 0 0.489 0.001 56.695 0.247 102.579 46.285 102.579 103.039 0 28.187-11.318 53.73-29.656 72.333zM960-64c-10.303-10.282-24.526-16.64-40.234-16.64-0.030 0-0.061 0-0.091 0-0.021-0-0.051-0-0.082-0-15.708 0-29.93 6.358-40.235 16.641l-165.119 165.119-14.080-6.4c-23.254-10.787-50.473-17.079-79.162-17.079-106.039 0-192 85.961-192 192 0 16.288 2.028 32.103 5.846 47.205l120.676-124.846c2.359-1.847 5.369-2.963 8.64-2.963s6.281 1.115 8.671 2.986l127.969 127.977c2.168 2.464 3.491 5.718 3.491 9.28s-1.323 6.816-3.504 9.296l-120.306 122.864c14.813 4.102 31.821 6.459 49.381 6.459 106.039 0 192-85.961 192-192 0-30.528-7.125-59.393-19.803-85.021l-5.898-12.958 163.84-162.56c9.956-10.245 16.095-24.246 16.095-39.68s-6.139-29.435-16.108-39.694zM832 896h-832v-832h320v512h512zM256 128h-192v192h192zM256 384h-192v192h192zM256 640h-192v192h192zM512 640h-192v192h192zM576 640v192h192v-192z" horiz-adv-x="1024" />
<glyph glyph-name="imageleft" unicode="&#58891;" d="M50.688 794.624l921.6 0 0-51.2-921.6 0 0 51.2ZM50.688 641.024l409.6 0 0-512-409.6 0 0 512ZM562.688 180.224l409.6 0 0-51.2-409.6 0 0 51.2ZM52.736 26.624l921.6 0 0-51.2-921.6 0 0 51.2ZM562.688 333.824l409.6 0 0-51.2-409.6 0 0 51.2ZM562.688 487.424l409.6 0 0-51.2-409.6 0 0 51.2ZM562.688 641.024l409.6 0 0-51.2-409.6 0 0 51.2Z" horiz-adv-x="1024" />
<glyph glyph-name="imageright" unicode="&#58901;" d="M0 896h1024v-64h-1024zM512 704h512v-640h-512v640zM0 128h448v-64h-448zM0-64h1024v-64h-1024zM0 320h448v-64h-448zM0 512h448v-64h-448zM0 704h448v-64h-448z" horiz-adv-x="1024" />
<glyph glyph-name="insertcol" unicode="&#58917;" d="M256 640l-256-256 256-256v512zM1024-128v1024h-640v-1024zM768 832h192v-256h-192zM768 512h192v-256h-192zM768 192h192v-256h-192zM448 832h192v-256h-192zM448 512h192v-256h-192zM448 192h192v-256h-192z" horiz-adv-x="1024" />
<glyph glyph-name="insertcolnext" unicode="&#58918;" d="M768 128l256 256-256 256v-512zM0 896v-1024h640v1024zM256-64h-192v256h192zM256 256h-192v256h192zM256 576h-192v256h192zM576-64h-192v256h192zM576 256h-192v256h192zM576 576h-192v256h192z" horiz-adv-x="1024" />
<glyph glyph-name="insertorderedlist" unicode="&#58933;" d="M319.956 832.009h703.902v-127.982h-703.902v127.982zM319.956 448.062h703.902v-127.982h-703.902v127.982zM319.956 64.115h703.902v-127.982h-703.902v127.982zM191.973 896v-255.964h-127.982v255.964zM0 256.089v30.716c0 103.666 159.978 141.42 159.978 186.854 0 17.918-10.878 28.156-33.275 28.156-31.301-3-58.565-18.191-77.352-40.702l-43.591 57.98c30.879 35.002 75.835 56.965 125.921 56.965 0.725 0 1.448-0.005 2.171-0.014 78.599 0.001 122.113-42.233 122.113-97.265 0-78.069-95.347-98.546-142.7-147.18h142.7v-75.51zM127.982-127.858c-2.045-0.090-4.443-0.142-6.854-0.142-47.758 0-90.798 20.2-121.042 52.521l48.547 49.366c18.682-18.147 44.020-29.531 72.013-30.151 25.894 0.076 39.332 14.154 39.332 33.351 0 17.278-12.158 26.236-36.475 26.236h-24.317v52.473h24.957c23.037 0 36.475 6.399 36.475 26.876 0 19.837-12.798 31.356-38.395 31.356-26.139-0.731-49.26-13.049-64.502-31.98l-47.483 49.257c29.161 33.898 72.108 55.232 120.038 55.232 2.794 0 5.572-0.073 8.33-0.216 72.564 5.775 117.357-35.819 117.357-82.533v-5.119c0-0.034 0-0.075 0-0.115 0-35.341-28.65-63.991-63.991-63.991-1.351 0-2.692 0.042-4.022 0.124 50.735-7.048 70.572-33.284 70.572-67.2v-3.839c-2.56-53.113-54.392-91.507-130.542-91.507z" horiz-adv-x="1024" />
<glyph glyph-name="insertparagraphbeforetable" unicode="&#58934;" d="M256 512v-640h768v640zM512-64h-192v512h192zM960-64h-384v128h384zM960 128h-384v128h384zM960 320h-384v128h384zM384 320h64v-256h-64zM0 896v-64h128v-384h64v384h128v64h-320z" horiz-adv-x="1024" />
<glyph glyph-name="insertrow" unicode="&#58935;" d="M768 640l-256 256-256-256h512zM0-128h1024v640h-1024zM960 128v-192h-256v192zM640 128v-192h-256v192zM320 128v-192h-256v192zM960 448v-192h-256v192zM640 448v-192h-256v192zM320 448v-192h-256v192z" horiz-adv-x="1024" />
<glyph glyph-name="insertrownext" unicode="&#58937;" d="M256 128l256-256 256 256h-512zM1024 896h-1024v-640h1024zM64 640v192h256v-192zM384 640v192h256v-192zM704 640v192h256v-192zM64 320v192h256v-192zM384 320v192h256v-192zM704 320v192h256v-192z" horiz-adv-x="1024" />
<glyph glyph-name="insertunorderedlist" unicode="&#58945;" d="M960 704H256c-38.4 0-64 25.6-64 64s25.6 64 64 64h704c38.4 0 64-25.6 64-64s-25.6-64-64-64zM64 704c-38.4 0-64 25.6-64 64s25.6 64 64 64 64-25.6 64-64-25.6-64-64-64zM960 320H256c-38.4 0-64 25.6-64 64s25.6 64 64 64h704c38.4 0 64-25.6 64-64s-25.6-64-64-64zM64 320c-38.4 0-64 25.6-64 64s25.6 64 64 64 64-25.6 64-64-25.6-64-64-64zM960-64H256c-38.4 0-64 25.6-64 64s25.6 64 64 64h704c38.4 0 64-25.6 64-64s-25.6-64-64-64zM64-64c-38.4 0-64 25.6-64 64s25.6 64 64 64 64-25.6 64-64-25.6-64-64-64z" horiz-adv-x="1024" />
<glyph glyph-name="mergeright" unicode="&#58946;" d="M0 896v-1024h1024v1024zM384 832h256v-256h-256zM384 448h320v64l192-128-192-128v64h-320zM320-64h-256v256h256zM320 256h-256v256h256zM320 576h-256v256h256zM640-64h-256v256h256zM960-64h-256v256h256zM960 576h-256v256h256z" horiz-adv-x="1024" />
<glyph glyph-name="mergedown" unicode="&#58947;" d="M0 896v-1024h1024v1024zM320-64h-256v256h256zM320 256h-256v256h256zM320 576h-256v256h256zM512 0l-128 192h64v320h128v-320h64zM640 576h-256v256h256zM960-64h-256v256h256zM960 256h-256v256h256zM960 576h-256v256h256z" horiz-adv-x="1024" />
<glyph glyph-name="inserttable" unicode="&#58948;" d="M0 896v-1024h1024v1024zM320-64h-256v256h256zM320 256h-256v256h256zM640-64h-256v256h256zM640 256h-256v256h256zM960-64h-256v256h256zM960 256h-256v256h256zM960 576h-896v256h896z" horiz-adv-x="1024" />
<glyph glyph-name="pagebreak" unicode="&#58952;" d="M384-64h512v-64h-512zM0 576v-384l256 192-256 192zM320 768h576v-64h-576zM384 64h256v-64h-256zM192 192v-320h64v256h704v-256h64v320h-832zM1022.72 896h-62.72v-256h-704v256h-64v-320h832v320h-1.28z" horiz-adv-x="1024" />
<glyph glyph-name="source" unicode="&#58953;" d="M170.88 384h-113.92v128h-56.96v-320h56.96v128h113.92v-128h56.96v320h-56.96v-128zM284.16 448h56.96v-256h56.96v256h56.96v64h-170.88v-64zM738.56 510.72l-84.48-250.24-84.48 251.52-2.56-1.28h-55.040v-316.8h56.96v140.16l47.36-140.8h72.96l2.56-1.28 48 140.8v-139.52h56.32v316.8h-55.040l-2.56 0.64zM910.080 256v256h-56.96v-320h170.88v64h-113.92z" horiz-adv-x="1024" />
<glyph glyph-name="splittorows" unicode="&#58955;" d="M0 896h1024v-64H0zM960 896v-320h-128V896h-64v-320H256V896H192v-320H64V896H0v-1024h1024V896z m-192-384v-256H256V512zM64 512h128v-256H64z m0-576v256h128v-256z m192 0v256h512v-256z m704 0h-128v256h128z m0 320h-128V512h128z" horiz-adv-x="1024" />
<glyph glyph-name="splittocols" unicode="&#58956;" d="M1024 896h-1024v-1024h1024zM960 512v-256h-128v256zM960 832v-256h-128v256zM64 576v256h128v-256zM64 256v256h128v-256zM64-64v256h128v-256zM256-64v896h128v-896zM448-64v896h128v-896zM640-64v896h128v-896zM832-64v256h128v-256z" horiz-adv-x="1024" />
<glyph glyph-name="splittocells" unicode="&#58957;" d="M0 896v-1024h1024v1024zM320-64h-256v576h256zM640-64h-256v256h256zM640 256h-256v256h256zM960-64h-256v256h256zM960 256h-256v256h256zM960 576h-576v256h576z" horiz-adv-x="1024" />
<glyph glyph-name="arrow" unicode="&#58959;" d="M513.024 230.4l204.8 204.8h-409.6l204.8-204.8z" horiz-adv-x="1024" />
<glyph glyph-name="aligntd" unicode="&#58961;" d="M256.061 128.061h511.877v-63.985h-511.877v63.985zM256.061 320.015h511.877v-63.985h-511.877v63.985zM256.061 511.969h511.877v-63.985h-511.877v63.985zM256.061 703.923h511.877v-63.985h-511.877v63.985zM863.916-127.878h-703.832c-1.402-0.077-3.043-0.121-4.695-0.121-48.324 0-87.898 37.462-91.266 84.928l-0.017 853.847c3.384 47.758 42.959 85.22 91.282 85.22 1.651 0 3.292-0.044 4.922-0.13l703.604 0.010c1.402 0.077 3.043 0.121 4.695 0.121 48.324 0 87.898-37.462 91.266-84.928l0.017-853.847c-3.384-47.758-42.959-85.22-91.282-85.22-1.651 0-3.292 0.044-4.922 0.13zM160.084 831.892c-0.591 0.041-1.281 0.065-1.977 0.065-15.956 0-29.010-12.427-30.011-28.131l-0.004-839.567c1.005-15.791 14.059-28.218 30.016-28.218 0.696 0 1.386 0.024 2.069 0.070l703.739-0.005c0.591-0.041 1.281-0.065 1.977-0.065 15.956 0 29.010 12.427 30.011 28.131l0.004 839.567c-1.005 15.791-14.059 28.218-30.016 28.218-0.696 0-1.386-0.024-2.069-0.070z" horiz-adv-x="1024" />
<glyph glyph-name="autotypeset" unicode="&#58963;" d="M192 704h384v-320h-384v320zM640 704h192v-64h-192v64zM640 512h192v-64h-192v64zM192 320h640v-64h-640v64zM192 128h640v-64h-640v64zM960 896h-896c-35.346 0-64-28.654-64-64v-896c0-35.346 28.654-64 64-64h896c35.346 0 64 28.654 64 64v896c0 35.346-28.654 64-64 64zM960 0c0-35.346-28.654-64-64-64h-768c-35.346 0-64 28.654-64 64v768c0 35.346 28.654 64 64 64h768c35.346 0 64-28.654 64-64z" horiz-adv-x="1024" />
<glyph glyph-name="charts" unicode="&#58968;" d="M0 832v-896h1024v896zM960 0h-896v768h896zM704 640h128v-512h-128zM448 320h128v-192h-128zM192 512h128v-384h-128z" horiz-adv-x="1024" />
<glyph glyph-name="closeerror" unicode="&#58972;" d="M512 896c-282.77 0-512-229.23-512-512s229.23-512 512-512c282.77 0 512 229.23 512 512 0 282.77-229.23 512-512 512zM796.16 225.92l-128-128-156.16 158.080-158.080-156.16-128 128 158.080 156.16-156.16 158.080 128 128 156.16-158.080 158.080 158.080 128-128-158.080-158.080z" horiz-adv-x="1024" />
<glyph glyph-name="copy" unicode="&#58975;" d="M256.060 511.97h511.879v-63.985h-511.879v63.985zM256.060 320.015h511.879v-63.985h-511.879v63.985zM256.060 128.060h511.879v-63.985h-511.879v63.985zM256.060 703.924h255.94v-63.985h-255.94v63.985zM895.91 639.939h-191.955v199.633c-3.964 31.88-30.89 56.308-63.523 56.308-0.162 0-0.325-0.001-0.487-0.002l-502.257 0c-1.216 0.076-2.637 0.119-4.068 0.119-36.533 0-66.506-28.090-69.498-63.85l-0.017-896.043c3.010-36.014 32.982-64.104 69.515-64.104 1.431 0 2.852 0.043 4.261 0.128l748.43-0.009c1.216-0.076 2.637-0.119 4.068-0.119 36.533 0 66.506 28.090 69.498 63.85l0.017 647.142c-3.664 32.179-30.738 56.948-63.597 56.948-0.136 0-0.273-0-0.409-0.001zM895.91-55.577c-0-4.594-3.724-8.318-8.318-8.318h-749.903c-5.301 0-9.598 4.297-9.598 9.598 0 0 0 0 0 0v877.873c0 4.594 3.724 8.318 8.318 8.318h491.404c0.196 0.012 0.426 0.019 0.657 0.019 6.142 0 11.162-4.808 11.499-10.866l0.001-191.985c3.573-30.12 28.96-53.257 59.75-53.257 1.49 0 2.968 0.054 4.431 0.161l180.242-0.011c0.196 0.012 0.426 0.019 0.657 0.019 6.142 0 11.162-4.808 11.499-10.866l0.001-620.684z" horiz-adv-x="1024" />
<glyph glyph-name="date" unicode="&#58977;" d="M896 768v-64h64v-704h-896v704h64v64h-128v-832h1024v832h-128zM832 832h-192v-255.36l192-0.64v256zM576 192h256v-64h-256zM576 384h256v-64h-256zM448 768h128v-64h-128zM192 192h256v-64h-256zM192 384h256v-64h-256zM384 832h-192v-256l192 0.64v255.36z" horiz-adv-x="1024" />
<glyph glyph-name="deletetable" unicode="&#58985;" d="M576 896v-448h448v448zM1003.52 558.72l-90.24-90.24-113.28 113.28-113.28-113.28-90.24 90.24 113.28 113.28-113.28 113.28 90.24 90.24 113.28-113.28 113.28 113.28 90.88-90.88-113.92-112.64zM960 256h-256v192h-64v-192h-256v256h192v64h-512v256h512v64h-576v-1024h1024v576h-64zM320-64h-256v256h256zM320 256h-256v256h256zM640-64h-256v256h256zM960-64h-256v256h256z" horiz-adv-x="1024" />
<glyph glyph-name="directionalityltr" unicode="&#58986;" d="M64 64l384 320-384 320v-640zM960 704v64h-448v-64h192v-640h-192v-64h448v64h-192v640h192z" horiz-adv-x="1024" />
<glyph glyph-name="arrowright" unicode="&#58987;" d="M615.424 384l-204.8 204.8v-409.6l204.8 204.8z" horiz-adv-x="1024" />
<glyph glyph-name="tableleft" unicode="&#58988;" d="M960 832v-896H64V832h896m64 64H0v-1024h1024V896zM192 704h640v-64H192zM192 512h640v-64H192zM192 320h256v-64H192z" horiz-adv-x="1024" />
<glyph glyph-name="tableright" unicode="&#58989;" d="M960 832v-896H64V832h896m64 64H0v-1024h1024V896zM188.8 704.64h640v-64h-640zM188.8 512.64h640v-64h-640zM576 320.64h256v-64H576z" horiz-adv-x="1024" />
<glyph glyph-name="tablecenter" unicode="&#58990;" d="M960 832v-896H64V832h896m64 64H0v-1024h1024V896zM188.8 703.36h640v-64h-640zM188.8 511.36h640v-64h-640zM383.36 319.36h256v-64h-256z" horiz-adv-x="1024" />
<glyph glyph-name="videoleft" unicode="&#58991;" d="M96 800l832 0 0-32-832 0 0 32ZM96 704l832 0 0-32-832 0 0 32ZM96 96l832 0 0-32-832 0 0 32ZM96 0l399.36 0 0-32-399.36 0 0 32ZM704 192l224 0 0-32-224 0 0 32ZM704 288l224 0 0-32-224 0 0 32ZM704 384l224 0 0-32-224 0 0 32ZM704 480l224 0 0-32-224 0 0 32ZM704 576l224 0 0-32-224 0 0 32ZM256 416m-64 0a64 64 0 1 1 128 0 64 64 0 1 1-128 0ZM640 576H128a32 32 0 0 1-32-32v-352a32 32 0 0 1 32-32h512a32 32 0 0 1 32 32V544a32 32 0 0 1-32 32z m0-251.52L544 448l-162.24-208.64L304 332.8 186.56 192H160a32 32 0 0 0-32 32v288a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32zM992 864v-960H32V864h960m0 32H32a32 32 0 0 1-32-32v-960a32 32 0 0 1 32-32h960a32 32 0 0 1 32 32V864a32 32 0 0 1-32 32z" horiz-adv-x="1024" />
<glyph glyph-name="videocenter" unicode="&#58992;" d="M96 800l832 0 0-32-832 0 0 32ZM96 704l832 0 0-32-832 0 0 32ZM96 96l832 0 0-32-832 0 0 32ZM96 0l399.36 0 0-32-399.36 0 0 32ZM96 192l96 0 0-32-96 0 0 32ZM96 288l96 0 0-32-96 0 0 32ZM96 384l96 0 0-32-96 0 0 32ZM96 480l96 0 0-32-96 0 0 32ZM96 576l96 0 0-32-96 0 0 32ZM832 288l96 0 0-32-96 0 0 32ZM832 192l96 0 0-32-96 0 0 32ZM832 384l96 0 0-32-96 0 0 32ZM832 480l96 0 0-32-96 0 0 32ZM832 576l96 0 0-32-96 0 0 32ZM384 416m-64 0a64 64 0 1 1 128 0 64 64 0 1 1-128 0ZM768 576H256a32 32 0 0 1-32-32v-352a32 32 0 0 1 32-32h512a32 32 0 0 1 32 32V544a32 32 0 0 1-32 32z m0-251.52L672 448l-162.24-208.64-77.76 93.44L314.56 192H288a32 32 0 0 0-32 32v288a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32zM992 864v-960H32V864h960m0 32H32a32 32 0 0 1-32-32v-960a32 32 0 0 1 32-32h960a32 32 0 0 1 32 32V864a32 32 0 0 1-32 32z" horiz-adv-x="1024" />
<glyph glyph-name="videonone" unicode="&#58993;" d="M96 800l832 0 0-32-832 0 0 32ZM96 704l832 0 0-32-832 0 0 32ZM96 96l832 0 0-32-832 0 0 32ZM96 0l399.36 0 0-32-399.36 0 0 32ZM704 192l224 0 0-32-224 0 0 32ZM704 288l224 0 0-32-224 0 0 32ZM256 416m-64 0a64 64 0 1 1 128 0 64 64 0 1 1-128 0ZM640 576H128a32 32 0 0 1-32-32v-352a32 32 0 0 1 32-32h512a32 32 0 0 1 32 32V544a32 32 0 0 1-32 32z m0-251.52L544 448l-162.24-208.64L304 332.8 186.56 192H160a32 32 0 0 0-32 32v288a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32zM992 864v-960H32V864h960m0 32H32a32 32 0 0 1-32-32v-960a32 32 0 0 1 32-32h960a32 32 0 0 1 32 32V864a32 32 0 0 1-32 32z" horiz-adv-x="1024" />
<glyph glyph-name="videoright" unicode="&#58994;" d="M96 800l832 0 0-32-832 0 0 32ZM96 704l832 0 0-32-832 0 0 32ZM96 96l832 0 0-32-832 0 0 32ZM96 0l399.36 0 0-32-399.36 0 0 32ZM96 192l224 0 0-32-224 0 0 32ZM96 288l224 0 0-32-224 0 0 32ZM96 384l224 0 0-32-224 0 0 32ZM96 480l224 0 0-32-224 0 0 32ZM96 576l224 0 0-32-224 0 0 32ZM512 416m-64 0a64 64 0 1 1 128 0 64 64 0 1 1-128 0ZM896 576H384a32 32 0 0 1-32-32v-352a32 32 0 0 1 32-32h512a32 32 0 0 1 32 32V544a32 32 0 0 1-32 32z m0-251.52L800 448l-162.24-208.64-77.76 93.44-117.44-140.8H416a32 32 0 0 0-32 32v288a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32zM992 864v-960H32V864h960m0 32H32a32 32 0 0 1-32-32v-960a32 32 0 0 1 32-32h960a32 32 0 0 1 32 32V864a32 32 0 0 1-32 32z" horiz-adv-x="1024" />
<glyph glyph-name="template" unicode="&#58958;" d="M0 832v-896h1024v896zM960 0h-896v768h896zM192 640h320v-192h-320zM640 640h192v-512h-192zM192 320h320v-192h-320z" horiz-adv-x="1024" />
<glyph glyph-name="addfile" unicode="&#58995;" d="M1024 416H544V896h-64v-480H0v-64h480v-480h64V352h480v64z" horiz-adv-x="1024" />
<glyph glyph-name="selected" unicode="&#58996;" d="M914.24 278.72a32 32 0 0 1-45.12 0l-221.44-221.12-112.96 112.96a32 32 0 1 1-45.12-45.12l135.68-135.68a32 32 0 0 1 45.44 0l243.52 243.52a32 32 0 0 1 0 45.44zM0-128h1024V896z m914.24 361.28L672-10.24a32 32 0 0 0-45.44 0l-135.68 135.68a32 32 0 1 0 45.12 45.12l112.96-112.96 221.12 221.12a32 32 0 1 0 45.12-45.12z" horiz-adv-x="1024" />
<glyph glyph-name="pickarea" unicode="&#58997;" d="M977.454545 802.909091h-46.545454v-791.272727a46.545455 46.545455 0 0 0-46.545455-46.545455H93.090909v-46.545454a46.545455 46.545455 0 0 1 46.545455-46.545455h837.818181a46.545455 46.545455 0 0 1 46.545455 46.545455V756.363636a46.545455 46.545455 0 0 1-46.545455 46.545455zM46.545455 849.454545l837.818181 0 0-837.818181-837.818181 0 0 837.818181ZM884.363636 896H46.545455a46.545455 46.545455 0 0 1-46.545455-46.545455v-837.818181a46.545455 46.545455 0 0 1 46.545455-46.545455h837.818181a46.545455 46.545455 0 0 1 46.545455 46.545455V849.454545a46.545455 46.545455 0 0 1-46.545455 46.545455z m0-837.818182a46.545455 46.545455 0 0 0-46.545454-46.545454H93.090909a46.545455 46.545455 0 0 0-46.545454 46.545454V802.909091a46.545455 46.545455 0 0 0 46.545454 46.545454h744.727273a46.545455 46.545455 0 0 0 46.545454-46.545454z" horiz-adv-x="1024" />
<glyph glyph-name="overlay" unicode="&#58998;" d="M977.454545 802.909091h-46.545454v-791.272727a46.545455 46.545455 0 0 0-46.545455-46.545455H93.090909v-46.545454a46.545455 46.545455 0 0 1 46.545455-46.545455h837.818181a46.545455 46.545455 0 0 1 46.545455 46.545455V756.363636a46.545455 46.545455 0 0 1-46.545455 46.545455zM46.545455 849.454545l837.818181 0 0-837.818181-837.818181 0 0 837.818181ZM884.363636 896H46.545455a46.545455 46.545455 0 0 1-46.545455-46.545455v-837.818181a46.545455 46.545455 0 0 1 46.545455-46.545455h837.818181a46.545455 46.545455 0 0 1 46.545455 46.545455V849.454545a46.545455 46.545455 0 0 1-46.545455 46.545455z m0-837.818182a46.545455 46.545455 0 0 0-46.545454-46.545454H93.090909a46.545455 46.545455 0 0 0-46.545454 46.545454V802.909091a46.545455 46.545455 0 0 0 46.545454 46.545454h744.727273a46.545455 46.545455 0 0 0 46.545454-46.545454z" horiz-adv-x="1024" />
<glyph glyph-name="preitem" unicode="&#58999;" d="M0 896v-1024h1462.857143V896z m1433.6-994.742857H29.257143V866.742857h1404.342857zM175.542857 764.342857h497.371429v-58.514286H175.542857zM175.542857 384h438.857143v-29.257143H175.542857zM175.542857 501.028571h906.971429v-29.257142H175.542857zM175.542857 618.057143h234.057143v-29.257143H175.542857zM175.542857 266.971429h1111.771429v-29.257143H175.542857zM175.542857 149.942857h292.571429v-29.257143H175.542857zM175.542857 32.914286h760.685714v-29.257143H175.542857z" horiz-adv-x="1462" />
<glyph glyph-name="preitem1" unicode="&#59000;" d="M0 896v-1024h1462.857143V896z m1433.6-994.742857H29.257143V866.742857h1404.342857zM117.028571 720.457143h351.085715v-29.257143H117.028571z" horiz-adv-x="1462" />
<glyph glyph-name="preitem2" unicode="&#59001;" d="M0 896v-1024h1462.857143V896z m1433.6-994.742857H29.257143V866.742857h1404.342857zM175.542857 778.971429h497.371429v-58.514286H175.542857zM848.457143 340.114286h438.857143v-29.257143H848.457143zM848.457143 457.142857h438.857143v-29.257143H848.457143zM848.457143 574.171429h438.857143v-29.257143H848.457143zM175.542857 223.085714h1111.771429v-29.257143H175.542857zM175.542857 106.057143h702.171429v-29.257143H175.542857zM175.542857-10.971429h702.171429v-29.257142H175.542857zM731.428571 544.914286v-204.8H204.8V544.914286h526.628571m29.257143 29.257143H175.542857v-263.314286h585.142857V574.171429zM1258.057143 106.057143v-117.028572H994.742857v117.028572h263.314286m29.257143 29.257143H965.485714v-175.542857h321.828572V135.314286z" horiz-adv-x="1462" />
<glyph glyph-name="preitem3" unicode="&#59002;" d="M0 896v-1024h1462.857143V896z m1433.6-994.742857H29.257143V866.742857h1404.342857zM482.742857 720.457143h497.371429v-58.514286H482.742857zM643.657143 603.428571h175.542857v-29.257142H643.657143zM175.542857 427.885714h1111.771429v-29.257143H175.542857zM175.542857 310.857143h1111.771429v-29.257143H175.542857zM175.542857 193.828571h1111.771429v-29.257142H175.542857zM175.542857 76.8h1111.771429v-29.257143H175.542857z" horiz-adv-x="1462" />
<glyph glyph-name="preitem4" unicode="&#59003;" d="M1258.057143 632.685714v-204.8H204.8V632.685714h1053.257143m29.257143 29.257143H175.542857v-263.314286h1111.771429V661.942857zM0 896v-1024h1462.857143V896z m1433.6-994.742857H29.257143V866.742857h1404.342857zM175.542857 778.971429h497.371429v-58.514286H175.542857zM175.542857 340.114286h351.085714v-29.257143H175.542857zM175.542857 223.085714h1111.771429v-29.257143H175.542857zM175.542857 106.057143h702.171429v-29.257143H175.542857zM175.542857-10.971429h1111.771429v-29.257142H175.542857z" horiz-adv-x="1462" />
</font>
</defs></svg>

After

Width:  |  Height:  |  Size: 78 KiB

@ -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="1488001777589" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5327" xmlns:xlink="http://www.w3.org/1999/xlink" width="50" height="50"><defs><style type="text/css"></style></defs><path d="M1024 480H544V0h-64v480H0v64h480v480h64V544h480v-64z" fill="#E5E5E5" p-id="5328"></path></svg>

After

Width:  |  Height:  |  Size: 478 B

@ -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="1488001207278" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5218" xmlns:xlink="http://www.w3.org/1999/xlink" width="40" height="40"><defs><style type="text/css"></style></defs><path d="M914.24 617.28a32 32 0 0 0-45.12 0l-221.44 221.12-112.96-112.96a32 32 0 1 0-45.12 45.12l135.68 135.68a32 32 0 0 0 45.44 0l243.52-243.52a32 32 0 0 0 0-45.44z" fill="#FFFFFF" p-id="5219"></path><path d="M0 1024h1024V0z m914.24-361.28L672 906.24a32 32 0 0 1-45.44 0l-135.68-135.68a32 32 0 1 1 45.12-45.12l112.96 112.96 221.12-221.12a32 32 0 1 1 45.12 45.12z" fill="#1094FA" p-id="5220"></path></svg>

After

Width:  |  Height:  |  Size: 780 B

@ -0,0 +1,106 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script type="text/javascript" src="../internal.js"></script>
<style type="text/css">
.content{
width: 600px;
height: 412px;
margin: 20px;
}
.content table{width: 100%}
.content table td{vertical-align: middle;}
#address{width:405px;height:28px;background: #FFF;border:1px solid #ccc; line-height: 28px;border-radius: 5px;margin-left: 10px;}
#container {margin-top: 10px;}
#doSearch {
display: block;
text-align: center;
line-height: 30px;
text-decoration: none;
height: 30px;
width: 78px;
border: 0;
background-color: #3498db;
border-radius: 5px;
color: #fff;
}
</style>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=false"></script>
</head>
<body>
<div class="content">
<table>
<tr>
<td><label for="address"><var id="lang_input_address"></var></label></td>
<td><input id="address" type="text" /></td>
<td><a id="doSearch" href="javascript:void(0)" class="button"><var id="lang_input_search"></var></a></td>
</tr>
</table>
<div id="container" style="width: 100%; height: 362px;margin-top: 20px;"></div>
</div>
<script type="text/javascript">
domUtils.on(window,"load",function(){
var map = new google.maps.Map(document.getElementById('container'), {
zoom: 3,
streetViewControl: false,
scaleControl: true,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var imgcss;
var marker = new google.maps.Marker({
map: map,
draggable: true
});
function doSearch(){
var address = document.getElementById('address').value;
var geocoder = new google.maps.Geocoder();
geocoder.geocode( { 'address': address}, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var bounds = results[0].geometry.viewport;
map.fitBounds(bounds);
marker.setPosition(results[0].geometry.location);
marker.setTitle(address);
} else alert(lang.searchError);
});
}
$G('address').onkeydown = function (evt){
evt = evt || event;
if (evt.keyCode == 13) {
doSearch();
}
};
$G("doSearch").onclick = doSearch;
dialog.onok = function (){
var center = map.getCenter();
var point = marker.getPosition();
var url = "https://maps.googleapis.com/maps/api/staticmap?center=" + center.lat() + ',' + center.lng() + "&zoom=" + map.zoom + "&size=520x340&maptype=" + map.getMapTypeId() + "&markers=" + point.lat() + ',' + point.lng() + "&sensor=false";
editor.execCommand('inserthtml', '<img width="520" height="340" src="' + url + '"' + (imgcss ? ' style="' + imgcss + '"' :'') + '/>');
};
function getPars(str,par){
var reg = new RegExp(par+"=((\\d+|[.,])*)","g");
return reg.exec(str)[1];
}
var img = editor.selection.getRange().getClosedNode();
if(img && img.src.indexOf("https://maps.googleapis.com/maps/api/staticmap")!=-1){
var url = img.getAttribute("src");
var centers = getPars(url,"center").split(",");
point = new google.maps.LatLng(Number(centers[0]),Number(centers[1]));
map.setCenter(point);
map.setZoom(Number(getPars(url,"zoom")));
centers = getPars(url,"markers").split(",");
marker.setPosition(new google.maps.LatLng(Number(centers[0]),Number(centers[1])));
imgcss = img.style.cssText;
}else{
setTimeout(function(){
doSearch();
},30)
}
});
</script>
</body>
</html>

@ -0,0 +1,7 @@
.wrapper{width: 370px;margin: 10px auto;zoom: 1;}
.tabbody{height: 360px;}
.tabbody .panel{width:100%;height: 360px;position: absolute;background: #fff;}
.tabbody .panel h1{font-size:26px;margin: 5px 0 0 5px;}
.tabbody .panel p{font-size:12px;margin: 5px 0 0 5px;}
.tabbody table{width:90%;line-height: 20px;margin: 5px 0 0 5px;;}
.tabbody table thead{font-weight: bold;line-height: 25px;}

@ -0,0 +1,82 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>帮助</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
<script type="text/javascript" src="../internal.js"></script>
<link rel="stylesheet" type="text/css" href="help.css">
</head>
<body>
<div class="wrapper" id="helptab">
<div id="tabHeads" class="tabhead">
<span class="focus" tabsrc="about"><var id="lang_input_about"></var></span>
<span tabsrc="shortcuts"><var id="lang_input_shortcuts"></var></span>
</div>
<div id="tabBodys" class="tabbody">
<div id="about" class="panel">
<h1>UEditor</h1>
<p id="version"></p>
<p><var id="lang_input_introduction"></var></p>
</div>
<div id="shortcuts" class="panel">
<table>
<thead>
<tr>
<td><var id="lang_Txt_shortcuts"></var></td>
<td><var id="lang_Txt_func"></var></td>
</tr>
</thead>
<tbody>
<tr>
<td>ctrl+b</td>
<td><var id="lang_Txt_bold"></var></td>
</tr>
<tr>
<td>ctrl+c</td>
<td><var id="lang_Txt_copy"></var></td>
</tr>
<tr>
<td>ctrl+x</td>
<td><var id="lang_Txt_cut"></var></td>
</tr>
<tr>
<td>ctrl+v</td>
<td><var id="lang_Txt_Paste"></var></td>
</tr>
<tr>
<td>ctrl+y</td>
<td><var id="lang_Txt_undo"></var></td>
</tr>
<tr>
<td>ctrl+z</td>
<td><var id="lang_Txt_redo"></var></td>
</tr>
<tr>
<td>ctrl+i</td>
<td><var id="lang_Txt_italic"></var></td>
</tr>
<tr>
<td>ctrl+u</td>
<td><var id="lang_Txt_underline"></var></td>
</tr>
<tr>
<td>ctrl+a</td>
<td><var id="lang_Txt_selectAll"></var></td>
</tr>
<tr>
<td>shift+enter</td>
<td><var id="lang_Txt_visualEnter"></var></td>
</tr>
<tr>
<td>alt+z</td>
<td><var id="lang_Txt_fullscreen"></var></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<script type="text/javascript" src="help.js"></script>
</body>
</html>

@ -0,0 +1,56 @@
/**
* Created with JetBrains PhpStorm.
* User: xuheng
* Date: 12-9-26
* Time: 下午1:06
* To change this template use File | Settings | File Templates.
*/
/**
* tab点击处理事件
* @param tabHeads
* @param tabBodys
* @param obj
*/
function clickHandler( tabHeads,tabBodys,obj ) {
//head样式更改
for ( var k = 0, len = tabHeads.length; k < len; k++ ) {
tabHeads[k].className = "";
}
obj.className = "focus";
//body显隐
var tabSrc = obj.getAttribute( "tabSrc" );
for ( var j = 0, length = tabBodys.length; j < length; j++ ) {
var body = tabBodys[j],
id = body.getAttribute( "id" );
body.onclick = function(){
this.style.zoom = 1;
};
if ( id != tabSrc ) {
body.style.zIndex = 1;
} else {
body.style.zIndex = 200;
}
}
}
/**
* TAB切换
* @param tabParentId tab的父节点ID或者对象本身
*/
function switchTab( tabParentId ) {
var tabElements = $G( tabParentId ).children,
tabHeads = tabElements[0].children,
tabBodys = tabElements[1].children;
for ( var i = 0, length = tabHeads.length; i < length; i++ ) {
var head = tabHeads[i];
if ( head.className === "focus" )clickHandler(tabHeads,tabBodys, head );
head.onclick = function () {
clickHandler(tabHeads,tabBodys,this);
}
}
}
switchTab("helptab");
document.getElementById('version').innerHTML = parent.UE.version;

@ -0,0 +1,936 @@
@charset "utf-8";
/* dialog样式 */
.wrapper {
zoom: 1;
width: 600px;
height: 412px;
margin: 0 auto;
padding: 20px;
position: relative;
font-family: sans-serif;
}
/*tab样式框大小*/
.tabhead {
float:left;
}
.tabbody {
width: 100%;
height: 346px;
position: relative;
clear: both;
}
.tabbody .panel {
position: absolute;
width: 0;
height: 0;
background: #fff;
overflow: hidden;
display: none;
}
.tabbody .panel.focus {
width: 100%;
height: 380px;
display: block;
}
/* 图片对齐方式 */
.alignBar{
float:right;
margin-top: 5px;
position: relative;
}
.alignBar .algnLabel{
float:left;
height: 20px;
line-height: 20px;
}
.alignBar #alignIcon{
zoom:1;
_display: inline;
display: inline-block;
position: relative;
}
.alignBar #alignIcon span{
float: left;
cursor: pointer;
display: block;
width: 19px;
height: 17px;
margin-right: 3px;
margin-left: 3px;
background-image: url(./images/alignicon.jpg);
}
.alignBar #alignIcon .none-align{
background-position: 0 -18px;
}
.alignBar #alignIcon .left-align{
background-position: -20px -18px;
}
.alignBar #alignIcon .right-align{
background-position: -40px -18px;
}
.alignBar #alignIcon .center-align{
background-position: -60px -18px;
}
.alignBar #alignIcon .none-align.focus{
background-position: 0 0;
}
.alignBar #alignIcon .left-align.focus{
background-position: -20px 0;
}
.alignBar #alignIcon .right-align.focus{
background-position: -40px 0;
}
.alignBar #alignIcon .center-align.focus{
background-position: -60px 0;
}
/* 远程图片样式 */
#remote {
z-index: 200;
}
#remote .top{
width: 100%;
margin-top: 20px;
}
#remote .left{
display: block;
float: left;
width: 240px;
height:10px;
}
#remote .right{
display: block;
float: right;
width: 345px;
height:10px;
}
#remote .row{
/*margin-left: 20px;*/
display: flex;
clear: both;
height: 30px;
line-height: 30px;
margin-bottom: 20px;
}
#remote .row label{
text-align: center;
width: 50px;
zoom:1;
_display: inline;
display:inline-block;
vertical-align: middle;
margin-right: 10px;
}
#remote .row label.algnLabel{
float: left;
}
#remote input.text{
height: 28px;
width: 150px;
font-size: 14px;
line-height: 1.42857143;
color: #555;
background-color: #fff;
background-image: none;
border: 1px solid #ccc;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
-webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
}
#remote input.text:focus {
border-color: #66afe9;
outline: 0;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6);
}
#remote textarea.text{
width: 160px;
height: 120px;
font-size: 14px;
line-height: 1.42857143;
color: #555;
background-color: #fff;
background-image: none;
border: 1px solid #ccc;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
-webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
resize: none;
}
#remote textarea.text:focus {
border-color: #66afe9;
outline: 0;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6);
}
#remote #url{
width: 537px;
height: 28px;
}
#remote #width,
#remote #height{
width: 60px;
height: 28px;
margin-left: 8px;
margin-right: 8px;
}
#remote .top .row:nth-child(2) span:nth-child(1) ,
#remote .top .row:nth-child(2) span:nth-child(2) {
display: block;
margin-right: 18px;
}
#remote .top .row:nth-child(2) span:last-child {
margin-left: 15px;
}
#remote #border,
#remote #vhSpace,
#remote #title{
width: 145px;
margin-right: 8px;
}
#remote #lock{
margin-top: 11px;
}
#remote #lockicon{
zoom: 1;
_display:inline;
display: inline-block;
height: 20px;
background: url("../../themes/notadd/images/lock.gif") -13px -13px no-repeat;
vertical-align: middle;
}
#remote #preview{
clear: both;
width: 345px;
height: 261px;
z-index: 9999;
background-color: #f3f3f3;
overflow: hidden;
}
/* 上传图片 */
.tabbody #upload.panel {
width: 0;
height: 0;
overflow: hidden;
position: absolute !important;
clip: rect(1px, 1px, 1px, 1px);
background: #fff;
display: block;
}
.tabbody #upload.panel.focus {
width: 100%;
height: 373px;
display: block;
clip: auto;
margin-top: 12px;
}
#upload .queueList {
margin: 0;
width: 100%;
height: 100%;
position: absolute;
overflow: hidden;
}
#upload p {
margin: 0;
}
.element-invisible {
width: 0 !important;
height: 0 !important;
border: 0;
padding: 0;
margin: 0;
overflow: hidden;
position: absolute !important;
clip: rect(1px, 1px, 1px, 1px);
}
#upload .placeholder {
margin: 10px;
height: 212px;
padding-top: 160px;
text-align: center;
/*background: url(./images/image.png) center 130px no-repeat #f3f3f3;*/
background-color: #f3f3f3;
color: #cccccc;
font-size: 18px;
position: relative;
top: 0;
}
#upload .placeholder .webuploader-pick {
font-size: 16px;
background: #f3f3f3;
border-radius: 3px;
line-height: 44px;
padding: 0 30px;
color: #646464;
display: inline-block;
margin: 0 auto 20px auto;
cursor: pointer;
/* box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); */
border: 1px solid #ccc;
}
#upload .placeholder .webuploader-pick-hover {
border: 1px solid #00a2d4;
color: #00a2d4;
}
#filePickerContainer {
text-align: center;
}
#upload .placeholder .flashTip {
color: #666666;
font-size: 12px;
position: absolute;
width: 100%;
text-align: center;
bottom: 20px;
}
#upload .placeholder .flashTip a {
color: #0785d1;
text-decoration: none;
}
#upload .placeholder .flashTip a:hover {
text-decoration: underline;
}
#upload .placeholder.webuploader-dnd-over {
border-color: #999999;
}
#upload .filelist {
list-style: none;
margin: 0;
padding: 0;
overflow-x: hidden;
overflow-y: auto;
position: relative;
height: 300px;
}
#upload .filelist:after {
content: '';
display: block;
width: 0;
height: 0;
overflow: hidden;
clear: both;
position: relative;
}
#upload .filelist li {
width: 135px;
height: 135px;
background: url(./images/bg.png);
text-align: center;
margin: 9px 0 0 9px;
*margin: 6px 0 0 6px;
position: relative;
display: block;
float: left;
overflow: hidden;
font-size: 12px;
}
#upload .filelist li p.log {
position: relative;
top: -45px;
}
#upload .filelist li p.title {
position: absolute;
top: 0;
left: 0;
width: 100%;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
top: 5px;
text-indent: 5px;
text-align: left;
}
#upload .filelist li p.progress {
position: absolute;
width: 100%;
bottom: 0;
left: 0;
height: 8px;
overflow: hidden;
z-index: 50;
margin: 0;
border-radius: 0;
background: none;
-webkit-box-shadow: 0 0 0;
}
#upload .filelist li p.progress span {
display: none;
overflow: hidden;
width: 0;
height: 100%;
background: #1483d8 url(./images/progress.png) repeat-x;
-webit-transition: width 200ms linear;
-moz-transition: width 200ms linear;
-o-transition: width 200ms linear;
-ms-transition: width 200ms linear;
transition: width 200ms linear;
-webkit-animation: progressmove 2s linear infinite;
-moz-animation: progressmove 2s linear infinite;
-o-animation: progressmove 2s linear infinite;
-ms-animation: progressmove 2s linear infinite;
animation: progressmove 2s linear infinite;
-webkit-transform: translateZ(0);
}
@-webkit-keyframes progressmove {
0% {
background-position: 0 0;
}
100% {
background-position: 17px 0;
}
}
@-moz-keyframes progressmove {
0% {
background-position: 0 0;
}
100% {
background-position: 17px 0;
}
}
@keyframes progressmove {
0% {
background-position: 0 0;
}
100% {
background-position: 17px 0;
}
}
#upload .filelist li p.imgWrap {
position: relative;
z-index: 2;
line-height: 135px;
vertical-align: middle;
overflow: hidden;
width: 135px;
height: 135px;
-webkit-transform-origin: 50% 50%;
-moz-transform-origin: 50% 50%;
-o-transform-origin: 50% 50%;
-ms-transform-origin: 50% 50%;
transform-origin: 50% 50%;
-webit-transition: 200ms ease-out;
-moz-transition: 200ms ease-out;
-o-transition: 200ms ease-out;
-ms-transition: 200ms ease-out;
transition: 200ms ease-out;
}
#upload .filelist li img {
width: 100%;
}
#upload .filelist li p.error {
background: #f43838;
color: #fff;
position: absolute;
bottom: 0;
left: 0;
height: 28px;
line-height: 28px;
width: 100%;
z-index: 100;
display:none;
}
#upload .filelist li .success {
display: block;
position: absolute;
left: 0;
bottom: 0;
height: 40px;
width: 100%;
z-index: 200;
background: url(../fonts/images/selected.svg) no-repeat right bottom;
}
#upload .filelist li.filePickerBlock {
width: 135px;
height: 135px;
background: url(../fonts/images/addfile.svg) no-repeat center;
border: 1px solid #eeeeee;
border-radius: 0;
}
#upload .filelist li.filePickerBlock div.webuploader-pick {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
opacity: 0;
background: none;
font-size: 0;
}
#upload .filelist div.file-panel {
position: absolute;
height: 0;
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#80000000', endColorstr='#80000000') \0;
background: rgba(0, 0, 0, 0.5);
width: 100%;
top: 0;
left: 0;
overflow: hidden;
z-index: 300;
}
#upload .filelist div.file-panel span {
width: 24px;
height: 24px;
display: inline;
float: right;
text-indent: -9999px;
overflow: hidden;
background: url(./images/icons.png) no-repeat;
background: url(./images/icons.gif) no-repeat \9;
margin: 5px 1px 1px;
cursor: pointer;
-webkit-tap-highlight-color: rgba(0,0,0,0);
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
#upload .filelist div.file-panel span.rotateLeft {
display:none;
background-position: 0 -24px;
}
#upload .filelist div.file-panel span.rotateLeft:hover {
background-position: 0 0;
}
#upload .filelist div.file-panel span.rotateRight {
display:none;
background-position: -24px -24px;
}
#upload .filelist div.file-panel span.rotateRight:hover {
background-position: -24px 0;
}
#upload .filelist div.file-panel span.cancel {
background-position: -48px -24px;
}
#upload .filelist div.file-panel span.cancel:hover {
background-position: -48px 0;
}
#upload .statusBar {
height: 45px;
border-bottom: 1px solid #dadada;
margin: 0 10px;
padding: 0;
line-height: 45px;
vertical-align: middle;
position: relative;
}
#upload .statusBar .progress {
border: 1px solid #1483d8;
width: 198px;
background: #fff;
height: 18px;
position: absolute;
top: 12px;
display: none;
text-align: center;
line-height: 18px;
color: #6dbfff;
margin: 0 10px 0 0;
}
#upload .statusBar .progress span.percentage {
width: 0;
height: 100%;
left: 0;
top: 0;
background: #1483d8;
position: absolute;
}
#upload .statusBar .progress span.text {
position: relative;
z-index: 10;
}
#upload .statusBar .info {
display: inline-block;
font-size: 14px;
color: #666666;
}
#upload .statusBar .btns {
position: absolute;
top: 7px;
right: 0;
line-height: 30px;
}
#filePickerBtn {
display: inline-block;
float: left;
}
#upload .statusBar .btns .webuploader-pick,
#upload .statusBar .btns .uploadBtn,
#upload .statusBar .btns .uploadBtn.state-uploading,
#upload .statusBar .btns .uploadBtn.state-paused {
background: #ffffff;
border: 1px solid #cfcfcf;
color: #565656;
padding: 0 18px;
display: inline-block;
border-radius: 3px;
margin-left: 10px;
cursor: pointer;
font-size: 14px;
float: left;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
#upload .statusBar .btns .webuploader-pick-hover,
#upload .statusBar .btns .uploadBtn:hover,
#upload .statusBar .btns .uploadBtn.state-uploading:hover,
#upload .statusBar .btns .uploadBtn.state-paused:hover {
background: #f0f0f0;
}
#upload .statusBar .btns .uploadBtn,
#upload .statusBar .btns .uploadBtn.state-paused{
background: #00b7ee;
color: #fff;
border-color: transparent;
}
#upload .statusBar .btns .uploadBtn:hover,
#upload .statusBar .btns .uploadBtn.state-paused:hover{
background: #00a2d4;
}
#upload .statusBar .btns .uploadBtn.disabled {
pointer-events: none;
filter:alpha(opacity=60);
-moz-opacity:0.6;
-khtml-opacity: 0.6;
opacity: 0.6;
}
/* 图片管理样式 */
#online {
width: 100%;
height: 336px;
padding: 10px 0 0 0;
}
#online #imageList{
width: 100%;
height: 100%;
overflow-x: hidden;
overflow-y: auto;
position: relative;
}
#online ul {
display: block;
list-style: none;
margin: 0;
padding: 0;
}
#online li {
float: left;
display: block;
list-style: none;
padding: 0;
width: 135px;
height: 135px;
margin: 0 0 9px 9px;
*margin: 0 0 6px 6px;
background-color: #eee;
overflow: hidden;
cursor: pointer;
position: relative;
}
#online li.clearFloat {
float: none;
clear: both;
display: block;
width:0;
height:0;
margin: 0;
padding: 0;
}
#online li img {
cursor: pointer;
width: 135px !important;
height: 135px !important;
margin-top: 0px !important;
}
#online li .icon {
cursor: pointer;
width: 135px;
height: 135px;
position: absolute;
top: 0;
left: 0;
z-index: 2;
border: 0;
background-repeat: no-repeat;
}
#online li .icon:hover {
width: 129px;
height: 129px;
border: 3px solid #1094fa;
}
#online li.selected .icon {
background-image: url(images/success.png);
background-image: url(images/success.gif)\9;
background-position: 95px 95px;
}
#online li.selected .icon:hover {
width: 129px;
height: 129px;
border: 3px solid #1094fa;
background-position: 92px 92px;
}
/* 图片搜索样式 */
#search .searchBar {
width: 100%;
height: 30px;
margin: 10px 0 5px 0;
padding: 0;
}
#search input.text{
width: 150px;
padding: 3px 6px;
font-size: 14px;
line-height: 1.42857143;
color: #555;
background-color: #fff;
background-image: none;
border: 1px solid #ccc;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
-webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
}
#search input.text:focus {
border-color: #66afe9;
outline: 0;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6);
}
#search input.searchTxt {
margin-left:5px;
padding-left: 5px;
background: #FFF;
width: 300px;
*width: 260px;
height: 21px;
line-height: 21px;
float: left;
dislay: block;
}
#search .pagination{
margin-top: 5px;
}
#search input.num{
width: 80px;
}
#search .searchType {
width: 95px;
height: 28px;
padding:0;
line-height: 28px;
border: 1px solid #d7d7d7;
border-radius: 0;
vertical-align: top;
margin-left: 5px;
float: left;
dislay: block;
}
#search #searchBtn,
#search #searchReset {
display: inline-block;
margin-bottom: 0;
margin-right: 5px;
padding: 4px 10px;
font-weight: 400;
text-align: center;
vertical-align: middle;
cursor: pointer;
background-image: none;
border: 1px solid transparent;
white-space: nowrap;
font-size: 14px;
border-radius: 4px;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
vertical-align: top;
float: right;
}
#search #searchBtn {
color: white;
border-color: #285e8e;
background-color: #3b97d7;
}
#search #searchReset {
color: #333;
border-color: #ccc;
background-color: #fff;
}
#search #searchBtn:hover {
background-color: #3276b1;
}
#search #searchReset:hover {
background-color: #eee;
}
#search .msg {
margin-left: 5px;
}
#search .searchList{
width: 100%;
height: 300px;
overflow: hidden;
clear: both;
}
#search .searchList ul{
margin:0;
padding:0;
list-style:none;
clear: both;
width: 100%;
height: 100%;
overflow-x: hidden;
overflow-y: auto;
zoom: 1;
position: relative;
}
#search .searchList li {
list-style:none;
float: left;
display: block;
width: 115px;
margin: 5px 10px 5px 20px;
*margin: 5px 10px 5px 15px;
padding:0;
font-size: 12px;
box-shadow: 0 1px 3px rgba(0, 0, 0, .3);
-moz-box-shadow: 0 1px 3px rgba(0, 0, 0, .3);
-webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, .3);
position: relative;
vertical-align: top;
text-align: center;
overflow: hidden;
cursor: pointer;
filter: alpha(Opacity=100);
-moz-opacity: 1;
opacity: 1;
border: 2px solid #eee;
}
#search .searchList li.selected {
filter: alpha(Opacity=40);
-moz-opacity: 0.4;
opacity: 0.4;
border: 2px solid #00a0e9;
}
#search .searchList li p {
background-color: #eee;
margin: 0;
padding: 0;
position: relative;
width:100%;
height:115px;
overflow: hidden;
}
#search .searchList li p img {
cursor: pointer;
border: 0;
}
#search .searchList li a {
color: #999;
border-top: 1px solid #F2F2F2;
background: #FAFAFA;
text-align: center;
display: block;
padding: 0 5px;
width: 105px;
height:32px;
line-height:32px;
white-space:nowrap;
text-overflow:ellipsis;
text-decoration: none;
overflow: hidden;
word-break: break-all;
}
#search .searchList a:hover {
text-decoration: underline;
color: #333;
}
#search .searchList .clearFloat{
clear: both;
}

@ -0,0 +1,127 @@
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>neditor图片对话框</title>
<script type="text/javascript" src="../internal.js"></script>
<!-- jquery -->
<script type="text/javascript" src="../../third-party/jquery-1.10.2.min.js"></script>
<!-- webuploader -->
<script src="../../third-party/webuploader/webuploader.js"></script>
<link rel="stylesheet" type="text/css" href="../../third-party/webuploader/webuploader.css">
<!-- image dialog -->
<link rel="stylesheet" href="image.css" type="text/css" />
<!--<link rel="stylesheet" href="../fonts/buttoniconex.css">-->
</head>
<body>
<div class="wrapper">
<div id="tabhead" class="tabhead">
<!-- <span class="tab" data-content-id="remote"><var id="lang_tab_remote"></var></span> -->
<span class="tab focus" data-content-id="upload"><var id="lang_tab_upload"></var></span>
<!-- <span class="tab" data-content-id="online"><var id="lang_tab_online"></var></span> -->
<!-- <span class="tab" data-content-id="search"><var id="lang_tab_search"></var></span> -->
</div>
<div class="alignBar">
<label class="algnLabel"><var id="lang_input_align"></var></label>
<span id="alignIcon">
<span id="noneAlign" class="none-align focus" data-align="none">
<!--<i class="icon edui-icon"></i>-->
</span>
<span id="leftAlign" class="left-align" data-align="left"></span>
<span id="rightAlign" class="right-align" data-align="right"></span>
<span id="centerAlign" class="center-align" data-align="center"></span>
</span>
<input id="align" name="align" type="hidden" value="none"/>
</div>
<div id="tabbody" class="tabbody">
<!-- 远程图片 -->
<div id="remote" class="panel">
<div class="top">
<div class="row">
<label for="url"><var id="lang_input_url"></var></label>
<span><input class="text" id="url" type="text"/></span>
</div>
<div class="row">
<label><var id="lang_input_size"></var></label>
<span><var id="lang_input_width">&nbsp;&nbsp;</var><input class="text" type="text" id="width"/>px </span>
<span><var id="lang_input_height">&nbsp;&nbsp;</var><input class="text" type="text" id="height"/>px </span>
<span><input id="lock" type="checkbox" disabled="disabled"><span id="lockicon"></span></span>
</div>
</div>
<div class="left">
<div class="row">
<label><var id="lang_input_border"></var></label>
<span><input class="text" type="text" id="border"/>px </span>
</div>
<div class="row">
<label><var id="lang_input_vhspace"></var></label>
<span><input class="text" type="text" id="vhSpace"/>px </span>
</div>
<div class="row">
<label><var id="lang_input_title"></var></label>
<span><textarea class="text" id="title" cols="30" rows="3"></textarea></span>
</div>
</div>
<div class="right"><div id="preview"></div></div>
</div>
<!-- 上传图片 -->
<div id="upload" class="panel focus">
<div id="queueList" class="queueList">
<div class="statusBar element-invisible">
<div class="progress">
<span class="text">0%</span>
<span class="percentage"></span>
</div><div class="info"></div>
<div class="btns">
<div id="filePickerBtn"></div>
<div class="uploadBtn"><var id="lang_start_upload"></var></div>
</div>
</div>
<div id="dndArea" class="placeholder">
<div class="filePickerContainer">
<div id="filePickerReady"></div>
</div>
</div>
<ul class="filelist element-invisible">
<li id="filePickerBlock" class="filePickerBlock"></li>
</ul>
</div>
</div>
<!-- 在线图片 -->
<div id="online" class="panel">
<div id="imageList"><var id="lang_imgLoading"></var></div>
</div>
<!-- 搜索图片 -->
<div id="search" class="panel">
<div class="searchBar">
<input id="searchTxt" class="searchTxt text" type="text" />
<select id="searchType" class="searchType">
<option value="&lm=-1&st=-1&face=0&s="></option>
<option value="&lm=-1&st=-1&face=0&s=3"></option>
<option value="&lm=-1&st=-1&face=1&s="></option>
<option value="&lm=-1&st=1&face=0&s="></option>
<option value="&lm=-1&st=2&face=0&s="></option>
<option value="&lm=6&st=-1&face=0&s="></option>
<option value="&lm=7&st=-1&face=0&s="></option>
</select>
<input id="searchReset" type="button" />
<input id="searchBtn" type="button" />
</div>
<div id="searchList" class="searchList"><ul id="searchListUl"></ul></div>
<div class="pagination">每页显示 <input type="number" id="pageNum" class="text num" value="50"/></div>
</div>
</div>
</div>
<script type="text/javascript" src="image.js"></script>
</body>
</html>

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 453 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 445 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

@ -0,0 +1,115 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script type="text/javascript" src="../internal.js"></script>
<style type="text/css">
.warp {width: 362px;height: 225px;padding: 20px 0 0 20px;position: relative;}
/*#url { margin-bottom: 2px; }*/
.format span{display: inline-block; text-align: center; zoom:1;width: 45px;}
input {
border-radius: 5px;
outline: none;
border: 1px solid #ccc;
margin-right: 8px;
}
table td{display: flex;
height: 30px;
line-height: 30px;
padding-bottom: 20px;}
table tr:last-child td{
padding-bottom: 10px;
}
#align {width: 79px;height: 29px;line-height: 29px;margin-top: 2px;border-radius: 5px; border: 1px solid #ccc;}
.scroll {
display: flex;
}
.scroll input {margin-top:9px;margin-right: 32px;}
.scroll td {padding-bottom:10px;}
</style>
</head>
<body>
<div class="warp">
<table width="300" cellpadding="0" cellspacing="0">
<tr>
<td colspan="2" class="format">
<span><var id="lang_input_address"></var></span>
<input style="width:294px;height:30px;" id="url" type="text" value=""/>
</td>
</tr>
<tr>
<td colspan="2" class="format"><span><var id="lang_input_width"></var></span><input style="width:294px;height:30px;" type="text" id="width"/> px</td>
</tr>
<tr>
<td colspan="2" class="format"><span><var id="lang_input_height"></var></span><input style="width:294px;height:30px;" type="text" id="height"/> px</td>
</tr>
<tr class="scroll">
<td><span><var id="lang_input_isScroll"></var></span><input type="checkbox" id="scroll"/> </td>
<td><span><var id="lang_input_frameborder"></var></span><input type="checkbox" id="frameborder"/> </td>
</tr>
<tr >
<td colspan="2"><span><var id="lang_input_alignMode"></var></span>
<select id="align">
<option value=""></option>
<option value="left"></option>
<option value="right"></option>
</select>
</td>
</tr>
</table>
</div>
<script type="text/javascript">
var iframe = editor._iframe;
if(iframe){
$G("url").value = iframe.getAttribute("src")||"";
$G("width").value = iframe.getAttribute("width")||iframe.style.width.replace("px","")||"";
$G("height").value = iframe.getAttribute("height") || iframe.style.height.replace("px","") ||"";
$G("scroll").checked = (iframe.getAttribute("scrolling") == "yes") ? true : false;
$G("frameborder").checked = (iframe.getAttribute("frameborder") == "1") ? true : false;
$G("align").value = iframe.align ? iframe.align : "";
}
function setIframe(){
var url = $G("url").value.replace(/^\s*|\s*$/ig,""),
width = $G("width").value,
height = $G("height").value,
scroll = $G("scroll"),
frameborder = $G("frameborder"),
float = $G("align").value,
newIframe = editor.document.createElement("iframe"),
div;
if(!url){
alert(lang.enterAddress);
return false;
}
newIframe.setAttribute("src",/http:\/\/|https:\/\//ig.test(url) ? url : "http://"+url);
/^[1-9]+[.]?\d*$/g.test( width ) ? newIframe.setAttribute("width",width) : "";
/^[1-9]+[.]?\d*$/g.test( height ) ? newIframe.setAttribute("height",height) : "";
scroll.checked ? newIframe.setAttribute("scrolling","yes") : newIframe.setAttribute("scrolling","no");
frameborder.checked ? newIframe.setAttribute("frameborder","1",0) : newIframe.setAttribute("frameborder","0",0);
float ? newIframe.setAttribute("align",float) : newIframe.setAttribute("align","");
if(iframe){
iframe.parentNode.insertBefore(newIframe,iframe);
domUtils.remove(iframe);
}else{
div = editor.document.createElement("div");
div.appendChild(newIframe);
editor.execCommand("inserthtml",div.innerHTML);
}
editor._iframe = null;
dialog.close();
}
dialog.onok = setIframe;
$G("url").onkeydown = function(evt){
evt = evt || event;
if(evt.keyCode == 13){
setIframe();
}
};
$focus($G( "url" ));
</script>
</body>
</html>

@ -0,0 +1,81 @@
(function () {
var parent = window.parent;
//dialog对象
dialog = parent.$EDITORUI[window.frameElement.id.replace( /_iframe$/, '' )];
//当前打开dialog的编辑器实例
editor = dialog.editor;
UE = parent.UE;
domUtils = UE.dom.domUtils;
utils = UE.utils;
browser = UE.browser;
ajax = UE.ajax;
$G = function ( id ) {
return document.getElementById( id )
};
//focus元素
$focus = function ( node ) {
setTimeout( function () {
if ( browser.ie ) {
var r = node.createTextRange();
r.collapse( false );
r.select();
} else {
node.focus()
}
}, 0 )
};
utils.loadFile(document,{
href:"../../themes/" + editor.options.theme + "/dialogbase.css?cache="+Math.random(),
tag:"link",
type:"text/css",
rel:"stylesheet"
});
lang = editor.getLang(dialog.className.split( "-" )[2]);
if(lang){
domUtils.on(window,'load',function () {
var langImgPath = editor.options.langPath + editor.options.lang + "/images/";
//针对静态资源
for ( var i in lang["static"] ) {
var dom = $G( i );
if(!dom) continue;
var tagName = dom.tagName,
content = lang["static"][i];
if(content.src){
//clone
content = utils.extend({},content,false);
content.src = langImgPath + content.src;
}
if(content.style){
content = utils.extend({},content,false);
content.style = content.style.replace(/url\s*\(/g,"url(" + langImgPath)
}
switch ( tagName.toLowerCase() ) {
case "var":
dom.parentNode.replaceChild( document.createTextNode( content ), dom );
break;
case "select":
var ops = dom.options;
for ( var j = 0, oj; oj = ops[j]; ) {
oj.innerHTML = content.options[j++];
}
for ( var p in content ) {
p != "options" && dom.setAttribute( p, content[p] );
}
break;
default :
domUtils.setAttributes( dom, content);
}
}
} );
}
})();

@ -0,0 +1,135 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<script type="text/javascript" src="../internal.js"></script>
<style type="text/css">
*{margin:0;padding:0;color: #838383;}
table{font-size: 12px;margin: 13px 23px 0px;line-height: 30px}
tr{height:50px}
tr.tr-txt{height: 40px;}
td{width: 170px}
.txt{width:290px;height:30px;line-height:21px;border:1px solid #d7d7d7;margin-left: 4px;border-radius: 5px;}
</style>
</head>
<body>
<table>
<tr>
<td><label for="text"> <var id="lang_input_text"></var></label></td>
<td><input class="txt" id="text" type="text" disabled="true"/></td>
</tr>
<tr>
<td><label for="href"> <var id="lang_input_url"></var></label></td>
<td><input class="txt" id="href" type="text" /></td>
</tr>
<tr>
<td><label for="title"> <var id="lang_input_title"></var></label></td>
<td><input class="txt" id="title" type="text"/></td>
</tr>
<tr class="tr-txt">
<td colspan="2">
<label for="target"><var id="lang_input_target"></var></label>
<input id="target" type="checkbox"/>
</td>
</tr>
<tr>
<td colspan="2" id="msg"></td>
</tr>
</table>
<script type="text/javascript">
editor.setOpt('allowLinkProtocols', ['http:', 'https:', '#', '/', 'ftp:', 'mailto:', 'tel:']);
var allowLinkProtocols = editor.getOpt('allowLinkProtocols');
var range = editor.selection.getRange(),
link = range.collapsed ? editor.queryCommandValue( "link" ) : editor.selection.getStart(),
url,
text = $G('text'),
rangeLink = domUtils.findParentByTagName(range.getCommonAncestor(),'a',true),
orgText;
link = domUtils.findParentByTagName( link, "a", true );
if(link){
url = utils.html(link.getAttribute( '_href' ) || link.getAttribute( 'href', 2 ));
if(rangeLink === link && !link.getElementsByTagName('img').length){
text.removeAttribute('disabled');
orgText = text.value = link[browser.ie ? 'innerText':'textContent'];
}else{
text.setAttribute('disabled','true');
text.value = lang.validLink;
}
}else{
if(range.collapsed){
text.removeAttribute('disabled');
text.value = '';
}else{
text.setAttribute('disabled','true');
text.value = lang.validLink;
}
}
$G("title").value = url ? link.title : "";
$G("href").value = url ? url: '';
$G("target").checked = url && link.target == "_blank" ? true : false;
$focus($G("href"));
function handleDialogOk(){
var href =$G('href').value.replace(/^\s+|\s+$/g, '');
if(href){
if(!hrefStartWith(href, allowLinkProtocols)) {
href = "http://" + href;
}
var obj = {
'href' : href,
'target' : $G("target").checked ? "_blank" : '_self',
'title' : $G("title").value.replace(/^\s+|\s+$/g, ''),
'_href':href
};
//修改链接内容的情况太特殊了,所以先做到这里了
//todo:情况多的时候,做到command里
if(orgText && text.value != orgText){
link[browser.ie ? 'innerText' : 'textContent'] = obj.textValue = text.value;
range.selectNode(link).select()
}
if(range.collapsed){
obj.textValue = text.value;
}
editor.execCommand('link',utils.clearEmptyAttrs(obj) );
dialog.close();
}
}
dialog.onok = handleDialogOk;
$G('href').onkeydown = $G('title').onkeydown = function(evt){
evt = evt || window.event;
if (evt.keyCode == 13) {
handleDialogOk();
return false;
}
};
$G('href').onblur = function(){
if(!hrefStartWith(this.value, allowLinkProtocols)){
$G("msg").innerHTML = "<span style='color: red'>"+lang.httpPrompt+"</span>";
}else{
$G("msg").innerHTML = "";
}
};
function hrefStartWith(href,arr){
href = href.replace(/^\s+|\s+$/g, '');
for(var i=0,ai;ai=arr[i++];){
if(href.indexOf(ai)==0){
return true;
}
}
return false;
}
</script>
</body>
</html>

@ -0,0 +1,159 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script type="text/javascript" src="../internal.js"></script>
<script type="text/javascript" src="https://api.map.baidu.com/api?v=1.3&services=true&s=1"></script>
<style type="text/css">
.content{
width: 600px;
height: 415px;
margin: 20px;
}
.content table{width: 100%}
.content table td{vertical-align: middle;}
#city,#address{
height: 26px;
background: #FFF;
border: 1px solid #ccc;
line-height: 26px;
border-radius: 5px;
margin-left: 5px;
}
#city{width:76px}
#address{width:178px}
#is_dynamic_label span{vertical-align:middle;margin: 3px 0px 3px 3px;}
#is_dynamic_label input{vertical-align:middle;margin: 3px 3px 3px 50px;}
#search {
display: block;
text-align: center;
line-height: 30px;
text-decoration: none;
height: 30px;
width: 78px;
border: 0;
color: #838383;
background-color: #3498db;
border-radius: 5px;
color: #fff;
}
</style>
</head>
<body>
<div class="content">
<table>
<tr>
<td><var id="lang_city"></var>:</td>
<td><input id="city" type="text" /></td>
<td><var id="lang_address"></var>:</td>
<td><input id="address" type="text" value="" /></td>
<td><a href="javascript:doSearch()" class="button" id="search"><var id="lang_search"></var></a></td>
<td><label id="is_dynamic_label" for="is_dynamic"><input id="is_dynamic" type="checkbox" name="is_dynamic" /><span><var id="lang_dynamicmap"></var></span></label></td>
</tr>
</table>
<div style="width:100%;height:363px;margin:20px auto;border:none" id="container"></div>
</div>
<script type="text/javascript">
var map = new BMap.Map("container"),marker,point,styleStr;
map.enableScrollWheelZoom();
map.enableContinuousZoom();
function doSearch(){
if (!document.getElementById('city').value) {
alert(lang.cityMsg);
return;
}
var search = new BMap.LocalSearch(document.getElementById('city').value, {
onSearchComplete: function (results){
if (results && results.getNumPois()) {
var points = [];
for (var i=0; i<results.getCurrentNumPois(); i++) {
points.push(results.getPoi(i).point);
}
if (points.length > 1) {
map.setViewport(points);
} else {
map.centerAndZoom(points[0], 13);
}
point = map.getCenter();
marker.setPosition(point);
} else {
alert(lang.errorMsg);
}
}
});
search.search(document.getElementById('address').value || document.getElementById('city').value);
}
//获得参数
function getPars(str,par){
var reg = new RegExp(par+"=((\\d+|[.,])*)","g");
return reg.exec(str)[1];
}
function init(){
var mapNode = editor.selection.getRange().getClosedNode(),
isMapImg = mapNode && /api[.]map[.]baidu[.]com/ig.test(mapNode.getAttribute("src")),
isMapIframe = mapNode && domUtils.hasClass(mapNode, 'ueditor_baidumap');
if(isMapImg || isMapIframe){
var url, centerPos, markerPos;
if(isMapIframe) {
url = decodeURIComponent(mapNode.getAttribute("src"));
$G('is_dynamic').checked = true;
styleStr = mapNode.style.cssText;
} else {
url = mapNode.getAttribute("src");
styleStr = mapNode.style.cssText;
}
centerPos = getPars(url,"center").split(",");
markerPos = getPars(url, "mMarkerarkers").split(",");
point = new BMap.Point(Number(centerPos[0]),Number(centerPos[1]));
marker = new BMap.Marker(new BMap.Point(Number(markerPos[0]), Number(markerPos[1])));
map.addControl(new BMap.NavigationControl());
map.centerAndZoom(point, Number(getPars(url,"zoom")));
}else{
point = new BMap.Point(116.404, 39.915); // 创建点坐标
marker = new BMap.Marker(point);
map.addControl(new BMap.NavigationControl());
map.centerAndZoom(point, 10); // 初始化地图,设置中心点坐标和地图级别。
}
marker.enableDragging();
map.addOverlay(marker);
}
init();
document.getElementById('address').onkeydown = function (evt){
evt = evt || event;
if (evt.keyCode == 13) {
doSearch();
}
};
dialog.onok = function (){
var center = map.getCenter();
var zoom = map.zoomLevel;
var size = map.getSize();
var mapWidth = size.width;
var mapHeight = size.height;
var point = marker.getPosition();
if($G('is_dynamic').checked) {
var URL = editor.options.UEDITOR_HOME_URL,
url = [URL + (/\/$/.test(URL) ? '':'/') + "dialogs/map/show.html" +
'#center=' + center.lng + ',' + center.lat,
'&zoom=' + zoom,
'&width=' + mapWidth,
'&height=' + mapHeight,
'&markers=' + point.lng + ',' + point.lat,
'&markerStyles=' + 'l,A'].join('');
editor.execCommand('inserthtml', '<iframe class="ueditor_baidumap" src="' + url + '"' + (styleStr ? ' style="' + styleStr + '"' :'') + ' frameborder="0" width="' + (mapWidth+4) + '" height="' + (mapHeight+4) + '"></iframe>');
} else {
var url = "https://api.map.baidu.com/staticimage?center=" + center.lng + ',' + center.lat +
"&zoom=" + zoom + "&width=" + size.width + '&height=' + size.height + "&markers=" + point.lng + ',' + point.lat;
editor.execCommand('inserthtml', '<img width="'+ size.width +'" height="'+ size.height +'" src="' + url + '"' + (styleStr ? ' style="' + styleStr + '"' :'') + '/>');
}
};
document.getElementById("address").focus();
</script>
</body>
</html>

@ -0,0 +1,118 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8"/>
<meta name="keywords" content="百度地图,百度地图API,百度地图自定义工具,百度地图所见即所得工具"/>
<meta name="description" content="百度地图API自定义地图,帮助用户在可视化操作下生成百度地图"/>
<title>百度地图API自定义地图</title>
<!--引用百度地图API-->
<style type="text/css">
html, body {
margin: 0;
padding: 0;
overflow: hidden;
}
</style>
<script type="text/javascript" src="https://api.map.baidu.com/api?key=&v=1.3&services=true&s=1"></script>
</head>
<body onload="initMap();">
<!--百度地图容器-->
<div style="width:697px;height:550px;border:#ccc solid 1px;" id="dituContent"></div>
</body>
<script type="text/javascript">
function getParam(name) {
return location.href.match(new RegExp('[?#&]' + name + '=([^?#&]+)', 'i')) ? RegExp.$1 : '';
}
var map, marker;
var centerParam = getParam('center');
var zoomParam = getParam('zoom');
var widthParam = getParam('width');
var heightParam = getParam('height');
var markersParam = getParam('markers');
var markerStylesParam = getParam('markerStyles');
//创建和初始化地图函数:
function initMap() {
// [FF]切换模式后报错
if (!window.BMap) {
return;
}
var dituContent = document.getElementById('dituContent');
dituContent.style.width = widthParam + 'px';
dituContent.style.height = heightParam + 'px';
createMap();//创建地图
setMapEvent();//设置地图事件
addMapControl();//向地图添加控件
// 创建标注
var markersArr = markersParam.split(',');
var point = new BMap.Point(markersArr[0], markersArr[1]);
marker = new BMap.Marker(point);
marker.enableDragging();
map.addOverlay(marker); // 将标注添加到地图中
if(parent.editor && parent.document.body.contentEditable=="true") { //在编辑状态下
setMapListener();//地图改变修改外层的iframe标签src属性
}
}
//创建地图函数:
function createMap() {
map = new BMap.Map("dituContent");//在百度地图容器中创建一个地图
var centerArr = centerParam.split(',');
var point = new BMap.Point(parseFloat(centerArr[0]), parseFloat(centerArr[1]));//定义一个中心点坐标
map.centerAndZoom(point, parseInt(zoomParam));//设定地图的中心点和坐标并将地图显示在地图容器中
}
//地图事件设置函数:
function setMapEvent() {
map.enableDragging();//启用地图拖拽事件,默认启用(可不写)
map.enableScrollWheelZoom();//启用地图滚轮放大缩小
map.enableDoubleClickZoom();//启用鼠标双击放大,默认启用(可不写)
map.enableKeyboard();//启用键盘上下左右键移动地图
}
//地图控件添加函数:
function addMapControl() {
//向地图中添加缩放控件
var ctrl_nav = new BMap.NavigationControl({anchor: BMAP_ANCHOR_TOP_LEFT, type: BMAP_NAVIGATION_CONTROL_LARGE});
map.addControl(ctrl_nav);
//向地图中添加缩略图控件
var ctrl_ove = new BMap.OverviewMapControl({anchor: BMAP_ANCHOR_BOTTOM_RIGHT, isOpen: 1});
map.addControl(ctrl_ove);
//向地图中添加比例尺控件
var ctrl_sca = new BMap.ScaleControl({anchor: BMAP_ANCHOR_BOTTOM_LEFT});
map.addControl(ctrl_sca);
}
function setMapListener() {
var editor = parent.editor, containerIframe,
iframes = parent.document.getElementsByTagName('iframe');
for (var key in iframes) {
if (iframes[key].contentWindow == window) {
containerIframe = iframes[key];
break;
}
}
if (containerIframe) {
map.addEventListener('moveend', mapListenerHandler);
map.addEventListener('zoomend', mapListenerHandler);
marker.addEventListener('dragend', mapListenerHandler);
}
function mapListenerHandler() {
var zoom = map.getZoom(),
center = map.getCenter(),
marker = window.marker.getPoint();
containerIframe.src = containerIframe.src.
replace(new RegExp('([?#&])center=([^?#&]+)', 'i'), '$1center=' + center.lng + ',' + center.lat).
replace(new RegExp('([?#&])markers=([^?#&]+)', 'i'), '$1markers=' + marker.lng + ',' + marker.lat).
replace(new RegExp('([?#&])zoom=([^?#&]+)', 'i'), '$1zoom=' + zoom);
editor.fireEvent('saveScene');
}
}
</script>
</html>

@ -0,0 +1,21 @@
<svg width='120px' height='120px' xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid" class="uil-balls"><rect x="0" y="0" width="100" height="100" fill="none" class="bk"></rect><g transform="rotate(0 50 50)">
<circle r="5" cx="30" cy="50">
<animateTransform attributeName="transform" type="translate" begin="0s" repeatCount="indefinite" dur="1s" values="0 0;19.999999999999996 -20" keyTimes="0;1"/>
<animate attributeName="fill" dur="1s" begin="0s" repeatCount="indefinite" keyTimes="0;1" values="#fff;#999"/>
</circle>
</g><g transform="rotate(90 50 50)">
<circle r="5" cx="30" cy="50">
<animateTransform attributeName="transform" type="translate" begin="0s" repeatCount="indefinite" dur="1s" values="0 0;19.999999999999996 -20" keyTimes="0;1"/>
<animate attributeName="fill" dur="1s" begin="0s" repeatCount="indefinite" keyTimes="0;1" values="#999;#000"/>
</circle>
</g><g transform="rotate(180 50 50)">
<circle r="5" cx="30" cy="50">
<animateTransform attributeName="transform" type="translate" begin="0s" repeatCount="indefinite" dur="1s" values="0 0;19.999999999999996 -20" keyTimes="0;1"/>
<animate attributeName="fill" dur="1s" begin="0s" repeatCount="indefinite" keyTimes="0;1" values="#000;#fff"/>
</circle>
</g><g transform="rotate(270 50 50)">
<circle r="5" cx="30" cy="50">
<animateTransform attributeName="transform" type="translate" begin="0s" repeatCount="indefinite" dur="1s" values="0 0;19.999999999999996 -20" keyTimes="0;1"/>
<animate attributeName="fill" dur="1s" begin="0s" repeatCount="indefinite" keyTimes="0;1" values="#fff;#999"/>
</circle>
</g></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

@ -0,0 +1,90 @@
.wrapper{margin: 20px;}
.searchBar{height:30px;text-align:left;}
.searchBtn{
font-size: 13px;
height: 28px;
border-radius: 5px;
border: 1px solid #3498db;
width: 80px;
background-color: #3498db;
color: #fff;
margin-left: 6px;
}
.resultBar{width:589px;height:357px;margin-top: 20px;border: 1px solid #CCC;border-radius: 5px;box-shadow: 2px 2px 5px #D3D6DA;overflow: hidden;}
.listPanel{overflow: hidden;}
.panelon{display:block;}
.paneloff{display:none}
.page{width:220px;margin:20px auto;overflow: hidden;display: flex;justify-content: center;flex-direction: row-reverse;}
.pageon{float:right;width:26px;line-height:26px;height:26px;margin-right: 5px;border: none;color: #fff;font-weight: bold;text-align:center;
background-color: #3498db;border-radius: 5px;}
.pageoff{float:right;width:24px;line-height:24px;height:24px;cursor:pointer;background-color: #fff;
color: #ccc;margin-right: 5px;text-decoration: none;text-align:center;}
.m-box{width:589px;}
.m-m{float: left;line-height: 26px;height: 26px;display: flex;}
.m-h{height:30px;line-height:30px;padding-left: 70px;background-color:#f3f3f3;font-weight: bold;font-size: 12px;color: #666;}
.m-l{float:left;width:40px; margin-top: 8px; margin-left: 17px;margin-right: 10px;}
.m-t{float:left;width:142px;}
.m-s{float:left;width:142px;}
.m-z{float:left;width:142px;}
.m-try-t{float: left;width: 60px;;}
/*.m-try{float:left;width:20px;height:20px;background:url('http://static.tieba.baidu.com/tb/editor/images/try_music.gif') no-repeat ;}*/
.m-try {
width: 4px;
display: flex;
height: 0;
border-top: 5px solid transparent;
border-left: 8px solid #9e9e9e;
border-bottom: 5px solid transparent;
margin-top: 8px;
}
/*.m-trying{float:left;width:20px;height:20px;background:url('http://static.tieba.baidu.com/tb/editor/images/stop_music.gif') no-repeat ;}*/
.m-trying {
display: flex;
width: 3px;
height: 12px;
background-color: #3498db;
margin-top: 8px;
position: relative;
}
.m-trying:after {
width: 3px;
height: 12px;
background-color: #3498db;
left : 5px;
display: block;
position: absolute;
content: " ";
}
.loading{
width: 113px;
height: 95px;
font-size: 7px;
margin: 114px auto;
background: url(balls.svg) no-repeat;
}
.empty{
width: 300px;
height: 40px;
padding: 2px;
margin: 157px auto;
line-height: 40px;
color: #666;
text-align: center;
}
#J_searchName{
height: 26px;
width: 295px;
border-radius: 5px;
border: 1px solid #ccc;
}
.listPanel input[type="radio"] {
background-color: #fff;
}

@ -0,0 +1,32 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>插入音乐</title>
<script type="text/javascript" src="../internal.js"></script>
<link rel="stylesheet" type="text/css" href="music.css">
</head>
<body>
<div class="wrapper">
<div class="searchBar">
<input id="J_searchName" type="text"/>
<input type="button" class="searchBtn" id="J_searchBtn">
</div>
<div class="resultBar" id="J_resultBar">
<div class="loading" style="display:none"></div>
<div class="empty"><var id="lang_input_tips"></var></div>
</div>
<div id="J_preview"></div>
</div>
<script type="text/javascript" src="music.js"></script>
<script type="text/javascript">
var music = new Music;
dialog.onok = function () {
music.exec();
};
dialog.oncancel = function () {
$G('J_preview').innerHTML = "";
};
</script>
</body>
</html>

@ -0,0 +1,192 @@
function Music() {
this.init();
}
(function () {
var pages = [],
panels = [],
selectedItem = null;
Music.prototype = {
total:70,
pageSize:10,
dataUrl:"https://tingapi.b0.upaiyun.com/v1/restserver/ting?method=baidu.ting.search.common",
playerUrl:"http://box.baidu.com/widget/flash/bdspacesong.swf",
init:function () {
var me = this;
domUtils.on($G("J_searchName"), "keyup", function (event) {
var e = window.event || event;
if (e.keyCode == 13) {
me.dosearch();
}
});
domUtils.on($G("J_searchBtn"), "click", function () {
me.dosearch();
});
},
callback:function (data) {
var me = this;
me.data = data.song_list;
setTimeout(function () {
$G('J_resultBar').innerHTML = me._renderTemplate(data.song_list);
}, 300);
},
dosearch:function () {
var me = this;
selectedItem = null;
var key = $G('J_searchName').value;
if (utils.trim(key) == "")return false;
key = encodeURIComponent(key);
me._sent(key);
},
doselect:function (i) {
var me = this;
if (typeof i == 'object') {
selectedItem = i;
} else if (typeof i == 'number') {
selectedItem = me.data[i];
}
},
onpageclick:function (id) {
var me = this;
for (var i = 0; i < pages.length; i++) {
$G(pages[i]).className = 'pageoff';
$G(panels[i]).className = 'paneloff';
}
$G('page' + id).className = 'pageon';
$G('panel' + id).className = 'panelon';
},
listenTest:function (elem) {
var me = this,
view = $G('J_preview'),
is_play_action = (elem.className == 'm-try'),
old_trying = me._getTryingElem();
if (old_trying) {
old_trying.className = 'm-try';
view.innerHTML = '';
}
if (is_play_action) {
elem.className = 'm-trying';
view.innerHTML = me._buildMusicHtml(me._getUrl(true));
}
},
_sent:function (param) {
var me = this;
$G('J_resultBar').innerHTML = '<div class="loading"></div>';
utils.loadFile(document, {
src:me.dataUrl + '&query=' + param + '&page_size=' + me.total + '&callback=music.callback&.r=' + Math.random(),
tag:"script",
type:"text/javascript",
defer:"defer"
});
},
_removeHtml:function (str) {
var reg = /<\s*\/?\s*[^>]*\s*>/gi;
return str.replace(reg, "");
},
_getUrl:function (isTryListen) {
var me = this;
var param = 'from=tiebasongwidget&url=&name=' + encodeURIComponent(me._removeHtml(selectedItem.title)) + '&artist='
+ encodeURIComponent(me._removeHtml(selectedItem.author)) + '&extra='
+ encodeURIComponent(me._removeHtml(selectedItem.album_title))
+ '&autoPlay='+isTryListen+'' + '&loop=true';
return me.playerUrl + "?" + param;
},
_getTryingElem:function () {
var s = $G('J_listPanel').getElementsByTagName('span');
for (var i = 0; i < s.length; i++) {
if (s[i].className == 'm-trying')
return s[i];
}
return null;
},
_buildMusicHtml:function (playerUrl) {
var html = '<embed class="BDE_try_Music" allowfullscreen="false" pluginspage="http://www.macromedia.com/go/getflashplayer"';
html += ' src="' + playerUrl + '"';
html += ' width="1" height="1" style="position:absolute;left:-2000px;"';
html += ' type="application/x-shockwave-flash" wmode="transparent" play="true" loop="false"';
html += ' menu="false" allowscriptaccess="never" scale="noborder">';
return html;
},
_byteLength:function (str) {
return str.replace(/[^\u0000-\u007f]/g, "\u0061\u0061").length;
},
_getMaxText:function (s) {
var me = this;
s = me._removeHtml(s);
if (me._byteLength(s) > 12)
return s.substring(0, 5) + '...';
if (!s) s = "&nbsp;";
return s;
},
_rebuildData:function (data) {
var me = this,
newData = [],
d = me.pageSize,
itembox;
for (var i = 0; i < data.length; i++) {
if ((i + d) % d == 0) {
itembox = [];
newData.push(itembox)
}
itembox.push(data[i]);
}
return newData;
},
_renderTemplate:function (data) {
var me = this;
if (data.length == 0)return '<div class="empty">' + lang.emptyTxt + '</div>';
data = me._rebuildData(data);
var s = [], p = [], t = [];
s.push('<div id="J_listPanel" class="listPanel">');
p.push('<div class="page">');
for (var i = 0, tmpList; tmpList = data[i++];) {
panels.push('panel' + i);
pages.push('page' + i);
if (i == 1) {
s.push('<div id="panel' + i + '" class="panelon">');
if (data.length != 1) {
t.push('<div id="page' + i + '" onclick="music.onpageclick(' + i + ')" class="pageon">' + (i ) + '</div>');
}
} else {
s.push('<div id="panel' + i + '" class="paneloff">');
t.push('<div id="page' + i + '" onclick="music.onpageclick(' + i + ')" class="pageoff">' + (i ) + '</div>');
}
s.push('<div class="m-box">');
s.push('<div class="m-h"><span class="m-t">' + lang.chapter + '</span><span class="m-s">' + lang.singer
+ '</span><span class="m-z">' + lang.special + '</span><span class="m-try-t">' + lang.listenTest + '</span></div>');
for (var j = 0, tmpObj; tmpObj = tmpList[j++];) {
s.push('<label for="radio-' + i + '-' + j + '" class="m-m">');
s.push('<input type="radio" id="radio-' + i + '-' + j + '" name="musicId" class="m-l" onclick="music.doselect(' + (me.pageSize * (i-1) + (j-1)) + ')"/>');
s.push('<span class="m-t">' + me._getMaxText(tmpObj.title) + '</span>');
s.push('<span class="m-s">' + me._getMaxText(tmpObj.author) + '</span>');
s.push('<span class="m-z">' + me._getMaxText(tmpObj.album_title) + '</span>');
s.push('<span class="m-try" onclick="music.doselect(' + (me.pageSize * (i-1) + (j-1)) + ');music.listenTest(this)"></span>');
s.push('</label>');
}
s.push('</div>');
s.push('</div>');
}
t.reverse();
p.push(t.join(''));
s.push('</div>');
p.push('</div>');
return s.join('') + p.join('');
},
exec:function () {
var me = this;
if (selectedItem == null) return;
$G('J_preview').innerHTML = "";
editor.execCommand('music', {
url:me._getUrl(false),
width:400,
height:95
});
}
};
})();

@ -0,0 +1,40 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<style>
html,body{
height:100%;
width:100%;
padding:0;
margin:0;
}
#preview{
width:100%;
height:100%;
padding:0;
margin:0;
}
#preview *{font-family:sans-serif;font-size:16px;}
</style>
<script type="text/javascript" src="../internal.js"></script>
<script src="../../neditor.parse.js"></script>
<title></title>
</head>
<body class="view">
<div id="preview" style="margin:8px">
</div>
</body>
<script>
document.getElementById('preview').innerHTML = editor.getContent();
uParse('#preview',{
rootPath : '../../',
chartContainerHeight:500
})
dialog.oncancel = function(){
document.getElementById('preview').innerHTML = '';
}
</script>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 628 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 608 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 516 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 578 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 519 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 657 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 454 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 536 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 435 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 330 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 775 B

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

Loading…
Cancel
Save