From 154e103a544c6281fffc77d24b249ed5a5c7ef8b Mon Sep 17 00:00:00 2001 From: heshiguang <1047029621@qq.com> Date: Sat, 23 Sep 2023 20:24:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4Vue=E5=AE=A2=E6=88=B7?= =?UTF-8?q?=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 10 + .idea/encodings.xml | 4 + .idea/inspectionProfiles/Project_Default.xml | 6 + .idea/misc.xml | 6 + .idea/modules.xml | 8 + .idea/restaurant.iml | 12 + .idea/workspace.xml | 612 + babel.config.js | 5 + package-lock.json | 11850 ++++++++++++++++ package.json | 51 + postcss.config.js | 15 + public/favicon.ico | Bin 0 -> 4286 bytes public/iconfont.js | 1 + public/index.html | 25 + public/static/UEditor/dialogs/image/image.css | 894 ++ .../static/UEditor/dialogs/image/image.html | 120 + public/static/UEditor/dialogs/image/image.js | 1142 ++ .../dialogs/image/images/alignicon.jpg | Bin 0 -> 16101 bytes .../UEditor/dialogs/image/images/bg.png | Bin 0 -> 2810 bytes .../UEditor/dialogs/image/images/icons.gif | Bin 0 -> 453 bytes .../UEditor/dialogs/image/images/icons.png | Bin 0 -> 2678 bytes .../UEditor/dialogs/image/images/image.png | Bin 0 -> 1672 bytes .../UEditor/dialogs/image/images/progress.png | Bin 0 -> 1269 bytes .../UEditor/dialogs/image/images/success.gif | Bin 0 -> 445 bytes .../UEditor/dialogs/image/images/success.png | Bin 0 -> 1621 bytes public/static/UEditor/dialogs/link/link.html | 126 + public/static/UEditor/index.html | 175 + public/static/UEditor/jsp/config.json | 95 + public/static/UEditor/jsp/controller.jsp | 14 + .../static/UEditor/lang/zh-cn/images/copy.png | Bin 0 -> 4319 bytes .../UEditor/lang/zh-cn/images/localimage.png | Bin 0 -> 6979 bytes .../UEditor/lang/zh-cn/images/music.png | Bin 0 -> 23106 bytes .../UEditor/lang/zh-cn/images/upload.png | Bin 0 -> 6608 bytes public/static/UEditor/lang/zh-cn/zh-cn.js | 669 + .../UEditor/themes/default/css/ueditor.css | 1903 +++ .../themes/default/css/ueditor.min.css | 8 + .../UEditor/themes/default/dialogbase.css | 100 + .../UEditor/themes/default/images/anchor.gif | Bin 0 -> 184 bytes .../UEditor/themes/default/images/arrow.png | Bin 0 -> 1173 bytes .../themes/default/images/arrow_down.png | Bin 0 -> 1610 bytes .../themes/default/images/arrow_up.png | Bin 0 -> 1649 bytes .../themes/default/images/button-bg.gif | Bin 0 -> 1114 bytes .../themes/default/images/cancelbutton.gif | Bin 0 -> 1227 bytes .../UEditor/themes/default/images/charts.png | Bin 0 -> 518 bytes .../themes/default/images/cursor_h.gif | Bin 0 -> 253 bytes .../themes/default/images/cursor_h.png | Bin 0 -> 175 bytes .../themes/default/images/cursor_v.gif | Bin 0 -> 370 bytes .../themes/default/images/cursor_v.png | Bin 0 -> 177 bytes .../themes/default/images/dialog-title-bg.png | Bin 0 -> 938 bytes .../themes/default/images/filescan.png | Bin 0 -> 4282 bytes .../themes/default/images/highlighted.gif | Bin 0 -> 111 bytes .../themes/default/images/icons-all.gif | Bin 0 -> 3750 bytes .../UEditor/themes/default/images/icons.gif | Bin 0 -> 20947 bytes .../UEditor/themes/default/images/icons.png | Bin 0 -> 19694 bytes .../themes/default/images/loaderror.png | Bin 0 -> 3209 bytes .../UEditor/themes/default/images/loading.gif | Bin 0 -> 734 bytes .../UEditor/themes/default/images/lock.gif | Bin 0 -> 1062 bytes .../default/images/neweditor-tab-bg.png | Bin 0 -> 216 bytes .../themes/default/images/pagebreak.gif | Bin 0 -> 54 bytes .../UEditor/themes/default/images/scale.png | Bin 0 -> 167 bytes .../themes/default/images/sortable.png | Bin 0 -> 2851 bytes .../UEditor/themes/default/images/spacer.gif | Bin 0 -> 43 bytes .../themes/default/images/sparator_v.png | Bin 0 -> 122 bytes .../default/images/table-cell-align.png | Bin 0 -> 1847 bytes .../default/images/tangram-colorpicker.png | Bin 0 -> 17355 bytes .../themes/default/images/toolbar_bg.png | Bin 0 -> 170 bytes .../themes/default/images/unhighlighted.gif | Bin 0 -> 111 bytes .../UEditor/themes/default/images/upload.png | Bin 0 -> 6608 bytes .../themes/default/images/videologo.gif | Bin 0 -> 1604 bytes .../UEditor/themes/default/images/word.gif | Bin 0 -> 1019 bytes .../themes/default/images/wordpaste.png | Bin 0 -> 6467 bytes public/static/UEditor/themes/iframe.css | 1 + .../third-party/codemirror/codemirror.css | 104 + .../third-party/codemirror/codemirror.js | 3581 +++++ .../zeroclipboard/ZeroClipboard.js | 1256 ++ .../zeroclipboard/ZeroClipboard.min.js | 9 + .../zeroclipboard/ZeroClipboard.swf | Bin 0 -> 3933 bytes public/static/UEditor/ueditor.all.min.js | 18 + public/static/UEditor/ueditor.config.js | 536 + public/static/UEditor/ueditor.parse.min.js | 7 + src/App.vue | 62 + src/assets/css/base.css | 81 + src/assets/css/list_base.css | 78 + src/assets/css/normalize.css | 419 + src/assets/css/resetVant.css | 16 + src/assets/css/vant2.7.1.css | 1 + src/assets/fonts/icomoon.eot | Bin 0 -> 11432 bytes src/assets/fonts/icomoon.svg | 55 + src/assets/fonts/icomoon.ttf | Bin 0 -> 11268 bytes src/assets/fonts/icomoon.woff | Bin 0 -> 11344 bytes src/assets/images/angry.png | Bin 0 -> 39194 bytes src/assets/images/apple.png | Bin 0 -> 2321 bytes src/assets/images/avatar.png | Bin 0 -> 652183 bytes src/assets/images/coupon0.png | Bin 0 -> 118754 bytes src/assets/images/coupon1.png | Bin 0 -> 123157 bytes src/assets/images/coupon2.png | Bin 0 -> 125774 bytes src/assets/images/fuji.jpg | Bin 0 -> 1030238 bytes src/assets/images/homebg.png | Bin 0 -> 455195 bytes src/assets/images/loading.gif | Bin 0 -> 2252 bytes src/assets/images/logo.png | Bin 0 -> 6849 bytes src/assets/images/pay.png | Bin 0 -> 6371 bytes src/assets/images/profile.jpg | Bin 0 -> 2348971 bytes src/assets/images/shopcart.gif | Bin 0 -> 539164 bytes src/assets/images/shopcart.png | Bin 0 -> 35019 bytes src/assets/images/silk.png | Bin 0 -> 47007 bytes src/assets/images/tree.png | Bin 0 -> 56189 bytes src/assets/images/wx.png | Bin 0 -> 5678 bytes src/assets/images/wxf.png | Bin 0 -> 3624 bytes src/assets/images/zfb.png | Bin 0 -> 7086 bytes src/main.js | 66 + src/network/Area.js | 63 + src/network/Claim.js | 66 + src/network/LookingFor.js | 89 + src/network/LostFound.js | 91 + src/network/Notice.js | 65 + src/network/Praise.js | 66 + src/network/UserInfo.js | 79 + src/network/home.js | 7 + src/network/login.js | 61 + src/network/request.js | 61 + src/network/upload.js | 28 + src/router/index.js | 221 + src/store/actions.js | 48 + src/store/getters.js | 3 + src/store/index.js | 23 + src/store/modules.js | 3 + src/store/mutaion-types.js | 2 + src/store/mutations.js | 24 + src/views/area/AreaAdd.vue | 87 + src/views/area/AreaDetail.vue | 146 + src/views/area/AreaList.css | 73 + src/views/area/AreaList.vue | 166 + src/views/area/AreaModify.vue | 107 + src/views/claim/ClaimAdd.vue | 163 + src/views/claim/ClaimDetail.vue | 170 + src/views/claim/ClaimList.css | 73 + src/views/claim/ClaimList.vue | 217 + src/views/claim/ClaimModify.vue | 179 + src/views/home/Home.vue | 195 + src/views/home/childComps/BranchStore.vue | 90 + src/views/home/childComps/BranchStoreItem.vue | 113 + src/views/home/childComps/HomeSwiper.vue | 78 + src/views/home/childComps/Location.vue | 46 + src/views/login/CreateAccount.vue | 151 + src/views/login/Login.vue | 244 + src/views/notice/NoticeAdd.vue | 134 + src/views/notice/NoticeDetail.vue | 158 + src/views/notice/NoticeList.css | 73 + src/views/notice/NoticeList.vue | 190 + src/views/notice/NoticeModify.vue | 152 + src/views/praise/PraiseAdd.vue | 136 + src/views/praise/PraiseDetail.vue | 166 + src/views/praise/PraiseList.css | 73 + src/views/praise/PraiseList.vue | 216 + src/views/praise/PraiseModify.vue | 156 + src/views/profile/About.vue | 105 + src/views/profile/CouponExchange.vue | 186 + src/views/profile/InfoList.vue | 188 + src/views/profile/Profile.vue | 106 + src/views/userInfo/UserInfoAdd.vue | 182 + src/views/userInfo/UserInfoDetail.vue | 194 + src/views/userInfo/UserInfoList.css | 73 + src/views/userInfo/UserInfoList.vue | 247 + src/views/userInfo/UserInfoModify.vue | 209 + src/views/userInfo/UserInfoSelfModify.vue | 210 + src/wh.vue | 44 + vue.config.js | 70 + 167 files changed, 30707 insertions(+) create mode 100644 .gitignore create mode 100644 .idea/encodings.xml create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/restaurant.iml create mode 100644 .idea/workspace.xml create mode 100644 babel.config.js create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 postcss.config.js create mode 100644 public/favicon.ico create mode 100644 public/iconfont.js create mode 100644 public/index.html create mode 100644 public/static/UEditor/dialogs/image/image.css create mode 100644 public/static/UEditor/dialogs/image/image.html create mode 100644 public/static/UEditor/dialogs/image/image.js create mode 100644 public/static/UEditor/dialogs/image/images/alignicon.jpg create mode 100644 public/static/UEditor/dialogs/image/images/bg.png create mode 100644 public/static/UEditor/dialogs/image/images/icons.gif create mode 100644 public/static/UEditor/dialogs/image/images/icons.png create mode 100644 public/static/UEditor/dialogs/image/images/image.png create mode 100644 public/static/UEditor/dialogs/image/images/progress.png create mode 100644 public/static/UEditor/dialogs/image/images/success.gif create mode 100644 public/static/UEditor/dialogs/image/images/success.png create mode 100644 public/static/UEditor/dialogs/link/link.html create mode 100644 public/static/UEditor/index.html create mode 100644 public/static/UEditor/jsp/config.json create mode 100644 public/static/UEditor/jsp/controller.jsp create mode 100644 public/static/UEditor/lang/zh-cn/images/copy.png create mode 100644 public/static/UEditor/lang/zh-cn/images/localimage.png create mode 100644 public/static/UEditor/lang/zh-cn/images/music.png create mode 100644 public/static/UEditor/lang/zh-cn/images/upload.png create mode 100644 public/static/UEditor/lang/zh-cn/zh-cn.js create mode 100644 public/static/UEditor/themes/default/css/ueditor.css create mode 100644 public/static/UEditor/themes/default/css/ueditor.min.css create mode 100644 public/static/UEditor/themes/default/dialogbase.css create mode 100644 public/static/UEditor/themes/default/images/anchor.gif create mode 100644 public/static/UEditor/themes/default/images/arrow.png create mode 100644 public/static/UEditor/themes/default/images/arrow_down.png create mode 100644 public/static/UEditor/themes/default/images/arrow_up.png create mode 100644 public/static/UEditor/themes/default/images/button-bg.gif create mode 100644 public/static/UEditor/themes/default/images/cancelbutton.gif create mode 100644 public/static/UEditor/themes/default/images/charts.png create mode 100644 public/static/UEditor/themes/default/images/cursor_h.gif create mode 100644 public/static/UEditor/themes/default/images/cursor_h.png create mode 100644 public/static/UEditor/themes/default/images/cursor_v.gif create mode 100644 public/static/UEditor/themes/default/images/cursor_v.png create mode 100644 public/static/UEditor/themes/default/images/dialog-title-bg.png create mode 100644 public/static/UEditor/themes/default/images/filescan.png create mode 100644 public/static/UEditor/themes/default/images/highlighted.gif create mode 100644 public/static/UEditor/themes/default/images/icons-all.gif create mode 100644 public/static/UEditor/themes/default/images/icons.gif create mode 100644 public/static/UEditor/themes/default/images/icons.png create mode 100644 public/static/UEditor/themes/default/images/loaderror.png create mode 100644 public/static/UEditor/themes/default/images/loading.gif create mode 100644 public/static/UEditor/themes/default/images/lock.gif create mode 100644 public/static/UEditor/themes/default/images/neweditor-tab-bg.png create mode 100644 public/static/UEditor/themes/default/images/pagebreak.gif create mode 100644 public/static/UEditor/themes/default/images/scale.png create mode 100644 public/static/UEditor/themes/default/images/sortable.png create mode 100644 public/static/UEditor/themes/default/images/spacer.gif create mode 100644 public/static/UEditor/themes/default/images/sparator_v.png create mode 100644 public/static/UEditor/themes/default/images/table-cell-align.png create mode 100644 public/static/UEditor/themes/default/images/tangram-colorpicker.png create mode 100644 public/static/UEditor/themes/default/images/toolbar_bg.png create mode 100644 public/static/UEditor/themes/default/images/unhighlighted.gif create mode 100644 public/static/UEditor/themes/default/images/upload.png create mode 100644 public/static/UEditor/themes/default/images/videologo.gif create mode 100644 public/static/UEditor/themes/default/images/word.gif create mode 100644 public/static/UEditor/themes/default/images/wordpaste.png create mode 100644 public/static/UEditor/themes/iframe.css create mode 100644 public/static/UEditor/third-party/codemirror/codemirror.css create mode 100644 public/static/UEditor/third-party/codemirror/codemirror.js create mode 100644 public/static/UEditor/third-party/zeroclipboard/ZeroClipboard.js create mode 100644 public/static/UEditor/third-party/zeroclipboard/ZeroClipboard.min.js create mode 100644 public/static/UEditor/third-party/zeroclipboard/ZeroClipboard.swf create mode 100644 public/static/UEditor/ueditor.all.min.js create mode 100644 public/static/UEditor/ueditor.config.js create mode 100644 public/static/UEditor/ueditor.parse.min.js create mode 100644 src/App.vue create mode 100644 src/assets/css/base.css create mode 100644 src/assets/css/list_base.css create mode 100644 src/assets/css/normalize.css create mode 100644 src/assets/css/resetVant.css create mode 100644 src/assets/css/vant2.7.1.css create mode 100644 src/assets/fonts/icomoon.eot create mode 100644 src/assets/fonts/icomoon.svg create mode 100644 src/assets/fonts/icomoon.ttf create mode 100644 src/assets/fonts/icomoon.woff create mode 100644 src/assets/images/angry.png create mode 100644 src/assets/images/apple.png create mode 100644 src/assets/images/avatar.png create mode 100644 src/assets/images/coupon0.png create mode 100644 src/assets/images/coupon1.png create mode 100644 src/assets/images/coupon2.png create mode 100644 src/assets/images/fuji.jpg create mode 100644 src/assets/images/homebg.png create mode 100644 src/assets/images/loading.gif create mode 100644 src/assets/images/logo.png create mode 100644 src/assets/images/pay.png create mode 100644 src/assets/images/profile.jpg create mode 100644 src/assets/images/shopcart.gif create mode 100644 src/assets/images/shopcart.png create mode 100644 src/assets/images/silk.png create mode 100644 src/assets/images/tree.png create mode 100644 src/assets/images/wx.png create mode 100644 src/assets/images/wxf.png create mode 100644 src/assets/images/zfb.png create mode 100644 src/main.js create mode 100644 src/network/Area.js create mode 100644 src/network/Claim.js create mode 100644 src/network/LookingFor.js create mode 100644 src/network/LostFound.js create mode 100644 src/network/Notice.js create mode 100644 src/network/Praise.js create mode 100644 src/network/UserInfo.js create mode 100644 src/network/home.js create mode 100644 src/network/login.js create mode 100644 src/network/request.js create mode 100644 src/network/upload.js create mode 100644 src/router/index.js create mode 100644 src/store/actions.js create mode 100644 src/store/getters.js create mode 100644 src/store/index.js create mode 100644 src/store/modules.js create mode 100644 src/store/mutaion-types.js create mode 100644 src/store/mutations.js create mode 100644 src/views/area/AreaAdd.vue create mode 100644 src/views/area/AreaDetail.vue create mode 100644 src/views/area/AreaList.css create mode 100644 src/views/area/AreaList.vue create mode 100644 src/views/area/AreaModify.vue create mode 100644 src/views/claim/ClaimAdd.vue create mode 100644 src/views/claim/ClaimDetail.vue create mode 100644 src/views/claim/ClaimList.css create mode 100644 src/views/claim/ClaimList.vue create mode 100644 src/views/claim/ClaimModify.vue create mode 100644 src/views/home/Home.vue create mode 100644 src/views/home/childComps/BranchStore.vue create mode 100644 src/views/home/childComps/BranchStoreItem.vue create mode 100644 src/views/home/childComps/HomeSwiper.vue create mode 100644 src/views/home/childComps/Location.vue create mode 100644 src/views/login/CreateAccount.vue create mode 100644 src/views/login/Login.vue create mode 100644 src/views/notice/NoticeAdd.vue create mode 100644 src/views/notice/NoticeDetail.vue create mode 100644 src/views/notice/NoticeList.css create mode 100644 src/views/notice/NoticeList.vue create mode 100644 src/views/notice/NoticeModify.vue create mode 100644 src/views/praise/PraiseAdd.vue create mode 100644 src/views/praise/PraiseDetail.vue create mode 100644 src/views/praise/PraiseList.css create mode 100644 src/views/praise/PraiseList.vue create mode 100644 src/views/praise/PraiseModify.vue create mode 100644 src/views/profile/About.vue create mode 100644 src/views/profile/CouponExchange.vue create mode 100644 src/views/profile/InfoList.vue create mode 100644 src/views/profile/Profile.vue create mode 100644 src/views/userInfo/UserInfoAdd.vue create mode 100644 src/views/userInfo/UserInfoDetail.vue create mode 100644 src/views/userInfo/UserInfoList.css create mode 100644 src/views/userInfo/UserInfoList.vue create mode 100644 src/views/userInfo/UserInfoModify.vue create mode 100644 src/views/userInfo/UserInfoSelfModify.vue create mode 100644 src/wh.vue create mode 100644 vue.config.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..24bd308a --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +# dependencies npm包文件 +/node_modules + +# production 打包文件 +/dist + +# misc +.DS_Store + +npm-debug.log* \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 00000000..15a15b21 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 00000000..03d9549e --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 00000000..28a804d8 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 00000000..c55118c6 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/restaurant.iml b/.idea/restaurant.iml new file mode 100644 index 00000000..24643cc3 --- /dev/null +++ b/.idea/restaurant.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 00000000..08192276 --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,612 @@ + + + + + + + + + + + + + + + + + food + webapi.amap.com + network + getOrder + showPopup + bookTypeName + book.bookTypeObj + img + 刷新成功 + getBook + common + VanUploader + 8089 + image + callback + kani.png + kani + restau + isLogin + register + appLogin + columns + head + Columns + + + D:\毕业系统调试区\双鱼林基于Vue+SSM图书借阅系统\基于Vue客户端\public + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+
+ + +
+
+
+
+ +   px +   px + +
+
+ + px +
+
+ + px +
+
+ + +
+
+
+
+ + +
+
+
+
+ 0% + +
+
+
+
+
+
+
+
+
+
+
+
    +
  • +
+
+
+ + +
+
+
+ + + + +
+ + + + + \ No newline at end of file diff --git a/public/static/UEditor/dialogs/image/image.js b/public/static/UEditor/dialogs/image/image.js new file mode 100644 index 00000000..dee16bb8 --- /dev/null +++ b/public/static/UEditor/dialogs/image/image.js @@ -0,0 +1,1142 @@ +/** + * User: Jinqn + * Date: 14-04-08 + * Time: 下午16:34 + * 上传图片对话框逻辑代码,包括tab: 远程图片/上传图片/在线图片/搜索图片 + */ + +(function () { + + var remoteImage, + uploadImage, + onlineImage, + searchImage; + + window.onload = function () { + initTabs(); + initAlign(); + 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')); + }); + } + + var img = editor.selection.getRange().getClosedNode(); + if (img && img.tagName && img.tagName.toLowerCase() == 'img') { + setTabFocus('remote'); + } else { + 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 'remote': + remoteImage = remoteImage || new RemoteImage(); + break; + case 'upload': + setAlign(editor.getOpt('imageInsertAlign')); + uploadImage = uploadImage || new UploadImage('queueList'); + break; + case 'online': + setAlign(editor.getOpt('imageManagerInsertAlign')); + onlineImage = onlineImage || new OnlineImage('imageList'); + onlineImage.reset(); + break; + case 'search': + setAlign(editor.getOpt('imageManagerInsertAlign')); + searchImage = searchImage || new SearchImage(); + break; + } + } + + /* 初始化onok事件 */ + function initButtons() { + + dialog.onok = function () { + var remote = false, 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 'remote': + list = remoteImage.getInsertList(); + break; + case 'upload': + list = uploadImage.getInsertList(); + var count = uploadImage.getQueueCount(); + if (count) { + $('.info', '#queueList').html('' + '还有2个未上传文件'.replace(/[\d]/, count) + ''); + return false; + } + break; + case 'online': + list = onlineImage.getInsertList(); + break; + case 'search': + list = searchImage.getInsertList(); + remote = true; + break; + } + + if(list) { + editor.execCommand('insertimage', list); + remote && editor.fireEvent("catchRemoteImage"); + } + }; + } + + + /* 初始化对其方式的点击事件 */ + function initAlign(){ + /* 点击align图标 */ + domUtils.on($G("alignIcon"), 'click', function(e){ + var target = e.target || e.srcElement; + if(target.className && target.className.indexOf('-align') != -1) { + setAlign(target.getAttribute('data-align')); + } + }); + } + + /* 设置对齐方式 */ + function setAlign(align){ + align = align || 'none'; + var aligns = $G("alignIcon").children; + for(i = 0; i < aligns.length; i++){ + if(aligns[i].getAttribute('data-align') == align) { + domUtils.addClass(aligns[i], 'focus'); + $G("align").value = aligns[i].getAttribute('data-align'); + } else { + domUtils.removeClasses(aligns[i], 'focus'); + } + } + } + /* 获取对齐方式 */ + function getAlign(){ + var align = $G("align").value || 'none'; + return align == 'none' ? '':align; + } + + + /* 在线图片 */ + function RemoteImage(target) { + this.container = utils.isString(target) ? document.getElementById(target) : target; + this.init(); + } + RemoteImage.prototype = { + init: function () { + this.initContainer(); + this.initEvents(); + }, + initContainer: function () { + this.dom = { + 'url': $G('url'), + 'width': $G('width'), + 'height': $G('height'), + 'border': $G('border'), + 'vhSpace': $G('vhSpace'), + 'title': $G('title'), + 'align': $G('align') + }; + var img = editor.selection.getRange().getClosedNode(); + if (img) { + this.setImage(img); + } + }, + initEvents: function () { + var _this = this, + locker = $G('lock'); + + /* 改变url */ + domUtils.on($G("url"), 'keyup', updatePreview); + domUtils.on($G("border"), 'keyup', updatePreview); + domUtils.on($G("title"), 'keyup', updatePreview); + + domUtils.on($G("width"), 'keyup', function(){ + updatePreview(); + if(locker.checked) { + var proportion =locker.getAttribute('data-proportion'); + $G('height').value = Math.round(this.value / proportion); + } else { + _this.updateLocker(); + } + }); + domUtils.on($G("height"), 'keyup', function(){ + updatePreview(); + if(locker.checked) { + var proportion =locker.getAttribute('data-proportion'); + $G('width').value = Math.round(this.value * proportion); + } else { + _this.updateLocker(); + } + }); + domUtils.on($G("lock"), 'change', function(){ + var proportion = parseInt($G("width").value) /parseInt($G("height").value); + locker.setAttribute('data-proportion', proportion); + }); + + function updatePreview(){ + _this.setPreview(); + } + }, + updateLocker: function(){ + var width = $G('width').value, + height = $G('height').value, + locker = $G('lock'); + if(width && height && width == parseInt(width) && height == parseInt(height)) { + locker.disabled = false; + locker.title = ''; + } else { + locker.checked = false; + locker.disabled = 'disabled'; + locker.title = lang.remoteLockError; + } + }, + setImage: function(img){ + /* 不是正常的图片 */ + if (!img.tagName || img.tagName.toLowerCase() != 'img' && !img.getAttribute("src") || !img.src) return; + + var wordImgFlag = img.getAttribute("word_img"), + src = wordImgFlag ? wordImgFlag.replace("&", "&") : (img.getAttribute('_src') || img.getAttribute("src", 2).replace("&", "&")), + align = editor.queryCommandValue("imageFloat"); + + /* 防止onchange事件循环调用 */ + if (src !== $G("url").value) $G("url").value = src; + if(src) { + /* 设置表单内容 */ + $G("width").value = img.width || ''; + $G("height").value = img.height || ''; + $G("border").value = img.getAttribute("border") || '0'; + $G("vhSpace").value = img.getAttribute("vspace") || '0'; + $G("title").value = img.title || img.alt || ''; + setAlign(align); + this.setPreview(); + this.updateLocker(); + } + }, + getData: function(){ + var data = {}; + for(var k in this.dom){ + data[k] = this.dom[k].value; + } + return data; + }, + setPreview: function(){ + var url = $G('url').value, + ow = parseInt($G('width').value, 10) || 0, + oh = parseInt($G('height').value, 10) || 0, + border = parseInt($G('border').value, 10) || 0, + title = $G('title').value, + preview = $G('preview'), + width, + height; + + url = utils.unhtmlForUrl(url); + title = utils.unhtml(title); + + width = ((!ow || !oh) ? preview.offsetWidth:Math.min(ow, preview.offsetWidth)); + width = width+(border*2) > preview.offsetWidth ? width:(preview.offsetWidth - (border*2)); + height = (!ow || !oh) ? '':width*oh/ow; + + if(url) { + preview.innerHTML = ''; + } + }, + getInsertList: function () { + var data = this.getData(); + if(data['url']) { + return [{ + src: data['url'], + _src: data['url'], + width: data['width'] || '', + height: data['height'] || '', + border: data['border'] || '', + floatStyle: data['align'] || '', + vspace: data['vhSpace'] || '', + title: data['title'] || '', + alt: data['title'] || '', + style: "width:" + data['width'] + "px;height:" + data['height'] + "px;" + }]; + } else { + return []; + } + } + }; + + + + /* 上传图片 */ + function UploadImage(target) { + this.$wrap = target.constructor == String ? $('#' + target) : $(target); + this.init(); + } + UploadImage.prototype = { + init: function () { + this.imageList = []; + 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('imageActionName')), + acceptExtensions = (editor.getOpt('imageAllowFiles') || []).join('').replace(/\./g, ',').replace(/^[,]/, ''), + imageMaxSize = editor.getOpt('imageMaxSize'), + imageCompressBorder = editor.getOpt('imageCompressBorder'); + + if (!WebUploader.Uploader.support()) { + $('#filePickerReady').after($('
').html(lang.errorNotSupport)).hide(); + return; + } else if (!editor.getOpt('imageActionName')) { + $('#filePickerReady').after($('
').html(lang.errorLoadConfig)).hide(); + return; + } + + uploader = _this.uploader = WebUploader.create({ + pick: { + id: '#filePickerReady', + label: lang.uploadSelectFile + }, + accept: { + title: 'Images', + extensions: acceptExtensions, + mimeTypes: 'image/*' + }, + swf: '../../third-party/webuploader/Uploader.swf', + server: actionUrl, + fileVal: editor.getOpt('imageFieldName'), + duplicate: true, + fileSingleSizeLimit: imageMaxSize, // 默认 2 M + compress: editor.getOpt('imageCompressEnable') ? { + width: imageCompressBorder, + height: imageCompressBorder, + // 图片质量,只有type为`image/jpeg`的时候才有效。 + quality: 90, + // 是否允许放大,如果想要生成小图的时候不失真,此选项应该设置为false. + allowMagnify: false, + // 是否允许裁剪。 + crop: false, + // 是否保留头部meta信息。 + preserveHeaders: true + }:false + }); + uploader.addButton({ + id: '#filePickerBlock' + }); + uploader.addButton({ + id: '#filePickerBtn', + label: lang.uploadAddFile + }); + + setState('pedding'); + + // 当有文件添加进来时执行,负责view的创建 + function addFile(file) { + var $li = $('
  • ' + + '

    ' + file.name + '

    ' + + '

    ' + + '

    ' + + '
  • '), + + $btns = $('
    ' + + '' + lang.uploadDelete + '' + + '' + lang.uploadTurnRight + '' + + '' + lang.uploadTurnLeft + '
    ').appendTo($li), + $prgress = $li.find('p.progress span'), + $wrap = $li.find('p.imgWrap'), + $info = $('

    ').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 (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 = $(''); + $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) { + fileCount++; + fileSize += file.size; + + if (fileCount === 1) { + $placeHolder.addClass('element-invisible'); + $statusBar.show(); + } + + addFile(file); + }); + + uploader.on('fileDequeued', function (file) { + 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': + /* 添加额外的GET参数 */ + var params = utils.serializeParam(editor.queryCommandValue('serverparam')) || '', + url = utils.formatUrl(actionUrl + (actionUrl.indexOf('?') == -1 ? '?':'&') + 'encode=utf-8&' + params); + uploader.option('server', url); + setState('uploading', files); + break; + case 'stopUpload': + setState('paused', files); + break; + } + }); + + uploader.on('uploadBeforeSend', function (file, data, header) { + //这里可以通过data对象添加POST参数 + header['X_Requested_With'] = 'XMLHttpRequest'; + }); + + 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, ret) { + var $file = $('#' + file.id); + try { + var responseText = (ret._raw || ret), + json = utils.str2json(responseText); + if (json.state == 'SUCCESS') { + _this.imageList.push(json); + $file.append(''); + } else { + $file.find('.error').text(json.state).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; + }, + destroy: function () { + this.$wrap.remove(); + }, + getInsertList: function () { + var i, data, list = [], + align = getAlign(), + prefix = editor.getOpt('imageUrlPrefix'); + for (i = 0; i < this.imageList.length; i++) { + data = this.imageList[i]; + list.push({ + src: prefix + data.url, + _src: prefix + data.url, + title: data.title, + alt: data.original, + floatStyle: align + }); + } + return list; + } + }; + + + /* 在线图片 */ + 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.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; + + 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('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, + alt: src.substr(src.lastIndexOf('/') + 1), + floatStyle: align + }); + } + + } + return list; + } + }; + + /*搜索图片 */ + function SearchImage() { + this.init(); + } + SearchImage.prototype = { + init: function () { + this.initEvents(); + }, + initEvents: function(){ + var _this = this; + + /* 点击搜索按钮 */ + domUtils.on($G('searchBtn'), 'click', function(){ + var key = $G('searchTxt').value; + if(key && key != lang.searchRemind) { + _this.getImageData(); + } + }); + /* 点击清除妞 */ + domUtils.on($G('searchReset'), 'click', function(){ + $G('searchTxt').value = lang.searchRemind; + $G('searchListUl').innerHTML = ''; + $G('searchType').selectedIndex = 0; + }); + /* 搜索框聚焦 */ + domUtils.on($G('searchTxt'), 'focus', function(){ + var key = $G('searchTxt').value; + if(key && key == lang.searchRemind) { + $G('searchTxt').value = ''; + } + }); + /* 搜索框回车键搜索 */ + domUtils.on($G('searchTxt'), 'keydown', function(e){ + var keyCode = e.keyCode || e.which; + if (keyCode == 13) { + $G('searchBtn').click(); + } + }); + + /* 选中图片 */ + domUtils.on($G('searchList'), 'click', function(e){ + var target = e.target || e.srcElement, + li = target.parentNode.parentNode; + + if (li.tagName.toLowerCase() == 'li') { + if (domUtils.hasClass(li, 'selected')) { + domUtils.removeClasses(li, 'selected'); + } else { + domUtils.addClass(li, 'selected'); + } + } + }); + }, + encodeToGb2312:function (str){ + if(!str) return ''; + var strOut = "", + z = 'D2BBB6A18140C6DF814181428143CDF2D5C9C8FDC9CFCFC2D8A2B2BBD3EB8144D8A4B3F38145D7A8C7D2D8A7CAC08146C7F0B1FBD2B5B4D4B6ABCBBFD8A9814781488149B6AA814AC1BDD1CF814BC9A5D8AD814CB8F6D1BEE3DCD6D0814D814EB7E1814FB4AE8150C1D98151D8BC8152CDE8B5A4CEAAD6F78153C0F6BED9D8AF815481558156C4CB8157BEC38158D8B1C3B4D2E58159D6AECEDAD5A7BAF5B7A6C0D6815AC6B9C5D2C7C7815BB9D4815CB3CBD2D2815D815ED8BFBEC5C6F2D2B2CFB0CFE7815F816081618162CAE981638164D8C081658166816781688169816AC2F2C2D2816BC8E9816C816D816E816F817081718172817381748175C7AC8176817781788179817A817B817CC1CB817DD3E8D5F9817ECAC2B6FED8A1D3DABFF78180D4C6BBA5D8C1CEE5BEAE81818182D8A88183D1C7D0A9818481858186D8BDD9EFCDF6BFBA8187BDBBBAA5D2E0B2FABAE0C4B68188CFEDBEA9CDA4C1C18189818A818BC7D7D9F1818CD9F4818D818E818F8190C8CBD8E9819181928193D2DACAB2C8CAD8ECD8EAD8C6BDF6C6CDB3F08194D8EBBDF1BDE98195C8D4B4D381968197C2D88198B2D6D7D0CACBCBFBD5CCB8B6CFC98199819A819BD9DAD8F0C7AA819CD8EE819DB4FAC1EED2D4819E819FD8ED81A0D2C7D8EFC3C781A181A281A3D1F681A4D6D9D8F281A5D8F5BCFEBCDB81A681A781A8C8CE81A9B7DD81AAB7C281ABC6F381AC81AD81AE81AF81B081B181B2D8F8D2C181B381B4CEE9BCBFB7FCB7A5D0DD81B581B681B781B881B9D6DAD3C5BBEFBBE1D8F181BA81BBC9A1CEB0B4AB81BCD8F381BDC9CBD8F6C2D7D8F781BE81BFCEB1D8F981C081C181C2B2AEB9C081C3D9A381C4B0E981C5C1E681C6C9EC81C7CBC581C8CBC6D9A481C981CA81CB81CC81CDB5E881CE81CFB5AB81D081D181D281D381D481D5CEBBB5CDD7A1D7F4D3D381D6CCE581D7BACE81D8D9A2D9DCD3E0D8FDB7F0D7F7D8FED8FAD9A1C4E381D981DAD3B6D8F4D9DD81DBD8FB81DCC5E581DD81DEC0D081DF81E0D1F0B0DB81E181E2BCD1D9A681E3D9A581E481E581E681E7D9ACD9AE81E8D9ABCAB981E981EA81EBD9A9D6B681EC81ED81EEB3DED9A881EFC0FD81F0CACC81F1D9AA81F2D9A781F381F4D9B081F581F6B6B181F781F881F9B9A981FAD2C081FB81FCCFC081FD81FEC2C28240BDC4D5ECB2E0C7C8BFEBD9AD8241D9AF8242CEEABAEE82438244824582468247C7D682488249824A824B824C824D824E824F8250B1E3825182528253B4D9B6EDD9B48254825582568257BFA182588259825AD9DEC7CEC0FED9B8825B825C825D825E825FCBD7B7FD8260D9B58261D9B7B1A3D3E1D9B98262D0C58263D9B682648265D9B18266D9B2C1A9D9B382678268BCF3D0DEB8A98269BEE3826AD9BD826B826C826D826ED9BA826FB0B3827082718272D9C28273827482758276827782788279827A827B827C827D827E8280D9C4B1B68281D9BF82828283B5B98284BEF3828582868287CCC8BAF2D2D08288D9C38289828ABDE8828BB3AB828C828D828ED9C5BEEB828FD9C6D9BBC4DF8290D9BED9C1D9C0829182928293829482958296829782988299829A829BD5AE829CD6B5829DC7E3829E829F82A082A1D9C882A282A382A4BCD9D9CA82A582A682A7D9BC82A8D9CBC6AB82A982AA82AB82AC82ADD9C982AE82AF82B082B1D7F682B2CDA382B382B482B582B682B782B882B982BABDA182BB82BC82BD82BE82BF82C0D9CC82C182C282C382C482C582C682C782C882C9C5BCCDB582CA82CB82CCD9CD82CD82CED9C7B3A5BFFE82CF82D082D182D2B8B582D382D4C0FC82D582D682D782D8B0F882D982DA82DB82DC82DD82DE82DF82E082E182E282E382E482E582E682E782E882E982EA82EB82EC82EDB4F682EED9CE82EFD9CFB4A2D9D082F082F1B4DF82F282F382F482F582F6B0C182F782F882F982FA82FB82FC82FDD9D1C9B582FE8340834183428343834483458346834783488349834A834B834C834D834E834F83508351CFF1835283538354835583568357D9D283588359835AC1C5835B835C835D835E835F836083618362836383648365D9D6C9AE8366836783688369D9D5D9D4D9D7836A836B836C836DCBDB836EBDA9836F8370837183728373C6A7837483758376837783788379837A837B837C837DD9D3D9D8837E83808381D9D9838283838384838583868387C8E583888389838A838B838C838D838E838F839083918392839383948395C0DC8396839783988399839A839B839C839D839E839F83A083A183A283A383A483A583A683A783A883A983AA83AB83AC83AD83AE83AF83B083B183B2B6F9D8A3D4CA83B3D4AAD0D6B3E4D5D783B4CFC8B9E283B5BFCB83B6C3E283B783B883B9B6D283BA83BBCDC3D9EED9F083BC83BD83BEB5B383BFB6B583C083C183C283C383C4BEA483C583C6C8EB83C783C8C8AB83C983CAB0CBB9ABC1F9D9E283CBC0BCB9B283CCB9D8D0CBB1F8C6E4BEDFB5E4D7C883CDD1F8BCE6CADE83CE83CFBCBDD9E6D8E783D083D1C4DA83D283D3B8D4C8BD83D483D5B2E1D4D983D683D783D883D9C3B083DA83DBC3E1DAA2C8DF83DCD0B483DDBEFCC5A983DE83DF83E0B9DA83E1DAA383E2D4A9DAA483E383E483E583E683E7D9FBB6AC83E883E9B7EBB1F9D9FCB3E5BEF683EABFF6D2B1C0E483EB83EC83EDB6B3D9FED9FD83EE83EFBEBB83F083F183F2C6E083F3D7BCDAA183F4C1B983F5B5F2C1E883F683F7BCF583F8B4D583F983FA83FB83FC83FD83FE844084418442C1DD8443C4FD84448445BCB8B7B284468447B7EF84488449844A844B844C844DD9EC844EC6BE844FBFADBBCB84508451B5CA8452DBC9D0D78453CDB9B0BCB3F6BBF7DBCABAAF8454D4E4B5B6B5F3D8D6C8D084558456B7D6C7D0D8D78457BFAF84588459DBBBD8D8845A845BD0CCBBAE845C845D845EEBBEC1D0C1F5D4F2B8D5B4B4845FB3F584608461C9BE846284638464C5D0846584668467C5D9C0FB8468B1F08469D8D9B9CE846AB5BD846B846CD8DA846D846ED6C6CBA2C8AFC9B2B4CCBFCC846FB9F48470D8DBD8DCB6E7BCC1CCEA847184728473847484758476CFF78477D8DDC7B084788479B9D0BDA3847A847BCCDE847CC6CA847D847E848084818482D8E08483D8DE84848485D8DF848684878488B0FE8489BEE7848ACAA3BCF4848B848C848D848EB8B1848F8490B8EE849184928493849484958496849784988499849AD8E2849BBDCB849CD8E4D8E3849D849E849F84A084A1C5FC84A284A384A484A584A684A784A8D8E584A984AAD8E684AB84AC84AD84AE84AF84B084B1C1A684B2C8B0B0ECB9A6BCD3CEF1DBBDC1D384B384B484B584B6B6AFD6FAC5ACBDD9DBBEDBBF84B784B884B9C0F8BEA2C0CD84BA84BB84BC84BD84BE84BF84C084C184C284C3DBC0CAC684C484C584C6B2AA84C784C884C9D3C284CAC3E384CBD1AB84CC84CD84CE84CFDBC284D0C0D584D184D284D3DBC384D4BFB184D584D684D784D884D984DAC4BC84DB84DC84DD84DEC7DA84DF84E084E184E284E384E484E584E684E784E884E9DBC484EA84EB84EC84ED84EE84EF84F084F1D9E8C9D784F284F384F4B9B4CEF0D4C884F584F684F784F8B0FCB4D284F9D0D984FA84FB84FC84FDD9E984FEDECBD9EB8540854185428543D8B0BBAFB1B18544B3D7D8CE85458546D4D185478548BDB3BFEF8549CFBB854A854BD8D0854C854D854EB7CB854F85508551D8D185528553855485558556855785588559855A855BC6A5C7F8D2BD855C855DD8D2C4E4855ECAAE855FC7A78560D8A68561C9FDCEE7BBDCB0EB856285638564BBAAD0AD8565B1B0D7E4D7BF8566B5A5C2F4C4CF85678568B2A98569B2B7856AB1E5DFB2D5BCBFA8C2ACD8D5C2B1856BD8D4CED4856CDAE0856DCEC0856E856FD8B4C3AED3A1CEA38570BCB4C8B4C2D18571BEEDD0B68572DAE18573857485758576C7E485778578B3A78579B6F2CCFCC0FA857A857BC0F7857CD1B9D1E1D8C7857D857E85808581858285838584B2DE85858586C0E58587BAF185888589D8C8858AD4AD858B858CCFE1D8C9858DD8CACFC3858EB3F8BEC7858F859085918592D8CB8593859485958596859785988599DBCC859A859B859C859DC8A5859E859F85A0CFD885A1C8FEB2CE85A285A385A485A585A6D3D6B2E6BCB0D3D1CBABB7B485A785A885A9B7A285AA85ABCAE585ACC8A1CADCB1E4D0F085ADC5D185AE85AF85B0DBC5B5FE85B185B2BFDAB9C5BEE4C1ED85B3DFB6DFB5D6BBBDD0D5D9B0C8B6A3BFC9CCA8DFB3CAB7D3D285B4D8CFD2B6BAC5CBBECCBE85B5DFB7B5F0DFB485B685B785B8D3F585B9B3D4B8F785BADFBA85BBBACFBCAAB5F585BCCDACC3FBBAF3C0F4CDC2CFF2DFB8CFC585BDC2C0DFB9C2F085BE85BF85C0BEFD85C1C1DFCDCCD2F7B7CDDFC185C2DFC485C385C4B7F1B0C9B6D6B7D485C5BAACCCFDBFD4CBB1C6F485C6D6A8DFC585C7CEE2B3B385C885C9CEFCB4B585CACEC7BAF085CBCEE185CCD1BD85CD85CEDFC085CF85D0B4F485D1B3CA85D2B8E6DFBB85D385D485D585D6C4C585D7DFBCDFBDDFBEC5BBDFBFDFC2D4B1DFC385D8C7BACED885D985DA85DB85DC85DDC4D885DEDFCA85DFDFCF85E0D6DC85E185E285E385E485E585E685E785E8DFC9DFDACEB685E9BAC7DFCEDFC8C5DE85EA85EBC9EBBAF4C3FC85EC85EDBED785EEDFC685EFDFCD85F0C5D885F185F285F385F4D5A6BACD85F5BECCD3BDB8C085F6D6E485F7DFC7B9BEBFA785F885F9C1FCDFCBDFCC85FADFD085FB85FC85FD85FE8640DFDBDFE58641DFD7DFD6D7C9DFE3DFE4E5EBD2A7DFD28642BFA98643D4DB8644BFC8DFD4864586468647CFCC86488649DFDD864AD1CA864BDFDEB0A7C6B7DFD3864CBAE5864DB6DFCDDBB9FED4D5864E864FDFDFCFECB0A5DFE7DFD1D1C6DFD5DFD8DFD9DFDC8650BBA98651DFE0DFE18652DFE2DFE6DFE8D3B486538654865586568657B8E7C5B6DFEAC9DAC1A8C4C486588659BFDECFF8865A865B865CD5DCDFEE865D865E865F866086618662B2B88663BADFDFEC8664DBC18665D1E48666866786688669CBF4B4BD866AB0A6866B866C866D866E866FDFF1CCC6DFF286708671DFED867286738674867586768677DFE986788679867A867BDFEB867CDFEFDFF0BBBD867D867EDFF386808681DFF48682BBA38683CADBCEA8E0A7B3AA8684E0A6868586868687E0A186888689868A868BDFFE868CCDD9DFFC868DDFFA868EBFD0D7C4868FC9CC86908691DFF8B0A186928693869486958696DFFD869786988699869ADFFBE0A2869B869C869D869E869FE0A886A086A186A286A3B7C886A486A5C6A1C9B6C0B2DFF586A686A7C5BE86A8D8C4DFF9C4F686A986AA86AB86AC86AD86AEE0A3E0A4E0A5D0A586AF86B0E0B4CCE486B1E0B186B2BFA6E0AFCEB9E0ABC9C686B386B4C0AEE0AEBAEDBAB0E0A986B586B686B7DFF686B8E0B386B986BAE0B886BB86BC86BDB4ADE0B986BE86BFCFB2BAC886C0E0B086C186C286C386C486C586C686C7D0FA86C886C986CA86CB86CC86CD86CE86CF86D0E0AC86D1D4FB86D2DFF786D3C5E786D4E0AD86D5D3F786D6E0B6E0B786D786D886D986DA86DBE0C4D0E186DC86DD86DEE0BC86DF86E0E0C9E0CA86E186E286E3E0BEE0AAC9A4E0C186E4E0B286E586E686E786E886E9CAC8E0C386EAE0B586EBCECB86ECCBC3E0CDE0C6E0C286EDE0CB86EEE0BAE0BFE0C086EF86F0E0C586F186F2E0C7E0C886F3E0CC86F4E0BB86F586F686F786F886F9CBD4E0D586FAE0D6E0D286FB86FC86FD86FE87408741E0D0BCCE87428743E0D18744B8C2D8C587458746874787488749874A874B874CD0EA874D874EC2EF874F8750E0CFE0BD875187528753E0D4E0D387548755E0D78756875787588759E0DCE0D8875A875B875CD6F6B3B0875DD7EC875ECBBB875F8760E0DA8761CEFB876287638764BAD987658766876787688769876A876B876C876D876E876F8770E0E1E0DDD2AD87718772877387748775E0E287768777E0DBE0D9E0DF87788779E0E0877A877B877C877D877EE0DE8780E0E4878187828783C6F7D8ACD4EBE0E6CAC98784878587868787E0E587888789878A878BB8C1878C878D878E878FE0E7E0E887908791879287938794879587968797E0E9E0E387988799879A879B879C879D879EBABFCCE7879F87A087A1E0EA87A287A387A487A587A687A787A887A987AA87AB87AC87AD87AE87AF87B0CFF987B187B287B387B487B587B687B787B887B987BA87BBE0EB87BC87BD87BE87BF87C087C187C2C8C287C387C487C587C6BDC087C787C887C987CA87CB87CC87CD87CE87CF87D087D187D287D3C4D287D487D587D687D787D887D987DA87DB87DCE0EC87DD87DEE0ED87DF87E0C7F4CBC487E1E0EEBBD8D8B6D2F2E0EFCDC587E2B6DA87E387E487E587E687E787E8E0F187E9D4B087EA87EBC0A7B4D187EC87EDCEA7E0F087EE87EF87F0E0F2B9CC87F187F2B9FACDBCE0F387F387F487F5C6D4E0F487F6D4B287F7C8A6E0F6E0F587F887F987FA87FB87FC87FD87FE8840884188428843884488458846884788488849E0F7884A884BCDC1884C884D884ECAA5884F885088518852D4DADBD7DBD98853DBD8B9E7DBDCDBDDB5D888548855DBDA8856885788588859885ADBDBB3A1DBDF885B885CBBF8885DD6B7885EDBE0885F886088618862BEF988638864B7BB8865DBD0CCAEBFB2BBB5D7F8BFD38866886788688869886ABFE9886B886CBCE1CCB3DBDEB0D3CEEBB7D8D7B9C6C2886D886EC0A4886FCCB98870DBE7DBE1C6BADBE38871DBE88872C5F7887388748875DBEA88768877DBE9BFC088788879887ADBE6DBE5887B887C887D887E8880B4B9C0ACC2A2DBE2DBE48881888288838884D0CDDBED88858886888788888889C0DDDBF2888A888B888C888D888E888F8890B6E28891889288938894DBF3DBD2B9B8D4ABDBEC8895BFD1DBF08896DBD18897B5E68898DBEBBFE58899889A889BDBEE889CDBF1889D889E889FDBF988A088A188A288A388A488A588A688A788A8B9A1B0A388A988AA88AB88AC88AD88AE88AFC2F188B088B1B3C7DBEF88B288B3DBF888B4C6D2DBF488B588B6DBF5DBF7DBF688B788B8DBFE88B9D3F2B2BA88BA88BB88BCDBFD88BD88BE88BF88C088C188C288C388C4DCA488C5DBFB88C688C788C888C9DBFA88CA88CB88CCDBFCC5E0BBF988CD88CEDCA388CF88D0DCA588D1CCC388D288D388D4B6D1DDC088D588D688D7DCA188D8DCA288D988DA88DBC7B588DC88DD88DEB6E988DF88E088E1DCA788E288E388E488E5DCA688E6DCA9B1A488E788E8B5CC88E988EA88EB88EC88EDBFB088EE88EF88F088F188F2D1DF88F388F488F588F6B6C288F788F888F988FA88FB88FC88FD88FE894089418942894389448945DCA88946894789488949894A894B894CCBFAEBF3894D894E894FCBDC89508951CBFE895289538954CCC189558956895789588959C8FB895A895B895C895D895E895FDCAA89608961896289638964CCEEDCAB89658966896789688969896A896B896C896D896E896F897089718972897389748975DBD38976DCAFDCAC8977BEB38978CAFB8979897A897BDCAD897C897D897E89808981898289838984C9CAC4B989858986898789888989C7BDDCAE898A898B898CD4F6D0E6898D898E898F89908991899289938994C4ABB6D589958996899789988999899A899B899C899D899E899F89A089A189A289A389A489A589A6DBD489A789A889A989AAB1DA89AB89AC89ADDBD589AE89AF89B089B189B289B389B489B589B689B789B8DBD689B989BA89BBBABE89BC89BD89BE89BF89C089C189C289C389C489C589C689C789C889C9C8C089CA89CB89CC89CD89CE89CFCABFC8C989D0D7B389D1C9F989D289D3BFC789D489D5BAF889D689D7D2BC89D889D989DA89DB89DC89DD89DE89DFE2BA89E0B4A689E189E2B1B889E389E489E589E689E7B8B489E8CFC489E989EA89EB89ECD9E7CFA6CDE289ED89EED9EDB6E089EFD2B989F089F1B9BB89F289F389F489F5E2B9E2B789F6B4F389F7CCECCCABB7F289F8D8B2D1EBBABB89F9CAA789FA89FBCDB789FC89FDD2C4BFE4BCD0B6E189FEDEC58A408A418A428A43DEC6DBBC8A44D1D98A458A46C6E6C4CEB7EE8A47B7DC8A488A49BFFCD7E08A4AC6F58A4B8A4CB1BCDEC8BDB1CCD7DECA8A4DDEC98A4E8A4F8A508A518A52B5EC8A53C9DD8A548A55B0C28A568A578A588A598A5A8A5B8A5C8A5D8A5E8A5F8A608A618A62C5AEC5AB8A63C4CC8A64BCE9CBFD8A658A668A67BAC38A688A698A6AE5F9C8E7E5FACDFD8A6BD7B1B8BEC2E88A6CC8D18A6D8A6EE5FB8A6F8A708A718A72B6CABCCB8A738A74D1FDE6A18A75C3EE8A768A778A788A79E6A48A7A8A7B8A7C8A7DE5FEE6A5CDD78A7E8A80B7C1E5FCE5FDE6A38A818A82C4DDE6A88A838A84E6A78A858A868A878A888A898A8AC3C38A8BC6DE8A8C8A8DE6AA8A8E8A8F8A908A918A928A938A94C4B78A958A968A97E6A2CABC8A988A998A9A8A9BBDE3B9C3E6A6D0D5CEAF8A9C8A9DE6A9E6B08A9ED2A68A9FBDAAE6AD8AA08AA18AA28AA38AA4E6AF8AA5C0D18AA68AA7D2CC8AA88AA98AAABCA78AAB8AAC8AAD8AAE8AAF8AB08AB18AB28AB38AB48AB58AB6E6B18AB7D2F68AB88AB98ABAD7CB8ABBCDFE8ABCCDDEC2A6E6ABE6ACBDBFE6AEE6B38ABD8ABEE6B28ABF8AC08AC18AC2E6B68AC3E6B88AC48AC58AC68AC7C4EF8AC88AC98ACAC4C88ACB8ACCBEEAC9EF8ACD8ACEE6B78ACFB6F08AD08AD18AD2C3E48AD38AD48AD58AD68AD78AD88AD9D3E9E6B48ADAE6B58ADBC8A28ADC8ADD8ADE8ADF8AE0E6BD8AE18AE28AE3E6B98AE48AE58AE68AE78AE8C6C58AE98AEACDF1E6BB8AEB8AEC8AED8AEE8AEF8AF08AF18AF28AF38AF4E6BC8AF58AF68AF78AF8BBE98AF98AFA8AFB8AFC8AFD8AFE8B40E6BE8B418B428B438B44E6BA8B458B46C0B78B478B488B498B4A8B4B8B4C8B4D8B4E8B4FD3A4E6BFC9F4E6C38B508B51E6C48B528B538B548B55D0F68B568B578B588B598B5A8B5B8B5C8B5D8B5E8B5F8B608B618B628B638B648B658B668B67C3BD8B688B698B6A8B6B8B6C8B6D8B6EC3C4E6C28B6F8B708B718B728B738B748B758B768B778B788B798B7A8B7B8B7CE6C18B7D8B7E8B808B818B828B838B84E6C7CFB18B85EBF48B868B87E6CA8B888B898B8A8B8B8B8CE6C58B8D8B8EBCDEC9A98B8F8B908B918B928B938B94BCB58B958B96CFD38B978B988B998B9A8B9BE6C88B9CE6C98B9DE6CE8B9EE6D08B9F8BA08BA1E6D18BA28BA38BA4E6CBB5D58BA5E6CC8BA68BA7E6CF8BA88BA9C4DB8BAAE6C68BAB8BAC8BAD8BAE8BAFE6CD8BB08BB18BB28BB38BB48BB58BB68BB78BB88BB98BBA8BBB8BBC8BBD8BBE8BBF8BC08BC18BC28BC38BC48BC58BC6E6D28BC78BC88BC98BCA8BCB8BCC8BCD8BCE8BCF8BD08BD18BD2E6D4E6D38BD38BD48BD58BD68BD78BD88BD98BDA8BDB8BDC8BDD8BDE8BDF8BE08BE18BE28BE38BE48BE58BE68BE78BE88BE98BEA8BEB8BECE6D58BEDD9F88BEE8BEFE6D68BF08BF18BF28BF38BF48BF58BF68BF7E6D78BF88BF98BFA8BFB8BFC8BFD8BFE8C408C418C428C438C448C458C468C47D7D3E6DD8C48E6DEBFD7D4D08C49D7D6B4E6CBEFE6DAD8C3D7CED0A28C4AC3CF8C4B8C4CE6DFBCBEB9C2E6DBD1A78C4D8C4EBAA2C2CF8C4FD8AB8C508C518C52CAEBE5EE8C53E6DC8C54B7F58C558C568C578C58C8E68C598C5AC4F58C5B8C5CE5B2C4FE8C5DCBFCE5B3D5AC8C5ED3EECAD8B0B28C5FCBCECDEA8C608C61BAEA8C628C638C64E5B58C65E5B48C66D7DAB9D9D6E6B6A8CDF0D2CBB1A6CAB58C67B3E8C9F3BFCDD0FBCAD2E5B6BBC28C688C698C6ACFDCB9AC8C6B8C6C8C6D8C6ED4D78C6F8C70BAA6D1E7CFFCBCD28C71E5B7C8DD8C728C738C74BFEDB1F6CBDE8C758C76BCC58C77BCC4D2FAC3DCBFDC8C788C798C7A8C7BB8BB8C7C8C7D8C7EC3C28C80BAAED4A28C818C828C838C848C858C868C878C888C89C7DEC4AFB2EC8C8AB9D18C8B8C8CE5BBC1C88C8D8C8ED5AF8C8F8C908C918C928C93E5BC8C94E5BE8C958C968C978C988C998C9A8C9BB4E7B6D4CBC2D1B0B5BC8C9C8C9DCAD98C9EB7E28C9F8CA0C9E48CA1BDAB8CA28CA3CEBED7F08CA48CA58CA68CA7D0A18CA8C9D98CA98CAAB6FBE6D8BCE28CABB3BE8CACC9D08CADE6D9B3A28CAE8CAF8CB08CB1DECC8CB2D3C8DECD8CB3D2A28CB48CB58CB68CB7DECE8CB88CB98CBA8CBBBECD8CBC8CBDDECF8CBE8CBF8CC0CAACD2FCB3DFE5EAC4E1BEA1CEB2C4F2BED6C6A8B2E38CC18CC2BED38CC38CC4C7FCCCEBBDECCEDD8CC58CC6CABAC6C1E5ECD0BC8CC78CC88CC9D5B98CCA8CCB8CCCE5ED8CCD8CCE8CCF8CD0CAF48CD1CDC0C2C58CD2E5EF8CD3C2C4E5F08CD48CD58CD68CD78CD88CD98CDAE5F8CDCD8CDBC9BD8CDC8CDD8CDE8CDF8CE08CE18CE2D2D9E1A88CE38CE48CE58CE6D3EC8CE7CBEAC6F18CE88CE98CEA8CEB8CECE1AC8CED8CEE8CEFE1A7E1A98CF08CF1E1AAE1AF8CF28CF3B2ED8CF4E1ABB8DAE1ADE1AEE1B0B5BAE1B18CF58CF68CF78CF88CF9E1B3E1B88CFA8CFB8CFC8CFD8CFED1D28D40E1B6E1B5C1EB8D418D428D43E1B78D44D4C08D45E1B28D46E1BAB0B68D478D488D498D4AE1B48D4BBFF98D4CE1B98D4D8D4EE1BB8D4F8D508D518D528D538D54E1BE8D558D568D578D588D598D5AE1BC8D5B8D5C8D5D8D5E8D5F8D60D6C58D618D628D638D648D658D668D67CFBF8D688D69E1BDE1BFC2CD8D6AB6EB8D6BD3F88D6C8D6DC7CD8D6E8D6FB7E58D708D718D728D738D748D758D768D778D788D79BEFE8D7A8D7B8D7C8D7D8D7E8D80E1C0E1C18D818D82E1C7B3E78D838D848D858D868D878D88C6E98D898D8A8D8B8D8C8D8DB4DE8D8ED1C28D8F8D908D918D92E1C88D938D94E1C68D958D968D978D988D99E1C58D9AE1C3E1C28D9BB1C08D9C8D9D8D9ED5B8E1C48D9F8DA08DA18DA28DA3E1CB8DA48DA58DA68DA78DA88DA98DAA8DABE1CCE1CA8DAC8DAD8DAE8DAF8DB08DB18DB28DB3EFFA8DB48DB5E1D3E1D2C7B68DB68DB78DB88DB98DBA8DBB8DBC8DBD8DBE8DBF8DC0E1C98DC18DC2E1CE8DC3E1D08DC48DC58DC68DC78DC88DC98DCA8DCB8DCC8DCD8DCEE1D48DCFE1D1E1CD8DD08DD1E1CF8DD28DD38DD48DD5E1D58DD68DD78DD88DD98DDA8DDB8DDC8DDD8DDE8DDF8DE08DE18DE2E1D68DE38DE48DE58DE68DE78DE88DE98DEA8DEB8DEC8DED8DEE8DEF8DF08DF18DF28DF38DF48DF58DF68DF78DF8E1D78DF98DFA8DFBE1D88DFC8DFD8DFE8E408E418E428E438E448E458E468E478E488E498E4A8E4B8E4C8E4D8E4E8E4F8E508E518E528E538E548E55E1DA8E568E578E588E598E5A8E5B8E5C8E5D8E5E8E5F8E608E618E62E1DB8E638E648E658E668E678E688E69CEA18E6A8E6B8E6C8E6D8E6E8E6F8E708E718E728E738E748E758E76E7DD8E77B4A8D6DD8E788E79D1B2B3B28E7A8E7BB9A4D7F3C7C9BEDEB9AE8E7CCED78E7D8E7EB2EEDBCF8E80BCBAD2D1CBC8B0CD8E818E82CFEF8E838E848E858E868E87D9E3BDED8E888E89B1D2CAD0B2BC8E8ACBA7B7AB8E8BCAA68E8C8E8D8E8ECFA38E8F8E90E0F8D5CAE0FB8E918E92E0FAC5C1CCFB8E93C1B1E0F9D6E3B2AFD6C4B5DB8E948E958E968E978E988E998E9A8E9BB4F8D6A18E9C8E9D8E9E8E9F8EA0CFAFB0EF8EA18EA2E0FC8EA38EA48EA58EA68EA7E1A1B3A38EA88EA9E0FDE0FEC3B18EAA8EAB8EAC8EADC3DD8EAEE1A2B7F98EAF8EB08EB18EB28EB38EB4BBCF8EB58EB68EB78EB88EB98EBA8EBBE1A3C4BB8EBC8EBD8EBE8EBF8EC0E1A48EC18EC2E1A58EC38EC4E1A6B4B18EC58EC68EC78EC88EC98ECA8ECB8ECC8ECD8ECE8ECF8ED08ED18ED28ED3B8C9C6BDC4EA8ED4B2A28ED5D0D28ED6E7DBBBC3D3D7D3C48ED7B9E3E2CF8ED88ED98EDAD7AF8EDBC7ECB1D38EDC8EDDB4B2E2D18EDE8EDF8EE0D0F2C2AEE2D08EE1BFE2D3A6B5D7E2D2B5EA8EE2C3EDB8FD8EE3B8AE8EE4C5D3B7CFE2D48EE58EE68EE78EE8E2D3B6C8D7F98EE98EEA8EEB8EEC8EEDCDA58EEE8EEF8EF08EF18EF2E2D88EF3E2D6CAFCBFB5D3B9E2D58EF48EF58EF68EF7E2D78EF88EF98EFA8EFB8EFC8EFD8EFE8F408F418F42C1AEC0C88F438F448F458F468F478F48E2DBE2DAC0AA8F498F4AC1CE8F4B8F4C8F4D8F4EE2DC8F4F8F508F518F528F538F548F558F568F578F588F598F5AE2DD8F5BE2DE8F5C8F5D8F5E8F5F8F608F618F628F638F64DBC88F65D1D3CDA28F668F67BDA88F688F698F6ADEC3D8A5BFAADBCDD2ECC6FAC5AA8F6B8F6C8F6DDEC48F6EB1D7DFAE8F6F8F708F71CABD8F72DFB18F73B9AD8F74D2FD8F75B8A5BAEB8F768F77B3DA8F788F798F7AB5DCD5C58F7B8F7C8F7D8F7EC3D6CFD2BBA18F80E5F3E5F28F818F82E5F48F83CDE48F84C8F58F858F868F878F888F898F8A8F8BB5AFC7BF8F8CE5F68F8D8F8E8F8FECB08F908F918F928F938F948F958F968F978F988F998F9A8F9B8F9C8F9D8F9EE5E68F9FB9E9B5B18FA0C2BCE5E8E5E7E5E98FA18FA28FA38FA4D2CD8FA58FA68FA7E1EAD0CE8FA8CDAE8FA9D1E58FAA8FABB2CAB1EB8FACB1F2C5ED8FAD8FAED5C3D3B08FAFE1DC8FB08FB18FB2E1DD8FB3D2DB8FB4B3B9B1CB8FB58FB68FB7CDF9D5F7E1DE8FB8BEB6B4FD8FB9E1DFBADCE1E0BBB2C2C9E1E18FBA8FBB8FBCD0EC8FBDCDBD8FBE8FBFE1E28FC0B5C3C5C7E1E38FC18FC2E1E48FC38FC48FC58FC6D3F98FC78FC88FC98FCA8FCB8FCCE1E58FCDD1AD8FCE8FCFE1E6CEA28FD08FD18FD28FD38FD48FD5E1E78FD6B5C28FD78FD88FD98FDAE1E8BBD58FDB8FDC8FDD8FDE8FDFD0C4E2E0B1D8D2E48FE08FE1E2E18FE28FE3BCC9C8CC8FE4E2E3ECFEECFDDFAF8FE58FE68FE7E2E2D6BECDFCC3A68FE88FE98FEAE3C38FEB8FECD6D2E2E78FED8FEEE2E88FEF8FF0D3C78FF18FF2E2ECBFEC8FF3E2EDE2E58FF48FF5B3C08FF68FF78FF8C4EE8FF98FFAE2EE8FFB8FFCD0C38FFDBAF6E2E9B7DEBBB3CCACCBCBE2E4E2E6E2EAE2EB8FFE90409041E2F790429043E2F4D4F5E2F390449045C5AD9046D5FAC5C2B2C090479048E2EF9049E2F2C1AFCBBC904A904BB5A1E2F9904C904D904EBCB1E2F1D0D4D4B9E2F5B9D6E2F6904F90509051C7D390529053905490559056E2F0905790589059905A905BD7DCEDA1905C905DE2F8905EEDA5E2FECAD1905F906090619062906390649065C1B59066BBD090679068BFD69069BAE3906A906BCBA1906C906D906EEDA6EDA3906F9070EDA29071907290739074BBD6EDA7D0F490759076EDA4BADEB6F7E3A1B6B2CCF1B9A79077CFA2C7A190789079BFD2907A907BB6F1907CE2FAE2FBE2FDE2FCC4D5E3A2907DD3C1907E90809081E3A7C7C49082908390849085CFA490869087E3A9BAB790889089908A908BE3A8908CBBDA908DE3A3908E908F9090E3A4E3AA9091E3A69092CEF2D3C690939094BBBC90959096D4C39097C4FA90989099EDA8D0FCE3A5909AC3F5909BE3ADB1AF909CE3B2909D909E909FBCC290A090A1E3ACB5BF90A290A390A490A590A690A790A890A9C7E9E3B090AA90AB90ACBEAACDEF90AD90AE90AF90B090B1BBF390B290B390B4CCE890B590B6E3AF90B7E3B190B8CFA7E3AE90B9CEA9BBDD90BA90BB90BC90BD90BEB5EBBEE5B2D2B3CD90BFB1B9E3ABB2D1B5ACB9DFB6E890C090C1CFEBE3B790C2BBCC90C390C4C8C7D0CA90C590C690C790C890C9E3B8B3EE90CA90CB90CC90CDEDA990CED3FAD3E490CF90D090D1EDAAE3B9D2E290D290D390D490D590D6E3B590D790D890D990DAD3DE90DB90DC90DD90DEB8D0E3B390DF90E0E3B6B7DF90E1E3B4C0A290E290E390E4E3BA90E590E690E790E890E990EA90EB90EC90ED90EE90EF90F090F190F290F390F490F590F690F7D4B890F890F990FA90FB90FC90FD90FE9140B4C89141E3BB9142BBC59143C9F791449145C9E5914691479148C4BD9149914A914B914C914D914E914FEDAB9150915191529153C2FD9154915591569157BBDBBFAE91589159915A915B915C915D915ECEBF915F916091619162E3BC9163BFB6916491659166916791689169916A916B916C916D916E916F9170917191729173917491759176B1EF91779178D4F79179917A917B917C917DE3BE917E9180918191829183918491859186EDAD918791889189918A918B918C918D918E918FE3BFBAA9EDAC91909191E3BD91929193919491959196919791989199919A919BE3C0919C919D919E919F91A091A1BAB691A291A391A4B6AE91A591A691A791A891A9D0B891AAB0C3EDAE91AB91AC91AD91AE91AFEDAFC0C191B0E3C191B191B291B391B491B591B691B791B891B991BA91BB91BC91BD91BE91BF91C091C1C5B391C291C391C491C591C691C791C891C991CA91CB91CC91CD91CE91CFE3C291D091D191D291D391D491D591D691D791D8DCB291D991DA91DB91DC91DD91DEEDB091DFB8EA91E0CEECEAA7D0E7CAF9C8D6CFB7B3C9CED2BDE491E191E2E3DEBBF2EAA8D5BD91E3C6DDEAA991E491E591E6EAAA91E7EAACEAAB91E8EAAEEAAD91E991EA91EB91ECBDD891EDEAAF91EEC2BE91EF91F091F191F2B4C1B4F791F391F4BBA791F591F691F791F891F9ECE6ECE5B7BFCBF9B1E291FAECE791FB91FC91FDC9C8ECE8ECE991FECAD6DED0B2C5D4FA92409241C6CBB0C7B4F2C8D3924292439244CDD092459246BFB8924792489249924A924B924C924DBFDB924E924FC7A4D6B49250C0A9DED1C9A8D1EFC5A4B0E7B3B6C8C592519252B0E292539254B7F692559256C5FA92579258B6F39259D5D2B3D0BCBC925A925B925CB3AD925D925E925F9260BEF1B0D1926192629263926492659266D2D6CAE3D7A59267CDB6B6B6BFB9D5DB9268B8A7C5D79269926A926BDED2BFD9C2D5C7C0926CBBA4B1A8926D926EC5EA926F9270C5FBCCA79271927292739274B1A7927592769277B5D692789279927AC4A8927BDED3D1BAB3E9927CC3F2927D927EB7F79280D6F4B5A3B2F0C4B4C4E9C0ADDED49281B0E8C5C4C1E09282B9D59283BEDCCDD8B0CE9284CDCFDED6BED0D7BEDED5D5D0B0DD92859286C4E292879288C2A3BCF09289D3B5C0B9C5A1B2A6D4F1928A928BC0A8CAC3DED7D5FC928CB9B0928DC8ADCBA9928EDED9BFBD928F929092919292C6B4D7A7CAB0C4C39293B3D6B9D29294929592969297D6B8EAFCB0B492989299929A929BBFE6929C929DCCF4929E929F92A092A1CDDA92A292A392A4D6BFC2CE92A5CECECCA2D0AEC4D3B5B2DED8D5F5BCB7BBD392A692A7B0A492A8C5B2B4EC92A992AA92ABD5F192AC92ADEAFD92AE92AF92B092B192B292B3DEDACDA692B492B5CDEC92B692B792B892B9CEE6DEDC92BACDB1C0A692BB92BCD7BD92BDDEDBB0C6BAB4C9D3C4F3BEE892BE92BF92C092C1B2B692C292C392C492C592C692C792C892C9C0CCCBF092CABCF1BBBBB5B792CB92CC92CDC5F592CEDEE692CF92D092D1DEE3BEDD92D292D3DEDF92D492D592D692D7B4B7BDDD92D892D9DEE0C4ED92DA92DB92DC92DDCFC692DEB5E092DF92E092E192E2B6DECADAB5F4DEE592E3D5C692E4DEE1CCCDC6FE92E5C5C592E692E792E8D2B492E9BEF292EA92EB92EC92ED92EE92EF92F0C2D392F1CCBDB3B892F2BDD392F3BFD8CDC6D1DAB4EB92F4DEE4DEDDDEE792F5EAFE92F692F7C2B0DEE292F892F9D6C0B5A792FAB2F492FBDEE892FCDEF292FD92FE934093419342DEED9343DEF193449345C8E0934693479348D7E1DEEFC3E8CCE19349B2E5934A934B934CD2BE934D934E934F9350935193529353DEEE9354DEEBCED59355B4A79356935793589359935ABFABBEBE935B935CBDD2935D935E935F9360DEE99361D4AE9362DEDE9363DEEA9364936593669367C0BF9368DEECB2F3B8E9C2A79369936ABDC1936B936C936D936E936FDEF5DEF893709371B2ABB4A493729373B4EAC9A6937493759376937793789379DEF6CBD1937AB8E3937BDEF7DEFA937C937D937E9380DEF9938193829383CCC29384B0E1B4EE93859386938793889389938AE5BA938B938C938D938E938FD0AF93909391B2EB9392EBA19393DEF493949395C9E3DEF3B0DAD2A1B1F79396CCAF939793989399939A939B939C939DDEF0939ECBA4939F93A093A1D5AA93A293A393A493A593A6DEFB93A793A893A993AA93AB93AC93AD93AEB4DD93AFC4A693B093B193B2DEFD93B393B493B593B693B793B893B993BA93BB93BCC3FEC4A1DFA193BD93BE93BF93C093C193C293C3C1CC93C4DEFCBEEF93C5C6B293C693C793C893C993CA93CB93CC93CD93CEB3C5C8F693CF93D0CBBADEFE93D193D2DFA493D393D493D593D6D7B293D793D893D993DA93DBB3B793DC93DD93DE93DFC1C393E093E1C7CBB2A5B4E993E2D7AB93E393E493E593E6C4EC93E7DFA2DFA393E8DFA593E9BAB393EA93EB93ECDFA693EDC0DE93EE93EFC9C393F093F193F293F393F493F593F6B2D9C7E693F7DFA793F8C7DC93F993FA93FB93FCDFA8EBA293FD93FE944094419442CBD3944394449445DFAA9446DFA99447B2C194489449944A944B944C944D944E944F9450945194529453945494559456945794589459945A945B945C945D945E945F9460C5CA94619462946394649465946694679468DFAB9469946A946B946C946D946E946F9470D4DC94719472947394749475C8C19476947794789479947A947B947C947D947E948094819482DFAC94839484948594869487BEF094889489DFADD6A7948A948B948C948DEAB7EBB6CAD5948ED8FCB8C4948FB9A594909491B7C5D5FE94929493949494959496B9CA94979498D0A7F4CD9499949AB5D0949B949CC3F4949DBEC8949E949F94A0EBB7B0BD94A194A2BDCC94A3C1B294A4B1D6B3A894A594A694A7B8D2C9A294A894A9B6D894AA94AB94AC94ADEBB8BEB494AE94AF94B0CAFD94B1C7C394B2D5FB94B394B4B7F394B594B694B794B894B994BA94BB94BC94BD94BE94BF94C094C194C294C3CEC494C494C594C6D5ABB1F394C794C894C9ECB3B0DF94CAECB594CB94CC94CDB6B794CEC1CF94CFF5FAD0B194D094D1D5E594D2CED394D394D4BDEFB3E294D5B8AB94D6D5B694D7EDBD94D8B6CF94D9CBB9D0C294DA94DB94DC94DD94DE94DF94E094E1B7BD94E294E3ECB6CAA994E494E594E6C5D494E7ECB9ECB8C2C3ECB794E894E994EA94EBD0FDECBA94ECECBBD7E594ED94EEECBC94EF94F094F1ECBDC6EC94F294F394F494F594F694F794F894F9CEDE94FABCC894FB94FCC8D5B5A9BEC9D6BCD4E794FD94FED1AED0F1EAB8EAB9EABABAB59540954195429543CAB1BFF595449545CDFA9546954795489549954AEAC0954BB0BAEABE954C954DC0A5954E954F9550EABB9551B2FD9552C3F7BBE8955395549555D2D7CEF4EABF955695579558EABC9559955A955BEAC3955CD0C7D3B3955D955E955F9560B4BA9561C3C1D7F29562956395649565D5D19566CAC79567EAC595689569EAC4EAC7EAC6956A956B956C956D956ED6E7956FCFD495709571EACB9572BBCE9573957495759576957795789579BDFAC9CE957A957BEACC957C957DC9B9CFFEEACAD4CEEACDEACF957E9580CDED9581958295839584EAC99585EACE95869587CEEE9588BBDE9589B3BF958A958B958C958D958EC6D5BEB0CEFA958F95909591C7E79592BEA7EAD095939594D6C7959595969597C1C095989599959AD4DD959BEAD1959C959DCFBE959E959F95A095A1EAD295A295A395A495A5CAEE95A695A795A895A9C5AFB0B595AA95AB95AC95AD95AEEAD495AF95B095B195B295B395B495B595B695B7EAD3F4DF95B895B995BA95BB95BCC4BA95BD95BE95BF95C095C1B1A995C295C395C495C5E5DF95C695C795C895C9EAD595CA95CB95CC95CD95CE95CF95D095D195D295D395D495D595D695D795D895D995DA95DB95DC95DD95DE95DF95E095E195E295E3CAEF95E4EAD6EAD7C6D895E595E695E795E895E995EA95EB95ECEAD895ED95EEEAD995EF95F095F195F295F395F4D4BB95F5C7FAD2B7B8FC95F695F7EAC295F8B2DC95F995FAC2FC95FBD4F8CCE6D7EE95FC95FD95FE9640964196429643D4C2D3D0EBC3C5F39644B7FE96459646EBD4964796489649CBB7EBDE964AC0CA964B964C964DCDFB964EB3AF964FC6DA965096519652965396549655EBFC9656C4BE9657CEB4C4A9B1BED4FD9658CAF59659D6EC965A965BC6D3B6E4965C965D965E965FBBFA96609661D0E096629663C9B19664D4D3C8A896659666B8CB9667E8BEC9BC96689669E8BB966AC0EED0D3B2C4B4E5966BE8BC966C966DD5C8966E966F967096719672B6C59673E8BDCAF8B8DCCCF5967496759676C0B496779678D1EEE8BFE8C29679967ABABC967BB1ADBDDC967CEABDE8C3967DE8C6967EE8CB9680968196829683E8CC9684CBC9B0E59685BCAB96869687B9B996889689E8C1968ACDF7968BE8CA968C968D968E968FCEF69690969196929693D5ED9694C1D6E8C49695C3B69696B9FBD6A6E8C8969796989699CAE0D4E6969AE8C0969BE8C5E8C7969CC7B9B7E3969DE8C9969EBFDDE8D2969F96A0E8D796A1E8D5BCDCBCCFE8DB96A296A396A496A596A696A796A896A9E8DE96AAE8DAB1FA96AB96AC96AD96AE96AF96B096B196B296B396B4B0D8C4B3B8CCC6E2C8BEC8E196B596B696B7E8CFE8D4E8D696B8B9F1E8D8D7F596B9C4FB96BAE8DC96BB96BCB2E996BD96BE96BFE8D196C096C1BCED96C296C3BFC2E8CDD6F996C4C1F8B2F196C596C696C796C896C996CA96CB96CCE8DF96CDCAC1E8D996CE96CF96D096D1D5A496D2B1EAD5BBE8CEE8D0B6B0E8D396D3E8DDC0B896D4CAF796D5CBA896D696D7C6DCC0F596D896D996DA96DB96DCE8E996DD96DE96DFD0A396E096E196E296E396E496E596E6E8F2D6EA96E796E896E996EA96EB96EC96EDE8E0E8E196EE96EF96F0D1F9BACBB8F996F196F2B8F1D4D4E8EF96F3E8EEE8ECB9F0CCD2E8E6CEA6BFF296F4B0B8E8F1E8F096F5D7C096F6E8E496F7CDA9C9A396F8BBB8BDDBE8EA96F996FA96FB96FC96FD96FE9740974197429743E8E2E8E3E8E5B5B5E8E7C7C5E8EBE8EDBDB0D7AE9744E8F897459746974797489749974A974B974CE8F5974DCDB0E8F6974E974F9750975197529753975497559756C1BA9757E8E89758C3B7B0F09759975A975B975C975D975E975F9760E8F4976197629763E8F7976497659766B9A3976797689769976A976B976C976D976E976F9770C9D2977197729773C3CECEE0C0E69774977597769777CBF39778CCDDD0B59779977ACAE1977BE8F3977C977D977E9780978197829783978497859786BCEC9787E8F997889789978A978B978C978DC3DE978EC6E5978FB9F79790979197929793B0F497949795D7D897969797BCAC9798C5EF9799979A979B979C979DCCC4979E979FE9A697A097A197A297A397A497A597A697A797A897A9C9AD97AAE9A2C0E297AB97AC97ADBFC397AE97AF97B0E8FEB9D797B1E8FB97B297B397B497B5E9A497B697B797B8D2CE97B997BA97BB97BC97BDE9A397BED6B2D7B597BFE9A797C0BDB797C197C297C397C497C597C697C797C897C997CA97CB97CCE8FCE8FD97CD97CE97CFE9A197D097D197D297D397D497D597D697D7CDD697D897D9D2AC97DA97DB97DCE9B297DD97DE97DF97E0E9A997E197E297E3B4AA97E4B4BB97E597E6E9AB97E797E897E997EA97EB97EC97ED97EE97EF97F097F197F297F397F497F597F697F7D0A897F897F9E9A597FA97FBB3FE97FC97FDE9ACC0E397FEE9AA98409841E9B998429843E9B89844984598469847E9AE98489849E8FA984A984BE9A8984C984D984E984F9850BFACE9B1E9BA98519852C2A5985398549855E9AF9856B8C59857E9AD9858D3DCE9B4E9B5E9B79859985A985BE9C7985C985D985E985F98609861C0C6E9C598629863E9B098649865E9BBB0F19866986798689869986A986B986C986D986E986FE9BCD5A598709871E9BE9872E9BF987398749875E9C198769877C1F198789879C8B6987A987B987CE9BD987D987E988098819882E9C29883988498859886988798889889988AE9C3988BE9B3988CE9B6988DBBB1988E988F9890E9C0989198929893989498959896BCF7989798989899E9C4E9C6989A989B989C989D989E989F98A098A198A298A398A498A5E9CA98A698A798A898A9E9CE98AA98AB98AC98AD98AE98AF98B098B198B298B3B2DB98B4E9C898B598B698B798B898B998BA98BB98BC98BD98BEB7AE98BF98C098C198C298C398C498C598C698C798C898C998CAE9CBE9CC98CB98CC98CD98CE98CF98D0D5C198D1C4A398D298D398D498D598D698D7E9D898D8BAE198D998DA98DB98DCE9C998DDD3A398DE98DF98E0E9D498E198E298E398E498E598E698E7E9D7E9D098E898E998EA98EB98ECE9CF98ED98EEC7C198EF98F098F198F298F398F498F598F6E9D298F798F898F998FA98FB98FC98FDE9D9B3C898FEE9D399409941994299439944CFF0994599469947E9CD99489949994A994B994C994D994E994F995099519952B3F79953995499559956995799589959E9D6995A995BE9DA995C995D995ECCB4995F99609961CFAD99629963996499659966996799689969996AE9D5996BE9DCE9DB996C996D996E996F9970E9DE99719972997399749975997699779978E9D19979997A997B997C997D997E99809981E9DD9982E9DFC3CA9983998499859986998799889989998A998B998C998D998E998F9990999199929993999499959996999799989999999A999B999C999D999E999F99A099A199A299A399A499A599A699A799A899A999AA99AB99AC99AD99AE99AF99B099B199B299B399B499B599B699B799B899B999BA99BB99BC99BD99BE99BF99C099C199C299C399C499C599C699C799C899C999CA99CB99CC99CD99CE99CF99D099D199D299D399D499D599D699D799D899D999DA99DB99DC99DD99DE99DF99E099E199E299E399E499E599E699E799E899E999EA99EB99EC99ED99EE99EF99F099F199F299F399F499F5C7B7B4CEBBB6D0C0ECA399F699F7C5B799F899F999FA99FB99FC99FD99FE9A409A419A42D3FB9A439A449A459A46ECA49A47ECA5C6DB9A489A499A4ABFEE9A4B9A4C9A4D9A4EECA69A4F9A50ECA7D0AA9A51C7B89A529A53B8E89A549A559A569A579A589A599A5A9A5B9A5C9A5D9A5E9A5FECA89A609A619A629A639A649A659A669A67D6B9D5FDB4CBB2BDCEE4C6E79A689A69CDE19A6A9A6B9A6C9A6D9A6E9A6F9A709A719A729A739A749A759A769A77B4F59A78CBC0BCDF9A799A7A9A7B9A7CE9E2E9E3D1EAE9E59A7DB4F9E9E49A7ED1B3CAE2B2D09A80E9E89A819A829A839A84E9E6E9E79A859A86D6B39A879A889A89E9E9E9EA9A8A9A8B9A8C9A8D9A8EE9EB9A8F9A909A919A929A939A949A959A96E9EC9A979A989A999A9A9A9B9A9C9A9D9A9EECAFC5B9B6CE9A9FD2F39AA09AA19AA29AA39AA49AA59AA6B5EE9AA7BBD9ECB19AA89AA9D2E39AAA9AAB9AAC9AAD9AAECEE39AAFC4B89AB0C3BF9AB19AB2B6BED8B9B1C8B1CFB1D1C5FE9AB3B1D09AB4C3AB9AB59AB69AB79AB89AB9D5B19ABA9ABB9ABC9ABD9ABE9ABF9AC09AC1EBA4BAC19AC29AC39AC4CCBA9AC59AC69AC7EBA59AC8EBA79AC99ACA9ACBEBA89ACC9ACD9ACEEBA69ACF9AD09AD19AD29AD39AD49AD5EBA9EBABEBAA9AD69AD79AD89AD99ADAEBAC9ADBCACFD8B5C3F19ADCC3A5C6F8EBADC4CA9ADDEBAEEBAFEBB0B7D59ADE9ADF9AE0B7FA9AE1EBB1C7E29AE2EBB39AE3BAA4D1F5B0B1EBB2EBB49AE49AE59AE6B5AAC2C8C7E89AE7EBB59AE8CBAEE3DF9AE99AEAD3C09AEB9AEC9AED9AEED9DB9AEF9AF0CDA1D6ADC7F39AF19AF29AF3D9E0BBE39AF4BABAE3E29AF59AF69AF79AF89AF9CFAB9AFA9AFB9AFCE3E0C9C79AFDBAB99AFE9B409B41D1B4E3E1C8EAB9AFBDADB3D8CEDB9B429B43CCC09B449B459B46E3E8E3E9CDF49B479B489B499B4A9B4BCCAD9B4CBCB39B4DE3EA9B4EE3EB9B4F9B50D0DA9B519B529B53C6FBB7DA9B549B55C7DFD2CACED69B56E3E4E3EC9B57C9F2B3C19B589B59E3E79B5A9B5BC6E3E3E59B5C9B5DEDB3E3E69B5E9B5F9B609B61C9B39B62C5E69B639B649B65B9B59B66C3BB9B67E3E3C5BDC1A4C2D9B2D79B68E3EDBBA6C4AD9B69E3F0BEDA9B6A9B6BE3FBE3F5BAD39B6C9B6D9B6E9B6FB7D0D3CD9B70D6CED5D3B9C1D5B4D1D89B719B729B739B74D0B9C7F69B759B769B77C8AAB2B49B78C3DA9B799B7A9B7BE3EE9B7C9B7DE3FCE3EFB7A8E3F7E3F49B7E9B809B81B7BA9B829B83C5A29B84E3F6C5DDB2A8C6FC9B85C4E09B869B87D7A29B88C0E1E3F99B899B8AE3FAE3FDCCA9E3F39B8BD3BE9B8CB1C3EDB4E3F1E3F29B8DE3F8D0BAC6C3D4F3E3FE9B8E9B8FBDE09B909B91E4A79B929B93E4A69B949B959B96D1F3E4A39B97E4A99B989B999B9AC8F79B9B9B9C9B9D9B9ECFB49B9FE4A8E4AEC2E59BA09BA1B6B49BA29BA39BA49BA59BA69BA7BDF29BA8E4A29BA99BAABAE9E4AA9BAB9BACE4AC9BAD9BAEB6FDD6DEE4B29BAFE4AD9BB09BB19BB2E4A19BB3BBEECDDDC7A2C5C99BB49BB5C1F79BB6E4A49BB7C7B3BDACBDBDE4A59BB8D7C7B2E29BB9E4ABBCC3E4AF9BBABBEBE4B0C5A8E4B19BBB9BBC9BBD9BBED5E3BFA39BBFE4BA9BC0E4B79BC1E4BB9BC29BC3E4BD9BC49BC5C6D69BC69BC7BAC6C0CB9BC89BC99BCAB8A1E4B49BCB9BCC9BCD9BCED4A19BCF9BD0BAA3BDFE9BD19BD29BD3E4BC9BD49BD59BD69BD79BD8CDBF9BD99BDAC4F99BDB9BDCCFFBC9E69BDD9BDED3BF9BDFCFD19BE09BE1E4B39BE2E4B8E4B9CCE99BE39BE49BE59BE69BE7CCCE9BE8C0D4E4B5C1B0E4B6CED09BE9BBC1B5D39BEAC8F3BDA7D5C7C9ACB8A2E4CA9BEB9BECE4CCD1C49BED9BEED2BA9BEF9BF0BAAD9BF19BF2BAD49BF39BF49BF59BF69BF79BF8E4C3B5ED9BF99BFA9BFBD7CDE4C0CFFDE4BF9BFC9BFD9BFEC1DCCCCA9C409C419C429C43CAE79C449C459C469C47C4D79C48CCD4E4C89C499C4A9C4BE4C7E4C19C4CE4C4B5AD9C4D9C4ED3D99C4FE4C69C509C519C529C53D2F9B4E39C54BBB49C559C56C9EE9C57B4BE9C589C599C5ABBEC9C5BD1CD9C5CCCEDEDB59C5D9C5E9C5F9C609C619C629C639C64C7E59C659C669C679C68D4A89C69E4CBD7D5E4C29C6ABDA5E4C59C6B9C6CD3E69C6DE4C9C9F89C6E9C6FE4BE9C709C71D3E59C729C73C7FEB6C99C74D4FCB2B3E4D79C759C769C77CEC29C78E4CD9C79CEBC9C7AB8DB9C7B9C7CE4D69C7DBFCA9C7E9C809C81D3CE9C82C3EC9C839C849C859C869C879C889C899C8AC5C8E4D89C8B9C8C9C8D9C8E9C8F9C909C919C92CDC4E4CF9C939C949C959C96E4D4E4D59C97BAFE9C98CFE69C999C9AD5BF9C9B9C9C9C9DE4D29C9E9C9F9CA09CA19CA29CA39CA49CA59CA69CA79CA8E4D09CA99CAAE4CE9CAB9CAC9CAD9CAE9CAF9CB09CB19CB29CB39CB49CB59CB69CB79CB89CB9CDE5CAAA9CBA9CBB9CBCC0A39CBDBDA6E4D39CBE9CBFB8C89CC09CC19CC29CC39CC4E4E7D4B49CC59CC69CC79CC89CC99CCA9CCBE4DB9CCC9CCD9CCEC1EF9CCF9CD0E4E99CD19CD2D2E79CD39CD4E4DF9CD5E4E09CD69CD7CFAA9CD89CD99CDA9CDBCBDD9CDCE4DAE4D19CDDE4E59CDEC8DCE4E39CDF9CE0C4E7E4E29CE1E4E19CE29CE39CE4B3FCE4E89CE59CE69CE79CE8B5E19CE99CEA9CEBD7CC9CEC9CED9CEEE4E69CEFBBAC9CF0D7D2CCCFEBF89CF1E4E49CF29CF3B9F69CF49CF59CF6D6CDE4D9E4DCC2FAE4DE9CF7C2CBC0C4C2D09CF8B1F5CCB29CF99CFA9CFB9CFC9CFD9CFE9D409D419D429D43B5CE9D449D459D469D47E4EF9D489D499D4A9D4B9D4C9D4D9D4E9D4FC6AF9D509D519D52C6E19D539D54E4F59D559D569D579D589D59C2A99D5A9D5B9D5CC0ECD1DDE4EE9D5D9D5E9D5F9D609D619D629D639D649D659D66C4AE9D679D689D69E4ED9D6A9D6B9D6C9D6DE4F6E4F4C2FE9D6EE4DD9D6FE4F09D70CAFE9D71D5C49D729D73E4F19D749D759D769D779D789D799D7AD1FA9D7B9D7C9D7D9D7E9D809D819D82E4EBE4EC9D839D849D85E4F29D86CEAB9D879D889D899D8A9D8B9D8C9D8D9D8E9D8F9D90C5CB9D919D929D93C7B19D94C2BA9D959D969D97E4EA9D989D999D9AC1CA9D9B9D9C9D9D9D9E9D9F9DA0CCB6B3B19DA19DA29DA3E4FB9DA4E4F39DA59DA69DA7E4FA9DA8E4FD9DA9E4FC9DAA9DAB9DAC9DAD9DAE9DAF9DB0B3CE9DB19DB29DB3B3BAE4F79DB49DB5E4F9E4F8C5EC9DB69DB79DB89DB99DBA9DBB9DBC9DBD9DBE9DBF9DC09DC19DC2C0BD9DC39DC49DC59DC6D4E89DC79DC89DC99DCA9DCBE5A29DCC9DCD9DCE9DCF9DD09DD19DD29DD39DD49DD59DD6B0C49DD79DD8E5A49DD99DDAE5A39DDB9DDC9DDD9DDE9DDF9DE0BCA49DE1E5A59DE29DE39DE49DE59DE69DE7E5A19DE89DE99DEA9DEB9DEC9DED9DEEE4FEB1F49DEF9DF09DF19DF29DF39DF49DF59DF69DF79DF89DF9E5A89DFAE5A9E5A69DFB9DFC9DFD9DFE9E409E419E429E439E449E459E469E47E5A7E5AA9E489E499E4A9E4B9E4C9E4D9E4E9E4F9E509E519E529E539E549E559E569E579E589E599E5A9E5B9E5C9E5D9E5E9E5F9E609E619E629E639E649E659E669E679E68C6D99E699E6A9E6B9E6C9E6D9E6E9E6F9E70E5ABE5AD9E719E729E739E749E759E769E77E5AC9E789E799E7A9E7B9E7C9E7D9E7E9E809E819E829E839E849E859E869E879E889E89E5AF9E8A9E8B9E8CE5AE9E8D9E8E9E8F9E909E919E929E939E949E959E969E979E989E999E9A9E9B9E9C9E9D9E9EB9E09E9F9EA0E5B09EA19EA29EA39EA49EA59EA69EA79EA89EA99EAA9EAB9EAC9EAD9EAEE5B19EAF9EB09EB19EB29EB39EB49EB59EB69EB79EB89EB99EBABBF0ECE1C3F09EBBB5C6BBD29EBC9EBD9EBE9EBFC1E9D4EE9EC0BEC49EC19EC29EC3D7C69EC4D4D6B2D3ECBE9EC59EC69EC79EC8EAC19EC99ECA9ECBC2AFB4B69ECC9ECD9ECED1D79ECF9ED09ED1B3B49ED2C8B2BFBBECC09ED39ED4D6CB9ED59ED6ECBFECC19ED79ED89ED99EDA9EDB9EDC9EDD9EDE9EDF9EE09EE19EE29EE3ECC5BEE6CCBFC5DABEBC9EE4ECC69EE5B1FE9EE69EE79EE8ECC4D5A8B5E39EE9ECC2C1B6B3E39EEA9EEBECC3CBB8C0C3CCFE9EEC9EED9EEE9EEFC1D29EF0ECC89EF19EF29EF39EF49EF59EF69EF79EF89EF99EFA9EFB9EFC9EFDBAE6C0D39EFED6F29F409F419F42D1CC9F439F449F459F46BFBE9F47B7B3C9D5ECC7BBE29F48CCCCBDFDC8C89F49CFA99F4A9F4B9F4C9F4D9F4E9F4F9F50CDE99F51C5EB9F529F539F54B7E99F559F569F579F589F599F5A9F5B9F5C9F5D9F5E9F5FD1C9BAB89F609F619F629F639F64ECC99F659F66ECCA9F67BBC0ECCB9F68ECE2B1BAB7D99F699F6A9F6B9F6C9F6D9F6E9F6F9F709F719F729F73BDB99F749F759F769F779F789F799F7A9F7BECCCD1E6ECCD9F7C9F7D9F7E9F80C8BB9F819F829F839F849F859F869F879F889F899F8A9F8B9F8C9F8D9F8EECD19F8F9F909F919F92ECD39F93BBCD9F94BCE59F959F969F979F989F999F9A9F9B9F9C9F9D9F9E9F9F9FA09FA1ECCF9FA2C9B79FA39FA49FA59FA69FA7C3BA9FA8ECE3D5D5ECD09FA99FAA9FAB9FAC9FADD6F39FAE9FAF9FB0ECD2ECCE9FB19FB29FB39FB4ECD49FB5ECD59FB69FB7C9BF9FB89FB99FBA9FBB9FBC9FBDCFA89FBE9FBF9FC09FC19FC2D0DC9FC39FC49FC59FC6D1AC9FC79FC89FC99FCAC8DB9FCB9FCC9FCDECD6CEF59FCE9FCF9FD09FD19FD2CAECECDA9FD39FD49FD59FD69FD79FD89FD9ECD99FDA9FDB9FDCB0BE9FDD9FDE9FDF9FE09FE19FE2ECD79FE3ECD89FE49FE59FE6ECE49FE79FE89FE99FEA9FEB9FEC9FED9FEE9FEFC8BC9FF09FF19FF29FF39FF49FF59FF69FF79FF89FF9C1C79FFA9FFB9FFC9FFD9FFEECDCD1E0A040A041A042A043A044A045A046A047A048A049ECDBA04AA04BA04CA04DD4EFA04EECDDA04FA050A051A052A053A054DBC6A055A056A057A058A059A05AA05BA05CA05DA05EECDEA05FA060A061A062A063A064A065A066A067A068A069A06AB1ACA06BA06CA06DA06EA06FA070A071A072A073A074A075A076A077A078A079A07AA07BA07CA07DA07EA080A081ECDFA082A083A084A085A086A087A088A089A08AA08BECE0A08CD7A6A08DC5C0A08EA08FA090EBBCB0AEA091A092A093BEF4B8B8D2AFB0D6B5F9A094D8B3A095CBACA096E3DDA097A098A099A09AA09BA09CA09DC6ACB0E6A09EA09FA0A0C5C6EBB9A0A1A0A2A0A3A0A4EBBAA0A5A0A6A0A7EBBBA0A8A0A9D1C0A0AAC5A3A0ABEAF2A0ACC4B2A0ADC4B5C0CEA0AEA0AFA0B0EAF3C4C1A0B1CEEFA0B2A0B3A0B4A0B5EAF0EAF4A0B6A0B7C9FCA0B8A0B9C7A3A0BAA0BBA0BCCCD8CEFEA0BDA0BEA0BFEAF5EAF6CFACC0E7A0C0A0C1EAF7A0C2A0C3A0C4A0C5A0C6B6BFEAF8A0C7EAF9A0C8EAFAA0C9A0CAEAFBA0CBA0CCA0CDA0CEA0CFA0D0A0D1A0D2A0D3A0D4A0D5A0D6EAF1A0D7A0D8A0D9A0DAA0DBA0DCA0DDA0DEA0DFA0E0A0E1A0E2C8AEE1EBA0E3B7B8E1ECA0E4A0E5A0E6E1EDA0E7D7B4E1EEE1EFD3CCA0E8A0E9A0EAA0EBA0ECA0EDA0EEE1F1BFF1E1F0B5D2A0EFA0F0A0F1B1B7A0F2A0F3A0F4A0F5E1F3E1F2A0F6BAFCA0F7E1F4A0F8A0F9A0FAA0FBB9B7A0FCBED1A0FDA0FEAA40AA41C4FCAA42BADDBDC6AA43AA44AA45AA46AA47AA48E1F5E1F7AA49AA4AB6C0CFC1CAA8E1F6D5F8D3FCE1F8E1FCE1F9AA4BAA4CE1FAC0EAAA4DE1FEE2A1C0C7AA4EAA4FAA50AA51E1FBAA52E1FDAA53AA54AA55AA56AA57AA58E2A5AA59AA5AAA5BC1D4AA5CAA5DAA5EAA5FE2A3AA60E2A8B2FEE2A2AA61AA62AA63C3CDB2C2E2A7E2A6AA64AA65E2A4E2A9AA66AA67E2ABAA68AA69AA6AD0C9D6EDC3A8E2ACAA6BCFD7AA6CAA6DE2AEAA6EAA6FBAEFAA70AA71E9E0E2ADE2AAAA72AA73AA74AA75BBABD4B3AA76AA77AA78AA79AA7AAA7BAA7CAA7DAA7EAA80AA81AA82AA83E2B0AA84AA85E2AFAA86E9E1AA87AA88AA89AA8AE2B1AA8BAA8CAA8DAA8EAA8FAA90AA91AA92E2B2AA93AA94AA95AA96AA97AA98AA99AA9AAA9BAA9CAA9DE2B3CCA1AA9EE2B4AA9FAAA0AB40AB41AB42AB43AB44AB45AB46AB47AB48AB49AB4AAB4BE2B5AB4CAB4DAB4EAB4FAB50D0FEAB51AB52C2CAAB53D3F1AB54CDF5AB55AB56E7E0AB57AB58E7E1AB59AB5AAB5BAB5CBEC1AB5DAB5EAB5FAB60C2EAAB61AB62AB63E7E4AB64AB65E7E3AB66AB67AB68AB69AB6AAB6BCDE6AB6CC3B5AB6DAB6EE7E2BBB7CFD6AB6FC1E1E7E9AB70AB71AB72E7E8AB73AB74E7F4B2A3AB75AB76AB77AB78E7EAAB79E7E6AB7AAB7BAB7CAB7DAB7EE7ECE7EBC9BAAB80AB81D5E4AB82E7E5B7A9E7E7AB83AB84AB85AB86AB87AB88AB89E7EEAB8AAB8BAB8CAB8DE7F3AB8ED6E9AB8FAB90AB91AB92E7EDAB93E7F2AB94E7F1AB95AB96AB97B0E0AB98AB99AB9AAB9BE7F5AB9CAB9DAB9EAB9FABA0AC40AC41AC42AC43AC44AC45AC46AC47AC48AC49AC4AC7F2AC4BC0C5C0EDAC4CAC4DC1F0E7F0AC4EAC4FAC50AC51E7F6CBF6AC52AC53AC54AC55AC56AC57AC58AC59AC5AE8A2E8A1AC5BAC5CAC5DAC5EAC5FAC60D7C1AC61AC62E7FAE7F9AC63E7FBAC64E7F7AC65E7FEAC66E7FDAC67E7FCAC68AC69C1D5C7D9C5FDC5C3AC6AAC6BAC6CAC6DAC6EC7EDAC6FAC70AC71AC72E8A3AC73AC74AC75AC76AC77AC78AC79AC7AAC7BAC7CAC7DAC7EAC80AC81AC82AC83AC84AC85AC86E8A6AC87E8A5AC88E8A7BAF7E7F8E8A4AC89C8F0C9AAAC8AAC8BAC8CAC8DAC8EAC8FAC90AC91AC92AC93AC94AC95AC96E8A9AC97AC98B9E5AC99AC9AAC9BAC9CAC9DD1FEE8A8AC9EAC9FACA0AD40AD41AD42E8AAAD43E8ADE8AEAD44C1A7AD45AD46AD47E8AFAD48AD49AD4AE8B0AD4BAD4CE8ACAD4DE8B4AD4EAD4FAD50AD51AD52AD53AD54AD55AD56AD57AD58E8ABAD59E8B1AD5AAD5BAD5CAD5DAD5EAD5FAD60AD61E8B5E8B2E8B3AD62AD63AD64AD65AD66AD67AD68AD69AD6AAD6BAD6CAD6DAD6EAD6FAD70AD71E8B7AD72AD73AD74AD75AD76AD77AD78AD79AD7AAD7BAD7CAD7DAD7EAD80AD81AD82AD83AD84AD85AD86AD87AD88AD89E8B6AD8AAD8BAD8CAD8DAD8EAD8FAD90AD91AD92B9CFAD93F0ACAD94F0ADAD95C6B0B0EAC8BFAD96CDDFAD97AD98AD99AD9AAD9BAD9CAD9DCECDEAB1AD9EAD9FADA0AE40EAB2AE41C6BFB4C9AE42AE43AE44AE45AE46AE47AE48EAB3AE49AE4AAE4BAE4CD5E7AE4DAE4EAE4FAE50AE51AE52AE53AE54DDF9AE55EAB4AE56EAB5AE57EAB6AE58AE59AE5AAE5BB8CADFB0C9F5AE5CCCF0AE5DAE5EC9FAAE5FAE60AE61AE62AE63C9FBAE64AE65D3C3CBA6AE66B8A6F0AEB1C2AE67E5B8CCEFD3C9BCD7C9EAAE68B5E7AE69C4D0B5E9AE6AEEAEBBADAE6BAE6CE7DEAE6DEEAFAE6EAE6FAE70AE71B3A9AE72AE73EEB2AE74AE75EEB1BDE7AE76EEB0CEB7AE77AE78AE79AE7AC5CFAE7BAE7CAE7DAE7EC1F4DBCEEEB3D0F3AE80AE81AE82AE83AE84AE85AE86AE87C2D4C6E8AE88AE89AE8AB7ACAE8BAE8CAE8DAE8EAE8FAE90AE91EEB4AE92B3EBAE93AE94AE95BBFBEEB5AE96AE97AE98AE99AE9AE7DCAE9BAE9CAE9DEEB6AE9EAE9FBDAEAEA0AF40AF41AF42F1E2AF43AF44AF45CAE8AF46D2C9F0DAAF47F0DBAF48F0DCC1C6AF49B8EDBECEAF4AAF4BF0DEAF4CC5B1F0DDD1F1AF4DF0E0B0CCBDEAAF4EAF4FAF50AF51AF52D2DFF0DFAF53B4AFB7E8F0E6F0E5C6A3F0E1F0E2B4C3AF54AF55F0E3D5EEAF56AF57CCDBBED2BCB2AF58AF59AF5AF0E8F0E7F0E4B2A1AF5BD6A2D3B8BEB7C8ACAF5CAF5DF0EAAF5EAF5FAF60AF61D1F7AF62D6CCBADBF0E9AF63B6BBAF64AF65CDB4AF66AF67C6A6AF68AF69AF6AC1A1F0EBF0EEAF6BF0EDF0F0F0ECAF6CBBBEF0EFAF6DAF6EAF6FAF70CCB5F0F2AF71AF72B3D5AF73AF74AF75AF76B1D4AF77AF78F0F3AF79AF7AF0F4F0F6B4E1AF7BF0F1AF7CF0F7AF7DAF7EAF80AF81F0FAAF82F0F8AF83AF84AF85F0F5AF86AF87AF88AF89F0FDAF8AF0F9F0FCF0FEAF8BF1A1AF8CAF8DAF8ECEC1F1A4AF8FF1A3AF90C1F6F0FBCADDAF91AF92B4F1B1F1CCB1AF93F1A6AF94AF95F1A7AF96AF97F1ACD5CEF1A9AF98AF99C8B3AF9AAF9BAF9CF1A2AF9DF1ABF1A8F1A5AF9EAF9FF1AAAFA0B040B041B042B043B044B045B046B0A9F1ADB047B048B049B04AB04BB04CF1AFB04DF1B1B04EB04FB050B051B052F1B0B053F1AEB054B055B056B057D1A2B058B059B05AB05BB05CB05DB05EF1B2B05FB060B061F1B3B062B063B064B065B066B067B068B069B9EFB06AB06BB5C7B06CB0D7B0D9B06DB06EB06FD4EDB070B5C4B071BDD4BBCAF0A7B072B073B8DEB074B075F0A8B076B077B0A8B078F0A9B079B07ACDEEB07BB07CF0AAB07DB07EB080B081B082B083B084B085B086B087F0ABB088B089B08AB08BB08CB08DB08EB08FB090C6A4B091B092D6E5F1E4B093F1E5B094B095B096B097B098B099B09AB09BB09CB09DC3F3B09EB09FD3DBB0A0B140D6D1C5E8B141D3AFB142D2E6B143B144EEC1B0BBD5B5D1CEBCE0BAD0B145BFF8B146B8C7B5C1C5CCB147B148CAA2B149B14AB14BC3CBB14CB14DB14EB14FB150EEC2B151B152B153B154B155B156B157B158C4BFB6A2B159EDECC3A4B15AD6B1B15BB15CB15DCFE0EDEFB15EB15FC5CEB160B6DCB161B162CAA1B163B164EDEDB165B166EDF0EDF1C3BCB167BFB4B168EDEEB169B16AB16BB16CB16DB16EB16FB170B171B172B173EDF4EDF2B174B175B176B177D5E6C3DFB178EDF3B179B17AB17BEDF6B17CD5A3D1A3B17DB17EB180EDF5B181C3D0B182B183B184B185B186EDF7BFF4BEECEDF8B187CCF7B188D1DBB189B18AB18BD7C5D5F6B18CEDFCB18DB18EB18FEDFBB190B191B192B193B194B195B196B197EDF9EDFAB198B199B19AB19BB19CB19DB19EB19FEDFDBEA6B1A0B240B241B242B243CBAFEEA1B6BDB244EEA2C4C0B245EDFEB246B247BDDEB2C7B248B249B24AB24BB24CB24DB24EB24FB250B251B252B253B6C3B254B255B256EEA5D8BAEEA3EEA6B257B258B259C3E9B3F2B25AB25BB25CB25DB25EB25FEEA7EEA4CFB9B260B261EEA8C2F7B262B263B264B265B266B267B268B269B26AB26BB26CB26DEEA9EEAAB26EDEABB26FB270C6B3B271C7C6B272D6F5B5C9B273CBB2B274B275B276EEABB277B278CDABB279EEACB27AB27BB27CB27DB27ED5B0B280EEADB281F6C4B282B283B284B285B286B287B288B289B28AB28BB28CB28DB28EDBC7B28FB290B291B292B293B294B295B296B297B4A3B298B299B29AC3ACF1E6B29BB29CB29DB29EB29FCAB8D2D3B2A0D6AAB340EFF2B341BED8B342BDC3EFF3B6CCB0ABB343B344B345B346CAAFB347B348EDB6B349EDB7B34AB34BB34CB34DCEF9B7AFBFF3EDB8C2EBC9B0B34EB34FB350B351B352B353EDB9B354B355C6F6BFB3B356B357B358EDBCC5F8B359D1D0B35AD7A9EDBAEDBBB35BD1E2B35CEDBFEDC0B35DEDC4B35EB35FB360EDC8B361EDC6EDCED5E8B362EDC9B363B364EDC7EDBEB365B366C5E9B367B368B369C6C6B36AB36BC9E9D4D2EDC1EDC2EDC3EDC5B36CC0F9B36DB4A1B36EB36FB370B371B9E8B372EDD0B373B374B375B376EDD1B377EDCAB378EDCFB379CEF8B37AB37BCBB6EDCCEDCDB37CB37DB37EB380B381CFF5B382B383B384B385B386B387B388B389B38AB38BB38CB38DEDD2C1F2D3B2EDCBC8B7B38EB38FB390B391B392B393B394B395BCEFB396B397B398B399C5F0B39AB39BB39CB39DB39EB39FB3A0B440B441B442EDD6B443B5EFB444B445C2B5B0ADCBE9B446B447B1AEB448EDD4B449B44AB44BCDEBB5E2B44CEDD5EDD3EDD7B44DB44EB5FAB44FEDD8B450EDD9B451EDDCB452B1CCB453B454B455B456B457B458B459B45AC5F6BCEEEDDACCBCB2EAB45BB45CB45DB45EEDDBB45FB460B461B462C4EBB463B464B4C5B465B466B467B0F5B468B469B46AEDDFC0DAB4E8B46BB46CB46DB46EC5CDB46FB470B471EDDDBFC4B472B473B474EDDEB475B476B477B478B479B47AB47BB47CB47DB47EB480B481B482B483C4A5B484B485B486EDE0B487B488B489B48AB48BEDE1B48CEDE3B48DB48EC1D7B48FB490BBC7B491B492B493B494B495B496BDB8B497B498B499EDE2B49AB49BB49CB49DB49EB49FB4A0B540B541B542B543B544B545EDE4B546B547B548B549B54AB54BB54CB54DB54EB54FEDE6B550B551B552B553B554EDE5B555B556B557B558B559B55AB55BB55CB55DB55EB55FB560B561B562B563EDE7B564B565B566B567B568CABEECEAC0F1B569C9E7B56AECEBC6EEB56BB56CB56DB56EECECB56FC6EDECEDB570B571B572B573B574B575B576B577B578ECF0B579B57AD7E6ECF3B57BB57CECF1ECEEECEFD7A3C9F1CBEEECF4B57DECF2B57EB580CFE9B581ECF6C6B1B582B583B584B585BCC0B586ECF5B587B588B589B58AB58BB58CB58DB5BBBBF6B58EECF7B58FB590B591B592B593D9F7BDFBB594B595C2BBECF8B596B597B598B599ECF9B59AB59BB59CB59DB8A3B59EB59FB5A0B640B641B642B643B644B645B646ECFAB647B648B649B64AB64BB64CB64DB64EB64FB650B651B652ECFBB653B654B655B656B657B658B659B65AB65BB65CB65DECFCB65EB65FB660B661B662D3EDD8AEC0EBB663C7DDBACCB664D0E3CBBDB665CDBAB666B667B8D1B668B669B1FCB66AC7EFB66BD6D6B66CB66DB66EBFC6C3EBB66FB670EFF5B671B672C3D8B673B674B675B676B677B678D7E2B679B67AB67BEFF7B3D3B67CC7D8D1EDB67DD6C8B67EEFF8B680EFF6B681BBFDB3C6B682B683B684B685B686B687B688BDD5B689B68AD2C6B68BBBE0B68CB68DCFA1B68EEFFCEFFBB68FB690EFF9B691B692B693B694B3CCB695C9D4CBB0B696B697B698B699B69AEFFEB69BB69CB0DEB69DB69ED6C9B69FB6A0B740EFFDB741B3EDB742B743F6D5B744B745B746B747B748B749B74AB74BB74CB74DB74EB74FB750B751B752CEC8B753B754B755F0A2B756F0A1B757B5BEBCDABBFCB758B8E5B759B75AB75BB75CB75DB75EC4C2B75FB760B761B762B763B764B765B766B767B768F0A3B769B76AB76BB76CB76DCBEBB76EB76FB770B771B772B773B774B775B776B777B778B779B77AB77BB77CB77DB77EB780B781B782B783B784B785B786F0A6B787B788B789D1A8B78ABEBFC7EEF1B6F1B7BFD5B78BB78CB78DB78EB4A9F1B8CDBBB78FC7D4D5ADB790F1B9B791F1BAB792B793B794B795C7CFB796B797B798D2A4D6CFB799B79AF1BBBDD1B4B0BEBDB79BB79CB79DB4DCCED1B79EBFDFF1BDB79FB7A0B840B841BFFAF1BCB842F1BFB843B844B845F1BEF1C0B846B847B848B849B84AF1C1B84BB84CB84DB84EB84FB850B851B852B853B854B855C1FEB856B857B858B859B85AB85BB85CB85DB85EB85FB860C1A2B861B862B863B864B865B866B867B868B869B86ACAFAB86BB86CD5BEB86DB86EB86FB870BEBABEB9D5C2B871B872BFA2B873CDAFF1B5B874B875B876B877B878B879BDDFB87AB6CBB87BB87CB87DB87EB880B881B882B883B884D6F1F3C3B885B886F3C4B887B8CDB888B889B88AF3C6F3C7B88BB0CAB88CF3C5B88DF3C9CBF1B88EB88FB890F3CBB891D0A6B892B893B1CAF3C8B894B895B896F3CFB897B5D1B898B899F3D7B89AF3D2B89BB89CB89DF3D4F3D3B7FBB89EB1BFB89FF3CEF3CAB5DAB8A0F3D0B940B941F3D1B942F3D5B943B944B945B946F3CDB947BCE3B948C1FDB949F3D6B94AB94BB94CB94DB94EB94FF3DAB950F3CCB951B5C8B952BDEEF3DCB953B954B7A4BFF0D6FECDB2B955B4F0B956B2DFB957F3D8B958F3D9C9B8B959F3DDB95AB95BF3DEB95CF3E1B95DB95EB95FB960B961B962B963B964B965B966B967F3DFB968B969F3E3F3E2B96AB96BF3DBB96CBFEAB96DB3EFB96EF3E0B96FB970C7A9B971BCF2B972B973B974B975F3EBB976B977B978B979B97AB97BB97CB9BFB97DB97EF3E4B980B981B982B2ADBBFEB983CBE3B984B985B986B987F3EDF3E9B988B989B98AB9DCF3EEB98BB98CB98DF3E5F3E6F3EAC2E1F3ECF3EFF3E8BCFDB98EB98FB990CFE4B991B992F3F0B993B994B995F3E7B996B997B998B999B99AB99BB99CB99DF3F2B99EB99FB9A0BA40D7ADC6AABA41BA42BA43BA44F3F3BA45BA46BA47BA48F3F1BA49C2A8BA4ABA4BBA4CBA4DBA4EB8DDF3F5BA4FBA50F3F4BA51BA52BA53B4DBBA54BA55BA56F3F6F3F7BA57BA58BA59F3F8BA5ABA5BBA5CC0BABA5DBA5EC0E9BA5FBA60BA61BA62BA63C5F1BA64BA65BA66BA67F3FBBA68F3FABA69BA6ABA6BBA6CBA6DBA6EBA6FBA70B4D8BA71BA72BA73F3FEF3F9BA74BA75F3FCBA76BA77BA78BA79BA7ABA7BF3FDBA7CBA7DBA7EBA80BA81BA82BA83BA84F4A1BA85BA86BA87BA88BA89BA8AF4A3BBC9BA8BBA8CF4A2BA8DBA8EBA8FBA90BA91BA92BA93BA94BA95BA96BA97BA98BA99F4A4BA9ABA9BBA9CBA9DBA9EBA9FB2BEF4A6F4A5BAA0BB40BB41BB42BB43BB44BB45BB46BB47BB48BB49BCAEBB4ABB4BBB4CBB4DBB4EBB4FBB50BB51BB52BB53BB54BB55BB56BB57BB58BB59BB5ABB5BBB5CBB5DBB5EBB5FBB60BB61BB62BB63BB64BB65BB66BB67BB68BB69BB6ABB6BBB6CBB6DBB6EC3D7D9E1BB6FBB70BB71BB72BB73BB74C0E0F4CCD7D1BB75BB76BB77BB78BB79BB7ABB7BBB7CBB7DBB7EBB80B7DBBB81BB82BB83BB84BB85BB86BB87F4CEC1A3BB88BB89C6C9BB8AB4D6D5B3BB8BBB8CBB8DF4D0F4CFF4D1CBDABB8EBB8FF4D2BB90D4C1D6E0BB91BB92BB93BB94B7E0BB95BB96BB97C1B8BB98BB99C1BBF4D3BEACBB9ABB9BBB9CBB9DBB9EB4E2BB9FBBA0F4D4F4D5BEABBC40BC41F4D6BC42BC43BC44F4DBBC45F4D7F4DABC46BAFDBC47F4D8F4D9BC48BC49BC4ABC4BBC4CBC4DBC4EB8E2CCC7F4DCBC4FB2DABC50BC51C3D3BC52BC53D4E3BFB7BC54BC55BC56BC57BC58BC59BC5AF4DDBC5BBC5CBC5DBC5EBC5FBC60C5B4BC61BC62BC63BC64BC65BC66BC67BC68F4E9BC69BC6ACFB5BC6BBC6CBC6DBC6EBC6FBC70BC71BC72BC73BC74BC75BC76BC77BC78CEC9BC79BC7ABC7BBC7CBC7DBC7EBC80BC81BC82BC83BC84BC85BC86BC87BC88BC89BC8ABC8BBC8CBC8DBC8ECBD8BC8FCBF7BC90BC91BC92BC93BDF4BC94BC95BC96D7CFBC97BC98BC99C0DBBC9ABC9BBC9CBC9DBC9EBC9FBCA0BD40BD41BD42BD43BD44BD45BD46BD47BD48BD49BD4ABD4BBD4CBD4DBD4EBD4FBD50BD51BD52BD53BD54BD55BD56BD57BD58BD59BD5ABD5BBD5CBD5DBD5EBD5FBD60BD61BD62BD63BD64BD65BD66BD67BD68BD69BD6ABD6BBD6CBD6DBD6EBD6FBD70BD71BD72BD73BD74BD75BD76D0F5BD77BD78BD79BD7ABD7BBD7CBD7DBD7EF4EABD80BD81BD82BD83BD84BD85BD86BD87BD88BD89BD8ABD8BBD8CBD8DBD8EBD8FBD90BD91BD92BD93BD94BD95BD96BD97BD98BD99BD9ABD9BBD9CBD9DBD9EBD9FBDA0BE40BE41BE42BE43BE44BE45BE46BE47BE48BE49BE4ABE4BBE4CF4EBBE4DBE4EBE4FBE50BE51BE52BE53F4ECBE54BE55BE56BE57BE58BE59BE5ABE5BBE5CBE5DBE5EBE5FBE60BE61BE62BE63BE64BE65BE66BE67BE68BE69BE6ABE6BBE6CBE6DBE6EBE6FBE70BE71BE72BE73BE74BE75BE76BE77BE78BE79BE7ABE7BBE7CBE7DBE7EBE80BE81BE82BE83BE84BE85BE86BE87BE88BE89BE8ABE8BBE8CBE8DBE8EBE8FBE90BE91BE92BE93BE94BE95BE96BE97BE98BE99BE9ABE9BBE9CBE9DBE9EBE9FBEA0BF40BF41BF42BF43BF44BF45BF46BF47BF48BF49BF4ABF4BBF4CBF4DBF4EBF4FBF50BF51BF52BF53BF54BF55BF56BF57BF58BF59BF5ABF5BBF5CBF5DBF5EBF5FBF60BF61BF62BF63BF64BF65BF66BF67BF68BF69BF6ABF6BBF6CBF6DBF6EBF6FBF70BF71BF72BF73BF74BF75BF76BF77BF78BF79BF7ABF7BBF7CBF7DBF7EBF80F7E3BF81BF82BF83BF84BF85B7B1BF86BF87BF88BF89BF8AF4EDBF8BBF8CBF8DBF8EBF8FBF90BF91BF92BF93BF94BF95BF96BF97BF98BF99BF9ABF9BBF9CBF9DBF9EBF9FBFA0C040C041C042C043C044C045C046C047C048C049C04AC04BC04CC04DC04EC04FC050C051C052C053C054C055C056C057C058C059C05AC05BC05CC05DC05EC05FC060C061C062C063D7EBC064C065C066C067C068C069C06AC06BC06CC06DC06EC06FC070C071C072C073C074C075C076C077C078C079C07AC07BF4EEC07CC07DC07EE6F9BEC0E6FABAECE6FBCFCBE6FCD4BCBCB6E6FDE6FEBCCDC8D2CEB3E7A1C080B4BFE7A2C9B4B8D9C4C9C081D7DDC2DAB7D7D6BDCEC6B7C4C082C083C5A6E7A3CFDFE7A4E7A5E7A6C1B7D7E9C9F0CFB8D6AFD6D5E7A7B0EDE7A8E7A9C9DCD2EFBEADE7AAB0F3C8DEBDE1E7ABC8C6C084E7ACBBE6B8F8D1A4E7ADC2E7BEF8BDCACDB3E7AEE7AFBEEED0E5C085CBE7CCD0BCCCE7B0BCA8D0F7E7B1C086D0F8E7B2E7B3B4C2E7B4E7B5C9FECEACC3E0E7B7B1C1B3F1C087E7B8E7B9D7DBD5C0E7BAC2CCD7BAE7BBE7BCE7BDBCEAC3E5C0C2E7BEE7BFBCA9C088E7C0E7C1E7B6B6D0E7C2C089E7C3E7C4BBBAB5DEC2C6B1E0E7C5D4B5E7C6B8BFE7C8E7C7B7ECC08AE7C9B2F8E7CAE7CBE7CCE7CDE7CEE7CFE7D0D3A7CBF5E7D1E7D2E7D3E7D4C9C9E7D5E7D6E7D7E7D8E7D9BDC9E7DAF3BEC08BB8D7C08CC8B1C08DC08EC08FC090C091C092C093F3BFC094F3C0F3C1C095C096C097C098C099C09AC09BC09CC09DC09EB9DECDF8C09FC0A0D8E8BAB1C140C2DEEEB7C141B7A3C142C143C144C145EEB9C146EEB8B0D5C147C148C149C14AC14BEEBBD5D6D7EFC14CC14DC14ED6C3C14FC150EEBDCAF0C151EEBCC152C153C154C155EEBEC156C157C158C159EEC0C15AC15BEEBFC15CC15DC15EC15FC160C161C162C163D1F2C164C7BCC165C3C0C166C167C168C169C16AB8E1C16BC16CC16DC16EC16FC1E7C170C171F4C6D0DFF4C7C172CFDBC173C174C8BAC175C176F4C8C177C178C179C17AC17BC17CC17DF4C9F4CAC17EF4CBC180C181C182C183C184D9FAB8FEC185C186E5F1D3F0C187F4E0C188CECCC189C18AC18BB3E1C18CC18DC18EC18FF1B4C190D2EEC191F4E1C192C193C194C195C196CFE8F4E2C197C198C7CCC199C19AC19BC19CC19DC19EB5D4B4E4F4E4C19FC1A0C240F4E3F4E5C241C242F4E6C243C244C245C246F4E7C247BAB2B0BFC248F4E8C249C24AC24BC24CC24DC24EC24FB7ADD2EDC250C251C252D2ABC0CFC253BFBCEBA3D5DFEAC8C254C255C256C257F1F3B6F8CBA3C258C259C4CDC25AF1E7C25BF1E8B8FBF1E9BAC4D4C5B0D2C25CC25DF1EAC25EC25FC260F1EBC261F1ECC262C263F1EDF1EEF1EFF1F1F1F0C5D5C264C265C266C267C268C269F1F2C26AB6FAC26BF1F4D2AEDEC7CBCAC26CC26DB3DCC26EB5A2C26FB9A2C270C271C4F4F1F5C272C273F1F6C274C275C276C1C4C1FBD6B0F1F7C277C278C279C27AF1F8C27BC1AAC27CC27DC27EC6B8C280BEDBC281C282C283C284C285C286C287C288C289C28AC28BC28CC28DC28EF1F9B4CFC28FC290C291C292C293C294F1FAC295C296C297C298C299C29AC29BC29CC29DC29EC29FC2A0C340EDB2EDB1C341C342CBE0D2DEC343CBC1D5D8C344C8E2C345C0DFBCA1C346C347C348C349C34AC34BEBC1C34CC34DD0A4C34ED6E2C34FB6C7B8D8EBC0B8CEC350EBBFB3A6B9C9D6ABC351B7F4B7CAC352C353C354BCE7B7BEEBC6C355EBC7B0B9BFCFC356EBC5D3FDC357EBC8C358C359EBC9C35AC35BB7CEC35CEBC2EBC4C9F6D6D7D5CDD0B2EBCFCEB8EBD0C35DB5A8C35EC35FC360C361C362B1B3EBD2CCA5C363C364C365C366C367C368C369C5D6EBD3C36AEBD1C5DFEBCECAA4EBD5B0FBC36BC36CBAFAC36DC36ED8B7F1E3C36FEBCAEBCBEBCCEBCDEBD6E6C0EBD9C370BFE8D2C8EBD7EBDCB8ECEBD8C371BDBAC372D0D8C373B0B7C374EBDDC4DCC375C376C377C378D6ACC379C37AC37BB4E0C37CC37DC2F6BCB9C37EC380EBDAEBDBD4E0C6EAC4D4EBDFC5A7D9F5C381B2B1C382EBE4C383BDC5C384C385C386EBE2C387C388C389C38AC38BC38CC38DC38EC38FC390C391C392C393EBE3C394C395B8ACC396CDD1EBE5C397C398C399EBE1C39AC1B3C39BC39CC39DC39EC39FC6A2C3A0C440C441C442C443C444C445CCF3C446EBE6C447C0B0D2B8EBE7C448C449C44AB8AFB8ADC44BEBE8C7BBCDF3C44CC44DC44EEBEAEBEBC44FC450C451C452C453EBEDC454C455C456C457D0C8C458EBF2C459EBEEC45AC45BC45CEBF1C8F9C45DD1FCEBECC45EC45FEBE9C460C461C462C463B8B9CFD9C4E5EBEFEBF0CCDACDC8B0F2C464EBF6C465C466C467C468C469EBF5C46AB2B2C46BC46CC46DC46EB8E0C46FEBF7C470C471C472C473C474C475B1ECC476C477CCC5C4A4CFA5C478C479C47AC47BC47CEBF9C47DC47EECA2C480C5F2C481EBFAC482C483C484C485C486C487C488C489C9C5C48AC48BC48CC48DC48EC48FE2DFEBFEC490C491C492C493CDCEECA1B1DBD3B7C494C495D2DCC496C497C498EBFDC499EBFBC49AC49BC49CC49DC49EC49FC4A0C540C541C542C543C544C545C546C547C548C549C54AC54BC54CC54DC54EB3BCC54FC550C551EAB0C552C553D7D4C554F4ABB3F4C555C556C557C558C559D6C1D6C2C55AC55BC55CC55DC55EC55FD5E9BECAC560F4A7C561D2A8F4A8F4A9C562F4AABECBD3DFC563C564C565C566C567C9E0C9E1C568C569F3C2C56ACAE6C56BCCF2C56CC56DC56EC56FC570C571E2B6CBB4C572CEE8D6DBC573F4ADF4AEF4AFC574C575C576C577F4B2C578BABDF4B3B0E3F4B0C579F4B1BDA2B2D5C57AF4B6F4B7B6E6B2B0CFCFF4B4B4ACC57BF4B5C57CC57DF4B8C57EC580C581C582C583F4B9C584C585CDA7C586F4BAC587F4BBC588C589C58AF4BCC58BC58CC58DC58EC58FC590C591C592CBD2C593F4BDC594C595C596C597F4BEC598C599C59AC59BC59CC59DC59EC59FF4BFC5A0C640C641C642C643F4DEC1BCBCE8C644C9ABD1DEE5F5C645C646C647C648DCB3D2D5C649C64ADCB4B0ACDCB5C64BC64CBDDAC64DDCB9C64EC64FC650D8C2C651DCB7D3F3C652C9D6DCBADCB6C653DCBBC3A2C654C655C656C657DCBCDCC5DCBDC658C659CEDFD6A5C65ADCCFC65BDCCDC65CC65DDCD2BDE6C2ABC65EDCB8DCCBDCCEDCBEB7D2B0C5DCC7D0BEDCC1BBA8C65FB7BCDCCCC660C661DCC6DCBFC7DBC662C663C664D1BFDCC0C665C666DCCAC667C668DCD0C669C66ACEADDCC2C66BDCC3DCC8DCC9B2D4DCD1CBD5C66CD4B7DCDBDCDFCCA6DCE6C66DC3E7DCDCC66EC66FBFC1DCD9C670B0FAB9B6DCE5DCD3C671DCC4DCD6C8F4BFE0C672C673C674C675C9BBC676C677C678B1BDC679D3A2C67AC67BDCDAC67CC67DDCD5C67EC6BBC680DCDEC681C682C683C684C685D7C2C3AFB7B6C7D1C3A9DCE2DCD8DCEBDCD4C686C687DCDDC688BEA5DCD7C689DCE0C68AC68BDCE3DCE4C68CDCF8C68DC68EDCE1DDA2DCE7C68FC690C691C692C693C694C695C696C697C698BCEBB4C4C699C69AC3A3B2E7DCFAC69BDCF2C69CDCEFC69DDCFCDCEED2F0B2E8C69EC8D7C8E3DCFBC69FDCEDC6A0C740C741DCF7C742C743DCF5C744C745BEA3DCF4C746B2DDC747C748C749C74AC74BDCF3BCF6DCE8BBC4C74CC0F3C74DC74EC74FC750C751BCD4DCE9DCEAC752DCF1DCF6DCF9B5B4C753C8D9BBE7DCFEDCFDD3ABDDA1DDA3DDA5D2F1DDA4DDA6DDA7D2A9C754C755C756C757C758C759C75ABAC9DDA9C75BC75CDDB6DDB1DDB4C75DC75EC75FC760C761C762C763DDB0C6CEC764C765C0F2C766C767C768C769C9AFC76AC76BC76CDCECDDAEC76DC76EC76FC770DDB7C771C772DCF0DDAFC773DDB8C774DDACC775C776C777C778C779C77AC77BDDB9DDB3DDADC4AAC77CC77DC77EC780DDA8C0B3C1ABDDAADDABC781DDB2BBF1DDB5D3A8DDBAC782DDBBC3A7C783C784DDD2DDBCC785C786C787DDD1C788B9BDC789C78ABED5C78BBEFAC78CC78DBACAC78EC78FC790C791DDCAC792DDC5C793DDBFC794C795C796B2CBDDC3C797DDCBB2A4DDD5C798C799C79ADDBEC79BC79CC79DC6D0DDD0C79EC79FC7A0C840C841DDD4C1E2B7C6C842C843C844C845C846DDCEDDCFC847C848C849DDC4C84AC84BC84CDDBDC84DDDCDCCD1C84EDDC9C84FC850C851C852DDC2C3C8C6BCCEAEDDCCC853DDC8C854C855C856C857C858C859DDC1C85AC85BC85CDDC6C2DCC85DC85EC85FC860C861C862D3A9D3AADDD3CFF4C8F8C863C864C865C866C867C868C869C86ADDE6C86BC86CC86DC86EC86FC870DDC7C871C872C873DDE0C2E4C874C875C876C877C878C879C87AC87BDDE1C87CC87DC87EC880C881C882C883C884C885C886DDD7C887C888C889C88AC88BD6F8C88CDDD9DDD8B8F0DDD6C88DC88EC88FC890C6CFC891B6ADC892C893C894C895C896DDE2C897BAF9D4E1DDE7C898C899C89AB4D0C89BDDDAC89CBFFBDDE3C89DDDDFC89EDDDDC89FC8A0C940C941C942C943C944B5D9C945C946C947C948DDDBDDDCDDDEC949BDAFDDE4C94ADDE5C94BC94CC94DC94EC94FC950C951C952DDF5C953C3C9C954C955CBE2C956C957C958C959DDF2C95AC95BC95CC95DC95EC95FC960C961C962C963C964C965C966D8E1C967C968C6D1C969DDF4C96AC96BC96CD5F4DDF3DDF0C96DC96EDDECC96FDDEFC970DDE8C971C972D0EEC973C974C975C976C8D8DDEEC977C978DDE9C979C97ADDEACBF2C97BDDEDC97CC97DB1CDC97EC980C981C982C983C984C0B6C985BCBBDDF1C986C987DDF7C988DDF6DDEBC989C98AC98BC98CC98DC5EEC98EC98FC990DDFBC991C992C993C994C995C996C997C998C999C99AC99BDEA4C99CC99DDEA3C99EC99FC9A0CA40CA41CA42CA43CA44CA45CA46CA47CA48DDF8CA49CA4ACA4BCA4CC3EFCA4DC2FBCA4ECA4FCA50D5E1CA51CA52CEB5CA53CA54CA55CA56DDFDCA57B2CCCA58CA59CA5ACA5BCA5CCA5DCA5ECA5FCA60C4E8CADFCA61CA62CA63CA64CA65CA66CA67CA68CA69CA6AC7BEDDFADDFCDDFEDEA2B0AAB1CECA6BCA6CCA6DCA6ECA6FDEACCA70CA71CA72CA73DEA6BDB6C8EFCA74CA75CA76CA77CA78CA79CA7ACA7BCA7CCA7DCA7EDEA1CA80CA81DEA5CA82CA83CA84CA85DEA9CA86CA87CA88CA89CA8ADEA8CA8BCA8CCA8DDEA7CA8ECA8FCA90CA91CA92CA93CA94CA95CA96DEADCA97D4CCCA98CA99CA9ACA9BDEB3DEAADEAECA9CCA9DC0D9CA9ECA9FCAA0CB40CB41B1A1DEB6CB42DEB1CB43CB44CB45CB46CB47CB48CB49DEB2CB4ACB4BCB4CCB4DCB4ECB4FCB50CB51CB52CB53CB54D1A6DEB5CB55CB56CB57CB58CB59CB5ACB5BDEAFCB5CCB5DCB5EDEB0CB5FD0BDCB60CB61CB62DEB4CAEDDEB9CB63CB64CB65CB66CB67CB68DEB8CB69DEB7CB6ACB6BCB6CCB6DCB6ECB6FCB70DEBBCB71CB72CB73CB74CB75CB76CB77BDE5CB78CB79CB7ACB7BCB7CB2D8C3EACB7DCB7EDEBACB80C5BACB81CB82CB83CB84CB85CB86DEBCCB87CB88CB89CB8ACB8BCB8CCB8DCCD9CB8ECB8FCB90CB91B7AACB92CB93CB94CB95CB96CB97CB98CB99CB9ACB9BCB9CCB9DCB9ECB9FCBA0CC40CC41D4E5CC42CC43CC44DEBDCC45CC46CC47CC48CC49DEBFCC4ACC4BCC4CCC4DCC4ECC4FCC50CC51CC52CC53CC54C4A2CC55CC56CC57CC58DEC1CC59CC5ACC5BCC5CCC5DCC5ECC5FCC60CC61CC62CC63CC64CC65CC66CC67CC68DEBECC69DEC0CC6ACC6BCC6CCC6DCC6ECC6FCC70CC71CC72CC73CC74CC75CC76CC77D5BACC78CC79CC7ADEC2CC7BCC7CCC7DCC7ECC80CC81CC82CC83CC84CC85CC86CC87CC88CC89CC8ACC8BF2AEBBA2C2B2C5B0C2C7CC8CCC8DF2AFCC8ECC8FCC90CC91CC92D0E9CC93CC94CC95D3DDCC96CC97CC98EBBDCC99CC9ACC9BCC9CCC9DCC9ECC9FCCA0B3E6F2B0CD40F2B1CD41CD42CAADCD43CD44CD45CD46CD47CD48CD49BAE7F2B3F2B5F2B4CBE4CFBAF2B2CAB4D2CFC2ECCD4ACD4BCD4CCD4DCD4ECD4FCD50CEC3F2B8B0F6F2B7CD51CD52CD53CD54CD55F2BECD56B2CFCD57CD58CD59CD5ACD5BCD5CD1C1F2BACD5DCD5ECD5FCD60CD61F2BCD4E9CD62CD63F2BBF2B6F2BFF2BDCD64F2B9CD65CD66F2C7F2C4F2C6CD67CD68F2CAF2C2F2C0CD69CD6ACD6BF2C5CD6CCD6DCD6ECD6FCD70D6FBCD71CD72CD73F2C1CD74C7F9C9DFCD75F2C8B9C6B5B0CD76CD77F2C3F2C9F2D0F2D6CD78CD79BBD7CD7ACD7BCD7CF2D5CDDCCD7DD6EBCD7ECD80F2D2F2D4CD81CD82CD83CD84B8F2CD85CD86CD87CD88F2CBCD89CD8ACD8BF2CEC2F9CD8CD5DDF2CCF2CDF2CFF2D3CD8DCD8ECD8FF2D9D3BCCD90CD91CD92CD93B6EACD94CAF1CD95B7E4F2D7CD96CD97CD98F2D8F2DAF2DDF2DBCD99CD9AF2DCCD9BCD9CCD9DCD9ED1D1F2D1CD9FCDC9CDA0CECFD6A9CE40F2E3CE41C3DBCE42F2E0CE43CE44C0AFF2ECF2DECE45F2E1CE46CE47CE48F2E8CE49CE4ACE4BCE4CF2E2CE4DCE4EF2E7CE4FCE50F2E6CE51CE52F2E9CE53CE54CE55F2DFCE56CE57F2E4F2EACE58CE59CE5ACE5BCE5CCE5DCE5ED3ACF2E5B2F5CE5FCE60F2F2CE61D0ABCE62CE63CE64CE65F2F5CE66CE67CE68BBC8CE69F2F9CE6ACE6BCE6CCE6DCE6ECE6FF2F0CE70CE71F2F6F2F8F2FACE72CE73CE74CE75CE76CE77CE78CE79F2F3CE7AF2F1CE7BCE7CCE7DBAFBCE7EB5FBCE80CE81CE82CE83F2EFF2F7F2EDF2EECE84CE85CE86F2EBF3A6CE87F3A3CE88CE89F3A2CE8ACE8BF2F4CE8CC8DACE8DCE8ECE8FCE90CE91F2FBCE92CE93CE94F3A5CE95CE96CE97CE98CE99CE9ACE9BC3F8CE9CCE9DCE9ECE9FCEA0CF40CF41CF42F2FDCF43CF44F3A7F3A9F3A4CF45F2FCCF46CF47CF48F3ABCF49F3AACF4ACF4BCF4CCF4DC2DDCF4ECF4FF3AECF50CF51F3B0CF52CF53CF54CF55CF56F3A1CF57CF58CF59F3B1F3ACCF5ACF5BCF5CCF5DCF5EF3AFF2FEF3ADCF5FCF60CF61CF62CF63CF64CF65F3B2CF66CF67CF68CF69F3B4CF6ACF6BCF6CCF6DF3A8CF6ECF6FCF70CF71F3B3CF72CF73CF74F3B5CF75CF76CF77CF78CF79CF7ACF7BCF7CCF7DCF7ED0B7CF80CF81CF82CF83F3B8CF84CF85CF86CF87D9F9CF88CF89CF8ACF8BCF8CCF8DF3B9CF8ECF8FCF90CF91CF92CF93CF94CF95F3B7CF96C8E4F3B6CF97CF98CF99CF9AF3BACF9BCF9CCF9DCF9ECF9FF3BBB4C0CFA0D040D041D042D043D044D045D046D047D048D049D04AD04BD04CD04DEEC3D04ED04FD050D051D052D053F3BCD054D055F3BDD056D057D058D1AAD059D05AD05BF4ACD0C6D05CD05DD05ED05FD060D061D0D0D1DCD062D063D064D065D066D067CFCED068D069BDD6D06AD1C3D06BD06CD06DD06ED06FD070D071BAE2E1E9D2C2F1C2B2B9D072D073B1EDF1C3D074C9C0B3C4D075D9F2D076CBA5D077F1C4D078D079D07AD07BD6D4D07CD07DD07ED080D081F1C5F4C0F1C6D082D4ACF1C7D083B0C0F4C1D084D085F4C2D086D087B4FCD088C5DBD089D08AD08BD08CCCBBD08DD08ED08FD0E4D090D091D092D093D094CDE0D095D096D097D098D099F1C8D09AD9F3D09BD09CD09DD09ED09FD0A0B1BBD140CFAED141D142D143B8A4D144D145D146D147D148F1CAD149D14AD14BD14CF1CBD14DD14ED14FD150B2C3C1D1D151D152D7B0F1C9D153D154F1CCD155D156D157D158F1CED159D15AD15BD9F6D15CD2E1D4A3D15DD15EF4C3C8B9D15FD160D161D162D163F4C4D164D165F1CDF1CFBFE3F1D0D166D167F1D4D168D169D16AD16BD16CD16DD16EF1D6F1D1D16FC9D1C5E1D170D171D172C2E3B9FCD173D174F1D3D175F1D5D176D177D178B9D3D179D17AD17BD17CD17DD17ED180F1DBD181D182D183D184D185BAD6D186B0FDF1D9D187D188D189D18AD18BF1D8F1D2F1DAD18CD18DD18ED18FD190F1D7D191D192D193C8ECD194D195D196D197CDCAF1DDD198D199D19AD19BE5BDD19CD19DD19EF1DCD19FF1DED1A0D240D241D242D243D244D245D246D247D248F1DFD249D24ACFE5D24BD24CD24DD24ED24FD250D251D252D253D254D255D256D257D258D259D25AD25BD25CD25DD25ED25FD260D261D262D263F4C5BDF3D264D265D266D267D268D269F1E0D26AD26BD26CD26DD26ED26FD270D271D272D273D274D275D276D277D278D279D27AD27BD27CD27DF1E1D27ED280D281CEF7D282D2AAD283F1FBD284D285B8B2D286D287D288D289D28AD28BD28CD28DD28ED28FD290D291D292D293D294D295D296D297D298D299D29AD29BD29CD29DD29ED29FD2A0D340D341D342D343D344D345D346D347D348D349D34AD34BD34CD34DD34ED34FD350D351D352D353D354D355D356D357D358D359D35AD35BD35CD35DD35EBCFBB9DBD35FB9E6C3D9CAD3EAE8C0C0BEF5EAE9EAEAEAEBD360EAECEAEDEAEEEAEFBDC7D361D362D363F5FBD364D365D366F5FDD367F5FED368F5FCD369D36AD36BD36CBDE2D36DF6A1B4A5D36ED36FD370D371F6A2D372D373D374F6A3D375D376D377ECB2D378D379D37AD37BD37CD37DD37ED380D381D382D383D384D1D4D385D386D387D388D389D38AD9EAD38BD38CD38DD38ED38FD390D391D392D393D394D395D396D397D398D399D39AD39BD39CD39DD39ED39FD3A0D440D441D442D443D444D445D446D447D448D449D44AD44BD44CD44DD44ED44FD450D451D452D453D454D455D456D457D458D459D45AD45BD45CD45DD45ED45FF6A4D460D461D462D463D464D465D466D467D468EEBAD469D46AD46BD46CD46DD46ED46FD470D471D472D473D474D475D476D477D478D479D47AD47BD47CD47DD47ED480D481D482D483D484D485D486D487D488D489D48AD48BD48CD48DD48ED48FD490D491D492D493D494D495D496D497D498D499D5B2D49AD49BD49CD49DD49ED49FD4A0D540D541D542D543D544D545D546D547D3FECCDCD548D549D54AD54BD54CD54DD54ED54FCAC4D550D551D552D553D554D555D556D557D558D559D55AD55BD55CD55DD55ED55FD560D561D562D563D564D565D566D567D568D569D56AD56BD56CD56DD56ED56FD570D571D572D573D574D575D576D577D578D579D57AD57BD57CD57DD57ED580D581D582D583D584D585D586D587D588D589D58AD58BD58CD58DD58ED58FD590D591D592D593D594D595D596D597D598D599D59AD59BD59CD59DD59ED59FD5A0D640D641D642D643D644D645D646D647D648D649D64AD64BD64CD64DD64ED64FD650D651D652D653D654D655D656D657D658D659D65AD65BD65CD65DD65ED65FD660D661D662E5C0D663D664D665D666D667D668D669D66AD66BD66CD66DD66ED66FD670D671D672D673D674D675D676D677D678D679D67AD67BD67CD67DD67ED680D681F6A5D682D683D684D685D686D687D688D689D68AD68BD68CD68DD68ED68FD690D691D692D693D694D695D696D697D698D699D69AD69BD69CD69DD69ED69FD6A0D740D741D742D743D744D745D746D747D748D749D74AD74BD74CD74DD74ED74FD750D751D752D753D754D755D756D757D758D759D75AD75BD75CD75DD75ED75FBEAFD760D761D762D763D764C6A9D765D766D767D768D769D76AD76BD76CD76DD76ED76FD770D771D772D773D774D775D776D777D778D779D77AD77BD77CD77DD77ED780D781D782D783D784D785D786D787D788D789D78AD78BD78CD78DD78ED78FD790D791D792D793D794D795D796D797D798DAA5BCC6B6A9B8BCC8CFBCA5DAA6DAA7CCD6C8C3DAA8C6FDD799D1B5D2E9D1B6BCC7D79ABDB2BBE4DAA9DAAAD1C8DAABD0EDB6EFC2DBD79BCBCFB7EDC9E8B7C3BEF7D6A4DAACDAADC6C0D7E7CAB6D79CD5A9CBDFD5EFDAAED6DFB4CADAB0DAAFD79DD2EBDAB1DAB2DAB3CAD4DAB4CAABDAB5DAB6B3CFD6EFDAB7BBB0B5AEDAB8DAB9B9EED1AFD2E8DABAB8C3CFEAB2EFDABBDABCD79EBDEBCEDCD3EFDABDCEF3DABED3D5BBE5DABFCBB5CBD0DAC0C7EBD6EEDAC1C5B5B6C1DAC2B7CCBFCEDAC3DAC4CBADDAC5B5F7DAC6C1C2D7BBDAC7CCB8D79FD2EAC4B1DAC8B5FDBBD1DAC9D0B3DACADACBCEBDDACCDACDDACEB2F7DAD1DACFD1E8DAD0C3D5DAD2D7A0DAD3DAD4DAD5D0BBD2A5B0F9DAD6C7ABDAD7BDF7C3A1DAD8DAD9C3FDCCB7DADADADBC0BEC6D7DADCDADDC7B4DADEDADFB9C8D840D841D842D843D844D845D846D847D848BBEDD849D84AD84BD84CB6B9F4F8D84DF4F9D84ED84FCDE3D850D851D852D853D854D855D856D857F5B9D858D859D85AD85BEBE0D85CD85DD85ED85FD860D861CFF3BBBFD862D863D864D865D866D867D868BAC0D4A5D869D86AD86BD86CD86DD86ED86FE1D9D870D871D872D873F5F4B1AAB2F2D874D875D876D877D878D879D87AF5F5D87BD87CF5F7D87DD87ED880BAD1F5F6D881C3B2D882D883D884D885D886D887D888F5F9D889D88AD88BF5F8D88CD88DD88ED88FD890D891D892D893D894D895D896D897D898D899D89AD89BD89CD89DD89ED89FD8A0D940D941D942D943D944D945D946D947D948D949D94AD94BD94CD94DD94ED94FD950D951D952D953D954D955D956D957D958D959D95AD95BD95CD95DD95ED95FD960D961D962D963D964D965D966D967D968D969D96AD96BD96CD96DD96ED96FD970D971D972D973D974D975D976D977D978D979D97AD97BD97CD97DD97ED980D981D982D983D984D985D986D987D988D989D98AD98BD98CD98DD98ED98FD990D991D992D993D994D995D996D997D998D999D99AD99BD99CD99DD99ED99FD9A0DA40DA41DA42DA43DA44DA45DA46DA47DA48DA49DA4ADA4BDA4CDA4DDA4EB1B4D5EAB8BADA4FB9B1B2C6D4F0CFCDB0DCD5CBBBF5D6CAB7B7CCB0C6B6B1E1B9BAD6FCB9E1B7A1BCFAEADAEADBCCF9B9F3EADCB4FBC3B3B7D1BAD8EADDD4F4EADEBCD6BBDFEADFC1DEC2B8D4DFD7CAEAE0EAE1EAE4EAE2EAE3C9DEB8B3B6C4EAE5CAEAC9CDB4CDDA50DA51E2D9C5E2EAE6C0B5DA52D7B8EAE7D7ACC8FCD8D3D8CDD4DEDA53D4F9C9C4D3AEB8D3B3E0DA54C9E2F4F6DA55DA56DA57BAD5DA58F4F7DA59DA5AD7DFDA5BDA5CF4F1B8B0D5D4B8CFC6F0DA5DDA5EDA5FDA60DA61DA62DA63DA64DA65B3C3DA66DA67F4F2B3ACDA68DA69DA6ADA6BD4BDC7F7DA6CDA6DDA6EDA6FDA70F4F4DA71DA72F4F3DA73DA74DA75DA76DA77DA78DA79DA7ADA7BDA7CCCCBDA7DDA7EDA80C8A4DA81DA82DA83DA84DA85DA86DA87DA88DA89DA8ADA8BDA8CDA8DF4F5DA8ED7E3C5BFF5C0DA8FDA90F5BBDA91F5C3DA92F5C2DA93D6BAF5C1DA94DA95DA96D4BEF5C4DA97F5CCDA98DA99DA9ADA9BB0CFB5F8DA9CF5C9F5CADA9DC5DCDA9EDA9FDAA0DB40F5C5F5C6DB41DB42F5C7F5CBDB43BEE0F5C8B8FADB44DB45DB46F5D0F5D3DB47DB48DB49BFE7DB4AB9F2F5BCF5CDDB4BDB4CC2B7DB4DDB4EDB4FCCF8DB50BCF9DB51F5CEF5CFF5D1B6E5F5D2DB52F5D5DB53DB54DB55DB56DB57DB58DB59F5BDDB5ADB5BDB5CF5D4D3BBDB5DB3ECDB5EDB5FCCA4DB60DB61DB62DB63F5D6DB64DB65DB66DB67DB68DB69DB6ADB6BF5D7BEE1F5D8DB6CDB6DCCDFF5DBDB6EDB6FDB70DB71DB72B2C8D7D9DB73F5D9DB74F5DAF5DCDB75F5E2DB76DB77DB78F5E0DB79DB7ADB7BF5DFF5DDDB7CDB7DF5E1DB7EDB80F5DEF5E4F5E5DB81CCE3DB82DB83E5BFB5B8F5E3F5E8CCA3DB84DB85DB86DB87DB88F5E6F5E7DB89DB8ADB8BDB8CDB8DDB8EF5BEDB8FDB90DB91DB92DB93DB94DB95DB96DB97DB98DB99DB9AB1C4DB9BDB9CF5BFDB9DDB9EB5C5B2E4DB9FF5ECF5E9DBA0B6D7DC40F5EDDC41F5EADC42DC43DC44DC45DC46F5EBDC47DC48B4DADC49D4EADC4ADC4BDC4CF5EEDC4DB3F9DC4EDC4FDC50DC51DC52DC53DC54F5EFF5F1DC55DC56DC57F5F0DC58DC59DC5ADC5BDC5CDC5DDC5EF5F2DC5FF5F3DC60DC61DC62DC63DC64DC65DC66DC67DC68DC69DC6ADC6BC9EDB9AADC6CDC6DC7FBDC6EDC6FB6E3DC70DC71DC72DC73DC74DC75DC76CCC9DC77DC78DC79DC7ADC7BDC7CDC7DDC7EDC80DC81DC82DC83DC84DC85DC86DC87DC88DC89DC8AEAA6DC8BDC8CDC8DDC8EDC8FDC90DC91DC92DC93DC94DC95DC96DC97DC98DC99DC9ADC9BDC9CDC9DDC9EDC9FDCA0DD40DD41DD42DD43DD44DD45DD46DD47DD48DD49DD4ADD4BDD4CDD4DDD4EDD4FDD50DD51DD52DD53DD54DD55DD56DD57DD58DD59DD5ADD5BDD5CDD5DDD5EDD5FDD60DD61DD62DD63DD64DD65DD66DD67DD68DD69DD6ADD6BDD6CDD6DDD6EDD6FDD70DD71DD72DD73DD74DD75DD76DD77DD78DD79DD7ADD7BDD7CDD7DDD7EDD80DD81DD82DD83DD84DD85DD86DD87DD88DD89DD8ADD8BDD8CDD8DDD8EDD8FDD90DD91DD92DD93DD94DD95DD96DD97DD98DD99DD9ADD9BDD9CDD9DDD9EDD9FDDA0DE40DE41DE42DE43DE44DE45DE46DE47DE48DE49DE4ADE4BDE4CDE4DDE4EDE4FDE50DE51DE52DE53DE54DE55DE56DE57DE58DE59DE5ADE5BDE5CDE5DDE5EDE5FDE60B3B5D4FEB9ECD0F9DE61E9EDD7AAE9EEC2D6C8EDBAE4E9EFE9F0E9F1D6E1E9F2E9F3E9F5E9F4E9F6E9F7C7E1E9F8D4D8E9F9BDCEDE62E9FAE9FBBDCFE9FCB8A8C1BEE9FDB1B2BBD4B9F5E9FEDE63EAA1EAA2EAA3B7F8BCADDE64CAE4E0CED4AFCFBDD5B7EAA4D5DEEAA5D0C1B9BCDE65B4C7B1D9DE66DE67DE68C0B1DE69DE6ADE6BDE6CB1E6B1E7DE6DB1E8DE6EDE6FDE70DE71B3BDC8E8DE72DE73DE74DE75E5C1DE76DE77B1DFDE78DE79DE7AC1C9B4EFDE7BDE7CC7A8D3D8DE7DC6F9D1B8DE7EB9FDC2F5DE80DE81DE82DE83DE84D3ADDE85D4CBBDFCDE86E5C2B7B5E5C3DE87DE88BBB9D5E2DE89BDF8D4B6CEA5C1ACB3D9DE8ADE8BCCF6DE8CE5C6E5C4E5C8DE8DE5CAE5C7B5CFC6C8DE8EB5FCE5C5DE8FCAF6DE90DE91E5C9DE92DE93DE94C3D4B1C5BCA3DE95DE96DE97D7B7DE98DE99CDCBCBCDCACACCD3E5CCE5CBC4E6DE9ADE9BD1A1D1B7E5CDDE9CE5D0DE9DCDB8D6F0E5CFB5DDDE9ECDBEDE9FE5D1B6BADEA0DF40CDA8B9E4DF41CAC5B3D1CBD9D4ECE5D2B7EADF42DF43DF44E5CEDF45DF46DF47DF48DF49DF4AE5D5B4FEE5D6DF4BDF4CDF4DDF4EDF4FE5D3E5D4DF50D2DDDF51DF52C2DFB1C6DF53D3E2DF54DF55B6DDCBECDF56E5D7DF57DF58D3F6DF59DF5ADF5BDF5CDF5DB1E9DF5EB6F4E5DAE5D8E5D9B5C0DF5FDF60DF61D2C5E5DCDF62DF63E5DEDF64DF65DF66DF67DF68DF69E5DDC7B2DF6AD2A3DF6BDF6CE5DBDF6DDF6EDF6FDF70D4E2D5DADF71DF72DF73DF74DF75E5E0D7F1DF76DF77DF78DF79DF7ADF7BDF7CE5E1DF7DB1DCD1FBDF7EE5E2E5E4DF80DF81DF82DF83E5E3DF84DF85E5E5DF86DF87DF88DF89DF8AD2D8DF8BB5CBDF8CE7DFDF8DDAF5DF8EDAF8DF8FDAF6DF90DAF7DF91DF92DF93DAFAD0CFC4C7DF94DF95B0EEDF96DF97DF98D0B0DF99DAF9DF9AD3CABAAADBA2C7F1DF9BDAFCDAFBC9DBDAFDDF9CDBA1D7DEDAFEC1DADF9DDF9EDBA5DF9FDFA0D3F4E040E041DBA7DBA4E042DBA8E043E044BDBCE045E046E047C0C9DBA3DBA6D6A3E048DBA9E049E04AE04BDBADE04CE04DE04EDBAEDBACBAC2E04FE050E051BFA4DBABE052E053E054DBAAD4C7B2BFE055E056DBAFE057B9F9E058DBB0E059E05AE05BE05CB3BBE05DE05EE05FB5A6E060E061E062E063B6BCDBB1E064E065E066B6F5E067DBB2E068E069E06AE06BE06CE06DE06EE06FE070E071E072E073E074E075E076E077E078E079E07AE07BB1C9E07CE07DE07EE080DBB4E081E082E083DBB3DBB5E084E085E086E087E088E089E08AE08BE08CE08DE08EDBB7E08FDBB6E090E091E092E093E094E095E096DBB8E097E098E099E09AE09BE09CE09DE09EE09FDBB9E0A0E140DBBAE141E142D3CFF4FAC7F5D7C3C5E4F4FCF4FDF4FBE143BEC6E144E145E146E147D0EFE148E149B7D3E14AE14BD4CDCCAAE14CE14DF5A2F5A1BAA8F4FECBD6E14EE14FE150F5A4C0D2E151B3EAE152CDAAF5A5F5A3BDB4F5A8E153F5A9BDCDC3B8BFE1CBE1F5AAE154E155E156F5A6F5A7C4F0E157E158E159E15AE15BF5ACE15CB4BCE15DD7EDE15EB4D7F5ABF5AEE15FE160F5ADF5AFD0D1E161E162E163E164E165E166E167C3D1C8A9E168E169E16AE16BE16CE16DF5B0F5B1E16EE16FE170E171E172E173F5B2E174E175F5B3F5B4F5B5E176E177E178E179F5B7F5B6E17AE17BE17CE17DF5B8E17EE180E181E182E183E184E185E186E187E188E189E18AB2C9E18BD3D4CACDE18CC0EFD6D8D2B0C1BFE18DBDF0E18EE18FE190E191E192E193E194E195E196E197B8AAE198E199E19AE19BE19CE19DE19EE19FE1A0E240E241E242E243E244E245E246E247E248E249E24AE24BE24CE24DE24EE24FE250E251E252E253E254E255E256E257E258E259E25AE25BE25CE25DE25EE25FE260E261E262E263E264E265E266E267E268E269E26AE26BE26CE26DE26EE26FE270E271E272E273E274E275E276E277E278E279E27AE27BE27CE27DE27EE280E281E282E283E284E285E286E287E288E289E28AE28BE28CE28DE28EE28FE290E291E292E293E294E295E296E297E298E299E29AE29BE29CE29DE29EE29FE2A0E340E341E342E343E344E345E346E347E348E349E34AE34BE34CE34DE34EE34FE350E351E352E353E354E355E356E357E358E359E35AE35BE35CE35DE35EE35FE360E361E362E363E364E365E366E367E368E369E36AE36BE36CE36DBCF8E36EE36FE370E371E372E373E374E375E376E377E378E379E37AE37BE37CE37DE37EE380E381E382E383E384E385E386E387F6C6E388E389E38AE38BE38CE38DE38EE38FE390E391E392E393E394E395E396E397E398E399E39AE39BE39CE39DE39EE39FE3A0E440E441E442E443E444E445F6C7E446E447E448E449E44AE44BE44CE44DE44EE44FE450E451E452E453E454E455E456E457E458E459E45AE45BE45CE45DE45EF6C8E45FE460E461E462E463E464E465E466E467E468E469E46AE46BE46CE46DE46EE46FE470E471E472E473E474E475E476E477E478E479E47AE47BE47CE47DE47EE480E481E482E483E484E485E486E487E488E489E48AE48BE48CE48DE48EE48FE490E491E492E493E494E495E496E497E498E499E49AE49BE49CE49DE49EE49FE4A0E540E541E542E543E544E545E546E547E548E549E54AE54BE54CE54DE54EE54FE550E551E552E553E554E555E556E557E558E559E55AE55BE55CE55DE55EE55FE560E561E562E563E564E565E566E567E568E569E56AE56BE56CE56DE56EE56FE570E571E572E573F6C9E574E575E576E577E578E579E57AE57BE57CE57DE57EE580E581E582E583E584E585E586E587E588E589E58AE58BE58CE58DE58EE58FE590E591E592E593E594E595E596E597E598E599E59AE59BE59CE59DE59EE59FF6CAE5A0E640E641E642E643E644E645E646E647E648E649E64AE64BE64CE64DE64EE64FE650E651E652E653E654E655E656E657E658E659E65AE65BE65CE65DE65EE65FE660E661E662F6CCE663E664E665E666E667E668E669E66AE66BE66CE66DE66EE66FE670E671E672E673E674E675E676E677E678E679E67AE67BE67CE67DE67EE680E681E682E683E684E685E686E687E688E689E68AE68BE68CE68DE68EE68FE690E691E692E693E694E695E696E697E698E699E69AE69BE69CE69DF6CBE69EE69FE6A0E740E741E742E743E744E745E746E747F7E9E748E749E74AE74BE74CE74DE74EE74FE750E751E752E753E754E755E756E757E758E759E75AE75BE75CE75DE75EE75FE760E761E762E763E764E765E766E767E768E769E76AE76BE76CE76DE76EE76FE770E771E772E773E774E775E776E777E778E779E77AE77BE77CE77DE77EE780E781E782E783E784E785E786E787E788E789E78AE78BE78CE78DE78EE78FE790E791E792E793E794E795E796E797E798E799E79AE79BE79CE79DE79EE79FE7A0E840E841E842E843E844E845E846E847E848E849E84AE84BE84CE84DE84EF6CDE84FE850E851E852E853E854E855E856E857E858E859E85AE85BE85CE85DE85EE85FE860E861E862E863E864E865E866E867E868E869E86AE86BE86CE86DE86EE86FE870E871E872E873E874E875E876E877E878E879E87AF6CEE87BE87CE87DE87EE880E881E882E883E884E885E886E887E888E889E88AE88BE88CE88DE88EE88FE890E891E892E893E894EEC4EEC5EEC6D5EBB6A4EEC8EEC7EEC9EECAC7A5EECBEECCE895B7B0B5F6EECDEECFE896EECEE897B8C6EED0EED1EED2B6DBB3AED6D3C4C6B1B5B8D6EED3EED4D4BFC7D5BEFBCED9B9B3EED6EED5EED8EED7C5A5EED9EEDAC7AEEEDBC7AFEEDCB2A7EEDDEEDEEEDFEEE0EEE1D7EAEEE2EEE3BCD8EEE4D3CBCCFAB2ACC1E5EEE5C7A6C3ADE898EEE6EEE7EEE8EEE9EEEAEEEBEEECE899EEEDEEEEEEEFE89AE89BEEF0EEF1EEF2EEF4EEF3E89CEEF5CDADC2C1EEF6EEF7EEF8D5A1EEF9CFB3EEFAEEFBE89DEEFCEEFDEFA1EEFEEFA2B8F5C3FAEFA3EFA4BDC2D2BFB2F9EFA5EFA6EFA7D2F8EFA8D6FDEFA9C6CCE89EEFAAEFABC1B4EFACCFFACBF8EFAEEFADB3FAB9F8EFAFEFB0D0E2EFB1EFB2B7E6D0BFEFB3EFB4EFB5C8F1CCE0EFB6EFB7EFB8EFB9EFBAD5E0EFBBB4EDC3AAEFBCE89FEFBDEFBEEFBFE8A0CEFDEFC0C2E0B4B8D7B6BDF5E940CFC7EFC3EFC1EFC2EFC4B6A7BCFCBEE2C3CCEFC5EFC6E941EFC7EFCFEFC8EFC9EFCAC7C2EFF1B6CDEFCBE942EFCCEFCDB6C6C3BEEFCEE943EFD0EFD1EFD2D5F2E944EFD3C4F7E945EFD4C4F8EFD5EFD6B8E4B0F7EFD7EFD8EFD9E946EFDAEFDBEFDCEFDDE947EFDEBEB5EFE1EFDFEFE0E948EFE2EFE3C1CDEFE4EFE5EFE6EFE7EFE8EFE9EFEAEFEBEFECC0D8E949EFEDC1ADEFEEEFEFEFF0E94AE94BCFE2E94CE94DE94EE94FE950E951E952E953B3A4E954E955E956E957E958E959E95AE95BE95CE95DE95EE95FE960E961E962E963E964E965E966E967E968E969E96AE96BE96CE96DE96EE96FE970E971E972E973E974E975E976E977E978E979E97AE97BE97CE97DE97EE980E981E982E983E984E985E986E987E988E989E98AE98BE98CE98DE98EE98FE990E991E992E993E994E995E996E997E998E999E99AE99BE99CE99DE99EE99FE9A0EA40EA41EA42EA43EA44EA45EA46EA47EA48EA49EA4AEA4BEA4CEA4DEA4EEA4FEA50EA51EA52EA53EA54EA55EA56EA57EA58EA59EA5AEA5BC3C5E3C5C9C1E3C6EA5CB1D5CECAB4B3C8F2E3C7CFD0E3C8BCE4E3C9E3CAC3C6D5A2C4D6B9EBCEC5E3CBC3F6E3CCEA5DB7A7B8F3BAD2E3CDE3CED4C4E3CFEA5EE3D0D1CBE3D1E3D2E3D3E3D4D1D6E3D5B2FBC0BBE3D6EA5FC0ABE3D7E3D8E3D9EA60E3DAE3DBEA61B8B7DAE2EA62B6D3EA63DAE4DAE3EA64EA65EA66EA67EA68EA69EA6ADAE6EA6BEA6CEA6DC8EEEA6EEA6FDAE5B7C0D1F4D2F5D5F3BDD7EA70EA71EA72EA73D7E8DAE8DAE7EA74B0A2CDD3EA75DAE9EA76B8BDBCCAC2BDC2A4B3C2DAEAEA77C2AAC4B0BDB5EA78EA79CFDEEA7AEA7BEA7CDAEBC9C2EA7DEA7EEA80EA81EA82B1DDEA83EA84EA85DAECEA86B6B8D4BAEA87B3FDEA88EA89DAEDD4C9CFD5C5E3EA8ADAEEEA8BEA8CEA8DEA8EEA8FDAEFEA90DAF0C1EACCD5CFDDEA91EA92EA93EA94EA95EA96EA97EA98EA99EA9AEA9BEA9CEA9DD3E7C2A1EA9EDAF1EA9FEAA0CBE5EB40DAF2EB41CBE6D2FEEB42EB43EB44B8F4EB45EB46DAF3B0AFCFB6EB47EB48D5CFEB49EB4AEB4BEB4CEB4DEB4EEB4FEB50EB51EB52CBEDEB53EB54EB55EB56EB57EB58EB59EB5ADAF4EB5BEB5CE3C4EB5DEB5EC1A5EB5FEB60F6BFEB61EB62F6C0F6C1C4D1EB63C8B8D1E3EB64EB65D0DBD1C5BCAFB9CDEB66EFF4EB67EB68B4C6D3BAF6C2B3FBEB69EB6AF6C3EB6BEB6CB5F1EB6DEB6EEB6FEB70EB71EB72EB73EB74EB75EB76F6C5EB77EB78EB79EB7AEB7BEB7CEB7DD3EAF6A7D1A9EB7EEB80EB81EB82F6A9EB83EB84EB85F6A8EB86EB87C1E3C0D7EB88B1A2EB89EB8AEB8BEB8CCEEDEB8DD0E8F6ABEB8EEB8FCFF6EB90F6AAD5F0F6ACC3B9EB91EB92EB93BBF4F6AEF6ADEB94EB95EB96C4DEEB97EB98C1D8EB99EB9AEB9BEB9CEB9DCBAAEB9ECFBCEB9FEBA0EC40EC41EC42EC43EC44EC45EC46EC47EC48F6AFEC49EC4AF6B0EC4BEC4CF6B1EC4DC2B6EC4EEC4FEC50EC51EC52B0D4C5F9EC53EC54EC55EC56F6B2EC57EC58EC59EC5AEC5BEC5CEC5DEC5EEC5FEC60EC61EC62EC63EC64EC65EC66EC67EC68EC69C7E0F6A6EC6AEC6BBEB8EC6CEC6DBEB2EC6EB5E5EC6FEC70B7C7EC71BFBFC3D2C3E6EC72EC73D8CCEC74EC75EC76B8EFEC77EC78EC79EC7AEC7BEC7CEC7DEC7EEC80BDF9D1A5EC81B0D0EC82EC83EC84EC85EC86F7B0EC87EC88EC89EC8AEC8BEC8CEC8DEC8EF7B1EC8FEC90EC91EC92EC93D0ACEC94B0B0EC95EC96EC97F7B2F7B3EC98F7B4EC99EC9AEC9BC7CAEC9CEC9DEC9EEC9FECA0ED40ED41BECFED42ED43F7B7ED44ED45ED46ED47ED48ED49ED4AF7B6ED4BB1DEED4CF7B5ED4DED4EF7B8ED4FF7B9ED50ED51ED52ED53ED54ED55ED56ED57ED58ED59ED5AED5BED5CED5DED5EED5FED60ED61ED62ED63ED64ED65ED66ED67ED68ED69ED6AED6BED6CED6DED6EED6FED70ED71ED72ED73ED74ED75ED76ED77ED78ED79ED7AED7BED7CED7DED7EED80ED81CEA4C8CDED82BAABE8B8E8B9E8BABEC2ED83ED84ED85ED86ED87D2F4ED88D4CFC9D8ED89ED8AED8BED8CED8DED8EED8FED90ED91ED92ED93ED94ED95ED96ED97ED98ED99ED9AED9BED9CED9DED9EED9FEDA0EE40EE41EE42EE43EE44EE45EE46EE47EE48EE49EE4AEE4BEE4CEE4DEE4EEE4FEE50EE51EE52EE53EE54EE55EE56EE57EE58EE59EE5AEE5BEE5CEE5DEE5EEE5FEE60EE61EE62EE63EE64EE65EE66EE67EE68EE69EE6AEE6BEE6CEE6DEE6EEE6FEE70EE71EE72EE73EE74EE75EE76EE77EE78EE79EE7AEE7BEE7CEE7DEE7EEE80EE81EE82EE83EE84EE85EE86EE87EE88EE89EE8AEE8BEE8CEE8DEE8EEE8FEE90EE91EE92EE93EE94EE95EE96EE97EE98EE99EE9AEE9BEE9CEE9DEE9EEE9FEEA0EF40EF41EF42EF43EF44EF45D2B3B6A5C7EAF1FCCFEECBB3D0EBE7EFCDE7B9CBB6D9F1FDB0E4CBCCF1FED4A4C2ADC1ECC6C4BEB1F2A1BCD5EF46F2A2F2A3EF47F2A4D2C3C6B5EF48CDC7F2A5EF49D3B1BFC5CCE2EF4AF2A6F2A7D1D5B6EEF2A8F2A9B5DFF2AAF2ABEF4BB2FCF2ACF2ADC8A7EF4CEF4DEF4EEF4FEF50EF51EF52EF53EF54EF55EF56EF57EF58EF59EF5AEF5BEF5CEF5DEF5EEF5FEF60EF61EF62EF63EF64EF65EF66EF67EF68EF69EF6AEF6BEF6CEF6DEF6EEF6FEF70EF71B7E7EF72EF73ECA9ECAAECABEF74ECACEF75EF76C6AEECADECAEEF77EF78EF79B7C9CAB3EF7AEF7BEF7CEF7DEF7EEF80EF81E2B8F7CFEF82EF83EF84EF85EF86EF87EF88EF89EF8AEF8BEF8CEF8DEF8EEF8FEF90EF91EF92EF93EF94EF95EF96EF97EF98EF99EF9AEF9BEF9CEF9DEF9EEF9FEFA0F040F041F042F043F044F7D0F045F046B2CDF047F048F049F04AF04BF04CF04DF04EF04FF050F051F052F053F054F055F056F057F058F059F05AF05BF05CF05DF05EF05FF060F061F062F063F7D1F064F065F066F067F068F069F06AF06BF06CF06DF06EF06FF070F071F072F073F074F075F076F077F078F079F07AF07BF07CF07DF07EF080F081F082F083F084F085F086F087F088F089F7D3F7D2F08AF08BF08CF08DF08EF08FF090F091F092F093F094F095F096E2BBF097BCA2F098E2BCE2BDE2BEE2BFE2C0E2C1B7B9D2FBBDA4CACEB1A5CBC7F099E2C2B6FCC8C4E2C3F09AF09BBDC8F09CB1FDE2C4F09DB6F6E2C5C4D9F09EF09FE2C6CFDAB9DDE2C7C0A1F0A0E2C8B2F6F140E2C9F141C1F3E2CAE2CBC2F8E2CCE2CDE2CECAD7D8B8D9E5CFE3F142F143F144F145F146F147F148F149F14AF14BF14CF0A5F14DF14EDCB0F14FF150F151F152F153F154F155F156F157F158F159F15AF15BF15CF15DF15EF15FF160F161F162F163F164F165F166F167F168F169F16AF16BF16CF16DF16EF16FF170F171F172F173F174F175F176F177F178F179F17AF17BF17CF17DF17EF180F181F182F183F184F185F186F187F188F189F18AF18BF18CF18DF18EF18FF190F191F192F193F194F195F196F197F198F199F19AF19BF19CF19DF19EF19FF1A0F240F241F242F243F244F245F246F247F248F249F24AF24BF24CF24DF24EF24FF250F251F252F253F254F255F256F257F258F259F25AF25BF25CF25DF25EF25FF260F261F262F263F264F265F266F267F268F269F26AF26BF26CF26DF26EF26FF270F271F272F273F274F275F276F277F278F279F27AF27BF27CF27DF27EF280F281F282F283F284F285F286F287F288F289F28AF28BF28CF28DF28EF28FF290F291F292F293F294F295F296F297F298F299F29AF29BF29CF29DF29EF29FF2A0F340F341F342F343F344F345F346F347F348F349F34AF34BF34CF34DF34EF34FF350F351C2EDD4A6CDD4D1B1B3DBC7FDF352B2B5C2BFE6E0CABBE6E1E6E2BED4E6E3D7A4CDD5E6E5BCDDE6E4E6E6E6E7C2EEF353BDBEE6E8C2E6BAA7E6E9F354E6EAB3D2D1E9F355F356BFA5E6EBC6EFE6ECE6EDF357F358E6EEC6ADE6EFF359C9A7E6F0E6F1E6F2E5B9E6F3E6F4C2E2E6F5E6F6D6E8E6F7F35AE6F8B9C7F35BF35CF35DF35EF35FF360F361F7BBF7BAF362F363F364F365F7BEF7BCBAA1F366F7BFF367F7C0F368F369F36AF7C2F7C1F7C4F36BF36CF7C3F36DF36EF36FF370F371F7C5F7C6F372F373F374F375F7C7F376CBE8F377F378F379F37AB8DFF37BF37CF37DF37EF380F381F7D4F382F7D5F383F384F385F386F7D6F387F388F389F38AF7D8F38BF7DAF38CF7D7F38DF38EF38FF390F391F392F393F394F395F7DBF396F7D9F397F398F399F39AF39BF39CF39DD7D7F39EF39FF3A0F440F7DCF441F442F443F444F445F446F7DDF447F448F449F7DEF44AF44BF44CF44DF44EF44FF450F451F452F453F454F7DFF455F456F457F7E0F458F459F45AF45BF45CF45DF45EF45FF460F461F462DBCBF463F464D8AAF465F466F467F468F469F46AF46BF46CE5F7B9EDF46DF46EF46FF470BFFDBBEAF7C9C6C7F7C8F471F7CAF7CCF7CBF472F473F474F7CDF475CEBAF476F7CEF477F478C4A7F479F47AF47BF47CF47DF47EF480F481F482F483F484F485F486F487F488F489F48AF48BF48CF48DF48EF48FF490F491F492F493F494F495F496F497F498F499F49AF49BF49CF49DF49EF49FF4A0F540F541F542F543F544F545F546F547F548F549F54AF54BF54CF54DF54EF54FF550F551F552F553F554F555F556F557F558F559F55AF55BF55CF55DF55EF55FF560F561F562F563F564F565F566F567F568F569F56AF56BF56CF56DF56EF56FF570F571F572F573F574F575F576F577F578F579F57AF57BF57CF57DF57EF580F581F582F583F584F585F586F587F588F589F58AF58BF58CF58DF58EF58FF590F591F592F593F594F595F596F597F598F599F59AF59BF59CF59DF59EF59FF5A0F640F641F642F643F644F645F646F647F648F649F64AF64BF64CF64DF64EF64FF650F651F652F653F654F655F656F657F658F659F65AF65BF65CF65DF65EF65FF660F661F662F663F664F665F666F667F668F669F66AF66BF66CF66DF66EF66FF670F671F672F673F674F675F676F677F678F679F67AF67BF67CF67DF67EF680F681F682F683F684F685F686F687F688F689F68AF68BF68CF68DF68EF68FF690F691F692F693F694F695F696F697F698F699F69AF69BF69CF69DF69EF69FF6A0F740F741F742F743F744F745F746F747F748F749F74AF74BF74CF74DF74EF74FF750F751F752F753F754F755F756F757F758F759F75AF75BF75CF75DF75EF75FF760F761F762F763F764F765F766F767F768F769F76AF76BF76CF76DF76EF76FF770F771F772F773F774F775F776F777F778F779F77AF77BF77CF77DF77EF780D3E3F781F782F6CFF783C2B3F6D0F784F785F6D1F6D2F6D3F6D4F786F787F6D6F788B1ABF6D7F789F6D8F6D9F6DAF78AF6DBF6DCF78BF78CF78DF78EF6DDF6DECFCAF78FF6DFF6E0F6E1F6E2F6E3F6E4C0F0F6E5F6E6F6E7F6E8F6E9F790F6EAF791F6EBF6ECF792F6EDF6EEF6EFF6F0F6F1F6F2F6F3F6F4BEA8F793F6F5F6F6F6F7F6F8F794F795F796F797F798C8FAF6F9F6FAF6FBF6FCF799F79AF6FDF6FEF7A1F7A2F7A3F7A4F7A5F79BF79CF7A6F7A7F7A8B1EEF7A9F7AAF7ABF79DF79EF7ACF7ADC1DBF7AEF79FF7A0F7AFF840F841F842F843F844F845F846F847F848F849F84AF84BF84CF84DF84EF84FF850F851F852F853F854F855F856F857F858F859F85AF85BF85CF85DF85EF85FF860F861F862F863F864F865F866F867F868F869F86AF86BF86CF86DF86EF86FF870F871F872F873F874F875F876F877F878F879F87AF87BF87CF87DF87EF880F881F882F883F884F885F886F887F888F889F88AF88BF88CF88DF88EF88FF890F891F892F893F894F895F896F897F898F899F89AF89BF89CF89DF89EF89FF8A0F940F941F942F943F944F945F946F947F948F949F94AF94BF94CF94DF94EF94FF950F951F952F953F954F955F956F957F958F959F95AF95BF95CF95DF95EF95FF960F961F962F963F964F965F966F967F968F969F96AF96BF96CF96DF96EF96FF970F971F972F973F974F975F976F977F978F979F97AF97BF97CF97DF97EF980F981F982F983F984F985F986F987F988F989F98AF98BF98CF98DF98EF98FF990F991F992F993F994F995F996F997F998F999F99AF99BF99CF99DF99EF99FF9A0FA40FA41FA42FA43FA44FA45FA46FA47FA48FA49FA4AFA4BFA4CFA4DFA4EFA4FFA50FA51FA52FA53FA54FA55FA56FA57FA58FA59FA5AFA5BFA5CFA5DFA5EFA5FFA60FA61FA62FA63FA64FA65FA66FA67FA68FA69FA6AFA6BFA6CFA6DFA6EFA6FFA70FA71FA72FA73FA74FA75FA76FA77FA78FA79FA7AFA7BFA7CFA7DFA7EFA80FA81FA82FA83FA84FA85FA86FA87FA88FA89FA8AFA8BFA8CFA8DFA8EFA8FFA90FA91FA92FA93FA94FA95FA96FA97FA98FA99FA9AFA9BFA9CFA9DFA9EFA9FFAA0FB40FB41FB42FB43FB44FB45FB46FB47FB48FB49FB4AFB4BFB4CFB4DFB4EFB4FFB50FB51FB52FB53FB54FB55FB56FB57FB58FB59FB5AFB5BC4F1F0AFBCA6F0B0C3F9FB5CC5B8D1BBFB5DF0B1F0B2F0B3F0B4F0B5D1BCFB5ED1ECFB5FF0B7F0B6D4A7FB60CDD2F0B8F0BAF0B9F0BBF0BCFB61FB62B8EBF0BDBAE8FB63F0BEF0BFBEE9F0C0B6ECF0C1F0C2F0C3F0C4C8B5F0C5F0C6FB64F0C7C5F4FB65F0C8FB66FB67FB68F0C9FB69F0CAF7BDFB6AF0CBF0CCF0CDFB6BF0CEFB6CFB6DFB6EFB6FF0CFBAD7FB70F0D0F0D1F0D2F0D3F0D4F0D5F0D6F0D8FB71FB72D3A5F0D7FB73F0D9FB74FB75FB76FB77FB78FB79FB7AFB7BFB7CFB7DF5BAC2B9FB7EFB80F7E4FB81FB82FB83FB84F7E5F7E6FB85FB86F7E7FB87FB88FB89FB8AFB8BFB8CF7E8C2B4FB8DFB8EFB8FFB90FB91FB92FB93FB94FB95F7EAFB96F7EBFB97FB98FB99FB9AFB9BFB9CC2F3FB9DFB9EFB9FFBA0FC40FC41FC42FC43FC44FC45FC46FC47FC48F4F0FC49FC4AFC4BF4EFFC4CFC4DC2E9FC4EF7E1F7E2FC4FFC50FC51FC52FC53BBC6FC54FC55FC56FC57D9E4FC58FC59FC5ACAF2C0E8F0A4FC5BBADAFC5CFC5DC7ADFC5EFC5FFC60C4ACFC61FC62F7ECF7EDF7EEFC63F7F0F7EFFC64F7F1FC65FC66F7F4FC67F7F3FC68F7F2F7F5FC69FC6AFC6BFC6CF7F6FC6DFC6EFC6FFC70FC71FC72FC73FC74FC75EDE9FC76EDEAEDEBFC77F6BCFC78FC79FC7AFC7BFC7CFC7DFC7EFC80FC81FC82FC83FC84F6BDFC85F6BEB6A6FC86D8BEFC87FC88B9C4FC89FC8AFC8BD8BBFC8CDCB1FC8DFC8EFC8FFC90FC91FC92CAF3FC93F7F7FC94FC95FC96FC97FC98FC99FC9AFC9BFC9CF7F8FC9DFC9EF7F9FC9FFCA0FD40FD41FD42FD43FD44F7FBFD45F7FAFD46B1C7FD47F7FCF7FDFD48FD49FD4AFD4BFD4CF7FEFD4DFD4EFD4FFD50FD51FD52FD53FD54FD55FD56FD57C6EBECB4FD58FD59FD5AFD5BFD5CFD5DFD5EFD5FFD60FD61FD62FD63FD64FD65FD66FD67FD68FD69FD6AFD6BFD6CFD6DFD6EFD6FFD70FD71FD72FD73FD74FD75FD76FD77FD78FD79FD7AFD7BFD7CFD7DFD7EFD80FD81FD82FD83FD84FD85B3DDF6B3FD86FD87F6B4C1E4F6B5F6B6F6B7F6B8F6B9F6BAC8A3F6BBFD88FD89FD8AFD8BFD8CFD8DFD8EFD8FFD90FD91FD92FD93C1FAB9A8EDE8FD94FD95FD96B9EAD9DFFD97FD98FD99FD9AFD9'; + + for (var i = 0; i < str.length; i++) { + var c = str.charAt(i), + code = str.charCodeAt(i); + if (c == " ") strOut += "+"; + else if (code >= 19968 && code <= 40869) { + var index = code - 19968; + strOut += "%" + z.substr(index * 4, 2) + "%" + z.substr(index * 4 + 2, 2); + } else { + strOut += "%" + str.charCodeAt(i).toString(16); + } + } + return strOut; + }, + /* 改变图片大小 */ + scale: function (img, w, h) { + var ow = img.width, + oh = img.height; + + 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'; + } + }, + getImageData: function(){ + var _this = this, + key = $G('searchTxt').value, + type = $G('searchType').value, + keepOriginName = editor.options.keepOriginName ? "1" : "0", + url = "http://image.baidu.com/i?ct=201326592&cl=2&lm=-1&st=-1&tn=baiduimagejson&istype=2&rn=32&fm=index&pv=&word=" + _this.encodeToGb2312(key) + type + "&keeporiginname=" + keepOriginName + "&" + +new Date; + + $G('searchListUl').innerHTML = lang.searchLoading; + ajax.request(url, { + 'dataType': 'jsonp', + 'charset': 'GB18030', + 'onsuccess':function(json){ + var list = []; + if(json && json.data) { + for(var i = 0; i < json.data.length; i++) { + if(json.data[i].objURL) { + list.push({ + title: json.data[i].fromPageTitleEnc, + src: json.data[i].objURL, + url: json.data[i].fromURL + }); + } + } + } + _this.setList(list); + }, + 'onerror':function(){ + $G('searchListUl').innerHTML = lang.searchRetry; + } + }); + }, + /* 添加图片到列表界面上 */ + setList: function (list) { + var i, item, p, img, link, _this = this, + listUl = $G('searchListUl'); + + listUl.innerHTML = ''; + if(list.length) { + for (i = 0; i < list.length; i++) { + item = document.createElement('li'); + p = document.createElement('p'); + img = document.createElement('img'); + link = document.createElement('a'); + + img.onload = function () { + _this.scale(this, 113, 113); + }; + img.width = 113; + img.setAttribute('src', list[i].src); + + link.href = list[i].url; + link.target = '_blank'; + link.title = list[i].title; + link.innerHTML = list[i].title; + + p.appendChild(img); + item.appendChild(p); + item.appendChild(link); + listUl.appendChild(item); + } + } else { + listUl.innerHTML = lang.searchRetry; + } + }, + getInsertList: function () { + var child, + src, + align = getAlign(), + list = [], + items = $G('searchListUl').children; + for(var i = 0; i < items.length; i++) { + child = items[i].firstChild && items[i].firstChild.firstChild; + if(child.tagName && child.tagName.toLowerCase() == 'img' && domUtils.hasClass(items[i], 'selected')) { + src = child.src; + list.push({ + src: src, + _src: src, + alt: src.substr(src.lastIndexOf('/') + 1), + floatStyle: align + }); + } + } + return list; + } + }; + +})(); diff --git a/public/static/UEditor/dialogs/image/images/alignicon.jpg b/public/static/UEditor/dialogs/image/images/alignicon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..754755b1b6e2b37d6090f68b80e91867fdcf1042 GIT binary patch literal 16101 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 literal 0 HcmV?d00001 diff --git a/public/static/UEditor/dialogs/image/images/bg.png b/public/static/UEditor/dialogs/image/images/bg.png new file mode 100644 index 0000000000000000000000000000000000000000..580be0a01dff4c70c72f78a3f40186660ee8eee0 GIT binary patch literal 2810 zcmVKLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(`>RI+y?e7jKeZ#YO-C z04GUAK~#9!Vtn`R9RmY{pr9ZF0|OHS5@7uQ|33o*!~6H|(PaPw01s0L&KTmYGZarn*x(aH@fLZq!wgUiaA+%BrQuMGlI(3v}$4ket=c%G-JG_a6@d zUMtW1Dv_dMk(#;&JDULU);6IIt*+RD80Beh(v#{r8-@JE7rOMyrKZ@`PM+5- zK4PEn@UifH&1a7opNKNDvAy~H((Lt@PiCLrh`sqL^yyzFM}*_N9gV+*y1bvCcd{tw zP+atQ`ojjtR_?nOH&4iCw(0v^v}@~SfpwBi-JHA%0-p_?kEd#ga=ENn_|&M5?L?$c z!i1+jT>6R+ul!uQ+^$n$Hm~o7%Nb0wJ#GK7NE~>4aE?#6+>{R=oUZeJnouMg`B^J) rUi3;Xl^IQMkE|4#X6EZ{`gBG$ultcLuMHMNRKNMR>qv$%6N5DXx{1lO literal 0 HcmV?d00001 diff --git a/public/static/UEditor/dialogs/image/images/icons.png b/public/static/UEditor/dialogs/image/images/icons.png new file mode 100644 index 0000000000000000000000000000000000000000..12e4700163ac87fa38ae3d92a2c39d0fb4690fed GIT binary patch literal 2678 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 literal 0 HcmV?d00001 diff --git a/public/static/UEditor/dialogs/image/images/progress.png b/public/static/UEditor/dialogs/image/images/progress.png new file mode 100644 index 0000000000000000000000000000000000000000..717c4865c90a959c6a0e9ad1af9c777d900a2e9c GIT binary patch literal 1269 zcmeAS@N?(olHy`uVBq!ia0vp^f8U}fi7AzZCsS=07??9MLn2Bde0{8v^Kf6`()~Xj@TAnpKdC8`Lf!&sHg;q@=(~U%$M( zT(8_%FTW^V-_X+15@d#vkuFe$ZgFK^Nn(X=Ua>OF1ees}t-3#_`hBq$Z(46Le)Ln;eW^@CE2 z^Gl18f$@>14ATq@JNy=b6armi>cVAJd5X6R;MWawh(V&G(G=xXffXz1o@ zX=ZL{;B08&Z0-!x>zP+vl9-pA3bQv8XfIT+GhV$`&PAz-CHX}m`T04p6cCV+Uy@&( zkzb(T9Bihb;hUJ8nFkWk1Vs?Uzb>gonPsUdZbkXI3g8g7%EaOV0~10%hv-cqC)D(T zj?o7t52WM*69T3|5EGvGfgE`DNzDW1nId53*cQ_-&cMK^?CIhdQgN$ga=rIq1A(^5 zYKwg&`wo`WvF`u>{iFU|`!+wz>b#B?t8F4hxRm$~lz-tTH#6E8xZnKlv%`YRwvA{oKseqmK8(Gfx|> z#)dT+Zy!CGH{+89Q&m{rC!PyyIjq?Y9m+ziHPqr6qxfF`+2Qt=-KQ=fE8_j%1#Y2} z>NffN)P;AQIhrE)QQzeqbFS^A8(M1XGuQqTO<=fcH+M~2lzlL$Ao6teb6Mw<&;$U? C61Fb@ literal 0 HcmV?d00001 diff --git a/public/static/UEditor/dialogs/image/images/success.gif b/public/static/UEditor/dialogs/image/images/success.gif new file mode 100644 index 0000000000000000000000000000000000000000..8d4f3112b9d1df2147ed3b67d9736163dedd11e1 GIT binary patch literal 445 zcmZ?wbhEHb)L_tHxXJ(m|NsC0{`>#WKmY&!`~ULm|4%>v3rzVXIOUh{)L$ageu+>2 zB{Acd%*pZwE#>TlQSztb-KopJH+%!_|l-~7Ag*59?a z{_c7B@6_{ur(gU#_wwKE_y6vG`1j=VzZYNsfBgCX$DjXizW@L859r4KV8@~pia%Kx z85k@WbU+dyKQXY~a+p)#p(E9QVoA}-BeJtDJbfs+R&065YSGzOop#2q7tzUUTK@E- z1Qpqe*fm*b*T-Fam_8!ZPiJg?eRTb9ku+5;xVnw>Wr$>Ce}(b zvq{bgY~#~oR8Cparp&0%zbdUw!o*Z6ds70hP&$teqekA&7*16-748@%Mnl0vSqU6+ zOpICr!NSHY@7SLk+rBLP3&#jWP!Xxbb jiN%_{Rv%uKKTTNF#>acL^G5)OtDBg<-IWs>91PX~W`xy? literal 0 HcmV?d00001 diff --git a/public/static/UEditor/dialogs/image/images/success.png b/public/static/UEditor/dialogs/image/images/success.png new file mode 100644 index 0000000000000000000000000000000000000000..94f968dc8fd3c7ca8f6cb599d006ef3f23b62c7d GIT binary patch literal 1621 zcmeAS@N?(olHy`uVBq!ia0vp^8X(NU1|)m_?Z^dEk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m{l@EB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxSU1_g&``n5OwZ87 z)XdCKN5ROz&`93^h|F{iO{`4Ktc=VRpg;*|TTx1yRgjAt)Gi>;Rw<*Tq`*pFzr4I$ zuiRKKzbIYb(9+TpWQLKEE>MMTab;dfVufyAu`f(~1RD^r68eAMwS&*t9 zlvO-#?>2=9ZF3nBND}m`vLFhHXsTY(OatnYqyQCInmZhe+73JqDfIV%MiQ6rPIL(9V zO~LIJBb<8mfsWA!MJ-ZP!-Rn82gHOYTp$OY^i%VI>AeV;u(vXbonl~MI_~M>7*cWT z%njcRVMh`65C6~Q2yI{K`NBQQh9heAinXE1(JfB=Ul%M;Ke#x6g%L8^f5l4Te zj&BcK1znDIyZS2~eC7F3K+}tVTa$=u*HTU0W4>0#`+Qf%|GkyBERBs#$Y}P@k7@U2 zd#*XsYr~WGeCA1uSK>2HTD)g9mP}Xrpg$+`K&8dx2JS~bjCx(hj5}1;-8qn2_>|?> zp{d+2q{I0hbQS!U-jOut`kSEi+IhQJGmBl4O%se*W?OGKZ0Mp?XmGnRgezL^8vCJ4 z#-ek9(R&%4!h+;oXA~Mtbyie=u#0PDiI#!iX`%2?^@kRL8ma*r6?+*}W4e|_8~J&& z+-+*Ub3{dDcAIF|!MTDz0#78qKYeaeVU$wDOOs3cR=e5FZ*O2e-6xc{Uu=$;!s>*M z>nZ|V>zUp8-oE6^wXjV+_UOvuE&SORr`;3hnBKu~e3rzlY@NRjD|5Ui2t>^@Ve7jy z)2vT>u1vesjJgG`f;l_n`FmbR~b^~{VzXB}7CdU_pt>lO9l=E;X#4<2bZu32r~J^e^%TSISQ_Qm$= z7d{rOo2%^RUGseJkpn9(MWszUQdl(i&RN5PBgZ0d#S7ZipShU3W`>Nsy6C#pCD*KW zyxHW%b?m|pr;dF;L$saa#oaeO`u=>jkXTjl9*cLEvOD!Jdr4ooKJW9gY7?D{e?uM^ z`_}E4`0yR0boA=9>3>WXzUH{&pDfpZ;_2xb=j*pKsk#WyD%J#5t{1#azeB z4SJq8H2*dJVX$xugZHVh{7U`u4@oM|quz5j-hRJi{qwh1k5uNqu`W>3HJG&Y^R}6R z$Gq-HPue$sd${oT*XKO8zN>Oe_%K^bZNm3^-vf7@5X# + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + + diff --git a/public/static/UEditor/index.html b/public/static/UEditor/index.html new file mode 100644 index 00000000..a4164182 --- /dev/null +++ b/public/static/UEditor/index.html @@ -0,0 +1,175 @@ + + + + 完整demo + + + + + + + + + + +
    +

    完整demo

    + +
    +
    +
    + + + + + + + + + + + +
    +
    + + + + + + + +
    + +
    + + +
    + +
    +
    + + +
    + + + + \ No newline at end of file diff --git a/public/static/UEditor/jsp/config.json b/public/static/UEditor/jsp/config.json new file mode 100644 index 00000000..7eefca7d --- /dev/null +++ b/public/static/UEditor/jsp/config.json @@ -0,0 +1,95 @@ +/* 前后端通信相关的配置,注释只允许使用多行方式 */ +{ + /* 上传图片配置项 */ + "imageActionName": "uploadimage", /* 执行上传图片的action名称 */ + "imageFieldName": "upfile", /* 提交的图片表单名称 */ + "imageMaxSize": 2048000, /* 上传大小限制,单位B */ + "imageAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 上传图片格式显示 */ + "imageCompressEnable": true, /* 是否压缩图片,默认是true */ + "imageCompressBorder": 1600, /* 图片压缩最长边限制 */ + "imageInsertAlign": "none", /* 插入的图片浮动方式 */ + "imageUrlPrefix": "http://localhost:8080/JavaWebProject", /* 图片访问路径前缀 */ + /*"imagePathFormat": "/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", 上传保存路径,可以自定义保存路径和文件名格式 */ + "imagePathFormat": "/upload/{yyyy}{mm}{dd}/{time}{rand:6}", + /* {filename} 会替换成原文件名,配置这项需要注意中文乱码问题 */ + /* {rand:6} 会替换成随机数,后面的数字是随机数的位数 */ + /* {time} 会替换成时间戳 */ + /* {yyyy} 会替换成四位年份 */ + /* {yy} 会替换成两位年份 */ + /* {mm} 会替换成两位月份 */ + /* {dd} 会替换成两位日期 */ + /* {hh} 会替换成两位小时 */ + /* {ii} 会替换成两位分钟 */ + /* {ss} 会替换成两位秒 */ + /* 非法字符 \ : * ? " < > | */ + /* 具请体看线上文档: fex.baidu.com/ueditor/#use-format_upload_filename */ + + /* 涂鸦图片上传配置项 */ + "scrawlActionName": "uploadscrawl", /* 执行上传涂鸦的action名称 */ + "scrawlFieldName": "upfile", /* 提交的图片表单名称 */ + "scrawlPathFormat": "/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */ + "scrawlMaxSize": 2048000, /* 上传大小限制,单位B */ + "scrawlUrlPrefix": "", /* 图片访问路径前缀 */ + "scrawlInsertAlign": "none", + + /* 截图工具上传 */ + "snapscreenActionName": "uploadimage", /* 执行上传截图的action名称 */ + "snapscreenPathFormat": "/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */ + "snapscreenUrlPrefix": "", /* 图片访问路径前缀 */ + "snapscreenInsertAlign": "none", /* 插入的图片浮动方式 */ + + /* 抓取远程图片配置 */ + "catcherLocalDomain": ["127.0.0.1", "localhost", "img.baidu.com"], + "catcherActionName": "catchimage", /* 执行抓取远程图片的action名称 */ + "catcherFieldName": "source", /* 提交的图片列表表单名称 */ + "catcherPathFormat": "/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */ + "catcherUrlPrefix": "", /* 图片访问路径前缀 */ + "catcherMaxSize": 2048000, /* 上传大小限制,单位B */ + "catcherAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 抓取图片格式显示 */ + + /* 上传视频配置 */ + "videoActionName": "uploadvideo", /* 执行上传视频的action名称 */ + "videoFieldName": "upfile", /* 提交的视频表单名称 */ + "videoPathFormat": "/ueditor/jsp/upload/video/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */ + "videoUrlPrefix": "", /* 视频访问路径前缀 */ + "videoMaxSize": 102400000, /* 上传大小限制,单位B,默认100MB */ + "videoAllowFiles": [ + ".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg", + ".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid"], /* 上传视频格式显示 */ + + /* 上传文件配置 */ + "fileActionName": "uploadfile", /* controller里,执行上传视频的action名称 */ + "fileFieldName": "upfile", /* 提交的文件表单名称 */ + "filePathFormat": "/ueditor/jsp/upload/file/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */ + "fileUrlPrefix": "", /* 文件访问路径前缀 */ + "fileMaxSize": 51200000, /* 上传大小限制,单位B,默认50MB */ + "fileAllowFiles": [ + ".png", ".jpg", ".jpeg", ".gif", ".bmp", + ".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg", + ".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid", + ".rar", ".zip", ".tar", ".gz", ".7z", ".bz2", ".cab", ".iso", + ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", ".txt", ".md", ".xml" + ], /* 上传文件格式显示 */ + + /* 列出指定目录下的图片 */ + "imageManagerActionName": "listimage", /* 执行图片管理的action名称 */ + "imageManagerListPath": "/ueditor/jsp/upload/image/", /* 指定要列出图片的目录 */ + "imageManagerListSize": 20, /* 每次列出文件数量 */ + "imageManagerUrlPrefix": "", /* 图片访问路径前缀 */ + "imageManagerInsertAlign": "none", /* 插入的图片浮动方式 */ + "imageManagerAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 列出的文件类型 */ + + /* 列出指定目录下的文件 */ + "fileManagerActionName": "listfile", /* 执行文件管理的action名称 */ + "fileManagerListPath": "/ueditor/jsp/upload/file/", /* 指定要列出文件的目录 */ + "fileManagerUrlPrefix": "", /* 文件访问路径前缀 */ + "fileManagerListSize": 20, /* 每次列出文件数量 */ + "fileManagerAllowFiles": [ + ".png", ".jpg", ".jpeg", ".gif", ".bmp", + ".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg", + ".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid", + ".rar", ".zip", ".tar", ".gz", ".7z", ".bz2", ".cab", ".iso", + ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", ".txt", ".md", ".xml" + ] /* 列出的文件类型 */ + +} \ No newline at end of file diff --git a/public/static/UEditor/jsp/controller.jsp b/public/static/UEditor/jsp/controller.jsp new file mode 100644 index 00000000..6a3ef2f1 --- /dev/null +++ b/public/static/UEditor/jsp/controller.jsp @@ -0,0 +1,14 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" + import="com.baidu.ueditor.ActionEnter" + pageEncoding="UTF-8"%> +<%@ page trimDirectiveWhitespaces="true" %> +<% + + request.setCharacterEncoding( "utf-8" ); + response.setHeader("Content-Type" , "text/html"); + + String rootPath = application.getRealPath( "/" ); + + out.write( new ActionEnter( request, rootPath ).exec() ); + +%> \ No newline at end of file diff --git a/public/static/UEditor/lang/zh-cn/images/copy.png b/public/static/UEditor/lang/zh-cn/images/copy.png new file mode 100644 index 0000000000000000000000000000000000000000..b2536aac72e763b9a872b507462458ecb96990f0 GIT binary patch literal 4319 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 N002ovPDHLkV1nv#UQ7T0 literal 0 HcmV?d00001 diff --git a/public/static/UEditor/lang/zh-cn/images/localimage.png b/public/static/UEditor/lang/zh-cn/images/localimage.png new file mode 100644 index 0000000000000000000000000000000000000000..7303c364318b6ac27dc4a8ae6717124d8dafaff9 GIT binary patch literal 6979 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 O0000字数超出最大允许值,服务器可能拒绝保存!', + 'ok':"确认", + 'cancel':"取消", + 'closeDialog':"关闭对话框", + 'tableDrag':"表格拖动必须引入uiUtils.js文件!", + 'autofloatMsg':"工具栏浮动依赖编辑器UI,您首先需要引入UI文件!", + 'loadconfigError': '获取后台配置项请求出错,上传功能将不能正常使用!', + 'loadconfigFormatError': '后台配置项返回格式出错,上传功能将不能正常使用!', + 'loadconfigHttpError': '请求后台配置项http错误,上传功能将不能正常使用!', + 'snapScreen_plugin':{ + 'browserMsg':"仅支持IE浏览器!", + 'callBackErrorMsg':"服务器返回数据有误,请检查配置项之后重试。", + 'uploadErrorMsg':"截图上传失败,请检查服务器端环境! " + }, + 'insertcode':{ + 'as3':'ActionScript 3', + 'bash':'Bash/Shell', + 'cpp':'C/C++', + 'css':'CSS', + 'cf':'ColdFusion', + 'c#':'C#', + 'delphi':'Delphi', + 'diff':'Diff', + 'erlang':'Erlang', + 'groovy':'Groovy', + 'html':'HTML', + 'java':'Java', + 'jfx':'JavaFX', + 'js':'JavaScript', + 'pl':'Perl', + 'php':'PHP', + 'plain':'Plain Text', + 'ps':'PowerShell', + 'python':'Python', + 'ruby':'Ruby', + 'scala':'Scala', + 'sql':'SQL', + 'vb':'Visual Basic', + 'xml':'XML' + }, + 'confirmClear':"确定清空当前文档么?", + 'contextMenu':{ + 'delete':"删除", + 'selectall':"全选", + 'deletecode':"删除代码", + 'cleardoc':"清空文档", + 'confirmclear':"确定清空当前文档么?", + 'unlink':"删除超链接", + 'paragraph':"段落格式", + 'edittable':"表格属性", + 'aligntd':"单元格对齐方式", + 'aligntable':'表格对齐方式', + 'tableleft':'左浮动', + 'tablecenter':'居中显示', + 'tableright':'右浮动', + 'edittd':"单元格属性", + 'setbordervisible':'设置表格边线可见', + 'justifyleft':'左对齐', + 'justifyright':'右对齐', + 'justifycenter':'居中对齐', + 'justifyjustify':'两端对齐', + 'table':"表格", + 'inserttable':'插入表格', + 'deletetable':"删除表格", + 'insertparagraphbefore':"前插入段落", + 'insertparagraphafter':'后插入段落', + 'deleterow':"删除当前行", + 'deletecol':"删除当前列", + 'insertrow':"前插入行", + 'insertcol':"左插入列", + 'insertrownext':'后插入行', + 'insertcolnext':'右插入列', + 'insertcaption':'插入表格名称', + 'deletecaption':'删除表格名称', + 'inserttitle':'插入表格标题行', + 'deletetitle':'删除表格标题行', + 'inserttitlecol':'插入表格标题列', + 'deletetitlecol':'删除表格标题列', + 'averageDiseRow':'平均分布各行', + 'averageDisCol':'平均分布各列', + 'mergeright':"向右合并", + 'mergeleft':"向左合并", + 'mergedown':"向下合并", + 'mergecells':"合并单元格", + 'splittocells':"完全拆分单元格", + 'splittocols':"拆分成列", + 'splittorows':"拆分成行", + 'tablesort':'表格排序', + 'enablesort':'设置表格可排序', + 'disablesort':'取消表格可排序', + 'reversecurrent':'逆序当前', + 'orderbyasc':'按ASCII字符升序', + 'reversebyasc':'按ASCII字符降序', + 'orderbynum':'按数值大小升序', + 'reversebynum':'按数值大小降序', + 'borderbk':'边框底纹', + 'setcolor':'表格隔行变色', + 'unsetcolor':'取消表格隔行变色', + 'setbackground':'选区背景隔行', + 'unsetbackground':'取消选区背景', + 'redandblue':'红蓝相间', + 'threecolorgradient':'三色渐变', + 'copy':"复制(Ctrl + c)", + 'copymsg': "浏览器不支持,请使用 'Ctrl + c'", + 'paste':"粘贴(Ctrl + v)", + 'pastemsg': "浏览器不支持,请使用 'Ctrl + v'" + }, + 'copymsg': "浏览器不支持,请使用 'Ctrl + c'", + 'pastemsg': "浏览器不支持,请使用 'Ctrl + v'", + 'anthorMsg':"链接", + 'clearColor':'清空颜色', + 'standardColor':'标准颜色', + 'themeColor':'主题颜色', + 'property':'属性', + 'default':'默认', + 'modify':'修改', + 'justifyleft':'左对齐', + 'justifyright':'右对齐', + 'justifycenter':'居中', + 'justify':'默认', + 'clear':'清除', + 'anchorMsg':'锚点', + 'delete':'删除', + 'clickToUpload':"点击上传", + 'unset':'尚未设置语言文件', + 't_row':'行', + 't_col':'列', + 'more':'更多', + 'pasteOpt':'粘贴选项', + 'pasteSourceFormat':"保留源格式", + 'tagFormat':'只保留标签', + 'pasteTextFormat':'只保留文本', + 'autoTypeSet':{ + 'mergeLine':"合并空行", + 'delLine':"清除空行", + 'removeFormat':"清除格式", + 'indent':"首行缩进", + 'alignment':"对齐方式", + 'imageFloat':"图片浮动", + 'removeFontsize':"清除字号", + 'removeFontFamily':"清除字体", + 'removeHtml':"清除冗余HTML代码", + 'pasteFilter':"粘贴过滤", + 'run':"执行", + 'symbol':'符号转换', + 'bdc2sb':'全角转半角', + 'tobdc':'半角转全角' + }, + + 'background':{ + 'static':{ + 'lang_background_normal':'背景设置', + 'lang_background_local':'在线图片', + 'lang_background_set':'选项', + 'lang_background_none':'无背景色', + 'lang_background_colored':'有背景色', + 'lang_background_color':'颜色设置', + 'lang_background_netimg':'网络图片', + 'lang_background_align':'对齐方式', + 'lang_background_position':'精确定位', + 'repeatType':{'options':["居中", "横向重复", "纵向重复", "平铺","自定义"]} + + }, + 'noUploadImage':"当前未上传过任何图片!", + 'toggleSelect':"单击可切换选中状态\n原图尺寸: " + }, + //===============dialog i18N======================= + 'insertimage':{ + 'static':{ + 'lang_tab_remote':"插入图片", //节点 + 'lang_tab_upload':"本地上传", + 'lang_tab_online':"在线管理", + 'lang_tab_search':"图片搜索", + 'lang_input_url':"地 址:", + 'lang_input_size':"大 小:", + 'lang_input_width':"宽度", + 'lang_input_height':"高度", + 'lang_input_border':"边 框:", + 'lang_input_vhspace':"边 距:", + 'lang_input_title':"描 述:", + 'lang_input_align':'图片浮动方式:', + 'lang_imgLoading':" 图片加载中……", + 'lang_start_upload':"开始上传", + 'lock':{'title':"锁定宽高比例"}, //属性 + 'searchType':{'title':"图片类型", 'options':["新闻", "壁纸", "表情", "头像"]}, //select的option + 'searchTxt':{'value':"请输入搜索关键词"}, + 'searchBtn':{'value':"百度一下"}, + 'searchReset':{'value':"清空搜索"}, + 'noneAlign':{'title':'无浮动'}, + 'leftAlign':{'title':'左浮动'}, + 'rightAlign':{'title':'右浮动'}, + 'centerAlign':{'title':'居中独占一行'} + }, + 'uploadSelectFile':'点击选择图片', + 'uploadAddFile':'继续添加', + 'uploadStart':'开始上传', + 'uploadPause':'暂停上传', + 'uploadContinue':'继续上传', + 'uploadRetry':'重试上传', + 'uploadDelete':'删除', + 'uploadTurnLeft':'向左旋转', + 'uploadTurnRight':'向右旋转', + 'uploadPreview':'预览中', + 'uploadNoPreview':'不能预览', + 'updateStatusReady': '选中_张图片,共_KB。', + 'updateStatusConfirm': '已成功上传_张照片,_张照片上传失败', + 'updateStatusFinish': '共_张(_KB),_张上传成功', + 'updateStatusError': ',_张上传失败。', + 'errorNotSupport': 'WebUploader 不支持您的浏览器!如果你使用的是IE浏览器,请尝试升级 flash 播放器。', + 'errorLoadConfig': '后端配置项没有正常加载,上传插件不能正常使用!', + 'errorExceedSize':'文件大小超出', + 'errorFileType':'文件格式不允许', + 'errorInterrupt':'文件传输中断', + 'errorUploadRetry':'上传失败,请重试', + 'errorHttp':'http请求错误', + 'errorServerUpload':'服务器返回出错', + 'remoteLockError':"宽高不正确,不能所定比例", + 'numError':"请输入正确的长度或者宽度值!例如:123,400", + 'imageUrlError':"不允许的图片格式或者图片域!", + 'imageLoadError':"图片加载失败!请检查链接地址或网络状态!", + 'searchRemind':"请输入搜索关键词", + 'searchLoading':"图片加载中,请稍后……", + 'searchRetry':" :( ,抱歉,没有找到图片!请重试一次!" + }, + 'attachment':{ + 'static':{ + 'lang_tab_upload': '上传附件', + 'lang_tab_online': '在线附件', + 'lang_start_upload':"开始上传", + 'lang_drop_remind':"可以将文件拖到这里,单次最多可选100个文件" + }, + 'uploadSelectFile':'点击选择文件', + 'uploadAddFile':'继续添加', + 'uploadStart':'开始上传', + 'uploadPause':'暂停上传', + 'uploadContinue':'继续上传', + 'uploadRetry':'重试上传', + 'uploadDelete':'删除', + 'uploadTurnLeft':'向左旋转', + 'uploadTurnRight':'向右旋转', + 'uploadPreview':'预览中', + 'updateStatusReady': '选中_个文件,共_KB。', + 'updateStatusConfirm': '已成功上传_个文件,_个文件上传失败', + 'updateStatusFinish': '共_个(_KB),_个上传成功', + 'updateStatusError': ',_张上传失败。', + 'errorNotSupport': 'WebUploader 不支持您的浏览器!如果你使用的是IE浏览器,请尝试升级 flash 播放器。', + 'errorLoadConfig': '后端配置项没有正常加载,上传插件不能正常使用!', + 'errorExceedSize':'文件大小超出', + 'errorFileType':'文件格式不允许', + 'errorInterrupt':'文件传输中断', + 'errorUploadRetry':'上传失败,请重试', + 'errorHttp':'http请求错误', + 'errorServerUpload':'服务器返回出错' + }, + 'insertvideo':{ + 'static':{ + 'lang_tab_insertV':"插入视频", + 'lang_tab_searchV':"搜索视频", + 'lang_tab_uploadV':"上传视频", + 'lang_video_url':"视频网址", + 'lang_video_size':"视频尺寸", + 'lang_videoW':"宽度", + 'lang_videoH':"高度", + 'lang_alignment':"对齐方式", + 'videoSearchTxt':{'value':"请输入搜索关键字!"}, + 'videoType':{'options':["全部", "热门", "娱乐", "搞笑", "体育", "科技", "综艺"]}, + 'videoSearchBtn':{'value':"百度一下"}, + 'videoSearchReset':{'value':"清空结果"}, + + 'lang_input_fileStatus':' 当前未上传文件', + 'startUpload':{'style':"background:url(upload.png) no-repeat;"}, + + 'lang_upload_size':"视频尺寸", + 'lang_upload_width':"宽度", + 'lang_upload_height':"高度", + 'lang_upload_alignment':"对齐方式", + 'lang_format_advice':"建议使用mp4格式." + + }, + 'numError':"请输入正确的数值,如123,400", + 'floatLeft':"左浮动", + 'floatRight':"右浮动", + '"default"':"默认", + 'block':"独占一行", + 'urlError':"输入的视频地址有误,请检查后再试!", + 'loading':"  视频加载中,请等待……", + 'clickToSelect':"点击选中", + 'goToSource':'访问源视频', + 'noVideo':"    抱歉,找不到对应的视频,请重试!", + + 'browseFiles':'浏览文件', + 'uploadSuccess':'上传成功!', + 'delSuccessFile':'从成功队列中移除', + 'delFailSaveFile':'移除保存失败文件', + 'statusPrompt':' 个文件已上传! ', + 'flashVersionError':'当前Flash版本过低,请更新FlashPlayer后重试!', + 'flashLoadingError':'Flash加载失败!请检查路径或网络状态', + 'fileUploadReady':'等待上传……', + 'delUploadQueue':'从上传队列中移除', + 'limitPrompt1':'单次不能选择超过', + 'limitPrompt2':'个文件!请重新选择!', + 'delFailFile':'移除失败文件', + 'fileSizeLimit':'文件大小超出限制!', + 'emptyFile':'空文件无法上传!', + 'fileTypeError':'文件类型不允许!', + 'unknownError':'未知错误!', + 'fileUploading':'上传中,请等待……', + 'cancelUpload':'取消上传', + 'netError':'网络错误', + 'failUpload':'上传失败!', + 'serverIOError':'服务器IO错误!', + 'noAuthority':'无权限!', + 'fileNumLimit':'上传个数限制', + 'failCheck':'验证失败,本次上传被跳过!', + 'fileCanceling':'取消中,请等待……', + 'stopUploading':'上传已停止……', + + 'uploadSelectFile':'点击选择文件', + 'uploadAddFile':'继续添加', + 'uploadStart':'开始上传', + 'uploadPause':'暂停上传', + 'uploadContinue':'继续上传', + 'uploadRetry':'重试上传', + 'uploadDelete':'删除', + 'uploadTurnLeft':'向左旋转', + 'uploadTurnRight':'向右旋转', + 'uploadPreview':'预览中', + 'updateStatusReady': '选中_个文件,共_KB。', + 'updateStatusConfirm': '成功上传_个,_个失败', + 'updateStatusFinish': '共_个(_KB),_个成功上传', + 'updateStatusError': ',_张上传失败。', + 'errorNotSupport': 'WebUploader 不支持您的浏览器!如果你使用的是IE浏览器,请尝试升级 flash 播放器。', + 'errorLoadConfig': '后端配置项没有正常加载,上传插件不能正常使用!', + 'errorExceedSize':'文件大小超出', + 'errorFileType':'文件格式不允许', + 'errorInterrupt':'文件传输中断', + 'errorUploadRetry':'上传失败,请重试', + 'errorHttp':'http请求错误', + 'errorServerUpload':'服务器返回出错' + }, + 'webapp':{ + 'tip1':"本功能由百度APP提供,如看到此页面,请各位站长首先申请百度APPKey!", + 'tip2':"申请完成之后请至ueditor.config.js中配置获得的appkey! ", + 'applyFor':"点此申请", + 'anthorApi':"百度API" + }, + 'template':{ + 'static':{ + 'lang_template_bkcolor':'背景颜色', + 'lang_template_clear' : '保留原有内容', + 'lang_template_select' : '选择模板' + }, + 'blank':"空白文档", + 'blog':"博客文章", + 'resume':"个人简历", + 'richText':"图文混排", + 'sciPapers':"科技论文" + + + }, + 'scrawl':{ + 'static':{ + 'lang_input_previousStep':"上一步", + 'lang_input_nextsStep':"下一步", + 'lang_input_clear':'清空', + 'lang_input_addPic':'添加背景', + 'lang_input_ScalePic':'缩放背景', + 'lang_input_removePic':'删除背景', + 'J_imgTxt':{title:'添加背景图片'} + }, + 'noScarwl':"尚未作画,白纸一张~", + 'scrawlUpLoading':"涂鸦上传中,别急哦~", + 'continueBtn':"继续", + 'imageError':"糟糕,图片读取失败了!", + 'backgroundUploading':'背景图片上传中,别急哦~' + }, + 'music':{ + 'static':{ + 'lang_input_tips':"输入歌手/歌曲/专辑,搜索您感兴趣的音乐!", + 'J_searchBtn':{value:'搜索歌曲'} + }, + 'emptyTxt':'未搜索到相关音乐结果,请换一个关键词试试。', + 'chapter':'歌曲', + 'singer':'歌手', + 'special':'专辑', + 'listenTest':'试听' + }, + 'anchor':{ + 'static':{ + 'lang_input_anchorName':'锚点名字:' + } + }, + 'charts':{ + 'static':{ + 'lang_data_source':'数据源:', + 'lang_chart_format': '图表格式:', + 'lang_data_align': '数据对齐方式', + 'lang_chart_align_same': '数据源与图表X轴Y轴一致', + 'lang_chart_align_reverse': '数据源与图表X轴Y轴相反', + 'lang_chart_title': '图表标题', + 'lang_chart_main_title': '主标题:', + 'lang_chart_sub_title': '子标题:', + 'lang_chart_x_title': 'X轴标题:', + 'lang_chart_y_title': 'Y轴标题:', + 'lang_chart_tip': '提示文字', + 'lang_cahrt_tip_prefix': '提示文字前缀:', + 'lang_cahrt_tip_description': '仅饼图有效, 当鼠标移动到饼图中相应的块上时,提示框内的文字的前缀', + 'lang_chart_data_unit': '数据单位', + 'lang_chart_data_unit_title': '单位:', + 'lang_chart_data_unit_description': '显示在每个数据点上的数据的单位, 比如: 温度的单位 ℃', + 'lang_chart_type': '图表类型:', + 'lang_prev_btn': '上一个', + 'lang_next_btn': '下一个' + } + }, + 'emotion':{ + 'static':{ + 'lang_input_choice':'精选', + 'lang_input_Tuzki':'兔斯基', + 'lang_input_BOBO':'BOBO', + 'lang_input_lvdouwa':'绿豆蛙', + 'lang_input_babyCat':'baby猫', + 'lang_input_bubble':'泡泡', + 'lang_input_youa':'有啊' + } + }, + 'gmap':{ + 'static':{ + 'lang_input_address':'地址', + 'lang_input_search':'搜索', + 'address':{value:"北京"} + }, + searchError:'无法定位到该地址!' + }, + 'help':{ + 'static':{ + 'lang_input_about':'关于UEditor', + 'lang_input_shortcuts':'快捷键', + 'lang_input_introduction':'UEditor是由百度web前端研发部开发的所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点。开源基于BSD协议,允许自由使用和修改代码。', + 'lang_Txt_shortcuts':'快捷键', + 'lang_Txt_func':'功能', + 'lang_Txt_bold':'给选中字设置为加粗', + 'lang_Txt_copy':'复制选中内容', + 'lang_Txt_cut':'剪切选中内容', + 'lang_Txt_Paste':'粘贴', + 'lang_Txt_undo':'重新执行上次操作', + 'lang_Txt_redo':'撤销上一次操作', + 'lang_Txt_italic':'给选中字设置为斜体', + 'lang_Txt_underline':'给选中字加下划线', + 'lang_Txt_selectAll':'全部选中', + 'lang_Txt_visualEnter':'软回车', + 'lang_Txt_fullscreen':'全屏' + } + }, + 'insertframe':{ + 'static':{ + 'lang_input_address':'地址:', + 'lang_input_width':'宽度:', + 'lang_input_height':'高度:', + 'lang_input_isScroll':'允许滚动条:', + 'lang_input_frameborder':'显示框架边框:', + 'lang_input_alignMode':'对齐方式:', + 'align':{title:"对齐方式", options:["默认", "左对齐", "右对齐", "居中"]} + }, + 'enterAddress':'请输入地址!' + }, + 'link':{ + 'static':{ + 'lang_input_text':'文本内容:', + 'lang_input_url':'链接地址:', + 'lang_input_title':'标题:', + 'lang_input_target':'是否在新窗口打开:' + }, + 'validLink':'只支持选中一个链接时生效', + 'httpPrompt':'您输入的超链接中不包含http等协议名称,默认将为您添加http://前缀' + }, + 'map':{ + 'static':{ + lang_city:"城市", + lang_address:"地址", + city:{value:"北京"}, + lang_search:"搜索", + lang_dynamicmap:"插入动态地图" + }, + cityMsg:"请选择城市", + errorMsg:"抱歉,找不到该位置!" + }, + 'searchreplace':{ + 'static':{ + lang_tab_search:"查找", + lang_tab_replace:"替换", + lang_search1:"查找", + lang_search2:"查找", + lang_replace:"替换", + lang_searchReg:'支持正则表达式,添加前后斜杠标示为正则表达式,例如“/表达式/”', + lang_searchReg1:'支持正则表达式,添加前后斜杠标示为正则表达式,例如“/表达式/”', + lang_case_sensitive1:"区分大小写", + lang_case_sensitive2:"区分大小写", + nextFindBtn:{value:"下一个"}, + preFindBtn:{value:"上一个"}, + nextReplaceBtn:{value:"下一个"}, + preReplaceBtn:{value:"上一个"}, + repalceBtn:{value:"替换"}, + repalceAllBtn:{value:"全部替换"} + }, + getEnd:"已经搜索到文章末尾!", + getStart:"已经搜索到文章头部", + countMsg:"总共替换了{#count}处!" + }, + 'snapscreen':{ + 'static':{ + lang_showMsg:"截图功能需要首先安装UEditor截图插件! ", + lang_download:"点此下载", + lang_step1:"第一步,下载UEditor截图插件并运行安装。", + lang_step2:"第二步,插件安装完成后即可使用,如不生效,请重启浏览器后再试!" + } + }, + 'spechars':{ + 'static':{}, + tsfh:"特殊字符", + lmsz:"罗马字符", + szfh:"数学字符", + rwfh:"日文字符", + xlzm:"希腊字母", + ewzm:"俄文字符", + pyzm:"拼音字母", + yyyb:"英语音标", + zyzf:"其他" + }, + 'edittable':{ + 'static':{ + 'lang_tableStyle':'表格样式', + 'lang_insertCaption':'添加表格名称行', + 'lang_insertTitle':'添加表格标题行', + 'lang_insertTitleCol':'添加表格标题列', + 'lang_orderbycontent':"使表格内容可排序", + 'lang_tableSize':'自动调整表格尺寸', + 'lang_autoSizeContent':'按表格文字自适应', + 'lang_autoSizePage':'按页面宽度自适应', + 'lang_example':'示例', + 'lang_borderStyle':'表格边框', + 'lang_color':'颜色:' + }, + captionName:'表格名称', + titleName:'标题', + cellsName:'内容', + errorMsg:'有合并单元格,不可排序' + }, + 'edittip':{ + 'static':{ + lang_delRow:'删除整行', + lang_delCol:'删除整列' + } + }, + 'edittd':{ + 'static':{ + lang_tdBkColor:'背景颜色:' + } + }, + 'formula':{ + 'static':{ + } + }, + 'wordimage':{ + 'static':{ + lang_resave:"转存步骤", + uploadBtn:{src:"upload.png",alt:"上传"}, + clipboard:{style:"background: url(copy.png) -153px -1px no-repeat;"}, + lang_step:"1、点击顶部复制按钮,将地址复制到剪贴板;2、点击添加照片按钮,在弹出的对话框中使用Ctrl+V粘贴地址;3、点击打开后选择图片上传流程。" + }, + 'fileType':"图片", + 'flashError':"FLASH初始化失败,请检查FLASH插件是否正确安装!", + 'netError':"网络连接错误,请重试!", + 'copySuccess':"图片地址已经复制!", + 'flashI18n':{} //留空默认中文 + }, + 'autosave': { + 'saving':'保存中...', + 'success':'本地保存成功' + } +}; diff --git a/public/static/UEditor/themes/default/css/ueditor.css b/public/static/UEditor/themes/default/css/ueditor.css new file mode 100644 index 00000000..44ae805a --- /dev/null +++ b/public/static/UEditor/themes/default/css/ueditor.css @@ -0,0 +1,1903 @@ +/*基础UI构建 +*/ +/* common layer */ +.edui-default .edui-box { + border: none; + padding: 0; + margin: 0; + overflow: hidden; +} + +.edui-default a.edui-box { + display: block; + text-decoration: none; + color: black; +} + +.edui-default a.edui-box:hover { + text-decoration: none; +} + +.edui-default a.edui-box:active { + text-decoration: none; +} + +.edui-default table.edui-box { + border-collapse: collapse; +} + +.edui-default ul.edui-box { + list-style-type: none; +} + +div.edui-box { + position: relative; + display: -moz-inline-box !important; + display: inline-block !important; + vertical-align: top; +} + +.edui-default .edui-clearfix { + zoom: 1 +} + +.edui-default .edui-clearfix:after { + content: '\20'; + display: block; + clear: both; +} + + * html div.edui-box { + display: inline !important; +} + +*:first-child+html div.edui-box { + display: inline !important; +} + +/* control layout */ +.edui-default .edui-button-body, .edui-splitbutton-body, .edui-menubutton-body, .edui-combox-body { + position: relative; +} + +.edui-default .edui-popup { + position: absolute; + -webkit-user-select: none; + -moz-user-select: none; +} + +.edui-default .edui-popup .edui-shadow { + position: absolute; + z-index: -1; +} + +.edui-default .edui-popup .edui-bordereraser { + position: absolute; + overflow: hidden; +} + +.edui-default .edui-tablepicker .edui-canvas { + position: relative; +} + +.edui-default .edui-tablepicker .edui-canvas .edui-overlay { + position: absolute; +} + +.edui-default .edui-dialog-modalmask, .edui-dialog-dragmask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; +} + +.edui-default .edui-toolbar { + position: relative; +} + +/* + * default theme + */ +.edui-default .edui-label { + cursor: default; +} + +.edui-default span.edui-clickable { + color: blue; + cursor: pointer; + text-decoration: underline; +} + +.edui-default span.edui-unclickable { + color: gray; + cursor: default; +} +/* 工具栏 */ +.edui-default .edui-toolbar { + cursor: default; + -webkit-user-select: none; + -moz-user-select: none; + padding: 1px; + overflow: hidden; /*全屏下单独一行不占位*/ + zoom: 1; + width:auto; + height:auto; +} + +.edui-default .edui-toolbar .edui-button, +.edui-default .edui-toolbar .edui-splitbutton, +.edui-default .edui-toolbar .edui-menubutton, +.edui-default .edui-toolbar .edui-combox { + margin: 1px; +} +/*UI工具栏、编辑区域、底部*/ +.edui-default .edui-editor { + border: 1px solid #d4d4d4; + background-color: white; + position: relative; + overflow: visible; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.edui-editor div{ + width:auto; + height:auto; +} +.edui-default .edui-editor-toolbarbox { + position: relative; + zoom: 1; + -webkit-box-shadow:0 1px 4px rgba(204, 204, 204, 0.6); + -moz-box-shadow:0 1px 4px rgba(204, 204, 204, 0.6); + box-shadow:0 1px 4px rgba(204, 204, 204, 0.6); + border-top-left-radius:2px; + border-top-right-radius:2px; +} + +.edui-default .edui-editor-toolbarboxouter { + border-bottom: 1px solid #d4d4d4; + background-color: #fafafa; + background-image: -moz-linear-gradient(top, #ffffff, #f2f2f2); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2)); + background-image: -webkit-linear-gradient(top, #ffffff, #f2f2f2); + background-image: -o-linear-gradient(top, #ffffff, #f2f2f2); + background-image: linear-gradient(to bottom, #ffffff, #f2f2f2); + background-repeat: repeat-x; + /*border: 1px solid #d4d4d4;*/ + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0); + *zoom: 1; + -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); + -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); +} + +.edui-default .edui-editor-toolbarboxinner { + padding: 2px; +} + +.edui-default .edui-editor-iframeholder { + position: relative; + /*for fix ie6 toolbarmsg under iframe bug. relative -> static */ + /*_position: static !important;* +} + +.edui-default .edui-editor-iframeholder textarea { + font-family: consolas, "Courier New", "lucida console", monospace; + font-size: 12px; + line-height: 18px; +} + +.edui-default .edui-editor-bottombar { + /*border-top: 1px solid #ccc;*/ + /*height: 20px;*/ + /*width: 40%;*/ + /*float: left;*/ + /*overflow: hidden;*/ +} + +.edui-default .edui-editor-bottomContainer { + overflow: hidden; +} + +.edui-default .edui-editor-bottomContainer table { + width: 100%; + height: 0; + overflow: hidden; + border-spacing: 0; +} + +.edui-default .edui-editor-bottomContainer td { + white-space: nowrap; + border-top: 1px solid #ccc; + line-height: 20px; + font-size: 12px; + font-family: Arial, Helvetica, Tahoma, Verdana, Sans-Serif; +} + +.edui-default .edui-editor-wordcount { + text-align: right; + margin-right: 5px; + color: #aaa; +} +.edui-default .edui-editor-scale { + width: 12px; +} +.edui-default .edui-editor-scale .edui-editor-icon { + float: right; + width: 100%; + height: 12px; + margin-top: 10px; + background: url(../images/scale.png) no-repeat; + cursor: se-resize; +} +.edui-default .edui-editor-breadcrumb { + margin: 2px 0 0 3px; +} + +.edui-default .edui-editor-breadcrumb span { + cursor: pointer; + text-decoration: underline; + color: blue; +} + +.edui-default .edui-toolbar .edui-for-fullscreen { + float: right; +} + +.edui-default .edui-bubble .edui-popup-content { + border: 1px solid #DCAC6C; + background-color: #fff6d9; + padding: 5px; + font-size: 10pt; + font-family: "宋体"; +} + +.edui-default .edui-bubble .edui-shadow { + /*box-shadow: 1px 1px 3px #818181;*/ + /*-webkit-box-shadow: 2px 2px 3px #818181;*/ + /*-moz-box-shadow: 2px 2px 3px #818181;*/ + /*filter: progid:DXImageTransform.Microsoft.Blur(PixelRadius = '2', MakeShadow = 'true', ShadowOpacity = '0.5');*/ +} + +.edui-default .edui-editor-toolbarmsg { + background-color: #FFF6D9; + border-bottom: 1px solid #ccc; + position: absolute; + bottom: -25px; + left: 0; + z-index: 1009; + width: 99.9%; +} + +.edui-default .edui-editor-toolbarmsg-upload { + font-size: 14px; + color: blue; + width: 100px; + height: 16px; + line-height: 16px; + cursor: pointer; + position: absolute; + top: 5px; + left: 350px; +} + +.edui-default .edui-editor-toolbarmsg-label { + font-size: 12px; + line-height: 16px; + padding: 4px; +} + +.edui-default .edui-editor-toolbarmsg-close { + float: right; + width: 20px; + height: 16px; + line-height: 16px; + cursor: pointer; + color: red; +} +/*可选中菜单按钮*/ +.edui-default .edui-list .edui-bordereraser { + display: none; +} + +.edui-default .edui-listitem { + padding: 1px; + white-space: nowrap; +} + +.edui-default .edui-list .edui-state-hover { + position: relative; + background-color: #fff5d4; + border: 1px solid #dcac6c; + padding: 0; +} + +.edui-default .edui-for-fontfamily .edui-listitem-label { + min-width: 130px; + _width: 120px; + font-size: 12px; + height: 22px; + line-height: 22px; + padding-left: 5px; +} +.edui-default .edui-for-insertcode .edui-listitem-label { + min-width: 120px; + _width: 120px; + font-size: 12px; + height: 22px; + line-height: 22px; + padding-left: 5px; +} +.edui-default .edui-for-underline .edui-listitem-label { + min-width: 120px; + _width: 120px; + padding: 3px 5px; + font-size: 12px; +} + +.edui-default .edui-for-fontsize .edui-listitem-label { + min-width: 120px; + _width: 120px; + padding: 3px 5px; + +} + +.edui-default .edui-for-paragraph .edui-listitem-label { + min-width: 200px; + _width: 200px; + padding: 2px 5px; +} + +.edui-default .edui-for-rowspacingtop .edui-listitem-label, +.edui-default .edui-for-rowspacingbottom .edui-listitem-label { + min-width: 53px; + _width: 53px; + padding: 2px 5px; +} + +.edui-default .edui-for-lineheight .edui-listitem-label { + min-width: 53px; + _width: 53px; + padding: 2px 5px; +} + +.edui-default .edui-for-customstyle .edui-listitem-label { + min-width: 200px; + _width: 200px; + width: 200px !important; + padding: 2px 5px; +} +/* 可选中按钮弹出菜单*/ +.edui-default .edui-menu { + z-index: 3000; +} + +.edui-default .edui-menu .edui-popup-content { + padding: 3px; +} + +.edui-default .edui-menu-body { + _width: 150px; + min-width: 170px; + background: url("../images/sparator_v.png") repeat-y 25px; +} + +.edui-default .edui-menuitem-body { +} + +.edui-default .edui-menuitem { + height: 20px; + cursor: default; + vertical-align: top; +} + +.edui-default .edui-menuitem .edui-icon { + width: 20px !important; + height: 20px !important; + background: url(../images/icons.png) 0 -4000px; + background: url(../images/icons.gif) 0 -4000px\9; +} + +.edui-default .edui-menuitem .edui-label { + font-size: 12px; + line-height: 20px; + height: 20px; + padding-left: 10px; +} + +.edui-default .edui-state-checked .edui-menuitem-body { + background: url("../images/icons-all.gif") no-repeat 6px -205px; +} + +.edui-default .edui-state-disabled .edui-menuitem-label { + color: gray; +} + + +/*不可选中菜单按钮 */ +.edui-default .edui-toolbar .edui-combox-body .edui-button-body { + width: 60px; + font-size: 12px; + height: 20px; + line-height: 20px; + padding-left: 5px; + white-space: nowrap; + margin: 0 3px 0 0; +} + +.edui-default .edui-toolbar .edui-combox-body .edui-arrow { + background: url(../images/icons.png) -741px 0; + _background: url(../images/icons.gif) -741px 0; + height: 20px; + width: 9px; +} + +.edui-default .edui-toolbar .edui-combox .edui-combox-body { + border: 1px solid #CCC; + background-color: white; + border-radius: 2px; + -webkit-border-radius: 2px; + -moz-border-radius: 2px; +} + +.edui-default .edui-toolbar .edui-combox-body .edui-splitborder { + display: none; +} + +.edui-default .edui-toolbar .edui-combox-body .edui-arrow { + border-left: 1px solid #CCC; +} + +.edui-default .edui-toolbar .edui-state-hover .edui-combox-body { + background-color: #fff5d4; + border: 1px solid #dcac6c; +} + +.edui-default .edui-toolbar .edui-state-hover .edui-combox-body .edui-arrow { + border-left: 1px solid #dcac6c; +} + +.edui-default .edui-toolbar .edui-state-checked .edui-combox-body { + background-color: #FFE69F; + border: 1px solid #DCAC6C; +} + +.edui-toolbar .edui-state-checked .edui-combox-body .edui-arrow { + border-left: 1px solid #DCAC6C; +} + +.edui-toolbar .edui-state-disabled .edui-combox-body { + background-color: #F0F0EE; + opacity: 0.3; + filter: alpha(opacity = 30); +} + +.edui-toolbar .edui-state-opened .edui-combox-body { + background-color: white; + border: 1px solid gray; +} +/*普通按钮样式及状态*/ +.edui-default .edui-toolbar .edui-button .edui-icon, +.edui-default .edui-toolbar .edui-menubutton .edui-icon, +.edui-default .edui-toolbar .edui-splitbutton .edui-icon { + height: 20px !important; + width: 20px !important; + background-image: url(../images/icons.png); + background-image: url(../images/icons.gif) \9; +} + +.edui-default .edui-toolbar .edui-button .edui-button-wrap { + padding: 1px; + position: relative; +} + +.edui-default .edui-toolbar .edui-button .edui-state-hover .edui-button-wrap { + background-color: #fff5d4; + padding: 0; + border: 1px solid #dcac6c; +} + +.edui-default .edui-toolbar .edui-button .edui-state-checked .edui-button-wrap { + background-color: #ffe69f; + padding: 0; + border: 1px solid #dcac6c; + border-radius: 2px; + -webkit-border-radius: 2px; + -moz-border-radius: 2px; +} + +.edui-default .edui-toolbar .edui-button .edui-state-active .edui-button-wrap { + background-color: #ffffff; + padding: 0; + border: 1px solid gray; +} +.edui-default .edui-toolbar .edui-state-disabled .edui-label { + color: #ccc; +} +.edui-default .edui-toolbar .edui-state-disabled .edui-icon { + opacity: 0.3; + filter: alpha(opacity = 30); +} + +/* toolbar icons */ +.edui-default .edui-for-undo .edui-icon { + background-position: -160px 0; +} + +.edui-default .edui-for-redo .edui-icon { + background-position: -100px 0; +} + +.edui-default .edui-for-bold .edui-icon { + background-position: 0 0; +} + +.edui-default .edui-for-italic .edui-icon { + background-position: -60px 0; +} + +.edui-default .edui-for-fontborder .edui-icon { + background-position:-160px -40px; +} +.edui-default .edui-for-underline .edui-icon { + background-position: -140px 0; +} + +.edui-default .edui-for-strikethrough .edui-icon { + background-position: -120px 0; +} + +.edui-default .edui-for-subscript .edui-icon { + background-position: -600px 0; +} + +.edui-default .edui-for-superscript .edui-icon { + background-position: -620px 0; +} + +.edui-default .edui-for-blockquote .edui-icon { + background-position: -220px 0; +} + +.edui-default .edui-for-forecolor .edui-icon { + background-position: -720px 0; +} + +.edui-default .edui-for-backcolor .edui-icon { + background-position: -760px 0; +} + +.edui-default .edui-for-inserttable .edui-icon { + background-position: -580px -20px; +} + +.edui-default .edui-for-autotypeset .edui-icon { + background-position: -640px -40px; +} + +.edui-default .edui-for-justifyleft .edui-icon { + background-position: -460px 0; +} + +.edui-default .edui-for-justifycenter .edui-icon { + background-position: -420px 0; +} + +.edui-default .edui-for-justifyright .edui-icon { + background-position: -480px 0; +} + +.edui-default .edui-for-justifyjustify .edui-icon { + background-position: -440px 0; +} + +.edui-default .edui-for-insertorderedlist .edui-icon { + background-position: -80px 0; +} + +.edui-default .edui-for-insertunorderedlist .edui-icon { + background-position: -20px 0; +} + +.edui-default .edui-for-lineheight .edui-icon { + background-position: -725px -40px; +} + +.edui-default .edui-for-rowspacingbottom .edui-icon { + background-position: -745px -40px; +} + +.edui-default .edui-for-rowspacingtop .edui-icon { + background-position: -765px -40px; +} + +.edui-default .edui-for-horizontal .edui-icon { + background-position: -360px 0; +} + +.edui-default .edui-for-link .edui-icon { + background-position: -500px 0; +} + +.edui-default .edui-for-code .edui-icon { + background-position: -440px -40px; +} + +.edui-default .edui-for-insertimage .edui-icon { + background-position: -726px -77px; +} + +.edui-default .edui-for-insertframe .edui-icon { + background-position: -240px -40px; +} + +.edui-default .edui-for-emoticon .edui-icon { + background-position: -60px -20px; +} + +.edui-default .edui-for-spechars .edui-icon { + background-position: -240px 0; +} + +.edui-default .edui-for-help .edui-icon { + background-position: -340px 0; +} + +.edui-default .edui-for-print .edui-icon { + background-position: -440px -20px; +} + +.edui-default .edui-for-preview .edui-icon { + background-position: -420px -20px; +} + +.edui-default .edui-for-selectall .edui-icon { + background-position: -400px -20px; +} + +.edui-default .edui-for-searchreplace .edui-icon { + background-position: -520px -20px; +} + +.edui-default .edui-for-map .edui-icon { + background-position: -40px -40px; +} + +.edui-default .edui-for-gmap .edui-icon { + background-position: -260px -40px; +} + +.edui-default .edui-for-insertvideo .edui-icon { + background-position: -320px -20px; +} + +.edui-default .edui-for-time .edui-icon { + background-position: -160px -20px; +} + +.edui-default .edui-for-date .edui-icon { + background-position: -140px -20px; +} + +.edui-default .edui-for-cut .edui-icon { + background-position: -680px 0; +} + +.edui-default .edui-for-copy .edui-icon { + background-position: -700px 0; +} + +.edui-default .edui-for-paste .edui-icon { + background-position: -560px 0; +} + +.edui-default .edui-for-formatmatch .edui-icon { + background-position: -40px 0; +} + +.edui-default .edui-for-pasteplain .edui-icon { + background-position: -360px -20px; +} + +.edui-default .edui-for-directionalityltr .edui-icon { + background-position: -20px -20px; +} + +.edui-default .edui-for-directionalityrtl .edui-icon { + background-position: -40px -20px; +} + +.edui-default .edui-for-source .edui-icon { + background-position: -261px -0px; +} + +.edui-default .edui-for-removeformat .edui-icon { + background-position: -580px 0; +} + +.edui-default .edui-for-unlink .edui-icon { + background-position: -640px 0; +} + +.edui-default .edui-for-touppercase .edui-icon { + background-position: -786px 0; +} + +.edui-default .edui-for-tolowercase .edui-icon { + background-position: -806px 0; +} + +.edui-default .edui-for-insertrow .edui-icon { + background-position: -478px -76px; +} + +.edui-default .edui-for-insertrownext .edui-icon { + background-position: -498px -76px; +} + +.edui-default .edui-for-insertcol .edui-icon { + background-position: -455px -76px; +} + +.edui-default .edui-for-insertcolnext .edui-icon { + background-position: -429px -76px; +} + +.edui-default .edui-for-mergeright .edui-icon { + background-position: -60px -40px; +} + +.edui-default .edui-for-mergedown .edui-icon { + background-position: -80px -40px; +} + +.edui-default .edui-for-splittorows .edui-icon { + background-position: -100px -40px; +} + +.edui-default .edui-for-splittocols .edui-icon { + background-position: -120px -40px; +} + +.edui-default .edui-for-insertparagraphbeforetable .edui-icon { + background-position: -140px -40px; +} + +.edui-default .edui-for-deleterow .edui-icon { + background-position: -660px -20px; +} + +.edui-default .edui-for-deletecol .edui-icon { + background-position: -640px -20px; +} + +.edui-default .edui-for-splittocells .edui-icon { + background-position: -800px -20px; +} + +.edui-default .edui-for-mergecells .edui-icon { + background-position: -760px -20px; +} + +.edui-default .edui-for-deletetable .edui-icon { + background-position: -620px -20px; +} + +.edui-default .edui-for-cleardoc .edui-icon { + background-position: -520px 0; +} + +.edui-default .edui-for-fullscreen .edui-icon { + background-position: -100px -20px; +} + +.edui-default .edui-for-anchor .edui-icon { + background-position: -200px 0; +} + +.edui-default .edui-for-pagebreak .edui-icon { + background-position: -460px -40px; +} + +.edui-default .edui-for-imagenone .edui-icon { + background-position: -480px -40px; +} + +.edui-default .edui-for-imageleft .edui-icon { + background-position: -500px -40px; +} + +.edui-default .edui-for-wordimage .edui-icon { + background-position: -660px -40px; +} + +.edui-default .edui-for-imageright .edui-icon { + background-position: -520px -40px; +} + +.edui-default .edui-for-imagecenter .edui-icon { + background-position: -540px -40px; +} + +.edui-default .edui-for-indent .edui-icon { + background-position: -400px 0; +} + +.edui-default .edui-for-outdent .edui-icon { + background-position: -540px 0; +} + +.edui-default .edui-for-webapp .edui-icon { + background-position: -601px -40px +} + +.edui-default .edui-for-table .edui-icon { + background-position: -580px -20px; +} + +.edui-default .edui-for-edittable .edui-icon { + background-position: -420px -40px; +} + +.edui-default .edui-for-template .edui-icon { + background-position: -339px -40px; +} + +.edui-default .edui-for-delete .edui-icon { + background-position: -360px -40px; +} + +.edui-default .edui-for-attachment .edui-icon { + background-position: -620px -40px; +} + +.edui-default .edui-for-edittd .edui-icon { + background-position: -700px -40px; +} + +.edui-default .edui-for-snapscreen .edui-icon { + background-position: -581px -40px +} + +.edui-default .edui-for-scrawl .edui-icon { + background-position: -801px -41px +} + +.edui-default .edui-for-background .edui-icon { + background-position: -680px -40px; +} + +.edui-default .edui-for-music .edui-icon { + background-position: -18px -40px +} + +.edui-default .edui-for-formula .edui-icon { + background-position: -200px -40px +} + +.edui-default .edui-for-aligntd .edui-icon { + background-position: -236px -76px; +} + +.edui-default .edui-for-insertparagraphtrue .edui-icon { + background-position: -625px -76px; +} + +.edui-default .edui-for-insertparagraph .edui-icon { + background-position: -602px -76px; +} + +.edui-default .edui-for-insertcaption .edui-icon { + background-position: -336px -76px; +} + +.edui-default .edui-for-deletecaption .edui-icon { + background-position: -362px -76px; +} + +.edui-default .edui-for-inserttitle .edui-icon { + background-position: -286px -76px; +} + +.edui-default .edui-for-deletetitle .edui-icon { + background-position: -311px -76px; +} + +.edui-default .edui-for-aligntable .edui-icon { + background-position: -440px 0; +} + +.edui-default .edui-for-tablealignment-left .edui-icon { + background-position: -460px 0; +} + +.edui-default .edui-for-tablealignment-center .edui-icon { + background-position: -420px 0; +} + +.edui-default .edui-for-tablealignment-right .edui-icon { + background-position: -480px 0; +} + +.edui-default .edui-for-drafts .edui-icon { + background-position: -560px 0; +} + +.edui-default .edui-for-charts .edui-icon { + background: url( ../images/charts.png ) no-repeat 2px 3px!important; +} + +.edui-default .edui-for-inserttitlecol .edui-icon { + background-position: -673px -76px; +} + +.edui-default .edui-for-deletetitlecol .edui-icon { + background-position: -698px -76px; +} + +.edui-default .edui-for-simpleupload .edui-icon { + background-position: -380px 0px; +} +/*splitbutton*/ +.edui-default .edui-toolbar .edui-splitbutton-body .edui-arrow, +.edui-default .edui-toolbar .edui-menubutton-body .edui-arrow { + background: url(../images/icons.png) -741px 0; + _background: url(../images/icons.gif) -741px 0; + height: 20px; + width: 9px; +} + +.edui-default .edui-toolbar .edui-splitbutton .edui-splitbutton-body, +.edui-default .edui-toolbar .edui-menubutton .edui-menubutton-body { + padding: 1px; +} + +.edui-default .edui-toolbar .edui-splitborder { + width: 1px; + height: 20px; +} + +.edui-default .edui-toolbar .edui-state-hover .edui-splitborder { + width: 1px; + border-left: 0px solid #dcac6c; +} + +.edui-default .edui-toolbar .edui-state-active .edui-splitborder { + width: 0; + border-left: 1px solid gray; +} + +.edui-default .edui-toolbar .edui-state-opened .edui-splitborder { + width: 1px; + border: 0; +} + +.edui-default .edui-toolbar .edui-splitbutton .edui-state-hover .edui-splitbutton-body, +.edui-default .edui-toolbar .edui-menubutton .edui-state-hover .edui-menubutton-body { + background-color: #fff5d4; + border: 1px solid #dcac6c; + padding: 0; +} + +.edui-default .edui-toolbar .edui-splitbutton .edui-state-checked .edui-splitbutton-body, +.edui-default .edui-toolbar .edui-menubutton .edui-state-checked .edui-menubutton-body { + background-color: #FFE69F; + border: 1px solid #DCAC6C; + padding: 0; +} + +.edui-default .edui-toolbar .edui-splitbutton .edui-state-active .edui-splitbutton-body, +.edui-default .edui-toolbar .edui-menubutton .edui-state-active .edui-menubutton-body { + background-color: #ffffff; + border: 1px solid gray; + padding: 0; +} + +.edui-default .edui-state-disabled .edui-arrow { + opacity: 0.3; + _filter: alpha(opacity = 30); +} + +.edui-default .edui-toolbar .edui-splitbutton .edui-state-opened .edui-splitbutton-body, +.edui-default .edui-toolbar .edui-menubutton .edui-state-opened .edui-menubutton-body { + background-color: white; + border: 1px solid gray; + padding: 0; +} + +.edui-default .edui-for-insertorderedlist .edui-bordereraser, +.edui-default .edui-for-lineheight .edui-bordereraser, +.edui-default .edui-for-rowspacingtop .edui-bordereraser, +.edui-default .edui-for-rowspacingbottom .edui-bordereraser, +.edui-default .edui-for-insertunorderedlist .edui-bordereraser { + background-color: white; +} + +/* 解决嵌套导致的图标问题 */ +.edui-default .edui-for-insertorderedlist .edui-popup-body .edui-icon, +.edui-default .edui-for-lineheight .edui-popup-body .edui-icon, +.edui-default .edui-for-rowspacingtop .edui-popup-body .edui-icon, +.edui-default .edui-for-rowspacingbottom .edui-popup-body .edui-icon, +.edui-default .edui-for-insertunorderedlist .edui-popup-body .edui-icon { + /*background-position: 0 -40px;*/ + background-image: none ; +} + +/* 弹出菜单 */ +.edui-default .edui-popup { + z-index: 3000; + background-color: #ffffff; + width:auto; + height:auto; + +} + +.edui-default .edui-popup .edui-shadow { + left: 0; + top: 0; + width: 100%; + height: 100%; +} + +.edui-default .edui-popup-content { + border:1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + *border-right-width: 2px; + *border-bottom-width: 2px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 3px 4px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 3px 4px rgba(0, 0, 0, 0.2); + box-shadow: 0 3px 4px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; + padding: 5px; + background:#ffffff; +} + +.edui-default .edui-popup .edui-bordereraser { + background-color: white; + height: 3px; +} + +.edui-default .edui-menu .edui-bordereraser { + height: 3px; +} + +.edui-default .edui-anchor-topleft .edui-bordereraser { + left: 1px; + top: -2px; +} + +.edui-default .edui-anchor-topright .edui-bordereraser { + right: 1px; + top: -2px; +} + +.edui-default .edui-anchor-bottomleft .edui-bordereraser { + left: 0; + bottom: -6px; + height: 7px; + border-left: 1px solid gray; + border-right: 1px solid gray; +} + +.edui-default .edui-anchor-bottomright .edui-bordereraser { + right: 0; + bottom: -6px; + height: 7px; + border-left: 1px solid gray; + border-right: 1px solid gray; +} + +.edui-popup div{ + width:auto; + height:auto; +} +.edui-default .edui-editor-messageholder { + display: block; + width: 150px; + height: auto; + border: 0; + margin: 0; + padding: 0; + position: absolute; + top: 28px; + right: 3px; +} + +.edui-default .edui-message{ + min-height: 10px; + text-shadow: 0 1px 0 rgba(255,255,255,0.5); + padding: 0; + margin-bottom: 3px; + position: relative; +} +.edui-default .edui-message-body{ + border-radius: 3px; + padding: 8px 15px 8px 8px; + color: #c09853; + background-color: #fcf8e3; + border: 1px solid #fbeed5; +} +.edui-default .edui-message-type-info{ + color: #3a87ad; + background-color: #d9edf7; + border-color: #bce8f1 +} +.edui-default .edui-message-type-success{ + color: #468847; + background-color: #dff0d8; + border-color: #d6e9c6 +} +.edui-default .edui-message-type-danger, +.edui-default .edui-message-type-error{ + color: #b94a48; + background-color: #f2dede; + border-color: #eed3d7 +} +.edui-default .edui-message .edui-message-closer { + display: block; + width: 16px; + height: 16px; + line-height: 16px; + position: absolute; + top: 0; + right: 0; + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + float: right; + font-size: 20px; + font-weight: bold; + color: #999; + text-shadow: 0 1px 0 #fff; + font-family: "Helvetica Neue",Helvetica,Arial,sans-serif; +} +.edui-default .edui-message .edui-message-content { + font-size: 10pt; + word-wrap: break-word; + word-break: normal; +} +/* 弹出对话框按钮和对话框大小 */ +.edui-default .edui-dialog { + z-index: 2000; + position: absolute; + +} + +.edui-dialog div{ + width:auto; +} + +.edui-default .edui-dialog-wrap { + margin-right: 6px; + margin-bottom: 6px; +} + +.edui-default .edui-dialog-fullscreen-flag { + margin-right: 0; + margin-bottom: 0; +} + +.edui-default .edui-dialog-body { + position: relative; + padding:2px 0 0 2px; + _zoom: 1; +} + +.edui-default .edui-dialog-fullscreen-flag .edui-dialog-body { + padding: 0; +} + +.edui-default .edui-dialog-shadow { + position: absolute; + z-index: -1; + left: 0; + top: 0; + width: 100%; + height: 100%; + background-color: #ffffff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + *border-right-width: 2px; + *border-bottom-width: 2px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; +} + +.edui-default .edui-dialog-foot { + background-color: white; +} + +.edui-default .edui-dialog-titlebar { + height: 26px; + border-bottom: 1px solid #c6c6c6; + background: url(../images/dialog-title-bg.png) repeat-x bottom; + position: relative; + cursor: move; +} +.edui-default .edui-dialog-caption { + font-weight: bold; + font-size: 12px; + line-height: 26px; + padding-left: 5px; +} + +.edui-default .edui-dialog-draghandle { + height: 26px; +} + +.edui-default .edui-dialog-closebutton { + position: absolute !important; + right: 5px; + top: 3px; +} + +.edui-default .edui-dialog-closebutton .edui-button-body { + height: 20px; + width: 20px; + cursor: pointer; + background: url("../images/icons-all.gif") no-repeat 0 -59px; +} + +.edui-default .edui-dialog-closebutton .edui-state-hover .edui-button-body { + background: url("../images/icons-all.gif") no-repeat 0 -89px; +} + +.edui-default .edui-dialog-foot { + height: 40px; +} + +.edui-default .edui-dialog-buttons { + position: absolute; + right: 0; +} + +.edui-default .edui-dialog-buttons .edui-button { + margin-right: 10px; +} + +.edui-default .edui-dialog-buttons .edui-button .edui-button-body { + background: url("../images/icons-all.gif") no-repeat; + height: 24px; + width: 96px; + font-size: 12px; + line-height: 24px; + text-align: center; + cursor: default; +} + +.edui-default .edui-dialog-buttons .edui-button .edui-state-hover .edui-button-body { + background: url("../images/icons-all.gif") no-repeat 0 -30px; +} + +.edui-default .edui-dialog iframe { + border: 0; + padding: 0; + margin: 0; + vertical-align: top; +} + +.edui-default .edui-dialog-modalmask { + opacity: 0.3; + filter: alpha(opacity = 30); + background-color: #ccc; + position: absolute; + /*z-index: 1999;*/ +} + +.edui-default .edui-dialog-dragmask { + position: absolute; + /*z-index: 2001;*/ + background-color: transparent; + cursor: move; +} + +.edui-default .edui-dialog-content { + position: relative; +} + +.edui-default .dialogcontmask { + cursor: move; + visibility: hidden; + display: block; + position: absolute; + width: 100%; + height: 100%; + opacity: 0; + filter: alpha(opacity = 0); +} + +/*link-dialog*/ +.edui-default .edui-for-link .edui-dialog-content { + width: 420px; + height: 200px; + overflow: hidden; +} +/*background-dialog*/ +.edui-default .edui-for-background .edui-dialog-content { + width: 440px; + height: 280px; + overflow: hidden; +} + +/*template-dialog*/ +.edui-default .edui-for-template .edui-dialog-content { + width: 630px; + height: 390px; + overflow: hidden; +} + +/*scrawl-dialog*/ +.edui-default .edui-for-scrawl .edui-dialog-content { + width: 515px; + *width: 506px; + height: 360px; +} + +/*spechars-dialog*/ +.edui-default .edui-for-spechars .edui-dialog-content { + width: 620px; + height: 500px; + *width: 630px; + *height: 570px; +} + +/*image-dialog*/ +.edui-default .edui-for-insertimage .edui-dialog-content { + width: 650px; + height: 400px; + overflow: hidden; +} +/*webapp-dialog*/ +.edui-default .edui-for-webapp .edui-dialog-content { + width: 560px; + _width: 565px; + height: 450px; + overflow: hidden; +} + +/*image-insertframe*/ +.edui-default .edui-for-insertframe .edui-dialog-content { + width: 350px; + height: 200px; + overflow: hidden; +} + +/*wordImage-dialog*/ +.edui-default .edui-for-wordimage .edui-dialog-content { + width: 620px; + height: 380px; + overflow: hidden; +} + +/*attachment-dialog*/ +.edui-default .edui-for-attachment .edui-dialog-content { + width: 650px; + height: 400px; + overflow: hidden; +} + + +/*map-dialog*/ +.edui-default .edui-for-map .edui-dialog-content { + width: 550px; + height: 400px; +} + +/*gmap-dialog*/ +.edui-default .edui-for-gmap .edui-dialog-content { + width: 550px; + height: 400px; +} + +/*video-dialog*/ +.edui-default .edui-for-insertvideo .edui-dialog-content { + width: 590px; + height: 390px; +} + +/*anchor-dialog*/ +.edui-default .edui-for-anchor .edui-dialog-content { + width: 320px; + height: 60px; + overflow: hidden; +} + +/*searchreplace-dialog*/ +.edui-default .edui-for-searchreplace .edui-dialog-content { + width: 400px; + height: 220px; +} + +/*help-dialog*/ +.edui-default .edui-for-help .edui-dialog-content { + width: 400px; + height: 420px; +} + +/*edittable-dialog*/ +.edui-default .edui-for-edittable .edui-dialog-content { + width: 540px; + _width:590px; + height: 335px; +} + +/*edittip-dialog*/ +.edui-default .edui-for-edittip .edui-dialog-content { + width: 225px; + height: 60px; +} + +/*edittd-dialog*/ +.edui-default .edui-for-edittd .edui-dialog-content { + width: 240px; + height: 50px; +} +/*snapscreen-dialog*/ +.edui-default .edui-for-snapscreen .edui-dialog-content { + width: 400px; + height: 220px; +} + +/*music-dialog*/ +.edui-default .edui-for-music .edui-dialog-content { + width: 515px; + height: 360px; +} + +/*段落弹出菜单*/ +.edui-default .edui-for-paragraph .edui-listitem-label { + font-family: Tahoma, Verdana, Arial, Helvetica; +} + +.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-p { + font-size: 22px; + line-height: 27px; +} + +.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h1 { + font-weight: bolder; + font-size: 32px; + line-height: 36px; +} + +.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h2 { + font-weight: bolder; + font-size: 27px; + line-height: 29px; +} + +.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h3 { + font-weight: bolder; + font-size: 19px; + line-height: 23px; +} + +.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h4 { + font-weight: bolder; + font-size: 16px; + line-height: 19px +} + +.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h5 { + font-weight: bolder; + font-size: 13px; + line-height: 16px; +} + +.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h6 { + font-weight: bolder; + font-size: 12px; + line-height: 14px; +} +/* 表格弹出菜单 */ +.edui-default .edui-for-inserttable .edui-splitborder { + display: none +} +.edui-default .edui-for-inserttable .edui-splitbutton-body .edui-arrow { + width: 0 +} +.edui-default .edui-toolbar .edui-for-inserttable .edui-state-active .edui-splitborder{ + border-left: 1px solid transparent; +} +.edui-default .edui-tablepicker .edui-infoarea { + height: 14px; + line-height: 14px; + font-size: 12px; + width: 220px; + margin-bottom: 3px; + clear: both; +} + +.edui-default .edui-tablepicker .edui-infoarea .edui-label { + float: left; +} + +.edui-default .edui-dialog-buttons .edui-label { + line-height: 24px; +} + +.edui-default .edui-tablepicker .edui-infoarea .edui-clickable { + float: right; +} + +.edui-default .edui-tablepicker .edui-pickarea { + background: url("../images/unhighlighted.gif") repeat; + height: 220px; + width: 220px; +} + +.edui-default .edui-tablepicker .edui-pickarea .edui-overlay { + background: url("../images/highlighted.gif") repeat; +} + +/* 颜色弹出菜单 */ +.edui-default .edui-colorpicker-topbar { + height: 27px; + width: 200px; + /*border-bottom: 1px gray dashed;*/ +} + +.edui-default .edui-colorpicker-preview { + height: 20px; + border: 1px inset black; + margin-left: 1px; + width: 128px; + float: left; +} + +.edui-default .edui-colorpicker-nocolor { + float: right; + margin-right: 1px; + font-size: 12px; + line-height: 14px; + height: 14px; + border: 1px solid #333; + padding: 3px 5px; + cursor: pointer; +} + +.edui-default .edui-colorpicker-tablefirstrow { + height: 30px; +} + +.edui-default .edui-colorpicker-colorcell { + width: 14px; + height: 14px; + display: block; + margin: 0; + cursor: pointer; +} + +.edui-default .edui-colorpicker-colorcell:hover { + width: 14px; + height: 14px; + margin: 0; +} +.edui-default .edui-colorpicker-advbtn{ + display: block; + text-align: center; + cursor: pointer; + height:20px; +} +.arrow_down{ + background: white url('../images/arrow_down.png') no-repeat center; +} +.arrow_up{ + background: white url('../images/arrow_up.png') no-repeat center; +} +/*高级的样式*/ +.edui-colorpicker-adv{ + position: relative; + overflow: hidden; + height: 180px; + display: none; +} +.edui-colorpicker-plant, .edui-colorpicker-hue { + border: solid 1px #666; +} +.edui-colorpicker-pad { + width: 150px; + height: 150px; + left: 14px; + top: 13px; + position: absolute; + background: red; + overflow: hidden; + cursor: crosshair; +} +.edui-colorpicker-cover{ + position: absolute; + top: 0; + left: 0; + width: 150px; + height: 150px; + background: url("../images/tangram-colorpicker.png") -160px -200px; +} +.edui-colorpicker-padDot{ + position: absolute; + top: 0; + left: 0; + width: 11px; + height: 11px; + overflow: hidden; + background: url(../images/tangram-colorpicker.png) 0px -200px repeat-x; + z-index: 1000; + +} +.edui-colorpicker-sliderMain { + position: absolute; + left: 171px; + top: 13px; + width: 19px; + height: 152px; + background: url(../images/tangram-colorpicker.png) -179px -12px no-repeat; + +} +.edui-colorpicker-slider { + width: 100%; + height: 100%; + cursor: pointer; +} +.edui-colorpicker-thumb{ + position: absolute; + top: 0; + cursor: pointer; + height: 3px; + left: -1px; + right: -1px; + border: 1px solid black; + background: white; + opacity: .8; +} +/*自动排版弹出菜单*/ +.edui-default .edui-autotypesetpicker .edui-autotypesetpicker-body { + font-size: 12px; + margin-bottom: 3px; + clear: both; +} + +.edui-default .edui-autotypesetpicker-body table { + border-collapse: separate; + border-spacing: 2px; +} + +.edui-default .edui-autotypesetpicker-body td { + font-size: 12px; + word-wrap:break-word; +} + +.edui-default .edui-autotypesetpicker-body td input { + margin: 3px 3px 3px 4px; + *margin: 1px 0 0 0; +} +/*自动排版弹出菜单*/ +.edui-default .edui-cellalignpicker .edui-cellalignpicker-body { + width: 70px; + font-size: 12px; + cursor: default; +} + +.edui-default .edui-cellalignpicker-body table { + border-collapse: separate; + border-spacing: 0; +} +.edui-default .edui-cellalignpicker-body td{ + padding: 1px; +} +.edui-default .edui-cellalignpicker-body .edui-icon{ + height: 20px; + width: 20px; + padding: 1px; + background-image: url(../images/table-cell-align.png); +} + +.edui-default .edui-cellalignpicker-body .edui-left{ + background-position: 0 0; +} + +.edui-default .edui-cellalignpicker-body .edui-center{ + background-position: -25px 0; +} +.edui-default .edui-cellalignpicker-body .edui-right{ + background-position: -51px 0; +} + +.edui-default .edui-cellalignpicker-body td.edui-state-hover .edui-left{ + background-position: -73px 0; +} + +.edui-default .edui-cellalignpicker-body td.edui-state-hover .edui-center{ + background-position: -98px 0; +} + +.edui-default .edui-cellalignpicker-body td.edui-state-hover .edui-right{ + background-position: -124px 0; +} + +.edui-default .edui-cellalignpicker-body td.edui-cellalign-selected .edui-left { + background-position: -146px 0; + background-color: #f1f4f5; +} + +.edui-default .edui-cellalignpicker-body td.edui-cellalign-selected .edui-center { + background-position: -245px 0; +} + +.edui-default .edui-cellalignpicker-body td.edui-cellalign-selected .edui-right { + background-position: -271px 0; +} +/*分隔线*/ +.edui-default .edui-toolbar .edui-separator { + width: 2px; + height: 20px; + margin: 2px 4px 2px 3px; + background: url(../images/icons.png) -181px 0; + background: url(../images/icons.gif) -181px 0 \9; +} + +/*颜色按钮 */ +.edui-default .edui-toolbar .edui-colorbutton .edui-colorlump { + position: absolute; + overflow: hidden; + bottom: 1px; + left: 1px; + width: 18px; + height: 4px; +} +/*表情按钮及弹出菜单*/ +/*去除了表情的下拉箭头*/ +.edui-default .edui-for-emotion .edui-icon { + background-position: -60px -20px; +} +.edui-default .edui-for-emotion .edui-popup-content iframe +{ + width: 514px; + height: 380px; + overflow: hidden; +} +.edui-default .edui-for-emotion .edui-popup-content +{ + position: relative; + z-index: 555 +} + +.edui-default .edui-for-emotion .edui-splitborder { + display: none +} + +.edui-default .edui-for-emotion .edui-splitbutton-body .edui-arrow +{ + width: 0 +} +.edui-default .edui-toolbar .edui-for-emotion .edui-state-active .edui-splitborder +{ + border-left: 1px solid transparent; +} +/*contextmenu*/ +.edui-default .edui-hassubmenu .edui-arrow { + height: 20px; + width: 20px; + float: right; + background: url("../images/icons-all.gif") no-repeat 10px -233px; +} + +.edui-default .edui-menu-body .edui-menuitem { + padding: 1px; +} + +.edui-default .edui-menuseparator { + margin: 2px 0; + height: 1px; + overflow: hidden; +} + +.edui-default .edui-menuseparator-inner { + border-bottom: 1px solid #e2e3e3; + margin-left: 29px; + margin-right: 1px; +} + +.edui-default .edui-menu-body .edui-state-hover { + padding: 0 !important; + background-color: #fff5d4; + border: 1px solid #dcac6c; +} +/*弹出菜单*/ +.edui-default .edui-shortcutmenu { + padding: 2px; + width: 190px; + height: 50px; + background-color: #fff; + border: 1px solid #ccc; + border-radius: 5px; +} + +/*粘贴弹出菜单*/ +.edui-default .edui-wordpastepop .edui-popup-content{ + border: none; + padding: 0; + width: 54px; + height: 21px; +} +.edui-default .edui-pasteicon { + width: 100%; + height: 100%; + background-image: url('../images/wordpaste.png'); + background-position: 0 0; +} + +.edui-default .edui-pasteicon.edui-state-opened { + background-position: 0 -34px; +} + +.edui-default .edui-pastecontainer { + position: relative; + visibility: hidden; + width: 97px; + background: #fff; + border: 1px solid #ccc; +} + +.edui-default .edui-pastecontainer .edui-title { + font-weight: bold; + background: #F8F8FF; + height: 25px; + line-height: 25px; + font-size: 12px; + padding-left: 5px; +} + +.edui-default .edui-pastecontainer .edui-button { + overflow: hidden; + margin: 3px 0; +} + +.edui-default .edui-pastecontainer .edui-button .edui-richtxticon, +.edui-default .edui-pastecontainer .edui-button .edui-tagicon, +.edui-default .edui-pastecontainer .edui-button .edui-plaintxticon{ + float: left; + cursor: pointer; + width: 29px; + height: 29px; + margin-left: 5px; + background-image: url('../images/wordpaste.png'); + background-repeat: no-repeat; +} +.edui-default .edui-pastecontainer .edui-button .edui-richtxticon { + margin-left: 0; + background-position: -109px 0; +} +.edui-default .edui-pastecontainer .edui-button .edui-tagicon { + background-position: -148px 1px; +} + +.edui-default .edui-pastecontainer .edui-button .edui-plaintxticon { + background-position: -72px 0; +} + +.edui-default .edui-pastecontainer .edui-button .edui-state-hover .edui-richtxticon { + background-position: -109px -34px; +} +.edui-default .edui-pastecontainer .edui-button .edui-state-hover .edui-tagicon{ + background-position: -148px -34px; +} +.edui-default .edui-pastecontainer .edui-button .edui-state-hover .edui-plaintxticon{ + background-position: -72px -34px; +} \ No newline at end of file diff --git a/public/static/UEditor/themes/default/css/ueditor.min.css b/public/static/UEditor/themes/default/css/ueditor.min.css new file mode 100644 index 00000000..eb2e7af6 --- /dev/null +++ b/public/static/UEditor/themes/default/css/ueditor.min.css @@ -0,0 +1,8 @@ +/*! + * UEditor + * version: ueditor + * build: Wed Aug 10 2016 11:06:16 GMT+0800 (CST) + */ + + +.edui-default .edui-box{border:0;padding:0;margin:0;overflow:hidden}.edui-default a.edui-box{display:block;text-decoration:none;color:#000}.edui-default a.edui-box:hover{text-decoration:none}.edui-default a.edui-box:active{text-decoration:none}.edui-default table.edui-box{border-collapse:collapse}.edui-default ul.edui-box{list-style-type:none}div.edui-box{position:relative;display:-moz-inline-box!important;display:inline-block!important;vertical-align:top}.edui-default .edui-clearfix{zoom:1}.edui-default .edui-clearfix:after{content:'\20';display:block;clear:both}* html div.edui-box{display:inline!important}:first-child+html div.edui-box{display:inline!important}.edui-default .edui-button-body,.edui-splitbutton-body,.edui-menubutton-body,.edui-combox-body{position:relative}.edui-default .edui-popup{position:absolute;-webkit-user-select:none;-moz-user-select:none}.edui-default .edui-popup .edui-shadow{position:absolute;z-index:-1}.edui-default .edui-popup .edui-bordereraser{position:absolute;overflow:hidden}.edui-default .edui-tablepicker .edui-canvas{position:relative}.edui-default .edui-tablepicker .edui-canvas .edui-overlay{position:absolute}.edui-default .edui-dialog-modalmask,.edui-dialog-dragmask{position:absolute;left:0;top:0;width:100%;height:100%}.edui-default .edui-toolbar{position:relative}.edui-default .edui-label{cursor:default}.edui-default span.edui-clickable{color:#00f;cursor:pointer;text-decoration:underline}.edui-default span.edui-unclickable{color:gray;cursor:default}.edui-default .edui-toolbar{cursor:default;-webkit-user-select:none;-moz-user-select:none;padding:1px;overflow:hidden;zoom:1;width:auto;height:auto}.edui-default .edui-toolbar .edui-button,.edui-default .edui-toolbar .edui-splitbutton,.edui-default .edui-toolbar .edui-menubutton,.edui-default .edui-toolbar .edui-combox{margin:1px}.edui-default .edui-editor{border:1px solid #d4d4d4;background-color:#fff;position:relative;overflow:visible;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.edui-editor div{width:auto;height:auto}.edui-default .edui-editor-toolbarbox{position:relative;zoom:1;-webkit-box-shadow:0 1px 4px rgba(204,204,204,.6);-moz-box-shadow:0 1px 4px rgba(204,204,204,.6);box-shadow:0 1px 4px rgba(204,204,204,.6);border-top-left-radius:2px;border-top-right-radius:2px}.edui-default .edui-editor-toolbarboxouter{border-bottom:1px solid #d4d4d4;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,.065);box-shadow:0 1px 4px rgba(0,0,0,.065)}.edui-default .edui-editor-toolbarboxinner{padding:2px}.edui-default .edui-editor-iframeholder{position:relative}.edui-default .edui-editor-bottomContainer{overflow:hidden}.edui-default .edui-editor-bottomContainer table{width:100%;height:0;overflow:hidden;border-spacing:0}.edui-default .edui-editor-bottomContainer td{white-space:nowrap;border-top:1px solid #ccc;line-height:20px;font-size:12px;font-family:Arial,Helvetica,Tahoma,Verdana,Sans-Serif}.edui-default .edui-editor-wordcount{text-align:right;margin-right:5px;color:#aaa}.edui-default .edui-editor-scale{width:12px}.edui-default .edui-editor-scale .edui-editor-icon{float:right;width:100%;height:12px;margin-top:10px;background:url(../images/scale.png) no-repeat;cursor:se-resize}.edui-default .edui-editor-breadcrumb{margin:2px 0 0 3px}.edui-default .edui-editor-breadcrumb span{cursor:pointer;text-decoration:underline;color:#00f}.edui-default .edui-toolbar .edui-for-fullscreen{float:right}.edui-default .edui-bubble .edui-popup-content{border:1px solid #DCAC6C;background-color:#fff6d9;padding:5px;font-size:10pt;font-family:"宋体"}.edui-default .edui-bubble .edui-shadow{}.edui-default .edui-editor-toolbarmsg{background-color:#FFF6D9;border-bottom:1px solid #ccc;position:absolute;bottom:-25px;left:0;z-index:1009;width:99.9%}.edui-default .edui-editor-toolbarmsg-upload{font-size:14px;color:#00f;width:100px;height:16px;line-height:16px;cursor:pointer;position:absolute;top:5px;left:350px}.edui-default .edui-editor-toolbarmsg-label{font-size:12px;line-height:16px;padding:4px}.edui-default .edui-editor-toolbarmsg-close{float:right;width:20px;height:16px;line-height:16px;cursor:pointer;color:red}.edui-default .edui-list .edui-bordereraser{display:none}.edui-default .edui-listitem{padding:1px;white-space:nowrap}.edui-default .edui-list .edui-state-hover{position:relative;background-color:#fff5d4;border:1px solid #dcac6c;padding:0}.edui-default .edui-for-fontfamily .edui-listitem-label{min-width:130px;_width:120px;font-size:12px;height:22px;line-height:22px;padding-left:5px}.edui-default .edui-for-insertcode .edui-listitem-label{min-width:120px;_width:120px;font-size:12px;height:22px;line-height:22px;padding-left:5px}.edui-default .edui-for-underline .edui-listitem-label{min-width:120px;_width:120px;padding:3px 5px;font-size:12px}.edui-default .edui-for-fontsize .edui-listitem-label{min-width:120px;_width:120px;padding:3px 5px}.edui-default .edui-for-paragraph .edui-listitem-label{min-width:200px;_width:200px;padding:2px 5px}.edui-default .edui-for-rowspacingtop .edui-listitem-label,.edui-default .edui-for-rowspacingbottom .edui-listitem-label{min-width:53px;_width:53px;padding:2px 5px}.edui-default .edui-for-lineheight .edui-listitem-label{min-width:53px;_width:53px;padding:2px 5px}.edui-default .edui-for-customstyle .edui-listitem-label{min-width:200px;_width:200px;width:200px!important;padding:2px 5px}.edui-default .edui-menu{z-index:3000}.edui-default .edui-menu .edui-popup-content{padding:3px}.edui-default .edui-menu-body{_width:150px;min-width:170px;background:url(../images/sparator_v.png) repeat-y 25px}.edui-default .edui-menuitem-body{}.edui-default .edui-menuitem{height:20px;cursor:default;vertical-align:top}.edui-default .edui-menuitem .edui-icon{width:20px!important;height:20px!important;background:url(../images/icons.png) 0 -4000px;background:url(../images/icons.gif) 0 -4000px\9}.edui-default .edui-menuitem .edui-label{font-size:12px;line-height:20px;height:20px;padding-left:10px}.edui-default .edui-state-checked .edui-menuitem-body{background:url(../images/icons-all.gif) no-repeat 6px -205px}.edui-default .edui-state-disabled .edui-menuitem-label{color:gray}.edui-default .edui-toolbar .edui-combox-body .edui-button-body{width:60px;font-size:12px;height:20px;line-height:20px;padding-left:5px;white-space:nowrap;margin:0 3px 0 0}.edui-default .edui-toolbar .edui-combox-body .edui-arrow{background:url(../images/icons.png) -741px 0;_background:url(../images/icons.gif) -741px 0;height:20px;width:9px}.edui-default .edui-toolbar .edui-combox .edui-combox-body{border:1px solid #CCC;background-color:#fff;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px}.edui-default .edui-toolbar .edui-combox-body .edui-splitborder{display:none}.edui-default .edui-toolbar .edui-combox-body .edui-arrow{border-left:1px solid #CCC}.edui-default .edui-toolbar .edui-state-hover .edui-combox-body{background-color:#fff5d4;border:1px solid #dcac6c}.edui-default .edui-toolbar .edui-state-hover .edui-combox-body .edui-arrow{border-left:1px solid #dcac6c}.edui-default .edui-toolbar .edui-state-checked .edui-combox-body{background-color:#FFE69F;border:1px solid #DCAC6C}.edui-toolbar .edui-state-checked .edui-combox-body .edui-arrow{border-left:1px solid #DCAC6C}.edui-toolbar .edui-state-disabled .edui-combox-body{background-color:#F0F0EE;opacity:.3;filter:alpha(opacity=30)}.edui-toolbar .edui-state-opened .edui-combox-body{background-color:#fff;border:1px solid gray}.edui-default .edui-toolbar .edui-button .edui-icon,.edui-default .edui-toolbar .edui-menubutton .edui-icon,.edui-default .edui-toolbar .edui-splitbutton .edui-icon{height:20px!important;width:20px!important;background-image:url(../images/icons.png);background-image:url(../images/icons.gif) \9}.edui-default .edui-toolbar .edui-button .edui-button-wrap{padding:1px;position:relative}.edui-default .edui-toolbar .edui-button .edui-state-hover .edui-button-wrap{background-color:#fff5d4;padding:0;border:1px solid #dcac6c}.edui-default .edui-toolbar .edui-button .edui-state-checked .edui-button-wrap{background-color:#ffe69f;padding:0;border:1px solid #dcac6c;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px}.edui-default .edui-toolbar .edui-button .edui-state-active .edui-button-wrap{background-color:#fff;padding:0;border:1px solid gray}.edui-default .edui-toolbar .edui-state-disabled .edui-label{color:#ccc}.edui-default .edui-toolbar .edui-state-disabled .edui-icon{opacity:.3;filter:alpha(opacity=30)}.edui-default .edui-for-undo .edui-icon{background-position:-160px 0}.edui-default .edui-for-redo .edui-icon{background-position:-100px 0}.edui-default .edui-for-bold .edui-icon{background-position:0 0}.edui-default .edui-for-italic .edui-icon{background-position:-60px 0}.edui-default .edui-for-fontborder .edui-icon{background-position:-160px -40px}.edui-default .edui-for-underline .edui-icon{background-position:-140px 0}.edui-default .edui-for-strikethrough .edui-icon{background-position:-120px 0}.edui-default .edui-for-subscript .edui-icon{background-position:-600px 0}.edui-default .edui-for-superscript .edui-icon{background-position:-620px 0}.edui-default .edui-for-blockquote .edui-icon{background-position:-220px 0}.edui-default .edui-for-forecolor .edui-icon{background-position:-720px 0}.edui-default .edui-for-backcolor .edui-icon{background-position:-760px 0}.edui-default .edui-for-inserttable .edui-icon{background-position:-580px -20px}.edui-default .edui-for-autotypeset .edui-icon{background-position:-640px -40px}.edui-default .edui-for-justifyleft .edui-icon{background-position:-460px 0}.edui-default .edui-for-justifycenter .edui-icon{background-position:-420px 0}.edui-default .edui-for-justifyright .edui-icon{background-position:-480px 0}.edui-default .edui-for-justifyjustify .edui-icon{background-position:-440px 0}.edui-default .edui-for-insertorderedlist .edui-icon{background-position:-80px 0}.edui-default .edui-for-insertunorderedlist .edui-icon{background-position:-20px 0}.edui-default .edui-for-lineheight .edui-icon{background-position:-725px -40px}.edui-default .edui-for-rowspacingbottom .edui-icon{background-position:-745px -40px}.edui-default .edui-for-rowspacingtop .edui-icon{background-position:-765px -40px}.edui-default .edui-for-horizontal .edui-icon{background-position:-360px 0}.edui-default .edui-for-link .edui-icon{background-position:-500px 0}.edui-default .edui-for-code .edui-icon{background-position:-440px -40px}.edui-default .edui-for-insertimage .edui-icon{background-position:-726px -77px}.edui-default .edui-for-insertframe .edui-icon{background-position:-240px -40px}.edui-default .edui-for-emoticon .edui-icon{background-position:-60px -20px}.edui-default .edui-for-spechars .edui-icon{background-position:-240px 0}.edui-default .edui-for-help .edui-icon{background-position:-340px 0}.edui-default .edui-for-print .edui-icon{background-position:-440px -20px}.edui-default .edui-for-preview .edui-icon{background-position:-420px -20px}.edui-default .edui-for-selectall .edui-icon{background-position:-400px -20px}.edui-default .edui-for-searchreplace .edui-icon{background-position:-520px -20px}.edui-default .edui-for-map .edui-icon{background-position:-40px -40px}.edui-default .edui-for-gmap .edui-icon{background-position:-260px -40px}.edui-default .edui-for-insertvideo .edui-icon{background-position:-320px -20px}.edui-default .edui-for-time .edui-icon{background-position:-160px -20px}.edui-default .edui-for-date .edui-icon{background-position:-140px -20px}.edui-default .edui-for-cut .edui-icon{background-position:-680px 0}.edui-default .edui-for-copy .edui-icon{background-position:-700px 0}.edui-default .edui-for-paste .edui-icon{background-position:-560px 0}.edui-default .edui-for-formatmatch .edui-icon{background-position:-40px 0}.edui-default .edui-for-pasteplain .edui-icon{background-position:-360px -20px}.edui-default .edui-for-directionalityltr .edui-icon{background-position:-20px -20px}.edui-default .edui-for-directionalityrtl .edui-icon{background-position:-40px -20px}.edui-default .edui-for-source .edui-icon{background-position:-261px -0px}.edui-default .edui-for-removeformat .edui-icon{background-position:-580px 0}.edui-default .edui-for-unlink .edui-icon{background-position:-640px 0}.edui-default .edui-for-touppercase .edui-icon{background-position:-786px 0}.edui-default .edui-for-tolowercase .edui-icon{background-position:-806px 0}.edui-default .edui-for-insertrow .edui-icon{background-position:-478px -76px}.edui-default .edui-for-insertrownext .edui-icon{background-position:-498px -76px}.edui-default .edui-for-insertcol .edui-icon{background-position:-455px -76px}.edui-default .edui-for-insertcolnext .edui-icon{background-position:-429px -76px}.edui-default .edui-for-mergeright .edui-icon{background-position:-60px -40px}.edui-default .edui-for-mergedown .edui-icon{background-position:-80px -40px}.edui-default .edui-for-splittorows .edui-icon{background-position:-100px -40px}.edui-default .edui-for-splittocols .edui-icon{background-position:-120px -40px}.edui-default .edui-for-insertparagraphbeforetable .edui-icon{background-position:-140px -40px}.edui-default .edui-for-deleterow .edui-icon{background-position:-660px -20px}.edui-default .edui-for-deletecol .edui-icon{background-position:-640px -20px}.edui-default .edui-for-splittocells .edui-icon{background-position:-800px -20px}.edui-default .edui-for-mergecells .edui-icon{background-position:-760px -20px}.edui-default .edui-for-deletetable .edui-icon{background-position:-620px -20px}.edui-default .edui-for-cleardoc .edui-icon{background-position:-520px 0}.edui-default .edui-for-fullscreen .edui-icon{background-position:-100px -20px}.edui-default .edui-for-anchor .edui-icon{background-position:-200px 0}.edui-default .edui-for-pagebreak .edui-icon{background-position:-460px -40px}.edui-default .edui-for-imagenone .edui-icon{background-position:-480px -40px}.edui-default .edui-for-imageleft .edui-icon{background-position:-500px -40px}.edui-default .edui-for-wordimage .edui-icon{background-position:-660px -40px}.edui-default .edui-for-imageright .edui-icon{background-position:-520px -40px}.edui-default .edui-for-imagecenter .edui-icon{background-position:-540px -40px}.edui-default .edui-for-indent .edui-icon{background-position:-400px 0}.edui-default .edui-for-outdent .edui-icon{background-position:-540px 0}.edui-default .edui-for-webapp .edui-icon{background-position:-601px -40px}.edui-default .edui-for-table .edui-icon{background-position:-580px -20px}.edui-default .edui-for-edittable .edui-icon{background-position:-420px -40px}.edui-default .edui-for-template .edui-icon{background-position:-339px -40px}.edui-default .edui-for-delete .edui-icon{background-position:-360px -40px}.edui-default .edui-for-attachment .edui-icon{background-position:-620px -40px}.edui-default .edui-for-edittd .edui-icon{background-position:-700px -40px}.edui-default .edui-for-snapscreen .edui-icon{background-position:-581px -40px}.edui-default .edui-for-scrawl .edui-icon{background-position:-801px -41px}.edui-default .edui-for-background .edui-icon{background-position:-680px -40px}.edui-default .edui-for-music .edui-icon{background-position:-18px -40px}.edui-default .edui-for-formula .edui-icon{background-position:-200px -40px}.edui-default .edui-for-aligntd .edui-icon{background-position:-236px -76px}.edui-default .edui-for-insertparagraphtrue .edui-icon{background-position:-625px -76px}.edui-default .edui-for-insertparagraph .edui-icon{background-position:-602px -76px}.edui-default .edui-for-insertcaption .edui-icon{background-position:-336px -76px}.edui-default .edui-for-deletecaption .edui-icon{background-position:-362px -76px}.edui-default .edui-for-inserttitle .edui-icon{background-position:-286px -76px}.edui-default .edui-for-deletetitle .edui-icon{background-position:-311px -76px}.edui-default .edui-for-aligntable .edui-icon{background-position:-440px 0}.edui-default .edui-for-tablealignment-left .edui-icon{background-position:-460px 0}.edui-default .edui-for-tablealignment-center .edui-icon{background-position:-420px 0}.edui-default .edui-for-tablealignment-right .edui-icon{background-position:-480px 0}.edui-default .edui-for-drafts .edui-icon{background-position:-560px 0}.edui-default .edui-for-charts .edui-icon{background:url( ../images/charts.png ) no-repeat 2px 3px!important}.edui-default .edui-for-inserttitlecol .edui-icon{background-position:-673px -76px}.edui-default .edui-for-deletetitlecol .edui-icon{background-position:-698px -76px}.edui-default .edui-for-simpleupload .edui-icon{background-position:-380px 0}.edui-default .edui-toolbar .edui-splitbutton-body .edui-arrow,.edui-default .edui-toolbar .edui-menubutton-body .edui-arrow{background:url(../images/icons.png) -741px 0;_background:url(../images/icons.gif) -741px 0;height:20px;width:9px}.edui-default .edui-toolbar .edui-splitbutton .edui-splitbutton-body,.edui-default .edui-toolbar .edui-menubutton .edui-menubutton-body{padding:1px}.edui-default .edui-toolbar .edui-splitborder{width:1px;height:20px}.edui-default .edui-toolbar .edui-state-hover .edui-splitborder{width:1px;border-left:0 solid #dcac6c}.edui-default .edui-toolbar .edui-state-active .edui-splitborder{width:0;border-left:1px solid gray}.edui-default .edui-toolbar .edui-state-opened .edui-splitborder{width:1px;border:0}.edui-default .edui-toolbar .edui-splitbutton .edui-state-hover .edui-splitbutton-body,.edui-default .edui-toolbar .edui-menubutton .edui-state-hover .edui-menubutton-body{background-color:#fff5d4;border:1px solid #dcac6c;padding:0}.edui-default .edui-toolbar .edui-splitbutton .edui-state-checked .edui-splitbutton-body,.edui-default .edui-toolbar .edui-menubutton .edui-state-checked .edui-menubutton-body{background-color:#FFE69F;border:1px solid #DCAC6C;padding:0}.edui-default .edui-toolbar .edui-splitbutton .edui-state-active .edui-splitbutton-body,.edui-default .edui-toolbar .edui-menubutton .edui-state-active .edui-menubutton-body{background-color:#fff;border:1px solid gray;padding:0}.edui-default .edui-state-disabled .edui-arrow{opacity:.3;_filter:alpha(opacity=30)}.edui-default .edui-toolbar .edui-splitbutton .edui-state-opened .edui-splitbutton-body,.edui-default .edui-toolbar .edui-menubutton .edui-state-opened .edui-menubutton-body{background-color:#fff;border:1px solid gray;padding:0}.edui-default .edui-for-insertorderedlist .edui-bordereraser,.edui-default .edui-for-lineheight .edui-bordereraser,.edui-default .edui-for-rowspacingtop .edui-bordereraser,.edui-default .edui-for-rowspacingbottom .edui-bordereraser,.edui-default .edui-for-insertunorderedlist .edui-bordereraser{background-color:#fff}.edui-default .edui-for-insertorderedlist .edui-popup-body .edui-icon,.edui-default .edui-for-lineheight .edui-popup-body .edui-icon,.edui-default .edui-for-rowspacingtop .edui-popup-body .edui-icon,.edui-default .edui-for-rowspacingbottom .edui-popup-body .edui-icon,.edui-default .edui-for-insertunorderedlist .edui-popup-body .edui-icon{background-image:none}.edui-default .edui-popup{z-index:3000;background-color:#fff;width:auto;height:auto}.edui-default .edui-popup .edui-shadow{left:0;top:0;width:100%;height:100%}.edui-default .edui-popup-content{border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 4px rgba(0,0,0,.2);-moz-box-shadow:0 3px 4px rgba(0,0,0,.2);box-shadow:0 3px 4px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;padding:5px;background:#fff}.edui-default .edui-popup .edui-bordereraser{background-color:#fff;height:3px}.edui-default .edui-menu .edui-bordereraser{height:3px}.edui-default .edui-anchor-topleft .edui-bordereraser{left:1px;top:-2px}.edui-default .edui-anchor-topright .edui-bordereraser{right:1px;top:-2px}.edui-default .edui-anchor-bottomleft .edui-bordereraser{left:0;bottom:-6px;height:7px;border-left:1px solid gray;border-right:1px solid gray}.edui-default .edui-anchor-bottomright .edui-bordereraser{right:0;bottom:-6px;height:7px;border-left:1px solid gray;border-right:1px solid gray}.edui-popup div{width:auto;height:auto}.edui-default .edui-editor-messageholder{display:block;width:150px;height:auto;border:0;margin:0;padding:0;position:absolute;top:28px;right:3px}.edui-default .edui-message{min-height:10px;text-shadow:0 1px 0 rgba(255,255,255,.5);padding:0;margin-bottom:3px;position:relative}.edui-default .edui-message-body{border-radius:3px;padding:8px 15px 8px 8px;color:#c09853;background-color:#fcf8e3;border:1px solid #fbeed5}.edui-default .edui-message-type-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.edui-default .edui-message-type-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.edui-default .edui-message-type-danger,.edui-default .edui-message-type-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.edui-default .edui-message .edui-message-closer{display:block;width:16px;height:16px;line-height:16px;position:absolute;top:0;right:0;padding:0;cursor:pointer;background:transparent;border:0;float:right;font-size:20px;font-weight:700;color:#999;text-shadow:0 1px 0 #fff;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}.edui-default .edui-message .edui-message-content{font-size:10pt;word-wrap:break-word;word-break:normal}.edui-default .edui-dialog{z-index:2000;position:absolute}.edui-dialog div{width:auto}.edui-default .edui-dialog-wrap{margin-right:6px;margin-bottom:6px}.edui-default .edui-dialog-fullscreen-flag{margin-right:0;margin-bottom:0}.edui-default .edui-dialog-body{position:relative;padding:2px 0 0 2px;_zoom:1}.edui-default .edui-dialog-fullscreen-flag .edui-dialog-body{padding:0}.edui-default .edui-dialog-shadow{position:absolute;z-index:-1;left:0;top:0;width:100%;height:100%;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.edui-default .edui-dialog-foot{background-color:#fff}.edui-default .edui-dialog-titlebar{height:26px;border-bottom:1px solid #c6c6c6;background:url(../images/dialog-title-bg.png) repeat-x bottom;position:relative;cursor:move}.edui-default .edui-dialog-caption{font-weight:700;font-size:12px;line-height:26px;padding-left:5px}.edui-default .edui-dialog-draghandle{height:26px}.edui-default .edui-dialog-closebutton{position:absolute!important;right:5px;top:3px}.edui-default .edui-dialog-closebutton .edui-button-body{height:20px;width:20px;cursor:pointer;background:url(../images/icons-all.gif) no-repeat 0 -59px}.edui-default .edui-dialog-closebutton .edui-state-hover .edui-button-body{background:url(../images/icons-all.gif) no-repeat 0 -89px}.edui-default .edui-dialog-foot{height:40px}.edui-default .edui-dialog-buttons{position:absolute;right:0}.edui-default .edui-dialog-buttons .edui-button{margin-right:10px}.edui-default .edui-dialog-buttons .edui-button .edui-button-body{background:url(../images/icons-all.gif) no-repeat;height:24px;width:96px;font-size:12px;line-height:24px;text-align:center;cursor:default}.edui-default .edui-dialog-buttons .edui-button .edui-state-hover .edui-button-body{background:url(../images/icons-all.gif) no-repeat 0 -30px}.edui-default .edui-dialog iframe{border:0;padding:0;margin:0;vertical-align:top}.edui-default .edui-dialog-modalmask{opacity:.3;filter:alpha(opacity=30);background-color:#ccc;position:absolute}.edui-default .edui-dialog-dragmask{position:absolute;background-color:transparent;cursor:move}.edui-default .edui-dialog-content{position:relative}.edui-default .dialogcontmask{cursor:move;visibility:hidden;display:block;position:absolute;width:100%;height:100%;opacity:0;filter:alpha(opacity=0)}.edui-default .edui-for-link .edui-dialog-content{width:420px;height:200px;overflow:hidden}.edui-default .edui-for-background .edui-dialog-content{width:440px;height:280px;overflow:hidden}.edui-default .edui-for-template .edui-dialog-content{width:630px;height:390px;overflow:hidden}.edui-default .edui-for-scrawl .edui-dialog-content{width:515px;*width:506px;height:360px}.edui-default .edui-for-spechars .edui-dialog-content{width:620px;height:500px;*width:630px;*height:570px}.edui-default .edui-for-insertimage .edui-dialog-content{width:650px;height:400px;overflow:hidden}.edui-default .edui-for-webapp .edui-dialog-content{width:560px;_width:565px;height:450px;overflow:hidden}.edui-default .edui-for-insertframe .edui-dialog-content{width:350px;height:200px;overflow:hidden}.edui-default .edui-for-wordimage .edui-dialog-content{width:620px;height:380px;overflow:hidden}.edui-default .edui-for-attachment .edui-dialog-content{width:650px;height:400px;overflow:hidden}.edui-default .edui-for-map .edui-dialog-content{width:550px;height:400px}.edui-default .edui-for-gmap .edui-dialog-content{width:550px;height:400px}.edui-default .edui-for-insertvideo .edui-dialog-content{width:590px;height:390px}.edui-default .edui-for-anchor .edui-dialog-content{width:320px;height:60px;overflow:hidden}.edui-default .edui-for-searchreplace .edui-dialog-content{width:400px;height:220px}.edui-default .edui-for-help .edui-dialog-content{width:400px;height:420px}.edui-default .edui-for-edittable .edui-dialog-content{width:540px;_width:590px;height:335px}.edui-default .edui-for-edittip .edui-dialog-content{width:225px;height:60px}.edui-default .edui-for-edittd .edui-dialog-content{width:240px;height:50px}.edui-default .edui-for-snapscreen .edui-dialog-content{width:400px;height:220px}.edui-default .edui-for-music .edui-dialog-content{width:515px;height:360px}.edui-default .edui-for-paragraph .edui-listitem-label{font-family:Tahoma,Verdana,Arial,Helvetica}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-p{font-size:22px;line-height:27px}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h1{font-weight:bolder;font-size:32px;line-height:36px}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h2{font-weight:bolder;font-size:27px;line-height:29px}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h3{font-weight:bolder;font-size:19px;line-height:23px}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h4{font-weight:bolder;font-size:16px;line-height:19px}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h5{font-weight:bolder;font-size:13px;line-height:16px}.edui-default .edui-for-paragraph .edui-listitem-label .edui-for-h6{font-weight:bolder;font-size:12px;line-height:14px}.edui-default .edui-for-inserttable .edui-splitborder{display:none}.edui-default .edui-for-inserttable .edui-splitbutton-body .edui-arrow{width:0}.edui-default .edui-toolbar .edui-for-inserttable .edui-state-active .edui-splitborder{border-left:1px solid transparent}.edui-default .edui-tablepicker .edui-infoarea{height:14px;line-height:14px;font-size:12px;width:220px;margin-bottom:3px;clear:both}.edui-default .edui-tablepicker .edui-infoarea .edui-label{float:left}.edui-default .edui-dialog-buttons .edui-label{line-height:24px}.edui-default .edui-tablepicker .edui-infoarea .edui-clickable{float:right}.edui-default .edui-tablepicker .edui-pickarea{background:url(../images/unhighlighted.gif) repeat;height:220px;width:220px}.edui-default .edui-tablepicker .edui-pickarea .edui-overlay{background:url(../images/highlighted.gif) repeat}.edui-default .edui-colorpicker-topbar{height:27px;width:200px}.edui-default .edui-colorpicker-preview{height:20px;border:1px inset #000;margin-left:1px;width:128px;float:left}.edui-default .edui-colorpicker-nocolor{float:right;margin-right:1px;font-size:12px;line-height:14px;height:14px;border:1px solid #333;padding:3px 5px;cursor:pointer}.edui-default .edui-colorpicker-tablefirstrow{height:30px}.edui-default .edui-colorpicker-colorcell{width:14px;height:14px;display:block;margin:0;cursor:pointer}.edui-default .edui-colorpicker-colorcell:hover{width:14px;height:14px;margin:0}.edui-default .edui-colorpicker-advbtn{display:block;text-align:center;cursor:pointer;height:20px}.arrow_down{background:#fff url(../images/arrow_down.png) no-repeat center}.arrow_up{background:#fff url(../images/arrow_up.png) no-repeat center}.edui-colorpicker-adv{position:relative;overflow:hidden;height:180px;display:none}.edui-colorpicker-plant,.edui-colorpicker-hue{border:solid 1px #666}.edui-colorpicker-pad{width:150px;height:150px;left:14px;top:13px;position:absolute;background:red;overflow:hidden;cursor:crosshair}.edui-colorpicker-cover{position:absolute;top:0;left:0;width:150px;height:150px;background:url(../images/tangram-colorpicker.png) -160px -200px}.edui-colorpicker-padDot{position:absolute;top:0;left:0;width:11px;height:11px;overflow:hidden;background:url(../images/tangram-colorpicker.png) 0 -200px repeat-x;z-index:1000}.edui-colorpicker-sliderMain{position:absolute;left:171px;top:13px;width:19px;height:152px;background:url(../images/tangram-colorpicker.png) -179px -12px no-repeat}.edui-colorpicker-slider{width:100%;height:100%;cursor:pointer}.edui-colorpicker-thumb{position:absolute;top:0;cursor:pointer;height:3px;left:-1px;right:-1px;border:1px solid #000;background:#fff;opacity:.8}.edui-default .edui-autotypesetpicker .edui-autotypesetpicker-body{font-size:12px;margin-bottom:3px;clear:both}.edui-default .edui-autotypesetpicker-body table{border-collapse:separate;border-spacing:2px}.edui-default .edui-autotypesetpicker-body td{font-size:12px;word-wrap:break-word}.edui-default .edui-autotypesetpicker-body td input{margin:3px 3px 3px 4px;*margin:1px 0 0}.edui-default .edui-cellalignpicker .edui-cellalignpicker-body{width:70px;font-size:12px;cursor:default}.edui-default .edui-cellalignpicker-body table{border-collapse:separate;border-spacing:0}.edui-default .edui-cellalignpicker-body td{padding:1px}.edui-default .edui-cellalignpicker-body .edui-icon{height:20px;width:20px;padding:1px;background-image:url(../images/table-cell-align.png)}.edui-default .edui-cellalignpicker-body .edui-left{background-position:0 0}.edui-default .edui-cellalignpicker-body .edui-center{background-position:-25px 0}.edui-default .edui-cellalignpicker-body .edui-right{background-position:-51px 0}.edui-default .edui-cellalignpicker-body td.edui-state-hover .edui-left{background-position:-73px 0}.edui-default .edui-cellalignpicker-body td.edui-state-hover .edui-center{background-position:-98px 0}.edui-default .edui-cellalignpicker-body td.edui-state-hover .edui-right{background-position:-124px 0}.edui-default .edui-cellalignpicker-body td.edui-cellalign-selected .edui-left{background-position:-146px 0;background-color:#f1f4f5}.edui-default .edui-cellalignpicker-body td.edui-cellalign-selected .edui-center{background-position:-245px 0}.edui-default .edui-cellalignpicker-body td.edui-cellalign-selected .edui-right{background-position:-271px 0}.edui-default .edui-toolbar .edui-separator{width:2px;height:20px;margin:2px 4px 2px 3px;background:url(../images/icons.png) -181px 0;background:url(../images/icons.gif) -181px 0 \9}.edui-default .edui-toolbar .edui-colorbutton .edui-colorlump{position:absolute;overflow:hidden;bottom:1px;left:1px;width:18px;height:4px}.edui-default .edui-for-emotion .edui-icon{background-position:-60px -20px}.edui-default .edui-for-emotion .edui-popup-content iframe{width:514px;height:380px;overflow:hidden}.edui-default .edui-for-emotion .edui-popup-content{position:relative;z-index:555}.edui-default .edui-for-emotion .edui-splitborder{display:none}.edui-default .edui-for-emotion .edui-splitbutton-body .edui-arrow{width:0}.edui-default .edui-toolbar .edui-for-emotion .edui-state-active .edui-splitborder{border-left:1px solid transparent}.edui-default .edui-hassubmenu .edui-arrow{height:20px;width:20px;float:right;background:url(../images/icons-all.gif) no-repeat 10px -233px}.edui-default .edui-menu-body .edui-menuitem{padding:1px}.edui-default .edui-menuseparator{margin:2px 0;height:1px;overflow:hidden}.edui-default .edui-menuseparator-inner{border-bottom:1px solid #e2e3e3;margin-left:29px;margin-right:1px}.edui-default .edui-menu-body .edui-state-hover{padding:0!important;background-color:#fff5d4;border:1px solid #dcac6c}.edui-default .edui-shortcutmenu{padding:2px;width:190px;height:50px;background-color:#fff;border:1px solid #ccc;border-radius:5px}.edui-default .edui-wordpastepop .edui-popup-content{border:0;padding:0;width:54px;height:21px}.edui-default .edui-pasteicon{width:100%;height:100%;background-image:url(../images/wordpaste.png);background-position:0 0}.edui-default .edui-pasteicon.edui-state-opened{background-position:0 -34px}.edui-default .edui-pastecontainer{position:relative;visibility:hidden;width:97px;background:#fff;border:1px solid #ccc}.edui-default .edui-pastecontainer .edui-title{font-weight:700;background:#F8F8FF;height:25px;line-height:25px;font-size:12px;padding-left:5px}.edui-default .edui-pastecontainer .edui-button{overflow:hidden;margin:3px 0}.edui-default .edui-pastecontainer .edui-button .edui-richtxticon,.edui-default .edui-pastecontainer .edui-button .edui-tagicon,.edui-default .edui-pastecontainer .edui-button .edui-plaintxticon{float:left;cursor:pointer;width:29px;height:29px;margin-left:5px;background-image:url(../images/wordpaste.png);background-repeat:no-repeat}.edui-default .edui-pastecontainer .edui-button .edui-richtxticon{margin-left:0;background-position:-109px 0}.edui-default .edui-pastecontainer .edui-button .edui-tagicon{background-position:-148px 1px}.edui-default .edui-pastecontainer .edui-button .edui-plaintxticon{background-position:-72px 0}.edui-default .edui-pastecontainer .edui-button .edui-state-hover .edui-richtxticon{background-position:-109px -34px}.edui-default .edui-pastecontainer .edui-button .edui-state-hover .edui-tagicon{background-position:-148px -34px}.edui-default .edui-pastecontainer .edui-button .edui-state-hover .edui-plaintxticon{background-position:-72px -34px} \ No newline at end of file diff --git a/public/static/UEditor/themes/default/dialogbase.css b/public/static/UEditor/themes/default/dialogbase.css new file mode 100644 index 00000000..cd663d5d --- /dev/null +++ b/public/static/UEditor/themes/default/dialogbase.css @@ -0,0 +1,100 @@ +/*弹出对话框页面样式组件 +*/ + +/*reset +*/ +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, font, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td { + margin: 0; + padding: 0; + outline: 0; + font-size: 100%; +} + +body { + line-height: 1; +} + +ol, ul { + list-style: none; +} + +blockquote, q { + quotes: none; +} + +ins { + text-decoration: none; +} + +del { + text-decoration: line-through; +} + +table { + border-collapse: collapse; + border-spacing: 0; +} + +/*module +*/ +body { + background-color: #fff; + font: 12px/1.5 sans-serif, "宋体", "Arial Narrow", HELVETICA; + color: #646464; +} + +/*tab*/ +.tabhead { + position: relative; + z-index: 10; +} + +.tabhead span { + display: inline-block; + padding: 0 5px; + height: 30px; + border: 1px solid #ccc; + background: url("images/dialog-title-bg.png") repeat-x; + text-align: center; + line-height: 30px; + cursor: pointer; + *margin-right: 5px; +} + +.tabhead span.focus { + height: 31px; + border-bottom: none; + background: #fff; +} + +.tabbody { + position: relative; + top: -1px; + margin: 0 auto; + border: 1px solid #ccc; +} + +/*button*/ +a.button { + display: block; + text-align: center; + line-height: 24px; + text-decoration: none; + height: 24px; + width: 95px; + border: 0; + color: #838383; + background: url(../../themes/default/images/icons-all.gif) no-repeat; +} + +a.button:hover { + background-position: 0 -30px; +} \ No newline at end of file diff --git a/public/static/UEditor/themes/default/images/anchor.gif b/public/static/UEditor/themes/default/images/anchor.gif new file mode 100644 index 0000000000000000000000000000000000000000..5aa797b2240a432d9f3f1d166ed5542eaf684937 GIT binary patch literal 184 zcmZ?wbhEHb6kygJ|Uu&?oD;%Ae!z@09(NL_hv#6Slx0y!YR{?r|LJZgAju=f-$sQVWNL{+Tsz18#+~Ke%+zTWns()WcPwy8dQcr!JH# U&i)o#ra{o6vp4_np&fqGg-1;GP^BJO_p_?A6nLIYwB=H*Qp>A8nZf?fNnCY(uvZL zYMq5r=M|ASom0_?Sn7~VE3B<^mcq1BrHIr9EGW>Ifm~m?y<>mJPIAsKPjWszPx7z| z^K(;^4e+i)B*?S*guTS?B+Vho2 z`WG1Kuclp>qR!nSa-c>gf6E3&1HPK$>6qGXeOCp%qBL8aEd$S;?m%#@0uH|roliGe zy#i~1E?Ad#U1t}6uwt+qqgIm=xY8r0F*7 zl{ZWo1&^Wcj_roRaNKw0cq|%;M#7eRWh<*7;!rva!w3Wdg+kTSXqlOr3+!(Y+UH1c!M>bUYK1<=lG*1pq%m&P~1QC>Rx($IJPWjnN zpR&G{Rq^JvgludxnIl{D8LgfGe-+MHCcM_UcHp8Td8VLE6B~29!k7r659<2nKp^Fl zj!GszzF7d5gy6DP@ZR1H93XOu{-OI@l6&5C>BJ*|uw%klayELyqgg z(1r2VJa0I-7Tj#n#oR8}RJ&g+`2!5Q8%of3mwZ1ylT{6m^cuZ3bEx<+w~3H6c=s2I zHqmMPM&{IH<=Icl=QPsL@wWkIaQ9;d5!{KiwDTAp6ANhcA|rcd_*y;vPo-D@#WUD8 zxj?H-u8_-Qb;^#oX{dywAOO4sP%-&Maru89peVTaNW45UP{=b_+ByMxH6aCa_?|l> lFG7akQpaiL%L!NFwXt25X8cm0x*UH6P&xU?o7rDC{|kH`9-#mL literal 0 HcmV?d00001 diff --git a/public/static/UEditor/themes/default/images/arrow_down.png b/public/static/UEditor/themes/default/images/arrow_down.png new file mode 100644 index 0000000000000000000000000000000000000000..e9257e83b00375259f2f724c7cbac03d0df5ceb2 GIT binary patch literal 1610 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE;=WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2v2cW`)d{3jAFJg2T)jk)8oi3#0-$aN1{?c|g2d$P)DnfH z)bz|eTc!8A_bVx6rr0WloBA5~7C5J7WO`H;r3P2|g(O#HCtIc{+1n}DR9FEG$W1Lt zRH(?!$t$+1uvG$^YXxM3g!Ppaz)DK8ZIvL7itr6kaLzAERWQ{v&`mZlGf*%y)H5_T zF*i5YQ7|$vG|)FN(l<2HH8i&}HnK7>P=Ep@plwAdX;wilZcw{`JX@uVl9B=|ef{$C za=mh6z5JqdeM3u2OOP2xM!G;1y2X`wC5aWfdBw^w6I@b@lZ!G7N;32F6hI~>Cgqow z*eU^C3h_d20o>TUVrVb{15Cdnu|VHY&j92lm_lD){7Q3k;i`*Ef>IIg#cFVINM%8) zeo$(0erZuMFyhjbK~@!5ITxiSmgEG&eP`1g19yq1OegIswNQ-xSi<4Z1u2!m4XhFqBbF8wG<_`!+|HhuxMFc&SLMF{7Z@fVvH$#8 ze|mSH#FSX^%>h00S4ci?>YufC3b$>be$N&e)g9;i=5%xkTh1s~5&sk~hpZURp;Qa?iE^5gq z0+?2AoO*aq`+eIDGp&3MoLz0RPBnf@mZEj!Y0cZVUxN2^iyZs(a?eI%oljxTtdUFo z4zJtT6vh6mc<(8@dEybWbJNr%Pc%*VvF}gIi|llP_mw#+z3j zapfmJXkU5iJgMMaq6;%eEr0F`fv2A$yk@Z1O`YMLW4b!$#En-43)(gNwO&tIE1$YR z{=f_5V<-h{r;w^f@VvOcJ`XH-Laf=HZ$7pE8y$b zea|FcbA8_y&V4&;c0EYAF6z7Uq;gWX%!S@_GP~BiYk9@S9hp{rSmuZc`!rX#z78?b z>^=VrHI}o6**U$5wKDVU&pfZEJI56Y zoT$4mvucV;+x1h4)@uJZd{#I=XN5ldnP;uVH#)aA-sLj_f6xsvx)X=xc_v2 z@-mt-`NgS3hTn0)cfZMswpSgNlI1YlD$F(+3=d#Wzp$P!&XKAJY literal 0 HcmV?d00001 diff --git a/public/static/UEditor/themes/default/images/arrow_up.png b/public/static/UEditor/themes/default/images/arrow_up.png new file mode 100644 index 0000000000000000000000000000000000000000..74277af1e6a8ef91f8fe664efde11377a5292dbc GIT binary patch literal 1649 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE;=WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2v2c=9J8kh>{3jAFJg2T)jk)8oi3#0-$aN1{?c|g2d$P)DnfH z)bz|eTc!8A_bVx6rr0WloBA5~7C5J7WO`H;r3P2|g(O#HCtIc{+1n}DR9FEG$W1Lt zRH(?!$t$+1uvG$^YXxM3g!Ppaz)DK8ZIvL7itr6kaLzAERWQ{v&`mZlGf*%y)H5_T zF*i5YQ7|$vG|)FN(l<2HH8i&}HnK7>P=Ep@plwAdX;wilZcw{`JX@uVl9B=|ef{$C za=mh6z5JqdeM3u2OOP2xM!G;1y2X`wC5aWfdBw^w6I@b@lZ!G7N;32F6hI~>Cgqow z*eU^C3h_d2fv+#z;JjjJKmmhHzap_f-%!s$KQ|ZTFR<$3lAu(CGq9>I4yi0i)elN7 z&Mz%W2F6F4GE6ft?C@IzQV4X7m48ttFj5k8T=J7kb5rw5JY8&+fHHb1nJHGr&Zcf= zZpLmdj^@s;MuvtK&X$(07A9_{2F`9K1|}9TGqCA(Gj?@#HgIt=cQbG_G;}qxFf=l- zbaON}GPN)@wKR5t>GjMjE=kNwPKDW<3A7ig*AcH?E9aur#FG4?ko^1{SPBTp$S=t+ z&d4uNa1J(A2+zz*$uBPkMGnNTE~!PCWvMA{Mftf3;Lx?o#9}*PUqke!kP~A1K*#8V zk_J*zfe8WAABYK0_&^Rk>!juZ^GgvhW0Y{Wv@$R-E%tPA45_#^WvZ{gh@(K;>Z+== zX-At4KPH3-+4r@v2}X8*AN$Mh@OiHNYs3&%QbHW!0`#zh1`9tBzYV@8G#Wg&l2-#)h$FUdfE_lvm%b2=kt^Ebzn( zr(4oF%+7xg2Te=y(fqh}+AK?Nt8-e6Vo~YWrY1FhH}uX($oOv&HCTs__< zzEdCca~LbgR5%PtJYh=3FjGRGp=cUaJC^c^yU)Zr^k2P zlm5xRG;W0~lefT@)ERLuic?K4bNlUNS|KodrrwHIUNWEc`M1i>U^rI0VS1uR{)PLi zihmWG2&`Lpzrjh}nD@mILlb2Uhtt|CHp`N!r`KF5c$VaRcJZF}LJe(& zwV}p~KZGbP@?1Z4Mc+d4`MOQrYgSe4X#ZDh+%|1dL)h$@nv3?ZH`~Z?rV3X7(F@K> zb+Z2u>#VllaHj5&E!~}`b21Ja)w^fT&+2mzy!OR_pE1^}_1<=w+EA5Nm$Hp%M~^AK zU)Z92;jd=Sl<1n3x7z+*ci#Wo(IT=)J{K*+Q?C!N1MD&Sbd le02W-shBsPKJ+s%GgK)^wA}p_d>&K@c)I$ztaD0e0svXmV!r?Y literal 0 HcmV?d00001 diff --git a/public/static/UEditor/themes/default/images/button-bg.gif b/public/static/UEditor/themes/default/images/button-bg.gif new file mode 100644 index 0000000000000000000000000000000000000000..ec7fa2eabf0705226fe0c488d65198508bf547e9 GIT binary patch literal 1114 zcmV-g1f}~&Nk%w1VKM+R0OkMy00030|Nr{?`~Uyg|Nq+c_4NPz*Z=(3`t{5D_RRV9 z%lr1t{P@xN^27S{$occg`t-~D_Rjb6(E0Jf`t!&5^V9k7zxnUL`S8H{@x=P_$@uNP z`0c*=@5lM`q&aU|6w)f(-(ZHJcKyq);w!1v|A_vOL(=ELpXz3||{+03)&lq#;^N`q z;o#ul-{0Tf-rm~U+Sk|D(9qET|Nj6000000000000000000000A^8LW004OaEC2ui z05SkF000O7fO%_oc!h?Ch>41ei+5{zWp`--l$Dm3n3+> zsF_HyqQ#3CGiszrN8-khAVaF@xTd7ZlPFWFT*=ZTojPn{%A85Frp=o;W!90Hv!~CW zBj>nb)267=qezn~UCPvr&^vA(N|o9Msu?(T?r7c0wX4^!V8PmfVC>oFmqw6)fdnp04j^zqp|u`Sa-0r=OsK#f}aaILMz*zrOwZ z`0-!pup>tY5FP|5;D7`cXyAbdg3v(@I*72r2M|Um;e-@cXrYB0h@gWGA&@Y_haiS1 z;)o=cSRx4_Z1{o+CA8?`i!jD0v_{FvJiptdPRD zl1w(~KIEzAo_zM{=bwE7aRU-l5Rn8GGXU|#qKr1`=%bKE+9(h+P>}@@TWDd06i{^P z>8GHED(a}AN@0Z-TXdns6;*su#jCK!D(kGY)*7p;S18d%0YNN*1r}fgE9|hu7HjOW g!~VKN5CsU(L=jFzEA6z@R%`9G*G3VB0D%AiJBq`ncK`qY literal 0 HcmV?d00001 diff --git a/public/static/UEditor/themes/default/images/cancelbutton.gif b/public/static/UEditor/themes/default/images/cancelbutton.gif new file mode 100644 index 0000000000000000000000000000000000000000..df4bc2c06d485df4403d689c98ee745a4cde8e97 GIT binary patch literal 1227 zcmV;+1T_0cNk%w1VH^Ms0QUd@000010RaL60s{jB1Ox;H1qB8M1_uWR2nYxX2?+`c z3JVJh3=9kn4Gj(s4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH8XFrM z92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021EG#T7 zEiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!-Jv}}? zK0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)WtPESuy zP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5dU|?Wj zVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&OadC2T za&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8f`fyD zgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@l$4Z} zm6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*!rKP5( zrl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dkwzs#p zxVX5vxw*Q!y1To(yu7@dCU$jHda z$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~>g((4 z?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF){QUg= z{r&#_{{R2~EC2ui02}}g000R80N?d8lSPY`ECmaSA@vT~rz=b%E}1xSN+M*v*63=s zj2W|z%bEpKgUQntPOMg`Ql)Ygt58`0p~(cQlP6A|I&tD;)03AgfeIBOG>DKjY^XJ4==@p5kGnYDTB5w7&K^jxZs(hL{cL~lH}dPcdt$q zD_5TQ&|`gZmzMqH0#&%8nU(?9AzvZOs&E($thW17wAnF=2dS zixx%10*e+@Tw%iubG*?-5ob)X#T8L>VFrIHgwcf)I#^*u6G{}}gcVlU-~$+ANa4h3 zU5Eh&8T;8#LljaNAp~tsNC8C^Rb1i1Av~P%1{`$QfyY)`G0{dGGhE??7h#NH1{!Ik pfd&v=WTQt8w{C>_-)j6kG zmZ@`2opZWct<*WE%jHsMvsp;f^!~Ol**?^DO`hifs44&=f~umb34Y07v! zehXl>0V0C67HciWn4KjeEEWr@sxtk4|8?WtNwEFcm{Yc@Vy$H`7@(^3dc70h4xmY} zPa;B+{C!@Q<^CQRW6lMfrwb>zFkriOfWsf}arIZ0*)jKSzW9HD4>|2i1+FOg^6oL0 zuMGL+PHkt#*vvh~NQ@CxMMM#xZ40h-e^cjfe*)md?7iRY1HqRBjSwR0J%@RRXP>@> zkKcbjGFwIi5M!jSYpSZEsw%t>6uuy+C;C8K=M*aB-KzlIq|@mbYi)bIUbpA-`I#n_ zWy#v)_!v+R^=b{kGLNXLO{}#BFq6sTxvIY0l+`3NPhQ=Ac;nXf2W4IstBgcUD^b-d zJ3eY@@JRF1!NCEoR?7f{5J-}wDJcQkB4Re+sH#y!e2lU916r{A&pdHrm;e9(07*qo IM6N<$g2apNRsaA1 literal 0 HcmV?d00001 diff --git a/public/static/UEditor/themes/default/images/cursor_h.gif b/public/static/UEditor/themes/default/images/cursor_h.gif new file mode 100644 index 0000000000000000000000000000000000000000..d7c3e7e9eb5755d57ec03c34097c258244abe61a GIT binary patch literal 253 zcmVG|6H_V+Po~-c6$N^_IEGZ*Iy1qOk3oThS@Yxn_+t|0*P6|%n+#L~Iyf|E zrg84hNMwpx9_!-6|BEHhl_}FHLcZHi@xo+A>tN1bvzr~8Z#Ex)a8Qdkef% WRW|>PuXh3sXYh3Ob6Mw<&;$VH);Gui literal 0 HcmV?d00001 diff --git a/public/static/UEditor/themes/default/images/cursor_v.gif b/public/static/UEditor/themes/default/images/cursor_v.gif new file mode 100644 index 0000000000000000000000000000000000000000..bb508db552b6ac3f670f9ce1fcb1e55669db0dd6 GIT binary patch literal 370 zcmZ?wbhEHbQBhG}zIty_2L(xqFsZe72A-PqWelao_UPVUE#AKKd5`}glJC@2UB2rw`(IB?*A zqN1XRh{(>JJ55YXczAeJRaJNI-YqUJE-x?t@#Dumd-if8Ejy6@I4`1w~F!Qzky-V-VnInOpfk+|GDYn9AS7wc)Z8bf!!3 zZ2HZ7qm!>fg-@N3u_S6BtfcFRaLzUWGF!q z%AzEfB~`D;I)q^T@hn>GjrE?{UdLiPgP&3w>7tmXsgPC#5>G@))3jVemdgxLP8K0W zSvgGh3k4G=ZtO?YCn3lc(TL2c!850)DFo3*HcZxKVg(a36p4}m^OOpp{&p|bt$J&&x7~}fl`AqcVt%cEU2}27dM96QnwD)g zZI46N>oIHU?{_Z!WDf$^W^<7J82vsuXemZ#a;t%OX9%BFi literal 0 HcmV?d00001 diff --git a/public/static/UEditor/themes/default/images/filescan.png b/public/static/UEditor/themes/default/images/filescan.png new file mode 100644 index 0000000000000000000000000000000000000000..1d271588692c1726e3521032f71d8354b66fab0e GIT binary patch literal 4282 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 literal 0 HcmV?d00001 diff --git a/public/static/UEditor/themes/default/images/highlighted.gif b/public/static/UEditor/themes/default/images/highlighted.gif new file mode 100644 index 0000000000000000000000000000000000000000..9272b4915ad2b8d4052a19b4c80a41b7c71cf1f1 GIT binary patch literal 111 zcmZ?wbhEHb6k`x$Sjfb1_to#iH~&L`;!hSvE(RtB9R?r($ulrHOzB@K_Ll!X=Ym_^ zj literal 0 HcmV?d00001 diff --git a/public/static/UEditor/themes/default/images/icons-all.gif b/public/static/UEditor/themes/default/images/icons-all.gif new file mode 100644 index 0000000000000000000000000000000000000000..21915e59dede0aa22cda8c7097a14f0f1f68906c GIT binary patch literal 3750 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 b4O*493C(v}$CrKE*L~j?e&ctU0s;U#>#h02 literal 0 HcmV?d00001 diff --git a/public/static/UEditor/themes/default/images/icons.png b/public/static/UEditor/themes/default/images/icons.png new file mode 100644 index 0000000000000000000000000000000000000000..c015e3aac9a84ebad11b932e84722124772d9641 GIT binary patch literal 19694 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ÏmvOE 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 b`u_(2Nr-(&rSM literal 0 HcmV?d00001 diff --git a/public/static/UEditor/themes/default/images/loaderror.png b/public/static/UEditor/themes/default/images/loaderror.png new file mode 100644 index 0000000000000000000000000000000000000000..35ff3336457d48dbecbc11698ef8245441a94f82 GIT binary patch literal 3209 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 literal 0 HcmV?d00001 diff --git a/public/static/UEditor/themes/default/images/loading.gif b/public/static/UEditor/themes/default/images/loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..b713e27dfba708a01c380e7c731a13b52a34edfc GIT binary patch literal 734 zcmZ?wbhEHb6krfw*v!jdZ*RYU|9&kkt+4ULFya6I z{|pQa5E95x{Lk&@8WQa67~pE8XTZz|68g!)$-uzNpaWzB4HaNuV6okB(sT7*i`QqX zc^L!>4t!=<(wVp51?zD`Kkg=-D~S>;skcR%7#$omMC>21xN*pcHs0c0tRNsF(;}SM ziPc1Fu!&|20tT$-nJa`fCQUjv@kC+C3!quI1U@ISvoqf2Xk|(i=IUl?N@{e_G3Yq3 z;U-H^uFrB+CTuRW+i+5nfx|fagWLs?!jQY{X6=arU0riqs^&x$2`7X};t z37RYmQ;O#*G6uOVn*=nAm7~Q)&(!ybaj}oz`WtJ?PQSHN#^y?3ICf5PGS1Ha8pE+k zgJmJh5y6y1=@^y-ft=a0ZG|ZdPArq?H(+2`(;|7`F{6Xpbl>GI8B?M_My|#ljzAN4 z3Pb@-+?qdUsm6)xA>j@^Y0K7lSt}-Mopvo#qQ-sCkLXFkyF zSLvgkf4d8-w;?feL$4)lp3HYoMI*E5@=0AueT*09aVgICcu;r3k!5-F!GZ%U3=K0F z9S$(a^)KPCsC4r`z65*B*uc`x?)kvPGDl;Yns{Fj0|R3#FisfHGY4!D^0$zE1ljvXNk%w1VH^N10QUd@000010RaL60s{jB1Ox;H1qB8M1_uWR2nYxX2?+`c z3JVJh3=9kn4Gj(s4i66x5D*X%5fKs+5)%^>6ciK{6%`g178e&67#J8C85tTH8XFrM z92^`S9UUGX9v>ecARr(iAt53nA|oRsBqSsyB_$>%CMPE+C@3f?DJd!{Dl021EG#T7 zEiEoCE-x=HFfcGNF)=bSGBYzXG&D3dH8nOiHa9mnI5;>tIXOByIy*Z%JUl!-Jv}}? zK0iM{KtMo2K|w-7LPJACL_|bIMMXwNMn^|SNJvOYNl8jdN=r*iOiWBoO-)WtPESuy zP*6}&QBhJ-Qd3h?R8&+|RaI72R##V7SXfwDSy@_IT3cINTwGjTU0q&YUSD5dU|?Wj zVPRroVq;@tWMpJzWo2e&W@l$-XlQ6@X=!R|YHMq2Y;0_8ZEbFDZf|dIaBy&OadC2T za&vQYbaZreb#-=jc6WDoczAeud3kzzdV70&e0+R;eSLm@et&;|fPjF3fq{a8f`fyD zgoK2Jg@uNOhKGlTh=_=ZiHVAeii?YjjEszpjg5|uj*pLzkdTm(k&%*;l9Q8@l$4Z} zm6ev3mY0{8n3$NEnVFiJnwy)OoSdAUot>VZo}ZteprD|kp`oIpqNAguq@<*!rKP5( zrl+T;sHmu^si~@}s;jH3tgNi9t*x%EuCK4Ju&}VPv9YqUva_?Zw6wIfwY9dkwzs#p zxVX5vxw*Q!y1To(yu7@dCU$jHda z$;ryf%FD~k%*@Qq&CSlv&d<-!(9qD)(b3Y<($mw^)YR0~)z#M4*4Nk9*x1lt)=I7_<=;-L_>FMg~>g((4 z?Ck9A?d|UF?(gsK@bK{Q@$vHV^7Hfa^z`)g_4W4l_V@Sq`1ttw`T6?#`uqF){QUg= z{r&#_{{R2~EC2ui02}}=000R80RIUbNU)&6g9sBUT*$DY!-o(fN}Na$VuFhf5;SOl zQR2k}8962Z;Gkkb01ZqM%&2mp#+Cvv!u%%_X3ds21*#in3e-1?2?(ltc28ctYrP)k z{Pb@UlQicB-E)}JlDi_MMmXbuk803?iR{rRp~2S#dR_^-LU%))h*>DmHq0rnjf;8~ zsJM}rcHp`#D%4?EVW;cduL6J7ThT2kQ{cJka07oF;i3Wu4ZceYpGm&F`Sa-04-5zZJCANLt@XPdKI8X22WQ%mvv4FO#q2N BK}7%n literal 0 HcmV?d00001 diff --git a/public/static/UEditor/themes/default/images/pagebreak.gif b/public/static/UEditor/themes/default/images/pagebreak.gif new file mode 100644 index 0000000000000000000000000000000000000000..8d1cffd64af72709b1180b3b0a51bbfe30bcb8c6 GIT binary patch literal 54 zcmZ?wbhEHb{( zJaZG%Q-e|yQz{EjrrH1%u?6^qxTdA0{r~^J*gJ9sP=u)@$S?Rm!_(~sUO=9vr;B4q z#jTK2Cpj4yIG7J^{J*Sr7aP;;!*evU*UP7-zWuuR&zi{Xq6rL2tqds~bx9pSO$?r{ KelF{r5}E*+%QgN0 literal 0 HcmV?d00001 diff --git a/public/static/UEditor/themes/default/images/sortable.png b/public/static/UEditor/themes/default/images/sortable.png new file mode 100644 index 0000000000000000000000000000000000000000..1bca649698e187a80e1b1951fde99ddea3d7b038 GIT binary patch literal 2851 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 BXOsW{ literal 0 HcmV?d00001 diff --git a/public/static/UEditor/themes/default/images/spacer.gif b/public/static/UEditor/themes/default/images/spacer.gif new file mode 100644 index 0000000000000000000000000000000000000000..5bfd67a2d6f72ac3a55cbfcea5866e841d22f5d9 GIT binary patch literal 43 mcmZ?wbhEHbWMp7uXkdT>#h)yUAf^t80Ld^gF}W}@SOWlZ0R#L1 literal 0 HcmV?d00001 diff --git a/public/static/UEditor/themes/default/images/sparator_v.png b/public/static/UEditor/themes/default/images/sparator_v.png new file mode 100644 index 0000000000000000000000000000000000000000..8cf5662da8c36a446e1e08eb71b992c730ab8d15 GIT binary patch literal 122 zcmeAS@N?(olHy`uVBq!ia0vp^OhC-Y0V1m%Ufcz7ii6yp7}lMWc?smOq&xaLGB9lH z=l+w(3gmMZctjR6Fz_7)VaDV6D^h@h{GKk3Arj%q6<>aQ{Qv(yqp%0-vU7cb$AD4{ Mp00i_>zopr0ET%XRR910 literal 0 HcmV?d00001 diff --git a/public/static/UEditor/themes/default/images/table-cell-align.png b/public/static/UEditor/themes/default/images/table-cell-align.png new file mode 100644 index 0000000000000000000000000000000000000000..ddf42853ea5c00663e74d9195d1f1264ab684252 GIT binary patch literal 1847 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 literal 0 HcmV?d00001 diff --git a/public/static/UEditor/themes/default/images/toolbar_bg.png b/public/static/UEditor/themes/default/images/toolbar_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..7ab685f4236ad543601b0d7dc43e429e041bee98 GIT binary patch literal 170 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI{!2~3a95{LaNJ*BsMwA5Sra_n`~3ut zhqFCqhNk>9eAm}?**d-K>ErgL-9FQkEgB1_|9|!V%ggstduo?ezj^hOMS@|yt(J@G Th3lO_a~V8c{an^LB{Ts5X5&F_ literal 0 HcmV?d00001 diff --git a/public/static/UEditor/themes/default/images/unhighlighted.gif b/public/static/UEditor/themes/default/images/unhighlighted.gif new file mode 100644 index 0000000000000000000000000000000000000000..7ad0b67ae634d41e76848ec0b6696e8ac7e06983 GIT binary patch literal 111 zcmZ?wbhEHb6k`x$Sjfci#j9d&%3_1)z0Fq~5a+uP;QtU1Nea;29 zx*cclynVJpP9xwz=Q6F#ReGoPZ4xWkEPX#)_EqLPYsO~h_`vc#s_EX6+DxrJi$d-_ L>N=ao&0q}x{nsuG literal 0 HcmV?d00001 diff --git a/public/static/UEditor/themes/default/images/upload.png b/public/static/UEditor/themes/default/images/upload.png new file mode 100644 index 0000000000000000000000000000000000000000..08d4d9268204a20ca343bf75784302cc706d2417 GIT binary patch literal 6608 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 O00001IobTth)ve1{+;xF-z$zX1$@cbk;N#jz zM8mU4YCupmEU?Nii0lQg^bRCan?Ab3%VAH658-8xBFJMB`IuzR@?X?_cxg~njWe8Z z7he1{t~NY@;sD2oqwB>InLWHP3|(&rFL;_%YXisG!f|)t`LI~xqj*wKLbXWp)f$eo z4#asOE4^bXVR1zDClZ^-`L@9YE{GEUM6w@>B$|*3C13A^6xxLq**_!Pdr{&MM+{D{ z56z@TzG*@hw6S^P4v136mt~*C)1y;z@#LIHDjO7zE0$NBVk(?tEAPD`x}r!4rSvo+ zGrN|Z-`M*gk?fXS+qo0;d0 zh<&hBzt>Fxc`eUN=*S8tip(N)4%c-Hsa$abS1kGZZD3dwRL~Y&OiQls$!Zy(aK#~| zjPP=1B(V$A*qhVABln1FxZ*mlSSnXYWQzzgJF1owUC)i7_7-#saE!r1=5SG$fWQ*I z?G_O^BB^|7ZhisN&MW7LKFbwbTU$SV{P_O;`{w56#>U3_`uf`1+Un}+%F2pDp;%g4 zT3lS5pP!e@<#Tg$GMVhlmoKxkvokX@)6>(Flao@ZbYfycB9V-bkB^RyibNuzP$&=x zMn*=4hK2?Q2l;$HkH;Gr80hQk>+S93a=9E1r@OnG&1QFYb~2ev27}Sj(b3-C-qzOE z+}zyQ*hr;PDHIBkNX*O2%g)YDPEJltOhlnjzdrQ8MQa@l0suN-^vmE^6Tt3mAau_$ zXbql@q{N)M&$25b1FG78WjFA2Q`{wpcH+plH-T+lc4H{-V^L{To}?sY^7t- zRp-#0EC|Fh>5nV9*osg354U2y3FFpwXQ!`Na;JKQ;uHrYmb=qU|MBr zTOt(Y=@VUlJq+6mQt^WJ9lIJTz?$6jvB@_0Ijg#xyHYhx6QE$9@Q;P`SNru{MQcx_ z>I9eqMm;}}tfJ*J&?Udq;ijL1AIs^TNj%ED8++(4bqQ3YK5><%~obS)3oEv z2`L9EwBilZbt=4c48b+h%ydj29TQf1;FclAt3p@D@Iv$C>k|Ryx={((b>+iEv*M}T zw2%>2(|!*aqioP7@6#WGj~%z23qkbWx? zq>K{ydFDHsgH&Ab#e8p|DBB+i&e7YjgH&Dp_Cc?zbGzF=vu-e#1^&&3UitP6Qvg=W z;+>M!e1J%3O7HX-hEcUA+~cC@8WAyj^bml>?&AT`HEEBQ}9Z=3X$i*Zty)I zU*Zj5^tvjIuB=l9Z9~T)&b;Eg=FK&TO>3g*yVOqt8d@&{JXvVbxz7~cYII$TQHvSS zgJ#LpO3a#6>HScB5@i5vKw}cnyiI*AUkCSPz7s6};*mIoCN(8C-gssBWz<}Twr?3} zMG(-KVyeCT&UjVicgg-NE@GN=DKAW@1zjD3zqggT>WPOqXK6a*HA(U%`Q-^?%QNdz M>|NJq=D?r-0Tclc1poj5 literal 0 HcmV?d00001 diff --git a/public/static/UEditor/themes/default/images/word.gif b/public/static/UEditor/themes/default/images/word.gif new file mode 100644 index 0000000000000000000000000000000000000000..9ef5d09b7b30c4f3225f77788462e429cc494b9b GIT binary patch literal 1019 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 bp?H9uNI6(~=EJQ&zcn<}bW|&qZNmQtXU+rA literal 0 HcmV?d00001 diff --git a/public/static/UEditor/themes/iframe.css b/public/static/UEditor/themes/iframe.css new file mode 100644 index 00000000..774013af --- /dev/null +++ b/public/static/UEditor/themes/iframe.css @@ -0,0 +1 @@ +/*可以在这里添加你自己的css*/ diff --git a/public/static/UEditor/third-party/codemirror/codemirror.css b/public/static/UEditor/third-party/codemirror/codemirror.css new file mode 100644 index 00000000..461ae195 --- /dev/null +++ b/public/static/UEditor/third-party/codemirror/codemirror.css @@ -0,0 +1,104 @@ +.CodeMirror { + line-height: 1em; + font-family: monospace; +} + +.CodeMirror-scroll { + overflow: auto; + height: 300px; + /* This is needed to prevent an IE[67] bug where the scrolled content + is visible outside of the scrolling box. */ + position: relative; +} + +.CodeMirror-gutter { + position: absolute; left: 0; top: 0; + z-index: 10; + background-color: #f7f7f7; + border-right: 1px solid #eee; + min-width: 2em; + height: 100%; +} +.CodeMirror-gutter-text { + color: #aaa; + text-align: right; + padding: .4em .2em .4em .4em; + white-space: pre !important; +} +.CodeMirror-lines { + padding: .4em; +} + +.CodeMirror pre { + -moz-border-radius: 0; + -webkit-border-radius: 0; + -o-border-radius: 0; + border-radius: 0; + border-width: 0; margin: 0; padding: 0; background: transparent; + font-family: inherit; + font-size: inherit; + padding: 0; margin: 0; + white-space: pre; + word-wrap: normal; +} + +.CodeMirror-wrap pre { + word-wrap: break-word; + white-space: pre-wrap; +} +.CodeMirror-wrap .CodeMirror-scroll { + overflow-x: hidden; +} + +.CodeMirror textarea { + outline: none !important; +} + +.CodeMirror pre.CodeMirror-cursor { + z-index: 10; + position: absolute; + visibility: hidden; + border-left: 1px solid black; +} +.CodeMirror-focused pre.CodeMirror-cursor { + visibility: visible; +} + +span.CodeMirror-selected { background: #d9d9d9; } +.CodeMirror-focused span.CodeMirror-selected { background: #d2dcf8; } + +.CodeMirror-searching {background: #ffa;} + +/* Default theme */ + +.cm-s-default span.cm-keyword {color: #708;} +.cm-s-default span.cm-atom {color: #219;} +.cm-s-default span.cm-number {color: #164;} +.cm-s-default span.cm-def {color: #00f;} +.cm-s-default span.cm-variable {color: black;} +.cm-s-default span.cm-variable-2 {color: #05a;} +.cm-s-default span.cm-variable-3 {color: #085;} +.cm-s-default span.cm-property {color: black;} +.cm-s-default span.cm-operator {color: black;} +.cm-s-default span.cm-comment {color: #a50;} +.cm-s-default span.cm-string {color: #a11;} +.cm-s-default span.cm-string-2 {color: #f50;} +.cm-s-default span.cm-meta {color: #555;} +.cm-s-default span.cm-error {color: #f00;} +.cm-s-default span.cm-qualifier {color: #555;} +.cm-s-default span.cm-builtin {color: #30a;} +.cm-s-default span.cm-bracket {color: #cc7;} +.cm-s-default span.cm-tag {color: #170;} +.cm-s-default span.cm-attribute {color: #00c;} +.cm-s-default span.cm-header {color: #a0a;} +.cm-s-default span.cm-quote {color: #090;} +.cm-s-default span.cm-hr {color: #999;} +.cm-s-default span.cm-link {color: #00c;} + +span.cm-header, span.cm-strong {font-weight: bold;} +span.cm-em {font-style: italic;} +span.cm-emstrong {font-style: italic; font-weight: bold;} +span.cm-link {text-decoration: underline;} + +div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;} +div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;} diff --git a/public/static/UEditor/third-party/codemirror/codemirror.js b/public/static/UEditor/third-party/codemirror/codemirror.js new file mode 100644 index 00000000..966c3207 --- /dev/null +++ b/public/static/UEditor/third-party/codemirror/codemirror.js @@ -0,0 +1,3581 @@ +// CodeMirror version 2.2 +// +// All functions that need access to the editor's state live inside +// the CodeMirror function. Below that, at the bottom of the file, +// some utilities are defined. + +// CodeMirror is the only global var we claim +var CodeMirror = (function() { + // This is the function that produces an editor instance. It's + // closure is used to store the editor state. + function CodeMirror(place, givenOptions) { + // Determine effective options based on given values and defaults. + var options = {}, defaults = CodeMirror.defaults; + for (var opt in defaults) + if (defaults.hasOwnProperty(opt)) + options[opt] = (givenOptions && givenOptions.hasOwnProperty(opt) ? givenOptions : defaults)[opt]; + + var targetDocument = options["document"]; + // The element in which the editor lives. + var wrapper = targetDocument.createElement("div"); + wrapper.className = "CodeMirror" + (options.lineWrapping ? " CodeMirror-wrap" : ""); + // This mess creates the base DOM structure for the editor. + wrapper.innerHTML = + '
    ' + // Wraps and hides input textarea + '
    ' + + '
    ' + + '
    ' + // Set to the height of the text, causes scrolling + '
    ' + // Moved around its parent to cover visible view + '
    ' + + // Provides positioning relative to (visible) text origin + '
    ' + + '
    ' + + '
     
    ' + // Absolutely positioned blinky cursor + '
    ' + // This DIV contains the actual code + '
    '; + if (place.appendChild) place.appendChild(wrapper); else place(wrapper); + // I've never seen more elegant code in my life. + var inputDiv = wrapper.firstChild, input = inputDiv.firstChild, + scroller = wrapper.lastChild, code = scroller.firstChild, + mover = code.firstChild, gutter = mover.firstChild, gutterText = gutter.firstChild, + lineSpace = gutter.nextSibling.firstChild, measure = lineSpace.firstChild, + cursor = measure.nextSibling, lineDiv = cursor.nextSibling; + themeChanged(); + // Needed to hide big blue blinking cursor on Mobile Safari + if (/AppleWebKit/.test(navigator.userAgent) && /Mobile\/\w+/.test(navigator.userAgent)) input.style.width = "0px"; + if (!webkit) lineSpace.draggable = true; + if (options.tabindex != null) input.tabIndex = options.tabindex; + if (!options.gutter && !options.lineNumbers) gutter.style.display = "none"; + + // Check for problem with IE innerHTML not working when we have a + // P (or similar) parent node. + try { stringWidth("x"); } + catch (e) { + if (e.message.match(/runtime/i)) + e = new Error("A CodeMirror inside a P-style element does not work in Internet Explorer. (innerHTML bug)"); + throw e; + } + + // Delayed object wrap timeouts, making sure only one is active. blinker holds an interval. + var poll = new Delayed(), highlight = new Delayed(), blinker; + + // mode holds a mode API object. doc is the tree of Line objects, + // work an array of lines that should be parsed, and history the + // undo history (instance of History constructor). + var mode, doc = new BranchChunk([new LeafChunk([new Line("")])]), work, focused; + loadMode(); + // The selection. These are always maintained to point at valid + // positions. Inverted is used to remember that the user is + // selecting bottom-to-top. + var sel = {from: {line: 0, ch: 0}, to: {line: 0, ch: 0}, inverted: false}; + // Selection-related flags. shiftSelecting obviously tracks + // whether the user is holding shift. + var shiftSelecting, lastClick, lastDoubleClick, draggingText, overwrite = false; + // Variables used by startOperation/endOperation to track what + // happened during the operation. + var updateInput, userSelChange, changes, textChanged, selectionChanged, leaveInputAlone, + gutterDirty, callbacks; + // Current visible range (may be bigger than the view window). + var displayOffset = 0, showingFrom = 0, showingTo = 0, lastSizeC = 0; + // bracketHighlighted is used to remember that a backet has been + // marked. + var bracketHighlighted; + // Tracks the maximum line length so that the horizontal scrollbar + // can be kept static when scrolling. + var maxLine = "", maxWidth, tabText = computeTabText(); + + // Initialize the content. + operation(function(){setValue(options.value || ""); updateInput = false;})(); + var history = new History(); + + // Register our event handlers. + connect(scroller, "mousedown", operation(onMouseDown)); + connect(scroller, "dblclick", operation(onDoubleClick)); + connect(lineSpace, "dragstart", onDragStart); + connect(lineSpace, "selectstart", e_preventDefault); + // Gecko browsers fire contextmenu *after* opening the menu, at + // which point we can't mess with it anymore. Context menu is + // handled in onMouseDown for Gecko. + if (!gecko) connect(scroller, "contextmenu", onContextMenu); + connect(scroller, "scroll", function() { + updateDisplay([]); + if (options.fixedGutter) gutter.style.left = scroller.scrollLeft + "px"; + if (options.onScroll) options.onScroll(instance); + }); + connect(window, "resize", function() {updateDisplay(true);}); + connect(input, "keyup", operation(onKeyUp)); + connect(input, "input", fastPoll); + connect(input, "keydown", operation(onKeyDown)); + connect(input, "keypress", operation(onKeyPress)); + connect(input, "focus", onFocus); + connect(input, "blur", onBlur); + + connect(scroller, "dragenter", e_stop); + connect(scroller, "dragover", e_stop); + connect(scroller, "drop", operation(onDrop)); + connect(scroller, "paste", function(){focusInput(); fastPoll();}); + connect(input, "paste", fastPoll); + connect(input, "cut", operation(function(){replaceSelection("");})); + + // IE throws unspecified error in certain cases, when + // trying to access activeElement before onload + var hasFocus; try { hasFocus = (targetDocument.activeElement == input); } catch(e) { } + if (hasFocus) setTimeout(onFocus, 20); + else onBlur(); + + function isLine(l) {return l >= 0 && l < doc.size;} + // The instance object that we'll return. Mostly calls out to + // local functions in the CodeMirror function. Some do some extra + // range checking and/or clipping. operation is used to wrap the + // call so that changes it makes are tracked, and the display is + // updated afterwards. + var instance = wrapper.CodeMirror = { + getValue: getValue, + setValue: operation(setValue), + getSelection: getSelection, + replaceSelection: operation(replaceSelection), + focus: function(){focusInput(); onFocus(); fastPoll();}, + setOption: function(option, value) { + var oldVal = options[option]; + options[option] = value; + if (option == "mode" || option == "indentUnit") loadMode(); + else if (option == "readOnly" && value) {onBlur(); input.blur();} + else if (option == "theme") themeChanged(); + else if (option == "lineWrapping" && oldVal != value) operation(wrappingChanged)(); + else if (option == "tabSize") operation(tabsChanged)(); + if (option == "lineNumbers" || option == "gutter" || option == "firstLineNumber" || option == "theme") + operation(gutterChanged)(); + }, + getOption: function(option) {return options[option];}, + undo: operation(undo), + redo: operation(redo), + indentLine: operation(function(n, dir) { + if (isLine(n)) indentLine(n, dir == null ? "smart" : dir ? "add" : "subtract"); + }), + indentSelection: operation(indentSelected), + historySize: function() {return {undo: history.done.length, redo: history.undone.length};}, + clearHistory: function() {history = new History();}, + matchBrackets: operation(function(){matchBrackets(true);}), + getTokenAt: operation(function(pos) { + pos = clipPos(pos); + return getLine(pos.line).getTokenAt(mode, getStateBefore(pos.line), pos.ch); + }), + getStateAfter: function(line) { + line = clipLine(line == null ? doc.size - 1: line); + return getStateBefore(line + 1); + }, + cursorCoords: function(start){ + if (start == null) start = sel.inverted; + return pageCoords(start ? sel.from : sel.to); + }, + charCoords: function(pos){return pageCoords(clipPos(pos));}, + coordsChar: function(coords) { + var off = eltOffset(lineSpace); + return coordsChar(coords.x - off.left, coords.y - off.top); + }, + markText: operation(markText), + setBookmark: setBookmark, + setMarker: operation(addGutterMarker), + clearMarker: operation(removeGutterMarker), + setLineClass: operation(setLineClass), + hideLine: operation(function(h) {return setLineHidden(h, true);}), + showLine: operation(function(h) {return setLineHidden(h, false);}), + onDeleteLine: function(line, f) { + if (typeof line == "number") { + if (!isLine(line)) return null; + line = getLine(line); + } + (line.handlers || (line.handlers = [])).push(f); + return line; + }, + lineInfo: lineInfo, + addWidget: function(pos, node, scroll, vert, horiz) { + pos = localCoords(clipPos(pos)); + var top = pos.yBot, left = pos.x; + node.style.position = "absolute"; + code.appendChild(node); + if (vert == "over") top = pos.y; + else if (vert == "near") { + var vspace = Math.max(scroller.offsetHeight, doc.height * textHeight()), + hspace = Math.max(code.clientWidth, lineSpace.clientWidth) - paddingLeft(); + if (pos.yBot + node.offsetHeight > vspace && pos.y > node.offsetHeight) + top = pos.y - node.offsetHeight; + if (left + node.offsetWidth > hspace) + left = hspace - node.offsetWidth; + } + node.style.top = (top + paddingTop()) + "px"; + node.style.left = node.style.right = ""; + if (horiz == "right") { + left = code.clientWidth - node.offsetWidth; + node.style.right = "0px"; + } else { + if (horiz == "left") left = 0; + else if (horiz == "middle") left = (code.clientWidth - node.offsetWidth) / 2; + node.style.left = (left + paddingLeft()) + "px"; + } + if (scroll) + scrollIntoView(left, top, left + node.offsetWidth, top + node.offsetHeight); + }, + + lineCount: function() {return doc.size;}, + clipPos: clipPos, + getCursor: function(start) { + if (start == null) start = sel.inverted; + return copyPos(start ? sel.from : sel.to); + }, + somethingSelected: function() {return !posEq(sel.from, sel.to);}, + setCursor: operation(function(line, ch, user) { + if (ch == null && typeof line.line == "number") setCursor(line.line, line.ch, user); + else setCursor(line, ch, user); + }), + setSelection: operation(function(from, to, user) { + (user ? setSelectionUser : setSelection)(clipPos(from), clipPos(to || from)); + }), + getLine: function(line) {if (isLine(line)) return getLine(line).text;}, + getLineHandle: function(line) {if (isLine(line)) return getLine(line);}, + setLine: operation(function(line, text) { + if (isLine(line)) replaceRange(text, {line: line, ch: 0}, {line: line, ch: getLine(line).text.length}); + }), + removeLine: operation(function(line) { + if (isLine(line)) replaceRange("", {line: line, ch: 0}, clipPos({line: line+1, ch: 0})); + }), + replaceRange: operation(replaceRange), + getRange: function(from, to) {return getRange(clipPos(from), clipPos(to));}, + + execCommand: function(cmd) {return commands[cmd](instance);}, + // Stuff used by commands, probably not much use to outside code. + moveH: operation(moveH), + deleteH: operation(deleteH), + moveV: operation(moveV), + toggleOverwrite: function() {overwrite = !overwrite;}, + + posFromIndex: function(off) { + var lineNo = 0, ch; + doc.iter(0, doc.size, function(line) { + var sz = line.text.length + 1; + if (sz > off) { ch = off; return true; } + off -= sz; + ++lineNo; + }); + return clipPos({line: lineNo, ch: ch}); + }, + indexFromPos: function (coords) { + if (coords.line < 0 || coords.ch < 0) return 0; + var index = coords.ch; + doc.iter(0, coords.line, function (line) { + index += line.text.length + 1; + }); + return index; + }, + + operation: function(f){return operation(f)();}, + refresh: function(){updateDisplay(true);}, + getInputField: function(){return input;}, + getWrapperElement: function(){return wrapper;}, + getScrollerElement: function(){return scroller;}, + getGutterElement: function(){return gutter;} + }; + + function getLine(n) { return getLineAt(doc, n); } + function updateLineHeight(line, height) { + gutterDirty = true; + var diff = height - line.height; + for (var n = line; n; n = n.parent) n.height += diff; + } + + function setValue(code) { + var top = {line: 0, ch: 0}; + updateLines(top, {line: doc.size - 1, ch: getLine(doc.size-1).text.length}, + splitLines(code), top, top); + updateInput = true; + } + function getValue(code) { + var text = []; + doc.iter(0, doc.size, function(line) { text.push(line.text); }); + return text.join("\n"); + } + + function onMouseDown(e) { + setShift(e.shiftKey); + // Check whether this is a click in a widget + for (var n = e_target(e); n != wrapper; n = n.parentNode) + if (n.parentNode == code && n != mover) return; + + // See if this is a click in the gutter + for (var n = e_target(e); n != wrapper; n = n.parentNode) + if (n.parentNode == gutterText) { + if (options.onGutterClick) + options.onGutterClick(instance, indexOf(gutterText.childNodes, n) + showingFrom, e); + return e_preventDefault(e); + } + + var start = posFromMouse(e); + + switch (e_button(e)) { + case 3: + if (gecko && !mac) onContextMenu(e); + return; + case 2: + if (start) setCursor(start.line, start.ch, true); + return; + } + // For button 1, if it was clicked inside the editor + // (posFromMouse returning non-null), we have to adjust the + // selection. + if (!start) {if (e_target(e) == scroller) e_preventDefault(e); return;} + + if (!focused) onFocus(); + + var now = +new Date; + if (lastDoubleClick && lastDoubleClick.time > now - 400 && posEq(lastDoubleClick.pos, start)) { + e_preventDefault(e); + setTimeout(focusInput, 20); + return selectLine(start.line); + } else if (lastClick && lastClick.time > now - 400 && posEq(lastClick.pos, start)) { + lastDoubleClick = {time: now, pos: start}; + e_preventDefault(e); + return selectWordAt(start); + } else { lastClick = {time: now, pos: start}; } + + var last = start, going; + if (dragAndDrop && !posEq(sel.from, sel.to) && + !posLess(start, sel.from) && !posLess(sel.to, start)) { + // Let the drag handler handle this. + if (webkit) lineSpace.draggable = true; + var up = connect(targetDocument, "mouseup", operation(function(e2) { + if (webkit) lineSpace.draggable = false; + draggingText = false; + up(); + if (Math.abs(e.clientX - e2.clientX) + Math.abs(e.clientY - e2.clientY) < 10) { + e_preventDefault(e2); + setCursor(start.line, start.ch, true); + focusInput(); + } + }), true); + draggingText = true; + return; + } + e_preventDefault(e); + setCursor(start.line, start.ch, true); + + function extend(e) { + var cur = posFromMouse(e, true); + if (cur && !posEq(cur, last)) { + if (!focused) onFocus(); + last = cur; + setSelectionUser(start, cur); + updateInput = false; + var visible = visibleLines(); + if (cur.line >= visible.to || cur.line < visible.from) + going = setTimeout(operation(function(){extend(e);}), 150); + } + } + + var move = connect(targetDocument, "mousemove", operation(function(e) { + clearTimeout(going); + e_preventDefault(e); + extend(e); + }), true); + var up = connect(targetDocument, "mouseup", operation(function(e) { + clearTimeout(going); + var cur = posFromMouse(e); + if (cur) setSelectionUser(start, cur); + e_preventDefault(e); + focusInput(); + updateInput = true; + move(); up(); + }), true); + } + function onDoubleClick(e) { + for (var n = e_target(e); n != wrapper; n = n.parentNode) + if (n.parentNode == gutterText) return e_preventDefault(e); + var start = posFromMouse(e); + if (!start) return; + lastDoubleClick = {time: +new Date, pos: start}; + e_preventDefault(e); + selectWordAt(start); + } + function onDrop(e) { + e.preventDefault(); + var pos = posFromMouse(e, true), files = e.dataTransfer.files; + if (!pos || options.readOnly) return; + if (files && files.length && window.FileReader && window.File) { + function loadFile(file, i) { + var reader = new FileReader; + reader.onload = function() { + text[i] = reader.result; + if (++read == n) { + pos = clipPos(pos); + operation(function() { + var end = replaceRange(text.join(""), pos, pos); + setSelectionUser(pos, end); + })(); + } + }; + reader.readAsText(file); + } + var n = files.length, text = Array(n), read = 0; + for (var i = 0; i < n; ++i) loadFile(files[i], i); + } + else { + try { + var text = e.dataTransfer.getData("Text"); + if (text) { + var end = replaceRange(text, pos, pos); + var curFrom = sel.from, curTo = sel.to; + setSelectionUser(pos, end); + if (draggingText) replaceRange("", curFrom, curTo); + focusInput(); + } + } + catch(e){} + } + } + function onDragStart(e) { + var txt = getSelection(); + // This will reset escapeElement + htmlEscape(txt); + e.dataTransfer.setDragImage(escapeElement, 0, 0); + e.dataTransfer.setData("Text", txt); + } + function handleKeyBinding(e) { + var name = keyNames[e.keyCode], next = keyMap[options.keyMap].auto, bound, dropShift; + if (name == null || e.altGraphKey) { + if (next) options.keyMap = next; + return null; + } + if (e.altKey) name = "Alt-" + name; + if (e.ctrlKey) name = "Ctrl-" + name; + if (e.metaKey) name = "Cmd-" + name; + if (e.shiftKey && (bound = lookupKey("Shift-" + name, options.extraKeys, options.keyMap))) { + dropShift = true; + } else { + bound = lookupKey(name, options.extraKeys, options.keyMap); + } + if (typeof bound == "string") { + if (commands.propertyIsEnumerable(bound)) bound = commands[bound]; + else bound = null; + } + if (next && (bound || !isModifierKey(e))) options.keyMap = next; + if (!bound) return false; + if (dropShift) { + var prevShift = shiftSelecting; + shiftSelecting = null; + bound(instance); + shiftSelecting = prevShift; + } else bound(instance); + e_preventDefault(e); + return true; + } + var lastStoppedKey = null; + function onKeyDown(e) { + if (!focused) onFocus(); + var code = e.keyCode; + // IE does strange things with escape. + if (ie && code == 27) { e.returnValue = false; } + setShift(code == 16 || e.shiftKey); + // First give onKeyEvent option a chance to handle this. + if (options.onKeyEvent && options.onKeyEvent(instance, addStop(e))) return; + var handled = handleKeyBinding(e); + if (window.opera) { + lastStoppedKey = handled ? e.keyCode : null; + // Opera has no cut event... we try to at least catch the key combo + if (!handled && (mac ? e.metaKey : e.ctrlKey) && e.keyCode == 88) + replaceSelection(""); + } + } + function onKeyPress(e) { + if (window.opera && e.keyCode == lastStoppedKey) {lastStoppedKey = null; e_preventDefault(e); return;} + if (options.onKeyEvent && options.onKeyEvent(instance, addStop(e))) return; + if (window.opera && !e.which && handleKeyBinding(e)) return; + if (options.electricChars && mode.electricChars) { + var ch = String.fromCharCode(e.charCode == null ? e.keyCode : e.charCode); + if (mode.electricChars.indexOf(ch) > -1) + setTimeout(operation(function() {indentLine(sel.to.line, "smart");}), 75); + } + fastPoll(); + } + function onKeyUp(e) { + if (options.onKeyEvent && options.onKeyEvent(instance, addStop(e))) return; + if (e.keyCode == 16) shiftSelecting = null; + } + + function onFocus() { + if (options.readOnly) return; + if (!focused) { + if (options.onFocus) options.onFocus(instance); + focused = true; + if (wrapper.className.search(/\bCodeMirror-focused\b/) == -1) + wrapper.className += " CodeMirror-focused"; + if (!leaveInputAlone) resetInput(true); + } + slowPoll(); + restartBlink(); + } + function onBlur() { + if (focused) { + if (options.onBlur) options.onBlur(instance); + focused = false; + wrapper.className = wrapper.className.replace(" CodeMirror-focused", ""); + } + clearInterval(blinker); + setTimeout(function() {if (!focused) shiftSelecting = null;}, 150); + } + + // Replace the range from from to to by the strings in newText. + // Afterwards, set the selection to selFrom, selTo. + function updateLines(from, to, newText, selFrom, selTo) { + if (history) { + var old = []; + doc.iter(from.line, to.line + 1, function(line) { old.push(line.text); }); + history.addChange(from.line, newText.length, old); + while (history.done.length > options.undoDepth) history.done.shift(); + } + updateLinesNoUndo(from, to, newText, selFrom, selTo); + } + function unredoHelper(from, to) { + var change = from.pop(); + if (change) { + var replaced = [], end = change.start + change.added; + doc.iter(change.start, end, function(line) { replaced.push(line.text); }); + to.push({start: change.start, added: change.old.length, old: replaced}); + var pos = clipPos({line: change.start + change.old.length - 1, + ch: editEnd(replaced[replaced.length-1], change.old[change.old.length-1])}); + updateLinesNoUndo({line: change.start, ch: 0}, {line: end - 1, ch: getLine(end-1).text.length}, change.old, pos, pos); + updateInput = true; + } + } + function undo() {unredoHelper(history.done, history.undone);} + function redo() {unredoHelper(history.undone, history.done);} + + function updateLinesNoUndo(from, to, newText, selFrom, selTo) { + var recomputeMaxLength = false, maxLineLength = maxLine.length; + if (!options.lineWrapping) + doc.iter(from.line, to.line, function(line) { + if (line.text.length == maxLineLength) {recomputeMaxLength = true; return true;} + }); + if (from.line != to.line || newText.length > 1) gutterDirty = true; + + var nlines = to.line - from.line, firstLine = getLine(from.line), lastLine = getLine(to.line); + // First adjust the line structure, taking some care to leave highlighting intact. + if (from.ch == 0 && to.ch == 0 && newText[newText.length - 1] == "") { + // This is a whole-line replace. Treated specially to make + // sure line objects move the way they are supposed to. + var added = [], prevLine = null; + if (from.line) { + prevLine = getLine(from.line - 1); + prevLine.fixMarkEnds(lastLine); + } else lastLine.fixMarkStarts(); + for (var i = 0, e = newText.length - 1; i < e; ++i) + added.push(Line.inheritMarks(newText[i], prevLine)); + if (nlines) doc.remove(from.line, nlines, callbacks); + if (added.length) doc.insert(from.line, added); + } else if (firstLine == lastLine) { + if (newText.length == 1) + firstLine.replace(from.ch, to.ch, newText[0]); + else { + lastLine = firstLine.split(to.ch, newText[newText.length-1]); + firstLine.replace(from.ch, null, newText[0]); + firstLine.fixMarkEnds(lastLine); + var added = []; + for (var i = 1, e = newText.length - 1; i < e; ++i) + added.push(Line.inheritMarks(newText[i], firstLine)); + added.push(lastLine); + doc.insert(from.line + 1, added); + } + } else if (newText.length == 1) { + firstLine.replace(from.ch, null, newText[0]); + lastLine.replace(null, to.ch, ""); + firstLine.append(lastLine); + doc.remove(from.line + 1, nlines, callbacks); + } else { + var added = []; + firstLine.replace(from.ch, null, newText[0]); + lastLine.replace(null, to.ch, newText[newText.length-1]); + firstLine.fixMarkEnds(lastLine); + for (var i = 1, e = newText.length - 1; i < e; ++i) + added.push(Line.inheritMarks(newText[i], firstLine)); + if (nlines > 1) doc.remove(from.line + 1, nlines - 1, callbacks); + doc.insert(from.line + 1, added); + } + if (options.lineWrapping) { + var perLine = scroller.clientWidth / charWidth() - 3; + doc.iter(from.line, from.line + newText.length, function(line) { + if (line.hidden) return; + var guess = Math.ceil(line.text.length / perLine) || 1; + if (guess != line.height) updateLineHeight(line, guess); + }); + } else { + doc.iter(from.line, i + newText.length, function(line) { + var l = line.text; + if (l.length > maxLineLength) { + maxLine = l; maxLineLength = l.length; maxWidth = null; + recomputeMaxLength = false; + } + }); + if (recomputeMaxLength) { + maxLineLength = 0; maxLine = ""; maxWidth = null; + doc.iter(0, doc.size, function(line) { + var l = line.text; + if (l.length > maxLineLength) { + maxLineLength = l.length; maxLine = l; + } + }); + } + } + + // Add these lines to the work array, so that they will be + // highlighted. Adjust work lines if lines were added/removed. + var newWork = [], lendiff = newText.length - nlines - 1; + for (var i = 0, l = work.length; i < l; ++i) { + var task = work[i]; + if (task < from.line) newWork.push(task); + else if (task > to.line) newWork.push(task + lendiff); + } + var hlEnd = from.line + Math.min(newText.length, 500); + highlightLines(from.line, hlEnd); + newWork.push(hlEnd); + work = newWork; + startWorker(100); + // Remember that these lines changed, for updating the display + changes.push({from: from.line, to: to.line + 1, diff: lendiff}); + var changeObj = {from: from, to: to, text: newText}; + if (textChanged) { + for (var cur = textChanged; cur.next; cur = cur.next) {} + cur.next = changeObj; + } else textChanged = changeObj; + + // Update the selection + function updateLine(n) {return n <= Math.min(to.line, to.line + lendiff) ? n : n + lendiff;} + setSelection(selFrom, selTo, updateLine(sel.from.line), updateLine(sel.to.line)); + + // Make sure the scroll-size div has the correct height. + code.style.height = (doc.height * textHeight() + 2 * paddingTop()) + "px"; + } + + function replaceRange(code, from, to) { + from = clipPos(from); + if (!to) to = from; else to = clipPos(to); + code = splitLines(code); + function adjustPos(pos) { + if (posLess(pos, from)) return pos; + if (!posLess(to, pos)) return end; + var line = pos.line + code.length - (to.line - from.line) - 1; + var ch = pos.ch; + if (pos.line == to.line) + ch += code[code.length-1].length - (to.ch - (to.line == from.line ? from.ch : 0)); + return {line: line, ch: ch}; + } + var end; + replaceRange1(code, from, to, function(end1) { + end = end1; + return {from: adjustPos(sel.from), to: adjustPos(sel.to)}; + }); + return end; + } + function replaceSelection(code, collapse) { + replaceRange1(splitLines(code), sel.from, sel.to, function(end) { + if (collapse == "end") return {from: end, to: end}; + else if (collapse == "start") return {from: sel.from, to: sel.from}; + else return {from: sel.from, to: end}; + }); + } + function replaceRange1(code, from, to, computeSel) { + var endch = code.length == 1 ? code[0].length + from.ch : code[code.length-1].length; + var newSel = computeSel({line: from.line + code.length - 1, ch: endch}); + updateLines(from, to, code, newSel.from, newSel.to); + } + + function getRange(from, to) { + var l1 = from.line, l2 = to.line; + if (l1 == l2) return getLine(l1).text.slice(from.ch, to.ch); + var code = [getLine(l1).text.slice(from.ch)]; + doc.iter(l1 + 1, l2, function(line) { code.push(line.text); }); + code.push(getLine(l2).text.slice(0, to.ch)); + return code.join("\n"); + } + function getSelection() { + return getRange(sel.from, sel.to); + } + + var pollingFast = false; // Ensures slowPoll doesn't cancel fastPoll + function slowPoll() { + if (pollingFast) return; + poll.set(options.pollInterval, function() { + startOperation(); + readInput(); + if (focused) slowPoll(); + endOperation(); + }); + } + function fastPoll() { + var missed = false; + pollingFast = true; + function p() { + startOperation(); + var changed = readInput(); + if (!changed && !missed) {missed = true; poll.set(60, p);} + else {pollingFast = false; slowPoll();} + endOperation(); + } + poll.set(20, p); + } + + // Previnput is a hack to work with IME. If we reset the textarea + // on every change, that breaks IME. So we look for changes + // compared to the previous content instead. (Modern browsers have + // events that indicate IME taking place, but these are not widely + // supported or compatible enough yet to rely on.) + var prevInput = ""; + function readInput() { + if (leaveInputAlone || !focused || hasSelection(input)) return false; + var text = input.value; + if (text == prevInput) return false; + shiftSelecting = null; + var same = 0, l = Math.min(prevInput.length, text.length); + while (same < l && prevInput[same] == text[same]) ++same; + if (same < prevInput.length) + sel.from = {line: sel.from.line, ch: sel.from.ch - (prevInput.length - same)}; + else if (overwrite && posEq(sel.from, sel.to)) + sel.to = {line: sel.to.line, ch: Math.min(getLine(sel.to.line).text.length, sel.to.ch + (text.length - same))}; + replaceSelection(text.slice(same), "end"); + prevInput = text; + return true; + } + function resetInput(user) { + if (!posEq(sel.from, sel.to)) { + prevInput = ""; + input.value = getSelection(); + input.select(); + } else if (user) prevInput = input.value = ""; + } + + function focusInput() { + if (!options.readOnly) input.focus(); + } + + function scrollEditorIntoView() { + if (!cursor.getBoundingClientRect) return; + var rect = cursor.getBoundingClientRect(); + // IE returns bogus coordinates when the instance sits inside of an iframe and the cursor is hidden + if (ie && rect.top == rect.bottom) return; + var winH = window.innerHeight || Math.max(document.body.offsetHeight, document.documentElement.offsetHeight); + if (rect.top < 0 || rect.bottom > winH) cursor.scrollIntoView(); + } + function scrollCursorIntoView() { + var cursor = localCoords(sel.inverted ? sel.from : sel.to); + var x = options.lineWrapping ? Math.min(cursor.x, lineSpace.offsetWidth) : cursor.x; + return scrollIntoView(x, cursor.y, x, cursor.yBot); + } + function scrollIntoView(x1, y1, x2, y2) { + var pl = paddingLeft(), pt = paddingTop(), lh = textHeight(); + y1 += pt; y2 += pt; x1 += pl; x2 += pl; + var screen = scroller.clientHeight, screentop = scroller.scrollTop, scrolled = false, result = true; + if (y1 < screentop) {scroller.scrollTop = Math.max(0, y1 - 2*lh); scrolled = true;} + else if (y2 > screentop + screen) {scroller.scrollTop = y2 + lh - screen; scrolled = true;} + + var screenw = scroller.clientWidth, screenleft = scroller.scrollLeft; + var gutterw = options.fixedGutter ? gutter.clientWidth : 0; + if (x1 < screenleft + gutterw) { + if (x1 < 50) x1 = 0; + scroller.scrollLeft = Math.max(0, x1 - 10 - gutterw); + scrolled = true; + } + else if (x2 > screenw + screenleft - 3) { + scroller.scrollLeft = x2 + 10 - screenw; + scrolled = true; + if (x2 > code.clientWidth) result = false; + } + if (scrolled && options.onScroll) options.onScroll(instance); + return result; + } + + function visibleLines() { + var lh = textHeight(), top = scroller.scrollTop - paddingTop(); + var from_height = Math.max(0, Math.floor(top / lh)); + var to_height = Math.ceil((top + scroller.clientHeight) / lh); + return {from: lineAtHeight(doc, from_height), + to: lineAtHeight(doc, to_height)}; + } + // Uses a set of changes plus the current scroll position to + // determine which DOM updates have to be made, and makes the + // updates. + function updateDisplay(changes, suppressCallback) { + if (!scroller.clientWidth) { + showingFrom = showingTo = displayOffset = 0; + return; + } + // Compute the new visible window + var visible = visibleLines(); + // Bail out if the visible area is already rendered and nothing changed. + if (changes !== true && changes.length == 0 && visible.from >= showingFrom && visible.to <= showingTo) return; + var from = Math.max(visible.from - 100, 0), to = Math.min(doc.size, visible.to + 100); + if (showingFrom < from && from - showingFrom < 20) from = showingFrom; + if (showingTo > to && showingTo - to < 20) to = Math.min(doc.size, showingTo); + + // Create a range of theoretically intact lines, and punch holes + // in that using the change info. + var intact = changes === true ? [] : + computeIntact([{from: showingFrom, to: showingTo, domStart: 0}], changes); + // Clip off the parts that won't be visible + var intactLines = 0; + for (var i = 0; i < intact.length; ++i) { + var range = intact[i]; + if (range.from < from) {range.domStart += (from - range.from); range.from = from;} + if (range.to > to) range.to = to; + if (range.from >= range.to) intact.splice(i--, 1); + else intactLines += range.to - range.from; + } + if (intactLines == to - from) return; + intact.sort(function(a, b) {return a.domStart - b.domStart;}); + + var th = textHeight(), gutterDisplay = gutter.style.display; + lineDiv.style.display = gutter.style.display = "none"; + patchDisplay(from, to, intact); + lineDiv.style.display = ""; + + // Position the mover div to align with the lines it's supposed + // to be showing (which will cover the visible display) + var different = from != showingFrom || to != showingTo || lastSizeC != scroller.clientHeight + th; + // This is just a bogus formula that detects when the editor is + // resized or the font size changes. + if (different) lastSizeC = scroller.clientHeight + th; + showingFrom = from; showingTo = to; + displayOffset = heightAtLine(doc, from); + mover.style.top = (displayOffset * th) + "px"; + code.style.height = (doc.height * th + 2 * paddingTop()) + "px"; + + // Since this is all rather error prone, it is honoured with the + // only assertion in the whole file. + if (lineDiv.childNodes.length != showingTo - showingFrom) + throw new Error("BAD PATCH! " + JSON.stringify(intact) + " size=" + (showingTo - showingFrom) + + " nodes=" + lineDiv.childNodes.length); + + if (options.lineWrapping) { + maxWidth = scroller.clientWidth; + var curNode = lineDiv.firstChild; + doc.iter(showingFrom, showingTo, function(line) { + if (!line.hidden) { + var height = Math.round(curNode.offsetHeight / th) || 1; + if (line.height != height) {updateLineHeight(line, height); gutterDirty = true;} + } + curNode = curNode.nextSibling; + }); + } else { + if (maxWidth == null) maxWidth = stringWidth(maxLine); + if (maxWidth > scroller.clientWidth) { + lineSpace.style.width = maxWidth + "px"; + // Needed to prevent odd wrapping/hiding of widgets placed in here. + code.style.width = ""; + code.style.width = scroller.scrollWidth + "px"; + } else { + lineSpace.style.width = code.style.width = ""; + } + } + gutter.style.display = gutterDisplay; + if (different || gutterDirty) updateGutter(); + updateCursor(); + if (!suppressCallback && options.onUpdate) options.onUpdate(instance); + return true; + } + + function computeIntact(intact, changes) { + for (var i = 0, l = changes.length || 0; i < l; ++i) { + var change = changes[i], intact2 = [], diff = change.diff || 0; + for (var j = 0, l2 = intact.length; j < l2; ++j) { + var range = intact[j]; + if (change.to <= range.from && change.diff) + intact2.push({from: range.from + diff, to: range.to + diff, + domStart: range.domStart}); + else if (change.to <= range.from || change.from >= range.to) + intact2.push(range); + else { + if (change.from > range.from) + intact2.push({from: range.from, to: change.from, domStart: range.domStart}); + if (change.to < range.to) + intact2.push({from: change.to + diff, to: range.to + diff, + domStart: range.domStart + (change.to - range.from)}); + } + } + intact = intact2; + } + return intact; + } + + function patchDisplay(from, to, intact) { + // The first pass removes the DOM nodes that aren't intact. + if (!intact.length) lineDiv.innerHTML = ""; + else { + function killNode(node) { + var tmp = node.nextSibling; + node.parentNode.removeChild(node); + return tmp; + } + var domPos = 0, curNode = lineDiv.firstChild, n; + for (var i = 0; i < intact.length; ++i) { + var cur = intact[i]; + while (cur.domStart > domPos) {curNode = killNode(curNode); domPos++;} + for (var j = 0, e = cur.to - cur.from; j < e; ++j) {curNode = curNode.nextSibling; domPos++;} + } + while (curNode) curNode = killNode(curNode); + } + // This pass fills in the lines that actually changed. + var nextIntact = intact.shift(), curNode = lineDiv.firstChild, j = from; + var sfrom = sel.from.line, sto = sel.to.line, inSel = sfrom < from && sto >= from; + var scratch = targetDocument.createElement("div"), newElt; + doc.iter(from, to, function(line) { + var ch1 = null, ch2 = null; + if (inSel) { + ch1 = 0; + if (sto == j) {inSel = false; ch2 = sel.to.ch;} + } else if (sfrom == j) { + if (sto == j) {ch1 = sel.from.ch; ch2 = sel.to.ch;} + else {inSel = true; ch1 = sel.from.ch;} + } + if (nextIntact && nextIntact.to == j) nextIntact = intact.shift(); + if (!nextIntact || nextIntact.from > j) { + if (line.hidden) scratch.innerHTML = "
    ";
    +                    else scratch.innerHTML = line.getHTML(ch1, ch2, true, tabText);
    +                    lineDiv.insertBefore(scratch.firstChild, curNode);
    +                } else {
    +                    curNode = curNode.nextSibling;
    +                }
    +                ++j;
    +            });
    +        }
    +
    +        function updateGutter() {
    +            if (!options.gutter && !options.lineNumbers) return;
    +            var hText = mover.offsetHeight, hEditor = scroller.clientHeight;
    +            gutter.style.height = (hText - hEditor < 2 ? hEditor : hText) + "px";
    +            var html = [], i = showingFrom;
    +            doc.iter(showingFrom, Math.max(showingTo, showingFrom + 1), function(line) {
    +                if (line.hidden) {
    +                    html.push("
    ");
    +                } else {
    +                    var marker = line.gutterMarker;
    +                    var text = options.lineNumbers ? i + options.firstLineNumber : null;
    +                    if (marker && marker.text)
    +                        text = marker.text.replace("%N%", text != null ? text : "");
    +                    else if (text == null)
    +                        text = "\u00a0";
    +                    html.push((marker && marker.style ? '
    ' : "
    "), text);
    +                    for (var j = 1; j < line.height; ++j) html.push("
     "); + html.push("
    "); + } + ++i; + }); + gutter.style.display = "none"; + gutterText.innerHTML = html.join(""); + var minwidth = String(doc.size).length, firstNode = gutterText.firstChild, val = eltText(firstNode), pad = ""; + while (val.length + pad.length < minwidth) pad += "\u00a0"; + if (pad) firstNode.insertBefore(targetDocument.createTextNode(pad), firstNode.firstChild); + gutter.style.display = ""; + lineSpace.style.marginLeft = gutter.offsetWidth + "px"; + gutterDirty = false; + } + function updateCursor() { + var head = sel.inverted ? sel.from : sel.to, lh = textHeight(); + var pos = localCoords(head, true); + var wrapOff = eltOffset(wrapper), lineOff = eltOffset(lineDiv); + inputDiv.style.top = (pos.y + lineOff.top - wrapOff.top) + "px"; + inputDiv.style.left = (pos.x + lineOff.left - wrapOff.left) + "px"; + if (posEq(sel.from, sel.to)) { + cursor.style.top = pos.y + "px"; + cursor.style.left = (options.lineWrapping ? Math.min(pos.x, lineSpace.offsetWidth) : pos.x) + "px"; + cursor.style.display = ""; + } + else cursor.style.display = "none"; + } + + function setShift(val) { + if (val) shiftSelecting = shiftSelecting || (sel.inverted ? sel.to : sel.from); + else shiftSelecting = null; + } + function setSelectionUser(from, to) { + var sh = shiftSelecting && clipPos(shiftSelecting); + if (sh) { + if (posLess(sh, from)) from = sh; + else if (posLess(to, sh)) to = sh; + } + setSelection(from, to); + userSelChange = true; + } + // Update the selection. Last two args are only used by + // updateLines, since they have to be expressed in the line + // numbers before the update. + function setSelection(from, to, oldFrom, oldTo) { + goalColumn = null; + if (oldFrom == null) {oldFrom = sel.from.line; oldTo = sel.to.line;} + if (posEq(sel.from, from) && posEq(sel.to, to)) return; + if (posLess(to, from)) {var tmp = to; to = from; from = tmp;} + + // Skip over hidden lines. + if (from.line != oldFrom) from = skipHidden(from, oldFrom, sel.from.ch); + if (to.line != oldTo) to = skipHidden(to, oldTo, sel.to.ch); + + if (posEq(from, to)) sel.inverted = false; + else if (posEq(from, sel.to)) sel.inverted = false; + else if (posEq(to, sel.from)) sel.inverted = true; + + // Some ugly logic used to only mark the lines that actually did + // see a change in selection as changed, rather than the whole + // selected range. + if (posEq(from, to)) { + if (!posEq(sel.from, sel.to)) + changes.push({from: oldFrom, to: oldTo + 1}); + } + else if (posEq(sel.from, sel.to)) { + changes.push({from: from.line, to: to.line + 1}); + } + else { + if (!posEq(from, sel.from)) { + if (from.line < oldFrom) + changes.push({from: from.line, to: Math.min(to.line, oldFrom) + 1}); + else + changes.push({from: oldFrom, to: Math.min(oldTo, from.line) + 1}); + } + if (!posEq(to, sel.to)) { + if (to.line < oldTo) + changes.push({from: Math.max(oldFrom, from.line), to: oldTo + 1}); + else + changes.push({from: Math.max(from.line, oldTo), to: to.line + 1}); + } + } + sel.from = from; sel.to = to; + selectionChanged = true; + } + function skipHidden(pos, oldLine, oldCh) { + function getNonHidden(dir) { + var lNo = pos.line + dir, end = dir == 1 ? doc.size : -1; + while (lNo != end) { + var line = getLine(lNo); + if (!line.hidden) { + var ch = pos.ch; + if (ch > oldCh || ch > line.text.length) ch = line.text.length; + return {line: lNo, ch: ch}; + } + lNo += dir; + } + } + var line = getLine(pos.line); + if (!line.hidden) return pos; + if (pos.line >= oldLine) return getNonHidden(1) || getNonHidden(-1); + else return getNonHidden(-1) || getNonHidden(1); + } + function setCursor(line, ch, user) { + var pos = clipPos({line: line, ch: ch || 0}); + (user ? setSelectionUser : setSelection)(pos, pos); + } + + function clipLine(n) {return Math.max(0, Math.min(n, doc.size-1));} + function clipPos(pos) { + if (pos.line < 0) return {line: 0, ch: 0}; + if (pos.line >= doc.size) return {line: doc.size-1, ch: getLine(doc.size-1).text.length}; + var ch = pos.ch, linelen = getLine(pos.line).text.length; + if (ch == null || ch > linelen) return {line: pos.line, ch: linelen}; + else if (ch < 0) return {line: pos.line, ch: 0}; + else return pos; + } + + function findPosH(dir, unit) { + var end = sel.inverted ? sel.from : sel.to, line = end.line, ch = end.ch; + var lineObj = getLine(line); + function findNextLine() { + for (var l = line + dir, e = dir < 0 ? -1 : doc.size; l != e; l += dir) { + var lo = getLine(l); + if (!lo.hidden) { line = l; lineObj = lo; return true; } + } + } + function moveOnce(boundToLine) { + if (ch == (dir < 0 ? 0 : lineObj.text.length)) { + if (!boundToLine && findNextLine()) ch = dir < 0 ? lineObj.text.length : 0; + else return false; + } else ch += dir; + return true; + } + if (unit == "char") moveOnce(); + else if (unit == "column") moveOnce(true); + else if (unit == "word") { + var sawWord = false; + for (;;) { + if (dir < 0) if (!moveOnce()) break; + if (isWordChar(lineObj.text.charAt(ch))) sawWord = true; + else if (sawWord) {if (dir < 0) {dir = 1; moveOnce();} break;} + if (dir > 0) if (!moveOnce()) break; + } + } + return {line: line, ch: ch}; + } + function moveH(dir, unit) { + var pos = dir < 0 ? sel.from : sel.to; + if (shiftSelecting || posEq(sel.from, sel.to)) pos = findPosH(dir, unit); + setCursor(pos.line, pos.ch, true); + } + function deleteH(dir, unit) { + if (!posEq(sel.from, sel.to)) replaceRange("", sel.from, sel.to); + else if (dir < 0) replaceRange("", findPosH(dir, unit), sel.to); + else replaceRange("", sel.from, findPosH(dir, unit)); + userSelChange = true; + } + var goalColumn = null; + function moveV(dir, unit) { + var dist = 0, pos = localCoords(sel.inverted ? sel.from : sel.to, true); + if (goalColumn != null) pos.x = goalColumn; + if (unit == "page") dist = scroller.clientHeight; + else if (unit == "line") dist = textHeight(); + var target = coordsChar(pos.x, pos.y + dist * dir + 2); + setCursor(target.line, target.ch, true); + goalColumn = pos.x; + } + + function selectWordAt(pos) { + var line = getLine(pos.line).text; + var start = pos.ch, end = pos.ch; + while (start > 0 && isWordChar(line.charAt(start - 1))) --start; + while (end < line.length && isWordChar(line.charAt(end))) ++end; + setSelectionUser({line: pos.line, ch: start}, {line: pos.line, ch: end}); + } + function selectLine(line) { + setSelectionUser({line: line, ch: 0}, {line: line, ch: getLine(line).text.length}); + } + function indentSelected(mode) { + if (posEq(sel.from, sel.to)) return indentLine(sel.from.line, mode); + var e = sel.to.line - (sel.to.ch ? 0 : 1); + for (var i = sel.from.line; i <= e; ++i) indentLine(i, mode); + } + + function indentLine(n, how) { + if (!how) how = "add"; + if (how == "smart") { + if (!mode.indent) how = "prev"; + else var state = getStateBefore(n); + } + + var line = getLine(n), curSpace = line.indentation(options.tabSize), + curSpaceString = line.text.match(/^\s*/)[0], indentation; + if (how == "prev") { + if (n) indentation = getLine(n-1).indentation(options.tabSize); + else indentation = 0; + } + else if (how == "smart") indentation = mode.indent(state, line.text.slice(curSpaceString.length), line.text); + else if (how == "add") indentation = curSpace + options.indentUnit; + else if (how == "subtract") indentation = curSpace - options.indentUnit; + indentation = Math.max(0, indentation); + var diff = indentation - curSpace; + + if (!diff) { + if (sel.from.line != n && sel.to.line != n) return; + var indentString = curSpaceString; + } + else { + var indentString = "", pos = 0; + if (options.indentWithTabs) + for (var i = Math.floor(indentation / options.tabSize); i; --i) {pos += options.tabSize; indentString += "\t";} + while (pos < indentation) {++pos; indentString += " ";} + } + + replaceRange(indentString, {line: n, ch: 0}, {line: n, ch: curSpaceString.length}); + } + + function loadMode() { + mode = CodeMirror.getMode(options, options.mode); + doc.iter(0, doc.size, function(line) { line.stateAfter = null; }); + work = [0]; + startWorker(); + } + function gutterChanged() { + var visible = options.gutter || options.lineNumbers; + gutter.style.display = visible ? "" : "none"; + if (visible) gutterDirty = true; + else lineDiv.parentNode.style.marginLeft = 0; + } + function wrappingChanged(from, to) { + if (options.lineWrapping) { + wrapper.className += " CodeMirror-wrap"; + var perLine = scroller.clientWidth / charWidth() - 3; + doc.iter(0, doc.size, function(line) { + if (line.hidden) return; + var guess = Math.ceil(line.text.length / perLine) || 1; + if (guess != 1) updateLineHeight(line, guess); + }); + lineSpace.style.width = code.style.width = ""; + } else { + wrapper.className = wrapper.className.replace(" CodeMirror-wrap", ""); + maxWidth = null; maxLine = ""; + doc.iter(0, doc.size, function(line) { + if (line.height != 1 && !line.hidden) updateLineHeight(line, 1); + if (line.text.length > maxLine.length) maxLine = line.text; + }); + } + changes.push({from: 0, to: doc.size}); + } + function computeTabText() { + for (var str = '', i = 0; i < options.tabSize; ++i) str += " "; + return str + ""; + } + function tabsChanged() { + tabText = computeTabText(); + updateDisplay(true); + } + function themeChanged() { + scroller.className = scroller.className.replace(/\s*cm-s-\w+/g, "") + + options.theme.replace(/(^|\s)\s*/g, " cm-s-"); + } + + function TextMarker() { this.set = []; } + TextMarker.prototype.clear = operation(function() { + var min = Infinity, max = -Infinity; + for (var i = 0, e = this.set.length; i < e; ++i) { + var line = this.set[i], mk = line.marked; + if (!mk || !line.parent) continue; + var lineN = lineNo(line); + min = Math.min(min, lineN); max = Math.max(max, lineN); + for (var j = 0; j < mk.length; ++j) + if (mk[j].set == this.set) mk.splice(j--, 1); + } + if (min != Infinity) + changes.push({from: min, to: max + 1}); + }); + TextMarker.prototype.find = function() { + var from, to; + for (var i = 0, e = this.set.length; i < e; ++i) { + var line = this.set[i], mk = line.marked; + for (var j = 0; j < mk.length; ++j) { + var mark = mk[j]; + if (mark.set == this.set) { + if (mark.from != null || mark.to != null) { + var found = lineNo(line); + if (found != null) { + if (mark.from != null) from = {line: found, ch: mark.from}; + if (mark.to != null) to = {line: found, ch: mark.to}; + } + } + } + } + } + return {from: from, to: to}; + }; + + function markText(from, to, className) { + from = clipPos(from); to = clipPos(to); + var tm = new TextMarker(); + function add(line, from, to, className) { + getLine(line).addMark(new MarkedText(from, to, className, tm.set)); + } + if (from.line == to.line) add(from.line, from.ch, to.ch, className); + else { + add(from.line, from.ch, null, className); + for (var i = from.line + 1, e = to.line; i < e; ++i) + add(i, null, null, className); + add(to.line, null, to.ch, className); + } + changes.push({from: from.line, to: to.line + 1}); + return tm; + } + + function setBookmark(pos) { + pos = clipPos(pos); + var bm = new Bookmark(pos.ch); + getLine(pos.line).addMark(bm); + return bm; + } + + function addGutterMarker(line, text, className) { + if (typeof line == "number") line = getLine(clipLine(line)); + line.gutterMarker = {text: text, style: className}; + gutterDirty = true; + return line; + } + function removeGutterMarker(line) { + if (typeof line == "number") line = getLine(clipLine(line)); + line.gutterMarker = null; + gutterDirty = true; + } + + function changeLine(handle, op) { + var no = handle, line = handle; + if (typeof handle == "number") line = getLine(clipLine(handle)); + else no = lineNo(handle); + if (no == null) return null; + if (op(line, no)) changes.push({from: no, to: no + 1}); + else return null; + return line; + } + function setLineClass(handle, className) { + return changeLine(handle, function(line) { + if (line.className != className) { + line.className = className; + return true; + } + }); + } + function setLineHidden(handle, hidden) { + return changeLine(handle, function(line, no) { + if (line.hidden != hidden) { + line.hidden = hidden; + updateLineHeight(line, hidden ? 0 : 1); + if (hidden && (sel.from.line == no || sel.to.line == no)) + setSelection(skipHidden(sel.from, sel.from.line, sel.from.ch), + skipHidden(sel.to, sel.to.line, sel.to.ch)); + return (gutterDirty = true); + } + }); + } + + function lineInfo(line) { + if (typeof line == "number") { + if (!isLine(line)) return null; + var n = line; + line = getLine(line); + if (!line) return null; + } + else { + var n = lineNo(line); + if (n == null) return null; + } + var marker = line.gutterMarker; + return {line: n, handle: line, text: line.text, markerText: marker && marker.text, + markerClass: marker && marker.style, lineClass: line.className}; + } + + function stringWidth(str) { + measure.innerHTML = "
    x
    "; + measure.firstChild.firstChild.firstChild.nodeValue = str; + return measure.firstChild.firstChild.offsetWidth || 10; + } + // These are used to go from pixel positions to character + // positions, taking varying character widths into account. + function charFromX(line, x) { + if (x <= 0) return 0; + var lineObj = getLine(line), text = lineObj.text; + function getX(len) { + measure.innerHTML = "
    " + lineObj.getHTML(null, null, false, tabText, len) + "
    "; + return measure.firstChild.firstChild.offsetWidth; + } + var from = 0, fromX = 0, to = text.length, toX; + // Guess a suitable upper bound for our search. + var estimated = Math.min(to, Math.ceil(x / charWidth())); + for (;;) { + var estX = getX(estimated); + if (estX <= x && estimated < to) estimated = Math.min(to, Math.ceil(estimated * 1.2)); + else {toX = estX; to = estimated; break;} + } + if (x > toX) return to; + // Try to guess a suitable lower bound as well. + estimated = Math.floor(to * 0.8); estX = getX(estimated); + if (estX < x) {from = estimated; fromX = estX;} + // Do a binary search between these bounds. + for (;;) { + if (to - from <= 1) return (toX - x > x - fromX) ? from : to; + var middle = Math.ceil((from + to) / 2), middleX = getX(middle); + if (middleX > x) {to = middle; toX = middleX;} + else {from = middle; fromX = middleX;} + } + } + + var tempId = Math.floor(Math.random() * 0xffffff).toString(16); + function measureLine(line, ch) { + var extra = ""; + // Include extra text at the end to make sure the measured line is wrapped in the right way. + if (options.lineWrapping) { + var end = line.text.indexOf(" ", ch + 2); + extra = htmlEscape(line.text.slice(ch + 1, end < 0 ? line.text.length : end + (ie ? 5 : 0))); + } + measure.innerHTML = "
    " + line.getHTML(null, null, false, tabText, ch) +
    +                '' + htmlEscape(line.text.charAt(ch) || " ") + "" +
    +                extra + "
    "; + var elt = document.getElementById("CodeMirror-temp-" + tempId); + var top = elt.offsetTop, left = elt.offsetLeft; + // Older IEs report zero offsets for spans directly after a wrap + if (ie && ch && top == 0 && left == 0) { + var backup = document.createElement("span"); + backup.innerHTML = "x"; + elt.parentNode.insertBefore(backup, elt.nextSibling); + top = backup.offsetTop; + } + return {top: top, left: left}; + } + function localCoords(pos, inLineWrap) { + var x, lh = textHeight(), y = lh * (heightAtLine(doc, pos.line) - (inLineWrap ? displayOffset : 0)); + if (pos.ch == 0) x = 0; + else { + var sp = measureLine(getLine(pos.line), pos.ch); + x = sp.left; + if (options.lineWrapping) y += Math.max(0, sp.top); + } + return {x: x, y: y, yBot: y + lh}; + } + // Coords must be lineSpace-local + function coordsChar(x, y) { + if (y < 0) y = 0; + var th = textHeight(), cw = charWidth(), heightPos = displayOffset + Math.floor(y / th); + var lineNo = lineAtHeight(doc, heightPos); + if (lineNo >= doc.size) return {line: doc.size - 1, ch: getLine(doc.size - 1).text.length}; + var lineObj = getLine(lineNo), text = lineObj.text; + var tw = options.lineWrapping, innerOff = tw ? heightPos - heightAtLine(doc, lineNo) : 0; + if (x <= 0 && innerOff == 0) return {line: lineNo, ch: 0}; + function getX(len) { + var sp = measureLine(lineObj, len); + if (tw) { + var off = Math.round(sp.top / th); + return Math.max(0, sp.left + (off - innerOff) * scroller.clientWidth); + } + return sp.left; + } + var from = 0, fromX = 0, to = text.length, toX; + // Guess a suitable upper bound for our search. + var estimated = Math.min(to, Math.ceil((x + innerOff * scroller.clientWidth * .9) / cw)); + for (;;) { + var estX = getX(estimated); + if (estX <= x && estimated < to) estimated = Math.min(to, Math.ceil(estimated * 1.2)); + else {toX = estX; to = estimated; break;} + } + if (x > toX) return {line: lineNo, ch: to}; + // Try to guess a suitable lower bound as well. + estimated = Math.floor(to * 0.8); estX = getX(estimated); + if (estX < x) {from = estimated; fromX = estX;} + // Do a binary search between these bounds. + for (;;) { + if (to - from <= 1) return {line: lineNo, ch: (toX - x > x - fromX) ? from : to}; + var middle = Math.ceil((from + to) / 2), middleX = getX(middle); + if (middleX > x) {to = middle; toX = middleX;} + else {from = middle; fromX = middleX;} + } + } + function pageCoords(pos) { + var local = localCoords(pos, true), off = eltOffset(lineSpace); + return {x: off.left + local.x, y: off.top + local.y, yBot: off.top + local.yBot}; + } + + var cachedHeight, cachedHeightFor, measureText; + function textHeight() { + if (measureText == null) { + measureText = "
    ";
    +                for (var i = 0; i < 49; ++i) measureText += "x
    "; + measureText += "x
    "; + } + var offsetHeight = lineDiv.clientHeight; + if (offsetHeight == cachedHeightFor) return cachedHeight; + cachedHeightFor = offsetHeight; + measure.innerHTML = measureText; + cachedHeight = measure.firstChild.offsetHeight / 50 || 1; + measure.innerHTML = ""; + return cachedHeight; + } + var cachedWidth, cachedWidthFor = 0; + function charWidth() { + if (scroller.clientWidth == cachedWidthFor) return cachedWidth; + cachedWidthFor = scroller.clientWidth; + return (cachedWidth = stringWidth("x")); + } + function paddingTop() {return lineSpace.offsetTop;} + function paddingLeft() {return lineSpace.offsetLeft;} + + function posFromMouse(e, liberal) { + var offW = eltOffset(scroller, true), x, y; + // Fails unpredictably on IE[67] when mouse is dragged around quickly. + try { x = e.clientX; y = e.clientY; } catch (e) { return null; } + // This is a mess of a heuristic to try and determine whether a + // scroll-bar was clicked or not, and to return null if one was + // (and !liberal). + if (!liberal && (x - offW.left > scroller.clientWidth || y - offW.top > scroller.clientHeight)) + return null; + var offL = eltOffset(lineSpace, true); + return coordsChar(x - offL.left, y - offL.top); + } + function onContextMenu(e) { + var pos = posFromMouse(e); + if (!pos || window.opera) return; // Opera is difficult. + if (posEq(sel.from, sel.to) || posLess(pos, sel.from) || !posLess(pos, sel.to)) + operation(setCursor)(pos.line, pos.ch); + + var oldCSS = input.style.cssText; + inputDiv.style.position = "absolute"; + input.style.cssText = "position: fixed; width: 30px; height: 30px; top: " + (e.clientY - 5) + + "px; left: " + (e.clientX - 5) + "px; z-index: 1000; background: white; " + + "border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);"; + leaveInputAlone = true; + var val = input.value = getSelection(); + focusInput(); + input.select(); + function rehide() { + var newVal = splitLines(input.value).join("\n"); + if (newVal != val) operation(replaceSelection)(newVal, "end"); + inputDiv.style.position = "relative"; + input.style.cssText = oldCSS; + leaveInputAlone = false; + resetInput(true); + slowPoll(); + } + + if (gecko) { + e_stop(e); + var mouseup = connect(window, "mouseup", function() { + mouseup(); + setTimeout(rehide, 20); + }, true); + } + else { + setTimeout(rehide, 50); + } + } + + // Cursor-blinking + function restartBlink() { + clearInterval(blinker); + var on = true; + cursor.style.visibility = ""; + blinker = setInterval(function() { + cursor.style.visibility = (on = !on) ? "" : "hidden"; + }, 650); + } + + var matching = {"(": ")>", ")": "(<", "[": "]>", "]": "[<", "{": "}>", "}": "{<"}; + function matchBrackets(autoclear) { + var head = sel.inverted ? sel.from : sel.to, line = getLine(head.line), pos = head.ch - 1; + var match = (pos >= 0 && matching[line.text.charAt(pos)]) || matching[line.text.charAt(++pos)]; + if (!match) return; + var ch = match.charAt(0), forward = match.charAt(1) == ">", d = forward ? 1 : -1, st = line.styles; + for (var off = pos + 1, i = 0, e = st.length; i < e; i+=2) + if ((off -= st[i].length) <= 0) {var style = st[i+1]; break;} + + var stack = [line.text.charAt(pos)], re = /[(){}[\]]/; + function scan(line, from, to) { + if (!line.text) return; + var st = line.styles, pos = forward ? 0 : line.text.length - 1, cur; + for (var i = forward ? 0 : st.length - 2, e = forward ? st.length : -2; i != e; i += 2*d) { + var text = st[i]; + if (st[i+1] != null && st[i+1] != style) {pos += d * text.length; continue;} + for (var j = forward ? 0 : text.length - 1, te = forward ? text.length : -1; j != te; j += d, pos+=d) { + if (pos >= from && pos < to && re.test(cur = text.charAt(j))) { + var match = matching[cur]; + if (match.charAt(1) == ">" == forward) stack.push(cur); + else if (stack.pop() != match.charAt(0)) return {pos: pos, match: false}; + else if (!stack.length) return {pos: pos, match: true}; + } + } + } + } + for (var i = head.line, e = forward ? Math.min(i + 100, doc.size) : Math.max(-1, i - 100); i != e; i+=d) { + var line = getLine(i), first = i == head.line; + var found = scan(line, first && forward ? pos + 1 : 0, first && !forward ? pos : line.text.length); + if (found) break; + } + if (!found) found = {pos: null, match: false}; + var style = found.match ? "CodeMirror-matchingbracket" : "CodeMirror-nonmatchingbracket"; + var one = markText({line: head.line, ch: pos}, {line: head.line, ch: pos+1}, style), + two = found.pos != null && markText({line: i, ch: found.pos}, {line: i, ch: found.pos + 1}, style); + var clear = operation(function(){one.clear(); two && two.clear();}); + if (autoclear) setTimeout(clear, 800); + else bracketHighlighted = clear; + } + + // Finds the line to start with when starting a parse. Tries to + // find a line with a stateAfter, so that it can start with a + // valid state. If that fails, it returns the line with the + // smallest indentation, which tends to need the least context to + // parse correctly. + function findStartLine(n) { + var minindent, minline; + for (var search = n, lim = n - 40; search > lim; --search) { + if (search == 0) return 0; + var line = getLine(search-1); + if (line.stateAfter) return search; + var indented = line.indentation(options.tabSize); + if (minline == null || minindent > indented) { + minline = search - 1; + minindent = indented; + } + } + return minline; + } + function getStateBefore(n) { + var start = findStartLine(n), state = start && getLine(start-1).stateAfter; + if (!state) state = startState(mode); + else state = copyState(mode, state); + doc.iter(start, n, function(line) { + line.highlight(mode, state, options.tabSize); + line.stateAfter = copyState(mode, state); + }); + if (start < n) changes.push({from: start, to: n}); + if (n < doc.size && !getLine(n).stateAfter) work.push(n); + return state; + } + function highlightLines(start, end) { + var state = getStateBefore(start); + doc.iter(start, end, function(line) { + line.highlight(mode, state, options.tabSize); + line.stateAfter = copyState(mode, state); + }); + } + function highlightWorker() { + var end = +new Date + options.workTime; + var foundWork = work.length; + while (work.length) { + if (!getLine(showingFrom).stateAfter) var task = showingFrom; + else var task = work.pop(); + if (task >= doc.size) continue; + var start = findStartLine(task), state = start && getLine(start-1).stateAfter; + if (state) state = copyState(mode, state); + else state = startState(mode); + + var unchanged = 0, compare = mode.compareStates, realChange = false, + i = start, bail = false; + doc.iter(i, doc.size, function(line) { + var hadState = line.stateAfter; + if (+new Date > end) { + work.push(i); + startWorker(options.workDelay); + if (realChange) changes.push({from: task, to: i + 1}); + return (bail = true); + } + var changed = line.highlight(mode, state, options.tabSize); + if (changed) realChange = true; + line.stateAfter = copyState(mode, state); + if (compare) { + if (hadState && compare(hadState, state)) return true; + } else { + if (changed !== false || !hadState) unchanged = 0; + else if (++unchanged > 3 && (!mode.indent || mode.indent(hadState, "") == mode.indent(state, ""))) + return true; + } + ++i; + }); + if (bail) return; + if (realChange) changes.push({from: task, to: i + 1}); + } + if (foundWork && options.onHighlightComplete) + options.onHighlightComplete(instance); + } + function startWorker(time) { + if (!work.length) return; + highlight.set(time, operation(highlightWorker)); + } + + // Operations are used to wrap changes in such a way that each + // change won't have to update the cursor and display (which would + // be awkward, slow, and error-prone), but instead updates are + // batched and then all combined and executed at once. + function startOperation() { + updateInput = userSelChange = textChanged = null; + changes = []; selectionChanged = false; callbacks = []; + } + function endOperation() { + var reScroll = false, updated; + if (selectionChanged) reScroll = !scrollCursorIntoView(); + if (changes.length) updated = updateDisplay(changes, true); + else { + if (selectionChanged) updateCursor(); + if (gutterDirty) updateGutter(); + } + if (reScroll) scrollCursorIntoView(); + if (selectionChanged) {scrollEditorIntoView(); restartBlink();} + + if (focused && !leaveInputAlone && + (updateInput === true || (updateInput !== false && selectionChanged))) + resetInput(userSelChange); + + if (selectionChanged && options.matchBrackets) + setTimeout(operation(function() { + if (bracketHighlighted) {bracketHighlighted(); bracketHighlighted = null;} + if (posEq(sel.from, sel.to)) matchBrackets(false); + }), 20); + var tc = textChanged, cbs = callbacks; // these can be reset by callbacks + if (selectionChanged && options.onCursorActivity) + options.onCursorActivity(instance); + if (tc && options.onChange && instance) + options.onChange(instance, tc); + for (var i = 0; i < cbs.length; ++i) cbs[i](instance); + if (updated && options.onUpdate) options.onUpdate(instance); + } + var nestedOperation = 0; + function operation(f) { + return function() { + if (!nestedOperation++) startOperation(); + try {var result = f.apply(this, arguments);} + finally {if (!--nestedOperation) endOperation();} + return result; + }; + } + + for (var ext in extensions) + if (extensions.propertyIsEnumerable(ext) && + !instance.propertyIsEnumerable(ext)) + instance[ext] = extensions[ext]; + return instance; + } // (end of function CodeMirror) + + // The default configuration options. + CodeMirror.defaults = { + value: "", + mode: null, + theme: "default", + indentUnit: 2, + indentWithTabs: false, + tabSize: 4, + keyMap: "default", + extraKeys: null, + electricChars: true, + onKeyEvent: null, + lineWrapping: false, + lineNumbers: false, + gutter: false, + fixedGutter: false, + firstLineNumber: 1, + readOnly: false, + onChange: null, + onCursorActivity: null, + onGutterClick: null, + onHighlightComplete: null, + onUpdate: null, + onFocus: null, onBlur: null, onScroll: null, + matchBrackets: false, + workTime: 100, + workDelay: 200, + pollInterval: 100, + undoDepth: 40, + tabindex: null, + document: window.document + }; + + var mac = /Mac/.test(navigator.platform); + var win = /Win/.test(navigator.platform); + + // Known modes, by name and by MIME + var modes = {}, mimeModes = {}; + CodeMirror.defineMode = function(name, mode) { + if (!CodeMirror.defaults.mode && name != "null") CodeMirror.defaults.mode = name; + modes[name] = mode; + }; + CodeMirror.defineMIME = function(mime, spec) { + mimeModes[mime] = spec; + }; + CodeMirror.getMode = function(options, spec) { + if (typeof spec == "string" && mimeModes.hasOwnProperty(spec)) + spec = mimeModes[spec]; + if (typeof spec == "string") + var mname = spec, config = {}; + else if (spec != null) + var mname = spec.name, config = spec; + var mfactory = modes[mname]; + if (!mfactory) { + if (window.console) console.warn("No mode " + mname + " found, falling back to plain text."); + return CodeMirror.getMode(options, "text/plain"); + } + return mfactory(options, config || {}); + }; + CodeMirror.listModes = function() { + var list = []; + for (var m in modes) + if (modes.propertyIsEnumerable(m)) list.push(m); + return list; + }; + CodeMirror.listMIMEs = function() { + var list = []; + for (var m in mimeModes) + if (mimeModes.propertyIsEnumerable(m)) list.push({mime: m, mode: mimeModes[m]}); + return list; + }; + + var extensions = CodeMirror.extensions = {}; + CodeMirror.defineExtension = function(name, func) { + extensions[name] = func; + }; + + var commands = CodeMirror.commands = { + selectAll: function(cm) {cm.setSelection({line: 0, ch: 0}, {line: cm.lineCount() - 1});}, + killLine: function(cm) { + var from = cm.getCursor(true), to = cm.getCursor(false), sel = !posEq(from, to); + if (!sel && cm.getLine(from.line).length == from.ch) cm.replaceRange("", from, {line: from.line + 1, ch: 0}); + else cm.replaceRange("", from, sel ? to : {line: from.line}); + }, + deleteLine: function(cm) {var l = cm.getCursor().line; cm.replaceRange("", {line: l, ch: 0}, {line: l});}, + undo: function(cm) {cm.undo();}, + redo: function(cm) {cm.redo();}, + goDocStart: function(cm) {cm.setCursor(0, 0, true);}, + goDocEnd: function(cm) {cm.setSelection({line: cm.lineCount() - 1}, null, true);}, + goLineStart: function(cm) {cm.setCursor(cm.getCursor().line, 0, true);}, + goLineStartSmart: function(cm) { + var cur = cm.getCursor(); + var text = cm.getLine(cur.line), firstNonWS = Math.max(0, text.search(/\S/)); + cm.setCursor(cur.line, cur.ch <= firstNonWS && cur.ch ? 0 : firstNonWS, true); + }, + goLineEnd: function(cm) {cm.setSelection({line: cm.getCursor().line}, null, true);}, + goLineUp: function(cm) {cm.moveV(-1, "line");}, + goLineDown: function(cm) {cm.moveV(1, "line");}, + goPageUp: function(cm) {cm.moveV(-1, "page");}, + goPageDown: function(cm) {cm.moveV(1, "page");}, + goCharLeft: function(cm) {cm.moveH(-1, "char");}, + goCharRight: function(cm) {cm.moveH(1, "char");}, + goColumnLeft: function(cm) {cm.moveH(-1, "column");}, + goColumnRight: function(cm) {cm.moveH(1, "column");}, + goWordLeft: function(cm) {cm.moveH(-1, "word");}, + goWordRight: function(cm) {cm.moveH(1, "word");}, + delCharLeft: function(cm) {cm.deleteH(-1, "char");}, + delCharRight: function(cm) {cm.deleteH(1, "char");}, + delWordLeft: function(cm) {cm.deleteH(-1, "word");}, + delWordRight: function(cm) {cm.deleteH(1, "word");}, + indentAuto: function(cm) {cm.indentSelection("smart");}, + indentMore: function(cm) {cm.indentSelection("add");}, + indentLess: function(cm) {cm.indentSelection("subtract");}, + insertTab: function(cm) {cm.replaceSelection("\t", "end");}, + transposeChars: function(cm) { + var cur = cm.getCursor(), line = cm.getLine(cur.line); + if (cur.ch > 0 && cur.ch < line.length - 1) + cm.replaceRange(line.charAt(cur.ch) + line.charAt(cur.ch - 1), + {line: cur.line, ch: cur.ch - 1}, {line: cur.line, ch: cur.ch + 1}); + }, + newlineAndIndent: function(cm) { + cm.replaceSelection("\n", "end"); + cm.indentLine(cm.getCursor().line); + }, + toggleOverwrite: function(cm) {cm.toggleOverwrite();} + }; + + var keyMap = CodeMirror.keyMap = {}; + keyMap.basic = { + "Left": "goCharLeft", "Right": "goCharRight", "Up": "goLineUp", "Down": "goLineDown", + "End": "goLineEnd", "Home": "goLineStartSmart", "PageUp": "goPageUp", "PageDown": "goPageDown", + "Delete": "delCharRight", "Backspace": "delCharLeft", "Tab": "indentMore", "Shift-Tab": "indentLess", + "Enter": "newlineAndIndent", "Insert": "toggleOverwrite" + }; + // Note that the save and find-related commands aren't defined by + // default. Unknown commands are simply ignored. + keyMap.pcDefault = { + "Ctrl-A": "selectAll", "Ctrl-D": "deleteLine", "Ctrl-Z": "undo", "Shift-Ctrl-Z": "redo", "Ctrl-Y": "redo", + "Ctrl-Home": "goDocStart", "Alt-Up": "goDocStart", "Ctrl-End": "goDocEnd", "Ctrl-Down": "goDocEnd", + "Ctrl-Left": "goWordLeft", "Ctrl-Right": "goWordRight", "Alt-Left": "goLineStart", "Alt-Right": "goLineEnd", + "Ctrl-Backspace": "delWordLeft", "Ctrl-Delete": "delWordRight", "Ctrl-S": "save", "Ctrl-F": "find", + "Ctrl-G": "findNext", "Shift-Ctrl-G": "findPrev", "Shift-Ctrl-F": "replace", "Shift-Ctrl-R": "replaceAll", + fallthrough: "basic" + }; + keyMap.macDefault = { + "Cmd-A": "selectAll", "Cmd-D": "deleteLine", "Cmd-Z": "undo", "Shift-Cmd-Z": "redo", "Cmd-Y": "redo", + "Cmd-Up": "goDocStart", "Cmd-End": "goDocEnd", "Cmd-Down": "goDocEnd", "Alt-Left": "goWordLeft", + "Alt-Right": "goWordRight", "Cmd-Left": "goLineStart", "Cmd-Right": "goLineEnd", "Alt-Backspace": "delWordLeft", + "Ctrl-Alt-Backspace": "delWordRight", "Alt-Delete": "delWordRight", "Cmd-S": "save", "Cmd-F": "find", + "Cmd-G": "findNext", "Shift-Cmd-G": "findPrev", "Cmd-Alt-F": "replace", "Shift-Cmd-Alt-F": "replaceAll", + fallthrough: ["basic", "emacsy"] + }; + keyMap["default"] = mac ? keyMap.macDefault : keyMap.pcDefault; + keyMap.emacsy = { + "Ctrl-F": "goCharRight", "Ctrl-B": "goCharLeft", "Ctrl-P": "goLineUp", "Ctrl-N": "goLineDown", + "Alt-F": "goWordRight", "Alt-B": "goWordLeft", "Ctrl-A": "goLineStart", "Ctrl-E": "goLineEnd", + "Ctrl-V": "goPageUp", "Shift-Ctrl-V": "goPageDown", "Ctrl-D": "delCharRight", "Ctrl-H": "delCharLeft", + "Alt-D": "delWordRight", "Alt-Backspace": "delWordLeft", "Ctrl-K": "killLine", "Ctrl-T": "transposeChars" + }; + + function lookupKey(name, extraMap, map) { + function lookup(name, map, ft) { + var found = map[name]; + if (found != null) return found; + if (ft == null) ft = map.fallthrough; + if (ft == null) return map.catchall; + if (typeof ft == "string") return lookup(name, keyMap[ft]); + for (var i = 0, e = ft.length; i < e; ++i) { + found = lookup(name, keyMap[ft[i]]); + if (found != null) return found; + } + return null; + } + return extraMap ? lookup(name, extraMap, map) : lookup(name, keyMap[map]); + } + function isModifierKey(event) { + var name = keyNames[event.keyCode]; + return name == "Ctrl" || name == "Alt" || name == "Shift" || name == "Mod"; + } + + CodeMirror.fromTextArea = function(textarea, options) { + if (!options) options = {}; + options.value = textarea.value; + if (!options.tabindex && textarea.tabindex) + options.tabindex = textarea.tabindex; + + function save() {textarea.value = instance.getValue();} + if (textarea.form) { + // Deplorable hack to make the submit method do the right thing. + var rmSubmit = connect(textarea.form, "submit", save, true); + if (typeof textarea.form.submit == "function") { + var realSubmit = textarea.form.submit; + function wrappedSubmit() { + save(); + textarea.form.submit = realSubmit; + textarea.form.submit(); + textarea.form.submit = wrappedSubmit; + } + textarea.form.submit = wrappedSubmit; + } + } + + textarea.style.display = "none"; + var instance = CodeMirror(function(node) { + textarea.parentNode.insertBefore(node, textarea.nextSibling); + }, options); + instance.save = save; + instance.getTextArea = function() { return textarea; }; + instance.toTextArea = function() { + save(); + textarea.parentNode.removeChild(instance.getWrapperElement()); + textarea.style.display = ""; + if (textarea.form) { + rmSubmit(); + if (typeof textarea.form.submit == "function") + textarea.form.submit = realSubmit; + } + }; + return instance; + }; + + // Utility functions for working with state. Exported because modes + // sometimes need to do this. + function copyState(mode, state) { + if (state === true) return state; + if (mode.copyState) return mode.copyState(state); + var nstate = {}; + for (var n in state) { + var val = state[n]; + if (val instanceof Array) val = val.concat([]); + nstate[n] = val; + } + return nstate; + } + CodeMirror.copyState = copyState; + function startState(mode, a1, a2) { + return mode.startState ? mode.startState(a1, a2) : true; + } + CodeMirror.startState = startState; + + // The character stream used by a mode's parser. + function StringStream(string, tabSize) { + this.pos = this.start = 0; + this.string = string; + this.tabSize = tabSize || 8; + } + StringStream.prototype = { + eol: function() {return this.pos >= this.string.length;}, + sol: function() {return this.pos == 0;}, + peek: function() {return this.string.charAt(this.pos);}, + next: function() { + if (this.pos < this.string.length) + return this.string.charAt(this.pos++); + }, + eat: function(match) { + var ch = this.string.charAt(this.pos); + if (typeof match == "string") var ok = ch == match; + else var ok = ch && (match.test ? match.test(ch) : match(ch)); + if (ok) {++this.pos; return ch;} + }, + eatWhile: function(match) { + var start = this.pos; + while (this.eat(match)){} + return this.pos > start; + }, + eatSpace: function() { + var start = this.pos; + while (/[\s\u00a0]/.test(this.string.charAt(this.pos))) ++this.pos; + return this.pos > start; + }, + skipToEnd: function() {this.pos = this.string.length;}, + skipTo: function(ch) { + var found = this.string.indexOf(ch, this.pos); + if (found > -1) {this.pos = found; return true;} + }, + backUp: function(n) {this.pos -= n;}, + column: function() {return countColumn(this.string, this.start, this.tabSize);}, + indentation: function() {return countColumn(this.string, null, this.tabSize);}, + match: function(pattern, consume, caseInsensitive) { + if (typeof pattern == "string") { + function cased(str) {return caseInsensitive ? str.toLowerCase() : str;} + if (cased(this.string).indexOf(cased(pattern), this.pos) == this.pos) { + if (consume !== false) this.pos += pattern.length; + return true; + } + } + else { + var match = this.string.slice(this.pos).match(pattern); + if (match && consume !== false) this.pos += match[0].length; + return match; + } + }, + current: function(){return this.string.slice(this.start, this.pos);} + }; + CodeMirror.StringStream = StringStream; + + function MarkedText(from, to, className, set) { + this.from = from; this.to = to; this.style = className; this.set = set; + } + MarkedText.prototype = { + attach: function(line) { this.set.push(line); }, + detach: function(line) { + var ix = indexOf(this.set, line); + if (ix > -1) this.set.splice(ix, 1); + }, + split: function(pos, lenBefore) { + if (this.to <= pos && this.to != null) return null; + var from = this.from < pos || this.from == null ? null : this.from - pos + lenBefore; + var to = this.to == null ? null : this.to - pos + lenBefore; + return new MarkedText(from, to, this.style, this.set); + }, + dup: function() { return new MarkedText(null, null, this.style, this.set); }, + clipTo: function(fromOpen, from, toOpen, to, diff) { + if (this.from != null && this.from >= from) + this.from = Math.max(to, this.from) + diff; + if (this.to != null && this.to > from) + this.to = to < this.to ? this.to + diff : from; + if (fromOpen && to > this.from && (to < this.to || this.to == null)) + this.from = null; + if (toOpen && (from < this.to || this.to == null) && (from > this.from || this.from == null)) + this.to = null; + }, + isDead: function() { return this.from != null && this.to != null && this.from >= this.to; }, + sameSet: function(x) { return this.set == x.set; } + }; + + function Bookmark(pos) { + this.from = pos; this.to = pos; this.line = null; + } + Bookmark.prototype = { + attach: function(line) { this.line = line; }, + detach: function(line) { if (this.line == line) this.line = null; }, + split: function(pos, lenBefore) { + if (pos < this.from) { + this.from = this.to = (this.from - pos) + lenBefore; + return this; + } + }, + isDead: function() { return this.from > this.to; }, + clipTo: function(fromOpen, from, toOpen, to, diff) { + if ((fromOpen || from < this.from) && (toOpen || to > this.to)) { + this.from = 0; this.to = -1; + } else if (this.from > from) { + this.from = this.to = Math.max(to, this.from) + diff; + } + }, + sameSet: function(x) { return false; }, + find: function() { + if (!this.line || !this.line.parent) return null; + return {line: lineNo(this.line), ch: this.from}; + }, + clear: function() { + if (this.line) { + var found = indexOf(this.line.marked, this); + if (found != -1) this.line.marked.splice(found, 1); + this.line = null; + } + } + }; + + // Line objects. These hold state related to a line, including + // highlighting info (the styles array). + function Line(text, styles) { + this.styles = styles || [text, null]; + this.text = text; + this.height = 1; + this.marked = this.gutterMarker = this.className = this.handlers = null; + this.stateAfter = this.parent = this.hidden = null; + } + Line.inheritMarks = function(text, orig) { + var ln = new Line(text), mk = orig && orig.marked; + if (mk) { + for (var i = 0; i < mk.length; ++i) { + if (mk[i].to == null && mk[i].style) { + var newmk = ln.marked || (ln.marked = []), mark = mk[i]; + var nmark = mark.dup(); newmk.push(nmark); nmark.attach(ln); + } + } + } + return ln; + } + Line.prototype = { + // Replace a piece of a line, keeping the styles around it intact. + replace: function(from, to_, text) { + var st = [], mk = this.marked, to = to_ == null ? this.text.length : to_; + copyStyles(0, from, this.styles, st); + if (text) st.push(text, null); + copyStyles(to, this.text.length, this.styles, st); + this.styles = st; + this.text = this.text.slice(0, from) + text + this.text.slice(to); + this.stateAfter = null; + if (mk) { + var diff = text.length - (to - from); + for (var i = 0, mark = mk[i]; i < mk.length; ++i) { + mark.clipTo(from == null, from || 0, to_ == null, to, diff); + if (mark.isDead()) {mark.detach(this); mk.splice(i--, 1);} + } + } + }, + // Split a part off a line, keeping styles and markers intact. + split: function(pos, textBefore) { + var st = [textBefore, null], mk = this.marked; + copyStyles(pos, this.text.length, this.styles, st); + var taken = new Line(textBefore + this.text.slice(pos), st); + if (mk) { + for (var i = 0; i < mk.length; ++i) { + var mark = mk[i]; + var newmark = mark.split(pos, textBefore.length); + if (newmark) { + if (!taken.marked) taken.marked = []; + taken.marked.push(newmark); newmark.attach(taken); + } + } + } + return taken; + }, + append: function(line) { + var mylen = this.text.length, mk = line.marked, mymk = this.marked; + this.text += line.text; + copyStyles(0, line.text.length, line.styles, this.styles); + if (mymk) { + for (var i = 0; i < mymk.length; ++i) + if (mymk[i].to == null) mymk[i].to = mylen; + } + if (mk && mk.length) { + if (!mymk) this.marked = mymk = []; + outer: for (var i = 0; i < mk.length; ++i) { + var mark = mk[i]; + if (!mark.from) { + for (var j = 0; j < mymk.length; ++j) { + var mymark = mymk[j]; + if (mymark.to == mylen && mymark.sameSet(mark)) { + mymark.to = mark.to == null ? null : mark.to + mylen; + if (mymark.isDead()) { + mymark.detach(this); + mk.splice(i--, 1); + } + continue outer; + } + } + } + mymk.push(mark); + mark.attach(this); + mark.from += mylen; + if (mark.to != null) mark.to += mylen; + } + } + }, + fixMarkEnds: function(other) { + var mk = this.marked, omk = other.marked; + if (!mk) return; + for (var i = 0; i < mk.length; ++i) { + var mark = mk[i], close = mark.to == null; + if (close && omk) { + for (var j = 0; j < omk.length; ++j) + if (omk[j].sameSet(mark)) {close = false; break;} + } + if (close) mark.to = this.text.length; + } + }, + fixMarkStarts: function() { + var mk = this.marked; + if (!mk) return; + for (var i = 0; i < mk.length; ++i) + if (mk[i].from == null) mk[i].from = 0; + }, + addMark: function(mark) { + mark.attach(this); + if (this.marked == null) this.marked = []; + this.marked.push(mark); + this.marked.sort(function(a, b){return (a.from || 0) - (b.from || 0);}); + }, + // Run the given mode's parser over a line, update the styles + // array, which contains alternating fragments of text and CSS + // classes. + highlight: function(mode, state, tabSize) { + var stream = new StringStream(this.text, tabSize), st = this.styles, pos = 0; + var changed = false, curWord = st[0], prevWord; + if (this.text == "" && mode.blankLine) mode.blankLine(state); + while (!stream.eol()) { + var style = mode.token(stream, state); + var substr = this.text.slice(stream.start, stream.pos); + stream.start = stream.pos; + if (pos && st[pos-1] == style) + st[pos-2] += substr; + else if (substr) { + if (!changed && (st[pos+1] != style || (pos && st[pos-2] != prevWord))) changed = true; + st[pos++] = substr; st[pos++] = style; + prevWord = curWord; curWord = st[pos]; + } + // Give up when line is ridiculously long + if (stream.pos > 5000) { + st[pos++] = this.text.slice(stream.pos); st[pos++] = null; + break; + } + } + if (st.length != pos) {st.length = pos; changed = true;} + if (pos && st[pos-2] != prevWord) changed = true; + // Short lines with simple highlights return null, and are + // counted as changed by the driver because they are likely to + // highlight the same way in various contexts. + return changed || (st.length < 5 && this.text.length < 10 ? null : false); + }, + // Fetch the parser token for a given character. Useful for hacks + // that want to inspect the mode state (say, for completion). + getTokenAt: function(mode, state, ch) { + var txt = this.text, stream = new StringStream(txt); + while (stream.pos < ch && !stream.eol()) { + stream.start = stream.pos; + var style = mode.token(stream, state); + } + return {start: stream.start, + end: stream.pos, + string: stream.current(), + className: style || null, + state: state}; + }, + indentation: function(tabSize) {return countColumn(this.text, null, tabSize);}, + // Produces an HTML fragment for the line, taking selection, + // marking, and highlighting into account. + getHTML: function(sfrom, sto, includePre, tabText, endAt) { + var html = [], first = true; + if (includePre) + html.push(this.className ? '
    ': "
    ");
    +            function span(text, style) {
    +                if (!text) return;
    +                // Work around a bug where, in some compat modes, IE ignores leading spaces
    +                if (first && ie && text.charAt(0) == " ") text = "\u00a0" + text.slice(1);
    +                first = false;
    +                if (style) html.push('', htmlEscape(text).replace(/\t/g, tabText), "");
    +                else html.push(htmlEscape(text).replace(/\t/g, tabText));
    +            }
    +            var st = this.styles, allText = this.text, marked = this.marked;
    +            if (sfrom == sto) sfrom = null;
    +            var len = allText.length;
    +            if (endAt != null) len = Math.min(endAt, len);
    +
    +            if (!allText && endAt == null)
    +                span(" ", sfrom != null && sto == null ? "CodeMirror-selected" : null);
    +            else if (!marked && sfrom == null)
    +                for (var i = 0, ch = 0; ch < len; i+=2) {
    +                    var str = st[i], style = st[i+1], l = str.length;
    +                    if (ch + l > len) str = str.slice(0, len - ch);
    +                    ch += l;
    +                    span(str, style && "cm-" + style);
    +                }
    +            else {
    +                var pos = 0, i = 0, text = "", style, sg = 0;
    +                var markpos = -1, mark = null;
    +                function nextMark() {
    +                    if (marked) {
    +                        markpos += 1;
    +                        mark = (markpos < marked.length) ? marked[markpos] : null;
    +                    }
    +                }
    +                nextMark();
    +                while (pos < len) {
    +                    var upto = len;
    +                    var extraStyle = "";
    +                    if (sfrom != null) {
    +                        if (sfrom > pos) upto = sfrom;
    +                        else if (sto == null || sto > pos) {
    +                            extraStyle = " CodeMirror-selected";
    +                            if (sto != null) upto = Math.min(upto, sto);
    +                        }
    +                    }
    +                    while (mark && mark.to != null && mark.to <= pos) nextMark();
    +                    if (mark) {
    +                        if (mark.from > pos) upto = Math.min(upto, mark.from);
    +                        else {
    +                            extraStyle += " " + mark.style;
    +                            if (mark.to != null) upto = Math.min(upto, mark.to);
    +                        }
    +                    }
    +                    for (;;) {
    +                        var end = pos + text.length;
    +                        var appliedStyle = style;
    +                        if (extraStyle) appliedStyle = style ? style + extraStyle : extraStyle;
    +                        span(end > upto ? text.slice(0, upto - pos) : text, appliedStyle);
    +                        if (end >= upto) {text = text.slice(upto - pos); pos = upto; break;}
    +                        pos = end;
    +                        text = st[i++]; style = "cm-" + st[i++];
    +                    }
    +                }
    +                if (sfrom != null && sto == null) span(" ", "CodeMirror-selected");
    +            }
    +            if (includePre) html.push("
    "); + return html.join(""); + }, + cleanUp: function() { + this.parent = null; + if (this.marked) + for (var i = 0, e = this.marked.length; i < e; ++i) this.marked[i].detach(this); + } + }; + // Utility used by replace and split above + function copyStyles(from, to, source, dest) { + for (var i = 0, pos = 0, state = 0; pos < to; i+=2) { + var part = source[i], end = pos + part.length; + if (state == 0) { + if (end > from) dest.push(part.slice(from - pos, Math.min(part.length, to - pos)), source[i+1]); + if (end >= from) state = 1; + } + else if (state == 1) { + if (end > to) dest.push(part.slice(0, to - pos), source[i+1]); + else dest.push(part, source[i+1]); + } + pos = end; + } + } + + // Data structure that holds the sequence of lines. + function LeafChunk(lines) { + this.lines = lines; + this.parent = null; + for (var i = 0, e = lines.length, height = 0; i < e; ++i) { + lines[i].parent = this; + height += lines[i].height; + } + this.height = height; + } + LeafChunk.prototype = { + chunkSize: function() { return this.lines.length; }, + remove: function(at, n, callbacks) { + for (var i = at, e = at + n; i < e; ++i) { + var line = this.lines[i]; + this.height -= line.height; + line.cleanUp(); + if (line.handlers) + for (var j = 0; j < line.handlers.length; ++j) callbacks.push(line.handlers[j]); + } + this.lines.splice(at, n); + }, + collapse: function(lines) { + lines.splice.apply(lines, [lines.length, 0].concat(this.lines)); + }, + insertHeight: function(at, lines, height) { + this.height += height; + this.lines.splice.apply(this.lines, [at, 0].concat(lines)); + for (var i = 0, e = lines.length; i < e; ++i) lines[i].parent = this; + }, + iterN: function(at, n, op) { + for (var e = at + n; at < e; ++at) + if (op(this.lines[at])) return true; + } + }; + function BranchChunk(children) { + this.children = children; + var size = 0, height = 0; + for (var i = 0, e = children.length; i < e; ++i) { + var ch = children[i]; + size += ch.chunkSize(); height += ch.height; + ch.parent = this; + } + this.size = size; + this.height = height; + this.parent = null; + } + BranchChunk.prototype = { + chunkSize: function() { return this.size; }, + remove: function(at, n, callbacks) { + this.size -= n; + for (var i = 0; i < this.children.length; ++i) { + var child = this.children[i], sz = child.chunkSize(); + if (at < sz) { + var rm = Math.min(n, sz - at), oldHeight = child.height; + child.remove(at, rm, callbacks); + this.height -= oldHeight - child.height; + if (sz == rm) { this.children.splice(i--, 1); child.parent = null; } + if ((n -= rm) == 0) break; + at = 0; + } else at -= sz; + } + if (this.size - n < 25) { + var lines = []; + this.collapse(lines); + this.children = [new LeafChunk(lines)]; + } + }, + collapse: function(lines) { + for (var i = 0, e = this.children.length; i < e; ++i) this.children[i].collapse(lines); + }, + insert: function(at, lines) { + var height = 0; + for (var i = 0, e = lines.length; i < e; ++i) height += lines[i].height; + this.insertHeight(at, lines, height); + }, + insertHeight: function(at, lines, height) { + this.size += lines.length; + this.height += height; + for (var i = 0, e = this.children.length; i < e; ++i) { + var child = this.children[i], sz = child.chunkSize(); + if (at <= sz) { + child.insertHeight(at, lines, height); + if (child.lines && child.lines.length > 50) { + while (child.lines.length > 50) { + var spilled = child.lines.splice(child.lines.length - 25, 25); + var newleaf = new LeafChunk(spilled); + child.height -= newleaf.height; + this.children.splice(i + 1, 0, newleaf); + newleaf.parent = this; + } + this.maybeSpill(); + } + break; + } + at -= sz; + } + }, + maybeSpill: function() { + if (this.children.length <= 10) return; + var me = this; + do { + var spilled = me.children.splice(me.children.length - 5, 5); + var sibling = new BranchChunk(spilled); + if (!me.parent) { // Become the parent node + var copy = new BranchChunk(me.children); + copy.parent = me; + me.children = [copy, sibling]; + me = copy; + } else { + me.size -= sibling.size; + me.height -= sibling.height; + var myIndex = indexOf(me.parent.children, me); + me.parent.children.splice(myIndex + 1, 0, sibling); + } + sibling.parent = me.parent; + } while (me.children.length > 10); + me.parent.maybeSpill(); + }, + iter: function(from, to, op) { this.iterN(from, to - from, op); }, + iterN: function(at, n, op) { + for (var i = 0, e = this.children.length; i < e; ++i) { + var child = this.children[i], sz = child.chunkSize(); + if (at < sz) { + var used = Math.min(n, sz - at); + if (child.iterN(at, used, op)) return true; + if ((n -= used) == 0) break; + at = 0; + } else at -= sz; + } + } + }; + + function getLineAt(chunk, n) { + while (!chunk.lines) { + for (var i = 0;; ++i) { + var child = chunk.children[i], sz = child.chunkSize(); + if (n < sz) { chunk = child; break; } + n -= sz; + } + } + return chunk.lines[n]; + } + function lineNo(line) { + if (line.parent == null) return null; + var cur = line.parent, no = indexOf(cur.lines, line); + for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) { + for (var i = 0, e = chunk.children.length; ; ++i) { + if (chunk.children[i] == cur) break; + no += chunk.children[i].chunkSize(); + } + } + return no; + } + function lineAtHeight(chunk, h) { + var n = 0; + outer: do { + for (var i = 0, e = chunk.children.length; i < e; ++i) { + var child = chunk.children[i], ch = child.height; + if (h < ch) { chunk = child; continue outer; } + h -= ch; + n += child.chunkSize(); + } + return n; + } while (!chunk.lines); + for (var i = 0, e = chunk.lines.length; i < e; ++i) { + var line = chunk.lines[i], lh = line.height; + if (h < lh) break; + h -= lh; + } + return n + i; + } + function heightAtLine(chunk, n) { + var h = 0; + outer: do { + for (var i = 0, e = chunk.children.length; i < e; ++i) { + var child = chunk.children[i], sz = child.chunkSize(); + if (n < sz) { chunk = child; continue outer; } + n -= sz; + h += child.height; + } + return h; + } while (!chunk.lines); + for (var i = 0; i < n; ++i) h += chunk.lines[i].height; + return h; + } + + // The history object 'chunks' changes that are made close together + // and at almost the same time into bigger undoable units. + function History() { + this.time = 0; + this.done = []; this.undone = []; + } + History.prototype = { + addChange: function(start, added, old) { + this.undone.length = 0; + var time = +new Date, last = this.done[this.done.length - 1]; + if (time - this.time > 400 || !last || + last.start > start + added || last.start + last.added < start - last.added + last.old.length) + this.done.push({start: start, added: added, old: old}); + else { + var oldoff = 0; + if (start < last.start) { + for (var i = last.start - start - 1; i >= 0; --i) + last.old.unshift(old[i]); + last.added += last.start - start; + last.start = start; + } + else if (last.start < start) { + oldoff = start - last.start; + added += oldoff; + } + for (var i = last.added - oldoff, e = old.length; i < e; ++i) + last.old.push(old[i]); + if (last.added < added) last.added = added; + } + this.time = time; + } + }; + + function stopMethod() {e_stop(this);} + // Ensure an event has a stop method. + function addStop(event) { + if (!event.stop) event.stop = stopMethod; + return event; + } + + function e_preventDefault(e) { + if (e.preventDefault) e.preventDefault(); + else e.returnValue = false; + } + function e_stopPropagation(e) { + if (e.stopPropagation) e.stopPropagation(); + else e.cancelBubble = true; + } + function e_stop(e) {e_preventDefault(e); e_stopPropagation(e);} + CodeMirror.e_stop = e_stop; + CodeMirror.e_preventDefault = e_preventDefault; + CodeMirror.e_stopPropagation = e_stopPropagation; + + function e_target(e) {return e.target || e.srcElement;} + function e_button(e) { + if (e.which) return e.which; + else if (e.button & 1) return 1; + else if (e.button & 2) return 3; + else if (e.button & 4) return 2; + } + + // Event handler registration. If disconnect is true, it'll return a + // function that unregisters the handler. + function connect(node, type, handler, disconnect) { + if (typeof node.addEventListener == "function") { + node.addEventListener(type, handler, false); + if (disconnect) return function() {node.removeEventListener(type, handler, false);}; + } + else { + var wrapHandler = function(event) {handler(event || window.event);}; + node.attachEvent("on" + type, wrapHandler); + if (disconnect) return function() {node.detachEvent("on" + type, wrapHandler);}; + } + } + CodeMirror.connect = connect; + + function Delayed() {this.id = null;} + Delayed.prototype = {set: function(ms, f) {clearTimeout(this.id); this.id = setTimeout(f, ms);}}; + + // Detect drag-and-drop + var dragAndDrop = function() { + // IE8 has ondragstart and ondrop properties, but doesn't seem to + // actually support ondragstart the way it's supposed to work. + if (/MSIE [1-8]\b/.test(navigator.userAgent)) return false; + var div = document.createElement('div'); + return "draggable" in div; + }(); + + var gecko = /gecko\/\d{7}/i.test(navigator.userAgent); + var ie = /MSIE \d/.test(navigator.userAgent); + var webkit = /WebKit\//.test(navigator.userAgent); + + var lineSep = "\n"; + // Feature-detect whether newlines in textareas are converted to \r\n + (function () { + var te = document.createElement("textarea"); + te.value = "foo\nbar"; + if (te.value.indexOf("\r") > -1) lineSep = "\r\n"; + }()); + + // Counts the column offset in a string, taking tabs into account. + // Used mostly to find indentation. + function countColumn(string, end, tabSize) { + if (end == null) { + end = string.search(/[^\s\u00a0]/); + if (end == -1) end = string.length; + } + for (var i = 0, n = 0; i < end; ++i) { + if (string.charAt(i) == "\t") n += tabSize - (n % tabSize); + else ++n; + } + return n; + } + + function computedStyle(elt) { + if (elt.currentStyle) return elt.currentStyle; + return window.getComputedStyle(elt, null); + } + + // Find the position of an element by following the offsetParent chain. + // If screen==true, it returns screen (rather than page) coordinates. + function eltOffset(node, screen) { + var bod = node.ownerDocument.body; + var x = 0, y = 0, skipBody = false; + for (var n = node; n; n = n.offsetParent) { + var ol = n.offsetLeft, ot = n.offsetTop; + // Firefox reports weird inverted offsets when the body has a border. + if (n == bod) { x += Math.abs(ol); y += Math.abs(ot); } + else { x += ol, y += ot; } + if (screen && computedStyle(n).position == "fixed") + skipBody = true; + } + var e = screen && !skipBody ? null : bod; + for (var n = node.parentNode; n != e; n = n.parentNode) + if (n.scrollLeft != null) { x -= n.scrollLeft; y -= n.scrollTop;} + return {left: x, top: y}; + } + // Use the faster and saner getBoundingClientRect method when possible. + if (document.documentElement.getBoundingClientRect != null) eltOffset = function(node, screen) { + // Take the parts of bounding client rect that we are interested in so we are able to edit if need be, + // since the returned value cannot be changed externally (they are kept in sync as the element moves within the page) + try { var box = node.getBoundingClientRect(); box = { top: box.top, left: box.left }; } + catch(e) { box = {top: 0, left: 0}; } + if (!screen) { + // Get the toplevel scroll, working around browser differences. + if (window.pageYOffset == null) { + var t = document.documentElement || document.body.parentNode; + if (t.scrollTop == null) t = document.body; + box.top += t.scrollTop; box.left += t.scrollLeft; + } else { + box.top += window.pageYOffset; box.left += window.pageXOffset; + } + } + return box; + }; + + // Get a node's text content. + function eltText(node) { + return node.textContent || node.innerText || node.nodeValue || ""; + } + + // Operations on {line, ch} objects. + function posEq(a, b) {return a.line == b.line && a.ch == b.ch;} + function posLess(a, b) {return a.line < b.line || (a.line == b.line && a.ch < b.ch);} + function copyPos(x) {return {line: x.line, ch: x.ch};} + + var escapeElement = document.createElement("pre"); + function htmlEscape(str) { + escapeElement.textContent = str; + return escapeElement.innerHTML; + } + // Recent (late 2011) Opera betas insert bogus newlines at the start + // of the textContent, so we strip those. + if (htmlEscape("a") == "\na") + htmlEscape = function(str) { + escapeElement.textContent = str; + return escapeElement.innerHTML.slice(1); + }; + // Some IEs don't preserve tabs through innerHTML + else if (htmlEscape("\t") != "\t") + htmlEscape = function(str) { + escapeElement.innerHTML = ""; + escapeElement.appendChild(document.createTextNode(str)); + return escapeElement.innerHTML; + }; + CodeMirror.htmlEscape = htmlEscape; + + // Used to position the cursor after an undo/redo by finding the + // last edited character. + function editEnd(from, to) { + if (!to) return from ? from.length : 0; + if (!from) return to.length; + for (var i = from.length, j = to.length; i >= 0 && j >= 0; --i, --j) + if (from.charAt(i) != to.charAt(j)) break; + return j + 1; + } + + function indexOf(collection, elt) { + if (collection.indexOf) return collection.indexOf(elt); + for (var i = 0, e = collection.length; i < e; ++i) + if (collection[i] == elt) return i; + return -1; + } + function isWordChar(ch) { + return /\w/.test(ch) || ch.toUpperCase() != ch.toLowerCase(); + } + + // See if "".split is the broken IE version, if so, provide an + // alternative way to split lines. + var splitLines = "\n\nb".split(/\n/).length != 3 ? function(string) { + var pos = 0, nl, result = []; + while ((nl = string.indexOf("\n", pos)) > -1) { + result.push(string.slice(pos, string.charAt(nl-1) == "\r" ? nl - 1 : nl)); + pos = nl + 1; + } + result.push(string.slice(pos)); + return result; + } : function(string){return string.split(/\r?\n/);}; + CodeMirror.splitLines = splitLines; + + var hasSelection = window.getSelection ? function(te) { + try { return te.selectionStart != te.selectionEnd; } + catch(e) { return false; } + } : function(te) { + try {var range = te.ownerDocument.selection.createRange();} + catch(e) {} + if (!range || range.parentElement() != te) return false; + return range.compareEndPoints("StartToEnd", range) != 0; + }; + + CodeMirror.defineMode("null", function() { + return {token: function(stream) {stream.skipToEnd();}}; + }); + CodeMirror.defineMIME("text/plain", "null"); + + var keyNames = {3: "Enter", 8: "Backspace", 9: "Tab", 13: "Enter", 16: "Shift", 17: "Ctrl", 18: "Alt", + 19: "Pause", 20: "CapsLock", 27: "Esc", 32: "Space", 33: "PageUp", 34: "PageDown", 35: "End", + 36: "Home", 37: "Left", 38: "Up", 39: "Right", 40: "Down", 44: "PrintScrn", 45: "Insert", + 46: "Delete", 59: ";", 91: "Mod", 92: "Mod", 93: "Mod", 186: ";", 187: "=", 188: ",", + 189: "-", 190: ".", 191: "/", 192: "`", 219: "[", 220: "\\", 221: "]", 222: "'", 63276: "PageUp", + 63277: "PageDown", 63275: "End", 63273: "Home", 63234: "Left", 63232: "Up", 63235: "Right", + 63233: "Down", 63302: "Insert", 63272: "Delete"}; + CodeMirror.keyNames = keyNames; + (function() { + // Number keys + for (var i = 0; i < 10; i++) keyNames[i + 48] = String(i); + // Alphabetic keys + for (var i = 65; i <= 90; i++) keyNames[i] = String.fromCharCode(i); + // Function keys + for (var i = 1; i <= 12; i++) keyNames[i + 111] = keyNames[i + 63235] = "F" + i; + })(); + + return CodeMirror; +})(); +CodeMirror.defineMode("xml", function(config, parserConfig) { + var indentUnit = config.indentUnit; + var Kludges = parserConfig.htmlMode ? { + autoSelfClosers: {"br": true, "img": true, "hr": true, "link": true, "input": true, + "meta": true, "col": true, "frame": true, "base": true, "area": true}, + doNotIndent: {"pre": true}, + allowUnquoted: true + } : {autoSelfClosers: {}, doNotIndent: {}, allowUnquoted: false}; + var alignCDATA = parserConfig.alignCDATA; + + // Return variables for tokenizers + var tagName, type; + + function inText(stream, state) { + function chain(parser) { + state.tokenize = parser; + return parser(stream, state); + } + + var ch = stream.next(); + if (ch == "<") { + if (stream.eat("!")) { + if (stream.eat("[")) { + if (stream.match("CDATA[")) return chain(inBlock("atom", "]]>")); + else return null; + } + else if (stream.match("--")) return chain(inBlock("comment", "-->")); + else if (stream.match("DOCTYPE", true, true)) { + stream.eatWhile(/[\w\._\-]/); + return chain(doctype(1)); + } + else return null; + } + else if (stream.eat("?")) { + stream.eatWhile(/[\w\._\-]/); + state.tokenize = inBlock("meta", "?>"); + return "meta"; + } + else { + type = stream.eat("/") ? "closeTag" : "openTag"; + stream.eatSpace(); + tagName = ""; + var c; + while ((c = stream.eat(/[^\s\u00a0=<>\"\'\/?]/))) tagName += c; + state.tokenize = inTag; + return "tag"; + } + } + else if (ch == "&") { + stream.eatWhile(/[^;]/); + stream.eat(";"); + return "atom"; + } + else { + stream.eatWhile(/[^&<]/); + return null; + } + } + + function inTag(stream, state) { + var ch = stream.next(); + if (ch == ">" || (ch == "/" && stream.eat(">"))) { + state.tokenize = inText; + type = ch == ">" ? "endTag" : "selfcloseTag"; + return "tag"; + } + else if (ch == "=") { + type = "equals"; + return null; + } + else if (/[\'\"]/.test(ch)) { + state.tokenize = inAttribute(ch); + return state.tokenize(stream, state); + } + else { + stream.eatWhile(/[^\s\u00a0=<>\"\'\/?]/); + return "word"; + } + } + + function inAttribute(quote) { + return function(stream, state) { + while (!stream.eol()) { + if (stream.next() == quote) { + state.tokenize = inTag; + break; + } + } + return "string"; + }; + } + + function inBlock(style, terminator) { + return function(stream, state) { + while (!stream.eol()) { + if (stream.match(terminator)) { + state.tokenize = inText; + break; + } + stream.next(); + } + return style; + }; + } + function doctype(depth) { + return function(stream, state) { + var ch; + while ((ch = stream.next()) != null) { + if (ch == "<") { + state.tokenize = doctype(depth + 1); + return state.tokenize(stream, state); + } else if (ch == ">") { + if (depth == 1) { + state.tokenize = inText; + break; + } else { + state.tokenize = doctype(depth - 1); + return state.tokenize(stream, state); + } + } + } + return "meta"; + }; + } + + var curState, setStyle; + function pass() { + for (var i = arguments.length - 1; i >= 0; i--) curState.cc.push(arguments[i]); + } + function cont() { + pass.apply(null, arguments); + return true; + } + + function pushContext(tagName, startOfLine) { + var noIndent = Kludges.doNotIndent.hasOwnProperty(tagName) || (curState.context && curState.context.noIndent); + curState.context = { + prev: curState.context, + tagName: tagName, + indent: curState.indented, + startOfLine: startOfLine, + noIndent: noIndent + }; + } + function popContext() { + if (curState.context) curState.context = curState.context.prev; + } + + function element(type) { + if (type == "openTag") { + curState.tagName = tagName; + return cont(attributes, endtag(curState.startOfLine)); + } else if (type == "closeTag") { + var err = false; + if (curState.context) { + err = curState.context.tagName != tagName; + } else { + err = true; + } + if (err) setStyle = "error"; + return cont(endclosetag(err)); + } + return cont(); + } + function endtag(startOfLine) { + return function(type) { + if (type == "selfcloseTag" || + (type == "endTag" && Kludges.autoSelfClosers.hasOwnProperty(curState.tagName.toLowerCase()))) + return cont(); + if (type == "endTag") {pushContext(curState.tagName, startOfLine); return cont();} + return cont(); + }; + } + function endclosetag(err) { + return function(type) { + if (err) setStyle = "error"; + if (type == "endTag") { popContext(); return cont(); } + setStyle = "error"; + return cont(arguments.callee); + } + } + + function attributes(type) { + if (type == "word") {setStyle = "attribute"; return cont(attributes);} + if (type == "equals") return cont(attvalue, attributes); + if (type == "string") {setStyle = "error"; return cont(attributes);} + return pass(); + } + function attvalue(type) { + if (type == "word" && Kludges.allowUnquoted) {setStyle = "string"; return cont();} + if (type == "string") return cont(attvaluemaybe); + return pass(); + } + function attvaluemaybe(type) { + if (type == "string") return cont(attvaluemaybe); + else return pass(); + } + + return { + startState: function() { + return {tokenize: inText, cc: [], indented: 0, startOfLine: true, tagName: null, context: null}; + }, + + token: function(stream, state) { + if (stream.sol()) { + state.startOfLine = true; + state.indented = stream.indentation(); + } + if (stream.eatSpace()) return null; + + setStyle = type = tagName = null; + var style = state.tokenize(stream, state); + state.type = type; + if ((style || type) && style != "comment") { + curState = state; + while (true) { + var comb = state.cc.pop() || element; + if (comb(type || style)) break; + } + } + state.startOfLine = false; + return setStyle || style; + }, + + indent: function(state, textAfter, fullLine) { + var context = state.context; + if ((state.tokenize != inTag && state.tokenize != inText) || + context && context.noIndent) + return fullLine ? fullLine.match(/^(\s*)/)[0].length : 0; + if (alignCDATA && /!?|]/; + + function chain(stream, state, f) { + state.tokenize = f; + return f(stream, state); + } + + function nextUntilUnescaped(stream, end) { + var escaped = false, next; + while ((next = stream.next()) != null) { + if (next == end && !escaped) + return false; + escaped = !escaped && next == "\\"; + } + return escaped; + } + + // Used as scratch variables to communicate multiple values without + // consing up tons of objects. + var type, content; + function ret(tp, style, cont) { + type = tp; content = cont; + return style; + } + + function jsTokenBase(stream, state) { + var ch = stream.next(); + if (ch == '"' || ch == "'") + return chain(stream, state, jsTokenString(ch)); + else if (/[\[\]{}\(\),;\:\.]/.test(ch)) + return ret(ch); + else if (ch == "0" && stream.eat(/x/i)) { + stream.eatWhile(/[\da-f]/i); + return ret("number", "number"); + } + else if (/\d/.test(ch)) { + stream.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/); + return ret("number", "number"); + } + else if (ch == "/") { + if (stream.eat("*")) { + return chain(stream, state, jsTokenComment); + } + else if (stream.eat("/")) { + stream.skipToEnd(); + return ret("comment", "comment"); + } + else if (state.reAllowed) { + nextUntilUnescaped(stream, "/"); + stream.eatWhile(/[gimy]/); // 'y' is "sticky" option in Mozilla + return ret("regexp", "string"); + } + else { + stream.eatWhile(isOperatorChar); + return ret("operator", null, stream.current()); + } + } + else if (ch == "#") { + stream.skipToEnd(); + return ret("error", "error"); + } + else if (isOperatorChar.test(ch)) { + stream.eatWhile(isOperatorChar); + return ret("operator", null, stream.current()); + } + else { + stream.eatWhile(/[\w\$_]/); + var word = stream.current(), known = keywords.propertyIsEnumerable(word) && keywords[word]; + return (known && state.kwAllowed) ? ret(known.type, known.style, word) : + ret("variable", "variable", word); + } + } + + function jsTokenString(quote) { + return function(stream, state) { + if (!nextUntilUnescaped(stream, quote)) + state.tokenize = jsTokenBase; + return ret("string", "string"); + }; + } + + function jsTokenComment(stream, state) { + var maybeEnd = false, ch; + while (ch = stream.next()) { + if (ch == "/" && maybeEnd) { + state.tokenize = jsTokenBase; + break; + } + maybeEnd = (ch == "*"); + } + return ret("comment", "comment"); + } + + // Parser + + var atomicTypes = {"atom": true, "number": true, "variable": true, "string": true, "regexp": true}; + + function JSLexical(indented, column, type, align, prev, info) { + this.indented = indented; + this.column = column; + this.type = type; + this.prev = prev; + this.info = info; + if (align != null) this.align = align; + } + + function inScope(state, varname) { + for (var v = state.localVars; v; v = v.next) + if (v.name == varname) return true; + } + + function parseJS(state, style, type, content, stream) { + var cc = state.cc; + // Communicate our context to the combinators. + // (Less wasteful than consing up a hundred closures on every call.) + cx.state = state; cx.stream = stream; cx.marked = null, cx.cc = cc; + + if (!state.lexical.hasOwnProperty("align")) + state.lexical.align = true; + + while(true) { + var combinator = cc.length ? cc.pop() : jsonMode ? expression : statement; + if (combinator(type, content)) { + while(cc.length && cc[cc.length - 1].lex) + cc.pop()(); + if (cx.marked) return cx.marked; + if (type == "variable" && inScope(state, content)) return "variable-2"; + return style; + } + } + } + + // Combinator utils + + var cx = {state: null, column: null, marked: null, cc: null}; + function pass() { + for (var i = arguments.length - 1; i >= 0; i--) cx.cc.push(arguments[i]); + } + function cont() { + pass.apply(null, arguments); + return true; + } + function register(varname) { + var state = cx.state; + if (state.context) { + cx.marked = "def"; + for (var v = state.localVars; v; v = v.next) + if (v.name == varname) return; + state.localVars = {name: varname, next: state.localVars}; + } + } + + // Combinators + + var defaultVars = {name: "this", next: {name: "arguments"}}; + function pushcontext() { + if (!cx.state.context) cx.state.localVars = defaultVars; + cx.state.context = {prev: cx.state.context, vars: cx.state.localVars}; + } + function popcontext() { + cx.state.localVars = cx.state.context.vars; + cx.state.context = cx.state.context.prev; + } + function pushlex(type, info) { + var result = function() { + var state = cx.state; + state.lexical = new JSLexical(state.indented, cx.stream.column(), type, null, state.lexical, info) + }; + result.lex = true; + return result; + } + function poplex() { + var state = cx.state; + if (state.lexical.prev) { + if (state.lexical.type == ")") + state.indented = state.lexical.indented; + state.lexical = state.lexical.prev; + } + } + poplex.lex = true; + + function expect(wanted) { + return function expecting(type) { + if (type == wanted) return cont(); + else if (wanted == ";") return pass(); + else return cont(arguments.callee); + }; + } + + function statement(type) { + if (type == "var") return cont(pushlex("vardef"), vardef1, expect(";"), poplex); + if (type == "keyword a") return cont(pushlex("form"), expression, statement, poplex); + if (type == "keyword b") return cont(pushlex("form"), statement, poplex); + if (type == "{") return cont(pushlex("}"), block, poplex); + if (type == ";") return cont(); + if (type == "function") return cont(functiondef); + if (type == "for") return cont(pushlex("form"), expect("("), pushlex(")"), forspec1, expect(")"), + poplex, statement, poplex); + if (type == "variable") return cont(pushlex("stat"), maybelabel); + if (type == "switch") return cont(pushlex("form"), expression, pushlex("}", "switch"), expect("{"), + block, poplex, poplex); + if (type == "case") return cont(expression, expect(":")); + if (type == "default") return cont(expect(":")); + if (type == "catch") return cont(pushlex("form"), pushcontext, expect("("), funarg, expect(")"), + statement, poplex, popcontext); + return pass(pushlex("stat"), expression, expect(";"), poplex); + } + function expression(type) { + if (atomicTypes.hasOwnProperty(type)) return cont(maybeoperator); + if (type == "function") return cont(functiondef); + if (type == "keyword c") return cont(maybeexpression); + if (type == "(") return cont(pushlex(")"), expression, expect(")"), poplex, maybeoperator); + if (type == "operator") return cont(expression); + if (type == "[") return cont(pushlex("]"), commasep(expression, "]"), poplex, maybeoperator); + if (type == "{") return cont(pushlex("}"), commasep(objprop, "}"), poplex, maybeoperator); + return cont(); + } + function maybeexpression(type) { + if (type.match(/[;\}\)\],]/)) return pass(); + return pass(expression); + } + + function maybeoperator(type, value) { + if (type == "operator" && /\+\+|--/.test(value)) return cont(maybeoperator); + if (type == "operator") return cont(expression); + if (type == ";") return; + if (type == "(") return cont(pushlex(")"), commasep(expression, ")"), poplex, maybeoperator); + if (type == ".") return cont(property, maybeoperator); + if (type == "[") return cont(pushlex("]"), expression, expect("]"), poplex, maybeoperator); + } + function maybelabel(type) { + if (type == ":") return cont(poplex, statement); + return pass(maybeoperator, expect(";"), poplex); + } + function property(type) { + if (type == "variable") {cx.marked = "property"; return cont();} + } + function objprop(type) { + if (type == "variable") cx.marked = "property"; + if (atomicTypes.hasOwnProperty(type)) return cont(expect(":"), expression); + } + function commasep(what, end) { + function proceed(type) { + if (type == ",") return cont(what, proceed); + if (type == end) return cont(); + return cont(expect(end)); + } + return function commaSeparated(type) { + if (type == end) return cont(); + else return pass(what, proceed); + }; + } + function block(type) { + if (type == "}") return cont(); + return pass(statement, block); + } + function vardef1(type, value) { + if (type == "variable"){register(value); return cont(vardef2);} + return cont(); + } + function vardef2(type, value) { + if (value == "=") return cont(expression, vardef2); + if (type == ",") return cont(vardef1); + } + function forspec1(type) { + if (type == "var") return cont(vardef1, forspec2); + if (type == ";") return pass(forspec2); + if (type == "variable") return cont(formaybein); + return pass(forspec2); + } + function formaybein(type, value) { + if (value == "in") return cont(expression); + return cont(maybeoperator, forspec2); + } + function forspec2(type, value) { + if (type == ";") return cont(forspec3); + if (value == "in") return cont(expression); + return cont(expression, expect(";"), forspec3); + } + function forspec3(type) { + if (type != ")") cont(expression); + } + function functiondef(type, value) { + if (type == "variable") {register(value); return cont(functiondef);} + if (type == "(") return cont(pushlex(")"), pushcontext, commasep(funarg, ")"), poplex, statement, popcontext); + } + function funarg(type, value) { + if (type == "variable") {register(value); return cont();} + } + + // Interface + + return { + startState: function(basecolumn) { + return { + tokenize: jsTokenBase, + reAllowed: true, + kwAllowed: true, + cc: [], + lexical: new JSLexical((basecolumn || 0) - indentUnit, 0, "block", false), + localVars: null, + context: null, + indented: 0 + }; + }, + + token: function(stream, state) { + if (stream.sol()) { + if (!state.lexical.hasOwnProperty("align")) + state.lexical.align = false; + state.indented = stream.indentation(); + } + if (stream.eatSpace()) return null; + var style = state.tokenize(stream, state); + if (type == "comment") return style; + state.reAllowed = type == "operator" || type == "keyword c" || type.match(/^[\[{}\(,;:]$/); + state.kwAllowed = type != '.'; + return parseJS(state, style, type, content, stream); + }, + + indent: function(state, textAfter) { + if (state.tokenize != jsTokenBase) return 0; + var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical, + type = lexical.type, closing = firstChar == type; + if (type == "vardef") return lexical.indented + 4; + else if (type == "form" && firstChar == "{") return lexical.indented; + else if (type == "stat" || type == "form") return lexical.indented + indentUnit; + else if (lexical.info == "switch" && !closing) + return lexical.indented + (/^(?:case|default)\b/.test(textAfter) ? indentUnit : 2 * indentUnit); + else if (lexical.align) return lexical.column + (closing ? 0 : 1); + else return lexical.indented + (closing ? 0 : indentUnit); + }, + + electricChars: ":{}" + }; +}); + +CodeMirror.defineMIME("text/javascript", "javascript"); +CodeMirror.defineMIME("application/json", {name: "javascript", json: true}); + +CodeMirror.defineMode("css", function(config) { + var indentUnit = config.indentUnit, type; + function ret(style, tp) {type = tp; return style;} + + function tokenBase(stream, state) { + var ch = stream.next(); + if (ch == "@") {stream.eatWhile(/[\w\\\-]/); return ret("meta", stream.current());} + else if (ch == "/" && stream.eat("*")) { + state.tokenize = tokenCComment; + return tokenCComment(stream, state); + } + else if (ch == "<" && stream.eat("!")) { + state.tokenize = tokenSGMLComment; + return tokenSGMLComment(stream, state); + } + else if (ch == "=") ret(null, "compare"); + else if ((ch == "~" || ch == "|") && stream.eat("=")) return ret(null, "compare"); + else if (ch == "\"" || ch == "'") { + state.tokenize = tokenString(ch); + return state.tokenize(stream, state); + } + else if (ch == "#") { + stream.eatWhile(/[\w\\\-]/); + return ret("atom", "hash"); + } + else if (ch == "!") { + stream.match(/^\s*\w*/); + return ret("keyword", "important"); + } + else if (/\d/.test(ch)) { + stream.eatWhile(/[\w.%]/); + return ret("number", "unit"); + } + else if (/[,.+>*\/]/.test(ch)) { + return ret(null, "select-op"); + } + else if (/[;{}:\[\]]/.test(ch)) { + return ret(null, ch); + } + else { + stream.eatWhile(/[\w\\\-]/); + return ret("variable", "variable"); + } + } + + function tokenCComment(stream, state) { + var maybeEnd = false, ch; + while ((ch = stream.next()) != null) { + if (maybeEnd && ch == "/") { + state.tokenize = tokenBase; + break; + } + maybeEnd = (ch == "*"); + } + return ret("comment", "comment"); + } + + function tokenSGMLComment(stream, state) { + var dashes = 0, ch; + while ((ch = stream.next()) != null) { + if (dashes >= 2 && ch == ">") { + state.tokenize = tokenBase; + break; + } + dashes = (ch == "-") ? dashes + 1 : 0; + } + return ret("comment", "comment"); + } + + function tokenString(quote) { + return function(stream, state) { + var escaped = false, ch; + while ((ch = stream.next()) != null) { + if (ch == quote && !escaped) + break; + escaped = !escaped && ch == "\\"; + } + if (!escaped) state.tokenize = tokenBase; + return ret("string", "string"); + }; + } + + return { + startState: function(base) { + return {tokenize: tokenBase, + baseIndent: base || 0, + stack: []}; + }, + + token: function(stream, state) { + if (stream.eatSpace()) return null; + var style = state.tokenize(stream, state); + + var context = state.stack[state.stack.length-1]; + if (type == "hash" && context == "rule") style = "atom"; + else if (style == "variable") { + if (context == "rule") style = "number"; + else if (!context || context == "@media{") style = "tag"; + } + + if (context == "rule" && /^[\{\};]$/.test(type)) + state.stack.pop(); + if (type == "{") { + if (context == "@media") state.stack[state.stack.length-1] = "@media{"; + else state.stack.push("{"); + } + else if (type == "}") state.stack.pop(); + else if (type == "@media") state.stack.push("@media"); + else if (context == "{" && type != "comment") state.stack.push("rule"); + return style; + }, + + indent: function(state, textAfter) { + var n = state.stack.length; + if (/^\}/.test(textAfter)) + n -= state.stack[state.stack.length-1] == "rule" ? 2 : 1; + return state.baseIndent + n * indentUnit; + }, + + electricChars: "}" + }; +}); + +CodeMirror.defineMIME("text/css", "css"); +CodeMirror.defineMode("htmlmixed", function(config, parserConfig) { + var htmlMode = CodeMirror.getMode(config, {name: "xml", htmlMode: true}); + var jsMode = CodeMirror.getMode(config, "javascript"); + var cssMode = CodeMirror.getMode(config, "css"); + + function html(stream, state) { + var style = htmlMode.token(stream, state.htmlState); + if (style == "tag" && stream.current() == ">" && state.htmlState.context) { + if (/^script$/i.test(state.htmlState.context.tagName)) { + state.token = javascript; + state.localState = jsMode.startState(htmlMode.indent(state.htmlState, "")); + state.mode = "javascript"; + } + else if (/^style$/i.test(state.htmlState.context.tagName)) { + state.token = css; + state.localState = cssMode.startState(htmlMode.indent(state.htmlState, "")); + state.mode = "css"; + } + } + return style; + } + function maybeBackup(stream, pat, style) { + var cur = stream.current(); + var close = cur.search(pat); + if (close > -1) stream.backUp(cur.length - close); + return style; + } + function javascript(stream, state) { + if (stream.match(/^<\/\s*script\s*>/i, false)) { + state.token = html; + state.curState = null; + state.mode = "html"; + return html(stream, state); + } + return maybeBackup(stream, /<\/\s*script\s*>/, + jsMode.token(stream, state.localState)); + } + function css(stream, state) { + if (stream.match(/^<\/\s*style\s*>/i, false)) { + state.token = html; + state.localState = null; + state.mode = "html"; + return html(stream, state); + } + return maybeBackup(stream, /<\/\s*style\s*>/, + cssMode.token(stream, state.localState)); + } + + return { + startState: function() { + var state = htmlMode.startState(); + return {token: html, localState: null, mode: "html", htmlState: state}; + }, + + copyState: function(state) { + if (state.localState) + var local = CodeMirror.copyState(state.token == css ? cssMode : jsMode, state.localState); + return {token: state.token, localState: local, mode: state.mode, + htmlState: CodeMirror.copyState(htmlMode, state.htmlState)}; + }, + + token: function(stream, state) { + return state.token(stream, state); + }, + + indent: function(state, textAfter) { + if (state.token == html || /^\s*<\//.test(textAfter)) + return htmlMode.indent(state.htmlState, textAfter); + else if (state.token == javascript) + return jsMode.indent(state.localState, textAfter); + else + return cssMode.indent(state.localState, textAfter); + }, + + compareStates: function(a, b) { + return htmlMode.compareStates(a.htmlState, b.htmlState); + }, + + electricChars: "/{}:" + } +}); + +CodeMirror.defineMIME("text/html", "htmlmixed"); diff --git a/public/static/UEditor/third-party/zeroclipboard/ZeroClipboard.js b/public/static/UEditor/third-party/zeroclipboard/ZeroClipboard.js new file mode 100644 index 00000000..1d5d868d --- /dev/null +++ b/public/static/UEditor/third-party/zeroclipboard/ZeroClipboard.js @@ -0,0 +1,1256 @@ +/*! +* ZeroClipboard +* The ZeroClipboard library provides an easy way to copy text to the clipboard using an invisible Adobe Flash movie and a JavaScript interface. +* Copyright (c) 2014 Jon Rohan, James M. Greene +* Licensed MIT +* http://zeroclipboard.org/ +* v2.0.0-beta.5 +*/ +(function(window) { + "use strict"; + var _currentElement; + var _flashState = { + bridge: null, + version: "0.0.0", + pluginType: "unknown", + disabled: null, + outdated: null, + unavailable: null, + deactivated: null, + overdue: null, + ready: null + }; + var _clipData = {}; + var _clipDataFormatMap = null; + var _clientIdCounter = 0; + var _clientMeta = {}; + var _elementIdCounter = 0; + var _elementMeta = {}; + var _swfPath = function() { + var i, jsDir, tmpJsPath, jsPath, swfPath = "ZeroClipboard.swf"; + if (!(document.currentScript && (jsPath = document.currentScript.src))) { + var scripts = document.getElementsByTagName("script"); + if ("readyState" in scripts[0]) { + for (i = scripts.length; i--; ) { + if (scripts[i].readyState === "interactive" && (jsPath = scripts[i].src)) { + break; + } + } + } else if (document.readyState === "loading") { + jsPath = scripts[scripts.length - 1].src; + } else { + for (i = scripts.length; i--; ) { + tmpJsPath = scripts[i].src; + if (!tmpJsPath) { + jsDir = null; + break; + } + tmpJsPath = tmpJsPath.split("#")[0].split("?")[0]; + tmpJsPath = tmpJsPath.slice(0, tmpJsPath.lastIndexOf("/") + 1); + if (jsDir == null) { + jsDir = tmpJsPath; + } else if (jsDir !== tmpJsPath) { + jsDir = null; + break; + } + } + if (jsDir !== null) { + jsPath = jsDir; + } + } + } + if (jsPath) { + jsPath = jsPath.split("#")[0].split("?")[0]; + swfPath = jsPath.slice(0, jsPath.lastIndexOf("/") + 1) + swfPath; + } + return swfPath; + }(); + var _camelizeCssPropName = function() { + var matcherRegex = /\-([a-z])/g, replacerFn = function(match, group) { + return group.toUpperCase(); + }; + return function(prop) { + return prop.replace(matcherRegex, replacerFn); + }; + }(); + var _getStyle = function(el, prop) { + var value, camelProp, tagName; + if (window.getComputedStyle) { + value = window.getComputedStyle(el, null).getPropertyValue(prop); + } else { + camelProp = _camelizeCssPropName(prop); + if (el.currentStyle) { + value = el.currentStyle[camelProp]; + } else { + value = el.style[camelProp]; + } + } + if (prop === "cursor") { + if (!value || value === "auto") { + tagName = el.tagName.toLowerCase(); + if (tagName === "a") { + return "pointer"; + } + } + } + return value; + }; + var _elementMouseOver = function(event) { + if (!event) { + event = window.event; + } + var target; + if (this !== window) { + target = this; + } else if (event.target) { + target = event.target; + } else if (event.srcElement) { + target = event.srcElement; + } + ZeroClipboard.activate(target); + }; + var _addEventHandler = function(element, method, func) { + if (!element || element.nodeType !== 1) { + return; + } + if (element.addEventListener) { + element.addEventListener(method, func, false); + } else if (element.attachEvent) { + element.attachEvent("on" + method, func); + } + }; + var _removeEventHandler = function(element, method, func) { + if (!element || element.nodeType !== 1) { + return; + } + if (element.removeEventListener) { + element.removeEventListener(method, func, false); + } else if (element.detachEvent) { + element.detachEvent("on" + method, func); + } + }; + var _addClass = function(element, value) { + if (!element || element.nodeType !== 1) { + return element; + } + if (element.classList) { + if (!element.classList.contains(value)) { + element.classList.add(value); + } + return element; + } + if (value && typeof value === "string") { + var classNames = (value || "").split(/\s+/); + if (element.nodeType === 1) { + if (!element.className) { + element.className = value; + } else { + var className = " " + element.className + " ", setClass = element.className; + for (var c = 0, cl = classNames.length; c < cl; c++) { + if (className.indexOf(" " + classNames[c] + " ") < 0) { + setClass += " " + classNames[c]; + } + } + element.className = setClass.replace(/^\s+|\s+$/g, ""); + } + } + } + return element; + }; + var _removeClass = function(element, value) { + if (!element || element.nodeType !== 1) { + return element; + } + if (element.classList) { + if (element.classList.contains(value)) { + element.classList.remove(value); + } + return element; + } + if (value && typeof value === "string" || value === undefined) { + var classNames = (value || "").split(/\s+/); + if (element.nodeType === 1 && element.className) { + if (value) { + var className = (" " + element.className + " ").replace(/[\n\t]/g, " "); + for (var c = 0, cl = classNames.length; c < cl; c++) { + className = className.replace(" " + classNames[c] + " ", " "); + } + element.className = className.replace(/^\s+|\s+$/g, ""); + } else { + element.className = ""; + } + } + } + return element; + }; + var _getZoomFactor = function() { + var rect, physicalWidth, logicalWidth, zoomFactor = 1; + if (typeof document.body.getBoundingClientRect === "function") { + rect = document.body.getBoundingClientRect(); + physicalWidth = rect.right - rect.left; + logicalWidth = document.body.offsetWidth; + zoomFactor = Math.round(physicalWidth / logicalWidth * 100) / 100; + } + return zoomFactor; + }; + var _getDOMObjectPosition = function(obj, defaultZIndex) { + var info = { + left: 0, + top: 0, + width: 0, + height: 0, + zIndex: _getSafeZIndex(defaultZIndex) - 1 + }; + if (obj.getBoundingClientRect) { + var rect = obj.getBoundingClientRect(); + var pageXOffset, pageYOffset, zoomFactor; + if ("pageXOffset" in window && "pageYOffset" in window) { + pageXOffset = window.pageXOffset; + pageYOffset = window.pageYOffset; + } else { + zoomFactor = _getZoomFactor(); + pageXOffset = Math.round(document.documentElement.scrollLeft / zoomFactor); + pageYOffset = Math.round(document.documentElement.scrollTop / zoomFactor); + } + var leftBorderWidth = document.documentElement.clientLeft || 0; + var topBorderWidth = document.documentElement.clientTop || 0; + info.left = rect.left + pageXOffset - leftBorderWidth; + info.top = rect.top + pageYOffset - topBorderWidth; + info.width = "width" in rect ? rect.width : rect.right - rect.left; + info.height = "height" in rect ? rect.height : rect.bottom - rect.top; + } + return info; + }; + var _cacheBust = function(path, options) { + var cacheBust = options == null || options && options.cacheBust === true; + if (cacheBust) { + return (path.indexOf("?") === -1 ? "?" : "&") + "noCache=" + new Date().getTime(); + } else { + return ""; + } + }; + var _vars = function(options) { + var i, len, domain, domains, str = "", trustedOriginsExpanded = []; + if (options.trustedDomains) { + if (typeof options.trustedDomains === "string") { + domains = [ options.trustedDomains ]; + } else if (typeof options.trustedDomains === "object" && "length" in options.trustedDomains) { + domains = options.trustedDomains; + } + } + if (domains && domains.length) { + for (i = 0, len = domains.length; i < len; i++) { + if (domains.hasOwnProperty(i) && domains[i] && typeof domains[i] === "string") { + domain = _extractDomain(domains[i]); + if (!domain) { + continue; + } + if (domain === "*") { + trustedOriginsExpanded = [ domain ]; + break; + } + trustedOriginsExpanded.push.apply(trustedOriginsExpanded, [ domain, "//" + domain, window.location.protocol + "//" + domain ]); + } + } + } + if (trustedOriginsExpanded.length) { + str += "trustedOrigins=" + encodeURIComponent(trustedOriginsExpanded.join(",")); + } + if (options.forceEnhancedClipboard === true) { + str += (str ? "&" : "") + "forceEnhancedClipboard=true"; + } + return str; + }; + var _inArray = function(elem, array, fromIndex) { + if (typeof array.indexOf === "function") { + return array.indexOf(elem, fromIndex); + } + var i, len = array.length; + if (typeof fromIndex === "undefined") { + fromIndex = 0; + } else if (fromIndex < 0) { + fromIndex = len + fromIndex; + } + for (i = fromIndex; i < len; i++) { + if (array.hasOwnProperty(i) && array[i] === elem) { + return i; + } + } + return -1; + }; + var _prepClip = function(elements) { + if (typeof elements === "string") { + throw new TypeError("ZeroClipboard doesn't accept query strings."); + } + return typeof elements.length !== "number" ? [ elements ] : elements; + }; + var _dispatchCallback = function(func, context, args, async) { + if (async) { + window.setTimeout(function() { + func.apply(context, args); + }, 0); + } else { + func.apply(context, args); + } + }; + var _getSafeZIndex = function(val) { + var zIndex, tmp; + if (val) { + if (typeof val === "number" && val > 0) { + zIndex = val; + } else if (typeof val === "string" && (tmp = parseInt(val, 10)) && !isNaN(tmp) && tmp > 0) { + zIndex = tmp; + } + } + if (!zIndex) { + if (typeof _globalConfig.zIndex === "number" && _globalConfig.zIndex > 0) { + zIndex = _globalConfig.zIndex; + } else if (typeof _globalConfig.zIndex === "string" && (tmp = parseInt(_globalConfig.zIndex, 10)) && !isNaN(tmp) && tmp > 0) { + zIndex = tmp; + } + } + return zIndex || 0; + }; + var _extend = function() { + var i, len, arg, prop, src, copy, target = arguments[0] || {}; + for (i = 1, len = arguments.length; i < len; i++) { + if ((arg = arguments[i]) != null) { + for (prop in arg) { + if (arg.hasOwnProperty(prop)) { + src = target[prop]; + copy = arg[prop]; + if (target === copy) { + continue; + } + if (copy !== undefined) { + target[prop] = copy; + } + } + } + } + } + return target; + }; + var _extractDomain = function(originOrUrl) { + if (originOrUrl == null || originOrUrl === "") { + return null; + } + originOrUrl = originOrUrl.replace(/^\s+|\s+$/g, ""); + if (originOrUrl === "") { + return null; + } + var protocolIndex = originOrUrl.indexOf("//"); + originOrUrl = protocolIndex === -1 ? originOrUrl : originOrUrl.slice(protocolIndex + 2); + var pathIndex = originOrUrl.indexOf("/"); + originOrUrl = pathIndex === -1 ? originOrUrl : protocolIndex === -1 || pathIndex === 0 ? null : originOrUrl.slice(0, pathIndex); + if (originOrUrl && originOrUrl.slice(-4).toLowerCase() === ".swf") { + return null; + } + return originOrUrl || null; + }; + var _determineScriptAccess = function() { + var _extractAllDomains = function(origins, resultsArray) { + var i, len, tmp; + if (origins == null || resultsArray[0] === "*") { + return; + } + if (typeof origins === "string") { + origins = [ origins ]; + } + if (!(typeof origins === "object" && typeof origins.length === "number")) { + return; + } + for (i = 0, len = origins.length; i < len; i++) { + if (origins.hasOwnProperty(i) && (tmp = _extractDomain(origins[i]))) { + if (tmp === "*") { + resultsArray.length = 0; + resultsArray.push("*"); + break; + } + if (_inArray(tmp, resultsArray) === -1) { + resultsArray.push(tmp); + } + } + } + }; + return function(currentDomain, configOptions) { + var swfDomain = _extractDomain(configOptions.swfPath); + if (swfDomain === null) { + swfDomain = currentDomain; + } + var trustedDomains = []; + _extractAllDomains(configOptions.trustedOrigins, trustedDomains); + _extractAllDomains(configOptions.trustedDomains, trustedDomains); + var len = trustedDomains.length; + if (len > 0) { + if (len === 1 && trustedDomains[0] === "*") { + return "always"; + } + if (_inArray(currentDomain, trustedDomains) !== -1) { + if (len === 1 && currentDomain === swfDomain) { + return "sameDomain"; + } + return "always"; + } + } + return "never"; + }; + }(); + var _objectKeys = function(obj) { + if (obj == null) { + return []; + } + if (Object.keys) { + return Object.keys(obj); + } + var keys = []; + for (var prop in obj) { + if (obj.hasOwnProperty(prop)) { + keys.push(prop); + } + } + return keys; + }; + var _deleteOwnProperties = function(obj) { + if (obj) { + for (var prop in obj) { + if (obj.hasOwnProperty(prop)) { + delete obj[prop]; + } + } + } + return obj; + }; + var _safeActiveElement = function() { + try { + return document.activeElement; + } catch (err) {} + return null; + }; + var _pick = function(obj, keys) { + var newObj = {}; + for (var i = 0, len = keys.length; i < len; i++) { + if (keys[i] in obj) { + newObj[keys[i]] = obj[keys[i]]; + } + } + return newObj; + }; + var _omit = function(obj, keys) { + var newObj = {}; + for (var prop in obj) { + if (_inArray(prop, keys) === -1) { + newObj[prop] = obj[prop]; + } + } + return newObj; + }; + var _mapClipDataToFlash = function(clipData) { + var newClipData = {}, formatMap = {}; + if (!(typeof clipData === "object" && clipData)) { + return; + } + for (var dataFormat in clipData) { + if (dataFormat && clipData.hasOwnProperty(dataFormat) && typeof clipData[dataFormat] === "string" && clipData[dataFormat]) { + switch (dataFormat.toLowerCase()) { + case "text/plain": + case "text": + case "air:text": + case "flash:text": + newClipData.text = clipData[dataFormat]; + formatMap.text = dataFormat; + break; + + case "text/html": + case "html": + case "air:html": + case "flash:html": + newClipData.html = clipData[dataFormat]; + formatMap.html = dataFormat; + break; + + case "application/rtf": + case "text/rtf": + case "rtf": + case "richtext": + case "air:rtf": + case "flash:rtf": + newClipData.rtf = clipData[dataFormat]; + formatMap.rtf = dataFormat; + break; + + default: + break; + } + } + } + return { + data: newClipData, + formatMap: formatMap + }; + }; + var _mapClipResultsFromFlash = function(clipResults, formatMap) { + if (!(typeof clipResults === "object" && clipResults && typeof formatMap === "object" && formatMap)) { + return clipResults; + } + var newResults = {}; + for (var prop in clipResults) { + if (clipResults.hasOwnProperty(prop)) { + if (prop !== "success" && prop !== "data") { + newResults[prop] = clipResults[prop]; + continue; + } + newResults[prop] = {}; + var tmpHash = clipResults[prop]; + for (var dataFormat in tmpHash) { + if (dataFormat && tmpHash.hasOwnProperty(dataFormat) && formatMap.hasOwnProperty(dataFormat)) { + newResults[prop][formatMap[dataFormat]] = tmpHash[dataFormat]; + } + } + } + } + return newResults; + }; + var _args = function(arraySlice) { + return function(args) { + return arraySlice.call(args, 0); + }; + }(window.Array.prototype.slice); + var _detectFlashSupport = function() { + var plugin, ax, mimeType, hasFlash = false, isActiveX = false, isPPAPI = false, flashVersion = ""; + function parseFlashVersion(desc) { + var matches = desc.match(/[\d]+/g); + matches.length = 3; + return matches.join("."); + } + function isPepperFlash(flashPlayerFileName) { + return !!flashPlayerFileName && (flashPlayerFileName = flashPlayerFileName.toLowerCase()) && (/^(pepflashplayer\.dll|libpepflashplayer\.so|pepperflashplayer\.plugin)$/.test(flashPlayerFileName) || flashPlayerFileName.slice(-13) === "chrome.plugin"); + } + function inspectPlugin(plugin) { + if (plugin) { + hasFlash = true; + if (plugin.version) { + flashVersion = parseFlashVersion(plugin.version); + } + if (!flashVersion && plugin.description) { + flashVersion = parseFlashVersion(plugin.description); + } + if (plugin.filename) { + isPPAPI = isPepperFlash(plugin.filename); + } + } + } + if (navigator.plugins && navigator.plugins.length) { + plugin = navigator.plugins["Shockwave Flash"]; + inspectPlugin(plugin); + if (navigator.plugins["Shockwave Flash 2.0"]) { + hasFlash = true; + flashVersion = "2.0.0.11"; + } + } else if (navigator.mimeTypes && navigator.mimeTypes.length) { + mimeType = navigator.mimeTypes["application/x-shockwave-flash"]; + plugin = mimeType && mimeType.enabledPlugin; + inspectPlugin(plugin); + } else if (typeof ActiveXObject !== "undefined") { + isActiveX = true; + try { + ax = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7"); + hasFlash = true; + flashVersion = parseFlashVersion(ax.GetVariable("$version")); + } catch (e1) { + try { + ax = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6"); + hasFlash = true; + flashVersion = "6.0.21"; + } catch (e2) { + try { + ax = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"); + hasFlash = true; + flashVersion = parseFlashVersion(ax.GetVariable("$version")); + } catch (e3) { + isActiveX = false; + } + } + } + } + _flashState.disabled = hasFlash !== true; + _flashState.outdated = flashVersion && parseFloat(flashVersion) < 11; + _flashState.version = flashVersion || "0.0.0"; + _flashState.pluginType = isPPAPI ? "pepper" : isActiveX ? "activex" : hasFlash ? "netscape" : "unknown"; + }; + _detectFlashSupport(); + var ZeroClipboard = function(elements) { + if (!(this instanceof ZeroClipboard)) { + return new ZeroClipboard(elements); + } + this.id = "" + _clientIdCounter++; + _clientMeta[this.id] = { + instance: this, + elements: [], + handlers: {} + }; + if (elements) { + this.clip(elements); + } + if (typeof _flashState.ready !== "boolean") { + _flashState.ready = false; + } + if (!ZeroClipboard.isFlashUnusable() && _flashState.bridge === null) { + var _client = this; + var maxWait = _globalConfig.flashLoadTimeout; + if (typeof maxWait === "number" && maxWait >= 0) { + setTimeout(function() { + if (typeof _flashState.deactivated !== "boolean") { + _flashState.deactivated = true; + } + if (_flashState.deactivated === true) { + ZeroClipboard.emit({ + type: "error", + name: "flash-deactivated", + client: _client + }); + } + }, maxWait); + } + _flashState.overdue = false; + _bridge(); + } + }; + ZeroClipboard.prototype.setText = function(text) { + ZeroClipboard.setData("text/plain", text); + return this; + }; + ZeroClipboard.prototype.setHtml = function(html) { + ZeroClipboard.setData("text/html", html); + return this; + }; + ZeroClipboard.prototype.setRichText = function(richText) { + ZeroClipboard.setData("application/rtf", richText); + return this; + }; + ZeroClipboard.prototype.setData = function() { + ZeroClipboard.setData.apply(ZeroClipboard, _args(arguments)); + return this; + }; + ZeroClipboard.prototype.clearData = function() { + ZeroClipboard.clearData.apply(ZeroClipboard, _args(arguments)); + return this; + }; + ZeroClipboard.prototype.setSize = function(width, height) { + _setSize(width, height); + return this; + }; + var _setHandCursor = function(enabled) { + if (_flashState.ready === true && _flashState.bridge && typeof _flashState.bridge.setHandCursor === "function") { + _flashState.bridge.setHandCursor(enabled); + } else { + _flashState.ready = false; + } + }; + ZeroClipboard.prototype.destroy = function() { + this.unclip(); + this.off(); + delete _clientMeta[this.id]; + }; + var _getAllClients = function() { + var i, len, client, clients = [], clientIds = _objectKeys(_clientMeta); + for (i = 0, len = clientIds.length; i < len; i++) { + client = _clientMeta[clientIds[i]].instance; + if (client && client instanceof ZeroClipboard) { + clients.push(client); + } + } + return clients; + }; + ZeroClipboard.version = "2.0.0-beta.5"; + var _globalConfig = { + swfPath: _swfPath, + trustedDomains: window.location.host ? [ window.location.host ] : [], + cacheBust: true, + forceHandCursor: false, + forceEnhancedClipboard: false, + zIndex: 999999999, + debug: false, + title: null, + autoActivate: true, + flashLoadTimeout: 3e4 + }; + ZeroClipboard.isFlashUnusable = function() { + return !!(_flashState.disabled || _flashState.outdated || _flashState.unavailable || _flashState.deactivated); + }; + ZeroClipboard.config = function(options) { + if (typeof options === "object" && options !== null) { + _extend(_globalConfig, options); + } + if (typeof options === "string" && options) { + if (_globalConfig.hasOwnProperty(options)) { + return _globalConfig[options]; + } + return; + } + var copy = {}; + for (var prop in _globalConfig) { + if (_globalConfig.hasOwnProperty(prop)) { + if (typeof _globalConfig[prop] === "object" && _globalConfig[prop] !== null) { + if ("length" in _globalConfig[prop]) { + copy[prop] = _globalConfig[prop].slice(0); + } else { + copy[prop] = _extend({}, _globalConfig[prop]); + } + } else { + copy[prop] = _globalConfig[prop]; + } + } + } + return copy; + }; + ZeroClipboard.destroy = function() { + ZeroClipboard.deactivate(); + for (var clientId in _clientMeta) { + if (_clientMeta.hasOwnProperty(clientId) && _clientMeta[clientId]) { + var client = _clientMeta[clientId].instance; + if (client && typeof client.destroy === "function") { + client.destroy(); + } + } + } + var flashBridge = _flashState.bridge; + if (flashBridge) { + var htmlBridge = _getHtmlBridge(flashBridge); + if (htmlBridge) { + if (_flashState.pluginType === "activex" && "readyState" in flashBridge) { + flashBridge.style.display = "none"; + (function removeSwfFromIE() { + if (flashBridge.readyState === 4) { + for (var prop in flashBridge) { + if (typeof flashBridge[prop] === "function") { + flashBridge[prop] = null; + } + } + flashBridge.parentNode.removeChild(flashBridge); + if (htmlBridge.parentNode) { + htmlBridge.parentNode.removeChild(htmlBridge); + } + } else { + setTimeout(removeSwfFromIE, 10); + } + })(); + } else { + flashBridge.parentNode.removeChild(flashBridge); + if (htmlBridge.parentNode) { + htmlBridge.parentNode.removeChild(htmlBridge); + } + } + } + _flashState.ready = null; + _flashState.bridge = null; + _flashState.deactivated = null; + } + ZeroClipboard.clearData(); + }; + ZeroClipboard.activate = function(element) { + if (_currentElement) { + _removeClass(_currentElement, _globalConfig.hoverClass); + _removeClass(_currentElement, _globalConfig.activeClass); + } + _currentElement = element; + _addClass(element, _globalConfig.hoverClass); + _reposition(); + var newTitle = _globalConfig.title || element.getAttribute("title"); + if (newTitle) { + var htmlBridge = _getHtmlBridge(_flashState.bridge); + if (htmlBridge) { + htmlBridge.setAttribute("title", newTitle); + } + } + var useHandCursor = _globalConfig.forceHandCursor === true || _getStyle(element, "cursor") === "pointer"; + _setHandCursor(useHandCursor); + }; + ZeroClipboard.deactivate = function() { + var htmlBridge = _getHtmlBridge(_flashState.bridge); + if (htmlBridge) { + htmlBridge.removeAttribute("title"); + htmlBridge.style.left = "0px"; + htmlBridge.style.top = "-9999px"; + _setSize(1, 1); + } + if (_currentElement) { + _removeClass(_currentElement, _globalConfig.hoverClass); + _removeClass(_currentElement, _globalConfig.activeClass); + _currentElement = null; + } + }; + ZeroClipboard.state = function() { + return { + browser: _pick(window.navigator, [ "userAgent", "platform", "appName" ]), + flash: _omit(_flashState, [ "bridge" ]), + zeroclipboard: { + version: ZeroClipboard.version, + config: ZeroClipboard.config() + } + }; + }; + ZeroClipboard.setData = function(format, data) { + var dataObj; + if (typeof format === "object" && format && typeof data === "undefined") { + dataObj = format; + ZeroClipboard.clearData(); + } else if (typeof format === "string" && format) { + dataObj = {}; + dataObj[format] = data; + } else { + return; + } + for (var dataFormat in dataObj) { + if (dataFormat && dataObj.hasOwnProperty(dataFormat) && typeof dataObj[dataFormat] === "string" && dataObj[dataFormat]) { + _clipData[dataFormat] = dataObj[dataFormat]; + } + } + }; + ZeroClipboard.clearData = function(format) { + if (typeof format === "undefined") { + _deleteOwnProperties(_clipData); + _clipDataFormatMap = null; + } else if (typeof format === "string" && _clipData.hasOwnProperty(format)) { + delete _clipData[format]; + } + }; + var _bridge = function() { + var flashBridge, len; + var container = document.getElementById("global-zeroclipboard-html-bridge"); + if (!container) { + var allowScriptAccess = _determineScriptAccess(window.location.host, _globalConfig); + var allowNetworking = allowScriptAccess === "never" ? "none" : "all"; + var flashvars = _vars(_globalConfig); + var swfUrl = _globalConfig.swfPath + _cacheBust(_globalConfig.swfPath, _globalConfig); + container = _createHtmlBridge(); + var divToBeReplaced = document.createElement("div"); + container.appendChild(divToBeReplaced); + document.body.appendChild(container); + var tmpDiv = document.createElement("div"); + var oldIE = _flashState.pluginType === "activex"; + tmpDiv.innerHTML = '" + (oldIE ? '' : "") + '' + '' + '' + '' + '' + ""; + flashBridge = tmpDiv.firstChild; + tmpDiv = null; + flashBridge.ZeroClipboard = ZeroClipboard; + container.replaceChild(flashBridge, divToBeReplaced); + } + if (!flashBridge) { + flashBridge = document["global-zeroclipboard-flash-bridge"]; + if (flashBridge && (len = flashBridge.length)) { + flashBridge = flashBridge[len - 1]; + } + if (!flashBridge) { + flashBridge = container.firstChild; + } + } + _flashState.bridge = flashBridge || null; + }; + var _createHtmlBridge = function() { + var container = document.createElement("div"); + container.id = "global-zeroclipboard-html-bridge"; + container.className = "global-zeroclipboard-container"; + container.style.position = "absolute"; + container.style.left = "0px"; + container.style.top = "-9999px"; + container.style.width = "1px"; + container.style.height = "1px"; + container.style.zIndex = "" + _getSafeZIndex(_globalConfig.zIndex); + return container; + }; + var _getHtmlBridge = function(flashBridge) { + var htmlBridge = flashBridge && flashBridge.parentNode; + while (htmlBridge && htmlBridge.nodeName === "OBJECT" && htmlBridge.parentNode) { + htmlBridge = htmlBridge.parentNode; + } + return htmlBridge || null; + }; + var _reposition = function() { + if (_currentElement) { + var pos = _getDOMObjectPosition(_currentElement, _globalConfig.zIndex); + var htmlBridge = _getHtmlBridge(_flashState.bridge); + if (htmlBridge) { + htmlBridge.style.top = pos.top + "px"; + htmlBridge.style.left = pos.left + "px"; + htmlBridge.style.width = pos.width + "px"; + htmlBridge.style.height = pos.height + "px"; + htmlBridge.style.zIndex = pos.zIndex + 1; + } + _setSize(pos.width, pos.height); + } + }; + var _setSize = function(width, height) { + var htmlBridge = _getHtmlBridge(_flashState.bridge); + if (htmlBridge) { + htmlBridge.style.width = width + "px"; + htmlBridge.style.height = height + "px"; + } + }; + ZeroClipboard.emit = function(event) { + var eventType, eventObj, performCallbackAsync, clients, i, len, eventCopy, returnVal, tmp; + if (typeof event === "string" && event) { + eventType = event; + } + if (typeof event === "object" && event && typeof event.type === "string" && event.type) { + eventType = event.type; + eventObj = event; + } + if (!eventType) { + return; + } + event = _createEvent(eventType, eventObj); + _preprocessEvent(event); + if (event.type === "ready" && _flashState.overdue === true) { + return ZeroClipboard.emit({ + type: "error", + name: "flash-overdue" + }); + } + performCallbackAsync = !/^(before)?copy$/.test(event.type); + if (event.client) { + _dispatchClientCallbacks.call(event.client, event, performCallbackAsync); + } else { + clients = event.target && event.target !== window && _globalConfig.autoActivate === true ? _getAllClientsClippedToElement(event.target) : _getAllClients(); + for (i = 0, len = clients.length; i < len; i++) { + eventCopy = _extend({}, event, { + client: clients[i] + }); + _dispatchClientCallbacks.call(clients[i], eventCopy, performCallbackAsync); + } + } + if (event.type === "copy") { + tmp = _mapClipDataToFlash(_clipData); + returnVal = tmp.data; + _clipDataFormatMap = tmp.formatMap; + } + return returnVal; + }; + var _dispatchClientCallbacks = function(event, async) { + var handlers = _clientMeta[this.id] && _clientMeta[this.id].handlers[event.type]; + if (handlers && handlers.length) { + var i, len, func, context, originalContext = this; + for (i = 0, len = handlers.length; i < len; i++) { + func = handlers[i]; + context = originalContext; + if (typeof func === "string" && typeof window[func] === "function") { + func = window[func]; + } + if (typeof func === "object" && func && typeof func.handleEvent === "function") { + context = func; + func = func.handleEvent; + } + if (typeof func === "function") { + _dispatchCallback(func, context, [ event ], async); + } + } + } + return this; + }; + var _eventMessages = { + ready: "Flash communication is established", + error: { + "flash-disabled": "Flash is disabled or not installed", + "flash-outdated": "Flash is too outdated to support ZeroClipboard", + "flash-unavailable": "Flash is unable to communicate bidirectionally with JavaScript", + "flash-deactivated": "Flash is too outdated for your browser and/or is configured as click-to-activate", + "flash-overdue": "Flash communication was established but NOT within the acceptable time limit" + } + }; + var _createEvent = function(eventType, event) { + if (!(eventType || event && event.type)) { + return; + } + event = event || {}; + eventType = (eventType || event.type).toLowerCase(); + _extend(event, { + type: eventType, + target: event.target || _currentElement || null, + relatedTarget: event.relatedTarget || null, + currentTarget: _flashState && _flashState.bridge || null + }); + var msg = _eventMessages[event.type]; + if (event.type === "error" && event.name && msg) { + msg = msg[event.name]; + } + if (msg) { + event.message = msg; + } + if (event.type === "ready") { + _extend(event, { + target: null, + version: _flashState.version + }); + } + if (event.type === "error") { + event.target = null; + if (/^flash-(outdated|unavailable|deactivated|overdue)$/.test(event.name)) { + _extend(event, { + version: _flashState.version, + minimumVersion: "11.0.0" + }); + } + } + if (event.type === "copy") { + event.clipboardData = { + setData: ZeroClipboard.setData, + clearData: ZeroClipboard.clearData + }; + } + if (event.type === "aftercopy") { + event = _mapClipResultsFromFlash(event, _clipDataFormatMap); + } + if (event.target && !event.relatedTarget) { + event.relatedTarget = _getRelatedTarget(event.target); + } + return event; + }; + var _getRelatedTarget = function(targetEl) { + var relatedTargetId = targetEl && targetEl.getAttribute && targetEl.getAttribute("data-clipboard-target"); + return relatedTargetId ? document.getElementById(relatedTargetId) : null; + }; + var _preprocessEvent = function(event) { + var element = event.target || _currentElement; + switch (event.type) { + case "error": + if (_inArray(event.name, [ "flash-disabled", "flash-outdated", "flash-deactivated", "flash-overdue" ])) { + _extend(_flashState, { + disabled: event.name === "flash-disabled", + outdated: event.name === "flash-outdated", + unavailable: event.name === "flash-unavailable", + deactivated: event.name === "flash-deactivated", + overdue: event.name === "flash-overdue", + ready: false + }); + } + break; + + case "ready": + var wasDeactivated = _flashState.deactivated === true; + _extend(_flashState, { + disabled: false, + outdated: false, + unavailable: false, + deactivated: false, + overdue: wasDeactivated, + ready: !wasDeactivated + }); + break; + + case "copy": + var textContent, htmlContent, targetEl = event.relatedTarget; + if (!(_clipData["text/html"] || _clipData["text/plain"]) && targetEl && (htmlContent = targetEl.value || targetEl.outerHTML || targetEl.innerHTML) && (textContent = targetEl.value || targetEl.textContent || targetEl.innerText)) { + event.clipboardData.clearData(); + event.clipboardData.setData("text/plain", textContent); + if (htmlContent !== textContent) { + event.clipboardData.setData("text/html", htmlContent); + } + } else if (!_clipData["text/plain"] && event.target && (textContent = event.target.getAttribute("data-clipboard-text"))) { + event.clipboardData.clearData(); + event.clipboardData.setData("text/plain", textContent); + } + break; + + case "aftercopy": + ZeroClipboard.clearData(); + if (element && element !== _safeActiveElement() && element.focus) { + element.focus(); + } + break; + + case "mouseover": + _addClass(element, _globalConfig.hoverClass); + break; + + case "mouseout": + if (_globalConfig.autoActivate === true) { + ZeroClipboard.deactivate(); + } + break; + + case "mousedown": + _addClass(element, _globalConfig.activeClass); + break; + + case "mouseup": + _removeClass(element, _globalConfig.activeClass); + break; + } + }; + ZeroClipboard.prototype.on = function(eventName, func) { + var i, len, events, added = {}, handlers = _clientMeta[this.id] && _clientMeta[this.id].handlers; + if (typeof eventName === "string" && eventName) { + events = eventName.toLowerCase().split(/\s+/); + } else if (typeof eventName === "object" && eventName && typeof func === "undefined") { + for (i in eventName) { + if (eventName.hasOwnProperty(i) && typeof i === "string" && i && typeof eventName[i] === "function") { + this.on(i, eventName[i]); + } + } + } + if (events && events.length) { + for (i = 0, len = events.length; i < len; i++) { + eventName = events[i].replace(/^on/, ""); + added[eventName] = true; + if (!handlers[eventName]) { + handlers[eventName] = []; + } + handlers[eventName].push(func); + } + if (added.ready && _flashState.ready) { + ZeroClipboard.emit({ + type: "ready", + client: this + }); + } + if (added.error) { + var errorTypes = [ "disabled", "outdated", "unavailable", "deactivated", "overdue" ]; + for (i = 0, len = errorTypes.length; i < len; i++) { + if (_flashState[errorTypes[i]]) { + ZeroClipboard.emit({ + type: "error", + name: "flash-" + errorTypes[i], + client: this + }); + break; + } + } + } + } + return this; + }; + ZeroClipboard.prototype.off = function(eventName, func) { + var i, len, foundIndex, events, perEventHandlers, handlers = _clientMeta[this.id] && _clientMeta[this.id].handlers; + if (arguments.length === 0) { + events = _objectKeys(handlers); + } else if (typeof eventName === "string" && eventName) { + events = eventName.split(/\s+/); + } else if (typeof eventName === "object" && eventName && typeof func === "undefined") { + for (i in eventName) { + if (eventName.hasOwnProperty(i) && typeof i === "string" && i && typeof eventName[i] === "function") { + this.off(i, eventName[i]); + } + } + } + if (events && events.length) { + for (i = 0, len = events.length; i < len; i++) { + eventName = events[i].toLowerCase().replace(/^on/, ""); + perEventHandlers = handlers[eventName]; + if (perEventHandlers && perEventHandlers.length) { + if (func) { + foundIndex = _inArray(func, perEventHandlers); + while (foundIndex !== -1) { + perEventHandlers.splice(foundIndex, 1); + foundIndex = _inArray(func, perEventHandlers, foundIndex); + } + } else { + handlers[eventName].length = 0; + } + } + } + } + return this; + }; + ZeroClipboard.prototype.handlers = function(eventName) { + var prop, copy = null, handlers = _clientMeta[this.id] && _clientMeta[this.id].handlers; + if (handlers) { + if (typeof eventName === "string" && eventName) { + return handlers[eventName] ? handlers[eventName].slice(0) : null; + } + copy = {}; + for (prop in handlers) { + if (handlers.hasOwnProperty(prop) && handlers[prop]) { + copy[prop] = handlers[prop].slice(0); + } + } + } + return copy; + }; + ZeroClipboard.prototype.clip = function(elements) { + elements = _prepClip(elements); + for (var i = 0; i < elements.length; i++) { + if (elements.hasOwnProperty(i) && elements[i] && elements[i].nodeType === 1) { + if (!elements[i].zcClippingId) { + elements[i].zcClippingId = "zcClippingId_" + _elementIdCounter++; + _elementMeta[elements[i].zcClippingId] = [ this.id ]; + if (_globalConfig.autoActivate === true) { + _addEventHandler(elements[i], "mouseover", _elementMouseOver); + } + } else if (_inArray(this.id, _elementMeta[elements[i].zcClippingId]) === -1) { + _elementMeta[elements[i].zcClippingId].push(this.id); + } + var clippedElements = _clientMeta[this.id].elements; + if (_inArray(elements[i], clippedElements) === -1) { + clippedElements.push(elements[i]); + } + } + } + return this; + }; + ZeroClipboard.prototype.unclip = function(elements) { + var meta = _clientMeta[this.id]; + if (!meta) { + return this; + } + var clippedElements = meta.elements; + var arrayIndex; + if (typeof elements === "undefined") { + elements = clippedElements.slice(0); + } else { + elements = _prepClip(elements); + } + for (var i = elements.length; i--; ) { + if (elements.hasOwnProperty(i) && elements[i] && elements[i].nodeType === 1) { + arrayIndex = 0; + while ((arrayIndex = _inArray(elements[i], clippedElements, arrayIndex)) !== -1) { + clippedElements.splice(arrayIndex, 1); + } + var clientIds = _elementMeta[elements[i].zcClippingId]; + if (clientIds) { + arrayIndex = 0; + while ((arrayIndex = _inArray(this.id, clientIds, arrayIndex)) !== -1) { + clientIds.splice(arrayIndex, 1); + } + if (clientIds.length === 0) { + if (_globalConfig.autoActivate === true) { + _removeEventHandler(elements[i], "mouseover", _elementMouseOver); + } + delete elements[i].zcClippingId; + } + } + } + } + return this; + }; + ZeroClipboard.prototype.elements = function() { + var meta = _clientMeta[this.id]; + return meta && meta.elements ? meta.elements.slice(0) : []; + }; + var _getAllClientsClippedToElement = function(element) { + var elementMetaId, clientIds, i, len, client, clients = []; + if (element && element.nodeType === 1 && (elementMetaId = element.zcClippingId) && _elementMeta.hasOwnProperty(elementMetaId)) { + clientIds = _elementMeta[elementMetaId]; + if (clientIds && clientIds.length) { + for (i = 0, len = clientIds.length; i < len; i++) { + client = _clientMeta[clientIds[i]].instance; + if (client && client instanceof ZeroClipboard) { + clients.push(client); + } + } + } + } + return clients; + }; + _globalConfig.hoverClass = "zeroclipboard-is-hover"; + _globalConfig.activeClass = "zeroclipboard-is-active"; + if (typeof define === "function" && define.amd) { + define(function() { + return ZeroClipboard; + }); + } else if (typeof module === "object" && module && typeof module.exports === "object" && module.exports) { + module.exports = ZeroClipboard; + } else { + window.ZeroClipboard = ZeroClipboard; + } +})(function() { + return this; +}()); \ No newline at end of file diff --git a/public/static/UEditor/third-party/zeroclipboard/ZeroClipboard.min.js b/public/static/UEditor/third-party/zeroclipboard/ZeroClipboard.min.js new file mode 100644 index 00000000..c500f238 --- /dev/null +++ b/public/static/UEditor/third-party/zeroclipboard/ZeroClipboard.min.js @@ -0,0 +1,9 @@ +/*! +* ZeroClipboard +* The ZeroClipboard library provides an easy way to copy text to the clipboard using an invisible Adobe Flash movie and a JavaScript interface. +* Copyright (c) 2014 Jon Rohan, James M. Greene +* Licensed MIT +* http://zeroclipboard.org/ +* v2.0.0-beta.5 +*/ +!function(a){"use strict";var b,c={bridge:null,version:"0.0.0",pluginType:"unknown",disabled:null,outdated:null,unavailable:null,deactivated:null,overdue:null,ready:null},d={},e=null,f=0,g={},h=0,i={},j=function(){var a,b,c,d,e="ZeroClipboard.swf";if(!document.currentScript||!(d=document.currentScript.src)){var f=document.getElementsByTagName("script");if("readyState"in f[0])for(a=f.length;a--&&("interactive"!==f[a].readyState||!(d=f[a].src)););else if("loading"===document.readyState)d=f[f.length-1].src;else{for(a=f.length;a--;){if(c=f[a].src,!c){b=null;break}if(c=c.split("#")[0].split("?")[0],c=c.slice(0,c.lastIndexOf("/")+1),null==b)b=c;else if(b!==c){b=null;break}}null!==b&&(d=b)}}return d&&(d=d.split("#")[0].split("?")[0],e=d.slice(0,d.lastIndexOf("/")+1)+e),e}(),k=function(){var a=/\-([a-z])/g,b=function(a,b){return b.toUpperCase()};return function(c){return c.replace(a,b)}}(),l=function(b,c){var d,e,f;return a.getComputedStyle?d=a.getComputedStyle(b,null).getPropertyValue(c):(e=k(c),d=b.currentStyle?b.currentStyle[e]:b.style[e]),"cursor"!==c||d&&"auto"!==d||(f=b.tagName.toLowerCase(),"a"!==f)?d:"pointer"},m=function(b){b||(b=a.event);var c;this!==a?c=this:b.target?c=b.target:b.srcElement&&(c=b.srcElement),L.activate(c)},n=function(a,b,c){a&&1===a.nodeType&&(a.addEventListener?a.addEventListener(b,c,!1):a.attachEvent&&a.attachEvent("on"+b,c))},o=function(a,b,c){a&&1===a.nodeType&&(a.removeEventListener?a.removeEventListener(b,c,!1):a.detachEvent&&a.detachEvent("on"+b,c))},p=function(a,b){if(!a||1!==a.nodeType)return a;if(a.classList)return a.classList.contains(b)||a.classList.add(b),a;if(b&&"string"==typeof b){var c=(b||"").split(/\s+/);if(1===a.nodeType)if(a.className){for(var d=" "+a.className+" ",e=a.className,f=0,g=c.length;g>f;f++)d.indexOf(" "+c[f]+" ")<0&&(e+=" "+c[f]);a.className=e.replace(/^\s+|\s+$/g,"")}else a.className=b}return a},q=function(a,b){if(!a||1!==a.nodeType)return a;if(a.classList)return a.classList.contains(b)&&a.classList.remove(b),a;if(b&&"string"==typeof b||void 0===b){var c=(b||"").split(/\s+/);if(1===a.nodeType&&a.className)if(b){for(var d=(" "+a.className+" ").replace(/[\n\t]/g," "),e=0,f=c.length;f>e;e++)d=d.replace(" "+c[e]+" "," ");a.className=d.replace(/^\s+|\s+$/g,"")}else a.className=""}return a},r=function(){var a,b,c,d=1;return"function"==typeof document.body.getBoundingClientRect&&(a=document.body.getBoundingClientRect(),b=a.right-a.left,c=document.body.offsetWidth,d=Math.round(b/c*100)/100),d},s=function(b,c){var d={left:0,top:0,width:0,height:0,zIndex:y(c)-1};if(b.getBoundingClientRect){var e,f,g,h=b.getBoundingClientRect();"pageXOffset"in a&&"pageYOffset"in a?(e=a.pageXOffset,f=a.pageYOffset):(g=r(),e=Math.round(document.documentElement.scrollLeft/g),f=Math.round(document.documentElement.scrollTop/g));var i=document.documentElement.clientLeft||0,j=document.documentElement.clientTop||0;d.left=h.left+e-i,d.top=h.top+f-j,d.width="width"in h?h.width:h.right-h.left,d.height="height"in h?h.height:h.bottom-h.top}return d},t=function(a,b){var c=null==b||b&&b.cacheBust===!0;return c?(-1===a.indexOf("?")?"?":"&")+"noCache="+(new Date).getTime():""},u=function(b){var c,d,e,f,g="",h=[];if(b.trustedDomains&&("string"==typeof b.trustedDomains?f=[b.trustedDomains]:"object"==typeof b.trustedDomains&&"length"in b.trustedDomains&&(f=b.trustedDomains)),f&&f.length)for(c=0,d=f.length;d>c;c++)if(f.hasOwnProperty(c)&&f[c]&&"string"==typeof f[c]){if(e=A(f[c]),!e)continue;if("*"===e){h=[e];break}h.push.apply(h,[e,"//"+e,a.location.protocol+"//"+e])}return h.length&&(g+="trustedOrigins="+encodeURIComponent(h.join(","))),b.forceEnhancedClipboard===!0&&(g+=(g?"&":"")+"forceEnhancedClipboard=true"),g},v=function(a,b,c){if("function"==typeof b.indexOf)return b.indexOf(a,c);var d,e=b.length;for("undefined"==typeof c?c=0:0>c&&(c=e+c),d=c;e>d;d++)if(b.hasOwnProperty(d)&&b[d]===a)return d;return-1},w=function(a){if("string"==typeof a)throw new TypeError("ZeroClipboard doesn't accept query strings.");return"number"!=typeof a.length?[a]:a},x=function(b,c,d,e){e?a.setTimeout(function(){b.apply(c,d)},0):b.apply(c,d)},y=function(a){var b,c;return a&&("number"==typeof a&&a>0?b=a:"string"==typeof a&&(c=parseInt(a,10))&&!isNaN(c)&&c>0&&(b=c)),b||("number"==typeof O.zIndex&&O.zIndex>0?b=O.zIndex:"string"==typeof O.zIndex&&(c=parseInt(O.zIndex,10))&&!isNaN(c)&&c>0&&(b=c)),b||0},z=function(){var a,b,c,d,e,f,g=arguments[0]||{};for(a=1,b=arguments.length;b>a;a++)if(null!=(c=arguments[a]))for(d in c)if(c.hasOwnProperty(d)){if(e=g[d],f=c[d],g===f)continue;void 0!==f&&(g[d]=f)}return g},A=function(a){if(null==a||""===a)return null;if(a=a.replace(/^\s+|\s+$/g,""),""===a)return null;var b=a.indexOf("//");a=-1===b?a:a.slice(b+2);var c=a.indexOf("/");return a=-1===c?a:-1===b||0===c?null:a.slice(0,c),a&&".swf"===a.slice(-4).toLowerCase()?null:a||null},B=function(){var a=function(a,b){var c,d,e;if(null!=a&&"*"!==b[0]&&("string"==typeof a&&(a=[a]),"object"==typeof a&&"number"==typeof a.length))for(c=0,d=a.length;d>c;c++)if(a.hasOwnProperty(c)&&(e=A(a[c]))){if("*"===e){b.length=0,b.push("*");break}-1===v(e,b)&&b.push(e)}};return function(b,c){var d=A(c.swfPath);null===d&&(d=b);var e=[];a(c.trustedOrigins,e),a(c.trustedDomains,e);var f=e.length;if(f>0){if(1===f&&"*"===e[0])return"always";if(-1!==v(b,e))return 1===f&&b===d?"sameDomain":"always"}return"never"}}(),C=function(a){if(null==a)return[];if(Object.keys)return Object.keys(a);var b=[];for(var c in a)a.hasOwnProperty(c)&&b.push(c);return b},D=function(a){if(a)for(var b in a)a.hasOwnProperty(b)&&delete a[b];return a},E=function(){try{return document.activeElement}catch(a){}return null},F=function(a,b){for(var c={},d=0,e=b.length;e>d;d++)b[d]in a&&(c[b[d]]=a[b[d]]);return c},G=function(a,b){var c={};for(var d in a)-1===v(d,b)&&(c[d]=a[d]);return c},H=function(a){var b={},c={};if("object"==typeof a&&a){for(var d in a)if(d&&a.hasOwnProperty(d)&&"string"==typeof a[d]&&a[d])switch(d.toLowerCase()){case"text/plain":case"text":case"air:text":case"flash:text":b.text=a[d],c.text=d;break;case"text/html":case"html":case"air:html":case"flash:html":b.html=a[d],c.html=d;break;case"application/rtf":case"text/rtf":case"rtf":case"richtext":case"air:rtf":case"flash:rtf":b.rtf=a[d],c.rtf=d}return{data:b,formatMap:c}}},I=function(a,b){if("object"!=typeof a||!a||"object"!=typeof b||!b)return a;var c={};for(var d in a)if(a.hasOwnProperty(d)){if("success"!==d&&"data"!==d){c[d]=a[d];continue}c[d]={};var e=a[d];for(var f in e)f&&e.hasOwnProperty(f)&&b.hasOwnProperty(f)&&(c[d][b[f]]=e[f])}return c},J=function(a){return function(b){return a.call(b,0)}}(a.Array.prototype.slice),K=function(){function a(a){var b=a.match(/[\d]+/g);return b.length=3,b.join(".")}function b(a){return!!a&&(a=a.toLowerCase())&&(/^(pepflashplayer\.dll|libpepflashplayer\.so|pepperflashplayer\.plugin)$/.test(a)||"chrome.plugin"===a.slice(-13))}function d(c){c&&(h=!0,c.version&&(k=a(c.version)),!k&&c.description&&(k=a(c.description)),c.filename&&(j=b(c.filename)))}var e,f,g,h=!1,i=!1,j=!1,k="";if(navigator.plugins&&navigator.plugins.length)e=navigator.plugins["Shockwave Flash"],d(e),navigator.plugins["Shockwave Flash 2.0"]&&(h=!0,k="2.0.0.11");else if(navigator.mimeTypes&&navigator.mimeTypes.length)g=navigator.mimeTypes["application/x-shockwave-flash"],e=g&&g.enabledPlugin,d(e);else if("undefined"!=typeof ActiveXObject){i=!0;try{f=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7"),h=!0,k=a(f.GetVariable("$version"))}catch(l){try{f=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6"),h=!0,k="6.0.21"}catch(m){try{f=new ActiveXObject("ShockwaveFlash.ShockwaveFlash"),h=!0,k=a(f.GetVariable("$version"))}catch(n){i=!1}}}}c.disabled=h!==!0,c.outdated=k&&parseFloat(k)<11,c.version=k||"0.0.0",c.pluginType=j?"pepper":i?"activex":h?"netscape":"unknown"};K();var L=function(a){if(!(this instanceof L))return new L(a);if(this.id=""+f++,g[this.id]={instance:this,elements:[],handlers:{}},a&&this.clip(a),"boolean"!=typeof c.ready&&(c.ready=!1),!L.isFlashUnusable()&&null===c.bridge){var b=this,d=O.flashLoadTimeout;"number"==typeof d&&d>=0&&setTimeout(function(){"boolean"!=typeof c.deactivated&&(c.deactivated=!0),c.deactivated===!0&&L.emit({type:"error",name:"flash-deactivated",client:b})},d),c.overdue=!1,P()}};L.prototype.setText=function(a){return L.setData("text/plain",a),this},L.prototype.setHtml=function(a){return L.setData("text/html",a),this},L.prototype.setRichText=function(a){return L.setData("application/rtf",a),this},L.prototype.setData=function(){return L.setData.apply(L,J(arguments)),this},L.prototype.clearData=function(){return L.clearData.apply(L,J(arguments)),this},L.prototype.setSize=function(a,b){return T(a,b),this};var M=function(a){c.ready===!0&&c.bridge&&"function"==typeof c.bridge.setHandCursor?c.bridge.setHandCursor(a):c.ready=!1};L.prototype.destroy=function(){this.unclip(),this.off(),delete g[this.id]};var N=function(){var a,b,c,d=[],e=C(g);for(a=0,b=e.length;b>a;a++)c=g[e[a]].instance,c&&c instanceof L&&d.push(c);return d};L.version="2.0.0-beta.5";var O={swfPath:j,trustedDomains:a.location.host?[a.location.host]:[],cacheBust:!0,forceHandCursor:!1,forceEnhancedClipboard:!1,zIndex:999999999,debug:!1,title:null,autoActivate:!0,flashLoadTimeout:3e4};L.isFlashUnusable=function(){return!!(c.disabled||c.outdated||c.unavailable||c.deactivated)},L.config=function(a){"object"==typeof a&&null!==a&&z(O,a);{if("string"!=typeof a||!a){var b={};for(var c in O)O.hasOwnProperty(c)&&(b[c]="object"==typeof O[c]&&null!==O[c]?"length"in O[c]?O[c].slice(0):z({},O[c]):O[c]);return b}if(O.hasOwnProperty(a))return O[a]}},L.destroy=function(){L.deactivate();for(var a in g)if(g.hasOwnProperty(a)&&g[a]){var b=g[a].instance;b&&"function"==typeof b.destroy&&b.destroy()}var d=c.bridge;if(d){var e=R(d);e&&("activex"===c.pluginType&&"readyState"in d?(d.style.display="none",function f(){if(4===d.readyState){for(var a in d)"function"==typeof d[a]&&(d[a]=null);d.parentNode.removeChild(d),e.parentNode&&e.parentNode.removeChild(e)}else setTimeout(f,10)}()):(d.parentNode.removeChild(d),e.parentNode&&e.parentNode.removeChild(e))),c.ready=null,c.bridge=null,c.deactivated=null}L.clearData()},L.activate=function(a){b&&(q(b,O.hoverClass),q(b,O.activeClass)),b=a,p(a,O.hoverClass),S();var d=O.title||a.getAttribute("title");if(d){var e=R(c.bridge);e&&e.setAttribute("title",d)}var f=O.forceHandCursor===!0||"pointer"===l(a,"cursor");M(f)},L.deactivate=function(){var a=R(c.bridge);a&&(a.removeAttribute("title"),a.style.left="0px",a.style.top="-9999px",T(1,1)),b&&(q(b,O.hoverClass),q(b,O.activeClass),b=null)},L.state=function(){return{browser:F(a.navigator,["userAgent","platform","appName"]),flash:G(c,["bridge"]),zeroclipboard:{version:L.version,config:L.config()}}},L.setData=function(a,b){var c;if("object"==typeof a&&a&&"undefined"==typeof b)c=a,L.clearData();else{if("string"!=typeof a||!a)return;c={},c[a]=b}for(var e in c)e&&c.hasOwnProperty(e)&&"string"==typeof c[e]&&c[e]&&(d[e]=c[e])},L.clearData=function(a){"undefined"==typeof a?(D(d),e=null):"string"==typeof a&&d.hasOwnProperty(a)&&delete d[a]};var P=function(){var b,d,e=document.getElementById("global-zeroclipboard-html-bridge");if(!e){var f=B(a.location.host,O),g="never"===f?"none":"all",h=u(O),i=O.swfPath+t(O.swfPath,O);e=Q();var j=document.createElement("div");e.appendChild(j),document.body.appendChild(e);var k=document.createElement("div"),l="activex"===c.pluginType;k.innerHTML='"+(l?'':"")+'',b=k.firstChild,k=null,b.ZeroClipboard=L,e.replaceChild(b,j)}b||(b=document["global-zeroclipboard-flash-bridge"],b&&(d=b.length)&&(b=b[d-1]),b||(b=e.firstChild)),c.bridge=b||null},Q=function(){var a=document.createElement("div");return a.id="global-zeroclipboard-html-bridge",a.className="global-zeroclipboard-container",a.style.position="absolute",a.style.left="0px",a.style.top="-9999px",a.style.width="1px",a.style.height="1px",a.style.zIndex=""+y(O.zIndex),a},R=function(a){for(var b=a&&a.parentNode;b&&"OBJECT"===b.nodeName&&b.parentNode;)b=b.parentNode;return b||null},S=function(){if(b){var a=s(b,O.zIndex),d=R(c.bridge);d&&(d.style.top=a.top+"px",d.style.left=a.left+"px",d.style.width=a.width+"px",d.style.height=a.height+"px",d.style.zIndex=a.zIndex+1),T(a.width,a.height)}},T=function(a,b){var d=R(c.bridge);d&&(d.style.width=a+"px",d.style.height=b+"px")};L.emit=function(b){var f,g,h,i,j,k,l,m,n;if("string"==typeof b&&b&&(f=b),"object"==typeof b&&b&&"string"==typeof b.type&&b.type&&(f=b.type,g=b),f){if(b=W(f,g),Y(b),"ready"===b.type&&c.overdue===!0)return L.emit({type:"error",name:"flash-overdue"});if(h=!/^(before)?copy$/.test(b.type),b.client)U.call(b.client,b,h);else for(i=b.target&&b.target!==a&&O.autoActivate===!0?Z(b.target):N(),j=0,k=i.length;k>j;j++)l=z({},b,{client:i[j]}),U.call(i[j],l,h);return"copy"===b.type&&(n=H(d),m=n.data,e=n.formatMap),m}};var U=function(b,c){var d=g[this.id]&&g[this.id].handlers[b.type];if(d&&d.length){var e,f,h,i,j=this;for(e=0,f=d.length;f>e;e++)h=d[e],i=j,"string"==typeof h&&"function"==typeof a[h]&&(h=a[h]),"object"==typeof h&&h&&"function"==typeof h.handleEvent&&(i=h,h=h.handleEvent),"function"==typeof h&&x(h,i,[b],c)}return this},V={ready:"Flash communication is established",error:{"flash-disabled":"Flash is disabled or not installed","flash-outdated":"Flash is too outdated to support ZeroClipboard","flash-unavailable":"Flash is unable to communicate bidirectionally with JavaScript","flash-deactivated":"Flash is too outdated for your browser and/or is configured as click-to-activate","flash-overdue":"Flash communication was established but NOT within the acceptable time limit"}},W=function(a,d){if(a||d&&d.type){d=d||{},a=(a||d.type).toLowerCase(),z(d,{type:a,target:d.target||b||null,relatedTarget:d.relatedTarget||null,currentTarget:c&&c.bridge||null});var f=V[d.type];return"error"===d.type&&d.name&&f&&(f=f[d.name]),f&&(d.message=f),"ready"===d.type&&z(d,{target:null,version:c.version}),"error"===d.type&&(d.target=null,/^flash-(outdated|unavailable|deactivated|overdue)$/.test(d.name)&&z(d,{version:c.version,minimumVersion:"11.0.0"})),"copy"===d.type&&(d.clipboardData={setData:L.setData,clearData:L.clearData}),"aftercopy"===d.type&&(d=I(d,e)),d.target&&!d.relatedTarget&&(d.relatedTarget=X(d.target)),d}},X=function(a){var b=a&&a.getAttribute&&a.getAttribute("data-clipboard-target");return b?document.getElementById(b):null},Y=function(a){var e=a.target||b;switch(a.type){case"error":v(a.name,["flash-disabled","flash-outdated","flash-deactivated","flash-overdue"])&&z(c,{disabled:"flash-disabled"===a.name,outdated:"flash-outdated"===a.name,unavailable:"flash-unavailable"===a.name,deactivated:"flash-deactivated"===a.name,overdue:"flash-overdue"===a.name,ready:!1});break;case"ready":var f=c.deactivated===!0;z(c,{disabled:!1,outdated:!1,unavailable:!1,deactivated:!1,overdue:f,ready:!f});break;case"copy":var g,h,i=a.relatedTarget;!d["text/html"]&&!d["text/plain"]&&i&&(h=i.value||i.outerHTML||i.innerHTML)&&(g=i.value||i.textContent||i.innerText)?(a.clipboardData.clearData(),a.clipboardData.setData("text/plain",g),h!==g&&a.clipboardData.setData("text/html",h)):!d["text/plain"]&&a.target&&(g=a.target.getAttribute("data-clipboard-text"))&&(a.clipboardData.clearData(),a.clipboardData.setData("text/plain",g));break;case"aftercopy":L.clearData(),e&&e!==E()&&e.focus&&e.focus();break;case"mouseover":p(e,O.hoverClass);break;case"mouseout":O.autoActivate===!0&&L.deactivate();break;case"mousedown":p(e,O.activeClass);break;case"mouseup":q(e,O.activeClass)}};L.prototype.on=function(a,b){var d,e,f,h={},i=g[this.id]&&g[this.id].handlers;if("string"==typeof a&&a)f=a.toLowerCase().split(/\s+/);else if("object"==typeof a&&a&&"undefined"==typeof b)for(d in a)a.hasOwnProperty(d)&&"string"==typeof d&&d&&"function"==typeof a[d]&&this.on(d,a[d]);if(f&&f.length){for(d=0,e=f.length;e>d;d++)a=f[d].replace(/^on/,""),h[a]=!0,i[a]||(i[a]=[]),i[a].push(b);if(h.ready&&c.ready&&L.emit({type:"ready",client:this}),h.error){var j=["disabled","outdated","unavailable","deactivated","overdue"];for(d=0,e=j.length;e>d;d++)if(c[j[d]]){L.emit({type:"error",name:"flash-"+j[d],client:this});break}}}return this},L.prototype.off=function(a,b){var c,d,e,f,h,i=g[this.id]&&g[this.id].handlers;if(0===arguments.length)f=C(i);else if("string"==typeof a&&a)f=a.split(/\s+/);else if("object"==typeof a&&a&&"undefined"==typeof b)for(c in a)a.hasOwnProperty(c)&&"string"==typeof c&&c&&"function"==typeof a[c]&&this.off(c,a[c]);if(f&&f.length)for(c=0,d=f.length;d>c;c++)if(a=f[c].toLowerCase().replace(/^on/,""),h=i[a],h&&h.length)if(b)for(e=v(b,h);-1!==e;)h.splice(e,1),e=v(b,h,e);else i[a].length=0;return this},L.prototype.handlers=function(a){var b,c=null,d=g[this.id]&&g[this.id].handlers;if(d){if("string"==typeof a&&a)return d[a]?d[a].slice(0):null;c={};for(b in d)d.hasOwnProperty(b)&&d[b]&&(c[b]=d[b].slice(0))}return c},L.prototype.clip=function(a){a=w(a);for(var b=0;bd;d++)f=g[c[d]].instance,f&&f instanceof L&&h.push(f);return h};O.hoverClass="zeroclipboard-is-hover",O.activeClass="zeroclipboard-is-active","function"==typeof define&&define.amd?define(function(){return L}):"object"==typeof module&&module&&"object"==typeof module.exports&&module.exports?module.exports=L:a.ZeroClipboard=L}(function(){return this}()); \ No newline at end of file diff --git a/public/static/UEditor/third-party/zeroclipboard/ZeroClipboard.swf b/public/static/UEditor/third-party/zeroclipboard/ZeroClipboard.swf new file mode 100644 index 0000000000000000000000000000000000000000..ed1c9d21c3f031d224248296564220a77dcd5265 GIT binary patch literal 3933 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 literal 0 HcmV?d00001 diff --git a/public/static/UEditor/ueditor.all.min.js b/public/static/UEditor/ueditor.all.min.js new file mode 100644 index 00000000..b357d50c --- /dev/null +++ b/public/static/UEditor/ueditor.all.min.js @@ -0,0 +1,18 @@ +/*! + * UEditor + * version: ueditor + * build: Wed Aug 10 2016 11:06:16 GMT+0800 (CST) + */ + +!function(){function getListener(a,b,c){var d;return b=b.toLowerCase(),(d=a.__allListeners||c&&(a.__allListeners={}))&&(d[b]||c&&(d[b]=[]))}function getDomNode(a,b,c,d,e,f){var g,h=d&&a[b];for(!h&&(h=a[c]);!h&&(g=(g||a).parentNode);){if("BODY"==g.tagName||f&&!f(g))return null;h=g[c]}return h&&e&&!e(h)?getDomNode(h,b,c,!1,e):h}UEDITOR_CONFIG=window.UEDITOR_CONFIG||{};var baidu=window.baidu||{};window.baidu=baidu,window.UE=baidu.editor=window.UE||{},UE.plugins={},UE.commands={},UE.instants={},UE.I18N={},UE._customizeUI={},UE.version="1.4.3";var dom=UE.dom={},browser=UE.browser=function(){var a=navigator.userAgent.toLowerCase(),b=window.opera,c={ie:/(msie\s|trident.*rv:)([\w.]+)/.test(a),opera:!!b&&b.version,webkit:a.indexOf(" applewebkit/")>-1,mac:a.indexOf("macintosh")>-1,quirks:"BackCompat"==document.compatMode};c.gecko="Gecko"==navigator.product&&!c.webkit&&!c.opera&&!c.ie;var d=0;if(c.ie){var e=a.match(/(?:msie\s([\w.]+))/),f=a.match(/(?:trident.*rv:([\w.]+))/);d=e&&f&&e[1]&&f[1]?Math.max(1*e[1],1*f[1]):e&&e[1]?1*e[1]:f&&f[1]?1*f[1]:0,c.ie11Compat=11==document.documentMode,c.ie9Compat=9==document.documentMode,c.ie8=!!document.documentMode,c.ie8Compat=8==document.documentMode,c.ie7Compat=7==d&&!document.documentMode||7==document.documentMode,c.ie6Compat=d<7||c.quirks,c.ie9above=d>8,c.ie9below=d<9,c.ie11above=d>10,c.ie11below=d<11}if(c.gecko){var g=a.match(/rv:([\d\.]+)/);g&&(g=g[1].split("."),d=1e4*g[0]+100*(g[1]||0)+1*(g[2]||0))}return/chrome\/(\d+\.\d)/i.test(a)&&(c.chrome=+RegExp.$1),/(\d+\.\d)?(?:\.\d)?\s+safari\/?(\d+\.\d+)?/i.test(a)&&!/chrome/i.test(a)&&(c.safari=+(RegExp.$1||RegExp.$2)),c.opera&&(d=parseFloat(b.version())),c.webkit&&(d=parseFloat(a.match(/ applewebkit\/(\d+)/)[1])),c.version=d,c.isCompatible=!c.mobile&&(c.ie&&d>=6||c.gecko&&d>=10801||c.opera&&d>=9.5||c.air&&d>=1||c.webkit&&d>=522||!1),c}(),ie=browser.ie,webkit=browser.webkit,gecko=browser.gecko,opera=browser.opera,utils=UE.utils={each:function(a,b,c){if(null!=a)if(a.length===+a.length){for(var d=0,e=a.length;d=c&&a===b)return d=e,!1}),d},removeItem:function(a,b){for(var c=0,d=a.length;c'](?:(amp|lt|quot|gt|#39|nbsp|#\d+);)?/g,function(a,b){return b?a:{"<":"<","&":"&",'"':""",">":">","'":"'"}[a]}):""},unhtmlForUrl:function(a,b){return a?a.replace(b||/[<">']/g,function(a){return{"<":"<","&":"&",'"':""",">":">","'":"'"}[a]}):""},html:function(a){return a?a.replace(/&((g|l|quo)t|amp|#39|nbsp);/g,function(a){return{"<":"<","&":"&",""":'"',">":">","'":"'"," ":" "}[a]}):""},cssStyleToDomStyle:function(){var a=document.createElement("div").style,b={"float":void 0!=a.cssFloat?"cssFloat":void 0!=a.styleFloat?"styleFloat":"float"};return function(a){return b[a]||(b[a]=a.toLowerCase().replace(/-./g,function(a){return a.charAt(1).toUpperCase()}))}}(),loadFile:function(){function a(a,c){try{for(var d,e=0;d=b[e++];)if(d.doc===a&&d.url==(c.src||c.href))return d}catch(f){return null}}var b=[];return function(c,d,e){var f=a(c,d);if(f)return void(f.ready?e&&e():f.funs.push(e));if(b.push({doc:c,url:d.src||d.href,funs:[e]}),!c.body){var g=[];for(var h in d)"tag"!=h&&g.push(h+'="'+d[h]+'"');return void c.write("<"+d.tag+" "+g.join(" ")+" >")}if(!d.id||!c.getElementById(d.id)){var i=c.createElement(d.tag);delete d.tag;for(var h in d)i.setAttribute(h,d[h]);i.onload=i.onreadystatechange=function(){if(!this.readyState||/loaded|complete/.test(this.readyState)){if(f=a(c,d),f.funs.length>0){f.ready=1;for(var b;b=f.funs.pop();)b()}i.onload=i.onreadystatechange=null}},i.onerror=function(){throw Error("The load "+(d.href||d.src)+" fails,check the url settings of file ueditor.config.js ")},c.getElementsByTagName("head")[0].appendChild(i)}}}(),isEmptyObject:function(a){if(null==a)return!0;if(this.isArray(a)||this.isString(a))return 0===a.length;for(var b in a)if(a.hasOwnProperty(b))return!1;return!0},fixColor:function(a,b){if(/color/i.test(a)&&/rgba?/.test(b)){var c=b.split(",");if(c.length>3)return"";b="#";for(var d,e=0;d=c[e++];)d=parseInt(d.replace(/[^\d]/gi,""),10).toString(16),b+=1==d.length?"0"+d:d;b=b.toUpperCase()}return b},optCss:function(a){function b(a,b){if(!a)return"";var c=a.top,d=a.bottom,e=a.left,f=a.right,g="";if(c&&e&&d&&f)g+=";"+b+":"+(c==d&&d==e&&e==f?c:c==d&&e==f?c+" "+e:e==f?c+" "+e+" "+d:c+" "+f+" "+d+" "+e)+";";else for(var h in a)g+=";"+b+"-"+h+":"+a[h]+";";return g}var c,d;return a=a.replace(/(padding|margin|border)\-([^:]+):([^;]+);?/gi,function(a,b,e,f){if(1==f.split(" ").length)switch(b){case"padding":return!c&&(c={}),c[e]=f,"";case"margin":return!d&&(d={}),d[e]=f,"";case"border":return"initial"==f?"":a}return a}),a+=b(c,"padding")+b(d,"margin"),a.replace(/^[ \n\r\t;]*|[ \n\r\t]*$/,"").replace(/;([ \n\r\t]+)|\1;/g,";").replace(/(&((l|g)t|quot|#39))?;{2,}/g,function(a,b){return b?b+";;":";"})},clone:function(a,b){var c;b=b||{};for(var d in a)a.hasOwnProperty(d)&&(c=a[d],"object"==typeof c?(b[d]=utils.isArray(c)?[]:{},utils.clone(a[d],b[d])):b[d]=c);return b},transUnitToPx:function(a){if(!/(pt|cm)/.test(a))return a;var b;switch(a.replace(/([\d.]+)(\w+)/,function(c,d,e){a=d,b=e}),b){case"cm":a=25*parseFloat(a);break;case"pt":a=Math.round(96*parseFloat(a)/72)}return a+(a?"px":"")},domReady:function(){function a(a){a.isReady=!0;for(var c;c=b.pop();c());}var b=[];return function(c,d){d=d||window;var e=d.document;c&&b.push(c),"complete"===e.readyState?a(e):(e.isReady&&a(e),browser.ie&&11!=browser.version?(!function(){if(!e.isReady){try{e.documentElement.doScroll("left")}catch(b){return void setTimeout(arguments.callee,0)}a(e)}}(),d.attachEvent("onload",function(){a(e)})):(e.addEventListener("DOMContentLoaded",function(){e.removeEventListener("DOMContentLoaded",arguments.callee,!1),a(e)},!1),d.addEventListener("load",function(){a(e)},!1)))}}(),cssRule:browser.ie&&11!=browser.version?function(a,b,c){var d,e;if(void 0===b||b&&b.nodeType&&9==b.nodeType){if(c=b&&b.nodeType&&9==b.nodeType?b:c||document,d=c.indexList||(c.indexList={}),e=d[a],void 0!==e)return c.styleSheets[e].cssText}else{if(c=c||document,d=c.indexList||(c.indexList={}),e=d[a],""===b)return void 0!==e&&(c.styleSheets[e].cssText="",delete d[a],!0);void 0!==e?sheetStyle=c.styleSheets[e]:(sheetStyle=c.createStyleSheet("",e=c.styleSheets.length),d[a]=e),sheetStyle.cssText=b}}:function(a,b,c){var d;return void 0===b||b&&b.nodeType&&9==b.nodeType?(c=b&&b.nodeType&&9==b.nodeType?b:c||document,d=c.getElementById(a),d?d.innerHTML:void 0):(c=c||document,d=c.getElementById(a),""===b?!!d&&(d.parentNode.removeChild(d),!0):void(d?d.innerHTML=b:(d=c.createElement("style"),d.id=a,d.innerHTML=b,c.getElementsByTagName("head")[0].appendChild(d))))},sort:function(a,b){b=b||function(a,b){return a.localeCompare(b)};for(var c=0,d=a.length;c0){var g=a[c];a[c]=a[e],a[e]=g}return a},serializeParam:function(a){var b=[];for(var c in a)if("method"!=c&&"timeout"!=c&&"async"!=c)if("function"!=(typeof a[c]).toLowerCase()&&"object"!=(typeof a[c]).toLowerCase())b.push(encodeURIComponent(c)+"="+encodeURIComponent(a[c]));else if(utils.isArray(a[c]))for(var d=0;d1||b!==a.parentNode){a.style.cssText=b.style.cssText+";"+a.style.cssText,b=b.parentNode;continue}b.style.cssText+=";"+a.style.cssText,"A"==b.tagName&&(b.style.textDecoration="underline")}if("A"!=b.tagName){b===a.parentNode&&domUtils.remove(a,!0);break}}b=b.parentNode}},mergeSibling:function(a,b,c){function d(a,b,c){var d;if((d=c[a])&&!domUtils.isBookmarkNode(d)&&1==d.nodeType&&domUtils.isSameElement(c,d)){for(;d.firstChild;)"firstChild"==b?c.insertBefore(d.lastChild,c.firstChild):c.appendChild(d.firstChild);domUtils.remove(d)}}!b&&d("previousSibling","firstChild",a),!c&&d("nextSibling","lastChild",a)},unSelectable:ie&&browser.ie9below||browser.opera?function(a){a.onselectstart=function(){return!1},a.onclick=a.onkeyup=a.onkeydown=function(){return!1},a.unselectable="on",a.setAttribute("unselectable","on");for(var b,c=0;b=a.all[c++];)switch(b.tagName.toLowerCase()){case"iframe":case"textarea":case"input":case"select":break;default:b.unselectable="on",a.setAttribute("unselectable","on")}}:function(a){a.style.MozUserSelect=a.style.webkitUserSelect=a.style.msUserSelect=a.style.KhtmlUserSelect="none"},removeAttributes:function(a,b){b=utils.isArray(b)?b:utils.trim(b).replace(/[ ]{2,}/g," ").split(" ");for(var c,d=0;c=b[d++];){switch(c=attrFix[c]||c){case"className":a[c]="";break;case"style":a.style.cssText="";var e=a.getAttributeNode("style");!browser.ie&&e&&a.removeAttributeNode(e)}a.removeAttribute(c)}},createElement:function(a,b,c){return domUtils.setAttributes(a.createElement(b),c)},setAttributes:function(a,b){for(var c in b)if(b.hasOwnProperty(c)){var d=b[c];switch(c){case"class":a.className=d;break;case"style":a.style.cssText=a.style.cssText+";"+d;break;case"innerHTML":a[c]=d;break;case"value":a.value=d;break;default:a.setAttribute(attrFix[c]||c,d)}}return a},getComputedStyle:function(a,b){var c="width height top left";if(c.indexOf(b)>-1)return a["offset"+b.replace(/^\w/,function(a){return a.toUpperCase()})]+"px";if(3==a.nodeType&&(a=a.parentNode),browser.ie&&browser.version<9&&"font-size"==b&&!a.style.fontSize&&!dtd.$empty[a.tagName]&&!dtd.$nonChild[a.tagName]){var d=a.ownerDocument.createElement("span");d.style.cssText="padding:0;border:0;font-family:simsun;",d.innerHTML=".",a.appendChild(d);var e=d.offsetHeight;return a.removeChild(d),d=null,e+"px"}try{var f=domUtils.getStyle(a,b)||(window.getComputedStyle?domUtils.getWindow(a).getComputedStyle(a,"").getPropertyValue(b):(a.currentStyle||a.style)[utils.cssStyleToDomStyle(b)])}catch(g){return""}return utils.transUnitToPx(utils.fixColor(b,f))},removeClasses:function(a,b){b=utils.isArray(b)?b:utils.trim(b).replace(/[ ]{2,}/g," ").split(" ");for(var c,d=0,e=a.className;c=b[d++];)e=e.replace(new RegExp("\\b"+c+"\\b"),"");e=utils.trim(e).replace(/[ ]{2,}/g," "),e?a.className=e:domUtils.removeAttributes(a,["class"])},addClass:function(a,b){if(a){b=utils.trim(b).replace(/[ ]{2,}/g," ").split(" ");for(var c,d=0,e=a.className;c=b[d++];)new RegExp("\\b"+c+"\\b").test(e)||(e+=" "+c);a.className=utils.trim(e)}},hasClass:function(a,b){if(utils.isRegExp(b))return b.test(a.className);b=utils.trim(b).replace(/[ ]{2,}/g," ").split(" ");for(var c,d=0,e=a.className;c=b[d++];)if(!new RegExp("\\b"+c+"\\b","i").test(e))return!1;return d-1==b.length},preventDefault:function(a){a.preventDefault?a.preventDefault():a.returnValue=!1},removeStyle:function(a,b){browser.ie?("color"==b&&(b="(^|;)"+b),a.style.cssText=a.style.cssText.replace(new RegExp(b+"[^:]*:[^;]+;?","ig"),"")):a.style.removeProperty?a.style.removeProperty(b):a.style.removeAttribute(utils.cssStyleToDomStyle(b)),a.style.cssText||domUtils.removeAttributes(a,["style"])},getStyle:function(a,b){var c=a.style[utils.cssStyleToDomStyle(b)];return utils.fixColor(b,c)},setStyle:function(a,b,c){a.style[utils.cssStyleToDomStyle(b)]=c,utils.trim(a.style.cssText)||this.removeAttributes(a,"style")},setStyles:function(a,b){for(var c in b)b.hasOwnProperty(c)&&domUtils.setStyle(a,c,b[c])},removeDirtyAttr:function(a){for(var b,c=0,d=a.getElementsByTagName("*");b=d[c++];)b.removeAttribute("_moz_dirty");a.removeAttribute("_moz_dirty")},getChildCount:function(a,b){var c=0,d=a.firstChild;for(b=b||function(){return 1};d;)b(d)&&c++,d=d.nextSibling;return c},isEmptyNode:function(a){return!a.firstChild||0==domUtils.getChildCount(a,function(a){return!domUtils.isBr(a)&&!domUtils.isBookmarkNode(a)&&!domUtils.isWhitespace(a)})},clearSelectedArr:function(a){for(var b;b=a.pop();)domUtils.removeAttributes(b,["class"])},scrollToView:function(a,b,c){var d=function(){var a=b.document,c="CSS1Compat"==a.compatMode;return{width:(c?a.documentElement.clientWidth:a.body.clientWidth)||0,height:(c?a.documentElement.clientHeight:a.body.clientHeight)||0}},e=function(a){if("pageXOffset"in a)return{x:a.pageXOffset||0,y:a.pageYOffset||0};var b=a.document;return{x:b.documentElement.scrollLeft||b.body.scrollLeft||0,y:b.documentElement.scrollTop||b.body.scrollTop||0}},f=d().height,g=f*-1+c;g+=a.offsetHeight||0;var h=domUtils.getXY(a);g+=h.y;var i=e(b).y;(g>i||g0)return 0;for(var c in dtd.$isNotEmpty)if(a.getElementsByTagName(c).length)return 0;return 1},setViewportOffset:function(a,b){var c=0|parseInt(a.style.left),d=0|parseInt(a.style.top),e=a.getBoundingClientRect(),f=b.left-e.left,g=b.top-e.top;f&&(a.style.left=c+f+"px"),g&&(a.style.top=d+g+"px")},fillNode:function(a,b){var c=browser.ie?a.createTextNode(domUtils.fillChar):a.createElement("br");b.innerHTML="",b.appendChild(c)},moveChild:function(a,b,c){for(;a.firstChild;)c&&b.firstChild?b.insertBefore(a.lastChild,b.firstChild):b.appendChild(a.firstChild)},hasNoAttributes:function(a){return browser.ie?/^<\w+\s*?>/.test(a.outerHTML):0==a.attributes.length},isCustomeNode:function(a){return 1==a.nodeType&&a.getAttribute("_ue_custom_node_")},isTagNode:function(a,b){return 1==a.nodeType&&new RegExp("\\b"+a.tagName+"\\b","i").test(b)},filterNodeList:function(a,b,c){var d=[];if(!utils.isFunction(b)){var e=b;b=function(a){return utils.indexOf(utils.isArray(e)?e:e.split(" "),a.tagName.toLowerCase())!=-1}}return utils.each(a,function(a){b(a)&&d.push(a)}),0==d.length?null:1!=d.length&&c?d:d[0]},isInNodeEndBoundary:function(a,b){var c=a.startContainer;if(3==c.nodeType&&a.startOffset!=c.nodeValue.length)return 0;if(1==c.nodeType&&a.startOffset!=c.childNodes.length)return 0;for(;c!==b;){if(c.nextSibling)return 0;c=c.parentNode}return 1},isBoundaryNode:function(a,b){for(var c;!domUtils.isBody(a);)if(c=a,a=a.parentNode,c!==a[b])return!1;return!0},fillHtml:browser.ie11below?" ":"
    "},fillCharReg=new RegExp(domUtils.fillChar,"g");!function(){function a(a){a.collapsed=a.startContainer&&a.endContainer&&a.startContainer===a.endContainer&&a.startOffset==a.endOffset}function b(a){return!a.collapsed&&1==a.startContainer.nodeType&&a.startContainer===a.endContainer&&a.endOffset-a.startOffset==1}function c(b,c,d,e){return 1==c.nodeType&&(dtd.$empty[c.tagName]||dtd.$nonChild[c.tagName])&&(d=domUtils.getNodeIndex(c)+(b?0:1),c=c.parentNode),b?(e.startContainer=c,e.startOffset=d,e.endContainer||e.collapse(!0)):(e.endContainer=c,e.endOffset=d,e.startContainer||e.collapse(!1)),a(e),e}function d(a,b){var c,d,e=a.startContainer,f=a.endContainer,g=a.startOffset,h=a.endOffset,i=a.document,j=i.createDocumentFragment();if(1==e.nodeType&&(e=e.childNodes[g]||(c=e.appendChild(i.createTextNode("")))),1==f.nodeType&&(f=f.childNodes[h]||(d=f.appendChild(i.createTextNode("")))),e===f&&3==e.nodeType)return j.appendChild(i.createTextNode(e.substringData(g,h-g))),b&&(e.deleteData(g,h-g),a.collapse(!0)),j;for(var k,l,m=j,n=domUtils.findParents(e,!0),o=domUtils.findParents(f,!0),p=0;n[p]==o[p];)p++;for(var q,r=p;q=n[r];r++){for(k=q.nextSibling,q==e?c||(3==a.startContainer.nodeType?(m.appendChild(i.createTextNode(e.nodeValue.slice(g))),b&&e.deleteData(g,e.nodeValue.length-g)):m.appendChild(b?e:e.cloneNode(!0))):(l=q.cloneNode(!1),m.appendChild(l));k&&k!==f&&k!==o[r];)q=k.nextSibling,m.appendChild(b?k:k.cloneNode(!0)),k=q;m=l}m=j,n[p]||(m.appendChild(n[p-1].cloneNode(!1)),m=m.firstChild);for(var s,r=p;s=o[r];r++){if(k=s.previousSibling,s==f?d||3!=a.endContainer.nodeType||(m.appendChild(i.createTextNode(f.substringData(0,h))),b&&f.deleteData(0,h)):(l=s.cloneNode(!1),m.appendChild(l)),r!=p||!n[p])for(;k&&k!==e;)s=k.previousSibling,m.insertBefore(b?k:k.cloneNode(!0),m.firstChild),k=s;m=l}return b&&a.setStartBefore(o[p]?n[p]?o[p]:n[p-1]:o[p-1]).collapse(!0),c&&domUtils.remove(c),d&&domUtils.remove(d),j}function e(a,b){try{if(g&&domUtils.inDoc(g,a))if(g.nodeValue.replace(fillCharReg,"").length)g.nodeValue=g.nodeValue.replace(fillCharReg,"");else{var c=g.parentNode;for(domUtils.remove(g);c&&domUtils.isEmptyInlineElement(c)&&(browser.safari?!(domUtils.getPosition(c,b)&domUtils.POSITION_CONTAINS):!c.contains(b));)g=c.parentNode,domUtils.remove(c),c=g}}catch(d){} +}function f(a,b){var c;for(a=a[b];a&&domUtils.isFillChar(a);)c=a[b],domUtils.remove(a),a=c}var g,h=0,i=domUtils.fillChar,j=dom.Range=function(a){var b=this;b.startContainer=b.startOffset=b.endContainer=b.endOffset=null,b.document=a,b.collapsed=!0};j.prototype={cloneContents:function(){return this.collapsed?null:d(this,0)},deleteContents:function(){var a;return this.collapsed||d(this,1),browser.webkit&&(a=this.startContainer,3!=a.nodeType||a.nodeValue.length||(this.setStartBefore(a).collapse(!0),domUtils.remove(a))),this},extractContents:function(){return this.collapsed?null:d(this,2)},setStart:function(a,b){return c(!0,a,b,this)},setEnd:function(a,b){return c(!1,a,b,this)},setStartAfter:function(a){return this.setStart(a.parentNode,domUtils.getNodeIndex(a)+1)},setStartBefore:function(a){return this.setStart(a.parentNode,domUtils.getNodeIndex(a))},setEndAfter:function(a){return this.setEnd(a.parentNode,domUtils.getNodeIndex(a)+1)},setEndBefore:function(a){return this.setEnd(a.parentNode,domUtils.getNodeIndex(a))},setStartAtFirst:function(a){return this.setStart(a,0)},setStartAtLast:function(a){return this.setStart(a,3==a.nodeType?a.nodeValue.length:a.childNodes.length)},setEndAtFirst:function(a){return this.setEnd(a,0)},setEndAtLast:function(a){return this.setEnd(a,3==a.nodeType?a.nodeValue.length:a.childNodes.length)},selectNode:function(a){return this.setStartBefore(a).setEndAfter(a)},selectNodeContents:function(a){return this.setStart(a,0).setEndAtLast(a)},cloneRange:function(){var a=this;return new j(a.document).setStart(a.startContainer,a.startOffset).setEnd(a.endContainer,a.endOffset)},collapse:function(a){var b=this;return a?(b.endContainer=b.startContainer,b.endOffset=b.startOffset):(b.startContainer=b.endContainer,b.startOffset=b.endOffset),b.collapsed=!0,b},shrinkBoundary:function(a){function b(a){return 1==a.nodeType&&!domUtils.isBookmarkNode(a)&&!dtd.$empty[a.tagName]&&!dtd.$nonChild[a.tagName]}for(var c,d=this,e=d.collapsed;1==d.startContainer.nodeType&&(c=d.startContainer.childNodes[d.startOffset])&&b(c);)d.setStart(c,0);if(e)return d.collapse(!0);if(!a)for(;1==d.endContainer.nodeType&&d.endOffset>0&&(c=d.endContainer.childNodes[d.endOffset-1])&&b(c);)d.setEnd(c,c.childNodes.length);return d},getCommonAncestor:function(a,c){var d=this,e=d.startContainer,f=d.endContainer;return e===f?a&&b(this)&&(e=e.childNodes[d.startOffset],1==e.nodeType)?e:c&&3==e.nodeType?e.parentNode:e:domUtils.getCommonAncestor(e,f)},trimBoundary:function(a){this.txtToElmBoundary();var b=this.startContainer,c=this.startOffset,d=this.collapsed,e=this.endContainer;if(3==b.nodeType){if(0==c)this.setStartBefore(b);else if(c>=b.nodeValue.length)this.setStartAfter(b);else{var f=domUtils.split(b,c);b===e?this.setEnd(f,this.endOffset-c):b.parentNode===e&&(this.endOffset+=1),this.setStartBefore(f)}if(d)return this.collapse(!0)}return a||(c=this.endOffset,e=this.endContainer,3==e.nodeType&&(0==c?this.setEndBefore(e):(c=c.nodeValue.length&&a["set"+b.replace(/(\w)/,function(a){return a.toUpperCase()})+"After"](c):a["set"+b.replace(/(\w)/,function(a){return a.toUpperCase()})+"Before"](c))}return!a&&this.collapsed||(b(this,"start"),b(this,"end")),this},insertNode:function(a){var b=a,c=1;11==a.nodeType&&(b=a.firstChild,c=a.childNodes.length),this.trimBoundary(!0);var d=this.startContainer,e=this.startOffset,f=d.childNodes[e];return f?d.insertBefore(a,f):d.appendChild(a),b.parentNode===this.endContainer&&(this.endOffset=this.endOffset+c),this.setStartBefore(b)},setCursor:function(a,b){return this.collapse(!a).select(b)},createBookmark:function(a,b){var c,d=this.document.createElement("span");return d.style.cssText="display:none;line-height:0px;",d.appendChild(this.document.createTextNode("‍")),d.id="_baidu_bookmark_start_"+(b?"":h++),this.collapsed||(c=d.cloneNode(!0),c.id="_baidu_bookmark_end_"+(b?"":h++)),this.insertNode(d),c&&this.collapse().insertNode(c).setEndBefore(c),this.setStartAfter(d),{start:a?d.id:d,end:c?a?c.id:c:null,id:a}},moveToBookmark:function(a){var b=a.id?this.document.getElementById(a.start):a.start,c=a.end&&a.id?this.document.getElementById(a.end):a.end;return this.setStartBefore(b),domUtils.remove(b),c?(this.setEndBefore(c),domUtils.remove(c)):this.collapse(!0),this},enlarge:function(a,b){var c,d,e=domUtils.isBody,f=this.document.createTextNode("");if(a){for(d=this.startContainer,1==d.nodeType?d.childNodes[this.startOffset]?c=d=d.childNodes[this.startOffset]:(d.appendChild(f),c=d=f):c=d;;){if(domUtils.isBlockElm(d)){for(d=c;(c=d.previousSibling)&&!domUtils.isBlockElm(c);)d=c;this.setStartBefore(d);break}c=d,d=d.parentNode}for(d=this.endContainer,1==d.nodeType?((c=d.childNodes[this.endOffset])?d.insertBefore(f,c):d.appendChild(f),c=d=f):c=d;;){if(domUtils.isBlockElm(d)){for(d=c;(c=d.nextSibling)&&!domUtils.isBlockElm(c);)d=c;this.setEndAfter(d);break}c=d,d=d.parentNode}f.parentNode===this.endContainer&&this.endOffset--,domUtils.remove(f)}if(!this.collapsed){for(;!(0!=this.startOffset||b&&b(this.startContainer)||e(this.startContainer));)this.setStartBefore(this.startContainer);for(;!(this.endOffset!=(1==this.endContainer.nodeType?this.endContainer.childNodes.length:this.endContainer.nodeValue.length)||b&&b(this.endContainer)||e(this.endContainer));)this.setEndAfter(this.endContainer)}return this},enlargeToBlockElm:function(a){for(;!domUtils.isBlockElm(this.startContainer);)this.setStartBefore(this.startContainer);if(!a)for(;!domUtils.isBlockElm(this.endContainer);)this.setEndAfter(this.endContainer);return this},adjustmentBoundary:function(){if(!this.collapsed){for(;!domUtils.isBody(this.startContainer)&&this.startOffset==this.startContainer[3==this.startContainer.nodeType?"nodeValue":"childNodes"].length&&this.startContainer[3==this.startContainer.nodeType?"nodeValue":"childNodes"].length;)this.setStartAfter(this.startContainer);for(;!domUtils.isBody(this.endContainer)&&!this.endOffset&&this.endContainer[3==this.endContainer.nodeType?"nodeValue":"childNodes"].length;)this.setEndBefore(this.endContainer)}return this},applyInlineStyle:function(a,b,c){if(this.collapsed)return this;this.trimBoundary().enlarge(!1,function(a){return 1==a.nodeType&&domUtils.isBlockElm(a)}).adjustmentBoundary();for(var d,e,f=this.createBookmark(),g=f.end,h=function(a){return 1==a.nodeType?"br"!=a.tagName.toLowerCase():!domUtils.isWhitespace(a)},i=domUtils.getNextDomNode(f.start,!1,h),j=this.cloneRange();i&&domUtils.getPosition(i,g)&domUtils.POSITION_PRECEDING;)if(3==i.nodeType||dtd[a][i.tagName]){for(j.setStartBefore(i),d=i;d&&(3==d.nodeType||dtd[a][d.tagName])&&d!==g;)e=d,d=domUtils.getNextDomNode(d,1==d.nodeType,null,function(b){return dtd[a][b.tagName]});var k,l=j.setEndAfter(e).extractContents();if(c&&c.length>0){var m,n;n=m=c[0].cloneNode(!1);for(var o,p=1;o=c[p++];)m.appendChild(o.cloneNode(!1)),m=m.firstChild;k=m}else k=j.document.createElement(a);b&&domUtils.setAttributes(k,b),k.appendChild(l),j.insertNode(c?n:k);var q;if("span"==a&&b.style&&/text\-decoration/.test(b.style)&&(q=domUtils.findParentByTagName(k,"a",!0))?(domUtils.setAttributes(q,b),domUtils.remove(k,!0),k=q):(domUtils.mergeSibling(k),domUtils.clearEmptySibling(k)),domUtils.mergeChild(k,b),i=domUtils.getNextDomNode(k,!1,h),domUtils.mergeToParent(k),d===g)break}else i=domUtils.getNextDomNode(i,!0,h);return this.moveToBookmark(f)},removeInlineStyle:function(a){if(this.collapsed)return this;a=utils.isArray(a)?a:[a],this.shrinkBoundary().adjustmentBoundary();for(var b=this.startContainer,c=this.endContainer;;){if(1==b.nodeType){if(utils.indexOf(a,b.tagName.toLowerCase())>-1)break;if("body"==b.tagName.toLowerCase()){b=null;break}}b=b.parentNode}for(;;){if(1==c.nodeType){if(utils.indexOf(a,c.tagName.toLowerCase())>-1)break;if("body"==c.tagName.toLowerCase()){c=null;break}}c=c.parentNode}var d,e,f=this.createBookmark();b&&(e=this.cloneRange().setEndBefore(f.start).setStartBefore(b),d=e.extractContents(),e.insertNode(d),domUtils.clearEmptySibling(b,!0),b.parentNode.insertBefore(f.start,b)),c&&(e=this.cloneRange().setStartAfter(f.end).setEndAfter(c),d=e.extractContents(),e.insertNode(d),domUtils.clearEmptySibling(c,!1,!0),c.parentNode.insertBefore(f.end,c.nextSibling));for(var g,h=domUtils.getNextDomNode(f.start,!1,function(a){return 1==a.nodeType});h&&h!==f.end;)g=domUtils.getNextDomNode(h,!0,function(a){return 1==a.nodeType}),utils.indexOf(a,h.tagName.toLowerCase())>-1&&domUtils.remove(h,!0),h=g;return this.moveToBookmark(f)},getClosedNode:function(){var a;if(!this.collapsed){var c=this.cloneRange().adjustmentBoundary().shrinkBoundary();if(b(c)){var d=c.startContainer.childNodes[c.startOffset];d&&1==d.nodeType&&(dtd.$empty[d.tagName]||dtd.$nonChild[d.tagName])&&(a=d)}}return a},select:browser.ie?function(a,b){var c;this.collapsed||this.shrinkBoundary();var d=this.getClosedNode();if(d&&!b){try{c=this.document.body.createControlRange(),c.addElement(d),c.select()}catch(h){}return this}var j,k=this.createBookmark(),l=k.start;if(c=this.document.body.createTextRange(),c.moveToElementText(l),c.moveStart("character",1),this.collapsed){if(!a&&3!=this.startContainer.nodeType){var m=this.document.createTextNode(i),n=this.document.createElement("span");n.appendChild(this.document.createTextNode(i)),l.parentNode.insertBefore(n,l),l.parentNode.insertBefore(m,l),e(this.document,m),g=m,f(n,"previousSibling"),f(l,"nextSibling"),c.moveStart("character",-1),c.collapse(!0)}}else{var o=this.document.body.createTextRange();j=k.end,o.moveToElementText(j),c.setEndPoint("EndToEnd",o)}this.moveToBookmark(k),n&&domUtils.remove(n);try{c.select()}catch(h){}return this}:function(a){function b(a){function b(b,c,d){3==b.nodeType&&b.nodeValue.length0)j=k-1;else{if(!(l<0))return{container:d,offset:c(e)};i=k+1}}if(k==-1){if(h.moveToElementText(d),h.setEndPoint("StartToStart",a),f=h.text.replace(/(\r\n|\r)/g,"\n").length,g=d.childNodes,!f)return e=g[g.length-1],{container:e,offset:e.nodeValue.length};for(var m=g.length;f>0;)f-=g[--m].nodeValue.length;return{container:g[m],offset:-f}}if(h.collapse(l>0),h.setEndPoint(l>0?"StartToStart":"EndToStart",a),f=h.text.replace(/(\r\n|\r)/g,"\n").length,!f)return dtd.$empty[e.tagName]||dtd.$nonChild[e.tagName]?{container:d,offset:c(e)+(l>0?0:1)}:{container:e,offset:l>0?0:e.childNodes.length};for(;f>0;)try{var n=e;e=e[l>0?"previousSibling":"nextSibling"],f-=e.nodeValue.length}catch(o){return{container:d,offset:c(n)}}return{container:e,offset:l>0?-f:e.nodeValue.length+f}}function b(b,c){if(b.item)c.selectNode(b.item(0));else{var d=a(b,!0);c.setStart(d.container,d.offset),0!=b.compareEndPoints("StartToEnd",b)&&(d=a(b,!1),c.setEnd(d.container,d.offset))}return c}function c(a){var b;try{b=a.getNative().createRange()}catch(c){return null}var d=b.item?b.item(0):b.parentElement();return(d.ownerDocument||d)===a.document?b:null}var d=dom.Selection=function(a){var b,d=this;d.document=a,browser.ie9below&&(b=domUtils.getWindow(a).frameElement,domUtils.on(b,"beforedeactivate",function(){d._bakIERange=d.getIERange()}),domUtils.on(b,"activate",function(){try{!c(d)&&d._bakIERange&&d._bakIERange.select()}catch(a){}d._bakIERange=null})),b=a=null};d.prototype={rangeInBody:function(a,b){var c=browser.ie9below||b?a.item?a.item():a.parentElement():a.startContainer;return c===this.document.body||domUtils.inDoc(c,this.document)},getNative:function(){var a=this.document;try{return a?browser.ie9below?a.selection:domUtils.getWindow(a).getSelection():null}catch(b){return null}},getIERange:function(){var a=c(this);return!a&&this._bakIERange?this._bakIERange:a},cache:function(){this.clear(),this._cachedRange=this.getRange(),this._cachedStartElement=this.getStart(),this._cachedStartElementPath=this.getStartElementPath()},getStartElementPath:function(){if(this._cachedStartElementPath)return this._cachedStartElementPath;var a=this.getStart();return a?domUtils.findParents(a,!0,null,!0):[]},clear:function(){this._cachedStartElementPath=this._cachedRange=this._cachedStartElement=null},isFocus:function(){try{if(browser.ie9below){var a=c(this);return!(!a||!this.rangeInBody(a))}return!!this.getNative().rangeCount}catch(b){return!1}},getRange:function(){function a(a){for(var b=c.document.body.firstChild,d=a.collapsed;b&&b.firstChild;)a.setStart(b,0),b=b.firstChild;a.startContainer||a.setStart(c.document.body,0),d&&a.collapse(!0)}var c=this;if(null!=c._cachedRange)return this._cachedRange;var d=new baidu.editor.dom.Range(c.document);if(browser.ie9below){var e=c.getIERange();if(e)try{b(e,d)}catch(f){a(d)}else a(d)}else{var g=c.getNative();if(g&&g.rangeCount){var h=g.getRangeAt(0),i=g.getRangeAt(g.rangeCount-1);d.setStart(h.startContainer,h.startOffset).setEnd(i.endContainer,i.endOffset),d.collapsed&&domUtils.isBody(d.startContainer)&&!d.startOffset&&a(d)}else{if(this._bakRange&&domUtils.inDoc(this._bakRange.startContainer,this.document))return this._bakRange;a(d)}}return this._bakRange=d},getStart:function(){if(this._cachedStartElement)return this._cachedStartElement;var a,b,c,d,e=browser.ie9below?this.getIERange():this.getRange();if(browser.ie9below){if(!e)return this.document.body.firstChild;if(e.item)return e.item(0);for(a=e.duplicate(),a.text.length>0&&a.moveStart("character",1),a.collapse(1),b=a.parentElement(),d=c=e.parentElement();c=c.parentNode;)if(c==b){b=d;break}}else if(e.shrinkBoundary(),b=e.startContainer,1==b.nodeType&&b.hasChildNodes()&&(b=b.childNodes[Math.min(b.childNodes.length-1,e.startOffset)]),3==b.nodeType)return b.parentNode;return b},getText:function(){var a,b;return this.isFocus()&&(a=this.getNative())?(b=browser.ie9below?a.createRange():a.getRangeAt(0),browser.ie9below?b.text:b.toString()):""},clearRange:function(){this.getNative()[browser.ie9below?"empty":"removeAllRanges"]()}}}(),function(){function a(a,b){var c;if(b.textarea)if(utils.isString(b.textarea)){for(var d,e=0,f=domUtils.getElementsByTagName(a,"textarea");d=f[e++];)if(d.id=="ueditor_textarea_"+b.options.textarea){c=d;break}}else c=b.textarea;c||(a.appendChild(c=domUtils.createElement(document,"textarea",{name:b.options.textarea,id:"ueditor_textarea_"+b.options.textarea,style:"display:none"})),b.textarea=c),!c.getAttribute("name")&&c.setAttribute("name",b.options.textarea),c.value=b.hasContents()?b.options.allHtmlEnabled?b.getAllHtml():b.getContent(null,null,!0):""}function b(a){for(var b in a)return b}function c(a){a.langIsReady=!0,a.fireEvent("langReady")}var d,e=0,f=UE.Editor=function(a){var d=this;d.uid=e++,EventBase.call(d),d.commands={},d.options=utils.extend(utils.clone(a||{}),UEDITOR_CONFIG,!0),d.shortcutkeys={},d.inputRules=[],d.outputRules=[],d.setOpt(f.defaultOptions(d)),d.loadServerConfig(),utils.isEmptyObject(UE.I18N)?utils.loadFile(document,{src:d.options.langPath+d.options.lang+"/"+d.options.lang+".js",tag:"script",type:"text/javascript",defer:"defer"},function(){UE.plugin.load(d),c(d)}):(d.options.lang=b(UE.I18N),UE.plugin.load(d),c(d)),UE.instants["ueditorInstant"+d.uid]=d};f.prototype={registerCommand:function(a,b){this.commands[a]=b},ready:function(a){var b=this;a&&(b.isReady?a.apply(b):b.addListener("ready",a))},setOpt:function(a,b){var c={};utils.isString(a)?c[a]=b:c=a,utils.extend(this.options,c,!0)},getOpt:function(a){return this.options[a]},destroy:function(){var a=this;a.fireEvent("destroy");var b=a.container.parentNode,c=a.textarea;c?c.style.display="":(c=document.createElement("textarea"),b.parentNode.insertBefore(c,b)),c.style.width=a.iframe.offsetWidth+"px",c.style.height=a.iframe.offsetHeight+"px",c.value=a.getContent(),c.id=a.key,b.innerHTML="",domUtils.remove(b);var d=a.key;for(var e in a)a.hasOwnProperty(e)&&delete this[e];UE.delEditor(d)},render:function(a){var b=this,c=b.options,d=function(b){return parseInt(domUtils.getComputedStyle(a,b))};if(utils.isString(a)&&(a=document.getElementById(a)),a){c.initialFrameWidth?c.minFrameWidth=c.initialFrameWidth:c.minFrameWidth=c.initialFrameWidth=a.offsetWidth,c.initialFrameHeight?c.minFrameHeight=c.initialFrameHeight:c.initialFrameHeight=c.minFrameHeight=a.offsetHeight,a.style.width=/%$/.test(c.initialFrameWidth)?"100%":c.initialFrameWidth-d("padding-left")-d("padding-right")+"px",a.style.height=/%$/.test(c.initialFrameHeight)?"100%":c.initialFrameHeight-d("padding-top")-d("padding-bottom")+"px",a.style.zIndex=c.zIndex;var e=(ie&&browser.version<9?"":"")+""+(c.iframeCssUrl?"":"")+(c.initialStyle?"":"")+"";a.appendChild(domUtils.createElement(document,"iframe",{id:"ueditor_"+b.uid,width:"100%",height:"100%",frameborder:"0",src:"javascript:void(function(){document.open();"+(c.customDomain&&document.domain!=location.hostname?'document.domain="'+document.domain+'";':"")+'document.write("'+e+'");document.close();}())'})),a.style.overflow="hidden",setTimeout(function(){/%$/.test(c.initialFrameWidth)&&(c.minFrameWidth=c.initialFrameWidth=a.offsetWidth),/%$/.test(c.initialFrameHeight)&&(c.minFrameHeight=c.initialFrameHeight=a.offsetHeight,a.style.height=c.initialFrameHeight+"px")})}},_setup:function(b){var c=this,d=c.options;ie?(b.body.disabled=!0,b.body.contentEditable=!0,b.body.disabled=!1):b.body.contentEditable=!0,b.body.spellcheck=!1,c.document=b,c.window=b.defaultView||b.parentWindow,c.iframe=c.window.frameElement,c.body=b.body,c.selection=new dom.Selection(b);var e;browser.gecko&&(e=this.selection.getNative())&&e.removeAllRanges(),this._initEvents();for(var f=this.iframe.parentNode;!domUtils.isBody(f);f=f.parentNode)if("FORM"==f.tagName){c.form=f,c.options.autoSyncData?domUtils.on(c.window,"blur",function(){a(f,c)}):domUtils.on(f,"submit",function(){a(this,c)});break}if(d.initialContent)if(d.autoClearinitialContent){var g=c.execCommand;c.execCommand=function(){return c.fireEvent("firstBeforeExecCommand"),g.apply(c,arguments)},this._setDefaultContent(d.initialContent)}else this.setContent(d.initialContent,!1,!0);domUtils.isEmptyNode(c.body)&&(c.body.innerHTML="

    "+(browser.ie?"":"
    ")+"

    "),d.focus&&setTimeout(function(){c.focus(c.options.focusInEnd),!c.options.autoClearinitialContent&&c._selectionChange()},0),c.container||(c.container=this.iframe.parentNode),d.fullscreen&&c.ui&&c.ui.setFullScreen(!0);try{c.document.execCommand("2D-position",!1,!1)}catch(h){}try{c.document.execCommand("enableInlineTableEditing",!1,!1)}catch(h){}try{c.document.execCommand("enableObjectResizing",!1,!1)}catch(h){}c._bindshortcutKeys(),c.isReady=1,c.fireEvent("ready"),d.onready&&d.onready.call(c),browser.ie9below||domUtils.on(c.window,["blur","focus"],function(a){if("blur"==a.type){c._bakRange=c.selection.getRange();try{c._bakNativeRange=c.selection.getNative().getRangeAt(0),c.selection.getNative().removeAllRanges()}catch(a){c._bakNativeRange=null}}else try{c._bakRange&&c._bakRange.select()}catch(a){}}),browser.gecko&&browser.version<=10902&&(c.body.contentEditable=!1,setTimeout(function(){c.body.contentEditable=!0},100),setInterval(function(){c.body.style.height=c.iframe.offsetHeight-20+"px"},100)),!d.isShow&&c.setHide(),d.readonly&&c.setDisabled()},sync:function(b){var c=this,d=b?document.getElementById(b):domUtils.findParent(c.iframe.parentNode,function(a){return"FORM"==a.tagName},!0);d&&a(d,c)},setHeight:function(a,b){a!==parseInt(this.iframe.parentNode.style.height)&&(this.iframe.parentNode.style.height=a+"px"),!b&&(this.options.minFrameHeight=this.options.initialFrameHeight=a),this.body.style.height=a+"px",!b&&this.trigger("setHeight")},addshortcutkey:function(a,b){var c={};b?c[a]=b:c=a,utils.extend(this.shortcutkeys,c)},_bindshortcutKeys:function(){var a=this,b=this.shortcutkeys;a.addListener("keydown",function(c,d){var e=d.keyCode||d.which;for(var f in b)for(var g,h=b[f].split(","),i=0;g=h[i++];){g=g.split(":");var j=g[0],k=g[1];(/^(ctrl)(\+shift)?\+(\d+)$/.test(j.toLowerCase())||/^(\d+)$/.test(j))&&(("ctrl"==RegExp.$1?d.ctrlKey||d.metaKey:0)&&(""!=RegExp.$2?d[RegExp.$2.slice(1)+"Key"]:1)&&e==RegExp.$3||e==RegExp.$1)&&(a.queryCommandState(f,k)!=-1&&a.execCommand(f,k),domUtils.preventDefault(d))}})},getContent:function(a,b,c,d,e){var f=this;if(a&&utils.isFunction(a)&&(b=a,a=""),b?!b():!this.hasContents())return"";f.fireEvent("beforegetcontent");var g=UE.htmlparser(f.body.innerHTML,d);return f.filterOutputRule(g),f.fireEvent("aftergetcontent",a,g),g.toHtml(e)},getAllHtml:function(){var a=this,b=[];if(a.fireEvent("getAllHtml",b),browser.ie&&browser.version>8){var c="";utils.each(a.document.styleSheets,function(a){c+=a.href?'':""}),utils.each(a.document.getElementsByTagName("script"),function(a){c+=a.outerHTML})}return""+(a.options.charset?'':"")+(c||a.document.getElementsByTagName("head")[0].innerHTML)+b.join("\n")+""+a.getContent(null,null,!0)+""},getPlainTxt:function(){var a=new RegExp(domUtils.fillChar,"g"),b=this.body.innerHTML.replace(/[\n\r]/g,"");return b=b.replace(/<(p|div)[^>]*>(| )<\/\1>/gi,"\n").replace(//gi,"\n").replace(/<[^>\/]+>/g,"").replace(/(\n)?<\/([^>]+)>/g,function(a,b,c){return dtd.$block[c]?"\n":b?b:""}),b.replace(a,"").replace(/\u00a0/g," ").replace(/ /g," ")},getContentTxt:function(){var a=new RegExp(domUtils.fillChar,"g");return this.body[browser.ie?"innerText":"textContent"].replace(a,"").replace(/\u00a0/g," ")},setContent:function(b,c,d){function e(a){return"DIV"==a.tagName&&a.getAttribute("cdata_tag")}var f=this;f.fireEvent("beforesetcontent",b);var g=UE.htmlparser(b);if(f.filterInputRule(g),b=g.toHtml(),f.body.innerHTML=(c?f.body.innerHTML:"")+b,"p"==f.options.enterTag){var h,i=this.body.firstChild;if(!i||1==i.nodeType&&(dtd.$cdata[i.tagName]||e(i)||domUtils.isCustomeNode(i))&&i===this.body.lastChild)this.body.innerHTML="

    "+(browser.ie?" ":"
    ")+"

    "+this.body.innerHTML;else for(var j=f.document.createElement("p");i;){for(;i&&(3==i.nodeType||1==i.nodeType&&dtd.p[i.tagName]&&!dtd.$cdata[i.tagName]);)h=i.nextSibling,j.appendChild(i),i=h;if(j.firstChild){if(!i){f.body.appendChild(j);break}i.parentNode.insertBefore(j,i),j=f.document.createElement("p")}i=i.nextSibling}}f.fireEvent("aftersetcontent"),f.fireEvent("contentchange"),!d&&f._selectionChange(),f._bakRange=f._bakIERange=f._bakNativeRange=null;var k;browser.gecko&&(k=this.selection.getNative())&&k.removeAllRanges(),f.options.autoSyncData&&f.form&&a(f.form,f)},focus:function(a){try{var b=this,c=b.selection.getRange();if(a){var d=b.body.lastChild;d&&1==d.nodeType&&!dtd.$empty[d.tagName]&&(domUtils.isEmptyBlock(d)?c.setStartAtFirst(d):c.setStartAtLast(d),c.collapse(!0)),c.setCursor(!0)}else{if(!c.collapsed&&domUtils.isBody(c.startContainer)&&0==c.startOffset){var d=b.body.firstChild;d&&1==d.nodeType&&!dtd.$empty[d.tagName]&&c.setStartAtFirst(d).collapse(!0)}c.select(!0)}this.fireEvent("focus selectionchange")}catch(e){}},isFocus:function(){return this.selection.isFocus()},blur:function(){var a=this.selection.getNative();if(a.empty&&browser.ie){var b=document.body.createTextRange();b.moveToElementText(document.body),b.collapse(!0),b.select(),a.empty()}else a.removeAllRanges()},_initEvents:function(){var a=this,b=a.document,c=a.window;a._proxyDomEvent=utils.bind(a._proxyDomEvent,a),domUtils.on(b,["click","contextmenu","mousedown","keydown","keyup","keypress","mouseup","mouseover","mouseout","selectstart"],a._proxyDomEvent),domUtils.on(c,["focus","blur"],a._proxyDomEvent),domUtils.on(a.body,"drop",function(b){browser.gecko&&b.stopPropagation&&b.stopPropagation(),a.fireEvent("contentchange")}),domUtils.on(b,["mouseup","keydown"],function(b){"keydown"==b.type&&(b.ctrlKey||b.metaKey||b.shiftKey||b.altKey)||2!=b.button&&a._selectionChange(250,b)})},_proxyDomEvent:function(a){return this.fireEvent("before"+a.type.replace(/^on/,"").toLowerCase())!==!1&&(this.fireEvent(a.type.replace(/^on/,""),a)!==!1&&this.fireEvent("after"+a.type.replace(/^on/,"").toLowerCase()))},_selectionChange:function(a,b){var c,e,f=this,g=!1;if(browser.ie&&browser.version<9&&b&&"mouseup"==b.type){var h=this.selection.getRange();h.collapsed||(g=!0,c=b.clientX,e=b.clientY)}clearTimeout(d),d=setTimeout(function(){if(f.selection&&f.selection.getNative()){var a;if(g&&"None"==f.selection.getNative().type){a=f.document.body.createTextRange();try{a.moveToPoint(c,e)}catch(d){a=null}}var h;a&&(h=f.selection.getIERange,f.selection.getIERange=function(){return a}),f.selection.cache(),h&&(f.selection.getIERange=h),f.selection._cachedRange&&f.selection._cachedStartElement&&(f.fireEvent("beforeselectionchange"),f.fireEvent("selectionchange",!!b),f.fireEvent("afterselectionchange"),f.selection.clear())}},a||50)},_callCmdFn:function(a,b){var c,d,e=b[0].toLowerCase();return c=this.commands[e]||UE.commands[e],d=c&&c[a],c&&d||"queryCommandState"!=a?d?d.apply(this,b):void 0:0},execCommand:function(a){a=a.toLowerCase();var b,c=this,d=c.commands[a]||UE.commands[a];return d&&d.execCommand?(d.notNeedUndo||c.__hasEnterExecCommand?(b=this._callCmdFn("execCommand",arguments),!c.__hasEnterExecCommand&&!d.ignoreContentChange&&!c._ignoreContentChange&&c.fireEvent("contentchange")):(c.__hasEnterExecCommand=!0,c.queryCommandState.apply(c,arguments)!=-1&&(c.fireEvent("saveScene"),c.fireEvent.apply(c,["beforeexeccommand",a].concat(arguments)),b=this._callCmdFn("execCommand",arguments),c.fireEvent.apply(c,["afterexeccommand",a].concat(arguments)),c.fireEvent("saveScene")),c.__hasEnterExecCommand=!1),!c.__hasEnterExecCommand&&!d.ignoreContentChange&&!c._ignoreContentChange&&c._selectionChange(),b):null},queryCommandState:function(a){return this._callCmdFn("queryCommandState",arguments)},queryCommandValue:function(a){return this._callCmdFn("queryCommandValue",arguments)},hasContents:function(a){if(a)for(var b,c=0;b=a[c++];)if(this.document.getElementsByTagName(b).length>0)return!0;if(!domUtils.isEmptyBlock(this.body))return!0;for(a=["div"],c=0;b=a[c++];)for(var d,e=domUtils.getElementsByTagName(this.document,b),f=0;d=e[f++];)if(domUtils.isCustomeNode(d))return!0;return!1},reset:function(){this.fireEvent("reset")},setEnabled:function(){var a,b=this;if("false"==b.body.contentEditable){b.body.contentEditable=!0,a=b.selection.getRange();try{a.moveToBookmark(b.lastBk),delete b.lastBk}catch(c){a.setStartAtFirst(b.body).collapse(!0)}a.select(!0),b.bkqueryCommandState&&(b.queryCommandState=b.bkqueryCommandState,delete b.bkqueryCommandState),b.bkqueryCommandValue&&(b.queryCommandValue=b.bkqueryCommandValue,delete b.bkqueryCommandValue),b.fireEvent("selectionchange")}},enable:function(){return this.setEnabled()},setDisabled:function(a){var b=this;a=a?utils.isArray(a)?a:[a]:[],"true"==b.body.contentEditable&&(b.lastBk||(b.lastBk=b.selection.getRange().createBookmark(!0)),b.body.contentEditable=!1,b.bkqueryCommandState=b.queryCommandState,b.bkqueryCommandValue=b.queryCommandValue,b.queryCommandState=function(c){return utils.indexOf(a,c)!=-1?b.bkqueryCommandState.apply(b,arguments):-1},b.queryCommandValue=function(c){return utils.indexOf(a,c)!=-1?b.bkqueryCommandValue.apply(b,arguments):null},b.fireEvent("selectionchange"))},disable:function(a){return this.setDisabled(a)},_setDefaultContent:function(){function a(){var b=this;b.document.getElementById("initContent")&&(b.body.innerHTML="

    "+(ie?"":"
    ")+"

    ",b.removeListener("firstBeforeExecCommand focus",a),setTimeout(function(){b.focus(),b._selectionChange()},0))}return function(b){var c=this;c.body.innerHTML='

    '+b+"

    ",c.addListener("firstBeforeExecCommand focus",a)}}(),setShow:function(){var a=this,b=a.selection.getRange();if("none"==a.container.style.display){try{b.moveToBookmark(a.lastBk),delete a.lastBk}catch(c){b.setStartAtFirst(a.body).collapse(!0)}setTimeout(function(){b.select(!0)},100),a.container.style.display=""}},show:function(){return this.setShow()},setHide:function(){ +var a=this;a.lastBk||(a.lastBk=a.selection.getRange().createBookmark(!0)),a.container.style.display="none"},hide:function(){return this.setHide()},getLang:function(a){var b=UE.I18N[this.options.lang];if(!b)throw Error("not import language file");a=(a||"").split(".");for(var c,d=0;(c=a[d++])&&(b=b[c],b););return b},getContentLength:function(a,b){var c=this.getContent(!1,!1,!0).length;if(a){b=(b||[]).concat(["hr","img","iframe"]),c=this.getContentTxt().replace(/[\t\r\n]+/g,"").length;for(var d,e=0;d=b[e++];)c+=this.document.getElementsByTagName(d).length}return c},addInputRule:function(a){this.inputRules.push(a)},filterInputRule:function(a){for(var b,c=0;b=this.inputRules[c++];)b.call(this,a)},addOutputRule:function(a){this.outputRules.push(a)},filterOutputRule:function(a){for(var b,c=0;b=this.outputRules[c++];)b.call(this,a)},getActionUrl:function(a){var b=this.getOpt(a)||a,c=this.getOpt("imageUrl"),d=this.getOpt("serverUrl");return!d&&c&&(d=c.replace(/^(.*[\/]).+([\.].+)$/,"$1controller$2")),d?(d=d+(d.indexOf("?")==-1?"?":"&")+"action="+(b||""),utils.formatUrl(d)):""}},utils.inherits(f,EventBase)}(),UE.Editor.defaultOptions=function(a){var b=a.options.UEDITOR_HOME_URL;return{isShow:!0,initialContent:"",initialStyle:"",autoClearinitialContent:!1,iframeCssUrl:b+"themes/iframe.css",textarea:"editorValue",focus:!1,focusInEnd:!0,autoClearEmptyNode:!0,fullscreen:!1,readonly:!1,zIndex:999,imagePopup:!0,enterTag:"p",customDomain:!1,lang:"zh-cn",langPath:b+"lang/",theme:"default",themePath:b+"themes/",allHtmlEnabled:!1,scaleEnabled:!1,tableNativeEditInFF:!1,autoSyncData:!0,fileNameFormat:"{time}{rand:6}"}},function(){UE.Editor.prototype.loadServerConfig=function(){function showErrorMsg(a){console&&console.error(a)}var me=this;setTimeout(function(){try{me.options.imageUrl&&me.setOpt("serverUrl",me.options.imageUrl.replace(/^(.*[\/]).+([\.].+)$/,"$1controller$2"));var configUrl=me.getActionUrl("config"),isJsonp=utils.isCrossDomainUrl(configUrl);me._serverConfigLoaded=!1,configUrl&&UE.ajax.request(configUrl,{method:"GET",dataType:isJsonp?"jsonp":"",onsuccess:function(r){try{var config=isJsonp?r:eval("("+r.responseText+")");utils.extend(me.options,config),me.fireEvent("serverConfigLoaded"),me._serverConfigLoaded=!0}catch(e){showErrorMsg(me.getLang("loadconfigFormatError"))}},onerror:function(){showErrorMsg(me.getLang("loadconfigHttpError"))}})}catch(e){showErrorMsg(me.getLang("loadconfigError"))}})},UE.Editor.prototype.isServerConfigLoaded=function(){var a=this;return a._serverConfigLoaded||!1},UE.Editor.prototype.afterConfigReady=function(a){if(a&&utils.isFunction(a)){var b=this,c=function(){a.apply(b,arguments),b.removeListener("serverConfigLoaded",c)};b.isServerConfigLoaded()?a.call(b,"serverConfigLoaded"):b.addListener("serverConfigLoaded",c)}}}(),UE.ajax=function(){function a(a){var b=[];for(var c in a)if("method"!=c&&"timeout"!=c&&"async"!=c&&"dataType"!=c&&"callback"!=c&&void 0!=a[c]&&null!=a[c])if("function"!=(typeof a[c]).toLowerCase()&&"object"!=(typeof a[c]).toLowerCase())b.push(encodeURIComponent(c)+"="+encodeURIComponent(a[c]));else if(utils.isArray(a[c]))for(var d=0;d/gi,"").replace(/]*>[\s\S]*?.<\/v:shape>/gi,function(a){if(browser.opera)return"";try{if(/Bitmap/i.test(a))return"";var c=a.match(/width:([ \d.]*p[tx])/i)[1],d=a.match(/height:([ \d.]*p[tx])/i)[1],e=a.match(/src=\s*"([^"]*)"/i)[1];return''}catch(f){return""}}).replace(/<\/?div[^>]*>/g,"").replace(/v:\w+=(["']?)[^'"]+\1/g,"").replace(/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|xml|meta|link|style|\w+:\w+)(?=[\s\/>]))[^>]*>/gi,"").replace(/

    ]*class="?MsoHeading"?[^>]*>(.*?)<\/p>/gi,"

    $1

    ").replace(/\s+(class|lang|align)\s*=\s*(['"]?)([\w-]+)\2/gi,function(a,b,c,d){return"class"==b&&"MsoListParagraph"==d?a:""}).replace(/<(font|span)[^>]*>(\s*)<\/\1>/gi,function(a,b,c){return c.replace(/[\t\r\n ]+/g," ")}).replace(/(<[a-z][^>]*)\sstyle=(["'])([^\2]*?)\2/gi,function(a,c,d,e){for(var f,g=[],h=e.replace(/^\s+|\s+$/,"").replace(/'/g,"'").replace(/"/gi,"'").replace(/[\d.]+(cm|pt)/g,function(a){return utils.transUnitToPx(a)}).split(/;\s*/g),i=0;f=h[i];i++){var j,k,l=f.split(":");if(2==l.length){if(j=l[0].toLowerCase(),k=l[1].toLowerCase(),/^(background)\w*/.test(j)&&0==k.replace(/(initial|\s)/g,"").length||/^(margin)\w*/.test(j)&&/^0\w+$/.test(k))continue;switch(j){case"mso-padding-alt":case"mso-padding-top-alt":case"mso-padding-right-alt":case"mso-padding-bottom-alt":case"mso-padding-left-alt":case"mso-margin-alt":case"mso-margin-top-alt":case"mso-margin-right-alt":case"mso-margin-bottom-alt":case"mso-margin-left-alt":case"mso-height":case"mso-width":case"mso-vertical-align-alt":/1&&(a(h,j,!0),b(h,j)),c(k,h,i,j);break;case"text":d(g,h);break;case"element":e(g,h,i,j);break;case"comment":f(g,h,i)}return h}function d(a,b){"pre"==a.parentNode.tagName?b.push(a.data):b.push(l[a.parentNode.tagName]?utils.html(a.data):a.data.replace(/[ ]{2}/g,"  "))}function e(d,e,f,g){var h="";if(d.attrs){h=[];var i=d.attrs;for(var j in i)h.push(j+(void 0!==i[j]?'="'+(k[j]?utils.html(i[j]).replace(/["]/g,function(a){return"""}):utils.unhtml(i[j]))+'"':""));h=h.join(" ")}if(e.push("<"+d.tagName+(h?" "+h:"")+(dtd.$empty[d.tagName]?"/":"")+">"),f&&!dtd.$inlineWithA[d.tagName]&&"pre"!=d.tagName&&d.children&&d.children.length&&(g=a(e,g,!0),b(e,g)),d.children&&d.children.length)for(var l,m=0;l=d.children[m++];)f&&"element"==l.type&&!dtd.$inlineWithA[l.tagName]&&m>1&&(a(e,g),b(e,g)),c(l,e,f,g);dtd.$empty[d.tagName]||(f&&!dtd.$inlineWithA[d.tagName]&&"pre"!=d.tagName&&d.children&&d.children.length&&(g=a(e,g),b(e,g)),e.push(""))}function f(a,b){b.push("")}function g(a,b){var c;if("element"==a.type&&a.getAttr("id")==b)return a;if(a.children&&a.children.length)for(var d,e=0;d=a.children[e++];)if(c=g(d,b))return c}function h(a,b,c){if("element"==a.type&&a.tagName==b&&c.push(a),a.children&&a.children.length)for(var d,e=0;d=a.children[e++];)h(d,b,c)}function i(a,b){if(a.children&&a.children.length)for(var c,d=0;c=a.children[d];)i(c,b),c.parentNode&&(c.children&&c.children.length&&b(c),c.parentNode&&d++);else b(a)}var j=UE.uNode=function(a){this.type=a.type,this.data=a.data,this.tagName=a.tagName,this.parentNode=a.parentNode,this.attrs=a.attrs||{},this.children=a.children},k={href:1,src:1,_src:1,_href:1,cdata_data:1},l={style:1,script:1},m=" ",n="\n";j.createElement=function(a){return/[<>]/.test(a)?UE.htmlparser(a).children[0]:new j({type:"element",children:[],tagName:a})},j.createText=function(a,b){return new UE.uNode({type:"text",data:b?a:utils.unhtml(a||"")})},j.prototype={toHtml:function(a){var b=[];return c(this,b,a,0),b.join("")},innerHTML:function(a){if("element"!=this.type||dtd.$empty[this.tagName])return this;if(utils.isString(a)){if(this.children)for(var b,c=0;b=this.children[c++];)b.parentNode=null;this.children=[];for(var b,d=UE.htmlparser(a),c=0;b=d.children[c++];)this.children.push(b),b.parentNode=this;return this}var d=new UE.uNode({type:"root",children:this.children});return d.toHtml()},innerText:function(a,b){if("element"!=this.type||dtd.$empty[this.tagName])return this;if(a){if(this.children)for(var c,d=0;c=this.children[d++];)c.parentNode=null;return this.children=[],this.appendChild(j.createText(a,b)),this}return this.toHtml().replace(/<[^>]+>/g,"")},getData:function(){return"element"==this.type?"":this.data},firstChild:function(){return this.children?this.children[0]:null},lastChild:function(){return this.children?this.children[this.children.length-1]:null},previousSibling:function(){for(var a,b=this.parentNode,c=0;a=b.children[c];c++)if(a===this)return 0==c?null:b.children[c-1]},nextSibling:function(){for(var a,b=this.parentNode,c=0;a=b.children[c++];)if(a===this)return b.children[c]},replaceChild:function(a,b){if(this.children){a.parentNode&&a.parentNode.removeChild(a);for(var c,d=0;c=this.children[d];d++)if(c===b)return this.children.splice(d,1,a),b.parentNode=null,a.parentNode=this,a}},appendChild:function(a){if("root"==this.type||"element"==this.type&&!dtd.$empty[this.tagName]){this.children||(this.children=[]),a.parentNode&&a.parentNode.removeChild(a);for(var b,c=0;b=this.children[c];c++)if(b===a){this.children.splice(c,1);break}return this.children.push(a),a.parentNode=this,a}},insertBefore:function(a,b){if(this.children){a.parentNode&&a.parentNode.removeChild(a);for(var c,d=0;c=this.children[d];d++)if(c===b)return this.children.splice(d,0,a),a.parentNode=this,a}},insertAfter:function(a,b){if(this.children){a.parentNode&&a.parentNode.removeChild(a);for(var c,d=0;c=this.children[d];d++)if(c===b)return this.children.splice(d+1,0,a),a.parentNode=this,a}},removeChild:function(a,b){if(this.children)for(var c,d=0;c=this.children[d];d++)if(c===a){if(this.children.splice(d,1),c.parentNode=null,b&&c.children&&c.children.length)for(var e,f=0;e=c.children[f];f++)this.children.splice(d+f,0,e),e.parentNode=this;return c}},getAttr:function(a){return this.attrs&&this.attrs[a.toLowerCase()]},setAttr:function(a,b){if(!a)return void delete this.attrs;if(this.attrs||(this.attrs={}),utils.isObject(a))for(var c in a)a[c]?this.attrs[c.toLowerCase()]=a[c]:delete this.attrs[c];else b?this.attrs[a.toLowerCase()]=b:delete this.attrs[a]},getIndex:function(){for(var a,b=this.parentNode,c=0;a=b.children[c];c++)if(a===this)return c;return-1},getNodeById:function(a){var b;if(this.children&&this.children.length)for(var c,d=0;c=this.children[d++];)if(b=g(c,a))return b},getNodesByTagName:function(a){a=utils.trim(a).replace(/[ ]{2,}/g," ").split(" ");var b=[],c=this;return utils.each(a,function(a){if(c.children&&c.children.length)for(var d,e=0;d=c.children[e++];)h(d,a,b)}),b},getStyle:function(a){var b=this.getAttr("style");if(!b)return"";var c=new RegExp("(^|;)\\s*"+a+":([^;]+)","i"),d=b.match(c);return d&&d[0]?d[2]:""},setStyle:function(a,b){function c(a,b){var c=new RegExp("(^|;)\\s*"+a+":([^;]+;?)","gi");d=d.replace(c,"$1"),b&&(d=a+":"+utils.unhtml(b)+";"+d)}var d=this.getAttr("style");if(d||(d=""),utils.isObject(a))for(var e in a)c(e,a[e]);else c(a,b);this.setAttr("style",utils.trim(d))},traversal:function(a){return this.children&&this.children.length&&i(this,a),this}}}();var htmlparser=UE.htmlparser=function(a,b){function c(a,b){if(m[a.tagName]){var c=k.createElement(m[a.tagName]);a.appendChild(c),c.appendChild(k.createText(b)),a=c}else a.appendChild(k.createText(b))}function d(a,b,c){var e;if(e=l[b]){for(var f,h=a;"root"!=h.type;){if(utils.isArray(e)?utils.indexOf(e,h.tagName)!=-1:e==h.tagName){a=h,f=!0;break}h=h.parentNode}f||(a=d(a,utils.isArray(e)?e[0]:e))}var i=new k({parentNode:a,type:"element",tagName:b.toLowerCase(),children:dtd.$empty[b]?null:[]});if(c){for(var m,n={};m=g.exec(c);)n[m[1].toLowerCase()]=j[m[1].toLowerCase()]?m[2]||m[3]||m[4]:utils.unhtml(m[2]||m[3]||m[4]);i.attrs=n}return a.children.push(i),dtd.$empty[b]?a:i}function e(a,b){a.children.push(new k({type:"comment",data:b,parentNode:a}))}var f=/<(?:(?:\/([^>]+)>)|(?:!--([\S|\s]*?)-->)|(?:([^\s\/<>]+)\s*((?:(?:"[^"]*")|(?:'[^']*')|[^"'<>])*)\/?>))/g,g=/([\w\-:.]+)(?:(?:\s*=\s*(?:(?:"([^"]*)")|(?:'([^']*)')|([^\s>]+)))|(?=\s|$))/g,h={b:1,code:1,i:1,u:1,strike:1,s:1,tt:1,strong:1,q:1,samp:1,em:1,span:1,sub:1,img:1,sup:1,font:1,big:1,small:1,iframe:1,a:1,br:1,pre:1};a=a.replace(new RegExp(domUtils.fillChar,"g"),""),b||(a=a.replace(new RegExp("[\\r\\t\\n"+(b?"":" ")+"]*]*)>[\\r\\t\\n"+(b?"":" ")+"]*","g"),function(a,c){return c&&h[c.toLowerCase()]?a.replace(/(^[\n\r]+)|([\n\r]+$)/g,""):a.replace(new RegExp("^[\\r\\n"+(b?"":" ")+"]+"),"").replace(new RegExp("[\\r\\n"+(b?"":" ")+"]+$"),"")}));for(var i,j={href:1,src:1},k=UE.uNode,l={td:"tr",tr:["tbody","thead","tfoot"],tbody:"table",th:"tr",thead:"table",tfoot:"table",caption:"table",li:["ul","ol"],dt:"dl",dd:"dl",option:"select"},m={ol:"li",ul:"li"},n=0,o=0,p=new k({type:"root",children:[]}),q=p;i=f.exec(a);){n=i.index;try{if(n>o&&c(q,a.slice(o,n)),i[3])dtd.$cdata[q.tagName]?c(q,i[0]):q=d(q,i[3].toLowerCase(),i[4]);else if(i[1]){if("root"!=q.type)if(dtd.$cdata[q.tagName]&&!dtd.$cdata[i[1]])c(q,i[0]);else{for(var r=q;"element"==q.type&&q.tagName!=i[1].toLowerCase();)if(q=q.parentNode,"root"==q.type)throw q=r,"break";q=q.parentNode}}else i[2]&&e(q,i[2])}catch(s){}o=f.lastIndex}return o");break;case"div":if(b.getAttr("cdata_tag"))break;if(d=b.getAttr("class"),d&&/^line number\d+/.test(d))break;if(!e)break;for(var f,g=UE.uNode.createElement("p");f=b.firstChild();)"text"!=f.type&&UE.dom.dtd.$block[f.tagName]?g.firstChild()?(b.parentNode.insertBefore(g,b),g=UE.uNode.createElement("p")):b.parentNode.insertBefore(f,b):g.appendChild(f);g.firstChild()&&b.parentNode.insertBefore(g,b),b.parentNode.removeChild(b);break;case"dl":b.tagName="ul";break;case"dt":case"dd":b.tagName="li";break;case"li":var h=b.getAttr("class");h&&/list\-/.test(h)||b.setAttr();var i=b.getNodesByTagName("ol ul");UE.utils.each(i,function(a){b.parentNode.insertAfter(a,b)});break;case"td":case"th":case"caption":b.children&&b.children.length||b.appendChild(browser.ie11below?UE.uNode.createText(" "):UE.uNode.createElement("br"));break;case"table":a.options.disabledTableInTable&&c(b)&&(b.parentNode.insertBefore(UE.uNode.createText(b.innerText()),b),b.parentNode.removeChild(b))}}})}),a.addOutputRule(function(b){var c;b.traversal(function(b){if("element"==b.type){if(a.options.autoClearEmptyNode&&dtd.$inline[b.tagName]&&!dtd.$empty[b.tagName]&&(!b.attrs||utils.isEmptyObject(b.attrs)))return void(b.firstChild()?"span"!=b.tagName||b.attrs&&!utils.isEmptyObject(b.attrs)||b.parentNode.removeChild(b,!0):b.parentNode.removeChild(b));switch(b.tagName){case"div":(c=b.getAttr("cdata_tag"))&&(b.tagName=c,b.appendChild(UE.uNode.createText(b.getAttr("cdata_data"))),b.setAttr({cdata_tag:"",cdata_data:"",_ue_custom_node_:""}));break;case"a":(c=b.getAttr("_href"))&&b.setAttr({href:utils.html(c),_href:""});break;case"span":c=b.getAttr("id"),c&&/^_baidu_bookmark_/i.test(c)&&b.parentNode.removeChild(b);break;case"img":(c=b.getAttr("_src"))&&b.setAttr({src:b.getAttr("_src"),_src:""})}}})})},UE.commands.inserthtml={execCommand:function(a,b,c){var d,e,f=this;if(b&&f.fireEvent("beforeinserthtml",b)!==!0){if(d=f.selection.getRange(),e=d.document.createElement("div"),e.style.display="inline",!c){var g=UE.htmlparser(b);f.options.filterRules&&UE.filterNode(g,f.options.filterRules),f.filterInputRule(g),b=g.toHtml()}if(e.innerHTML=utils.trim(b),!d.collapsed){var h=d.startContainer;if(domUtils.isFillChar(h)&&d.setStartBefore(h),h=d.endContainer,domUtils.isFillChar(h)&&d.setEndAfter(h),d.txtToElmBoundary(),d.endContainer&&1==d.endContainer.nodeType&&(h=d.endContainer.childNodes[d.endOffset],h&&domUtils.isBr(h)&&d.setEndAfter(h)),0==d.startOffset&&(h=d.startContainer,domUtils.isBoundaryNode(h,"firstChild")&&(h=d.endContainer,d.endOffset==(3==h.nodeType?h.nodeValue.length:h.childNodes.length)&&domUtils.isBoundaryNode(h,"lastChild")&&(f.body.innerHTML="

    "+(browser.ie?"":"
    ")+"

    ",d.setStart(f.body.firstChild,0).collapse(!0)))),!d.collapsed&&d.deleteContents(),1==d.startContainer.nodeType){var i,j=d.startContainer.childNodes[d.startOffset];if(j&&domUtils.isBlockElm(j)&&(i=j.previousSibling)&&domUtils.isBlockElm(i)){for(d.setEnd(i,i.childNodes.length).collapse();j.firstChild;)i.appendChild(j.firstChild);domUtils.remove(j)}}}var j,k,i,l,m,n=0;d.inFillChar()&&(j=d.startContainer,domUtils.isFillChar(j)?(d.setStartBefore(j).collapse(!0),domUtils.remove(j)):domUtils.isFillChar(j,!0)&&(j.nodeValue=j.nodeValue.replace(fillCharReg,""),d.startOffset--,d.collapsed&&d.collapse(!0)));var o=domUtils.findParentByTagName(d.startContainer,"li",!0);if(o){for(var p,q;j=e.firstChild;){for(;j&&(3==j.nodeType||!domUtils.isBlockElm(j)||"HR"==j.tagName);)p=j.nextSibling,d.insertNode(j).collapse(),q=j,j=p;if(j)if(/^(ol|ul)$/i.test(j.tagName)){for(;j.firstChild;)q=j.firstChild,domUtils.insertAfter(o,j.firstChild),o=o.nextSibling;domUtils.remove(j)}else{var r;p=j.nextSibling,r=f.document.createElement("li"),domUtils.insertAfter(o,r),r.appendChild(j),q=j,j=p,o=r}}o=domUtils.findParentByTagName(d.startContainer,"li",!0),domUtils.isEmptyBlock(o)&&domUtils.remove(o),q&&d.setStartAfter(q).collapse(!0).select(!0)}else{for(;j=e.firstChild;){if(n){for(var s=f.document.createElement("p");j&&(3==j.nodeType||!dtd.$block[j.tagName]);)m=j.nextSibling,s.appendChild(j),j=m;s.firstChild&&(j=s)}if(d.insertNode(j),m=j.nextSibling,!n&&j.nodeType==domUtils.NODE_ELEMENT&&domUtils.isBlockElm(j)&&(k=domUtils.findParent(j,function(a){return domUtils.isBlockElm(a)}),k&&"body"!=k.tagName.toLowerCase()&&(!dtd[k.tagName][j.nodeName]||j.parentNode!==k))){if(dtd[k.tagName][j.nodeName])for(l=j.parentNode;l!==k;)i=l,l=l.parentNode;else i=k;domUtils.breakParent(j,i||l);var i=j.previousSibling;domUtils.trimWhiteTextNode(i),i.childNodes.length||domUtils.remove(i),!browser.ie&&(p=j.nextSibling)&&domUtils.isBlockElm(p)&&p.lastChild&&!domUtils.isBr(p.lastChild)&&p.appendChild(f.document.createElement("br")),n=1}var p=j.nextSibling;if(!e.firstChild&&p&&domUtils.isBlockElm(p)){d.setStart(p,0).collapse(!0);break}d.setEndAfter(j).collapse()}if(j=d.startContainer,m&&domUtils.isBr(m)&&domUtils.remove(m),domUtils.isBlockElm(j)&&domUtils.isEmptyNode(j))if(m=j.nextSibling)domUtils.remove(j),1==m.nodeType&&dtd.$block[m.tagName]&&d.setStart(m,0).collapse(!0).shrinkBoundary();else try{j.innerHTML=browser.ie?domUtils.fillChar:"
    "}catch(t){d.setStartBefore(j),domUtils.remove(j)}try{d.select(!0)}catch(t){}}setTimeout(function(){d=f.selection.getRange(),d.scrollToView(f.autoHeightEnabled,f.autoHeightEnabled?domUtils.getXY(f.iframe).y:0),f.fireEvent("afterinserthtml",b)},200)}}},UE.plugins.autotypeset=function(){function a(a,b){return a&&3!=a.nodeType?domUtils.isBr(a)?1:a&&a.parentNode&&l[a.tagName.toLowerCase()]?g&&g.contains(a)||a.getAttribute("pagebreak")?0:b?!domUtils.isEmptyBlock(a):domUtils.isEmptyBlock(a,new RegExp("[\\s"+domUtils.fillChar+"]","g")):void 0:0}function b(a){a.style.cssText||(domUtils.removeAttributes(a,["style"]),"span"==a.tagName.toLowerCase()&&domUtils.hasNoAttributes(a)&&domUtils.remove(a,!0))}function c(c,f){var h,l=this;if(f){if(!i.pasteFilter)return;h=l.document.createElement("div"),h.innerHTML=f.html}else h=l.document.body;for(var m,n=domUtils.getElementsByTagName(h,"*"),o=0;m=n[o++];)if(l.fireEvent("excludeNodeinautotype",m)!==!0){if(i.clearFontSize&&m.style.fontSize&&(domUtils.removeStyle(m,"font-size"),b(m)),i.clearFontFamily&&m.style.fontFamily&&(domUtils.removeStyle(m,"font-family"),b(m)),a(m)){if(i.mergeEmptyline)for(var p,q=m.nextSibling,r=domUtils.isBr(m);a(q)&&(p=q,q=p.nextSibling,!r||q&&(!q||domUtils.isBr(q)));)domUtils.remove(p);if(i.removeEmptyline&&domUtils.inDoc(m,h)&&!k[m.parentNode.tagName.toLowerCase()]){if(domUtils.isBr(m)&&(q=m.nextSibling,q&&!domUtils.isBr(q)))continue;domUtils.remove(m);continue}}if(a(m,!0)&&"SPAN"!=m.tagName&&(i.indent&&(m.style.textIndent=i.indentValue),i.textAlign&&(m.style.textAlign=i.textAlign)),i.removeClass&&m.className&&!j[m.className.toLowerCase()]){if(g&&g.contains(m))continue;domUtils.removeAttributes(m,["class"])}if(i.imageBlockLine&&"img"==m.tagName.toLowerCase()&&!m.getAttribute("emotion"))if(f){var s=m;switch(i.imageBlockLine){case"left":case"right":case"none":for(var p,t,q,u=s.parentNode;dtd.$inline[u.tagName]||"A"==u.tagName;)u=u.parentNode;if(p=u,"P"==p.tagName&&"center"==domUtils.getStyle(p,"text-align")&&!domUtils.isBody(p)&&1==domUtils.getChildCount(p,function(a){return!domUtils.isBr(a)&&!domUtils.isWhitespace(a)}))if(t=p.previousSibling,q=p.nextSibling,t&&q&&1==t.nodeType&&1==q.nodeType&&t.tagName==q.tagName&&domUtils.isBlockElm(t)){for(t.appendChild(p.firstChild);q.firstChild;)t.appendChild(q.firstChild);domUtils.remove(p),domUtils.remove(q)}else domUtils.setStyle(p,"text-align","");domUtils.setStyle(s,"float",i.imageBlockLine);break;case"center":if("center"!=l.queryCommandValue("imagefloat")){for(u=s.parentNode,domUtils.setStyle(s,"float","none"),p=s;u&&1==domUtils.getChildCount(u,function(a){return!domUtils.isBr(a)&&!domUtils.isWhitespace(a)})&&(dtd.$inline[u.tagName]||"A"==u.tagName);)p=u,u=u.parentNode;var v=l.document.createElement("p");domUtils.setAttributes(v,{style:"text-align:center"}),p.parentNode.insertBefore(v,p),v.appendChild(p),domUtils.setStyle(p,"float","")}}}else{var w=l.selection.getRange();w.selectNode(m).select(),l.execCommand("imagefloat",i.imageBlockLine)}i.removeEmptyNode&&i.removeTagNames[m.tagName.toLowerCase()]&&domUtils.hasNoAttributes(m)&&domUtils.isEmptyBlock(m)&&domUtils.remove(m)}if(i.tobdc){var x=UE.htmlparser(h.innerHTML);x.traversal(function(a){"text"==a.type&&(a.data=e(a.data))}),h.innerHTML=x.toHtml()}if(i.bdc2sb){var x=UE.htmlparser(h.innerHTML);x.traversal(function(a){"text"==a.type&&(a.data=d(a.data))}),h.innerHTML=x.toHtml()}f&&(f.html=h.innerHTML)}function d(a){for(var b="",c=0;c=65281&&d<=65373?String.fromCharCode(a.charCodeAt(c)-65248):12288==d?String.fromCharCode(a.charCodeAt(c)-12288+32):a.charAt(c)}return b}function e(a){a=utils.html(a);for(var b="",c=0;c0?e.substring(e.indexOf(d.options.imagePath),e.length-1).replace(/"|\(|\)/gi,""):"none"!=e?e.replace(/url\("?|"?\)/gi,""):"";var g=' ",b.push(g)},aftersetcontent:function(){0==c&&b()}},inputRule:function(d){c=!1,utils.each(d.getNodesByTagName("p"),function(d){var e=d.getAttr("data-background");e&&(c=!0,b(a(e)),d.parentNode.removeChild(d))})},outputRule:function(a){var b=this,c=(utils.cssRule(e,b.document)||"").replace(/[\n\r]+/g,"").match(f);c&&a.appendChild(UE.uNode.createElement('


    '))},commands:{background:{execCommand:function(a,c){b(c)},queryCommandValue:function(){var b=this,c=(utils.cssRule(e,b.document)||"").replace(/[\n\r]+/g,"").match(f);return c?a(c[1]):null},notNeedUndo:!0}}}}),UE.commands.imagefloat={execCommand:function(a,b){var c=this,d=c.selection.getRange();if(!d.collapsed){var e=d.getClosedNode();if(e&&"IMG"==e.tagName)switch(b){case"left":case"right":case"none":for(var f,g,h,i=e.parentNode;dtd.$inline[i.tagName]||"A"==i.tagName;)i=i.parentNode;if(f=i,"P"==f.tagName&&"center"==domUtils.getStyle(f,"text-align")){if(!domUtils.isBody(f)&&1==domUtils.getChildCount(f,function(a){return!domUtils.isBr(a)&&!domUtils.isWhitespace(a)}))if(g=f.previousSibling,h=f.nextSibling,g&&h&&1==g.nodeType&&1==h.nodeType&&g.tagName==h.tagName&&domUtils.isBlockElm(g)){for(g.appendChild(f.firstChild);h.firstChild;)g.appendChild(h.firstChild);domUtils.remove(f),domUtils.remove(h)}else domUtils.setStyle(f,"text-align","");d.selectNode(e).select()}domUtils.setStyle(e,"float","none"==b?"":b),"none"==b&&domUtils.removeAttributes(e,"align");break;case"center":if("center"!=c.queryCommandValue("imagefloat")){for(i=e.parentNode,domUtils.setStyle(e,"float",""),domUtils.removeAttributes(e,"align"),f=e;i&&1==domUtils.getChildCount(i,function(a){return!domUtils.isBr(a)&&!domUtils.isWhitespace(a)})&&(dtd.$inline[i.tagName]||"A"==i.tagName);)f=i,i=i.parentNode;d.setStartBefore(f).setCursor(!1),i=c.document.createElement("div"),i.appendChild(f),domUtils.setStyle(f,"float",""),c.execCommand("insertHtml",'

    '+i.innerHTML+"

    "),f=c.document.getElementById("_img_parent_tmp"),f.removeAttribute("id"),f=f.firstChild,d.selectNode(f).select(),h=f.parentNode.nextSibling,h&&domUtils.isEmptyNode(h)&&domUtils.remove(h)}}}},queryCommandValue:function(){var a,b,c=this.selection.getRange();return c.collapsed?"none":(a=c.getClosedNode(),a&&1==a.nodeType&&"IMG"==a.tagName?(b=domUtils.getComputedStyle(a,"float")||a.getAttribute("align"),"none"==b&&(b="center"==domUtils.getComputedStyle(a.parentNode,"text-align")?"center":b),{left:1,right:1,center:1}[b]?b:"none"):"none")},queryCommandState:function(){var a,b=this.selection.getRange();return b.collapsed?-1:(a=b.getClosedNode(),a&&1==a.nodeType&&"IMG"==a.tagName?0:-1)}},UE.commands.insertimage={execCommand:function(a,b){function c(a){utils.each("width,height,border,hspace,vspace".split(","),function(b){a[b]&&(a[b]=parseInt(a[b],10)||0)}),utils.each("src,_src".split(","),function(b){a[b]&&(a[b]=utils.unhtmlForUrl(a[b]))}),utils.each("title,alt".split(","),function(b){a[b]&&(a[b]=utils.unhtml(a[b]))})}if(b=utils.isArray(b)?b:[b],b.length){var d=this,e=d.selection.getRange(),f=e.getClosedNode();if(d.fireEvent("beforeinsertimage",b)!==!0){if(!f||!/img/i.test(f.tagName)||"edui-faked-video"==f.className&&f.className.indexOf("edui-upload-video")==-1||f.getAttribute("word_img")){var g,h=[],i="";if(g=b[0],1==b.length)c(g),i=''+g.alt+'","center"==g.floatStyle&&(i='

    '+i+"

    "),h.push(i);else for(var j=0;g=b[j++];)c(g),i="

    ",h.push(i);d.execCommand("insertHtml",h.join(""))}else{var k=b.shift(),l=k.floatStyle;delete k.floatStyle,domUtils.setAttributes(f,k),d.execCommand("imagefloat",l),b.length>0&&(e.setStartAfter(f).setCursor(!1,!0),d.execCommand("insertimage",b))}d.fireEvent("afterinsertimage",b)}}}},UE.plugins.justify=function(){var a=domUtils.isBlockElm,b={left:1,right:1,center:1,justify:1},c=function(b,c){var d=b.createBookmark(),e=function(a){return 1==a.nodeType?"br"!=a.tagName.toLowerCase()&&!domUtils.isBookmarkNode(a):!domUtils.isWhitespace(a)};b.enlarge(!0);for(var f,g=b.createBookmark(),h=domUtils.getNextDomNode(g.start,!1,e),i=b.cloneRange();h&&!(domUtils.getPosition(h,g.end)&domUtils.POSITION_FOLLOWING);)if(3!=h.nodeType&&a(h))h=domUtils.getNextDomNode(h,!0,e);else{for(i.setStartBefore(h);h&&h!==g.end&&!a(h);)f=h,h=domUtils.getNextDomNode(h,!1,null,function(b){return!a(b)});i.setEndAfter(f);var j=i.getCommonAncestor();if(!domUtils.isBody(j)&&a(j))domUtils.setStyles(j,utils.isString(c)?{"text-align":c}:c),h=j;else{var k=b.document.createElement("p");domUtils.setStyles(k,utils.isString(c)?{"text-align":c}:c);var l=i.extractContents();k.appendChild(l),i.insertNode(k),h=k}h=domUtils.getNextDomNode(h,!1,e)}return b.moveToBookmark(g).moveToBookmark(d)};UE.commands.justify={execCommand:function(a,b){var d,e=this.selection.getRange();return e.collapsed&&(d=this.document.createTextNode("p"),e.insertNode(d)),c(e,b),d&&(e.setStartBefore(d).collapse(!0),domUtils.remove(d)),e.select(),!0},queryCommandValue:function(){var a=this.selection.getStart(),c=domUtils.getComputedStyle(a,"text-align");return b[c]?c:"left"},queryCommandState:function(){var a=this.selection.getStart(),b=a&&domUtils.findParentByTagName(a,["td","th","caption"],!0);return b?-1:0}}},UE.plugins.font=function(){function a(a){for(var b;(b=a.parentNode)&&"SPAN"==b.tagName&&1==domUtils.getChildCount(b,function(a){return!domUtils.isBookmarkNode(a)&&!domUtils.isBr(a)});)b.style.cssText+=a.style.cssText,domUtils.remove(a,!0),a=b}function b(a,b,c){if(g[b]&&(a.adjustmentBoundary(),!a.collapsed&&1==a.startContainer.nodeType)){var d=a.startContainer.childNodes[a.startOffset];if(d&&domUtils.isTagNode(d,"span")){var e=a.createBookmark();utils.each(domUtils.getElementsByTagName(d,"span"),function(a){a.parentNode&&!domUtils.isBookmarkNode(a)&&("backcolor"==b&&domUtils.getComputedStyle(a,"background-color").toLowerCase()===c||(domUtils.removeStyle(a,g[b]),0==a.style.cssText.replace(/^\s+$/,"").length&&domUtils.remove(a,!0)))}),a.moveToBookmark(e)}}}function c(c,d,e){var f,g=c.collapsed,h=c.createBookmark();if(g)for(f=h.start.parentNode;dtd.$inline[f.tagName];)f=f.parentNode;else f=domUtils.getCommonAncestor(h.start,h.end);utils.each(domUtils.getElementsByTagName(f,"span"),function(b){if(b.parentNode&&!domUtils.isBookmarkNode(b)){if(/\s*border\s*:\s*none;?\s*/i.test(b.style.cssText))return void(/^\s*border\s*:\s*none;?\s*$/.test(b.style.cssText)?domUtils.remove(b,!0):domUtils.removeStyle(b,"border"));if(/border/i.test(b.style.cssText)&&"SPAN"==b.parentNode.tagName&&/border/i.test(b.parentNode.style.cssText)&&(b.style.cssText=b.style.cssText.replace(/border[^:]*:[^;]+;?/gi,"")),"fontborder"!=d||"none"!=e)for(var c=b.nextSibling;c&&1==c.nodeType&&"SPAN"==c.tagName;)if(domUtils.isBookmarkNode(c)&&"fontborder"==d)b.appendChild(c),c=b.nextSibling;else{if(c.style.cssText==b.style.cssText&&(domUtils.moveChild(c,b),domUtils.remove(c)),b.nextSibling===c)break;c=b.nextSibling}if(a(b),browser.ie&&browser.version>8){var f=domUtils.findParent(b,function(a){return"SPAN"==a.tagName&&/background-color/.test(a.style.cssText)});f&&!/background-color/.test(b.style.cssText)&&(b.style.backgroundColor=f.style.backgroundColor)}}}),c.moveToBookmark(h),b(c,d,e)}var d=this,e={forecolor:"color",backcolor:"background-color",fontsize:"font-size",fontfamily:"font-family",underline:"text-decoration",strikethrough:"text-decoration",fontborder:"border"},f={underline:1,strikethrough:1,fontborder:1},g={forecolor:"color",backcolor:"background-color",fontsize:"font-size",fontfamily:"font-family"};d.setOpt({fontfamily:[{name:"songti",val:"宋体,SimSun"},{name:"yahei",val:"微软雅黑,Microsoft YaHei"},{name:"kaiti",val:"楷体,楷体_GB2312, SimKai"},{name:"heiti",val:"黑体, SimHei"},{name:"lishu",val:"隶书, SimLi"},{name:"andaleMono",val:"andale mono"},{name:"arial",val:"arial, helvetica,sans-serif"},{name:"arialBlack",val:"arial black,avant garde"},{name:"comicSansMs",val:"comic sans ms"},{name:"impact",val:"impact,chicago"},{name:"timesNewRoman",val:"times new roman"}],fontsize:[10,11,12,14,16,18,20,24,36]}),d.addInputRule(function(a){utils.each(a.getNodesByTagName("u s del font strike"),function(a){if("font"==a.tagName){var b=[];for(var c in a.attrs)switch(c){case"size":b.push("font-size:"+({1:"10",2:"12",3:"16",4:"18",5:"24",6:"32",7:"48"}[a.attrs[c]]||a.attrs[c])+"px");break;case"color":b.push("color:"+a.attrs[c]);break;case"face":b.push("font-family:"+a.attrs[c]);break;case"style":b.push(a.attrs[c])}a.attrs={style:b.join(";")}}else{var d="u"==a.tagName?"underline":"line-through";a.attrs={style:(a.getAttr("style")||"")+"text-decoration:"+d+";"}}a.tagName="span"})});for(var h in e)!function(a,b){UE.commands[a]={execCommand:function(d,e){e=e||(this.queryCommandState(d)?"none":"underline"==d?"underline":"fontborder"==d?"1px solid #000":"line-through");var g,h=this,i=this.selection.getRange();if("default"==e)i.collapsed&&(g=h.document.createTextNode("font"),i.insertNode(g).select()),h.execCommand("removeFormat","span,a",b),g&&(i.setStartBefore(g).collapse(!0),domUtils.remove(g)),c(i,d,e),i.select();else if(i.collapsed){var j=domUtils.findParentByTagName(i.startContainer,"span",!0);if(g=h.document.createTextNode("font"),!j||j.children.length||j[browser.ie?"innerText":"textContent"].replace(fillCharReg,"").length){if(i.insertNode(g),i.selectNode(g).select(),j=i.document.createElement("span"),f[a]){if(domUtils.findParentByTagName(g,"a",!0))return i.setStartBefore(g).setCursor(),void domUtils.remove(g);h.execCommand("removeFormat","span,a",b)}if(j.style.cssText=b+":"+e,g.parentNode.insertBefore(j,g),!browser.ie||browser.ie&&9==browser.version)for(var k=j.parentNode;!domUtils.isBlockElm(k);)"SPAN"==k.tagName&&(j.style.cssText=k.style.cssText+";"+j.style.cssText),k=k.parentNode;opera?setTimeout(function(){i.setStart(j,0).collapse(!0),c(i,d,e),i.select()}):(i.setStart(j,0).collapse(!0),c(i,d,e),i.select())}else i.insertNode(g),f[a]&&(i.selectNode(g).select(),h.execCommand("removeFormat","span,a",b,null),j=domUtils.findParentByTagName(g,"span",!0),i.setStartBefore(g)),j&&(j.style.cssText+=";"+b+":"+e),i.collapse(!0).select();domUtils.remove(g)}else f[a]&&h.queryCommandValue(a)&&h.execCommand("removeFormat","span,a",b),i=h.selection.getRange(),i.applyInlineStyle("span",{style:b+":"+e}),c(i,d,e),i.select();return!0},queryCommandValue:function(a){var c=this.selection.getStart();if("underline"==a||"strikethrough"==a){for(var d,e=c;e&&!domUtils.isBlockElm(e)&&!domUtils.isBody(e);){if(1==e.nodeType&&(d=domUtils.getComputedStyle(e,b),"none"!=d))return d;e=e.parentNode}return"none"}if("fontborder"==a){for(var f,g=c;g&&dtd.$inline[g.tagName];){if((f=domUtils.getComputedStyle(g,"border"))&&/1px/.test(f)&&/solid/.test(f))return f;g=g.parentNode}return""}if("FontSize"==a){var h=domUtils.getComputedStyle(c,b),g=/^([\d\.]+)(\w+)$/.exec(h);return g?Math.floor(g[1])+g[2]:h}return domUtils.getComputedStyle(c,b)},queryCommandState:function(a){if(!f[a])return 0;var b=this.queryCommandValue(a);return"fontborder"==a?/1px/.test(b)&&/solid/.test(b):"underline"==a?/underline/.test(b):/line\-through/.test(b)}}}(h,e[h])},UE.plugins.link=function(){function a(a){var b=a.startContainer,c=a.endContainer;(b=domUtils.findParentByTagName(b,"a",!0))&&a.setStartBefore(b),(c=domUtils.findParentByTagName(c,"a",!0))&&a.setEndAfter(c)}function b(b,c,d){var e=b.cloneRange(),f=d.queryCommandValue("link");a(b=b.adjustmentBoundary());var g=b.startContainer;if(1==g.nodeType&&f&&(g=g.childNodes[b.startOffset],g&&1==g.nodeType&&"A"==g.tagName&&/^(?:https?|ftp|file)\s*:\s*\/\//.test(g[browser.ie?"innerText":"textContent"])&&(g[browser.ie?"innerText":"textContent"]=utils.html(c.textValue||c.href))),e.collapsed&&!f||(b.removeInlineStyle("a"),e=b.cloneRange()),e.collapsed){var h=b.document.createElement("a"),i="";c.textValue?(i=utils.html(c.textValue),delete c.textValue):i=utils.html(c.href),domUtils.setAttributes(h,c),g=domUtils.findParentByTagName(e.startContainer,"a",!0),g&&domUtils.isInNodeEndBoundary(e,g)&&b.setStartAfter(g).collapse(!0),h[browser.ie?"innerText":"textContent"]=i,b.insertNode(h).selectNode(h)}else b.applyInlineStyle("a",c)}UE.commands.unlink={execCommand:function(){var b,c=this.selection.getRange();c.collapsed&&!domUtils.findParentByTagName(c.startContainer,"a",!0)||(b=c.createBookmark(),a(c),c.removeInlineStyle("a").moveToBookmark(b).select())},queryCommandState:function(){return!this.highlight&&this.queryCommandValue("link")?0:-1}},UE.commands.link={execCommand:function(a,c){var d;c._href&&(c._href=utils.unhtml(c._href,/[<">]/g)),c.href&&(c.href=utils.unhtml(c.href,/[<">]/g)),c.textValue&&(c.textValue=utils.unhtml(c.textValue,/[<">]/g)),b(d=this.selection.getRange(),c,this),d.collapse().select(!0)},queryCommandValue:function(){var a,b=this.selection.getRange();if(!b.collapsed){b.shrinkBoundary();var c=3!=b.startContainer.nodeType&&b.startContainer.childNodes[b.startOffset]?b.startContainer.childNodes[b.startOffset]:b.startContainer,d=3==b.endContainer.nodeType||0==b.endOffset?b.endContainer:b.endContainer.childNodes[b.endOffset-1],e=b.getCommonAncestor();if(a=domUtils.findParentByTagName(e,"a",!0),!a&&1==e.nodeType)for(var f,g,h,i=e.getElementsByTagName("a"),j=0;h=i[j++];)if(f=domUtils.getPosition(h,c),g=domUtils.getPosition(h,d),(f&domUtils.POSITION_FOLLOWING||f&domUtils.POSITION_CONTAINS)&&(g&domUtils.POSITION_PRECEDING||g&domUtils.POSITION_CONTAINS)){a=h;break}return a}if(a=b.startContainer,a=1==a.nodeType?a:a.parentNode,a&&(a=domUtils.findParentByTagName(a,"a",!0))&&!domUtils.isInNodeEndBoundary(b,a))return a},queryCommandState:function(){var a=this.selection.getRange().getClosedNode(),b=a&&("edui-faked-video"==a.className||a.className.indexOf("edui-upload-video")!=-1);return b?-1:0}}},UE.plugins.insertframe=function(){function a(){b._iframe&&delete b._iframe}var b=this;b.addListener("selectionchange",function(){a()})},UE.commands.scrawl={queryCommandState:function(){return browser.ie&&browser.version<=8?-1:0}},UE.plugins.removeformat=function(){var a=this;a.setOpt({removeFormatTags:"b,big,code,del,dfn,em,font,i,ins,kbd,q,samp,small,span,strike,strong,sub,sup,tt,u,var",removeFormatAttributes:"class,style,lang,width,height,align,hspace,valign"}),a.commands.removeformat={execCommand:function(a,b,c,d,e){function f(a){if(3==a.nodeType||"span"!=a.tagName.toLowerCase())return 0;if(browser.ie){var b=a.attributes;if(b.length){for(var c=0,d=b.length;c
    "+this.getContent(null,null,!0)+"
    "),b.close()},notNeedUndo:1},UE.plugins.selectall=function(){var a=this;a.commands.selectall={execCommand:function(){var a=this,b=a.body,c=a.selection.getRange();c.selectNodeContents(b),domUtils.isEmptyBlock(b)&&(browser.opera&&b.firstChild&&1==b.firstChild.nodeType&&c.setStartAtFirst(b.firstChild),c.collapse(!0)),c.select(!0)},notNeedUndo:1},a.addshortcutkey({selectAll:"ctrl+65"})},UE.plugins.paragraph=function(){var a=this,b=domUtils.isBlockElm,c=["TD","LI","PRE"],d=function(a,d,e,f){var g,h=a.createBookmark(),i=function(a){return 1==a.nodeType?"br"!=a.tagName.toLowerCase()&&!domUtils.isBookmarkNode(a):!domUtils.isWhitespace(a)};a.enlarge(!0);for(var j,k=a.createBookmark(),l=domUtils.getNextDomNode(k.start,!1,i),m=a.cloneRange();l&&!(domUtils.getPosition(l,k.end)&domUtils.POSITION_FOLLOWING);)if(3!=l.nodeType&&b(l))l=domUtils.getNextDomNode(l,!0,i);else{for(m.setStartBefore(l);l&&l!==k.end&&!b(l);)j=l,l=domUtils.getNextDomNode(l,!1,null,function(a){return!b(a)});m.setEndAfter(j),g=a.document.createElement(d),e&&(domUtils.setAttributes(g,e),f&&"customstyle"==f&&e.style&&(g.style.cssText=e.style)),g.appendChild(m.extractContents()),domUtils.isEmptyNode(g)&&domUtils.fillChar(a.document,g),m.insertNode(g);var n=g.parentNode;b(n)&&!domUtils.isBody(g.parentNode)&&utils.indexOf(c,n.tagName)==-1&&(f&&"customstyle"==f||(n.getAttribute("dir")&&g.setAttribute("dir",n.getAttribute("dir")),n.style.cssText&&(g.style.cssText=n.style.cssText+";"+g.style.cssText),n.style.textAlign&&!g.style.textAlign&&(g.style.textAlign=n.style.textAlign),n.style.textIndent&&!g.style.textIndent&&(g.style.textIndent=n.style.textIndent),n.style.padding&&!g.style.padding&&(g.style.padding=n.style.padding)),e&&/h\d/i.test(n.tagName)&&!/h\d/i.test(g.tagName)?(domUtils.setAttributes(n,e),f&&"customstyle"==f&&e.style&&(n.style.cssText=e.style),domUtils.remove(g,!0),g=n):domUtils.remove(g.parentNode,!0)),l=utils.indexOf(c,n.tagName)!=-1?n:g,l=domUtils.getNextDomNode(l,!1,i)}return a.moveToBookmark(k).moveToBookmark(h)};a.setOpt("paragraph",{p:"",h1:"",h2:"",h3:"",h4:"",h5:"",h6:""}),a.commands.paragraph={execCommand:function(a,b,c,e){var f=this.selection.getRange();if(f.collapsed){var g=this.document.createTextNode("p");if(f.insertNode(g),browser.ie){var h=g.previousSibling;h&&domUtils.isWhitespace(h)&&domUtils.remove(h),h=g.nextSibling,h&&domUtils.isWhitespace(h)&&domUtils.remove(h)}}if(f=d(f,b,c,e),g&&(f.setStartBefore(g).collapse(!0),pN=g.parentNode,domUtils.remove(g),domUtils.isBlockElm(pN)&&domUtils.isEmptyNode(pN)&&domUtils.fillNode(this.document,pN)),browser.gecko&&f.collapsed&&1==f.startContainer.nodeType){var i=f.startContainer.childNodes[f.startOffset];i&&1==i.nodeType&&i.tagName.toLowerCase()==b&&f.setStart(i,0).collapse(!0)}return f.select(),!0},queryCommandValue:function(){var a=domUtils.filterNodeList(this.selection.getStartElementPath(),"p h1 h2 h3 h4 h5 h6");return a?a.tagName.toLowerCase():""}}},function(){var a=domUtils.isBlockElm,b=function(a){return domUtils.filterNodeList(a.selection.getStartElementPath(),function(a){return a&&1==a.nodeType&&a.getAttribute("dir")})},c=function(c,d,e){var f,g=function(a){return 1==a.nodeType?!domUtils.isBookmarkNode(a):!domUtils.isWhitespace(a)},h=b(d);if(h&&c.collapsed)return h.setAttribute("dir",e),c;f=c.createBookmark(),c.enlarge(!0);for(var i,j=c.createBookmark(),k=domUtils.getNextDomNode(j.start,!1,g),l=c.cloneRange();k&&!(domUtils.getPosition(k,j.end)&domUtils.POSITION_FOLLOWING);)if(3!=k.nodeType&&a(k))k=domUtils.getNextDomNode(k,!0,g);else{for(l.setStartBefore(k);k&&k!==j.end&&!a(k);)i=k,k=domUtils.getNextDomNode(k,!1,null,function(b){return!a(b)});l.setEndAfter(i);var m=l.getCommonAncestor();if(!domUtils.isBody(m)&&a(m))m.setAttribute("dir",e),k=m;else{var n=c.document.createElement("p");n.setAttribute("dir",e);var o=l.extractContents();n.appendChild(o),l.insertNode(n),k=n}k=domUtils.getNextDomNode(k,!1,g)}return c.moveToBookmark(j).moveToBookmark(f)};UE.commands.directionality={execCommand:function(a,b){var d=this.selection.getRange();if(d.collapsed){var e=this.document.createTextNode("d");d.insertNode(e)}return c(d,this,b),e&&(d.setStartBefore(e).collapse(!0),domUtils.remove(e)),d.select(),!0},queryCommandValue:function(){var a=b(this);return a?a.getAttribute("dir"):"ltr"}}}(),UE.plugins.horizontal=function(){var a=this;a.commands.horizontal={execCommand:function(a){var b=this;if(b.queryCommandState(a)!==-1){b.execCommand("insertHtml","
    ");var c=b.selection.getRange(),d=c.startContainer;if(1==d.nodeType&&!d.childNodes[c.startOffset]){var e;(e=d.childNodes[c.startOffset-1])&&1==e.nodeType&&"HR"==e.tagName&&("p"==b.options.enterTag?(e=b.document.createElement("p"),c.insertNode(e),c.setStart(e,0).setCursor()):(e=b.document.createElement("br"),c.insertNode(e),c.setStartBefore(e).setCursor()))}return!0}},queryCommandState:function(){return domUtils.filterNodeList(this.selection.getStartElementPath(),"table")?-1:0}},a.addListener("delkeydown",function(a,b){var c=this.selection.getRange();if(c.txtToElmBoundary(!0),domUtils.isStartInblock(c)){var d=c.startContainer,e=d.previousSibling;if(e&&domUtils.isTagNode(e,"hr"))return domUtils.remove(e),c.select(),domUtils.preventDefault(b),!0}})},UE.commands.time=UE.commands.date={execCommand:function(a,b){function c(a,b){var c=("0"+a.getHours()).slice(-2),d=("0"+a.getMinutes()).slice(-2),e=("0"+a.getSeconds()).slice(-2);return b=b||"hh:ii:ss",b.replace(/hh/gi,c).replace(/ii/gi,d).replace(/ss/gi,e)}function d(a,b){var c=("000"+a.getFullYear()).slice(-4),d=c.slice(-2),e=("0"+(a.getMonth()+1)).slice(-2),f=("0"+a.getDate()).slice(-2);return b=b||"yyyy-mm-dd",b.replace(/yyyy/gi,c).replace(/yy/gi,d).replace(/mm/gi,e).replace(/dd/gi,f)}var e=new Date;this.execCommand("insertHtml","time"==a?c(e,b):d(e,b))}},UE.plugins.rowspacing=function(){var a=this;a.setOpt({rowspacingtop:["5","10","15","20","25"],rowspacingbottom:["5","10","15","20","25"]}),a.commands.rowspacing={execCommand:function(a,b,c){return this.execCommand("paragraph","p",{style:"margin-"+c+":"+b+"px"}),!0},queryCommandValue:function(a,b){var c,d=domUtils.filterNodeList(this.selection.getStartElementPath(),function(a){return domUtils.isBlockElm(a)});return d?(c=domUtils.getComputedStyle(d,"margin-"+b).replace(/[^\d]/g,""),c?c:0):0}}},UE.plugins.lineheight=function(){var a=this;a.setOpt({lineheight:["1","1.5","1.75","2","3","4","5"]}),a.commands.lineheight={execCommand:function(a,b){return this.execCommand("paragraph","p",{style:"line-height:"+("1"==b?"normal":b+"em")}),!0},queryCommandValue:function(){var a=domUtils.filterNodeList(this.selection.getStartElementPath(),function(a){return domUtils.isBlockElm(a)});if(a){var b=domUtils.getComputedStyle(a,"line-height");return"normal"==b?1:b.replace(/[^\d.]*/gi,"")}}}},UE.plugins.insertcode=function(){var a=this;a.ready(function(){utils.cssRule("pre","pre{margin:.5em 0;padding:.4em .6em;border-radius:8px;background:#f8f8f8;}",a.document)}),a.setOpt("insertcode",{as3:"ActionScript3",bash:"Bash/Shell",cpp:"C/C++",css:"Css",cf:"CodeFunction","c#":"C#",delphi:"Delphi",diff:"Diff",erlang:"Erlang",groovy:"Groovy",html:"Html",java:"Java",jfx:"JavaFx",js:"Javascript",pl:"Perl",php:"Php",plain:"Plain Text",ps:"PowerShell",python:"Python",ruby:"Ruby",scala:"Scala",sql:"Sql",vb:"Vb",xml:"Xml"}),a.commands.insertcode={execCommand:function(a,b){var c=this,d=c.selection.getRange(),e=domUtils.findParentByTagName(d.startContainer,"pre",!0);if(e)e.className="brush:"+b+";toolbar:false;";else{var f="";if(d.collapsed)f=browser.ie&&browser.ie11below?browser.version<=8?" ":"":"
    ";else{var g=d.extractContents(),h=c.document.createElement("div");h.appendChild(g),utils.each(UE.filterNode(UE.htmlparser(h.innerHTML.replace(/[\r\t]/g,"")),c.options.filterTxtRules).children,function(a){if(browser.ie&&browser.ie11below&&browser.version>8)"element"==a.type?"br"==a.tagName?f+="\n":dtd.$empty[a.tagName]||(utils.each(a.children,function(b){"element"==b.type?"br"==b.tagName?f+="\n":dtd.$empty[a.tagName]||(f+=b.innerText()):f+=b.data}),/\n$/.test(f)||(f+="\n")):f+=a.data+"\n",!a.nextSibling()&&/\n$/.test(f)&&(f=f.replace(/\n$/,""));else if(browser.ie&&browser.ie11below)"element"==a.type?"br"==a.tagName?f+="
    ":dtd.$empty[a.tagName]||(utils.each(a.children,function(b){"element"==b.type?"br"==b.tagName?f+="
    ":dtd.$empty[a.tagName]||(f+=b.innerText()):f+=b.data}),/br>$/.test(f)||(f+="
    ")):f+=a.data+"
    ",!a.nextSibling()&&/
    $/.test(f)&&(f=f.replace(/
    $/,""));else if(f+="element"==a.type?dtd.$empty[a.tagName]?"":a.innerText():a.data,!/br\/?\s*>$/.test(f)){if(!a.nextSibling())return;f+="
    "}})}c.execCommand("inserthtml",'
    '+f+"
    ",!0),e=c.document.getElementById("coder"),domUtils.removeAttributes(e,"id");var i=e.previousSibling;i&&(3==i.nodeType&&1==i.nodeValue.length&&browser.ie&&6==browser.version||domUtils.isEmptyBlock(i))&&domUtils.remove(i);var d=c.selection.getRange();domUtils.isEmptyBlock(e)?d.setStart(e,0).setCursor(!1,!0):d.selectNodeContents(e).select()}},queryCommandValue:function(){var a=this.selection.getStartElementPath(),b="";return utils.each(a,function(a){if("PRE"==a.nodeName){var c=a.className.match(/brush:([^;]+)/);return b=c&&c[1]?c[1]:"",!1}}),b}},a.addInputRule(function(a){utils.each(a.getNodesByTagName("pre"),function(a){var b=a.getNodesByTagName("br");if(b.length)return void(browser.ie&&browser.ie11below&&browser.version>8&&utils.each(b,function(a){var b=UE.uNode.createText("\n");a.parentNode.insertBefore(b,a),a.parentNode.removeChild(a)}));if(!(browser.ie&&browser.ie11below&&browser.version>8)){var c=a.innerText().split(/\n/);a.innerHTML(""),utils.each(c,function(b){b.length&&a.appendChild(UE.uNode.createText(b)),a.appendChild(UE.uNode.createElement("br"))})}})}),a.addOutputRule(function(a){utils.each(a.getNodesByTagName("pre"),function(a){var b="";utils.each(a.children,function(a){b+="text"==a.type?a.data.replace(/[ ]/g," ").replace(/\n$/,""):"br"==a.tagName?"\n":dtd.$empty[a.tagName]?a.innerText():""}),a.innerText(b.replace(/( |\n)+$/,""))})}),a.notNeedCodeQuery={help:1,undo:1,redo:1,source:1,print:1,searchreplace:1,fullscreen:1,preview:1,insertparagraph:1,elementpath:1,insertcode:1,inserthtml:1,selectall:1};a.queryCommandState;a.queryCommandState=function(a){var b=this;return!b.notNeedCodeQuery[a.toLowerCase()]&&b.selection&&b.queryCommandValue("insertcode")?-1:UE.Editor.prototype.queryCommandState.apply(this,arguments)},a.addListener("beforeenterkeydown",function(){var b=a.selection.getRange(),c=domUtils.findParentByTagName(b.startContainer,"pre",!0);if(c){if(a.fireEvent("saveScene"),b.collapsed||b.deleteContents(),!browser.ie||browser.ie9above){var c,d=a.document.createElement("br");b.insertNode(d).setStartAfter(d).collapse(!0);var e=d.nextSibling;e||browser.ie&&!(browser.version>10)?b.setStartAfter(d):b.insertNode(d.cloneNode(!1)), +c=d.previousSibling;for(var f;c;)if(f=c,c=c.previousSibling,!c||"BR"==c.nodeName){c=f;break}if(c){for(var g="";c&&"BR"!=c.nodeName&&new RegExp("^[\\s"+domUtils.fillChar+"]*$").test(c.nodeValue);)g+=c.nodeValue,c=c.nextSibling;if("BR"!=c.nodeName){var h=c.nodeValue.match(new RegExp("^([\\s"+domUtils.fillChar+"]+)"));h&&h[1]&&(g+=h[1])}g&&(g=a.document.createTextNode(g),b.insertNode(g).setStartAfter(g))}b.collapse(!0).select(!0)}else if(browser.version>8){var i=a.document.createTextNode("\n"),j=b.startContainer;if(0==b.startOffset){var k=j.previousSibling;if(k){b.insertNode(i);var l=a.document.createTextNode(" ");b.setStartAfter(i).insertNode(l).setStart(l,0).collapse(!0).select(!0)}}else{b.insertNode(i).setStartAfter(i);var l=a.document.createTextNode(" ");j=b.startContainer.childNodes[b.startOffset],j&&!/^\n/.test(j.nodeValue)&&b.setStartBefore(i),b.insertNode(l).setStart(l,0).collapse(!0).select(!0)}}else{var d=a.document.createElement("br");b.insertNode(d),b.insertNode(a.document.createTextNode(domUtils.fillChar)),b.setStartAfter(d),c=d.previousSibling;for(var f;c;)if(f=c,c=c.previousSibling,!c||"BR"==c.nodeName){c=f;break}if(c){for(var g="";c&&"BR"!=c.nodeName&&new RegExp("^[ "+domUtils.fillChar+"]*$").test(c.nodeValue);)g+=c.nodeValue,c=c.nextSibling;if("BR"!=c.nodeName){var h=c.nodeValue.match(new RegExp("^([ "+domUtils.fillChar+"]+)"));h&&h[1]&&(g+=h[1])}g=a.document.createTextNode(g),b.insertNode(g).setStartAfter(g)}b.collapse(!0).select()}return a.fireEvent("saveScene"),!0}}),a.addListener("tabkeydown",function(b,c){var d=a.selection.getRange(),e=domUtils.findParentByTagName(d.startContainer,"pre",!0);if(e){if(a.fireEvent("saveScene"),c.shiftKey);else if(d.collapsed){var f=a.document.createTextNode(" ");d.insertNode(f).setStartAfter(f).collapse(!0).select(!0)}else{for(var g=d.createBookmark(),h=g.start.previousSibling;h;){if(e.firstChild===h&&!domUtils.isBr(h)){e.insertBefore(a.document.createTextNode(" "),h);break}if(domUtils.isBr(h)){e.insertBefore(a.document.createTextNode(" "),h.nextSibling);break}h=h.previousSibling}var i=g.end;for(h=g.start.nextSibling,e.firstChild===g.start&&e.insertBefore(a.document.createTextNode(" "),h.nextSibling);h&&h!==i;){if(domUtils.isBr(h)&&h.nextSibling){if(h.nextSibling===i)break;e.insertBefore(a.document.createTextNode(" "),h.nextSibling)}h=h.nextSibling}d.moveToBookmark(g).select()}return a.fireEvent("saveScene"),!0}}),a.addListener("beforeinserthtml",function(a,b){var c=this,d=c.selection.getRange(),e=domUtils.findParentByTagName(d.startContainer,"pre",!0);if(e){d.collapsed||d.deleteContents();var f="";if(browser.ie&&browser.version>8){utils.each(UE.filterNode(UE.htmlparser(b),c.options.filterTxtRules).children,function(a){"element"==a.type?"br"==a.tagName?f+="\n":dtd.$empty[a.tagName]||(utils.each(a.children,function(b){"element"==b.type?"br"==b.tagName?f+="\n":dtd.$empty[a.tagName]||(f+=b.innerText()):f+=b.data}),/\n$/.test(f)||(f+="\n")):f+=a.data+"\n",!a.nextSibling()&&/\n$/.test(f)&&(f=f.replace(/\n$/,""))});var g=c.document.createTextNode(utils.html(f.replace(/ /g," ")));d.insertNode(g).selectNode(g).select()}else{var h=c.document.createDocumentFragment();utils.each(UE.filterNode(UE.htmlparser(b),c.options.filterTxtRules).children,function(a){"element"==a.type?"br"==a.tagName?h.appendChild(c.document.createElement("br")):dtd.$empty[a.tagName]||(utils.each(a.children,function(b){"element"==b.type?"br"==b.tagName?h.appendChild(c.document.createElement("br")):dtd.$empty[a.tagName]||h.appendChild(c.document.createTextNode(utils.html(b.innerText().replace(/ /g," ")))):h.appendChild(c.document.createTextNode(utils.html(b.data.replace(/ /g," "))))}),"BR"!=h.lastChild.nodeName&&h.appendChild(c.document.createElement("br"))):h.appendChild(c.document.createTextNode(utils.html(a.data.replace(/ /g," ")))),a.nextSibling()||"BR"!=h.lastChild.nodeName||h.removeChild(h.lastChild)}),d.insertNode(h).select()}return!0}}),a.addListener("keydown",function(a,b){var c=this,d=b.keyCode||b.which;if(40==d){var e,f=c.selection.getRange(),g=f.startContainer;if(f.collapsed&&(e=domUtils.findParentByTagName(f.startContainer,"pre",!0))&&!e.nextSibling){for(var h=e.lastChild;h&&"BR"==h.nodeName;)h=h.previousSibling;(h===g||f.startContainer===e&&f.startOffset==e.childNodes.length)&&(c.execCommand("insertparagraph"),domUtils.preventDefault(b))}}}),a.addListener("delkeydown",function(b,c){var d=this.selection.getRange();d.txtToElmBoundary(!0);var e=d.startContainer;if(domUtils.isTagNode(e,"pre")&&d.collapsed&&domUtils.isStartInblock(d)){var f=a.document.createElement("p");return domUtils.fillNode(a.document,f),e.parentNode.insertBefore(f,e),domUtils.remove(e),d.setStart(f,0).setCursor(!1,!0),domUtils.preventDefault(c),!0}})},UE.commands.cleardoc={execCommand:function(a){var b=this,c=b.options.enterTag,d=b.selection.getRange();"br"==c?(b.body.innerHTML="
    ",d.setStart(b.body,0).setCursor()):(b.body.innerHTML="

    "+(ie?"":"
    ")+"

    ",d.setStart(b.body.firstChild,0).setCursor(!1,!0)),setTimeout(function(){b.fireEvent("clearDoc")},0)}},UE.plugin.register("anchor",function(){return{bindEvents:{ready:function(){utils.cssRule("anchor",".anchorclass{background: url('"+this.options.themePath+this.options.theme+"/images/anchor.gif') no-repeat scroll left center transparent;cursor: auto;display: inline-block;height: 16px;width: 15px;}",this.document)}},outputRule:function(a){utils.each(a.getNodesByTagName("img"),function(a){var b;(b=a.getAttr("anchorname"))&&(a.tagName="a",a.setAttr({anchorname:"",name:b,"class":""}))})},inputRule:function(a){utils.each(a.getNodesByTagName("a"),function(a){var b;(b=a.getAttr("name"))&&!a.getAttr("href")&&(a.tagName="img",a.setAttr({anchorname:a.getAttr("name"),"class":"anchorclass"}),a.setAttr("name"))})},commands:{anchor:{execCommand:function(a,b){var c=this.selection.getRange(),d=c.getClosedNode();if(d&&d.getAttribute("anchorname"))b?d.setAttribute("anchorname",b):(c.setStartBefore(d).setCursor(),domUtils.remove(d));else if(b){var e=this.document.createElement("img");c.collapse(!0),domUtils.setAttributes(e,{anchorname:b,"class":"anchorclass"}),c.insertNode(e).setStartAfter(e).setCursor(!1,!0)}}}}}}),UE.plugins.wordcount=function(){var a=this;a.setOpt("wordCount",!0),a.addListener("contentchange",function(){a.fireEvent("wordcount")});var b;a.addListener("ready",function(){var a=this;domUtils.on(a.body,"keyup",function(c){var d=c.keyCode||c.which,e={16:1,18:1,20:1,37:1,38:1,39:1,40:1};d in e||(clearTimeout(b),b=setTimeout(function(){a.fireEvent("wordcount")},200))})})},UE.plugins.pagebreak=function(){function a(a){if(domUtils.isEmptyBlock(a)){for(var b,d=a.firstChild;d&&1==d.nodeType&&domUtils.isEmptyBlock(d);)b=d,d=d.firstChild;!b&&(b=a),domUtils.fillNode(c.document,b)}}function b(a){return a&&1==a.nodeType&&"HR"==a.tagName&&"pagebreak"==a.className}var c=this,d=["td"];c.setOpt("pageBreakTag","_ueditor_page_break_tag_"),c.ready(function(){utils.cssRule("pagebreak",".pagebreak{display:block;clear:both !important;cursor:default !important;width: 100% !important;margin:0;}",c.document)}),c.addInputRule(function(a){a.traversal(function(a){if("text"==a.type&&a.data==c.options.pageBreakTag){var b=UE.uNode.createElement('
    ');a.parentNode.insertBefore(b,a),a.parentNode.removeChild(a)}})}),c.addOutputRule(function(a){utils.each(a.getNodesByTagName("hr"),function(a){if("pagebreak"==a.getAttr("class")){var b=UE.uNode.createText(c.options.pageBreakTag);a.parentNode.insertBefore(b,a),a.parentNode.removeChild(a)}})}),c.commands.pagebreak={execCommand:function(){var e=c.selection.getRange(),f=c.document.createElement("hr");domUtils.setAttributes(f,{"class":"pagebreak",noshade:"noshade",size:"5"}),domUtils.unSelectable(f);var g,h=domUtils.findParentByTagName(e.startContainer,d,!0),i=[];if(h)switch(h.tagName){case"TD":if(g=h.parentNode,g.previousSibling)g.parentNode.insertBefore(f,g),i=domUtils.findParents(f);else{var j=domUtils.findParentByTagName(g,"table");j.parentNode.insertBefore(f,j),i=domUtils.findParents(f,!0)}g=i[1],f!==g&&domUtils.breakParent(f,g),c.fireEvent("afteradjusttable",c.document)}else{if(!e.collapsed){e.deleteContents();for(var k=e.startContainer;!domUtils.isBody(k)&&domUtils.isBlockElm(k)&&domUtils.isEmptyNode(k);)e.setStartBefore(k).collapse(!0),domUtils.remove(k),k=e.startContainer}e.insertNode(f);for(var l,g=f.parentNode;!domUtils.isBody(g);)domUtils.breakParent(f,g),l=f.nextSibling,l&&domUtils.isEmptyBlock(l)&&domUtils.remove(l),g=f.parentNode;l=f.nextSibling;var m=f.previousSibling;if(b(m)?domUtils.remove(m):m&&a(m),l)b(l)?domUtils.remove(l):a(l),e.setEndAfter(f).collapse(!1);else{var n=c.document.createElement("p");f.parentNode.appendChild(n),domUtils.fillNode(c.document,n),e.setStart(n,0).collapse(!0)}e.select(!0)}}}},UE.plugin.register("wordimage",function(){var a=this,b=[];return{commands:{wordimage:{execCommand:function(){for(var b,c=domUtils.getElementsByTagName(a.body,"img"),d=[],e=0;b=c[e++];){var f=b.getAttribute("word_img");f&&d.push(f)}return d},queryCommandState:function(){b=domUtils.getElementsByTagName(a.body,"img");for(var c,d=0;c=b[d++];)if(c.getAttribute("word_img"))return 1;return-1},notNeedUndo:!0}},inputRule:function(b){utils.each(b.getNodesByTagName("img"),function(b){var c=b.attrs,d=parseInt(c.width)<128||parseInt(c.height)<43,e=a.options,f=e.UEDITOR_HOME_URL+"themes/default/images/spacer.gif";c.src&&/^(?:(file:\/+))/.test(c.src)&&b.setAttr({width:c.width,height:c.height,alt:c.alt,word_img:c.src,src:f,style:"background:url("+(d?e.themePath+e.theme+"/images/word.gif":e.langPath+e.lang+"/images/localimage.png")+") no-repeat center center;border:1px solid #ddd"})})}}}),UE.plugins.dragdrop=function(){var a=this;a.ready(function(){domUtils.on(this.body,"dragend",function(){var b=a.selection.getRange(),c=b.getClosedNode()||a.selection.getStart();if(c&&"IMG"==c.tagName){for(var d,e=c.previousSibling;(d=c.nextSibling)&&1==d.nodeType&&"SPAN"==d.tagName&&!d.firstChild;)domUtils.remove(d);(!e||1!=e.nodeType||domUtils.isEmptyBlock(e))&&e||d&&(!d||domUtils.isEmptyBlock(d))||(e&&"P"==e.tagName&&!domUtils.isEmptyBlock(e)?(e.appendChild(c),domUtils.moveChild(d,e),domUtils.remove(d)):d&&"P"==d.tagName&&!domUtils.isEmptyBlock(d)&&d.insertBefore(c,d.firstChild),e&&"P"==e.tagName&&domUtils.isEmptyBlock(e)&&domUtils.remove(e),d&&"P"==d.tagName&&domUtils.isEmptyBlock(d)&&domUtils.remove(d),b.selectNode(c).select(),a.fireEvent("saveScene"))}})}),a.addListener("keyup",function(b,c){var d=c.keyCode||c.which;if(13==d){var e,f=a.selection.getRange();(e=domUtils.findParentByTagName(f.startContainer,"p",!0))&&"center"==domUtils.getComputedStyle(e,"text-align")&&domUtils.removeStyle(e,"text-align")}})},UE.plugins.undo=function(){function a(a,b){if(a.length!=b.length)return 0;for(var c=0,d=a.length;cf&&this.list.shift(),this.index=this.list.length-1,this.clearKey(),this.update())},this.update=function(){this.hasRedo=!!this.list[this.index+1],this.hasUndo=!!this.list[this.index-1]},this.reset=function(){this.list=[],this.index=0,this.hasUndo=!1,this.hasRedo=!1,this.clearKey()},this.clearKey=function(){m=0,k=null}}var d,e=this,f=e.options.maxUndoCount||20,g=e.options.maxInputCount||20,h=new RegExp(domUtils.fillChar+"|","gi"),i={ol:1,ul:1,table:1,tbody:1,tr:1,body:1},j=e.options.autoClearEmptyNode;e.undoManger=new c,e.undoManger.editor=e,e.addListener("saveScene",function(){var a=Array.prototype.splice.call(arguments,1);this.undoManger.save.apply(this.undoManger,a)}),e.addListener("reset",function(a,b){b||this.undoManger.reset()}),e.commands.redo=e.commands.undo={execCommand:function(a){this.undoManger[a]()},queryCommandState:function(a){return this.undoManger["has"+("undo"==a.toLowerCase()?"Undo":"Redo")]?0:-1},notNeedUndo:1};var k,l={16:1,17:1,18:1,37:1,38:1,39:1,40:1},m=0,n=!1;e.addListener("ready",function(){domUtils.on(this.body,"compositionstart",function(){n=!0}),domUtils.on(this.body,"compositionend",function(){n=!1})}),e.addshortcutkey({Undo:"ctrl+90",Redo:"ctrl+89"});var o=!0;e.addListener("keydown",function(a,b){function c(a){a.undoManger.save(!1,!0),a.fireEvent("selectionchange")}var e=this,f=b.keyCode||b.which;if(!(l[f]||b.ctrlKey||b.metaKey||b.shiftKey||b.altKey)){if(n)return;if(!e.selection.getRange().collapsed)return e.undoManger.save(!1,!0),void(o=!1);0==e.undoManger.list.length&&e.undoManger.save(!0),clearTimeout(d),d=setTimeout(function(){if(n)var a=setInterval(function(){n||(c(e),clearInterval(a))},300);else c(e)},200),k=f,m++,m>=g&&c(e)}}),e.addListener("keyup",function(a,b){var c=b.keyCode||b.which;if(!(l[c]||b.ctrlKey||b.metaKey||b.shiftKey||b.altKey)){if(n)return;o||(this.undoManger.save(!1,!0),o=!0)}}),e.stopCmdUndo=function(){e.__hasEnterExecCommand=!0},e.startCmdUndo=function(){e.__hasEnterExecCommand=!1}},UE.plugin.register("copy",function(){function a(){ZeroClipboard.config({debug:!1,swfPath:b.options.UEDITOR_HOME_URL+"third-party/zeroclipboard/ZeroClipboard.swf"});var a=b.zeroclipboard=new ZeroClipboard;a.on("copy",function(a){var c=a.client,d=b.selection.getRange(),e=document.createElement("div");e.appendChild(d.cloneContents()),c.setText(e.innerText||e.textContent),c.setHtml(e.innerHTML),d.select()}),a.on("mouseover mouseout",function(a){var b=a.target;"mouseover"==a.type?domUtils.addClass(b,"edui-state-hover"):"mouseout"==a.type&&domUtils.removeClasses(b,"edui-state-hover")}),a.on("wrongflash noflash",function(){ZeroClipboard.destroy()})}var b=this;return{bindEvents:{ready:function(){browser.ie||(window.ZeroClipboard?a():utils.loadFile(document,{src:b.options.UEDITOR_HOME_URL+"third-party/zeroclipboard/ZeroClipboard.js",tag:"script",type:"text/javascript",defer:"defer"},function(){a()}))}},commands:{copy:{execCommand:function(a){b.document.execCommand("copy")||alert(b.getLang("copymsg"))}}}}}),UE.plugins.paste=function(){function a(a){var b=this.document;if(!b.getElementById("baidu_pastebin")){var c=this.selection.getRange(),d=c.createBookmark(),e=b.createElement("div");e.id="baidu_pastebin",browser.webkit&&e.appendChild(b.createTextNode(domUtils.fillChar+domUtils.fillChar)),b.body.appendChild(e),d.start.style.display="",e.style.cssText="position:absolute;width:1px;height:1px;overflow:hidden;left:-1000px;white-space:nowrap;top:"+domUtils.getXY(d.start).y+"px",c.selectNodeContents(e).select(!0),setTimeout(function(){if(browser.webkit)for(var f,g=0,h=b.querySelectorAll("#baidu_pastebin");f=h[g++];){if(!domUtils.isEmptyNode(f)){e=f;break}domUtils.remove(f)}try{e.parentNode.removeChild(e)}catch(i){}c.moveToBookmark(d).select(!0),a(e)},0)}}function b(a){return a.replace(/<(\/?)([\w\-]+)([^>]*)>/gi,function(a,b,c,d){return c=c.toLowerCase(),{img:1}[c]?a:(d=d.replace(/([\w\-]*?)\s*=\s*(("([^"]*)")|('([^']*)')|([^\s>]+))/gi,function(a,b,c){return{src:1,href:1,name:1}[b.toLowerCase()]?b+"="+c+" ":""}),{span:1,div:1}[c]?"":"<"+b+c+" "+utils.trim(d)+">")})}function c(a){var c;if(a.firstChild){for(var h,i=domUtils.getElementsByTagName(a,"span"),j=0;h=i[j++];)"_baidu_cut_start"!=h.id&&"_baidu_cut_end"!=h.id||domUtils.remove(h);if(browser.webkit){for(var k,l=a.querySelectorAll("div br"),j=0;k=l[j++];){var m=k.parentNode;"DIV"==m.tagName&&1==m.childNodes.length&&(m.innerHTML="


    ",domUtils.remove(m))}for(var n,o=a.querySelectorAll("#baidu_pastebin"),j=0;n=o[j++];){var p=d.document.createElement("p");for(n.parentNode.insertBefore(p,n);n.firstChild;)p.appendChild(n.firstChild);domUtils.remove(n)}for(var q,r=a.querySelectorAll("meta"),j=0;q=r[j++];)domUtils.remove(q);var l=a.querySelectorAll("br");for(j=0;q=l[j++];)/^apple-/i.test(q.className)&&domUtils.remove(q)}if(browser.gecko){var s=a.querySelectorAll("[_moz_dirty]");for(j=0;q=s[j++];)q.removeAttribute("_moz_dirty")}if(!browser.ie)for(var q,t=a.querySelectorAll("span.Apple-style-span"),j=0;q=t[j++];)domUtils.remove(q,!0);c=a.innerHTML,c=UE.filterWord(c);var u=UE.htmlparser(c);if(d.options.filterRules&&UE.filterNode(u,d.options.filterRules),d.filterInputRule(u),browser.webkit){var v=u.lastChild();v&&"element"==v.type&&"br"==v.tagName&&u.removeChild(v),utils.each(d.body.querySelectorAll("div"),function(a){domUtils.isEmptyBlock(a)&&domUtils.remove(a,!0)})}if(c={html:u.toHtml()},d.fireEvent("beforepaste",c,u),!c.html)return;u=UE.htmlparser(c.html,!0),1===d.queryCommandState("pasteplain")?d.execCommand("insertHtml",UE.filterNode(u,d.options.filterTxtRules).toHtml(),!0):(UE.filterNode(u,d.options.filterTxtRules),e=u.toHtml(),f=c.html,g=d.selection.getRange().createAddress(!0),d.execCommand("insertHtml",d.getOpt("retainOnlyLabelPasted")===!0?b(f):f,!0)),d.fireEvent("afterpaste",c)}}var d=this;d.setOpt({retainOnlyLabelPasted:!1});var e,f,g;d.addListener("pasteTransfer",function(a,c){if(g&&e&&f&&e!=f){var h=d.selection.getRange();if(h.moveToAddress(g,!0),!h.collapsed){for(;!domUtils.isBody(h.startContainer);){var i=h.startContainer;if(1==i.nodeType){if(i=i.childNodes[h.startOffset],!i){h.setStartBefore(h.startContainer);continue}var j=i.previousSibling;j&&3==j.nodeType&&new RegExp("^[\n\r\t "+domUtils.fillChar+"]*$").test(j.nodeValue)&&h.setStartBefore(j)}if(0!=h.startOffset)break;h.setStartBefore(h.startContainer)}for(;!domUtils.isBody(h.endContainer);){var k=h.endContainer;if(1==k.nodeType){if(k=k.childNodes[h.endOffset],!k){h.setEndAfter(h.endContainer);continue}var l=k.nextSibling;l&&3==l.nodeType&&new RegExp("^[\n\r\t"+domUtils.fillChar+"]*$").test(l.nodeValue)&&h.setEndAfter(l)}if(h.endOffset!=h.endContainer[3==h.endContainer.nodeType?"nodeValue":"childNodes"].length)break;h.setEndAfter(h.endContainer)}}h.deleteContents(),h.select(!0),d.__hasEnterExecCommand=!0;var m=f;2===c?m=b(m):c&&(m=e),d.execCommand("inserthtml",m,!0),d.__hasEnterExecCommand=!1;for(var n=d.selection.getRange();!domUtils.isBody(n.startContainer)&&!n.startOffset&&n.startContainer[3==n.startContainer.nodeType?"nodeValue":"childNodes"].length;)n.setStartBefore(n.startContainer);var o=n.createAddress(!0);g.endAddress=o.startAddress}}),d.addListener("ready",function(){domUtils.on(d.body,"cut",function(){var a=d.selection.getRange();!a.collapsed&&d.undoManger&&d.undoManger.save()}),domUtils.on(d.body,browser.ie||browser.opera?"keydown":"paste",function(b){(!browser.ie&&!browser.opera||(b.ctrlKey||b.metaKey)&&"86"==b.keyCode)&&a.call(d,function(a){c(a)})})}),d.commands.paste={execCommand:function(b){browser.ie?(a.call(d,function(a){c(a)}),d.document.execCommand("paste")):alert(d.getLang("pastemsg"))}}},UE.plugins.pasteplain=function(){var a=this;a.setOpt({pasteplain:!1,filterTxtRules:function(){function a(a){a.tagName="p",a.setStyle()}function b(a){a.parentNode.removeChild(a,!0)}return{"-":"script style object iframe embed input select",p:{$:{}},br:{$:{}},div:function(a){for(var b,c=UE.uNode.createElement("p");b=a.firstChild();)"text"!=b.type&&UE.dom.dtd.$block[b.tagName]?c.firstChild()?(a.parentNode.insertBefore(c,a),c=UE.uNode.createElement("p")):a.parentNode.insertBefore(b,a):c.appendChild(b);c.firstChild()&&a.parentNode.insertBefore(c,a),a.parentNode.removeChild(a)},ol:b,ul:b,dl:b,dt:b,dd:b,li:b,caption:a,th:a,tr:a,h1:a,h2:a,h3:a,h4:a,h5:a,h6:a,td:function(a){var b=!!a.innerText();b&&a.parentNode.insertAfter(UE.uNode.createText("    "),a),a.parentNode.removeChild(a,a.innerText())}}}()});var b=a.options.pasteplain;a.commands.pasteplain={queryCommandState:function(){return b?1:0},execCommand:function(){b=0|!b},notNeedUndo:1}},UE.plugins.list=function(){function a(a){var b=[];for(var c in a)b.push(c);return b}function b(a){var b=a.className;return domUtils.hasClass(a,/custom_/)?b.match(/custom_(\w+)/)[1]:domUtils.getStyle(a,"list-style-type")}function c(a,c){utils.each(domUtils.getElementsByTagName(a,"ol ul"),function(f){if(domUtils.inDoc(f,a)){var g=f.parentNode;if(g.tagName==f.tagName){var h=b(f)||("OL"==f.tagName?"decimal":"disc"),i=b(g)||("OL"==g.tagName?"decimal":"disc");if(h==i){var l=utils.indexOf(k[f.tagName],h);l=l+1==k[f.tagName].length?0:l+1,e(f,k[f.tagName][l])}}var m=0,n=2;domUtils.hasClass(f,/custom_/)?/[ou]l/i.test(g.tagName)&&domUtils.hasClass(g,/custom_/)||(n=1):/[ou]l/i.test(g.tagName)&&domUtils.hasClass(g,/custom_/)&&(n=3);var o=domUtils.getStyle(f,"list-style-type");o&&(f.style.cssText="list-style-type:"+o),f.className=utils.trim(f.className.replace(/list-paddingleft-\w+/,""))+" list-paddingleft-"+n,utils.each(domUtils.getElementsByTagName(f,"li"),function(a){if(a.style.cssText&&(a.style.cssText=""),!a.firstChild)return void domUtils.remove(a);if(a.parentNode===f){if(m++,domUtils.hasClass(f,/custom_/)){var c=1,d=b(f);if("OL"==f.tagName){if(d)switch(d){case"cn":case"cn1":case"cn2":m>10&&(m%10==0||m>10&&m<20)?c=2:m>20&&(c=3);break;case"num2":m>9&&(c=2)}a.className="list-"+j[d]+m+" list-"+d+"-paddingleft-"+c}else a.className="list-"+j[d]+" list-"+d+"-paddingleft"}else a.className=a.className.replace(/list-[\w\-]+/gi,"");var e=a.getAttribute("class");null===e||e.replace(/\s/g,"")||domUtils.removeAttributes(a,"class")}}),!c&&d(f,f.tagName.toLowerCase(),b(f)||domUtils.getStyle(f,"list-style-type"),!0)}})}function d(a,d,e,f){var g=a.nextSibling;g&&1==g.nodeType&&g.tagName.toLowerCase()==d&&(b(g)||domUtils.getStyle(g,"list-style-type")||("ol"==d?"decimal":"disc"))==e&&(domUtils.moveChild(g,a),0==g.childNodes.length&&domUtils.remove(g)),g&&domUtils.isFillChar(g)&&domUtils.remove(g);var h=a.previousSibling;h&&1==h.nodeType&&h.tagName.toLowerCase()==d&&(b(h)||domUtils.getStyle(h,"list-style-type")||("ol"==d?"decimal":"disc"))==e&&domUtils.moveChild(a,h),h&&domUtils.isFillChar(h)&&domUtils.remove(h),!f&&domUtils.isEmptyBlock(a)&&domUtils.remove(a),b(a)&&c(a.ownerDocument,!0)}function e(a,b){j[b]&&(a.className="custom_"+b);try{domUtils.setStyle(a,"list-style-type",b)}catch(c){}}function f(a){var b=a.previousSibling;b&&domUtils.isEmptyBlock(b)&&domUtils.remove(b),b=a.nextSibling,b&&domUtils.isEmptyBlock(b)&&domUtils.remove(b)}function g(a){for(;a&&!domUtils.isBody(a);){if("TABLE"==a.nodeName)return null;if("LI"==a.nodeName)return a;a=a.parentNode}}var h=this,i={TD:1,PRE:1,BLOCKQUOTE:1},j={cn:"cn-1-",cn1:"cn-2-",cn2:"cn-3-",num:"num-1-",num1:"num-2-",num2:"num-3-",dash:"dash",dot:"dot"};h.setOpt({autoTransWordToList:!1,insertorderedlist:{num:"",num1:"",num2:"",cn:"",cn1:"",cn2:"",decimal:"","lower-alpha":"","lower-roman":"","upper-alpha":"","upper-roman":""},insertunorderedlist:{circle:"",disc:"",square:"",dash:"",dot:""},listDefaultPaddingLeft:"30",listiconpath:"http://bs.baidu.com/listicon/",maxListLevel:-1,disablePInList:!1});var k={OL:a(h.options.insertorderedlist),UL:a(h.options.insertunorderedlist)},l=h.options.listiconpath;for(var m in j)h.options.insertorderedlist.hasOwnProperty(m)||h.options.insertunorderedlist.hasOwnProperty(m)||delete j[m];h.ready(function(){var a=[];for(var b in j){if("dash"==b||"dot"==b)a.push("li.list-"+j[b]+"{background-image:url("+l+j[b]+".gif)}"),a.push("ul.custom_"+b+"{list-style:none;}ul.custom_"+b+" li{background-position:0 3px;background-repeat:no-repeat}");else{for(var c=0;c<99;c++)a.push("li.list-"+j[b]+c+"{background-image:url("+l+"list-"+j[b]+c+".gif)}");a.push("ol.custom_"+b+"{list-style:none;}ol.custom_"+b+" li{background-position:0 3px;background-repeat:no-repeat}")}switch(b){case"cn":a.push("li.list-"+b+"-paddingleft-1{padding-left:25px}"),a.push("li.list-"+b+"-paddingleft-2{padding-left:40px}"),a.push("li.list-"+b+"-paddingleft-3{padding-left:55px}");break;case"cn1":a.push("li.list-"+b+"-paddingleft-1{padding-left:30px}"),a.push("li.list-"+b+"-paddingleft-2{padding-left:40px}"),a.push("li.list-"+b+"-paddingleft-3{padding-left:55px}");break;case"cn2":a.push("li.list-"+b+"-paddingleft-1{padding-left:40px}"),a.push("li.list-"+b+"-paddingleft-2{padding-left:55px}"),a.push("li.list-"+b+"-paddingleft-3{padding-left:68px}");break;case"num":case"num1":a.push("li.list-"+b+"-paddingleft-1{padding-left:25px}");break;case"num2":a.push("li.list-"+b+"-paddingleft-1{padding-left:35px}"),a.push("li.list-"+b+"-paddingleft-2{padding-left:40px}");break;case"dash":a.push("li.list-"+b+"-paddingleft{padding-left:35px}");break;case"dot":a.push("li.list-"+b+"-paddingleft{padding-left:20px}")}}a.push(".list-paddingleft-1{padding-left:0}"),a.push(".list-paddingleft-2{padding-left:"+h.options.listDefaultPaddingLeft+"px}"),a.push(".list-paddingleft-3{padding-left:"+2*h.options.listDefaultPaddingLeft+"px}"),utils.cssRule("list","ol,ul{margin:0;pading:0;"+(browser.ie?"":"width:95%")+"}li{clear:both;}"+a.join("\n"),h.document)}),h.ready(function(){domUtils.on(h.body,"cut",function(){setTimeout(function(){var a,b=h.selection.getRange();if(!b.collapsed&&(a=domUtils.findParentByTagName(b.startContainer,"li",!0))&&!a.nextSibling&&domUtils.isEmptyBlock(a)){var c,d=a.parentNode;if(c=d.previousSibling)domUtils.remove(d),b.setStartAtLast(c).collapse(!0),b.select(!0);else if(c=d.nextSibling)domUtils.remove(d),b.setStartAtFirst(c).collapse(!0),b.select(!0);else{var e=h.document.createElement("p");domUtils.fillNode(h.document,e),d.parentNode.insertBefore(e,d),domUtils.remove(d),b.setStart(e,0).collapse(!0),b.select(!0)}}})})}),h.addListener("beforepaste",function(a,c){var d,e=this,f=e.selection.getRange(),g=UE.htmlparser(c.html,!0);if(d=domUtils.findParentByTagName(f.startContainer,"li",!0)){var h=d.parentNode,i="OL"==h.tagName?"ul":"ol";utils.each(g.getNodesByTagName(i),function(c){if(c.tagName=h.tagName,c.setAttr(),c.parentNode===g)a=b(h)||("OL"==h.tagName?"decimal":"disc");else{var d=c.parentNode.getAttr("class");a=d&&/custom_/.test(d)?d.match(/custom_(\w+)/)[1]:c.parentNode.getStyle("list-style-type"),a||(a="OL"==h.tagName?"decimal":"disc")}var e=utils.indexOf(k[h.tagName],a);c.parentNode!==g&&(e=e+1==k[h.tagName].length?0:e+1);var f=k[h.tagName][e];j[f]?c.setAttr("class","custom_"+f):c.setStyle("list-style-type",f)})}c.html=g.toHtml()}),h.getOpt("disablePInList")===!0&&h.addOutputRule(function(a){utils.each(a.getNodesByTagName("li"),function(a){var b=[],c=0;utils.each(a.children,function(d){if("p"==d.tagName){for(var e;e=d.children.pop();)b.splice(c,0,e),e.parentNode=a,lastNode=e;if(e=b[b.length-1],!e||"element"!=e.type||"br"!=e.tagName){var f=UE.uNode.createElement("br");f.parentNode=a,b.push(f)}c=b.length}}),b.length&&(a.children=b)})}),h.addInputRule(function(a){function b(a,b){var e=b.firstChild();if(e&&"element"==e.type&&"span"==e.tagName&&/Wingdings|Symbol/.test(e.getStyle("font-family"))){for(var f in d)if(d[f]==e.data)return f;return"disc"}for(var f in c)if(c[f].test(a))return f}if(utils.each(a.getNodesByTagName("li"),function(a){for(var b,c=UE.uNode.createElement("p"),d=0;b=a.children[d];)"text"==b.type||dtd.p[b.tagName]?c.appendChild(b):c.firstChild()?(a.insertBefore(c,b),c=UE.uNode.createElement("p"),d+=2):d++;(c.firstChild()&&!c.parentNode||!a.firstChild())&&a.appendChild(c),c.firstChild()||c.innerHTML(browser.ie?" ":"
    ");var e=a.firstChild(),f=e.lastChild();f&&"text"==f.type&&/^\s*$/.test(f.data)&&e.removeChild(f)}),h.options.autoTransWordToList){var c={num1:/^\d+\)/,decimal:/^\d+\./,"lower-alpha":/^[a-z]+\)/,"upper-alpha":/^[A-Z]+\./,cn:/^[\u4E00\u4E8C\u4E09\u56DB\u516d\u4e94\u4e03\u516b\u4e5d]+[\u3001]/,cn2:/^\([\u4E00\u4E8C\u4E09\u56DB\u516d\u4e94\u4e03\u516b\u4e5d]+\)/},d={square:"n"};utils.each(a.getNodesByTagName("p"),function(a){function d(a,b,d){if("ol"==a.tagName)if(browser.ie){var e=b.firstChild();"element"==e.type&&"span"==e.tagName&&c[d].test(e.innerText())&&b.removeChild(e)}else b.innerHTML(b.innerHTML().replace(c[d],""));else b.removeChild(b.firstChild());var f=UE.uNode.createElement("li");f.appendChild(b),a.appendChild(f)}if("MsoListParagraph"==a.getAttr("class")){a.setStyle("margin",""),a.setStyle("margin-left",""),a.setAttr("class","");var e,f=a,g=a;if("li"!=a.parentNode.tagName&&(e=b(a.innerText(),a))){var i=UE.uNode.createElement(h.options.insertorderedlist.hasOwnProperty(e)?"ol":"ul");for(j[e]?i.setAttr("class","custom_"+e):i.setStyle("list-style-type",e);a&&"li"!=a.parentNode.tagName&&b(a.innerText(),a);)f=a.nextSibling(),f||a.parentNode.insertBefore(i,a),d(i,a,e),a=f;!i.parentNode&&a&&a.parentNode&&a.parentNode.insertBefore(i,a)}var k=g.firstChild();k&&"element"==k.type&&"span"==k.tagName&&/^\s*( )+\s*$/.test(k.innerText())&&k.parentNode.removeChild(k)}})}}),h.addListener("contentchange",function(){c(h.document)}),h.addListener("keydown",function(a,b){function c(){b.preventDefault?b.preventDefault():b.returnValue=!1,h.fireEvent("contentchange"),h.undoManger&&h.undoManger.save()}function d(a,b){for(;a&&!domUtils.isBody(a);){if(b(a))return null;if(1==a.nodeType&&/[ou]l/i.test(a.tagName))return a;a=a.parentNode}return null}var e=b.keyCode||b.which;if(13==e&&!b.shiftKey){var g=h.selection.getRange(),i=domUtils.findParent(g.startContainer,function(a){return domUtils.isBlockElm(a)},!0),j=domUtils.findParentByTagName(g.startContainer,"li",!0);if(i&&"PRE"!=i.tagName&&!j){var k=i.innerHTML.replace(new RegExp(domUtils.fillChar,"g"),"");/^\s*1\s*\.[^\d]/.test(k)&&(i.innerHTML=k.replace(/^\s*1\s*\./,""),g.setStartAtLast(i).collapse(!0).select(),h.__hasEnterExecCommand=!0,h.execCommand("insertorderedlist"),h.__hasEnterExecCommand=!1)}var l=h.selection.getRange(),m=d(l.startContainer,function(a){return"TABLE"==a.tagName}),n=l.collapsed?m:d(l.endContainer,function(a){return"TABLE"==a.tagName});if(m&&n&&m===n){if(!l.collapsed){if(m=domUtils.findParentByTagName(l.startContainer,"li",!0),n=domUtils.findParentByTagName(l.endContainer,"li",!0),!m||!n||m!==n){var o=l.cloneRange(),p=o.collapse(!1).createBookmark();l.deleteContents(),o.moveToBookmark(p);var j=domUtils.findParentByTagName(o.startContainer,"li",!0);return f(j),o.select(),void c()}if(l.deleteContents(),j=domUtils.findParentByTagName(l.startContainer,"li",!0),j&&domUtils.isEmptyBlock(j))return v=j.previousSibling,next=j.nextSibling,s=h.document.createElement("p"),domUtils.fillNode(h.document,s),q=j.parentNode,v&&next?(l.setStart(next,0).collapse(!0).select(!0),domUtils.remove(j)):((v||next)&&v?j.parentNode.parentNode.insertBefore(s,q.nextSibling):q.parentNode.insertBefore(s,q),domUtils.remove(j),q.firstChild||domUtils.remove(q),l.setStart(s,0).setCursor()),void c()}if(j=domUtils.findParentByTagName(l.startContainer,"li",!0)){ +if(domUtils.isEmptyBlock(j)){p=l.createBookmark();var q=j.parentNode;if(j!==q.lastChild?(domUtils.breakParent(j,q),f(j)):(q.parentNode.insertBefore(j,q.nextSibling),domUtils.isEmptyNode(q)&&domUtils.remove(q)),!dtd.$list[j.parentNode.tagName])if(domUtils.isBlockElm(j.firstChild))domUtils.remove(j,!0);else{for(s=h.document.createElement("p"),j.parentNode.insertBefore(s,j);j.firstChild;)s.appendChild(j.firstChild);domUtils.remove(j)}l.moveToBookmark(p).select()}else{var r=j.firstChild;if(!r||!domUtils.isBlockElm(r)){var s=h.document.createElement("p");for(!j.firstChild&&domUtils.fillNode(h.document,s);j.firstChild;)s.appendChild(j.firstChild);j.appendChild(s),r=s}var t=h.document.createElement("span");l.insertNode(t),domUtils.breakParent(t,j);var u=t.nextSibling;r=u.firstChild,r||(s=h.document.createElement("p"),domUtils.fillNode(h.document,s),u.appendChild(s),r=s),domUtils.isEmptyNode(r)&&(r.innerHTML="",domUtils.fillNode(h.document,r)),l.setStart(r,0).collapse(!0).shrinkBoundary().select(),domUtils.remove(t);var v=u.previousSibling;v&&domUtils.isEmptyBlock(v)&&(v.innerHTML="

    ",domUtils.fillNode(h.document,v.firstChild))}c()}}}if(8==e&&(l=h.selection.getRange(),l.collapsed&&domUtils.isStartInblock(l)&&(o=l.cloneRange().trimBoundary(),j=domUtils.findParentByTagName(l.startContainer,"li",!0),j&&domUtils.isStartInblock(o)))){if(m=domUtils.findParentByTagName(l.startContainer,"p",!0),m&&m!==j.firstChild){var q=domUtils.findParentByTagName(m,["ol","ul"]);return domUtils.breakParent(m,q),f(m),h.fireEvent("contentchange"),l.setStart(m,0).setCursor(!1,!0),h.fireEvent("saveScene"),void domUtils.preventDefault(b)}if(j&&(v=j.previousSibling)){if(46==e&&j.childNodes.length)return;if(dtd.$list[v.tagName]&&(v=v.lastChild),h.undoManger&&h.undoManger.save(),r=j.firstChild,domUtils.isBlockElm(r))if(domUtils.isEmptyNode(r))for(v.appendChild(r),l.setStart(r,0).setCursor(!1,!0);j.firstChild;)v.appendChild(j.firstChild);else t=h.document.createElement("span"),l.insertNode(t),domUtils.isEmptyBlock(v)&&(v.innerHTML=""),domUtils.moveChild(j,v),l.setStartBefore(t).collapse(!0).select(!0),domUtils.remove(t);else if(domUtils.isEmptyNode(j)){var s=h.document.createElement("p");v.appendChild(s),l.setStart(s,0).setCursor()}else for(l.setEnd(v,v.childNodes.length).collapse().select(!0);j.firstChild;)v.appendChild(j.firstChild);return domUtils.remove(j),h.fireEvent("contentchange"),h.fireEvent("saveScene"),void domUtils.preventDefault(b)}if(j&&!j.previousSibling){var q=j.parentNode,p=l.createBookmark();if(domUtils.isTagNode(q.parentNode,"ol ul"))q.parentNode.insertBefore(j,q),domUtils.isEmptyNode(q)&&domUtils.remove(q);else{for(;j.firstChild;)q.parentNode.insertBefore(j.firstChild,q);domUtils.remove(j),domUtils.isEmptyNode(q)&&domUtils.remove(q)}return l.moveToBookmark(p).setCursor(!1,!0),h.fireEvent("contentchange"),h.fireEvent("saveScene"),void domUtils.preventDefault(b)}}}),h.addListener("keyup",function(a,c){var e=c.keyCode||c.which;if(8==e){var f,g=h.selection.getRange();(f=domUtils.findParentByTagName(g.startContainer,["ol","ul"],!0))&&d(f,f.tagName.toLowerCase(),b(f)||domUtils.getComputedStyle(f,"list-style-type"),!0)}}),h.addListener("tabkeydown",function(){function a(a){if(h.options.maxListLevel!=-1){for(var b=a.parentNode,c=0;/[ou]l/i.test(b.tagName);)c++,b=b.parentNode;if(c>=h.options.maxListLevel)return!0}}var c=h.selection.getRange(),f=domUtils.findParentByTagName(c.startContainer,"li",!0);if(f){var g;if(!c.collapsed){h.fireEvent("saveScene"),g=c.createBookmark();for(var i,j,l=0,m=domUtils.findParents(f);j=m[l++];)if(domUtils.isTagNode(j,"ol ul")){i=j;break}var n=f;if(g.end)for(;n&&!(domUtils.getPosition(n,g.end)&domUtils.POSITION_FOLLOWING);)if(a(n))n=domUtils.getNextDomNode(n,!1,null,function(a){return a!==i});else{var o=n.parentNode,p=h.document.createElement(o.tagName),q=utils.indexOf(k[p.tagName],b(o)||domUtils.getComputedStyle(o,"list-style-type")),r=q+1==k[p.tagName].length?0:q+1,s=k[p.tagName][r];for(e(p,s),o.insertBefore(p,n);n&&!(domUtils.getPosition(n,g.end)&domUtils.POSITION_FOLLOWING);){if(f=n.nextSibling,p.appendChild(n),!f||domUtils.isTagNode(f,"ol ul")){if(f)for(;(f=f.firstChild)&&"LI"!=f.tagName;);else f=domUtils.getNextDomNode(n,!1,null,function(a){return a!==i});break}n=f}d(p,p.tagName.toLowerCase(),s),n=f}return h.fireEvent("contentchange"),c.moveToBookmark(g).select(),!0}if(a(f))return!0;var o=f.parentNode,p=h.document.createElement(o.tagName),q=utils.indexOf(k[p.tagName],b(o)||domUtils.getComputedStyle(o,"list-style-type"));q=q+1==k[p.tagName].length?0:q+1;var s=k[p.tagName][q];if(e(p,s),domUtils.isStartInblock(c))return h.fireEvent("saveScene"),g=c.createBookmark(),o.insertBefore(p,f),p.appendChild(f),d(p,p.tagName.toLowerCase(),s),h.fireEvent("contentchange"),c.moveToBookmark(g).select(!0),!0}}),h.commands.insertorderedlist=h.commands.insertunorderedlist={execCommand:function(a,c){c||(c="insertorderedlist"==a.toLowerCase()?"decimal":"disc");var f=this,h=this.selection.getRange(),j=function(a){return 1==a.nodeType?"br"!=a.tagName.toLowerCase():!domUtils.isWhitespace(a)},k="insertorderedlist"==a.toLowerCase()?"ol":"ul",l=f.document.createDocumentFragment();h.adjustmentBoundary().shrinkBoundary();var m,n,o,p,q=h.createBookmark(!0),r=g(f.document.getElementById(q.start)),s=0,t=g(f.document.getElementById(q.end)),u=0;if(r||t){if(r&&(m=r.parentNode),q.end||(t=r),t&&(n=t.parentNode),m===n){for(;r!==t;){if(p=r,r=r.nextSibling,!domUtils.isBlockElm(p.firstChild)){for(var v=f.document.createElement("p");p.firstChild;)v.appendChild(p.firstChild);p.appendChild(v)}l.appendChild(p)}if(p=f.document.createElement("span"),m.insertBefore(p,t),!domUtils.isBlockElm(t.firstChild)){for(v=f.document.createElement("p");t.firstChild;)v.appendChild(t.firstChild);t.appendChild(v)}l.appendChild(t),domUtils.breakParent(p,m),domUtils.isEmptyNode(p.previousSibling)&&domUtils.remove(p.previousSibling),domUtils.isEmptyNode(p.nextSibling)&&domUtils.remove(p.nextSibling);var w=b(m)||domUtils.getComputedStyle(m,"list-style-type")||("insertorderedlist"==a.toLowerCase()?"decimal":"disc");if(m.tagName.toLowerCase()==k&&w==c){for(var x,y=0,z=f.document.createDocumentFragment();x=l.firstChild;)if(domUtils.isTagNode(x,"ol ul"))z.appendChild(x);else for(;x.firstChild;)z.appendChild(x.firstChild),domUtils.remove(x);p.parentNode.insertBefore(z,p)}else o=f.document.createElement(k),e(o,c),o.appendChild(l),p.parentNode.insertBefore(o,p);return domUtils.remove(p),o&&d(o,k,c),void h.moveToBookmark(q).select()}if(r){for(;r;){if(p=r.nextSibling,domUtils.isTagNode(r,"ol ul"))l.appendChild(r);else{for(var A=f.document.createDocumentFragment(),B=0;r.firstChild;)domUtils.isBlockElm(r.firstChild)&&(B=1),A.appendChild(r.firstChild);if(B)l.appendChild(A);else{var C=f.document.createElement("p");C.appendChild(A),l.appendChild(C)}domUtils.remove(r)}r=p}m.parentNode.insertBefore(l,m.nextSibling),domUtils.isEmptyNode(m)?(h.setStartBefore(m),domUtils.remove(m)):h.setStartAfter(m),s=1}if(t&&domUtils.inDoc(n,f.document)){for(r=n.firstChild;r&&r!==t;){if(p=r.nextSibling,domUtils.isTagNode(r,"ol ul"))l.appendChild(r);else{for(A=f.document.createDocumentFragment(),B=0;r.firstChild;)domUtils.isBlockElm(r.firstChild)&&(B=1),A.appendChild(r.firstChild);B?l.appendChild(A):(C=f.document.createElement("p"),C.appendChild(A),l.appendChild(C)),domUtils.remove(r)}r=p}var D=domUtils.createElement(f.document,"div",{tmpDiv:1});domUtils.moveChild(t,D),l.appendChild(D),domUtils.remove(t),n.parentNode.insertBefore(l,n),h.setEndBefore(n),domUtils.isEmptyNode(n)&&domUtils.remove(n),u=1}}s||h.setStartBefore(f.document.getElementById(q.start)),q.end&&!u&&h.setEndAfter(f.document.getElementById(q.end)),h.enlarge(!0,function(a){return i[a.tagName]}),l=f.document.createDocumentFragment();for(var E,F=h.createBookmark(),G=domUtils.getNextDomNode(F.start,!1,j),H=h.cloneRange(),I=domUtils.isBlockElm;G&&G!==F.end&&domUtils.getPosition(G,F.end)&domUtils.POSITION_PRECEDING;)if(3==G.nodeType||dtd.li[G.tagName]){if(1==G.nodeType&&dtd.$list[G.tagName]){for(;G.firstChild;)l.appendChild(G.firstChild);E=domUtils.getNextDomNode(G,!1,j),domUtils.remove(G),G=E;continue}for(E=G,H.setStartBefore(G);G&&G!==F.end&&(!I(G)||domUtils.isBookmarkNode(G));)E=G,G=domUtils.getNextDomNode(G,!1,null,function(a){return!i[a.tagName]});G&&I(G)&&(p=domUtils.getNextDomNode(E,!1,j),p&&domUtils.isBookmarkNode(p)&&(G=domUtils.getNextDomNode(p,!1,j),E=p)),H.setEndAfter(E),G=domUtils.getNextDomNode(E,!1,j);var J=h.document.createElement("li");if(J.appendChild(H.extractContents()),domUtils.isEmptyNode(J)){for(var E=h.document.createElement("p");J.firstChild;)E.appendChild(J.firstChild);J.appendChild(E)}l.appendChild(J)}else G=domUtils.getNextDomNode(G,!0,j);h.moveToBookmark(F).collapse(!0),o=f.document.createElement(k),e(o,c),o.appendChild(l),h.insertNode(o),d(o,k,c);for(var x,y=0,K=domUtils.getElementsByTagName(o,"div");x=K[y++];)x.getAttribute("tmpDiv")&&domUtils.remove(x,!0);h.moveToBookmark(q).select()},queryCommandState:function(a){for(var b,c="insertorderedlist"==a.toLowerCase()?"ol":"ul",d=this.selection.getStartElementPath(),e=0;b=d[e++];){if("TABLE"==b.nodeName)return 0;if(c==b.nodeName.toLowerCase())return 1}return 0},queryCommandValue:function(a){for(var c,d,e="insertorderedlist"==a.toLowerCase()?"ol":"ul",f=this.selection.getStartElementPath(),g=0;d=f[g++];){if("TABLE"==d.nodeName){c=null;break}if(e==d.nodeName.toLowerCase()){c=d;break}}return c?b(c)||domUtils.getComputedStyle(c,"list-style-type"):null}}},function(){var a={textarea:function(a,b){var c=b.ownerDocument.createElement("textarea");return c.style.cssText="position:absolute;resize:none;width:100%;height:100%;border:0;padding:0;margin:0;overflow-y:auto;",browser.ie&&browser.version<8&&(c.style.width=b.offsetWidth+"px",c.style.height=b.offsetHeight+"px",b.onresize=function(){c.style.width=b.offsetWidth+"px",c.style.height=b.offsetHeight+"px"}),b.appendChild(c),{setContent:function(a){c.value=a},getContent:function(){return c.value},select:function(){var a;browser.ie?(a=c.createTextRange(),a.collapse(!0),a.select()):(c.setSelectionRange(0,0),c.focus())},dispose:function(){b.removeChild(c),b.onresize=null,c=null,b=null}}},codemirror:function(a,b){var c=window.CodeMirror(b,{mode:"text/html",tabMode:"indent",lineNumbers:!0,lineWrapping:!0}),d=c.getWrapperElement();return d.style.cssText='position:absolute;left:0;top:0;width:100%;height:100%;font-family:consolas,"Courier new",monospace;font-size:13px;',c.getScrollerElement().style.cssText="position:absolute;left:0;top:0;width:100%;height:100%;",c.refresh(),{getCodeMirror:function(){return c},setContent:function(a){c.setValue(a)},getContent:function(){return c.getValue()},select:function(){c.focus()},dispose:function(){b.removeChild(d),d=null,c=null}}}};UE.plugins.source=function(){function b(b){return a["codemirror"==f.sourceEditor&&window.CodeMirror?"codemirror":"textarea"](e,b)}var c,d,e=this,f=this.options,g=!1;f.sourceEditor=browser.ie?"textarea":f.sourceEditor||"codemirror",e.setOpt({sourceEditorFirst:!1});var h,i,j;e.commands.source={execCommand:function(){if(g=!g){j=e.selection.getRange().createAddress(!1,!0),e.undoManger&&e.undoManger.save(!0),browser.gecko&&(e.body.contentEditable=!1),h=e.iframe.style.cssText,e.iframe.style.cssText+="position:absolute;left:-32768px;top:-32768px;",e.fireEvent("beforegetcontent");var a=UE.htmlparser(e.body.innerHTML);e.filterOutputRule(a),a.traversal(function(a){if("element"==a.type)switch(a.tagName){case"td":case"th":case"caption":a.children&&1==a.children.length&&"br"==a.firstChild().tagName&&a.removeChild(a.firstChild());break;case"pre":a.innerText(a.innerText().replace(/ /g," "))}}),e.fireEvent("aftergetcontent");var f=a.toHtml(!0);c=b(e.iframe.parentNode),c.setContent(f),d=e.setContent,e.setContent=function(a){var b=UE.htmlparser(a);e.filterInputRule(b),a=b.toHtml(),c.setContent(a)},setTimeout(function(){c.select(),e.addListener("fullscreenchanged",function(){try{c.getCodeMirror().refresh()}catch(a){}})}),i=e.getContent,e.getContent=function(){return c.getContent()||"

    "+(browser.ie?"":"
    ")+"

    "}}else{e.iframe.style.cssText=h;var k=c.getContent()||"

    "+(browser.ie?"":"
    ")+"

    ";k=k.replace(new RegExp("[\\r\\t\\n ]*]*)>","g"),function(a,b){return b&&!dtd.$inlineWithA[b.toLowerCase()]?a.replace(/(^[\n\r\t ]*)|([\n\r\t ]*$)/g,""):a.replace(/(^[\n\r\t]*)|([\n\r\t]*$)/g,"")}),e.setContent=d,e.setContent(k),c.dispose(),c=null,e.getContent=i;var l=e.body.firstChild;if(l||(e.body.innerHTML="

    "+(browser.ie?"":"
    ")+"

    ",l=e.body.firstChild),e.undoManger&&e.undoManger.save(!0),browser.gecko){var m=document.createElement("input");m.style.cssText="position:absolute;left:0;top:-32768px",document.body.appendChild(m),e.body.contentEditable=!1,setTimeout(function(){domUtils.setViewportOffset(m,{left:-32768,top:0}),m.focus(),setTimeout(function(){e.body.contentEditable=!0,e.selection.getRange().moveToAddress(j).select(!0),domUtils.remove(m)})})}else try{e.selection.getRange().moveToAddress(j).select(!0)}catch(n){}}this.fireEvent("sourcemodechanged",g)},queryCommandState:function(){return 0|g},notNeedUndo:1};var k=e.queryCommandState;e.queryCommandState=function(a){return a=a.toLowerCase(),g?a in{source:1,fullscreen:1}?1:-1:k.apply(this,arguments)},"codemirror"==f.sourceEditor&&e.addListener("ready",function(){utils.loadFile(document,{src:f.codeMirrorJsUrl||f.UEDITOR_HOME_URL+"third-party/codemirror/codemirror.js",tag:"script",type:"text/javascript",defer:"defer"},function(){f.sourceEditorFirst&&setTimeout(function(){e.execCommand("source")},0)}),utils.loadFile(document,{tag:"link",rel:"stylesheet",type:"text/css",href:f.codeMirrorCssUrl||f.UEDITOR_HOME_URL+"third-party/codemirror/codemirror.css"})})}}(),UE.plugins.enterkey=function(){var a,b=this,c=b.options.enterTag;b.addListener("keyup",function(c,d){var e=d.keyCode||d.which;if(13==e){var f,g=b.selection.getRange(),h=g.startContainer;if(browser.ie)b.fireEvent("saveScene",!0,!0);else{if(/h\d/i.test(a)){if(browser.gecko){var i=domUtils.findParentByTagName(h,["h1","h2","h3","h4","h5","h6","blockquote","caption","table"],!0);i||(b.document.execCommand("formatBlock",!1,"

    "),f=1)}else if(1==h.nodeType){var j,k=b.document.createTextNode("");if(g.insertNode(k),j=domUtils.findParentByTagName(k,"div",!0)){for(var l=b.document.createElement("p");j.firstChild;)l.appendChild(j.firstChild);j.parentNode.insertBefore(l,j),domUtils.remove(j),g.setStartBefore(k).setCursor(),f=1}domUtils.remove(k)}b.undoManger&&f&&b.undoManger.save()}browser.opera&&g.select()}}}),b.addListener("keydown",function(d,e){var f=e.keyCode||e.which;if(13==f){if(b.fireEvent("beforeenterkeydown"))return void domUtils.preventDefault(e);b.fireEvent("saveScene",!0,!0),a="";var g=b.selection.getRange();if(!g.collapsed){var h=g.startContainer,i=g.endContainer,j=domUtils.findParentByTagName(h,"td",!0),k=domUtils.findParentByTagName(i,"td",!0);if(j&&k&&j!==k||!j&&k||j&&!k)return void(e.preventDefault?e.preventDefault():e.returnValue=!1)}if("p"==c)browser.ie||(h=domUtils.findParentByTagName(g.startContainer,["ol","ul","p","h1","h2","h3","h4","h5","h6","blockquote","caption"],!0),h||browser.opera?(a=h.tagName,"p"==h.tagName.toLowerCase()&&browser.gecko&&domUtils.removeDirtyAttr(h)):(b.document.execCommand("formatBlock",!1,"

    "),browser.gecko&&(g=b.selection.getRange(),h=domUtils.findParentByTagName(g.startContainer,"p",!0),h&&domUtils.removeDirtyAttr(h))));else if(e.preventDefault?e.preventDefault():e.returnValue=!1,g.collapsed){m=g.document.createElement("br"),g.insertNode(m);var l=m.parentNode;l.lastChild===m?(m.parentNode.insertBefore(m.cloneNode(!0),m),g.setStartBefore(m)):g.setStartAfter(m),g.setCursor()}else if(g.deleteContents(),h=g.startContainer,1==h.nodeType&&(h=h.childNodes[g.startOffset])){for(;1==h.nodeType;){if(dtd.$empty[h.tagName])return g.setStartBefore(h).setCursor(),b.undoManger&&b.undoManger.save(),!1;if(!h.firstChild){var m=g.document.createElement("br");return h.appendChild(m),g.setStart(h,0).setCursor(),b.undoManger&&b.undoManger.save(),!1}h=h.firstChild}h===g.startContainer.childNodes[g.startOffset]?(m=g.document.createElement("br"),g.insertNode(m).setCursor()):g.setStart(h,0).setCursor()}else m=g.document.createElement("br"),g.insertNode(m).setStartAfter(m).setCursor()}})},UE.plugins.keystrokes=function(){var a=this,b=!0;a.addListener("keydown",function(c,d){var e=d.keyCode||d.which,f=a.selection.getRange();if(!f.collapsed&&!(d.ctrlKey||d.shiftKey||d.altKey||d.metaKey)&&(e>=65&&e<=90||e>=48&&e<=57||e>=96&&e<=111||{13:1,8:1,46:1}[e])){var g=f.startContainer;if(domUtils.isFillChar(g)&&f.setStartBefore(g),g=f.endContainer,domUtils.isFillChar(g)&&f.setEndAfter(g),f.txtToElmBoundary(),f.endContainer&&1==f.endContainer.nodeType&&(g=f.endContainer.childNodes[f.endOffset],g&&domUtils.isBr(g)&&f.setEndAfter(g)),0==f.startOffset&&(g=f.startContainer,domUtils.isBoundaryNode(g,"firstChild")&&(g=f.endContainer,f.endOffset==(3==g.nodeType?g.nodeValue.length:g.childNodes.length)&&domUtils.isBoundaryNode(g,"lastChild"))))return a.fireEvent("saveScene"),a.body.innerHTML="

    "+(browser.ie?"":"
    ")+"

    ",f.setStart(a.body.firstChild,0).setCursor(!1,!0),void a._selectionChange()}if(e==keymap.Backspace){if(f=a.selection.getRange(),b=f.collapsed,a.fireEvent("delkeydown",d))return;var h,i;if(f.collapsed&&f.inFillChar()&&(h=f.startContainer,domUtils.isFillChar(h)?(f.setStartBefore(h).shrinkBoundary(!0).collapse(!0),domUtils.remove(h)):(h.nodeValue=h.nodeValue.replace(new RegExp("^"+domUtils.fillChar),""),f.startOffset--,f.collapse(!0).select(!0))),h=f.getClosedNode())return a.fireEvent("saveScene"),f.setStartBefore(h),domUtils.remove(h),f.setCursor(),a.fireEvent("saveScene"),void domUtils.preventDefault(d);if(!browser.ie&&(h=domUtils.findParentByTagName(f.startContainer,"table",!0),i=domUtils.findParentByTagName(f.endContainer,"table",!0),h&&!i||!h&&i||h!==i))return void d.preventDefault()}if(e==keymap.Tab){var j={ol:1,ul:1,table:1};if(a.fireEvent("tabkeydown",d))return void domUtils.preventDefault(d);var k=a.selection.getRange();a.fireEvent("saveScene");for(var l=0,m="",n=a.options.tabSize||4,o=a.options.tabNode||" ";l"});d.insertNode(g).setStart(g,0).setCursor(!1,!0)}}if(!b&&(3==d.startContainer.nodeType||1==d.startContainer.nodeType&&domUtils.isEmptyBlock(d.startContainer)))if(browser.ie){var k=d.document.createElement("span");d.insertNode(k).setStartBefore(k).collapse(!0),d.select(),domUtils.remove(k)}else d.select()}})},UE.plugins.fiximgclick=function(){function a(){this.editor=null,this.resizer=null,this.cover=null,this.doc=document,this.prePos={x:0,y:0},this.startPos={x:0,y:0}}var b=!1;return function(){var c=[[0,0,-1,-1],[0,0,0,-1],[0,0,1,-1],[0,0,-1,0],[0,0,1,0],[0,0,-1,1],[0,0,0,1],[0,0,1,1]];a.prototype={init:function(a){var b=this;b.editor=a,b.startPos=this.prePos={x:0,y:0},b.dragId=-1;var c=[],d=b.cover=document.createElement("div"),e=b.resizer=document.createElement("div");for(d.id=b.editor.ui.id+"_imagescale_cover",d.style.cssText="position:absolute;display:none;z-index:"+b.editor.options.zIndex+";filter:alpha(opacity=0); opacity:0;background:#CCC;",domUtils.on(d,"mousedown click",function(){b.hide()}),i=0;i<8;i++)c.push('');e.id=b.editor.ui.id+"_imagescale",e.className="edui-editor-imagescale",e.innerHTML=c.join(""),e.style.cssText+=";display:none;border:1px solid #3b77ff;z-index:"+b.editor.options.zIndex+";",b.editor.ui.getDom().appendChild(d),b.editor.ui.getDom().appendChild(e),b.initStyle(),b.initEvents()},initStyle:function(){utils.cssRule("imagescale",".edui-editor-imagescale{display:none;position:absolute;border:1px solid #38B2CE;cursor:hand;-webkit-box-sizing: content-box;-moz-box-sizing: content-box;box-sizing: content-box;}.edui-editor-imagescale span{position:absolute;width:6px;height:6px;overflow:hidden;font-size:0px;display:block;background-color:#3C9DD0;}.edui-editor-imagescale .edui-editor-imagescale-hand0{cursor:nw-resize;top:0;margin-top:-4px;left:0;margin-left:-4px;}.edui-editor-imagescale .edui-editor-imagescale-hand1{cursor:n-resize;top:0;margin-top:-4px;left:50%;margin-left:-4px;}.edui-editor-imagescale .edui-editor-imagescale-hand2{cursor:ne-resize;top:0;margin-top:-4px;left:100%;margin-left:-3px;}.edui-editor-imagescale .edui-editor-imagescale-hand3{cursor:w-resize;top:50%;margin-top:-4px;left:0;margin-left:-4px;}.edui-editor-imagescale .edui-editor-imagescale-hand4{cursor:e-resize;top:50%;margin-top:-4px;left:100%;margin-left:-3px;}.edui-editor-imagescale .edui-editor-imagescale-hand5{cursor:sw-resize;top:100%;margin-top:-3px;left:0;margin-left:-4px;}.edui-editor-imagescale .edui-editor-imagescale-hand6{cursor:s-resize;top:100%;margin-top:-3px;left:50%;margin-left:-4px;}.edui-editor-imagescale .edui-editor-imagescale-hand7{cursor:se-resize;top:100%;margin-top:-3px;left:100%;margin-left:-3px;}")},initEvents:function(){var a=this;a.startPos.x=a.startPos.y=0,a.isDraging=!1},_eventHandler:function(a){var c=this;switch(a.type){case"mousedown":var d,d=a.target||a.srcElement;d.className.indexOf("edui-editor-imagescale-hand")!=-1&&c.dragId==-1&&(c.dragId=d.className.slice(-1),c.startPos.x=c.prePos.x=a.clientX,c.startPos.y=c.prePos.y=a.clientY,domUtils.on(c.doc,"mousemove",c.proxy(c._eventHandler,c)));break;case"mousemove":c.dragId!=-1&&(c.updateContainerStyle(c.dragId,{x:a.clientX-c.prePos.x,y:a.clientY-c.prePos.y}),c.prePos.x=a.clientX,c.prePos.y=a.clientY,b=!0,c.updateTargetElement());break;case"mouseup":c.dragId!=-1&&(c.updateContainerStyle(c.dragId,{x:a.clientX-c.prePos.x,y:a.clientY-c.prePos.y}),c.updateTargetElement(),c.target.parentNode&&c.attachTo(c.target),c.dragId=-1),domUtils.un(c.doc,"mousemove",c.proxy(c._eventHandler,c)),b&&(b=!1,c.editor.fireEvent("contentchange"))}},updateTargetElement:function(){var a=this;domUtils.setStyles(a.target,{width:a.resizer.style.width,height:a.resizer.style.height}),a.target.width=parseInt(a.resizer.style.width),a.target.height=parseInt(a.resizer.style.height),a.attachTo(a.target)},updateContainerStyle:function(a,b){var d,e=this,f=e.resizer;0!=c[a][0]&&(d=parseInt(f.style.left)+b.x,f.style.left=e._validScaledProp("left",d)+"px"),0!=c[a][1]&&(d=parseInt(f.style.top)+b.y,f.style.top=e._validScaledProp("top",d)+"px"),0!=c[a][2]&&(d=f.clientWidth+c[a][2]*b.x,f.style.width=e._validScaledProp("width",d)+"px"),0!=c[a][3]&&(d=f.clientHeight+c[a][3]*b.y,f.style.height=e._validScaledProp("height",d)+"px")},_validScaledProp:function(a,b){var c=this.resizer,d=document;switch(b=isNaN(b)?0:b,a){case"left":return b<0?0:b+c.clientWidth>d.clientWidth?d.clientWidth-c.clientWidth:b;case"top":return b<0?0:b+c.clientHeight>d.clientHeight?d.clientHeight-c.clientHeight:b;case"width":return b<=0?1:b+c.offsetLeft>d.clientWidth?d.clientWidth-c.offsetLeft:b;case"height":return b<=0?1:b+c.offsetTop>d.clientHeight?d.clientHeight-c.offsetTop:b}},hideCover:function(){this.cover.style.display="none"},showCover:function(){var a=this,b=domUtils.getXY(a.editor.ui.getDom()),c=domUtils.getXY(a.editor.iframe);domUtils.setStyles(a.cover,{width:a.editor.iframe.offsetWidth+"px",height:a.editor.iframe.offsetHeight+"px",top:c.y-b.y+"px",left:c.x-b.x+"px",position:"absolute",display:""})},show:function(a){var b=this;b.resizer.style.display="block",a&&b.attachTo(a),domUtils.on(this.resizer,"mousedown",b.proxy(b._eventHandler,b)),domUtils.on(b.doc,"mouseup",b.proxy(b._eventHandler,b)),b.showCover(),b.editor.fireEvent("afterscaleshow",b),b.editor.fireEvent("saveScene")},hide:function(){var a=this;a.hideCover(),a.resizer.style.display="none",domUtils.un(a.resizer,"mousedown",a.proxy(a._eventHandler,a)),domUtils.un(a.doc,"mouseup",a.proxy(a._eventHandler,a)),a.editor.fireEvent("afterscalehide",a)},proxy:function(a,b){return function(c){return a.apply(b||this,arguments)}},attachTo:function(a){var b=this,c=b.target=a,d=this.resizer,e=domUtils.getXY(c),f=domUtils.getXY(b.editor.iframe),g=domUtils.getXY(d.parentNode);domUtils.setStyles(d,{width:c.width+"px",height:c.height+"px",left:f.x+e.x-b.editor.document.body.scrollLeft-g.x-parseInt(d.style.borderLeftWidth)+"px",top:f.y+e.y-b.editor.document.body.scrollTop-g.y-parseInt(d.style.borderTopWidth)+"px"})}}}(),function(){var b,c=this;c.setOpt("imageScaleEnabled",!0),!browser.ie&&c.options.imageScaleEnabled&&c.addListener("click",function(d,e){var f=c.selection.getRange(),g=f.getClosedNode();if(g&&"IMG"==g.tagName&&"false"!=c.body.contentEditable){if(g.className.indexOf("edui-faked-music")!=-1||g.getAttribute("anchorname")||domUtils.hasClass(g,"loadingclass")||domUtils.hasClass(g,"loaderrorclass"))return;if(!b){b=new a,b.init(c),c.ui.getDom().appendChild(b.resizer);var h,i=function(a){b.hide(),b.target&&c.selection.getRange().selectNode(b.target).select()},j=function(a){var b=a.target||a.srcElement;!b||void 0!==b.className&&b.className.indexOf("edui-editor-imagescale")!=-1||i(a)};c.addListener("afterscaleshow",function(a){c.addListener("beforekeydown",i),c.addListener("beforemousedown",j),domUtils.on(document,"keydown",i),domUtils.on(document,"mousedown",j),c.selection.getNative().removeAllRanges()}),c.addListener("afterscalehide",function(a){c.removeListener("beforekeydown",i),c.removeListener("beforemousedown",j),domUtils.un(document,"keydown",i),domUtils.un(document,"mousedown",j);var d=b.target;d.parentNode&&c.selection.getRange().selectNode(d).select()}),domUtils.on(b.resizer,"mousedown",function(a){c.selection.getNative().removeAllRanges();var d=a.target||a.srcElement;d&&d.className.indexOf("edui-editor-imagescale-hand")==-1&&(h=setTimeout(function(){b.hide(),b.target&&c.selection.getRange().selectNode(d).select()},200))}),domUtils.on(b.resizer,"mouseup",function(a){var b=a.target||a.srcElement;b&&b.className.indexOf("edui-editor-imagescale-hand")==-1&&clearTimeout(h)})}b.show(g)}else b&&"none"!=b.resizer.style.display&&b.hide()}),browser.webkit&&c.addListener("click",function(a,b){if("IMG"==b.target.tagName&&"false"!=c.body.contentEditable){var d=new dom.Range(c.document);d.selectNode(b.target).select()}})}}(),UE.plugin.register("autolink",function(){var a=0;return browser.ie?{}:{bindEvents:{reset:function(){a=0},keydown:function(a,b){var c=this,d=b.keyCode||b.which;if(32==d||13==d){for(var e,f,g=c.selection.getNative(),h=g.getRangeAt(0).cloneRange(),i=h.startContainer;1==i.nodeType&&h.startOffset>0&&(i=h.startContainer.childNodes[h.startOffset-1]);)h.setStart(i,1==i.nodeType?i.childNodes.length:i.nodeValue.length),h.collapse(!0),i=h.startContainer;do{if(0==h.startOffset){for(i=h.startContainer.previousSibling;i&&1==i.nodeType;)i=i.lastChild;if(!i||domUtils.isFillChar(i))break;e=i.nodeValue.length}else i=h.startContainer,e=h.startOffset;h.setStart(i,e-1),f=h.toString().charCodeAt(0)}while(160!=f&&32!=f);if(h.toString().replace(new RegExp(domUtils.fillChar,"g"),"").match(/(?:https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.)/i)){for(;h.toString().length&&!/^(?:https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.)/i.test(h.toString());)try{h.setStart(h.startContainer,h.startOffset+1)}catch(j){for(var i=h.startContainer;!(next=i.nextSibling);){if(domUtils.isBody(i))return;i=i.parentNode}h.setStart(next,0)}if(domUtils.findParentByTagName(h.startContainer,"a",!0))return;var k,l=c.document.createElement("a"),m=c.document.createTextNode(" ");c.undoManger&&c.undoManger.save(),l.appendChild(h.extractContents()),l.href=l.innerHTML=l.innerHTML.replace(/<[^>]+>/g,""),k=l.getAttribute("href").replace(new RegExp(domUtils.fillChar,"g"),""),k=/^(?:https?:\/\/)/gi.test(k)?k:"http://"+k,l.setAttribute("_src",utils.html(k)),l.href=utils.html(k),h.insertNode(l),l.parentNode.insertBefore(m,l.nextSibling),h.setStart(m,0),h.collapse(!0),g.removeAllRanges(),g.addRange(h),c.undoManger&&c.undoManger.save()}}}}}},function(){function a(a){if(3==a.nodeType)return null;if("A"==a.nodeName)return a;for(var b=a.lastChild;b;){if("A"==b.nodeName)return b;if(3==b.nodeType){if(domUtils.isWhitespace(b)){b=b.previousSibling;continue}return null}b=b.lastChild}}var b={37:1,38:1,39:1,40:1,13:1,32:1};browser.ie&&this.addListener("keyup",function(c,d){var e=this,f=d.keyCode;if(b[f]){var g=e.selection.getRange(),h=g.startContainer;if(13==f){for(;h&&!domUtils.isBody(h)&&!domUtils.isBlockElm(h);)h=h.parentNode;if(h&&!domUtils.isBody(h)&&"P"==h.nodeName){var i=h.previousSibling;if(i&&1==i.nodeType){var i=a(i);i&&!i.getAttribute("_href")&&domUtils.remove(i,!0)}}}else if(32==f)3==h.nodeType&&/^\s$/.test(h.nodeValue)&&(h=h.previousSibling,h&&"A"==h.nodeName&&!h.getAttribute("_href")&&domUtils.remove(h,!0));else if(h=domUtils.findParentByTagName(h,"a",!0),h&&!h.getAttribute("_href")){var j=g.createBookmark();domUtils.remove(h,!0),g.moveToBookmark(j).select(!0)}}})}),UE.plugins.autoheight=function(){function a(){var a=this;clearTimeout(e),f||(!a.queryCommandState||a.queryCommandState&&1!=a.queryCommandState("source"))&&(e=setTimeout(function(){for(var b=a.body.lastChild;b&&1!=b.nodeType;)b=b.previousSibling;b&&1==b.nodeType&&(b.style.clear="both",d=Math.max(domUtils.getXY(b).y+b.offsetHeight+25,Math.max(h.minFrameHeight,h.initialFrameHeight)),d!=g&&(d!==parseInt(a.iframe.parentNode.style.height)&&(a.iframe.parentNode.style.height=d+"px"),a.body.style.height=d+"px",g=d),domUtils.removeStyle(b,"clear"))},50))}var b=this;if(b.autoHeightEnabled=b.options.autoHeightEnabled!==!1,b.autoHeightEnabled){var c,d,e,f,g=0,h=b.options;b.addListener("fullscreenchanged",function(a,b){f=b}),b.addListener("destroy",function(){b.removeListener("contentchange afterinserthtml keyup mouseup",a)}),b.enableAutoHeight=function(){var b=this;if(b.autoHeightEnabled){var d=b.document;b.autoHeightEnabled=!0,c=d.body.style.overflowY,d.body.style.overflowY="hidden",b.addListener("contentchange afterinserthtml keyup mouseup",a),setTimeout(function(){a.call(b)},browser.gecko?100:0),b.fireEvent("autoheightchanged",b.autoHeightEnabled)}},b.disableAutoHeight=function(){b.body.style.overflowY=c||"",b.removeListener("contentchange",a),b.removeListener("keyup",a),b.removeListener("mouseup",a),b.autoHeightEnabled=!1,b.fireEvent("autoheightchanged",b.autoHeightEnabled)},b.on("setHeight",function(){b.disableAutoHeight()}),b.addListener("ready",function(){b.enableAutoHeight();var c;domUtils.on(browser.ie?b.body:b.document,browser.webkit?"dragover":"drop",function(){clearTimeout(c),c=setTimeout(function(){a.call(b)},100)});var d;window.onscroll=function(){ +null===d?d=this.scrollY:0==this.scrollY&&0!=d&&(b.window.scrollTo(0,0),d=null)}})}},UE.plugins.autofloat=function(){function a(){return UE.ui?1:(alert(g.autofloatMsg),0)}function b(){var a=document.body.style;a.backgroundImage='url("about:blank")',a.backgroundAttachment="fixed"}function c(){var a=domUtils.getXY(k),b=domUtils.getComputedStyle(k,"position"),c=domUtils.getComputedStyle(k,"left");k.style.width=k.offsetWidth+"px",k.style.zIndex=1*f.options.zIndex+1,k.parentNode.insertBefore(q,k),o||p&&browser.ie?("absolute"!=k.style.position&&(k.style.position="absolute"),k.style.top=(document.body.scrollTop||document.documentElement.scrollTop)-l+i+"px"):(browser.ie7Compat&&r&&(r=!1,k.style.left=domUtils.getXY(k).x-document.documentElement.getBoundingClientRect().left+2+"px"),"fixed"!=k.style.position&&(k.style.position="fixed",k.style.top=i+"px",("absolute"==b||"relative"==b)&&parseFloat(c)&&(k.style.left=a.x+"px")))}function d(){r=!0,q.parentNode&&q.parentNode.removeChild(q),k.style.cssText=j}function e(){var a=m(f.container),b=f.options.toolbarTopOffset||0;a.top<0&&a.bottom-k.offsetHeight>b?c():d()}var f=this,g=f.getLang();f.setOpt({topOffset:0});var h=f.options.autoFloatEnabled!==!1,i=f.options.topOffset;if(h){var j,k,l,m,n=UE.ui.uiUtils,o=browser.ie&&browser.version<=6,p=browser.quirks,q=document.createElement("div"),r=!0,s=utils.defer(function(){e()},browser.ie?200:100,!0);f.addListener("destroy",function(){domUtils.un(window,["scroll","resize"],e),f.removeListener("keydown",s)}),f.addListener("ready",function(){if(a(f)){if(!f.ui)return;m=n.getClientRect,k=f.ui.getDom("toolbarbox"),l=m(k).top,j=k.style.cssText,q.style.height=k.offsetHeight+"px",o&&b(),domUtils.on(window,["scroll","resize"],e),f.addListener("keydown",s),f.addListener("beforefullscreenchange",function(a,b){b&&d()}),f.addListener("fullscreenchanged",function(a,b){b||e()}),f.addListener("sourcemodechanged",function(a,b){setTimeout(function(){e()},0)}),f.addListener("clearDoc",function(){setTimeout(function(){e()},0)})}})}},UE.plugins.video=function(){function a(a,b,d,e,f,g,h){a=utils.unhtmlForUrl(a),f=utils.unhtml(f),g=utils.unhtml(g),b=parseInt(b,10)||0,d=parseInt(d,10)||0;var i;switch(h){case"image":i="';break;case"embed":i='';break;case"video":var j=a.substr(a.lastIndexOf(".")+1);"ogv"==j&&(j="ogg"),i="'}return i}function b(b,c){utils.each(b.getNodesByTagName(c?"img":"embed video"),function(b){var d=b.getAttr("class");if(d&&d.indexOf("edui-faked-video")!=-1){var e=a(c?b.getAttr("_url"):b.getAttr("src"),b.getAttr("width"),b.getAttr("height"),null,b.getStyle("float")||"",d,c?"embed":"image");b.parentNode.replaceChild(UE.uNode.createElement(e),b)}if(d&&d.indexOf("edui-upload-video")!=-1){var e=a(c?b.getAttr("_url"):b.getAttr("src"),b.getAttr("width"),b.getAttr("height"),null,b.getStyle("float")||"",d,c?"video":"image");b.parentNode.replaceChild(UE.uNode.createElement(e),b)}})}var c=this;c.addOutputRule(function(a){b(a,!0)}),c.addInputRule(function(a){b(a)}),c.commands.insertvideo={execCommand:function(b,d,e){d=utils.isArray(d)?d:[d];for(var f,g,h=[],i="tmpVedio",j=0,k=d.length;j0)return 0;for(var c in dtd.$isNotEmpty)if(dtd.$isNotEmpty.hasOwnProperty(c)&&a.getElementsByTagName(c).length)return 0;return 1},b.getWidth=function(a){return a?parseInt(domUtils.getComputedStyle(a,"width"),10):0},b.getTableCellAlignState=function(a){!utils.isArray(a)&&(a=[a]);var b={},c=["align","valign"],d=null,e=!0;return utils.each(a,function(a){return utils.each(c,function(c){if(d=a.getAttribute(c),!b[c]&&d)b[c]=d;else if(!b[c]||d!==b[c])return e=!1,!1}),e}),e?b:null},b.getTableItemsByRange=function(a){var b=a.selection.getStart();b&&b.id&&0===b.id.indexOf("_baidu_bookmark_start_")&&b.nextSibling&&(b=b.nextSibling);var c=b&&domUtils.findParentByTagName(b,["td","th"],!0),d=c&&c.parentNode,e=b&&domUtils.findParentByTagName(b,"caption",!0),f=e?e.parentNode:d&&d.parentNode.parentNode;return{cell:c,tr:d,table:f,caption:e}},b.getUETableBySelected=function(a){var c=b.getTableItemsByRange(a).table;return c&&c.ueTable&&c.ueTable.selectedTds.length?c.ueTable:null},b.getDefaultValue=function(a,b){var c,d,e,f,g={thin:"0px",medium:"1px",thick:"2px"};if(b)return h=b.getElementsByTagName("td")[0],f=domUtils.getComputedStyle(b,"border-left-width"),c=parseInt(g[f]||f,10),f=domUtils.getComputedStyle(h,"padding-left"),d=parseInt(g[f]||f,10),f=domUtils.getComputedStyle(h,"border-left-width"),e=parseInt(g[f]||f,10),{tableBorder:c,tdPadding:d,tdBorder:e};b=a.document.createElement("table"),b.insertRow(0).insertCell(0).innerHTML="xxx",a.body.appendChild(b);var h=b.getElementsByTagName("td")[0];return f=domUtils.getComputedStyle(b,"border-left-width"),c=parseInt(g[f]||f,10),f=domUtils.getComputedStyle(h,"padding-left"),d=parseInt(g[f]||f,10),f=domUtils.getComputedStyle(h,"border-left-width"),e=parseInt(g[f]||f,10),domUtils.remove(b),{tableBorder:c,tdPadding:d,tdBorder:e}},b.getUETable=function(a){var c=a.tagName.toLowerCase();return a="td"==c||"th"==c||"caption"==c?domUtils.findParentByTagName(a,"table",!0):a,a.ueTable||(a.ueTable=new b(a)),a.ueTable},b.cloneCell=function(a,b,c){if(!a||utils.isString(a))return this.table.ownerDocument.createElement(a||"td");var d=domUtils.hasClass(a,"selectTdClass");d&&domUtils.removeClasses(a,"selectTdClass");var e=a.cloneNode(!0);return b&&(e.rowSpan=e.colSpan=1),!c&&domUtils.removeAttributes(e,"width height"),!c&&domUtils.removeAttributes(e,"style"),e.style.borderLeftStyle="",e.style.borderTopStyle="",e.style.borderLeftColor=a.style.borderRightColor,e.style.borderLeftWidth=a.style.borderRightWidth,e.style.borderTopColor=a.style.borderBottomColor,e.style.borderTopWidth=a.style.borderBottomWidth,d&&domUtils.addClass(a,"selectTdClass"),e},b.prototype={getMaxRows:function(){for(var a,b=this.table.rows,c=1,d=0;a=b[d];d++){for(var e,f=1,g=0;e=a.cells[g++];)f=Math.max(e.rowSpan||1,f);c=Math.max(f+d,c)}return c},getMaxCols:function(){for(var a,b=this.table.rows,c=0,d={},e=0;a=b[e];e++){for(var f,g=0,h=0;f=a.cells[h++];)if(g+=f.colSpan||1,f.rowSpan&&f.rowSpan>1)for(var i=1;ithis.rowsNum-1)?null:(e=c?h?i.endRowIndex+1:g.rowIndex+g.rowSpan:h?i.beginRowIndex-1:g.rowIndex-1,f=h?i.beginColIndex:g.colIndex,this.getCell(this.indexTable[e][f].rowIndex,this.indexTable[e][f].cellIndex))}catch(j){a(j)}},getSameEndPosCells:function(b,c){try{for(var d="x"===c.toLowerCase(),e=domUtils.getXY(b)[d?"x":"y"]+b["offset"+(d?"Width":"Height")],f=this.table.rows,g=null,h=[],i=0;ie&&d)break;if((b==j||e==l)&&(1==j[d?"colSpan":"rowSpan"]&&h.push(j),d))break}}return h}catch(m){a(m)}},setCellContent:function(a,b){a.innerHTML=b||(browser.ie?domUtils.fillChar:"
    ")},cloneCell:b.cloneCell,getSameStartPosXCells:function(b){try{for(var c,d=domUtils.getXY(b).x+b.offsetWidth,e=this.table.rows,f=[],g=0;gd)break;if(j==d&&1==h.colSpan){f.push(h);break}}}return f}catch(k){a(k)}},update:function(a){this.table=a||this.table,this.selectedTds=[],this.cellsRange={},this.indexTable=[];for(var b=this.table.rows,c=this.getMaxRows(),d=c-b.length,e=this.getMaxCols();d--;)this.table.insertRow(b.length);this.rowsNum=c,this.colsNum=e;for(var f=0,g=b.length;fc&&(j.rowSpan=c);for(var m=k,n=j.rowSpan||1,o=j.colSpan||1;this.indexTable[i][m];)m++;for(var p=0;p0)for(h=b;hf&&(m=Math.max(h,m));if(ee&&(l=Math.max(i,l));if(b>0)for(i=a;ig||d+b.colSpan-1>h)return null;j.push(this.getCell(c,b.cellIndex))}}return j},clearSelected:function(){b.removeSelectedClass(this.selectedTds),this.selectedTds=[],this.cellsRange={}},setSelected:function(a){var c=this.getCells(a);b.addSelectedClass(c),this.selectedTds=c,this.cellsRange=a},isFullRow:function(){var a=this.cellsRange;return a.endColIndex-a.beginColIndex+1==this.colsNum},isFullCol:function(){var a=this.cellsRange,b=this.table,c=b.getElementsByTagName("th"),d=a.endRowIndex-a.beginRowIndex+1;return c.length?d==this.rowsNum||d==this.rowsNum-1:d==this.rowsNum},getNextCell:function(b,c,d){try{var e,f,g=this.getCellInfo(b),h=this.selectedTds.length&&!d,i=this.cellsRange;return!c&&0==g.rowIndex||c&&(h?i.endRowIndex==this.rowsNum-1:g.rowIndex+g.rowSpan>this.rowsNum-1)?null:(e=c?h?i.endRowIndex+1:g.rowIndex+g.rowSpan:h?i.beginRowIndex-1:g.rowIndex-1,f=h?i.beginColIndex:g.colIndex,this.getCell(this.indexTable[e][f].rowIndex,this.indexTable[e][f].cellIndex))}catch(j){a(j)}},getPreviewCell:function(b,c){try{var d,e,f=this.getCellInfo(b),g=this.selectedTds.length,h=this.cellsRange;return!c&&(g?!h.beginColIndex:!f.colIndex)||c&&(g?h.endColIndex==this.colsNum-1:f.rowIndex>this.colsNum-1)?null:(d=c?g?h.beginRowIndex:f.rowIndex<1?0:f.rowIndex-1:g?h.beginRowIndex:f.rowIndex,e=c?g?h.endColIndex+1:f.colIndex:g?h.beginColIndex-1:f.colIndex<1?0:f.colIndex-1,this.getCell(this.indexTable[d][e].rowIndex,this.indexTable[d][e].cellIndex))}catch(i){a(i)}},moveContent:function(a,c){if(!b.isEmptyBlock(c)){if(b.isEmptyBlock(a))return void(a.innerHTML=c.innerHTML);var d=a.lastChild;for(3!=d.nodeType&&dtd.$block[d.tagName]||a.appendChild(a.ownerDocument.createElement("br"));d=c.firstChild;)a.appendChild(d)}},mergeRight:function(a){var b=this.getCellInfo(a),c=b.colIndex+b.colSpan,d=this.indexTable[b.rowIndex][c],e=this.getCell(d.rowIndex,d.cellIndex);a.colSpan=b.colSpan+d.colSpan,a.removeAttribute("width"),this.moveContent(a,e),this.deleteCell(e,d.rowIndex),this.update()},mergeDown:function(a){var b=this.getCellInfo(a),c=b.rowIndex+b.rowSpan,d=this.indexTable[c][b.colIndex],e=this.getCell(d.rowIndex,d.cellIndex);a.rowSpan=b.rowSpan+d.rowSpan,a.removeAttribute("height"),this.moveContent(a,e),this.deleteCell(e,d.rowIndex),this.update()},mergeRange:function(){var a=this.cellsRange,b=this.getCell(a.beginRowIndex,this.indexTable[a.beginRowIndex][a.beginColIndex].cellIndex);if("TH"==b.tagName&&a.endRowIndex!==a.beginRowIndex){var c=this.indexTable,d=this.getCellInfo(b);b=this.getCell(1,c[1][d.colIndex].cellIndex),a=this.getCellsRange(b,this.getCell(c[this.rowsNum-1][d.colIndex].rowIndex,c[this.rowsNum-1][d.colIndex].cellIndex))}for(var e,f=this.getCells(a),g=0;e=f[g++];)e!==b&&(this.moveContent(b,e),this.deleteCell(e));if(b.rowSpan=a.endRowIndex-a.beginRowIndex+1,b.rowSpan>1&&b.removeAttribute("height"),b.colSpan=a.endColIndex-a.beginColIndex+1,b.colSpan>1&&b.removeAttribute("width"),b.rowSpan==this.rowsNum&&1!=b.colSpan&&(b.colSpan=1),b.colSpan==this.colsNum&&1!=b.rowSpan){var h=b.parentNode.rowIndex;if(this.table.deleteRow)for(var g=h+1,i=h+1,j=b.rowSpan;g1&&g.rowIndex==a){var i=h.cloneNode(!0);i.rowSpan=h.rowSpan-1,i.innerHTML="",h.rowSpan=1;var j,k=a+1,l=this.table.rows[k],m=this.getPreviewMergedCellsNum(k,f)-e;m1?l.colSpan--:c[h].deleteCell(j.cellIndex),h+=j.rowSpan||1}}this.table.setAttribute("width",d-e),this.update()},splitToCells:function(a){var b=this,c=this.splitToRows(a);utils.each(c,function(a){b.splitToCols(a)})},splitToRows:function(a){var b=this.getCellInfo(a),c=b.rowIndex,d=b.colIndex,e=[];a.rowSpan=1,e.push(a);for(var f=c,g=c+b.rowSpan;f");for(var g=0;g'+(browser.ie&&browser.version<11?domUtils.fillChar:"
    ")+"");c.push("")}return"
    "+c.join("")+"
    "}b||(b=utils.extend({},{numCols:this.options.defaultCols,numRows:this.options.defaultRows,tdvalign:this.options.tdvalign}));var d=this,e=this.selection.getRange(),f=e.startContainer,h=domUtils.findParent(f,function(a){return domUtils.isBlockElm(a)},!0)||d.body,i=g(d),j=h.offsetWidth,k=Math.floor(j/b.numCols-2*i.tdPadding-i.tdBorder);!b.tdvalign&&(b.tdvalign=d.options.tdvalign),d.execCommand("inserthtml",c(b,k))}},UE.commands.insertparagraphbeforetable={queryCommandState:function(){return e(this).cell?0:-1},execCommand:function(){var a=e(this).table;if(a){var b=this.document.createElement("p");b.innerHTML=browser.ie?" ":"
    ",a.parentNode.insertBefore(b,a),this.selection.getRange().setStart(b,0).setCursor()}}},UE.commands.deletetable={queryCommandState:function(){var a=this.selection.getRange();return domUtils.findParentByTagName(a.startContainer,"table",!0)?0:-1},execCommand:function(a,b){var c=this.selection.getRange();if(b=b||domUtils.findParentByTagName(c.startContainer,"table",!0)){var d=b.nextSibling;d||(d=domUtils.createElement(this.document,"p",{innerHTML:browser.ie?domUtils.fillChar:"
    "}),b.parentNode.insertBefore(d,b)),domUtils.remove(b),c=this.selection.getRange(),3==d.nodeType?c.setStartBefore(d):c.setStart(d,0),c.setCursor(!1,!0),this.fireEvent("tablehasdeleted")}}},UE.commands.cellalign={queryCommandState:function(){return c(this).length?0:-1},execCommand:function(a,b){var d=c(this);if(d.length)for(var e,f=0;e=d[f++];)e.setAttribute("align",b)}},UE.commands.cellvalign={queryCommandState:function(){return c(this).length?0:-1},execCommand:function(a,b){var d=c(this);if(d.length)for(var e,f=0;e=d[f++];)e.setAttribute("vAlign",b)}},UE.commands.insertcaption={queryCommandState:function(){var a=e(this).table;return a&&0==a.getElementsByTagName("caption").length?1:-1},execCommand:function(){var a=e(this).table;if(a){var b=this.document.createElement("caption");b.innerHTML=browser.ie?domUtils.fillChar:"
    ",a.insertBefore(b,a.firstChild);var c=this.selection.getRange();c.setStart(b,0).setCursor()}}},UE.commands.deletecaption={queryCommandState:function(){var a=this.selection.getRange(),b=domUtils.findParentByTagName(a.startContainer,"table");return b?0==b.getElementsByTagName("caption").length?-1:1:-1},execCommand:function(){var a=this.selection.getRange(),b=domUtils.findParentByTagName(a.startContainer,"table");if(b){domUtils.remove(b.getElementsByTagName("caption")[0]);var c=this.selection.getRange();c.setStart(b.rows[0].cells[0],0).setCursor()}}},UE.commands.inserttitle={queryCommandState:function(){var a=e(this).table;if(a){var b=a.rows[0];return"th"!=b.cells[b.cells.length-1].tagName.toLowerCase()?0:-1}return-1},execCommand:function(){var a=e(this).table;a&&h(a).insertRow(0,"th");var b=a.getElementsByTagName("th")[0];this.selection.getRange().setStart(b,0).setCursor(!1,!0)}},UE.commands.deletetitle={queryCommandState:function(){var a=e(this).table;if(a){var b=a.rows[0];return"th"==b.cells[b.cells.length-1].tagName.toLowerCase()?0:-1}return-1},execCommand:function(){var a=e(this).table;a&&domUtils.remove(a.rows[0]);var b=a.getElementsByTagName("td")[0];this.selection.getRange().setStart(b,0).setCursor(!1,!0)}},UE.commands.inserttitlecol={queryCommandState:function(){var a=e(this).table;if(a){var b=a.rows[a.rows.length-1];return b.getElementsByTagName("th").length?-1:0}return-1},execCommand:function(b){var c=e(this).table;c&&h(c).insertCol(0,"th"),a(c,this);var d=c.getElementsByTagName("th")[0];this.selection.getRange().setStart(d,0).setCursor(!1,!0)}},UE.commands.deletetitlecol={queryCommandState:function(){var a=e(this).table;if(a){var b=a.rows[a.rows.length-1];return b.getElementsByTagName("th").length?0:-1}return-1},execCommand:function(){var b=e(this).table;if(b)for(var c=0;c=f.colsNum)return-1;var j=f.indexTable[g.rowIndex][i],k=c.rows[j.rowIndex].cells[j.cellIndex];return k&&d.tagName==k.tagName&&j.rowIndex==g.rowIndex&&j.rowSpan==g.rowSpan?0:-1},execCommand:function(a){var b=this.selection.getRange(),c=b.createBookmark(!0),d=e(this).cell,f=h(d);f.mergeRight(d),b.moveToBookmark(c).select()}},UE.commands.mergedown={queryCommandState:function(a){var b=e(this),c=b.table,d=b.cell;if(!c||!d)return-1;var f=h(c);if(f.selectedTds.length)return-1;var g=f.getCellInfo(d),i=g.rowIndex+g.rowSpan;if(i>=f.rowsNum)return-1;var j=f.indexTable[i][g.colIndex],k=c.rows[j.rowIndex].cells[j.cellIndex];return k&&d.tagName==k.tagName&&j.colIndex==g.colIndex&&j.colSpan==g.colSpan?0:-1},execCommand:function(){var a=this.selection.getRange(),b=a.createBookmark(!0),c=e(this).cell,d=h(c);d.mergeDown(c),a.moveToBookmark(b).select()}},UE.commands.mergecells={queryCommandState:function(){return f(this)?0:-1},execCommand:function(){var a=f(this);if(a&&a.selectedTds.length){var b=a.selectedTds[0];a.mergeRange();var c=this.selection.getRange();domUtils.isEmptyBlock(b)?c.setStart(b,0).collapse(!0):c.selectNodeContents(b),c.select()}}},UE.commands.insertrow={queryCommandState:function(){var a=e(this),b=a.cell;return b&&("TD"==b.tagName||"TH"==b.tagName&&a.tr!==a.table.rows[0])&&h(a.table).rowsNum0?-1:b&&(b.colSpan>1||b.rowSpan>1)?0:-1},execCommand:function(){var a=this.selection.getRange(),b=a.createBookmark(!0),c=e(this).cell,d=h(c);d.splitToCells(c),a.moveToBookmark(b).select()}},UE.commands.splittorows={queryCommandState:function(){var a=e(this),b=a.cell;if(!b)return-1;var c=h(a.table);return c.selectedTds.length>0?-1:b&&b.rowSpan>1?0:-1},execCommand:function(){var a=this.selection.getRange(),b=a.createBookmark(!0),c=e(this).cell,d=h(c);d.splitToRows(c),a.moveToBookmark(b).select()}},UE.commands.splittocols={queryCommandState:function(){var a=e(this),b=a.cell;if(!b)return-1;var c=h(a.table);return c.selectedTds.length>0?-1:b&&b.colSpan>1?0:-1},execCommand:function(){var a=this.selection.getRange(),b=a.createBookmark(!0),c=e(this).cell,d=h(c);d.splitToCols(c),a.moveToBookmark(b).select()}},UE.commands.adaptbytext=UE.commands.adaptbywindow={queryCommandState:function(){return e(this).table?0:-1},execCommand:function(b){var c=e(this),d=c.table;if(d)if("adaptbywindow"==b)a(d,this);else{var f=domUtils.getElementsByTagName(d,"td th");utils.each(f,function(a){a.removeAttribute("width")}),d.removeAttribute("width")}}},UE.commands.averagedistributecol={queryCommandState:function(){var a=f(this);return a&&(a.isFullRow()||a.isFullCol())?0:-1},execCommand:function(a){function b(){var a,b=e.table,c=0,f=0,h=g(d,b);if(e.isFullRow())c=b.offsetWidth,f=e.colsNum;else for(var i,j=e.cellsRange.beginColIndex,k=e.cellsRange.endColIndex,l=j;l<=k;)i=e.selectedTds[l],c+=i.offsetWidth,l+=i.colSpan,f+=1;return a=Math.ceil(c/f)-2*h.tdBorder-2*h.tdPadding}function c(a){utils.each(domUtils.getElementsByTagName(e.table,"th"),function(a){a.setAttribute("width","")});var b=e.isFullRow()?domUtils.getElementsByTagName(e.table,"td"):e.selectedTds;utils.each(b,function(b){1==b.colSpan&&b.setAttribute("width",a)})}var d=this,e=f(d);e&&e.selectedTds.length&&c(b())}},UE.commands.averagedistributerow={queryCommandState:function(){var a=f(this);return a?a.selectedTds&&/th/gi.test(a.selectedTds[0].tagName)?-1:a.isFullRow()||a.isFullCol()?0:-1:-1},execCommand:function(a){function b(){var a,b,c=0,f=e.table,h=g(d,f),i=parseInt(domUtils.getComputedStyle(f.getElementsByTagName("td")[0],"padding-top"));if(e.isFullCol()){var j,k,l=domUtils.getElementsByTagName(f,"caption"),m=domUtils.getElementsByTagName(f,"th");l.length>0&&(j=l[0].offsetHeight),m.length>0&&(k=m[0].offsetHeight),c=f.offsetHeight-(j||0)-(k||0),b=0==m.length?e.rowsNum:e.rowsNum-1}else{for(var n=e.cellsRange.beginRowIndex,o=e.cellsRange.endRowIndex,p=0,q=domUtils.getElementsByTagName(f,"tr"),r=n;r<=o;r++)c+=q[r].offsetHeight,p+=1;b=p}return a=browser.ie&&browser.version<9?Math.ceil(c/b):Math.ceil(c/b)-2*h.tdBorder-2*i}function c(a){var b=e.isFullCol()?domUtils.getElementsByTagName(e.table,"td"):e.selectedTds;utils.each(b,function(b){1==b.rowSpan&&b.setAttribute("height",a)})}var d=this,e=f(d);e&&e.selectedTds.length&&c(b())}},UE.commands.cellalignment={queryCommandState:function(){return e(this).table?0:-1},execCommand:function(a,b){var c=this,d=f(c);if(d)utils.each(d.selectedTds,function(a){domUtils.setAttributes(a,b)});else{var e=c.selection.getStart(),g=e&&domUtils.findParentByTagName(e,["td","th","caption"],!0);/caption/gi.test(g.tagName)?(g.style.textAlign=b.align,g.style.verticalAlign=b.vAlign):domUtils.setAttributes(g,b),c.selection.getRange().setCursor(!0)}},queryCommandValue:function(a){var b=e(this).cell;if(b||(b=c(this)[0]),b){var d=UE.UETable.getUETable(b).selectedTds;return!d.length&&(d=b),UE.UETable.getTableCellAlignState(d)}return null}},UE.commands.tablealignment={queryCommandState:function(){return browser.ie&&browser.version<8?-1:e(this).table?0:-1},execCommand:function(a,b){var c=this,d=c.selection.getStart(),e=d&&domUtils.findParentByTagName(d,["table"],!0);e&&e.setAttribute("align",b)}},UE.commands.edittable={queryCommandState:function(){return e(this).table?0:-1},execCommand:function(a,b){var c=this.selection.getRange(),d=domUtils.findParentByTagName(c.startContainer,"table");if(d){var e=domUtils.getElementsByTagName(d,"td").concat(domUtils.getElementsByTagName(d,"th"),domUtils.getElementsByTagName(d,"caption"));utils.each(e,function(a){a.style.borderColor=b})}}},UE.commands.edittd={queryCommandState:function(){return e(this).table?0:-1},execCommand:function(a,b){var c=this,d=f(c);if(d)utils.each(d.selectedTds,function(a){a.style.backgroundColor=b});else{var e=c.selection.getStart(),g=e&&domUtils.findParentByTagName(e,["td","th","caption"],!0);g&&(g.style.backgroundColor=b)}}},UE.commands.settablebackground={queryCommandState:function(){return c(this).length>1?0:-1},execCommand:function(a,b){var d,e;d=c(this),e=h(d[0]),e.setBackground(d,b)}},UE.commands.cleartablebackground={queryCommandState:function(){var a=c(this);if(!a.length)return-1;for(var b,d=0;b=a[d++];)if(""!==b.style.backgroundColor)return 0;return-1},execCommand:function(){var a=c(this),b=h(a[0]);b.removeBackground(a)}},UE.commands.interlacetable=UE.commands.uninterlacetable={queryCommandState:function(a){var b=e(this).table;if(!b)return-1;var c=b.getAttribute("interlaced");return"interlacetable"==a?"enabled"===c?-1:0:c&&"disabled"!==c?0:-1},execCommand:function(a,b){var c=e(this).table;"interlacetable"==a?(c.setAttribute("interlaced","enabled"),this.fireEvent("interlacetable",c,b)):(c.setAttribute("interlaced","disabled"),this.fireEvent("uninterlacetable",c))}},UE.commands.setbordervisible={queryCommandState:function(a){var b=e(this).table;return b?0:-1},execCommand:function(){var a=e(this).table;utils.each(domUtils.getElementsByTagName(a,"td"),function(a){a.style.borderWidth="1px",a.style.borderStyle="solid"})}}}(),UE.plugins.table=function(){function a(a){}function b(a,b){c(a,"width",!0),c(a,"height",!0)}function c(a,b,c){a.style[b]&&(c&&a.setAttribute(b,parseInt(a.style[b],10)),a.style[b]="")}function d(a){if("TD"==a.tagName||"TH"==a.tagName)return a;var b;return(b=domUtils.findParentByTagName(a,"td",!0)||domUtils.findParentByTagName(a,"th",!0))?b:null}function e(a){var b=new RegExp(domUtils.fillChar,"g");if(a[browser.ie?"innerText":"textContent"].replace(/^\s*$/,"").replace(b,"").length>0)return 0;for(var c in dtd.$isNotEmpty)if(a.getElementsByTagName(c).length)return 0;return 1}function f(a){return a.pageX||a.pageY?{x:a.pageX,y:a.pageY}:{x:a.clientX+N.document.body.scrollLeft-N.document.body.clientLeft,y:a.clientY+N.document.body.scrollTop-N.document.body.clientTop}}function g(b){if(!A())try{var c,e=d(b.target||b.srcElement);if(R&&(N.body.style.webkitUserSelect="none",(Math.abs(V.x-b.clientX)>T||Math.abs(V.y-b.clientY)>T)&&(t(),R=!1,U=0,v(b))),ca&&ha)return U=0,N.body.style.webkitUserSelect="none",N.selection.getNative()[browser.ie9below?"empty":"removeAllRanges"](),c=f(b),m(N,!0,ca,c,e),void("h"==ca?ga.style.left=k(ha,b)+"px":"v"==ca&&(ga.style.top=l(ha,b)+"px"));if(e){if(N.fireEvent("excludetable",e)===!0)return;c=f(b);var g=n(e,c),i=domUtils.findParentByTagName(e,"table",!0);if(j(i,e,b,!0)){if(N.fireEvent("excludetable",i)===!0)return;N.body.style.cursor="url("+N.options.cursorpath+"h.png),pointer"}else if(j(i,e,b)){if(N.fireEvent("excludetable",i)===!0)return;N.body.style.cursor="url("+N.options.cursorpath+"v.png),pointer"}else{N.body.style.cursor="text";/\d/.test(g)&&(g=g.replace(/\d/,""),e=Y(e).getPreviewCell(e,"v"==g)),m(N,!!e&&!!g,e?g:"",c,e)}}else h(!1,i,N)}catch(o){a(o)}}function h(a,b,c){if(a)i(b,c);else{if(fa)return;la=setTimeout(function(){!fa&&ea&&ea.parentNode&&ea.parentNode.removeChild(ea)},2e3)}}function i(a,b){function c(c,d){clearTimeout(g),g=setTimeout(function(){b.fireEvent("tableClicked",a,d)},300)}function d(c){clearTimeout(g);var d=Y(a),e=a.rows[0].cells[0],f=d.getLastCell(),h=d.getCellsRange(e,f);b.selection.getRange().setStart(e,0).setCursor(!1,!0),d.setSelected(h)}var e=domUtils.getXY(a),f=a.ownerDocument;if(ea&&ea.parentNode)return ea;ea=f.createElement("div"),ea.contentEditable=!1,ea.innerHTML="",ea.style.cssText="width:15px;height:15px;background-image:url("+b.options.UEDITOR_HOME_URL+"dialogs/table/dragicon.png);position: absolute;cursor:move;top:"+(e.y-15)+"px;left:"+e.x+"px;",domUtils.unSelectable(ea),ea.onmouseover=function(a){fa=!0},ea.onmouseout=function(a){fa=!1},domUtils.on(ea,"click",function(a,b){c(b,this)}),domUtils.on(ea,"dblclick",function(a,b){d(b)}),domUtils.on(ea,"dragstart",function(a,b){domUtils.preventDefault(b)});var g;f.body.appendChild(ea)}function j(a,b,c,d){var e=f(c),g=n(b,e);if(d){var h=a.getElementsByTagName("caption")[0],i=h?h.offsetHeight:0;return"v1"==g&&e.y-domUtils.getXY(a).y-i<8}return"h1"==g&&e.x-domUtils.getXY(a).x<8}function k(a,b){var c=Y(a);if(c){var d=c.getSameEndPosCells(a,"x")[0],e=c.getSameStartPosXCells(a)[0],g=f(b).x,h=(d?domUtils.getXY(d).x:domUtils.getXY(c.table).x)+20,i=e?domUtils.getXY(e).x+e.offsetWidth-20:N.body.offsetWidth+5||parseInt(domUtils.getComputedStyle(N.body,"width"),10);return h+=Q,i-=Q,gi?i:g}}function l(b,c){try{var d=domUtils.getXY(b).y,e=f(c).y;return ek[c]?(a=!1,!1):void l.push(d)});var b=a?l:k;utils.each(i,function(a,c){a.width=b[c]-G()})},0)}}}}function q(a){if(_(domUtils.getElementsByTagName(N.body,"td th")),utils.each(N.document.getElementsByTagName("table"),function(a){a.ueTable=null}),aa=M(N,a)){var b=domUtils.findParentByTagName(aa,"table",!0);ut=Y(b),ut&&ut.clearSelected(),da?r(a):(N.document.body.style.webkitUserSelect="",ia=!0,N.addListener("mouseover",x))}}function r(a){browser.ie&&(a=u(a)),t(),R=!0,O=setTimeout(function(){v(a)},W)}function s(a,b){for(var c=[],d=null,e=0,f=a.length;e0&&U--},W),2===U))return U=0,void p(b);if(2!=b.button){var c=this,d=c.selection.getRange(),e=domUtils.findParentByTagName(d.startContainer,"table",!0),f=domUtils.findParentByTagName(d.endContainer,"table",!0);if((e||f)&&(e===f?(e=domUtils.findParentByTagName(d.startContainer,["td","th","caption"],!0),f=domUtils.findParentByTagName(d.endContainer,["td","th","caption"],!0),e!==f&&c.selection.clearRange()):c.selection.clearRange()),ia=!1,c.document.body.style.webkitUserSelect="",ca&&ha&&(c.selection.getNative()[browser.ie9below?"empty":"removeAllRanges"](),U=0,ga=c.document.getElementById("ue_tableDragLine"))){var g=domUtils.getXY(ha),h=domUtils.getXY(ga);switch(ca){case"h":z(ha,h.x-g.x);break;case"v":B(ha,h.y-g.y-ha.offsetHeight)}return ca="",ha=null,I(c),void c.fireEvent("saveScene")}if(aa){var i=Y(aa),j=i?i.selectedTds[0]:null;if(j)d=new dom.Range(c.document),domUtils.isEmptyBlock(j)?d.setStart(j,0).setCursor(!1,!0):d.selectNodeContents(j).shrinkBoundary().setCursor(!1,!0);else if(d=c.selection.getRange().shrinkBoundary(),!d.collapsed){var e=domUtils.findParentByTagName(d.startContainer,["td","th"],!0),f=domUtils.findParentByTagName(d.endContainer,["td","th"],!0);(e&&!f||!e&&f||e&&f&&e!==f)&&d.setCursor(!1,!0)}aa=null,c.removeListener("mouseover",x)}else{var k=domUtils.findParentByTagName(b.target||b.srcElement,"td",!0);if(k||(k=domUtils.findParentByTagName(b.target||b.srcElement,"th",!0)),k&&("TD"==k.tagName||"TH"==k.tagName)){if(c.fireEvent("excludetable",k)===!0)return;d=new dom.Range(c.document),d.setStart(k,0).setCursor(!1,!0)}}c._selectionChange(250,b)}}}function x(a,b){if(!A()){var c=this,d=b.target||b.srcElement;if(ba=domUtils.findParentByTagName(d,"td",!0)||domUtils.findParentByTagName(d,"th",!0),aa&&ba&&("TD"==aa.tagName&&"TD"==ba.tagName||"TH"==aa.tagName&&"TH"==ba.tagName)&&domUtils.findParentByTagName(aa,"table")==domUtils.findParentByTagName(ba,"table")){var e=Y(ba);if(aa!=ba){c.document.body.style.webkitUserSelect="none",c.selection.getNative()[browser.ie9below?"empty":"removeAllRanges"]();var f=e.getCellsRange(aa,ba);e.setSelected(f)}else c.document.body.style.webkitUserSelect="",e.clearSelected()}b.preventDefault?b.preventDefault():b.returnValue=!1}}function y(a,b,c){var d=parseInt(domUtils.getComputedStyle(a,"line-height"),10),e=c+b;b=ef?(c&&g.push({left:a}),!1):void 0})}),g}function D(a,b,c){if(a-=G(),a<0)return 0;a-=E(b);var d=a<0?"left":"right";return a=Math.abs(a),utils.each(c,function(b){var c=b[d];c&&(a=Math.min(a,E(c)-Q))}),a=a<0?0:a,"left"===d?-a:a}function E(a){var b=0,b=a.offsetWidth-G();a.nextSibling||(b-=F(a)),b=b<0?0:b;try{a.width=b}catch(c){}return b}function F(a){if(tab=domUtils.findParentByTagName(a,"table",!1),void 0===tab.offsetVal){var b=a.previousSibling;b?tab.offsetVal=a.offsetWidth-b.offsetWidth===X.borderWidth?X.borderWidth:0:tab.offsetVal=0}return tab.offsetVal}function G(){if(void 0===X.tabcellSpace){var a=N.document.createElement("table"),b=N.document.createElement("tbody"),c=N.document.createElement("tr"),d=N.document.createElement("td"),e=null;d.style.cssText="border: 0;",d.width=1,c.appendChild(d),c.appendChild(e=d.cloneNode(!1)),b.appendChild(c),a.appendChild(b),a.style.cssText="visibility: hidden;",N.body.appendChild(a),X.paddingSpace=d.offsetWidth-1;var f=a.offsetWidth;d.style.cssText="",e.style.cssText="",X.borderWidth=(a.offsetWidth-f)/3,X.tabcellSpace=X.paddingSpace+X.borderWidth,N.body.removeChild(a)}return G=function(){return X.tabcellSpace},X.tabcellSpace}function H(a,b){ia||(ga=a.document.createElement("div"),domUtils.setAttributes(ga,{id:"ue_tableDragLine",unselectable:"on",contenteditable:!1,onresizestart:"return false",ondragstart:"return false",onselectstart:"return false",style:"background-color:blue;position:absolute;padding:0;margin:0;background-image:none;border:0px none;opacity:0;filter:alpha(opacity=0)"}),a.body.appendChild(ga))}function I(a){if(!ia)for(var b;b=a.document.getElementById("ue_tableDragLine");)domUtils.remove(b)}function J(a,b){if(b){var c,d=domUtils.findParentByTagName(b,"table"),e=d.getElementsByTagName("caption"),f=d.offsetWidth,g=d.offsetHeight-(e.length>0?e[0].offsetHeight:0),h=domUtils.getXY(d),i=domUtils.getXY(b);switch(a){case"h":c="height:"+g+"px;top:"+(h.y+(e.length>0?e[0].offsetHeight:0))+"px;left:"+(i.x+b.offsetWidth),ga.style.cssText=c+"px;position: absolute;display:block;background-color:blue;width:1px;border:0; color:blue;opacity:.3;filter:alpha(opacity=30)";break;case"v":c="width:"+f+"px;left:"+h.x+"px;top:"+(i.y+b.offsetHeight),ga.style.cssText=c+"px;overflow:hidden;position: absolute;display:block;background-color:blue;height:1px;border:0;color:blue;opacity:.2;filter:alpha(opacity=20)"}}}function K(a,b){for(var c,d,e=domUtils.getElementsByTagName(a.body,"table"),f=0;d=e[f++];){var g=domUtils.getElementsByTagName(d,"td");g[0]&&(b?(c=g[0].style.borderColor.replace(/\s/g,""),/(#ffffff)|(rgb\(255,255,255\))/gi.test(c)&&domUtils.addClass(d,"noBorderTable")):domUtils.removeClasses(d,"noBorderTable"))}}function L(a,b,c){var d=a.body;return d.offsetWidth-(b?2*parseInt(domUtils.getComputedStyle(d,"margin-left"),10):0)-2*c.tableBorder-(a.options.offsetWidth||0)}function M(a,b){var c=domUtils.findParentByTagName(b.target||b.srcElement,["td","th"],!0),d=null;if(!c)return null;if(d=n(c,f(b)),!c)return null;if("h1"===d&&c.previousSibling){var e=domUtils.getXY(c),g=c.offsetWidth;Math.abs(e.x+g-b.clientX)>g/3&&(c=c.previousSibling)}else if("v1"===d&&c.parentNode.previousSibling){var e=domUtils.getXY(c),h=c.offsetHeight;Math.abs(e.y+h-b.clientY)>h/3&&(c=c.parentNode.previousSibling.firstChild)}return c&&a.fireEvent("excludetable",c)!==!0?c:null}var N=this,O=null,P=null,Q=5,R=!1,S=5,T=10,U=0,V=null,W=360,X=UE.UETable,Y=function(a){return X.getUETable(a)},Z=function(a){return X.getUETableBySelected(a)},$=function(a,b){return X.getDefaultValue(a,b)},_=function(a){return X.removeSelectedClass(a)};N.ready(function(){var a=this,b=a.selection.getText;a.selection.getText=function(){var c=Z(a);if(c){var d="";return utils.each(c.selectedTds,function(a){d+=a[browser.ie?"innerText":"textContent"]}),d}return b.call(a.selection)}});var aa=null,ba=null,ca="",da=!1,ea=null,fa=!1,ga=null,ha=null,ia=!1,ja=!0;N.setOpt({maxColNum:20,maxRowNum:100,defaultCols:5,defaultRows:5,tdvalign:"top",cursorpath:N.options.UEDITOR_HOME_URL+"themes/default/images/cursor_",tableDragable:!1,classList:["ue-table-interlace-color-single","ue-table-interlace-color-double"]}),N.getUETable=Y;var ka={deletetable:1,inserttable:1,cellvalign:1,insertcaption:1,deletecaption:1,inserttitle:1,deletetitle:1,mergeright:1,mergedown:1,mergecells:1,insertrow:1,insertrownext:1,deleterow:1,insertcol:1,insertcolnext:1,deletecol:1,splittocells:1,splittorows:1,splittocols:1,adaptbytext:1,adaptbywindow:1,adaptbycustomer:1,insertparagraph:1,insertparagraphbeforetable:1,averagedistributecol:1,averagedistributerow:1};N.ready(function(){utils.cssRule("table",".selectTdClass{background-color:#edf5fa !important}table.noBorderTable td,table.noBorderTable th,table.noBorderTable caption{border:1px dashed #ddd !important}table{margin-bottom:10px;border-collapse:collapse;display:table;}td,th{padding: 5px 10px;border: 1px solid #DDD;}caption{border:1px dashed #DDD;border-bottom:0;padding:3px;text-align:center;}th{border-top:1px solid #BBB;background-color:#F7F7F7;}table tr.firstRow th{border-top-width:2px;}.ue-table-interlace-color-single{ background-color: #fcfcfc; } .ue-table-interlace-color-double{ background-color: #f7faff; }td p{margin:0;padding:0;}",N.document);var a,c,f;N.addListener("keydown",function(b,d){var g=this,h=d.keyCode||d.which;if(8==h){var i=Z(g);i&&i.selectedTds.length&&(i.isFullCol()?g.execCommand("deletecol"):i.isFullRow()?g.execCommand("deleterow"):g.fireEvent("delcells"),domUtils.preventDefault(d));var j=domUtils.findParentByTagName(g.selection.getStart(),"caption",!0),k=g.selection.getRange();if(k.collapsed&&j&&e(j)){g.fireEvent("saveScene");var l=j.parentNode;domUtils.remove(j),l&&k.setStart(l.rows[0].cells[0],0).setCursor(!1,!0),g.fireEvent("saveScene")}}if(46==h&&(i=Z(g))){g.fireEvent("saveScene");for(var m,n=0;m=i.selectedTds[n++];)domUtils.fillNode(g.document,m);g.fireEvent("saveScene"),domUtils.preventDefault(d)}if(13==h){var o=g.selection.getRange(),j=domUtils.findParentByTagName(o.startContainer,"caption",!0);if(j){var l=domUtils.findParentByTagName(j,"table");return o.collapsed?j&&o.setStart(l.rows[0].cells[0],0).setCursor(!1,!0):(o.deleteContents(),g.fireEvent("saveScene")),void domUtils.preventDefault(d)}if(o.collapsed){var l=domUtils.findParentByTagName(o.startContainer,"table");if(l){var p=l.rows[0].cells[0],q=domUtils.findParentByTagName(g.selection.getStart(),["td","th"],!0),r=l.previousSibling;if(p===q&&(!r||1==r.nodeType&&"TABLE"==r.tagName)&&domUtils.isStartInblock(o)){var s=domUtils.findParent(g.selection.getStart(),function(a){return domUtils.isBlockElm(a)},!0);s&&(/t(h|d)/i.test(s.tagName)||s===q.firstChild)&&(g.execCommand("insertparagraphbeforetable"),domUtils.preventDefault(d))}}}}if((d.ctrlKey||d.metaKey)&&"67"==d.keyCode){a=null;var i=Z(g);if(i){var t=i.selectedTds;c=i.isFullCol(),f=i.isFullRow(),a=[[i.cloneCell(t[0],null,!0)]];for(var m,n=1;m=t[n];n++)m.parentNode!==t[n-1].parentNode?a.push([i.cloneCell(m,null,!0)]):a[a.length-1].push(i.cloneCell(m,null,!0))}}}),N.addListener("tablehasdeleted",function(){m(this,!1,"",null),ea&&domUtils.remove(ea)}),N.addListener("beforepaste",function(d,g){var h=this,i=h.selection.getRange();if(domUtils.findParentByTagName(i.startContainer,"caption",!0)){var j=h.document.createElement("div");return j.innerHTML=g.html,void(g.html=j[browser.ie9below?"innerText":"textContent"])}var k=Z(h);if(a){h.fireEvent("saveScene");var l,m,i=h.selection.getRange(),n=domUtils.findParentByTagName(i.startContainer,["td","th"],!0);if(n){var o=Y(n);if(f){var p=o.getCellInfo(n).rowIndex;"TH"==n.tagName&&p++;for(var q,r=0;q=a[r++];){for(var s,t=o.insertRow(p++,"td"),u=0;s=q[u];u++){var v=t.cells[u];v||(v=t.insertCell(u)),v.innerHTML=s.innerHTML,s.getAttribute("width")&&v.setAttribute("width",s.getAttribute("width")),s.getAttribute("vAlign")&&v.setAttribute("vAlign",s.getAttribute("vAlign")),s.getAttribute("align")&&v.setAttribute("align",s.getAttribute("align")),s.style.cssText&&(v.style.cssText=s.style.cssText)}for(var s,u=0;(s=t.cells[u])&&q[u];u++)s.innerHTML=q[u].innerHTML,q[u].getAttribute("width")&&s.setAttribute("width",q[u].getAttribute("width")),q[u].getAttribute("vAlign")&&s.setAttribute("vAlign",q[u].getAttribute("vAlign")),q[u].getAttribute("align")&&s.setAttribute("align",q[u].getAttribute("align")),q[u].style.cssText&&(s.style.cssText=q[u].style.cssText)}}else{if(c){y=o.getCellInfo(n);for(var s,w=0,u=0,q=a[0];s=q[u++];)w+=s.colSpan||1;for(h.__hasEnterExecCommand=!0,r=0;r1&&(x.rowSpan=1)}var z=$(h),A=h.body.offsetWidth-(ja?2*parseInt(domUtils.getComputedStyle(h.body,"margin-left"),10):0)-2*z.tableBorder-(h.options.offsetWidth||0);h.execCommand("insertHTML",""+k.innerHTML.replace(/>\s*<").replace(/\bth\b/gi,"td")+"
    ")}return h.fireEvent("contentchange"),h.fireEvent("saveScene"),g.html="",!0}var B,j=h.document.createElement("div");j.innerHTML=g.html,B=j.getElementsByTagName("table"),domUtils.findParentByTagName(h.selection.getStart(),"table")?(utils.each(B,function(a){domUtils.remove(a)}),domUtils.findParentByTagName(h.selection.getStart(),"caption",!0)&&(j.innerHTML=j[browser.ie?"innerText":"textContent"])):utils.each(B,function(a){b(a,!0),domUtils.removeAttributes(a,["style","border"]),utils.each(domUtils.getElementsByTagName(a,"td"),function(a){e(a)&&domUtils.fillNode(h.document,a),b(a,!0)})}),g.html=j.innerHTML}),N.addListener("afterpaste",function(){utils.each(domUtils.getElementsByTagName(N.body,"table"),function(a){if(a.offsetWidth>N.body.offsetWidth){var b=$(N,a);a.style.width=N.body.offsetWidth-(ja?2*parseInt(domUtils.getComputedStyle(N.body,"margin-left"),10):0)-2*b.tableBorder-(N.options.offsetWidth||0)+"px"}})}),N.addListener("blur",function(){a=null});var i;N.addListener("keydown",function(){clearTimeout(i),i=setTimeout(function(){var a=N.selection.getRange(),b=domUtils.findParentByTagName(a.startContainer,["th","td"],!0);if(b){var c=b.parentNode.parentNode.parentNode;c.offsetWidth>c.getAttribute("width")&&(b.style.wordBreak="break-all")}},100)}),N.addListener("selectionchange",function(){m(N,!1,"",null)}),N.addListener("contentchange",function(){var a=this;if(I(a),!Z(a)){var b=a.selection.getRange(),c=b.startContainer;c=domUtils.findParentByTagName(c,["td","th"],!0),utils.each(domUtils.getElementsByTagName(a.document,"table"),function(b){a.fireEvent("excludetable",b)!==!0&&(b.ueTable=new X(b),b.onmouseover=function(){a.fireEvent("tablemouseover",b)},b.onmousemove=function(){a.fireEvent("tablemousemove",b),a.options.tableDragable&&h(!0,this,a),utils.defer(function(){a.fireEvent("contentchange",50)},!0)},b.onmouseout=function(){a.fireEvent("tablemouseout",b),m(a,!1,"",null),I(a)},b.onclick=function(b){b=a.window.event||b;var c=d(b.target||b.srcElement);if(c){var e,f=Y(c),g=f.table,h=f.getCellInfo(c),i=a.selection.getRange();if(j(g,c,b,!0)){var k=f.getCell(f.indexTable[f.rowsNum-1][h.colIndex].rowIndex,f.indexTable[f.rowsNum-1][h.colIndex].cellIndex);return void(b.shiftKey&&f.selectedTds.length?f.selectedTds[0]!==k?(e=f.getCellsRange(f.selectedTds[0],k),f.setSelected(e)):i&&i.selectNodeContents(k).select():c!==k?(e=f.getCellsRange(c,k),f.setSelected(e)):i&&i.selectNodeContents(k).select())}if(j(g,c,b)){var l=f.getCell(f.indexTable[h.rowIndex][f.colsNum-1].rowIndex,f.indexTable[h.rowIndex][f.colsNum-1].cellIndex);b.shiftKey&&f.selectedTds.length?f.selectedTds[0]!==l?(e=f.getCellsRange(f.selectedTds[0],l),f.setSelected(e)):i&&i.selectNodeContents(l).select():c!==l?(e=f.getCellsRange(c,l),f.setSelected(e)):i&&i.selectNodeContents(l).select()}}})}),K(a,!0)}}),domUtils.on(N.document,"mousemove",g),domUtils.on(N.document,"mouseout",function(a){var b=a.target||a.srcElement;"TABLE"==b.tagName&&m(N,!1,"",null)}),N.addListener("interlacetable",function(a,b,c){if(b)for(var d=this,e=b.rows,f=e.length,g=function(a,b,c){return a[b]?a[b]:c?a[b%a.length]:""},h=0;h1?k:f.getCellInfo(d).rowIndex;var g=f.getTabNextCell(d,k);g?e(g)?a.setStart(g,0).setCursor(!1,!0):a.selectNodeContents(g).select():(N.fireEvent("saveScene"),N.__hasEnterExecCommand=!0,this.execCommand("insertrownext"),N.__hasEnterExecCommand=!1,a=this.selection.getRange(),a.setStart(c.rows[c.rows.length-1].cells[0],0).setCursor(),N.fireEvent("saveScene"))}return!0}}),browser.ie&&N.addListener("selectionchange",function(){m(this,!1,"",null)}),N.addListener("keydown",function(a,b){var c=this,d=b.keyCode||b.which;if(8!=d&&46!=d){var e=!(b.ctrlKey||b.metaKey||b.shiftKey||b.altKey);e&&_(domUtils.getElementsByTagName(c.body,"td"));var f=Z(c);f&&e&&f.clearSelected()}}),N.addListener("beforegetcontent",function(){K(this,!1),browser.ie&&utils.each(this.document.getElementsByTagName("caption"),function(a){domUtils.isEmptyNode(a)&&(a.innerHTML=" ")})}),N.addListener("aftergetcontent",function(){K(this,!0)}),N.addListener("getAllHtml",function(){_(N.document.getElementsByTagName("td"))}),N.addListener("fullscreenchanged",function(a,b){if(!b){var c=this.body.offsetWidth/document.body.offsetWidth,d=domUtils.getElementsByTagName(this.body,"table");utils.each(d,function(a){if(a.offsetWidth1||c[e].getAttribute("rowspan")>1)return-1;return b?"enablesort"==a^"sortEnabled"!=b.getAttribute("data-sort")?-1:0:-1},execCommand:function(a){var b=d(this).table;b.setAttribute("data-sort","enablesort"==a?"sortEnabled":"sortDisabled"),"enablesort"==a?domUtils.addClass(b,"sortEnabled"):domUtils.removeClasses(b,"sortEnabled")}}},UE.plugins.contextmenu=function(){var a=this;if(a.setOpt("enableContextMenu",!0),a.getOpt("enableContextMenu")!==!1){var b,c=a.getLang("contextMenu"),d=a.options.contextMenu||[{label:c.selectall,cmdName:"selectall"},{label:c.cleardoc,cmdName:"cleardoc",exec:function(){confirm(c.confirmclear)&&this.execCommand("cleardoc")}},"-",{label:c.unlink,cmdName:"unlink"},"-",{group:c.paragraph,icon:"justifyjustify",subMenu:[{label:c.justifyleft,cmdName:"justify",value:"left"},{label:c.justifyright,cmdName:"justify",value:"right"},{label:c.justifycenter,cmdName:"justify",value:"center"},{label:c.justifyjustify,cmdName:"justify",value:"justify"}]},"-",{group:c.table,icon:"table",subMenu:[{label:c.inserttable,cmdName:"inserttable"},{label:c.deletetable,cmdName:"deletetable"},"-",{label:c.deleterow,cmdName:"deleterow"},{label:c.deletecol,cmdName:"deletecol"},{label:c.insertcol,cmdName:"insertcol"},{label:c.insertcolnext,cmdName:"insertcolnext"},{label:c.insertrow,cmdName:"insertrow"},{label:c.insertrownext,cmdName:"insertrownext"},"-",{label:c.insertcaption,cmdName:"insertcaption"},{label:c.deletecaption,cmdName:"deletecaption"},{label:c.inserttitle,cmdName:"inserttitle"},{label:c.deletetitle,cmdName:"deletetitle"},{label:c.inserttitlecol,cmdName:"inserttitlecol"},{label:c.deletetitlecol,cmdName:"deletetitlecol"},"-",{label:c.mergecells,cmdName:"mergecells"},{label:c.mergeright,cmdName:"mergeright"},{label:c.mergedown,cmdName:"mergedown"},"-",{label:c.splittorows,cmdName:"splittorows"},{label:c.splittocols,cmdName:"splittocols"},{label:c.splittocells,cmdName:"splittocells"},"-",{label:c.averageDiseRow,cmdName:"averagedistributerow"},{label:c.averageDisCol,cmdName:"averagedistributecol"},"-",{label:c.edittd,cmdName:"edittd",exec:function(){UE.ui.edittd&&new UE.ui.edittd(this),this.getDialog("edittd").open()}},{label:c.edittable,cmdName:"edittable",exec:function(){UE.ui.edittable&&new UE.ui.edittable(this),this.getDialog("edittable").open()}},{label:c.setbordervisible,cmdName:"setbordervisible"}]},{group:c.tablesort,icon:"tablesort",subMenu:[{label:c.enablesort,cmdName:"enablesort"},{label:c.disablesort,cmdName:"disablesort"},"-",{label:c.reversecurrent,cmdName:"sorttable",value:"reversecurrent"},{label:c.orderbyasc,cmdName:"sorttable",value:"orderbyasc"},{label:c.reversebyasc,cmdName:"sorttable",value:"reversebyasc"},{label:c.orderbynum,cmdName:"sorttable",value:"orderbynum"},{label:c.reversebynum,cmdName:"sorttable",value:"reversebynum"}]},{group:c.borderbk,icon:"borderBack",subMenu:[{label:c.setcolor,cmdName:"interlacetable",exec:function(){this.execCommand("interlacetable")}},{label:c.unsetcolor,cmdName:"uninterlacetable",exec:function(){this.execCommand("uninterlacetable")}},{label:c.setbackground,cmdName:"settablebackground",exec:function(){this.execCommand("settablebackground",{repeat:!0,colorList:["#bbb","#ccc"]})}},{label:c.unsetbackground,cmdName:"cleartablebackground",exec:function(){this.execCommand("cleartablebackground")}},{label:c.redandblue,cmdName:"settablebackground",exec:function(){this.execCommand("settablebackground",{repeat:!0,colorList:["red","blue"]})}},{label:c.threecolorgradient,cmdName:"settablebackground",exec:function(){this.execCommand("settablebackground",{repeat:!0,colorList:["#aaa","#bbb","#ccc"]})}}]},{group:c.aligntd,icon:"aligntd",subMenu:[{cmdName:"cellalignment",value:{align:"left",vAlign:"top"}},{cmdName:"cellalignment",value:{align:"center",vAlign:"top"}},{cmdName:"cellalignment",value:{align:"right",vAlign:"top"}},{cmdName:"cellalignment",value:{align:"left",vAlign:"middle"}},{cmdName:"cellalignment",value:{align:"center",vAlign:"middle"}},{cmdName:"cellalignment",value:{align:"right",vAlign:"middle"}},{cmdName:"cellalignment",value:{align:"left",vAlign:"bottom"}},{cmdName:"cellalignment",value:{align:"center",vAlign:"bottom"}},{cmdName:"cellalignment",value:{align:"right",vAlign:"bottom"}}]},{group:c.aligntable,icon:"aligntable",subMenu:[{cmdName:"tablealignment",className:"left",label:c.tableleft,value:"left"},{cmdName:"tablealignment",className:"center",label:c.tablecenter,value:"center"},{cmdName:"tablealignment",className:"right",label:c.tableright,value:"right"}]},"-",{label:c.insertparagraphbefore,cmdName:"insertparagraph",value:!0},{label:c.insertparagraphafter,cmdName:"insertparagraph"},{label:c.copy,cmdName:"copy"},{label:c.paste,cmdName:"paste"}];if(d.length){var e=UE.ui.uiUtils;a.addListener("contextmenu",function(f,g){var h=e.getViewportOffsetByEvent(g);a.fireEvent("beforeselectionchange"),b&&b.destroy();for(var i,j=0,k=[];i=d[j];j++){var l;!function(b){function d(){switch(b.icon){case"table":return a.getLang("contextMenu.table");case"justifyjustify":return a.getLang("contextMenu.paragraph");case"aligntd":return a.getLang("contextMenu.aligntd");case"aligntable":return a.getLang("contextMenu.aligntable");case"tablesort":return c.tablesort;case"borderBack":return c.borderbk;default:return""}}if("-"==b)(l=k[k.length-1])&&"-"!==l&&k.push("-");else if(b.hasOwnProperty("group")){for(var e,f=0,g=[];e=b.subMenu[f];f++)!function(b){"-"==b?(l=g[g.length-1])&&"-"!==l?g.push("-"):g.splice(g.length-1):(a.commands[b.cmdName]||UE.commands[b.cmdName]||b.query)&&(b.query?b.query():a.queryCommandState(b.cmdName))>-1&&g.push({label:b.label||a.getLang("contextMenu."+b.cmdName+(b.value||""))||"",className:"edui-for-"+b.cmdName+(b.className?" edui-for-"+b.cmdName+"-"+b.className:""),onclick:b.exec?function(){b.exec.call(a)}:function(){a.execCommand(b.cmdName,b.value)}})}(e);g.length&&k.push({label:d(),className:"edui-for-"+b.icon,subMenu:{items:g,editor:a}})}else(a.commands[b.cmdName]||UE.commands[b.cmdName]||b.query)&&(b.query?b.query.call(a):a.queryCommandState(b.cmdName))>-1&&k.push({label:b.label||a.getLang("contextMenu."+b.cmdName),className:"edui-for-"+(b.icon?b.icon:b.cmdName+(b.value||"")),onclick:b.exec?function(){b.exec.call(a)}:function(){a.execCommand(b.cmdName,b.value)}})}(i)}if("-"==k[k.length-1]&&k.pop(),b=new UE.ui.Menu({items:k,className:"edui-contextmenu",editor:a}),b.render(),b.showAt(h),a.fireEvent("aftershowcontextmenu",b),domUtils.preventDefault(g),browser.ie){var m;try{m=a.selection.getNative().createRange()}catch(n){return}if(m.item){var o=new dom.Range(a.document);o.selectNode(m.item(0)).select(!0,!0)}}}),a.addListener("aftershowcontextmenu",function(b,c){if(a.zeroclipboard){var d=c.items;for(var e in d)"edui-for-copy"==d[e].className&&a.zeroclipboard.clip(d[e].getDom())}})}}},UE.plugins.shortcutmenu=function(){var a,b=this,c=b.options.shortcutMenu||[];c.length&&(b.addListener("contextmenu mouseup",function(b,d){var e=this,f={type:b,target:d.target||d.srcElement,screenX:d.screenX,screenY:d.screenY,clientX:d.clientX,clientY:d.clientY};if(setTimeout(function(){var d=e.selection.getRange();d.collapsed!==!1&&"contextmenu"!=b||(a||(a=new baidu.editor.ui.ShortCutMenu({editor:e,items:c,theme:e.options.theme,className:"edui-shortcutmenu"}),a.render(),e.fireEvent("afterrendershortcutmenu",a)),a.show(f,!!UE.plugins.contextmenu))}),"contextmenu"==b&&(domUtils.preventDefault(d),browser.ie9below)){var g;try{g=e.selection.getNative().createRange()}catch(d){return}if(g.item){var h=new dom.Range(e.document);h.selectNode(g.item(0)).select(!0,!0)}}}),b.addListener("keydown",function(b){"keydown"==b&&a&&!a.isHidden&&a.hide()}))},UE.plugins.basestyle=function(){var a={bold:["strong","b"],italic:["em","i"],subscript:["sub"],superscript:["sup"]},b=function(a,b){return domUtils.filterNodeList(a.selection.getStartElementPath(),b)},c=this;c.addshortcutkey({Bold:"ctrl+66",Italic:"ctrl+73",Underline:"ctrl+85"}),c.addInputRule(function(a){utils.each(a.getNodesByTagName("b i"),function(a){switch(a.tagName){case"b":a.tagName="strong";break;case"i":a.tagName="em"}})});for(var d in a)!function(a,d){c.commands[a]={execCommand:function(a){var e=c.selection.getRange(),f=b(this,d);if(e.collapsed){if(f){var g=c.document.createTextNode("");e.insertNode(g).removeInlineStyle(d),e.setStartBefore(g),domUtils.remove(g)}else{var h=e.document.createElement(d[0]);"superscript"!=a&&"subscript"!=a||(g=c.document.createTextNode(""),e.insertNode(g).removeInlineStyle(["sub","sup"]).setStartBefore(g).collapse(!0)),e.insertNode(h).setStart(h,0)}e.collapse(!0)}else"superscript"!=a&&"subscript"!=a||f&&f.tagName.toLowerCase()==a||e.removeInlineStyle(["sub","sup"]),f?e.removeInlineStyle(d):e.applyInlineStyle(d[0]);e.select()},queryCommandState:function(){return b(this,d)?1:0}}}(d,a[d])},UE.plugins.elementpath=function(){var a,b,c=this;c.setOpt("elementPathEnabled",!0),c.options.elementPathEnabled&&(c.commands.elementpath={execCommand:function(d,e){var f=b[e],g=c.selection.getRange();a=1*e,g.selectNode(f).select()},queryCommandValue:function(){var c=[].concat(this.selection.getStartElementPath()).reverse(),d=[];b=c;for(var e,f=0;e=c[f];f++)if(3!=e.nodeType){var g=e.tagName.toLowerCase();if("img"==g&&e.getAttribute("anchorname")&&(g="anchor"),d[f]=g,a==f){a=-1;break}}return d}})},UE.plugins.formatmatch=function(){function a(f,g){function h(a){return m&&a.selectNode(m),a.applyInlineStyle(d[d.length-1].tagName,null,d)}if(browser.webkit)var i="IMG"==g.target.tagName?g.target:null;c.undoManger&&c.undoManger.save();var j=c.selection.getRange(),k=i||j.getClosedNode();if(b&&k&&"IMG"==k.tagName)k.style.cssText+=";float:"+(b.style.cssFloat||b.style.styleFloat||"none")+";display:"+(b.style.display||"inline"),b=null;else if(!b){var l=j.collapsed;if(l){var m=c.document.createTextNode("match");j.insertNode(m).select()}c.__hasEnterExecCommand=!0;var n=c.options.removeFormatAttributes;c.options.removeFormatAttributes="",c.execCommand("removeformat"),c.options.removeFormatAttributes=n,c.__hasEnterExecCommand=!1,j=c.selection.getRange(),d.length&&h(j),m&&j.setStartBefore(m).collapse(!0),j.select(),m&&domUtils.remove(m)}c.undoManger&&c.undoManger.save(),c.removeListener("mouseup",a),e=0}var b,c=this,d=[],e=0;c.addListener("reset",function(){d=[],e=0}),c.commands.formatmatch={execCommand:function(f){if(e)return e=0,d=[],void c.removeListener("mouseup",a);var g=c.selection.getRange();if(b=g.getClosedNode(),!b||"IMG"!=b.tagName){g.collapse(!0).shrinkBoundary();var h=g.startContainer;d=domUtils.findParents(h,!0,function(a){return!domUtils.isBlockElm(a)&&1==a.nodeType});for(var i,j=0;i=d[j];j++)if("A"==i.tagName){d.splice(j,1);break}}c.addListener("mouseup",a),e=1},queryCommandState:function(){return e},notNeedUndo:1}},UE.plugin.register("searchreplace",function(){function a(a,b,c){var d=b.searchStr;b.dir==-1&&(a=a.split("").reverse().join(""),d=d.split("").reverse().join(""),c=a.length-c);for(var e,f=new RegExp(d,"g"+(b.casesensitive?"":"i"));e=f.exec(a);)if(e.index>=c)return b.dir==-1?a.length-e.index-b.searchStr.length:e.index;return-1}function b(b,c,d){var e,f,h=d.all||1==d.dir?"getNextDomNode":"getPreDomNode";domUtils.isBody(b)&&(b=b.firstChild);for(var i=1;b;){if(e=3==b.nodeType?b.nodeValue:b[browser.ie?"innerText":"textContent"],f=a(e,d,c),i=0,f!=-1)return{node:b,index:f};for(b=domUtils[h](b);b&&g[b.nodeName.toLowerCase()];)b=domUtils[h](b,!0);b&&(c=d.dir==-1?(3==b.nodeType?b.nodeValue:b[browser.ie?"innerText":"textContent"]).length:0)}}function c(a,b,d){for(var e,f=0,g=a.firstChild,h=0;g;){if(3==g.nodeType){if(h=g.nodeValue.replace(/(^[\t\r\n]+)|([\t\r\n]+$)/,"").length,f+=h,f>=b)return{node:g,index:h-(f-b)}}else if(!dtd.$empty[g.tagName]&&(h=g[browser.ie?"innerText":"textContent"].replace(/(^[\t\r\n]+)|([\t\r\n]+$)/,"").length,f+=h,f>=b&&(e=c(g,h-(f-b),d))))return e;g=domUtils.getNextDomNode(g)}}function d(a,d){var f,g=a.selection.getRange(),h=d.searchStr,i=a.document.createElement("span");if(i.innerHTML="$$ueditor_searchreplace_key$$",g.shrinkBoundary(!0),!g.collapsed){g.select();var j=a.selection.getText();if(new RegExp("^"+d.searchStr+"$",d.casesensitive?"":"i").test(j)){if(void 0!=d.replaceStr)return e(g,d.replaceStr),g.select(),!0;g.collapse(d.dir==-1)}}g.insertNode(i),g.enlargeToBlockElm(!0),f=g.startContainer;var k=f[browser.ie?"innerText":"textContent"].indexOf("$$ueditor_searchreplace_key$$");g.setStartBefore(i),domUtils.remove(i);var l=b(f,k,d);if(l){var m=c(l.node,l.index,h),n=c(l.node,l.index+h.length,h);return g.setStart(m.node,m.index).setEnd(n.node,n.index),void 0!==d.replaceStr&&e(g,d.replaceStr),g.select(),!0}g.setCursor()}function e(a,b){b=f.document.createTextNode(b),a.deleteContents().insertNode(b)}var f=this,g={table:1,tbody:1,tr:1,ol:1,ul:1};return{commands:{searchreplace:{execCommand:function(a,b){utils.extend(b,{all:!1,casesensitive:!1,dir:1},!0);var c=0;if(b.all){var e=f.selection.getRange(),g=f.body.firstChild;for(g&&1==g.nodeType?(e.setStart(g,0),e.shrinkBoundary(!0)):3==g.nodeType&&e.setStartBefore(g),e.collapse(!0).select(!0),void 0!==b.replaceStr&&f.fireEvent("saveScene");d(this,b);)c++;c&&f.fireEvent("saveScene")}else void 0!==b.replaceStr&&f.fireEvent("saveScene"),d(this,b)&&c++,c&&f.fireEvent("saveScene");return c},notNeedUndo:1}}}}),UE.plugins.customstyle=function(){var a=this;a.setOpt({customstyle:[{tag:"h1",name:"tc",style:"font-size:32px;font-weight:bold;border-bottom:#ccc 2px solid;padding:0 4px 0 0;text-align:center;margin:0 0 20px 0;"},{tag:"h1",name:"tl",style:"font-size:32px;font-weight:bold;border-bottom:#ccc 2px solid;padding:0 4px 0 0;text-align:left;margin:0 0 10px 0;"},{tag:"span",name:"im",style:"font-size:16px;font-style:italic;font-weight:bold;line-height:18px;"},{tag:"span",name:"hi",style:"font-size:16px;font-style:italic;font-weight:bold;color:rgb(51, 153, 204);line-height:18px;"}]}),a.commands.customstyle={execCommand:function(a,b){var c,d,e=this,f=b.tag,g=domUtils.findParent(e.selection.getStart(),function(a){return a.getAttribute("label")},!0),h={};for(var i in b)void 0!==b[i]&&(h[i]=b[i]);if(delete h.tag,g&&g.getAttribute("label")==b.label){if(c=this.selection.getRange(),d=c.createBookmark(),c.collapsed)if(dtd.$block[g.tagName]){var j=e.document.createElement("p");domUtils.moveChild(g,j),g.parentNode.insertBefore(j,g),domUtils.remove(g)}else domUtils.remove(g,!0);else{var k=domUtils.getCommonAncestor(d.start,d.end),l=domUtils.getElementsByTagName(k,f);new RegExp(f,"i").test(k.tagName)&&l.push(k);for(var m,n=0;m=l[n++];)if(m.getAttribute("label")==b.label){var o=domUtils.getPosition(m,d.start),p=domUtils.getPosition(m,d.end);if((o&domUtils.POSITION_FOLLOWING||o&domUtils.POSITION_CONTAINS)&&(p&domUtils.POSITION_PRECEDING||p&domUtils.POSITION_CONTAINS)&&dtd.$block[f]){var j=e.document.createElement("p");domUtils.moveChild(m,j),m.parentNode.insertBefore(j,m)}domUtils.remove(m,!0)}g=domUtils.findParent(k,function(a){return a.getAttribute("label")==b.label},!0),g&&domUtils.remove(g,!0)}c.moveToBookmark(d).select()}else if(dtd.$block[f]){if(this.execCommand("paragraph",f,h,"customstyle"),c=e.selection.getRange(),!c.collapsed){c.collapse(),g=domUtils.findParent(e.selection.getStart(),function(a){return a.getAttribute("label")==b.label},!0);var q=e.document.createElement("p");domUtils.insertAfter(g,q),domUtils.fillNode(e.document,q),c.setStart(q,0).setCursor()}}else{if(c=e.selection.getRange(),c.collapsed)return g=e.document.createElement(f),domUtils.setAttributes(g,h),void c.insertNode(g).setStart(g,0).setCursor();d=c.createBookmark(),c.applyInlineStyle(f,h).moveToBookmark(d).select()}},queryCommandValue:function(){var a=domUtils.filterNodeList(this.selection.getStartElementPath(),function(a){return a.getAttribute("label")});return a?a.getAttribute("label"):""}},a.addListener("keyup",function(b,c){var d=c.keyCode||c.which;if(32==d||13==d){var e=a.selection.getRange();if(e.collapsed){var f=domUtils.findParent(a.selection.getStart(),function(a){return a.getAttribute("label")},!0);if(f&&dtd.$block[f.tagName]&&domUtils.isEmptyNode(f)){var g=a.document.createElement("p");domUtils.insertAfter(f,g),domUtils.fillNode(a.document,g),domUtils.remove(f),e.setStart(g,0).setCursor()}}}})},UE.plugins.catchremoteimage=function(){var me=this,ajax=UE.ajax;me.options.catchRemoteImageEnable!==!1&&(me.setOpt({catchRemoteImageEnable:!1}),me.addListener("afterpaste",function(){me.fireEvent("catchRemoteImage")}),me.addListener("catchRemoteImage",function(){function catchremoteimage(a,b){var c=utils.serializeParam(me.queryCommandValue("serverparam"))||"",d=utils.formatUrl(catcherActionUrl+(catcherActionUrl.indexOf("?")==-1?"?":"&")+c),e=utils.isCrossDomainUrl(d),f={method:"POST",dataType:e?"jsonp":"",timeout:6e4,onsuccess:b.success,onerror:b.error};f[catcherFieldName]=a,ajax.request(d,f)}for(var catcherLocalDomain=me.getOpt("catcherLocalDomain"),catcherActionUrl=me.getActionUrl(me.getOpt("catcherActionName")),catcherUrlPrefix=me.getOpt("catcherUrlPrefix"),catcherFieldName=me.getOpt("catcherFieldName"),remoteImages=[],imgs=domUtils.getElementsByTagName(me.document,"img"),test=function(a,b){if(a.indexOf(location.host)!=-1||/(^\.)|(^\/)/.test(a))return!0;if(b)for(var c,d=0;c=b[d++];)if(a.indexOf(c)!==-1)return!0;return!1},i=0,ci;ci=imgs[i++];)if(!ci.getAttribute("word_img")){var src=ci.getAttribute("_src")||ci.src||"";/^(https?|ftp):/i.test(src)&&!test(src,catcherLocalDomain)&&remoteImages.push(src)}remoteImages.length&&catchremoteimage(remoteImages,{success:function(r){try{var info=void 0!==r.state?r:eval("("+r.responseText+")")}catch(e){return}var i,j,ci,cj,oldSrc,newSrc,list=info.list;for(i=0;ci=imgs[i++];)for(oldSrc=ci.getAttribute("_src")||ci.src||"",j=0;cj=list[j++];)if(oldSrc==cj.source&&"SUCCESS"==cj.state){newSrc=catcherUrlPrefix+cj.url,domUtils.setAttributes(ci,{src:newSrc,_src:newSrc});break}me.fireEvent("catchremotesuccess")},error:function(){me.fireEvent("catchremoteerror")}})}))},UE.plugin.register("snapscreen",function(){function getLocation(a){var b,c=document.createElement("a"),d=utils.serializeParam(me.queryCommandValue("serverparam"))||"";return c.href=a,browser.ie&&(c.href=c.href),b=c.search,d&&(b=b+(b.indexOf("?")==-1?"?":"&")+d,b=b.replace(/[&]+/gi,"&")),{port:c.port,hostname:c.hostname,path:c.pathname+b||+c.hash}}var me=this,snapplugin;return{commands:{snapscreen:{execCommand:function(cmd){function onSuccess(rs){try{if(rs=eval("("+rs+")"),"SUCCESS"==rs.state){var opt=me.options;me.execCommand("insertimage",{src:opt.snapscreenUrlPrefix+rs.url,_src:opt.snapscreenUrlPrefix+rs.url,alt:rs.title||"",floatStyle:opt.snapscreenImgAlign})}else alert(rs.state)}catch(e){alert(lang.callBackErrorMsg)}}var url,local,res,lang=me.getLang("snapScreen_plugin");if(!snapplugin){var container=me.container,doc=me.container.ownerDocument||me.container.document;snapplugin=doc.createElement("object");try{snapplugin.type="application/x-pluginbaidusnap"}catch(e){return}snapplugin.style.cssText="position:absolute;left:-9999px;width:0;height:0;",snapplugin.setAttribute("width","0"),snapplugin.setAttribute("height","0"),container.appendChild(snapplugin)}url=me.getActionUrl(me.getOpt("snapscreenActionName")),local=getLocation(url),setTimeout(function(){try{res=snapplugin.saveSnapshot(local.hostname,local.path,local.port)}catch(a){return void me.ui._dialogs.snapscreenDialog.open()}onSuccess(res)},50)},queryCommandState:function(){return navigator.userAgent.indexOf("Windows",0)!=-1?0:-1}}}}}),UE.commands.insertparagraph={execCommand:function(a,b){for(var c,d=this,e=d.selection.getRange(),f=e.startContainer;f&&!domUtils.isBody(f);)c=f,f=f.parentNode;if(c){var g=d.document.createElement("p");b?c.parentNode.insertBefore(g,c):c.parentNode.insertBefore(g,c.nextSibling),domUtils.fillNode(d.document,g),e.setStart(g,0).setCursor(!1,!0)}}},UE.plugin.register("webapp",function(){function a(a,c){return c?'':'"}var b=this;return{outputRule:function(b){utils.each(b.getNodesByTagName("img"),function(b){var c;if("edui-faked-webapp"==b.getAttr("class")){c=a({title:b.getAttr("title"),width:b.getAttr("width"),height:b.getAttr("height"),align:b.getAttr("align"),cssfloat:b.getStyle("float"),url:b.getAttr("_url"),logo:b.getAttr("_logo_url")},!0);var d=UE.uNode.createElement(c);b.parentNode.replaceChild(d,b)}})},inputRule:function(b){utils.each(b.getNodesByTagName("iframe"),function(b){if("edui-faked-webapp"==b.getAttr("class")){var c=UE.uNode.createElement(a({title:b.getAttr("title"),width:b.getAttr("width"),height:b.getAttr("height"),align:b.getAttr("align"),cssfloat:b.getStyle("float"),url:b.getAttr("src"),logo:b.getAttr("logo_url")}));b.parentNode.replaceChild(c,b)}})},commands:{webapp:{execCommand:function(b,c){var d=this,e=a(utils.extend(c,{align:"none"}),!1);d.execCommand("inserthtml",e)},queryCommandState:function(){var a=this,b=a.selection.getRange().getClosedNode(),c=b&&"edui-faked-webapp"==b.className;return c?1:0}}}}}),UE.plugins.template=function(){UE.commands.template={execCommand:function(a,b){b.html&&this.execCommand("inserthtml",b.html)}},this.addListener("click",function(a,b){var c=b.target||b.srcElement,d=this.selection.getRange(),e=domUtils.findParent(c,function(a){if(a.className&&domUtils.hasClass(a,"ue_t"))return a},!0);e&&d.selectNode(e).shrinkBoundary().select()}),this.addListener("keydown",function(a,b){var c=this.selection.getRange();if(!c.collapsed&&!(b.ctrlKey||b.metaKey||b.shiftKey||b.altKey)){var d=domUtils.findParent(c.startContainer,function(a){if(a.className&&domUtils.hasClass(a,"ue_t"))return a},!0);d&&domUtils.removeClasses(d,["ue_t"])}})},UE.plugin.register("music",function(){function a(a,c,d,e,f,g){return g?'':"'}var b=this;return{outputRule:function(b){utils.each(b.getNodesByTagName("img"),function(b){var c;if("edui-faked-music"==b.getAttr("class")){var d=b.getStyle("float"),e=b.getAttr("align");c=a(b.getAttr("_url"),b.getAttr("width"),b.getAttr("height"),e,d,!0);var f=UE.uNode.createElement(c);b.parentNode.replaceChild(f,b)}})},inputRule:function(b){utils.each(b.getNodesByTagName("embed"),function(b){if("edui-faked-music"==b.getAttr("class")){var c=b.getStyle("float"),d=b.getAttr("align");html=a(b.getAttr("src"),b.getAttr("width"),b.getAttr("height"),d,c,!1);var e=UE.uNode.createElement(html);b.parentNode.replaceChild(e,b)}})},commands:{music:{execCommand:function(b,c){var d=this,e=a(c.url,c.width||400,c.height||95,"none",!1);d.execCommand("inserthtml",e)},queryCommandState:function(){var a=this,b=a.selection.getRange().getClosedNode(),c=b&&"edui-faked-music"==b.className;return c?1:0}}}}}),UE.plugin.register("autoupload",function(){function a(a,b){var c,d,e,f,g,h,i,j,k=b,l=/image\/\w+/i.test(a.type)?"image":"file",m="loading_"+(+new Date).toString(36);if(c=k.getOpt(l+"FieldName"),d=k.getOpt(l+"UrlPrefix"),e=k.getOpt(l+"MaxSize"),f=k.getOpt(l+"AllowFiles"),g=k.getActionUrl(k.getOpt(l+"ActionName")),i=function(a){var b=k.document.getElementById(m);b&&domUtils.remove(b),k.fireEvent("showmessage",{id:m,content:a,type:"error",timeout:4e3})},"image"==l?(h='',j=function(a){var b=d+a.url,c=k.document.getElementById(m);c&&(c.setAttribute("src",b),c.setAttribute("_src",b),c.setAttribute("title",a.title||""),c.setAttribute("alt",a.original||""),c.removeAttribute("id"),domUtils.removeClasses(c,"loadingclass"))}):(h='

    ',j=function(a){var b=d+a.url,c=k.document.getElementById(m),e=k.selection.getRange(),f=e.createBookmark();e.selectNode(c).select(),k.execCommand("insertfile",{url:b}),e.moveToBookmark(f).select()}),k.execCommand("inserthtml",h),!k.getOpt(l+"ActionName"))return void i(k.getLang("autoupload.errorLoadConfig"));if(a.size>e)return void i(k.getLang("autoupload.exceedSizeError"));var n=a.name?a.name.substr(a.name.lastIndexOf(".")):"";if(n&&"image"!=l||f&&(f.join("")+".").indexOf(n.toLowerCase()+".")==-1)return void i(k.getLang("autoupload.exceedTypeError"));var o=new XMLHttpRequest,p=new FormData,q=utils.serializeParam(k.queryCommandValue("serverparam"))||"",r=utils.formatUrl(g+(g.indexOf("?")==-1?"?":"&")+q);p.append(c,a,a.name||"blob."+a.type.substr("image/".length)),p.append("type","ajax"),o.open("post",r,!0),o.setRequestHeader("X-Requested-With","XMLHttpRequest"),o.addEventListener("load",function(a){try{var b=new Function("return "+utils.trim(a.target.response))();"SUCCESS"==b.state&&b.url?j(b):i(b.state)}catch(c){i(k.getLang("autoupload.loadError"))}}),o.send(p)}function b(a){return a.clipboardData&&a.clipboardData.items&&1==a.clipboardData.items.length&&/^image\//.test(a.clipboardData.items[0].type)?a.clipboardData.items:null}function c(a){return a.dataTransfer&&a.dataTransfer.files?a.dataTransfer.files:null}return{outputRule:function(a){utils.each(a.getNodesByTagName("img"),function(a){/\b(loaderrorclass)|(bloaderrorclass)\b/.test(a.getAttr("class"))&&a.parentNode.removeChild(a)}),utils.each(a.getNodesByTagName("p"),function(a){/\bloadpara\b/.test(a.getAttr("class"))&&a.parentNode.removeChild(a)})},bindEvents:{ready:function(d){var e=this;window.FormData&&window.FileReader&&(domUtils.on(e.body,"paste drop",function(d){var f,g=!1;if(f="paste"==d.type?b(d):c(d)){for(var h,i=f.length;i--;)h=f[i],h.getAsFile&&(h=h.getAsFile()),h&&h.size>0&&(a(h,e),g=!0);g&&d.preventDefault()}}),domUtils.on(e.body,"dragover",function(a){"Files"==a.dataTransfer.types[0]&&a.preventDefault()}),utils.cssRule("loading",".loadingclass{display:inline-block;cursor:default;background: url('"+this.options.themePath+this.options.theme+"/images/loading.gif') no-repeat center center transparent;border:1px solid #cccccc;margin-left:1px;height: 22px;width: 22px;}\n.loaderrorclass{display:inline-block;cursor:default;background: url('"+this.options.themePath+this.options.theme+"/images/loaderror.png') no-repeat center center transparent;border:1px solid #cccccc;margin-right:1px;height: 22px;width: 22px;}",this.document))}}}}),UE.plugin.register("autosave",function(){function a(a){var f;if(!(new Date-c0?b._saveFlag=window.setTimeout(function(){a(b)},b.options.saveInterval):a(b))}},commands:{clearlocaldata:{execCommand:function(a,c){e&&b.getPreferences(e)&&b.removePreferences(e)},notNeedUndo:!0,ignoreContentChange:!0},getlocaldata:{execCommand:function(a,c){return e?b.getPreferences(e)||"":""},notNeedUndo:!0,ignoreContentChange:!0},drafts:{execCommand:function(a,c){e&&(b.body.innerHTML=b.getPreferences(e)||"

    "+domUtils.fillHtml+"

    ",b.focus(!0))},queryCommandState:function(){return e?null===b.getPreferences(e)?-1:0:-1},notNeedUndo:!0,ignoreContentChange:!0}}}}),UE.plugin.register("charts",function(){function a(a){var b=null,c=0;if(a.rows.length<2)return!1;if(a.rows[0].cells.length<2)return!1;b=a.rows[0].cells,c=b.length;for(var d,e=0;d=b[e];e++)if("th"!==d.tagName.toLowerCase())return!1;for(var f,e=1;f=a.rows[e];e++){if(f.cells.length!=c)return!1;if("th"!==f.cells[0].tagName.toLowerCase())return!1;for(var d,g=1;d=f.cells[g];g++){var h=utils.trim(d.innerText||d.textContent||"");if(h=h.replace(new RegExp(UE.dom.domUtils.fillChar,"g"),"").replace(/^\s+|\s+$/g,""),!/^\d*\.?\d+$/.test(h))return!1}}return!0}var b=this;return{bindEvents:{chartserror:function(){}},commands:{charts:{execCommand:function(c,d){var e=domUtils.findParentByTagName(this.selection.getRange().startContainer,"table",!0),f=[],g={};if(!e)return!1;if(!a(e))return b.fireEvent("chartserror"),!1;g.title=d.title||"",g.subTitle=d.subTitle||"",g.xTitle=d.xTitle||"",g.yTitle=d.yTitle||"",g.suffix=d.suffix||"",g.tip=d.tip||"",g.dataFormat=d.tableDataFormat||"",g.chartType=d.chartType||0;for(var h in g)g.hasOwnProperty(h)&&f.push(h+":"+g[h]);e.setAttribute("data-chart",f.join(";")),domUtils.addClass(e,"edui-charts-table")},queryCommandState:function(b,c){ +var d=domUtils.findParentByTagName(this.selection.getRange().startContainer,"table",!0);return d&&a(d)?0:-1}}},inputRule:function(a){utils.each(a.getNodesByTagName("table"),function(a){void 0!==a.getAttr("data-chart")&&a.setAttr("style")})},outputRule:function(a){utils.each(a.getNodesByTagName("table"),function(a){void 0!==a.getAttr("data-chart")&&a.setAttr("style","display: none;")})}}}),UE.plugin.register("section",function(){function a(a){this.tag="",this.level=-1,this.dom=null,this.nextSection=null,this.previousSection=null,this.parentSection=null,this.startAddress=[],this.endAddress=[],this.children=[]}function b(b){var c=new a;return utils.extend(c,b)}function c(a,b){for(var c=b,d=0;d=0){var o=h.selection.getRange().selectNode(i).createAddress(!0).startAddress,p=b({tag:i.tagName,title:i.innerText||i.textContent||"",level:f,dom:i,startAddress:utils.clone(o,[]),endAddress:utils.clone(o,[]),children:[]});for(j.nextSection=p,p.previousSection=j,g=j;f<=g.level;)g=g.parentSection;p.parentSection=g,g.children.push(p),k=j=p}else 1===i.nodeType&&e(i,c),k&&k.endAddress[k.endAddress.length-1]++}for(var f=c||["h1","h2","h3","h4","h5","h6"],g=0;g=c.length);f++){if(c[f]>a[f]){d=!0;break}if(c[f]=c.length);f++){if(c[f]a[f])break}return d&&e}var g,h,i=this;if(b&&d&&d.level!=-1&&(g=e?d.endAddress:d.startAddress,h=c(g,i.body),g&&h&&!f(b.startAddress,b.endAddress,g))){var j,k,l=c(b.startAddress,i.body),m=c(b.endAddress,i.body);if(e)for(j=m;j&&!(domUtils.getPosition(l,j)&domUtils.POSITION_FOLLOWING)&&(k=j.previousSibling,domUtils.insertAfter(h,j),j!=l);)j=k;else for(j=l;j&&!(domUtils.getPosition(j,m)&domUtils.POSITION_FOLLOWING)&&(k=j.nextSibling,h.parentNode.insertBefore(j,h),j!=m);)j=k;i.fireEvent("updateSections")}}},deletesection:{execCommand:function(a,b,c){function d(a){for(var b=e.body,c=0;c',b.className="edui-"+c.options.theme,b.id=c.ui.id+"_iframeupload",i.style.cssText=g,i.style.width=a+"px",i.style.height=e+"px",i.appendChild(b),i.parentNode&&(i.parentNode.style.width=a+"px",i.parentNode.style.height=a+"px");var k=h.getElementById("edui_form_"+j),l=h.getElementById("edui_input_"+j),m=h.getElementById("edui_iframe_"+j);domUtils.on(l,"change",function(){function a(){try{var e,f,g,h=(m.contentDocument||m.contentWindow.document).body,i=h.innerText||h.textContent||"";f=new Function("return "+i)(),e=c.options.imageUrlPrefix+f.url,"SUCCESS"==f.state&&f.url?(g=c.document.getElementById(d),g.setAttribute("src",e),g.setAttribute("_src",e),g.setAttribute("title",f.title||""),g.setAttribute("alt",f.original||""),g.removeAttribute("id"),domUtils.removeClasses(g,"loadingclass")):b&&b(f.state)}catch(j){b&&b(c.getLang("simpleupload.loadError"))}k.reset(),domUtils.un(m,"load",a)}function b(a){if(d){var b=c.document.getElementById(d);b&&domUtils.remove(b),c.fireEvent("showmessage",{id:d,content:a,type:"error",timeout:4e3})}}if(l.value){var d="loading_"+(+new Date).toString(36),e=utils.serializeParam(c.queryCommandValue("serverparam"))||"",f=c.getActionUrl(c.getOpt("imageActionName")),g=c.getOpt("imageAllowFiles");if(c.focus(),c.execCommand("inserthtml",''),!c.getOpt("imageActionName"))return void errorHandler(c.getLang("autoupload.errorLoadConfig"));var h=l.value,i=h?h.substr(h.lastIndexOf(".")):"";if(!i||g&&(g.join("")+".").indexOf(i.toLowerCase()+".")==-1)return void b(c.getLang("simpleupload.exceedTypeError"));domUtils.on(m,"load",a),k.action=utils.formatUrl(f+(f.indexOf("?")==-1?"?":"&")+e),k.submit()}});var n;c.addListener("selectionchange",function(){clearTimeout(n),n=setTimeout(function(){var a=c.queryCommandState("simpleupload");a==-1?l.disabled="disabled":l.disabled=!1},400)}),d=!0}),f.style.cssText=g,b.appendChild(f)}var b,c=this,d=!1;return{bindEvents:{ready:function(){utils.cssRule("loading",".loadingclass{display:inline-block;cursor:default;background: url('"+this.options.themePath+this.options.theme+"/images/loading.gif') no-repeat center center transparent;border:1px solid #cccccc;margin-right:1px;height: 22px;width: 22px;}\n.loaderrorclass{display:inline-block;cursor:default;background: url('"+this.options.themePath+this.options.theme+"/images/loaderror.png') no-repeat center center transparent;border:1px solid #cccccc;margin-right:1px;height: 22px;width: 22px;}",this.document)},simpleuploadbtnready:function(d,e){b=e,c.afterConfigReady(a)}},outputRule:function(a){utils.each(a.getNodesByTagName("img"),function(a){/\b(loaderrorclass)|(bloaderrorclass)\b/.test(a.getAttr("class"))&&a.parentNode.removeChild(a)})},commands:{simpleupload:{queryCommandState:function(){return d?0:-1}}}}}),UE.plugin.register("serverparam",function(){var a={};return{commands:{serverparam:{execCommand:function(b,c,d){void 0===c||null===c?a={}:utils.isString(c)?void 0===d||null===d?delete a[c]:a[c]=d:utils.isObject(c)?utils.extend(a,c,!0):utils.isFunction(c)&&utils.extend(a,c(),!0)},queryCommandValue:function(){return a||{}}}}}}),UE.plugin.register("insertfile",function(){function a(a){var b=a.substr(a.lastIndexOf(".")+1).toLowerCase(),c={rar:"icon_rar.gif",zip:"icon_rar.gif",tar:"icon_rar.gif",gz:"icon_rar.gif",bz2:"icon_rar.gif",doc:"icon_doc.gif",docx:"icon_doc.gif",pdf:"icon_pdf.gif",mp3:"icon_mp3.gif",xls:"icon_xls.gif",chm:"icon_chm.gif",ppt:"icon_ppt.gif",pptx:"icon_ppt.gif",avi:"icon_mv.gif",rmvb:"icon_mv.gif",wmv:"icon_mv.gif",flv:"icon_mv.gif",swf:"icon_mv.gif",rm:"icon_mv.gif",exe:"icon_exe.gif",psd:"icon_psd.gif",txt:"icon_txt.gif",jpg:"icon_jpg.gif",png:"icon_jpg.gif",jpeg:"icon_jpg.gif",gif:"icon_jpg.gif",ico:"icon_jpg.gif",bmp:"icon_jpg.gif"};return c[b]?c[b]:c.txt}var b=this;return{commands:{insertfile:{execCommand:function(c,d){d=utils.isArray(d)?d:[d];var e,f,g,h,i="",j=b.getOpt("UEDITOR_HOME_URL"),k=j+("/"==j.substr(j.length-1)?"":"/")+"dialogs/attachment/fileTypeImages/";for(e=0;e'+h+"

    ";b.execCommand("insertHtml",i)}}}}}),UE.plugins.xssFilter=function(){function a(a){var b=a.tagName,d=a.attrs;return c.hasOwnProperty(b)?void UE.utils.each(d,function(d,e){c[b].indexOf(e)===-1&&a.setAttr(e)}):(a.parentNode.removeChild(a),!1)}var b=UEDITOR_CONFIG,c=b.whitList;c&&b.xssFilterRules&&(this.options.filterRules=function(){var b={};return UE.utils.each(c,function(c,d){b[d]=function(b){return a(b)}}),b}());var d=[];UE.utils.each(c,function(a,b){d.push(b)}),c&&b.inputXssFilter&&this.addInputRule(function(b){b.traversal(function(b){return"element"===b.type&&void a(b)})}),c&&b.outputXssFilter&&this.addOutputRule(function(b){b.traversal(function(b){return"element"===b.type&&void a(b)})})};var baidu=baidu||{};baidu.editor=baidu.editor||{},UE.ui=baidu.editor.ui={},function(){function a(){var a=document.getElementById("edui_fixedlayer");i.setViewportOffset(a,{left:0,top:0})}function b(b){d.on(window,"scroll",a),d.on(window,"resize",baidu.editor.utils.defer(a,0,!0))}var c=baidu.editor.browser,d=baidu.editor.dom.domUtils,e="$EDITORUI",f=window[e]={},g="ID"+e,h=0,i=baidu.editor.ui.uiUtils={uid:function(a){return a?a[g]||(a[g]=++h):++h},hook:function(a,b){var c;return a&&a._callbacks?c=a:(c=function(){var b;a&&(b=a.apply(this,arguments));for(var d=c._callbacks,e=d.length;e--;){var f=d[e].apply(this,arguments);void 0===b&&(b=f)}return b},c._callbacks=[]),c._callbacks.push(b),c},createElementByHtml:function(a){var b=document.createElement("div");return b.innerHTML=a,b=b.firstChild,b.parentNode.removeChild(b),b},getViewportElement:function(){return c.ie&&c.quirks?document.body:document.documentElement},getClientRect:function(a){var b;try{b=a.getBoundingClientRect()}catch(c){b={left:0,top:0,height:0,width:0}}for(var e,f={left:Math.round(b.left),top:Math.round(b.top),height:Math.round(b.bottom-b.top),width:Math.round(b.right-b.left)};(e=a.ownerDocument)!==document&&(a=d.getWindow(e).frameElement);)b=a.getBoundingClientRect(),f.left+=b.left,f.top+=b.top;return f.bottom=f.top+f.height,f.right=f.left+f.width,f},getViewportRect:function(){var a=i.getViewportElement(),b=0|(window.innerWidth||a.clientWidth),c=0|(window.innerHeight||a.clientHeight);return{left:0,top:0,height:c,width:b,bottom:c,right:b}},setViewportOffset:function(a,b){var c=i.getFixedLayer();a.parentNode===c?(a.style.left=b.left+"px",a.style.top=b.top+"px"):d.setViewportOffset(a,b)},getEventOffset:function(a){var b=a.target||a.srcElement,c=i.getClientRect(b),d=i.getViewportOffsetByEvent(a);return{left:d.left-c.left,top:d.top-c.top}},getViewportOffsetByEvent:function(a){var b=a.target||a.srcElement,c=d.getWindow(b).frameElement,e={left:a.clientX,top:a.clientY};if(c&&b.ownerDocument!==document){var f=i.getClientRect(c);e.left+=f.left,e.top+=f.top}return e},setGlobal:function(a,b){return f[a]=b,e+'["'+a+'"]'},unsetGlobal:function(a){delete f[a]},copyAttributes:function(a,b){for(var e=b.attributes,f=e.length;f--;){var g=e[f];"style"==g.nodeName||"class"==g.nodeName||c.ie&&!g.specified||a.setAttribute(g.nodeName,g.nodeValue)}b.className&&d.addClass(a,b.className),b.style.cssText&&(a.style.cssText+=";"+b.style.cssText)},removeStyle:function(a,b){if(a.style.removeProperty)a.style.removeProperty(b);else{if(!a.style.removeAttribute)throw"";a.style.removeAttribute(b)}},contains:function(a,b){return a&&b&&a!==b&&(a.contains?a.contains(b):16&a.compareDocumentPosition(b))},startDrag:function(a,b,c){function d(a){var c=a.clientX-g,d=a.clientY-h;b.ondragmove(c,d,a),a.stopPropagation?a.stopPropagation():a.cancelBubble=!0}function e(a){c.removeEventListener("mousemove",d,!0),c.removeEventListener("mouseup",e,!0),window.removeEventListener("mouseup",e,!0),b.ondragstop()}function f(){i.releaseCapture(),i.detachEvent("onmousemove",d),i.detachEvent("onmouseup",f),i.detachEvent("onlosecaptrue",f),b.ondragstop()}var c=c||document,g=a.clientX,h=a.clientY;if(c.addEventListener)c.addEventListener("mousemove",d,!0),c.addEventListener("mouseup",e,!0),window.addEventListener("mouseup",e,!0),a.preventDefault();else{var i=a.srcElement;i.setCapture(),i.attachEvent("onmousemove",d),i.attachEvent("onmouseup",f),i.attachEvent("onlosecaptrue",f),a.returnValue=!1}b.ondragstart()},getFixedLayer:function(){var d=document.getElementById("edui_fixedlayer");return null==d&&(d=document.createElement("div"),d.id="edui_fixedlayer",document.body.appendChild(d),c.ie&&c.version<=8?(d.style.position="absolute",b(),setTimeout(a)):d.style.position="fixed",d.style.left="0",d.style.top="0",d.style.width="0",d.style.height="0"),d},makeUnselectable:function(a){if(c.opera||c.ie&&c.version<9){if(a.unselectable="on",a.hasChildNodes())for(var b=0;b
    '}},a.inherits(c,b)}(),function(){var a=baidu.editor.utils,b=baidu.editor.dom.domUtils,c=baidu.editor.ui.UIBase,d=baidu.editor.ui.uiUtils,e=baidu.editor.ui.Mask=function(a){this.initOptions(a),this.initUIBase()};e.prototype={getHtmlTpl:function(){return'
    '},postRender:function(){var a=this;b.on(window,"resize",function(){setTimeout(function(){a.isHidden()||a._fill()})})},show:function(a){this._fill(),this.getDom().style.display="",this.getDom().style.zIndex=a},hide:function(){this.getDom().style.display="none",this.getDom().style.zIndex=""},isHidden:function(){return"none"==this.getDom().style.display},_onMouseDown:function(){return!1},_onClick:function(a,b){this.fireEvent("click",a,b)},_fill:function(){var a=this.getDom(),b=d.getViewportRect();a.style.width=b.width+"px",a.style.height=b.height+"px"}},a.inherits(e,c)}(),function(){function a(a,b){for(var c=0;c
    '+this.getContentHtmlTpl()+"
    "},getContentHtmlTpl:function(){return this.content?"string"==typeof this.content?this.content:this.content.renderHtml():""},_UIBase_postRender:e.prototype.postRender,postRender:function(){if(this.content instanceof e&&this.content.postRender(),this.captureWheel&&!this.captured){this.captured=!0;var a=(document.documentElement.clientHeight||document.body.clientHeight)-80,b=this.getDom().offsetHeight,f=c.getClientRect(this.combox.getDom()).top,g=this.getDom("content"),h=this.getDom("body").getElementsByTagName("iframe"),i=this;for(h.length&&(h=h[0]);f+b>a;)b-=30;g.style.height=b+"px",h&&(h.style.height=b+"px"),window.XMLHttpRequest?d.on(g,"onmousewheel"in document.body?"mousewheel":"DOMMouseScroll",function(a){a.preventDefault?a.preventDefault():a.returnValue=!1,a.wheelDelta?g.scrollTop-=a.wheelDelta/120*60:g.scrollTop-=a.detail/-3*60}):d.on(this.getDom(),"mousewheel",function(a){a.returnValue=!1,i.getDom("content").scrollTop-=a.wheelDelta/120*60})}this.fireEvent("postRenderAfter"),this.hide(!0),this._UIBase_postRender()},_doAutoRender:function(){!this.getDom()&&this.autoRender&&this.render()},mesureSize:function(){var a=this.getDom("content");return c.getClientRect(a)},fitSize:function(){if(this.captureWheel&&this.sized)return this.__size;this.sized=!0;var a=this.getDom("body");a.style.width="",a.style.height="";var b=this.mesureSize();if(this.captureWheel){a.style.width=-(-20-b.width)+"px";var c=parseInt(this.getDom("content").style.height,10);!window.isNaN(c)&&(b.height=c)}else a.style.width=b.width+"px";return a.style.height=b.height+"px",this.__size=b,this.captureWheel&&(this.getDom("content").style.overflow="auto"),b},showAnchor:function(a,b){this.showAnchorRect(c.getClientRect(a),b)},showAnchorRect:function(a,b,e){this._doAutoRender();var f=c.getViewportRect();this.getDom().style.visibility="hidden",this._show();var g,i,j,k,l=this.fitSize();b?(g=this.canSideLeft&&a.right+l.width>f.right&&a.left>l.width,i=this.canSideUp&&a.top+l.height>f.bottom&&a.bottom>l.height,j=g?a.left-l.width:a.right,k=i?a.bottom-l.height:a.top):(g=this.canSideLeft&&a.right+l.width>f.right&&a.left>l.width,i=this.canSideUp&&a.top+l.height>f.bottom&&a.bottom>l.height,j=g?a.right-l.width:a.left,k=i?a.top-l.height:a.bottom);var m=this.getDom();c.setViewportOffset(m,{left:j,top:k}),d.removeClasses(m,h),m.className+=" "+h[2*(i?1:0)+(g?1:0)],this.editor&&(m.style.zIndex=1*this.editor.container.style.zIndex+10,baidu.editor.ui.uiUtils.getFixedLayer().style.zIndex=m.style.zIndex-1),this.getDom().style.visibility="visible"},showAt:function(a){var b=a.left,c=a.top,d={left:b,top:c,right:b,bottom:c,height:0,width:0};this.showAnchorRect(d,!1,!0)},_show:function(){if(this._hidden){var a=this.getDom();a.style.display="",this._hidden=!1,this.fireEvent("show")}},isHidden:function(){return this._hidden},show:function(){this._doAutoRender(),this._show()},hide:function(a){!this._hidden&&this.getDom()&&(this.getDom().style.display="none",this._hidden=!0,a||this.fireEvent("hide"))},queryAutoHide:function(a){return!a||!c.contains(this.getDom(),a)}},b.inherits(f,e),d.on(document,"mousedown",function(b){var c=b.target||b.srcElement;a(b,c)}),d.on(window,"scroll",function(b,c){a(b,c)})}(),function(){function a(a,b){for(var c='
    '+a+'
    ',d=0;d"+(60==d?'":"")+""),c+=d<70?'':"";return c+="
    '+b.getLang("themeColor")+'
    '+b.getLang("standardColor")+"
    =60?"border-width:1px;":d>=10&&d<20?"border-width:1px 1px 0 1px;":"border-width:0 1px 0 1px;")+'">
    "}var b=baidu.editor.utils,c=baidu.editor.ui.UIBase,d=baidu.editor.ui.ColorPicker=function(a){this.initOptions(a),this.noColorText=this.noColorText||this.editor.getLang("clearColor"),this.initUIBase()};d.prototype={getHtmlTpl:function(){return a(this.noColorText,this.editor)},_onTableClick:function(a){var b=a.target||a.srcElement,c=b.getAttribute("data-color");c&&this.fireEvent("pickcolor",c)},_onTableOver:function(a){var b=a.target||a.srcElement,c=b.getAttribute("data-color");c&&(this.getDom("preview").style.backgroundColor=c)},_onTableOut:function(){this.getDom("preview").style.backgroundColor=""},_onPickNoColor:function(){this.fireEvent("picknocolor")}},b.inherits(d,c);var e="ffffff,000000,eeece1,1f497d,4f81bd,c0504d,9bbb59,8064a2,4bacc6,f79646,f2f2f2,7f7f7f,ddd9c3,c6d9f0,dbe5f1,f2dcdb,ebf1dd,e5e0ec,dbeef3,fdeada,d8d8d8,595959,c4bd97,8db3e2,b8cce4,e5b9b7,d7e3bc,ccc1d9,b7dde8,fbd5b5,bfbfbf,3f3f3f,938953,548dd4,95b3d7,d99694,c3d69b,b2a2c7,92cddc,fac08f,a5a5a5,262626,494429,17365d,366092,953734,76923c,5f497a,31859b,e36c09,7f7f7f,0c0c0c,1d1b10,0f243e,244061,632423,4f6128,3f3151,205867,974806,c00000,ff0000,ffc000,ffff00,92d050,00b050,00b0f0,0070c0,002060,7030a0,".split(",")}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.uiUtils,c=baidu.editor.ui.UIBase,d=baidu.editor.ui.TablePicker=function(a){this.initOptions(a),this.initTablePicker()};d.prototype={defaultNumRows:10,defaultNumCols:10,maxNumRows:20,maxNumCols:20,numRows:10,numCols:10,lengthOfCellSide:22,initTablePicker:function(){this.initUIBase()},getHtmlTpl:function(){return'
    '},_UIBase_render:c.prototype.render,render:function(a){this._UIBase_render(a),this.getDom("label").innerHTML="0"+this.editor.getLang("t_row")+" x 0"+this.editor.getLang("t_col")},_track:function(a,b){var c=this.getDom("overlay").style,d=this.lengthOfCellSide;c.width=a*d+"px",c.height=b*d+"px";var e=this.getDom("label");e.innerHTML=a+this.editor.getLang("t_col")+" x "+b+this.editor.getLang("t_row"),this.numCols=a,this.numRows=b},_onMouseOver:function(a,c){var d=a.relatedTarget||a.fromElement;b.contains(c,d)||c===d||(this.getDom("label").innerHTML="0"+this.editor.getLang("t_col")+" x 0"+this.editor.getLang("t_row"),this.getDom("overlay").style.visibility="")},_onMouseOut:function(a,c){var d=a.relatedTarget||a.toElement;b.contains(c,d)||c===d||(this.getDom("label").innerHTML="0"+this.editor.getLang("t_col")+" x 0"+this.editor.getLang("t_row"),this.getDom("overlay").style.visibility="hidden")},_onMouseMove:function(a,c){var d=(this.getDom("overlay").style,b.getEventOffset(a)),e=this.lengthOfCellSide,f=Math.ceil(d.left/e),g=Math.ceil(d.top/e);this._track(f,g)},_onClick:function(){this.fireEvent("picktable",this.numCols,this.numRows)}},a.inherits(d,c)}(),function(){var a=baidu.editor.browser,b=baidu.editor.dom.domUtils,c=baidu.editor.ui.uiUtils,d='onmousedown="$$.Stateful_onMouseDown(event, this);" onmouseup="$$.Stateful_onMouseUp(event, this);"'+(a.ie?' onmouseenter="$$.Stateful_onMouseEnter(event, this);" onmouseleave="$$.Stateful_onMouseLeave(event, this);"':' onmouseover="$$.Stateful_onMouseOver(event, this);" onmouseout="$$.Stateful_onMouseOut(event, this);"');baidu.editor.ui.Stateful={alwalysHoverable:!1,target:null,Stateful_init:function(){this._Stateful_dGetHtmlTpl=this.getHtmlTpl,this.getHtmlTpl=this.Stateful_getHtmlTpl},Stateful_getHtmlTpl:function(){var a=this._Stateful_dGetHtmlTpl();return a.replace(/stateful/g,function(){return d})},Stateful_onMouseEnter:function(a,b){this.target=b,this.isDisabled()&&!this.alwalysHoverable||(this.addState("hover"),this.fireEvent("over"))},Stateful_onMouseLeave:function(a,b){this.isDisabled()&&!this.alwalysHoverable||(this.removeState("hover"),this.removeState("active"),this.fireEvent("out"))},Stateful_onMouseOver:function(a,b){var d=a.relatedTarget;c.contains(b,d)||b===d||this.Stateful_onMouseEnter(a,b)},Stateful_onMouseOut:function(a,b){var d=a.relatedTarget;c.contains(b,d)||b===d||this.Stateful_onMouseLeave(a,b)},Stateful_onMouseDown:function(a,b){this.isDisabled()||this.addState("active")},Stateful_onMouseUp:function(a,b){this.isDisabled()||this.removeState("active")},Stateful_postRender:function(){this.disabled&&!this.hasState("disabled")&&this.addState("disabled")},hasState:function(a){return b.hasClass(this.getStateDom(),"edui-state-"+a)},addState:function(a){this.hasState(a)||(this.getStateDom().className+=" edui-state-"+a)},removeState:function(a){this.hasState(a)&&b.removeClasses(this.getStateDom(),["edui-state-"+a])},getStateDom:function(){return this.getDom("state")},isChecked:function(){return this.hasState("checked")},setChecked:function(a){!this.isDisabled()&&a?this.addState("checked"):this.removeState("checked")},isDisabled:function(){return this.hasState("disabled")},setDisabled:function(a){a?(this.removeState("hover"),this.removeState("checked"),this.removeState("active"),this.addState("disabled")):this.removeState("disabled")}}}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.UIBase,c=baidu.editor.ui.Stateful,d=baidu.editor.ui.Button=function(a){if(a.name){var b=a.name,c=a.cssRules;a.className||(a.className="edui-for-"+b),a.cssRules=".edui-default .edui-for-"+b+" .edui-icon {"+c+"}"}this.initOptions(a),this.initButton()};d.prototype={uiName:"button",label:"",title:"",showIcon:!0,showText:!0,cssRules:"",initButton:function(){this.initUIBase(),this.Stateful_init(),this.cssRules&&a.cssRule("edui-customize-"+this.name+"-style",this.cssRules)},getHtmlTpl:function(){return'
    '+(this.showIcon?'
    ':"")+(this.showText?'
    '+this.label+"
    ":"")+"
    "},postRender:function(){this.Stateful_postRender(),this.setDisabled(this.disabled)},_onMouseDown:function(a){var b=a.target||a.srcElement,c=b&&b.tagName&&b.tagName.toLowerCase();if("input"==c||"object"==c||"object"==c)return!1},_onClick:function(){this.isDisabled()||this.fireEvent("click")},setTitle:function(a){var b=this.getDom("label");b.innerHTML=a}},a.inherits(d,b),a.extend(d.prototype,c)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.uiUtils,c=(baidu.editor.dom.domUtils,baidu.editor.ui.UIBase),d=baidu.editor.ui.Stateful,e=baidu.editor.ui.SplitButton=function(a){this.initOptions(a),this.initSplitButton()};e.prototype={popup:null,uiName:"splitbutton",title:"",initSplitButton:function(){this.initUIBase(),this.Stateful_init();if(null!=this.popup){var a=this.popup;this.popup=null,this.setPopup(a)}},_UIBase_postRender:c.prototype.postRender,postRender:function(){this.Stateful_postRender(),this._UIBase_postRender()},setPopup:function(c){this.popup!==c&&(null!=this.popup&&this.popup.dispose(),c.addListener("show",a.bind(this._onPopupShow,this)),c.addListener("hide",a.bind(this._onPopupHide,this)),c.addListener("postrender",a.bind(function(){c.getDom("body").appendChild(b.createElementByHtml('
    ')),c.getDom().className+=" "+this.className},this)),this.popup=c)},_onPopupShow:function(){this.addState("opened")},_onPopupHide:function(){this.removeState("opened")},getHtmlTpl:function(){return'
    '},showPopup:function(){var a=b.getClientRect(this.getDom());a.top-=this.popup.SHADOW_RADIUS,a.height+=this.popup.SHADOW_RADIUS,this.popup.showAnchorRect(a)},_onArrowClick:function(a,b){this.isDisabled()||this.showPopup()},_onButtonClick:function(){this.isDisabled()||this.fireEvent("buttonclick")}},a.inherits(e,c),a.extend(e.prototype,d,!0)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.uiUtils,c=baidu.editor.ui.ColorPicker,d=baidu.editor.ui.Popup,e=baidu.editor.ui.SplitButton,f=baidu.editor.ui.ColorButton=function(a){this.initOptions(a),this.initColorButton()};f.prototype={initColorButton:function(){var a=this;this.popup=new d({content:new c({noColorText:a.editor.getLang("clearColor"),editor:a.editor,onpickcolor:function(b,c){a._onPickColor(c)},onpicknocolor:function(b,c){a._onPickNoColor(c)}}),editor:a.editor}),this.initSplitButton()},_SplitButton_postRender:e.prototype.postRender,postRender:function(){this._SplitButton_postRender(),this.getDom("button_body").appendChild(b.createElementByHtml('
    ')),this.getDom().className+=" edui-colorbutton"; +},setColor:function(a){this.getDom("colorlump").style.backgroundColor=a,this.color=a},_onPickColor:function(a){this.fireEvent("pickcolor",a)!==!1&&(this.setColor(a),this.popup.hide())},_onPickNoColor:function(a){this.fireEvent("picknocolor")!==!1&&this.popup.hide()}},a.inherits(f,e)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.Popup,c=baidu.editor.ui.TablePicker,d=baidu.editor.ui.SplitButton,e=baidu.editor.ui.TableButton=function(a){this.initOptions(a),this.initTableButton()};e.prototype={initTableButton:function(){var a=this;this.popup=new b({content:new c({editor:a.editor,onpicktable:function(b,c,d){a._onPickTable(c,d)}}),editor:a.editor}),this.initSplitButton()},_onPickTable:function(a,b){this.fireEvent("picktable",a,b)!==!1&&this.popup.hide()}},a.inherits(e,d)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.UIBase,c=baidu.editor.ui.AutoTypeSetPicker=function(a){this.initOptions(a),this.initAutoTypeSetPicker()};c.prototype={initAutoTypeSetPicker:function(){this.initUIBase()},getHtmlTpl:function(){var a=this.editor,b=a.options.autotypeset,c=a.getLang("autoTypeSet"),d="textAlignValue"+a.uid,e="imageBlockLineValue"+a.uid,f="symbolConverValue"+a.uid;return'
    "+c.mergeLine+'"+c.delLine+'
    "+c.removeFormat+'"+c.indent+'
    "+c.alignment+'"+a.getLang("justifyleft")+'"+a.getLang("justifycenter")+'"+a.getLang("justifyright")+'
    "+c.imageFloat+'"+a.getLang("default")+'"+a.getLang("justifyleft")+'"+a.getLang("justifycenter")+'"+a.getLang("justifyright")+'
    "+c.removeFontsize+'"+c.removeFontFamily+'
    "+c.removeHtml+'
    "+c.pasteFilter+'
    "+c.symbol+'"+c.bdc2sb+'"+c.tobdc+'
    "},_UIBase_render:b.prototype.render},a.inherits(c,b)}(),function(){function a(a){for(var c,d={},e=a.getDom(),f=a.editor.uid,g=null,h=null,i=domUtils.getElementsByTagName(e,"input"),j=i.length-1;c=i[j--];)if(g=c.getAttribute("type"),"checkbox"==g)if(h=c.getAttribute("name"),d[h]&&delete d[h],c.checked){var k=document.getElementById(h+"Value"+f);if(k){if(/input/gi.test(k.tagName))d[h]=k.value;else for(var l,m=k.getElementsByTagName("input"),n=m.length-1;l=m[n--];)if(l.checked){d[h]=l.value;break}}else d[h]=!0}else d[h]=!1;else d[c.getAttribute("value")]=c.checked;for(var o,p=domUtils.getElementsByTagName(e,"select"),j=0;o=p[j++];){var q=o.getAttribute("name");d[q]=d[q]?o.value:""}b.extend(a.editor.options.autotypeset,d),a.editor.setPreferences("autotypeset",d)}var b=baidu.editor.utils,c=baidu.editor.ui.Popup,d=baidu.editor.ui.AutoTypeSetPicker,e=baidu.editor.ui.SplitButton,f=baidu.editor.ui.AutoTypeSetButton=function(a){this.initOptions(a),this.initAutoTypeSetButton()};f.prototype={initAutoTypeSetButton:function(){var b=this;this.popup=new c({content:new d({editor:b.editor}),editor:b.editor,hide:function(){!this._hidden&&this.getDom()&&(a(this),this.getDom().style.display="none",this._hidden=!0,this.fireEvent("hide"))}});var e=0;this.popup.addListener("postRenderAfter",function(){var c=this;if(!e){var d=this.getDom(),f=d.getElementsByTagName("button")[0];f.onclick=function(){a(c),b.editor.execCommand("autotypeset"),c.hide()},domUtils.on(d,"click",function(d){var e=d.target||d.srcElement,f=b.editor.uid;if(e&&"INPUT"==e.tagName){if("imageBlockLine"==e.name||"textAlign"==e.name||"symbolConver"==e.name)for(var g=e.checked,h=document.getElementById(e.name+"Value"+f),i=h.getElementsByTagName("input"),j={imageBlockLine:"none",textAlign:"left",symbolConver:"tobdc"},k=0;k"),e.push('
    '),2===d&&e.push("");return'
    '+e.join("")+"
    "},getStateDom:function(){return this.target},_onClick:function(a){var c=a.target||a.srcElement;/icon/.test(c.className)&&(this.items[c.parentNode.getAttribute("index")].onclick(),b.postHide(a))},_UIBase_render:d.prototype.render},a.inherits(e,d),a.extend(e.prototype,c,!0)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.Stateful,c=baidu.editor.ui.uiUtils,d=baidu.editor.ui.UIBase,e=baidu.editor.ui.PastePicker=function(a){this.initOptions(a),this.initPastePicker()};e.prototype={initPastePicker:function(){this.initUIBase(),this.Stateful_init()},getHtmlTpl:function(){return'
    '+this.editor.getLang("pasteOpt")+'
    '},getStateDom:function(){return this.target},format:function(a){this.editor.ui._isTransfer=!0,this.editor.fireEvent("pasteTransfer",a)},_onClick:function(a){var b=domUtils.getNextDomNode(a),d=c.getViewportRect().height,e=c.getClientRect(b);e.top+e.height>d?b.style.top=-e.height-a.offsetHeight+"px":b.style.top="",/hidden/gi.test(domUtils.getComputedStyle(b,"visibility"))?(b.style.visibility="visible",domUtils.addClass(a,"edui-state-opened")):(b.style.visibility="hidden",domUtils.removeClasses(a,"edui-state-opened"))},_UIBase_render:d.prototype.render},a.inherits(e,d),a.extend(e.prototype,b,!0)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.uiUtils,c=baidu.editor.ui.UIBase,d=baidu.editor.ui.Toolbar=function(a){this.initOptions(a),this.initToolbar()};d.prototype={items:null,initToolbar:function(){this.items=this.items||[],this.initUIBase()},add:function(a,b){void 0===b?this.items.push(a):this.items.splice(b,0,a)},getHtmlTpl:function(){for(var a=[],b=0;b'+a.join("")+""},postRender:function(){for(var a=this.getDom(),c=0;c
    '},postRender:function(){},queryAutoHide:function(){return!0}};h.prototype={items:null,uiName:"menu",initMenu:function(){this.items=this.items||[],this.initPopup(),this.initItems()},initItems:function(){for(var a=0;a'+a.join("")+""},_Popup_postRender:e.prototype.postRender,postRender:function(){for(var a=this,d=0;d
    '+this.renderLabelHtml()+"
    "},postRender:function(){var a=this;this.addListener("over",function(){a.ownerMenu.fireEvent("submenuover",a),a.subMenu&&a.delayShowSubMenu()}),this.subMenu&&(this.getDom().className+=" edui-hassubmenu",this.subMenu.render(),this.addListener("out",function(){a.delayHideSubMenu()}),this.subMenu.addListener("over",function(){clearTimeout(a._closingTimer),a._closingTimer=null,a.addState("opened")}),this.ownerMenu.addListener("hide",function(){a.hideSubMenu()}),this.ownerMenu.addListener("submenuover",function(b,c){c!==a&&a.delayHideSubMenu()}),this.subMenu._bakQueryAutoHide=this.subMenu.queryAutoHide,this.subMenu.queryAutoHide=function(b){return(!b||!c.contains(a.getDom(),b))&&this._bakQueryAutoHide(b)}),this.getDom().style.tabIndex="-1",c.makeUnselectable(this.getDom()),this.Stateful_postRender()},delayShowSubMenu:function(){var a=this;a.isDisabled()||(a.addState("opened"),clearTimeout(a._showingTimer),clearTimeout(a._closingTimer),a._closingTimer=null,a._showingTimer=setTimeout(function(){a.showSubMenu()},250))},delayHideSubMenu:function(){var a=this;a.isDisabled()||(a.removeState("opened"),clearTimeout(a._showingTimer),a._closingTimer||(a._closingTimer=setTimeout(function(){a.hasState("opened")||a.hideSubMenu(),a._closingTimer=null},400)))},renderLabelHtml:function(){return'
    '+(this.label||"")+"
    "},getStateDom:function(){return this.getDom()},queryAutoHide:function(a){if(this.subMenu&&this.hasState("opened"))return this.subMenu.queryAutoHide(a)},_onClick:function(a,b){this.hasState("disabled")||this.fireEvent("click",a,b)!==!1&&(this.subMenu?this.showSubMenu():e.postHide(a))},showSubMenu:function(){var a=c.getClientRect(this.getDom());a.right-=5,a.left+=2,a.width-=7,a.top-=4,a.bottom+=4,a.height+=8,this.subMenu.showAnchorRect(a,!0,!0)},hideSubMenu:function(){this.subMenu.hide()}},a.inherits(j,d),a.extend(j.prototype,f,!0)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.uiUtils,c=baidu.editor.ui.Menu,d=baidu.editor.ui.SplitButton,e=baidu.editor.ui.Combox=function(a){this.initOptions(a),this.initCombox()};e.prototype={uiName:"combox",onbuttonclick:function(){this.showPopup()},initCombox:function(){var a=this;this.items=this.items||[];for(var b=0;bd.right&&(g=d.right-e.width);var h=a.top;h+e.height>d.bottom&&(h=d.bottom-e.height),c.style.left=Math.max(g,0)+"px",c.style.top=Math.max(h,0)+"px"},showAtCenter:function(){var a=f.getViewportRect();if(this.fullscreen){var b=this.getDom(),c=this.getDom("content");b.style.display="block";var d=UE.ui.uiUtils.getClientRect(b),g=UE.ui.uiUtils.getClientRect(c);b.style.left="-100000px",c.style.width=a.width-d.width+g.width+"px",c.style.height=a.height-d.height+g.height+"px",b.style.width=a.width+"px",b.style.height=a.height+"px",b.style.left=0,this._originalContext={html:{overflowX:document.documentElement.style.overflowX,overflowY:document.documentElement.style.overflowY},body:{overflowX:document.body.style.overflowX,overflowY:document.body.style.overflowY}},document.documentElement.style.overflowX="hidden",document.documentElement.style.overflowY="hidden",document.body.style.overflowX="hidden",document.body.style.overflowY="hidden"}else{this.getDom().style.display="";var h=this.fitSize(),i=0|this.getDom("titlebar").offsetHeight,j=a.width/2-h.width/2,k=a.height/2-(h.height-i)/2-i,l=this.getDom();this.safeSetOffset({left:Math.max(0|j,0),top:Math.max(0|k,0)}),e.hasClass(l,"edui-state-centered")||(l.className+=" edui-state-centered")}this._show()},getContentHtml:function(){var a="";return"string"==typeof this.content?a=this.content:this.iframeUrl&&(a=''),a},getHtmlTpl:function(){var a="";if(this.buttons){for(var b=[],c=0;c
    '+b.join("")+"
    "}return'
    '+(this.title||"")+"
    "+this.closeButton.renderHtml()+'
    '+(this.autoReset?"":this.getContentHtml())+"
    "+a+"
    "},postRender:function(){this.modalMask.getDom()||(this.modalMask.render(),this.modalMask.hide()),this.dragMask.getDom()||(this.dragMask.render(),this.dragMask.hide());var a=this;if(this.addListener("show",function(){a.modalMask.show(this.getDom().style.zIndex-2)}),this.addListener("hide",function(){a.modalMask.hide()}),this.buttons)for(var b=0;b',a.editor.container.style.zIndex&&(this.getDom().style.zIndex=1*a.editor.container.style.zIndex+1))}}),this.onbuttonclick=function(){this.showPopup()},this.initSplitButton()}},a.inherits(d,c)}(),function(){function a(a){var b=a.target||a.srcElement,c=g.findParent(b,function(a){return g.hasClass(a,"edui-shortcutmenu")||g.hasClass(a,"edui-popup")},!0);if(!c)for(var d,e=0;d=h[e++];)d.hide()}var b,c=baidu.editor.ui,d=c.UIBase,e=c.uiUtils,f=baidu.editor.utils,g=baidu.editor.dom.domUtils,h=[],i=!1,j=c.ShortCutMenu=function(a){this.initOptions(a),this.initShortCutMenu()};j.postHide=a,j.prototype={isHidden:!0,SPACE:5,initShortCutMenu:function(){this.items=this.items||[],this.initUIBase(),this.initItems(),this.initEvent(),h.push(this)},initEvent:function(){var a=this,c=a.editor.document;g.on(c,"mousemove",function(c){if(a.isHidden===!1){if(a.getSubMenuMark()||"contextmenu"==a.eventType)return;var d=!0,e=a.getDom(),f=e.offsetWidth,g=e.offsetHeight,h=f/2+a.SPACE,i=g/2,j=Math.abs(c.screenX-a.left),k=Math.abs(c.screenY-a.top);clearTimeout(b),b=setTimeout(function(){k>0&&ki&&ki+70&&k0&&jh&&jh+70&&j'+a+""}},f.inherits(j,d),g.on(document,"mousedown",function(b){a(b)}),g.on(window,"scroll",function(b){a(b)})}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui.UIBase,c=baidu.editor.ui.Breakline=function(a){this.initOptions(a),this.initSeparator()};c.prototype={uiName:"Breakline",initSeparator:function(){this.initUIBase()},getHtmlTpl:function(){return"
    "}},a.inherits(c,b)}(),function(){var a=baidu.editor.utils,b=baidu.editor.dom.domUtils,c=baidu.editor.ui.UIBase,d=baidu.editor.ui.Message=function(a){this.initOptions(a),this.initMessage()};d.prototype={initMessage:function(){this.initUIBase()},getHtmlTpl:function(){return'
    ×
    '},reset:function(a){var b=this;a.keepshow||(clearTimeout(this.timer),b.timer=setTimeout(function(){b.hide()},a.timeout||4e3)),void 0!==a.content&&b.setContent(a.content),void 0!==a.type&&b.setType(a.type),b.show()},postRender:function(){var a=this,c=this.getDom("closer");c&&b.on(c,"click",function(){a.hide()})},setContent:function(a){this.getDom("content").innerHTML=a},setType:function(a){a=a||"info";var b=this.getDom("body");b.className=b.className.replace(/edui-message-type-[\w-]+/,"edui-message-type-"+a)},getContent:function(){return this.getDom("content").innerHTML},getType:function(){var a=this.getDom("body").match(/edui-message-type-([\w-]+)/);return a?a[1]:""},show:function(){this.getDom().style.display="block"},hide:function(){var a=this.getDom();a&&(a.style.display="none",a.parentNode&&a.parentNode.removeChild(a))}},a.inherits(d,c)}(),function(){var a=baidu.editor.utils,b=baidu.editor.ui,c=b.Dialog;b.buttons={},b.Dialog=function(a){var b=new c(a);return b.addListener("hide",function(){if(b.editor){var a=b.editor;try{if(browser.gecko){var c=a.window.scrollY,d=a.window.scrollX;a.body.focus(),a.window.scrollTo(d,c)}else a.focus()}catch(e){}}}),b};for(var d,e={anchor:"~/dialogs/anchor/anchor.html",insertimage:"~/dialogs/image/image.html",link:"~/dialogs/link/link.html",spechars:"~/dialogs/spechars/spechars.html",searchreplace:"~/dialogs/searchreplace/searchreplace.html",map:"~/dialogs/map/map.html",gmap:"~/dialogs/gmap/gmap.html",insertvideo:"~/dialogs/video/video.html",help:"~/dialogs/help/help.html",preview:"~/dialogs/preview/preview.html",emotion:"~/dialogs/emotion/emotion.html",wordimage:"~/dialogs/wordimage/wordimage.html",attachment:"~/dialogs/attachment/attachment.html",insertframe:"~/dialogs/insertframe/insertframe.html",edittip:"~/dialogs/table/edittip.html",edittable:"~/dialogs/table/edittable.html",edittd:"~/dialogs/table/edittd.html",webapp:"~/dialogs/webapp/webapp.html",snapscreen:"~/dialogs/snapscreen/snapscreen.html",scrawl:"~/dialogs/scrawl/scrawl.html",music:"~/dialogs/music/music.html",template:"~/dialogs/template/template.html",background:"~/dialogs/background/background.html",charts:"~/dialogs/charts/charts.html"},f=["undo","redo","formatmatch","bold","italic","underline","fontborder","touppercase","tolowercase","strikethrough","subscript","superscript","source","indent","outdent","blockquote","pasteplain","pagebreak","selectall","print","horizontal","removeformat","time","date","unlink","insertparagraphbeforetable","insertrow","insertcol","mergeright","mergedown","deleterow","deletecol","splittorows","splittocols","splittocells","mergecells","deletetable","drafts"],g=0;d=f[g++];)d=d.toLowerCase(),b[d]=function(a){return function(c){var d=new b.Button({className:"edui-for-"+a,title:c.options.labelMap[a]||c.getLang("labelMap."+a)||"",onclick:function(){c.execCommand(a)},theme:c.options.theme,showText:!1});return b.buttons[a]=d,c.addListener("selectionchange",function(b,e,f){var g=c.queryCommandState(a);g==-1?(d.setDisabled(!0),d.setChecked(!1)):f||(d.setDisabled(!1),d.setChecked(g))}),d}}(d);b.cleardoc=function(a){var c=new b.Button({className:"edui-for-cleardoc",title:a.options.labelMap.cleardoc||a.getLang("labelMap.cleardoc")||"",theme:a.options.theme,onclick:function(){confirm(a.getLang("confirmClear"))&&a.execCommand("cleardoc")}});return b.buttons.cleardoc=c,a.addListener("selectionchange",function(){c.setDisabled(a.queryCommandState("cleardoc")==-1)}),c};var h={justify:["left","right","center","justify"],imagefloat:["none","left","center","right"],directionality:["ltr","rtl"]};for(var i in h)!function(a,c){for(var d,e=0;d=c[e++];)!function(c){b[a.replace("float","")+c]=function(d){var e=new b.Button({ +className:"edui-for-"+a.replace("float","")+c,title:d.options.labelMap[a.replace("float","")+c]||d.getLang("labelMap."+a.replace("float","")+c)||"",theme:d.options.theme,onclick:function(){d.execCommand(a,c)}});return b.buttons[a]=e,d.addListener("selectionchange",function(b,f,g){e.setDisabled(d.queryCommandState(a)==-1),e.setChecked(d.queryCommandValue(a)==c&&!g)}),e}}(d)}(i,h[i]);for(var d,g=0;d=["backcolor","forecolor"][g++];)b[d]=function(a){return function(c){var d=new b.ColorButton({className:"edui-for-"+a,color:"default",title:c.options.labelMap[a]||c.getLang("labelMap."+a)||"",editor:c,onpickcolor:function(b,d){c.execCommand(a,d)},onpicknocolor:function(){c.execCommand(a,"default"),this.setColor("transparent"),this.color="default"},onbuttonclick:function(){c.execCommand(a,this.color)}});return b.buttons[a]=d,c.addListener("selectionchange",function(){d.setDisabled(c.queryCommandState(a)==-1)}),d}}(d);var j={noOk:["searchreplace","help","spechars","webapp","preview"],ok:["attachment","anchor","link","insertimage","map","gmap","insertframe","wordimage","insertvideo","insertframe","edittip","edittable","edittd","scrawl","template","music","background","charts"]};for(var i in j)!function(c,d){for(var f,g=0;f=d[g++];)browser.opera&&"searchreplace"===f||!function(d){b[d]=function(f,g,h){g=g||(f.options.iframeUrlMap||{})[d]||e[d],h=f.options.labelMap[d]||f.getLang("labelMap."+d)||"";var i;g&&(i=new b.Dialog(a.extend({iframeUrl:f.ui.mapUrl(g),editor:f,className:"edui-for-"+d,title:h,holdScroll:"insertimage"===d,fullscreen:/charts|preview/.test(d),closeDialog:f.getLang("closeDialog")},"ok"==c?{buttons:[{className:"edui-okbutton",label:f.getLang("ok"),editor:f,onclick:function(){i.close(!0)}},{className:"edui-cancelbutton",label:f.getLang("cancel"),editor:f,onclick:function(){i.close(!1)}}]}:{})),f.ui._dialogs[d+"Dialog"]=i);var j=new b.Button({className:"edui-for-"+d,title:h,onclick:function(){if(i)switch(d){case"wordimage":var a=f.execCommand("wordimage");a&&a.length&&(i.render(),i.open());break;case"scrawl":f.queryCommandState("scrawl")!=-1&&(i.render(),i.open());break;default:i.render(),i.open()}},theme:f.options.theme,disabled:"scrawl"==d&&f.queryCommandState("scrawl")==-1||"charts"==d});return b.buttons[d]=j,f.addListener("selectionchange",function(){var a={edittable:1};if(!(d in a)){var b=f.queryCommandState(d);j.getDom()&&(j.setDisabled(b==-1),j.setChecked(b))}}),j}}(f.toLowerCase())}(i,j[i]);b.snapscreen=function(a,c,d){d=a.options.labelMap.snapscreen||a.getLang("labelMap.snapscreen")||"";var f=new b.Button({className:"edui-for-snapscreen",title:d,onclick:function(){a.execCommand("snapscreen")},theme:a.options.theme});if(b.buttons.snapscreen=f,c=c||(a.options.iframeUrlMap||{}).snapscreen||e.snapscreen){var g=new b.Dialog({iframeUrl:a.ui.mapUrl(c),editor:a,className:"edui-for-snapscreen",title:d,buttons:[{className:"edui-okbutton",label:a.getLang("ok"),editor:a,onclick:function(){g.close(!0)}},{className:"edui-cancelbutton",label:a.getLang("cancel"),editor:a,onclick:function(){g.close(!1)}}]});g.render(),a.ui._dialogs.snapscreenDialog=g}return a.addListener("selectionchange",function(){f.setDisabled(a.queryCommandState("snapscreen")==-1)}),f},b.insertcode=function(c,d,e){d=c.options.insertcode||[],e=c.options.labelMap.insertcode||c.getLang("labelMap.insertcode")||"";var f=[];a.each(d,function(a,b){f.push({label:a,value:b,theme:c.options.theme,renderLabelHtml:function(){return'
    '+(this.label||"")+"
    "}})});var g=new b.Combox({editor:c,items:f,onselect:function(a,b){c.execCommand("insertcode",this.items[b].value)},onbuttonclick:function(){this.showPopup()},title:e,initValue:e,className:"edui-for-insertcode",indexByValue:function(a){if(a)for(var b,c=0;b=this.items[c];c++)if(b.value.indexOf(a)!=-1)return c;return-1}});return b.buttons.insertcode=g,c.addListener("selectionchange",function(a,b,d){if(!d){var f=c.queryCommandState("insertcode");if(f==-1)g.setDisabled(!0);else{g.setDisabled(!1);var h=c.queryCommandValue("insertcode");if(!h)return void g.setValue(e);h&&(h=h.replace(/['"]/g,"").split(",")[0]),g.setValue(h)}}}),g},b.fontfamily=function(c,d,e){if(d=c.options.fontfamily||[],e=c.options.labelMap.fontfamily||c.getLang("labelMap.fontfamily")||"",d.length){for(var f,g=0,h=[];f=d[g];g++){var i=c.getLang("fontfamily")[f.name]||"";!function(b,d){h.push({label:b,value:d,theme:c.options.theme,renderLabelHtml:function(){return'
    '+(this.label||"")+"
    "}})}(f.label||i,f.val)}var j=new b.Combox({editor:c,items:h,onselect:function(a,b){c.execCommand("FontFamily",this.items[b].value)},onbuttonclick:function(){this.showPopup()},title:e,initValue:e,className:"edui-for-fontfamily",indexByValue:function(a){if(a)for(var b,c=0;b=this.items[c];c++)if(b.value.indexOf(a)!=-1)return c;return-1}});return b.buttons.fontfamily=j,c.addListener("selectionchange",function(a,b,d){if(!d){var e=c.queryCommandState("FontFamily");if(e==-1)j.setDisabled(!0);else{j.setDisabled(!1);var f=c.queryCommandValue("FontFamily");f&&(f=f.replace(/['"]/g,"").split(",")[0]),j.setValue(f)}}}),j}},b.fontsize=function(a,c,d){if(d=a.options.labelMap.fontsize||a.getLang("labelMap.fontsize")||"",c=c||a.options.fontsize||[],c.length){for(var e=[],f=0;f'+(this.label||"")+""}})}var h=new b.Combox({editor:a,items:e,title:d,initValue:d,onselect:function(b,c){a.execCommand("FontSize",this.items[c].value)},onbuttonclick:function(){this.showPopup()},className:"edui-for-fontsize"});return b.buttons.fontsize=h,a.addListener("selectionchange",function(b,c,d){if(!d){var e=a.queryCommandState("FontSize");e==-1?h.setDisabled(!0):(h.setDisabled(!1),h.setValue(a.queryCommandValue("FontSize")))}}),h}},b.paragraph=function(c,d,e){if(e=c.options.labelMap.paragraph||c.getLang("labelMap.paragraph")||"",d=c.options.paragraph||[],!a.isEmptyObject(d)){var f=[];for(var g in d)f.push({value:g,label:d[g]||c.getLang("paragraph")[g],theme:c.options.theme,renderLabelHtml:function(){return'
    '+(this.label||"")+"
    "}});var h=new b.Combox({editor:c,items:f,title:e,initValue:e,className:"edui-for-paragraph",onselect:function(a,b){c.execCommand("Paragraph",this.items[b].value)},onbuttonclick:function(){this.showPopup()}});return b.buttons.paragraph=h,c.addListener("selectionchange",function(a,b,d){if(!d){var e=c.queryCommandState("Paragraph");if(e==-1)h.setDisabled(!0);else{h.setDisabled(!1);var f=c.queryCommandValue("Paragraph"),g=h.indexByValue(f);g!=-1?h.setValue(f):h.setValue(h.initValue)}}}),h}},b.customstyle=function(a){var c=a.options.customstyle||[],d=a.options.labelMap.customstyle||a.getLang("labelMap.customstyle")||"";if(c.length){for(var e,f=a.getLang("customstyle"),g=0,h=[];e=c[g++];)!function(b){var c={};c.label=b.label?b.label:f[b.name],c.style=b.style,c.className=b.className,c.tag=b.tag,h.push({label:c.label,value:c,theme:a.options.theme,renderLabelHtml:function(){return'
    <'+c.tag+" "+(c.className?' class="'+c.className+'"':"")+(c.style?' style="'+c.style+'"':"")+">"+c.label+"
    "}})}(e);var i=new b.Combox({editor:a,items:h,title:d,initValue:d,className:"edui-for-customstyle",onselect:function(b,c){a.execCommand("customstyle",this.items[c].value)},onbuttonclick:function(){this.showPopup()},indexByValue:function(a){for(var b,c=0;b=this.items[c++];)if(b.label==a)return c-1;return-1}});return b.buttons.customstyle=i,a.addListener("selectionchange",function(b,c,d){if(!d){var e=a.queryCommandState("customstyle");if(e==-1)i.setDisabled(!0);else{i.setDisabled(!1);var f=a.queryCommandValue("customstyle"),g=i.indexByValue(f);g!=-1?i.setValue(f):i.setValue(i.initValue)}}}),i}},b.inserttable=function(a,c,d){d=a.options.labelMap.inserttable||a.getLang("labelMap.inserttable")||"";var e=new b.TableButton({editor:a,title:d,className:"edui-for-inserttable",onpicktable:function(b,c,d){a.execCommand("InsertTable",{numRows:d,numCols:c,border:1})},onbuttonclick:function(){this.showPopup()}});return b.buttons.inserttable=e,a.addListener("selectionchange",function(){e.setDisabled(a.queryCommandState("inserttable")==-1)}),e},b.lineheight=function(a){var c=a.options.lineheight||[];if(c.length){for(var d,e=0,f=[];d=c[e++];)f.push({label:d,value:d,theme:a.options.theme,onclick:function(){a.execCommand("lineheight",this.value)}});var g=new b.MenuButton({editor:a,className:"edui-for-lineheight",title:a.options.labelMap.lineheight||a.getLang("labelMap.lineheight")||"",items:f,onbuttonclick:function(){var b=a.queryCommandValue("LineHeight")||this.value;a.execCommand("LineHeight",b)}});return b.buttons.lineheight=g,a.addListener("selectionchange",function(){var b=a.queryCommandState("LineHeight");if(b==-1)g.setDisabled(!0);else{g.setDisabled(!1);var c=a.queryCommandValue("LineHeight");c&&g.setValue((c+"").replace(/cm/,"")),g.setChecked(b)}}),g}};for(var k,l=["top","bottom"],m=0;k=l[m++];)!function(a){b["rowspacing"+a]=function(c){var d=c.options["rowspacing"+a]||[];if(!d.length)return null;for(var e,f=0,g=[];e=d[f++];)g.push({label:e,value:e,theme:c.options.theme,onclick:function(){c.execCommand("rowspacing",this.value,a)}});var h=new b.MenuButton({editor:c,className:"edui-for-rowspacing"+a,title:c.options.labelMap["rowspacing"+a]||c.getLang("labelMap.rowspacing"+a)||"",items:g,onbuttonclick:function(){var b=c.queryCommandValue("rowspacing",a)||this.value;c.execCommand("rowspacing",b,a)}});return b.buttons[a]=h,c.addListener("selectionchange",function(){var b=c.queryCommandState("rowspacing",a);if(b==-1)h.setDisabled(!0);else{h.setDisabled(!1);var d=c.queryCommandValue("rowspacing",a);d&&h.setValue((d+"").replace(/%/,"")),h.setChecked(b)}}),h}}(k);for(var n,o=["insertorderedlist","insertunorderedlist"],p=0;n=o[p++];)!function(a){b[a]=function(c){var d=c.options[a],e=function(){c.execCommand(a,this.value)},f=[];for(var g in d)f.push({label:d[g]||c.getLang()[a][g]||"",value:g,theme:c.options.theme,onclick:e});var h=new b.MenuButton({editor:c,className:"edui-for-"+a,title:c.getLang("labelMap."+a)||"",items:f,onbuttonclick:function(){var b=c.queryCommandValue(a)||this.value;c.execCommand(a,b)}});return b.buttons[a]=h,c.addListener("selectionchange",function(){var b=c.queryCommandState(a);if(b==-1)h.setDisabled(!0);else{h.setDisabled(!1);var d=c.queryCommandValue(a);h.setValue(d),h.setChecked(b)}}),h}}(n);b.fullscreen=function(a,c){c=a.options.labelMap.fullscreen||a.getLang("labelMap.fullscreen")||"";var d=new b.Button({className:"edui-for-fullscreen",title:c,theme:a.options.theme,onclick:function(){a.ui&&a.ui.setFullScreen(!a.ui.isFullScreen()),this.setChecked(a.ui.isFullScreen())}});return b.buttons.fullscreen=d,a.addListener("selectionchange",function(){var b=a.queryCommandState("fullscreen");d.setDisabled(b==-1),d.setChecked(a.ui.isFullScreen())}),d},b.emotion=function(a,c){var d="emotion",f=new b.MultiMenuPop({title:a.options.labelMap[d]||a.getLang("labelMap."+d)||"",editor:a,className:"edui-for-"+d,iframeUrl:a.ui.mapUrl(c||(a.options.iframeUrlMap||{})[d]||e[d])});return b.buttons[d]=f,a.addListener("selectionchange",function(){f.setDisabled(a.queryCommandState(d)==-1)}),f},b.autotypeset=function(a){var c=new b.AutoTypeSetButton({editor:a,title:a.options.labelMap.autotypeset||a.getLang("labelMap.autotypeset")||"",className:"edui-for-autotypeset",onbuttonclick:function(){a.execCommand("autotypeset")}});return b.buttons.autotypeset=c,a.addListener("selectionchange",function(){c.setDisabled(a.queryCommandState("autotypeset")==-1)}),c},b.simpleupload=function(a){var c="simpleupload",d=new b.Button({className:"edui-for-"+c,title:a.options.labelMap[c]||a.getLang("labelMap."+c)||"",onclick:function(){},theme:a.options.theme,showText:!1});return b.buttons[c]=d,a.addListener("ready",function(){var b=d.getDom("body"),c=b.children[0];a.fireEvent("simpleuploadbtnready",c)}),a.addListener("selectionchange",function(b,e,f){var g=a.queryCommandState(c);g==-1?(d.setDisabled(!0),d.setChecked(!1)):f||(d.setDisabled(!1),d.setChecked(g))}),d}}(),function(){function a(a){this.initOptions(a),this.initEditorUI()}var b=baidu.editor.utils,c=baidu.editor.ui.uiUtils,d=baidu.editor.ui.UIBase,e=baidu.editor.dom.domUtils,f=[];a.prototype={uiName:"editor",initEditorUI:function(){function a(a,b){a.setOpt({wordCount:!0,maximumWords:1e4,wordCountMsg:a.options.wordCountMsg||a.getLang("wordCountMsg"),wordOverFlowMsg:a.options.wordOverFlowMsg||a.getLang("wordOverFlowMsg")});var c=a.options,d=c.maximumWords,e=c.wordCountMsg,f=c.wordOverFlowMsg,g=b.getDom("wordcount");if(c.wordCount){var h=a.getContentLength(!0);h>d?(g.innerHTML=f,a.fireEvent("wordcountoverflow")):g.innerHTML=e.replace("{#leave}",d-h).replace("{#count}",h)}}this.editor.ui=this,this._dialogs={},this.initUIBase(),this._initToolbars();var b=this.editor,c=this;b.addListener("ready",function(){function d(){a(b,c),e.un(b.document,"click",arguments.callee)}b.getDialog=function(a){return b.ui._dialogs[a+"Dialog"]},e.on(b.window,"scroll",function(a){baidu.editor.ui.Popup.postHide(a)}),b.ui._actualFrameWidth=b.options.initialFrameWidth,UE.browser.ie&&6===UE.browser.version&&b.container.ownerDocument.execCommand("BackgroundImageCache",!1,!0),b.options.elementPathEnabled&&(b.ui.getDom("elementpath").innerHTML='
    '+b.getLang("elementPathTip")+":
    "),b.options.wordCount&&(e.on(b.document,"click",d),b.ui.getDom("wordcount").innerHTML=b.getLang("wordCountTip")),b.ui._scale(),b.options.scaleEnabled?(b.autoHeightEnabled&&b.disableAutoHeight(),c.enableScale()):c.disableScale(),b.options.elementPathEnabled||b.options.wordCount||b.options.scaleEnabled||(b.ui.getDom("elementpath").style.display="none",b.ui.getDom("wordcount").style.display="none",b.ui.getDom("scale").style.display="none"),b.selection.isFocus()&&b.fireEvent("selectionchange",!1,!0)}),b.addListener("mousedown",function(a,b){var c=b.target||b.srcElement;baidu.editor.ui.Popup.postHide(b,c),baidu.editor.ui.ShortCutMenu.postHide(b)}),b.addListener("delcells",function(){UE.ui.edittip&&new UE.ui.edittip(b),b.getDialog("edittip").open()});var d,f,g=!1;b.addListener("afterpaste",function(){b.queryCommandState("pasteplain")||(baidu.editor.ui.PastePicker&&(d=new baidu.editor.ui.Popup({content:new baidu.editor.ui.PastePicker({editor:b}),editor:b,className:"edui-wordpastepop"}),d.render()),g=!0)}),b.addListener("afterinserthtml",function(){clearTimeout(f),f=setTimeout(function(){if(d&&(g||b.ui._isTransfer)){if(d.isHidden()){var a=e.createElement(b.document,"span",{style:"line-height:0px;",innerHTML:"\ufeff"}),c=b.selection.getRange();c.insertNode(a);var f=getDomNode(a,"firstChild","previousSibling");f&&d.showAnchor(3==f.nodeType?f.parentNode:f),e.remove(a)}else d.show();delete b.ui._isTransfer,g=!1}},200)}),b.addListener("contextmenu",function(a,b){baidu.editor.ui.Popup.postHide(b)}),b.addListener("keydown",function(a,b){d&&d.dispose(b);var c=b.keyCode||b.which;b.altKey&&90==c&&UE.ui.buttons.fullscreen.onclick()}),b.addListener("wordcount",function(b){a(this,c)}),b.addListener("selectionchange",function(){b.options.elementPathEnabled&&c[(b.queryCommandState("elementpath")==-1?"dis":"en")+"ableElementPath"](),b.options.scaleEnabled&&c[(b.queryCommandState("scale")==-1?"dis":"en")+"ableScale"]()});var h=new baidu.editor.ui.Popup({editor:b,content:"",className:"edui-bubble",_onEditButtonClick:function(){this.hide(),b.ui._dialogs.linkDialog.open()},_onImgEditButtonClick:function(a){this.hide(),b.ui._dialogs[a]&&b.ui._dialogs[a].open()},_onImgSetFloat:function(a){this.hide(),b.execCommand("imagefloat",a)},_setIframeAlign:function(a){var b=h.anchorEl,c=b.cloneNode(!0);switch(a){case-2:c.setAttribute("align","");break;case-1:c.setAttribute("align","left");break;case 1:c.setAttribute("align","right")}b.parentNode.insertBefore(c,b),e.remove(b),h.anchorEl=c,h.showAnchor(h.anchorEl)},_updateIframe:function(){var a=b._iframe=h.anchorEl;e.hasClass(a,"ueditor_baidumap")?(b.selection.getRange().selectNode(a).select(),b.ui._dialogs.mapDialog.open(),h.hide()):(b.ui._dialogs.insertframeDialog.open(),h.hide())},_onRemoveButtonClick:function(a){b.execCommand(a),this.hide()},queryAutoHide:function(a){return a&&a.ownerDocument==b.document&&("img"==a.tagName.toLowerCase()||e.findParentByTagName(a,"a",!0))?a!==h.anchorEl:baidu.editor.ui.Popup.prototype.queryAutoHide.call(this,a)}});h.render(),b.options.imagePopup&&(b.addListener("mouseover",function(a,c){c=c||window.event;var d=c.target||c.srcElement;if(b.ui._dialogs.insertframeDialog&&/iframe/gi.test(d.tagName)){var e=h.formatHtml(""+b.getLang("property")+': '+b.getLang("default")+'  '+b.getLang("justifyleft")+'  '+b.getLang("justifyright")+'   '+b.getLang("modify")+"");e?(h.getDom("content").innerHTML=e,h.anchorEl=d,h.showAnchor(h.anchorEl)):h.hide()}}),b.addListener("selectionchange",function(a,c){if(c){var d="",f="",g=b.selection.getRange().getClosedNode(),i=b.ui._dialogs;if(g&&"IMG"==g.tagName){var j="insertimageDialog";if(g.className.indexOf("edui-faked-video")==-1&&g.className.indexOf("edui-upload-video")==-1||(j="insertvideoDialog"),g.className.indexOf("edui-faked-webapp")!=-1&&(j="webappDialog"),g.src.indexOf("http://api.map.baidu.com")!=-1&&(j="mapDialog"),g.className.indexOf("edui-faked-music")!=-1&&(j="musicDialog"),g.src.indexOf("http://maps.google.com/maps/api/staticmap")!=-1&&(j="gmapDialog"),g.getAttribute("anchorname")&&(j="anchorDialog",d=h.formatHtml(""+b.getLang("property")+': '+b.getLang("modify")+"  "+b.getLang("delete")+"")),g.getAttribute("word_img")&&(b.word_img=[g.getAttribute("word_img")],j="wordimageDialog"),(e.hasClass(g,"loadingclass")||e.hasClass(g,"loaderrorclass"))&&(j=""),!i[j])return;f=""+b.getLang("property")+': '+b.getLang("default")+'  '+b.getLang("justifyleft")+'  '+b.getLang("justifyright")+'  '+b.getLang("justifycenter")+"  '+b.getLang("modify")+"",!d&&(d=h.formatHtml(f))}if(b.ui._dialogs.linkDialog){var k,l=b.queryCommandValue("link");if(l&&(k=l.getAttribute("_href")||l.getAttribute("href",2))){var m=k;k.length>30&&(m=k.substring(0,20)+"..."),d&&(d+='
    '),d+=h.formatHtml(""+b.getLang("anthorMsg")+': '+m+' '+b.getLang("modify")+' '+b.getLang("clear")+""),h.showAnchor(l)}}d?(h.getDom("content").innerHTML=d,h.anchorEl=g||l,h.showAnchor(h.anchorEl)):h.hide()}}))},_initToolbars:function(){for(var a=this.editor,c=this.toolbars||[],d=[],e=0;e
    '+(this.toolbars.length?'
    '+this.renderToolbarBoxHtml()+"
    ":"")+'
    '},showWordImageDialog:function(){this._dialogs.wordimageDialog.open()},renderToolbarBoxHtml:function(){for(var a=[],b=0;b'+c+"");b.innerHTML='
    '+this.editor.getLang("elementPathTip")+": "+d.join(" > ")+"
    "}else b.style.display="none"},disableElementPath:function(){var a=this.getDom("elementpath");a.innerHTML="",a.style.display="none",this.elementPathEnabled=!1},enableElementPath:function(){var a=this.getDom("elementpath");a.style.display="",this.elementPathEnabled=!0,this._updateElementPath()},_scale:function(){function a(){o=e.getXY(h),p||(p=g.options.minFrameHeight+j.offsetHeight+k.offsetHeight),m.style.cssText="position:absolute;left:0;display:;top:0;background-color:#41ABFF;opacity:0.4;filter: Alpha(opacity=40);width:"+h.offsetWidth+"px;height:"+h.offsetHeight+"px;z-index:"+(g.options.zIndex+1),e.on(f,"mousemove",b),e.on(i,"mouseup",c),e.on(f,"mouseup",c)}function b(a){d();var b=a||window.event;r=b.pageX||f.documentElement.scrollLeft+b.clientX,s=b.pageY||f.documentElement.scrollTop+b.clientY,t=r-o.x,u=s-o.y,t>=q&&(n=!0,m.style.width=t+"px"),u>=p&&(n=!0,m.style.height=u+"px")}function c(){n&&(n=!1,g.ui._actualFrameWidth=m.offsetWidth-2,h.style.width=g.ui._actualFrameWidth+"px",g.setHeight(m.offsetHeight-k.offsetHeight-j.offsetHeight-2,!0)),m&&(m.style.display="none"),d(),e.un(f,"mousemove",b),e.un(i,"mouseup",c),e.un(f,"mouseup",c)}function d(){browser.ie?f.selection.clear():window.getSelection().removeAllRanges()}var f=document,g=this.editor,h=g.container,i=g.document,j=this.getDom("toolbarbox"),k=this.getDom("bottombar"),l=this.getDom("scale"),m=this.getDom("scalelayer"),n=!1,o=null,p=0,q=g.options.minFrameWidth,r=0,s=0,t=0,u=0,v=this;this.editor.addListener("fullscreenchanged",function(a,b){if(b)v.disableScale();else if(v.editor.options.scaleEnabled){v.enableScale();var c=v.editor.document.createElement("span");v.editor.body.appendChild(c),v.editor.body.style.height=Math.max(e.getXY(c).y,v.editor.iframe.offsetHeight-20)+"px",e.remove(c)}}),this.enableScale=function(){1!=g.queryCommandState("source")&&(l.style.display="",this.scaleEnabled=!0,e.on(l,"mousedown",a))},this.disableScale=function(){l.style.display="none",this.scaleEnabled=!1,e.un(l,"mousedown",a)}},isFullScreen:function(){return this._fullscreen},postRender:function(){d.prototype.postRender.call(this);for(var a=0;a[\n\r\t]+([ ]{4})+/g,">").replace(/[\n\r\t]+([ ]{4})+[\n\r\t]+<"),c.className&&(b.className=c.className),c.style.cssText&&(b.style.cssText=c.style.cssText),/textarea/i.test(c.tagName)?(d.textarea=c,d.textarea.style.display="none"):c.parentNode.removeChild(c),c.id&&(b.id=c.id,e.removeAttributes(c,"id")),c=b,c.innerHTML=""}e.addClass(c,"edui-"+d.options.theme),d.ui.render(c);var h=d.options;d.container=d.ui.getDom();for(var i,j=e.findParents(c,!0),k=[],l=0;i=j[l];l++)k[l]=i.style.display,i.style.display="block";if(h.initialFrameWidth)h.minFrameWidth=h.initialFrameWidth;else{h.minFrameWidth=h.initialFrameWidth=c.offsetWidth;var m=c.style.width;/%$/.test(m)&&(h.initialFrameWidth=m)}h.initialFrameHeight?h.minFrameHeight=h.initialFrameHeight:h.initialFrameHeight=h.minFrameHeight=c.offsetHeight;for(var i,l=0;i=j[l];l++)i.style.display=k[l];c.style.height&&(c.style.height=""),d.container.style.width=h.initialFrameWidth+(/%$/.test(h.initialFrameWidth)?"":"px"),d.container.style.zIndex=h.zIndex,f.call(d,d.ui.getDom("iframeholder")),d.fireEvent("afteruiready")}d.langIsReady?b():d.addListener("langReady",b)})},d},UE.getEditor=function(a,b){var c=g[a];return c||(c=g[a]=new UE.ui.Editor(b),c.render(a)),c},UE.delEditor=function(a){var b;(b=g[a])&&(b.key&&b.destroy(),delete g[a])},UE.registerUI=function(a,c,d,e){b.each(a.split(/\s+/),function(a){UE._customizeUI[a]={id:e,execFn:c,index:d}})}}(),UE.registerUI("message",function(a){function b(){var a=g.ui.getDom("toolbarbox");a&&(c.style.top=a.offsetHeight+3+"px"),c.style.zIndex=Math.max(g.options.zIndex,g.iframe.style.zIndex)+1}var c,d=baidu.editor.ui,e=d.Message,f=[],g=a;g.addListener("ready",function(){c=document.getElementById(g.ui.id+"_message_holder"),b(),setTimeout(function(){b()},500)}),g.addListener("showmessage",function(a,d){d=utils.isString(d)?{content:d}:d;var h=new e({timeout:d.timeout,type:d.type,content:d.content,keepshow:d.keepshow,editor:g}),i=d.id||"msg_"+(+new Date).toString(36);return h.render(c),f[i]=h,h.reset(d),b(),i}),g.addListener("updatemessage",function(a,b,d){d=utils.isString(d)?{content:d}:d;var e=f[b];e.render(c),e&&e.reset(d)}),g.addListener("hidemessage",function(a,b){var c=f[b];c&&c.hide()})}),UE.registerUI("autosave",function(a){var b=null,c=null;a.on("afterautosave",function(){clearTimeout(b),b=setTimeout(function(){c&&a.trigger("hidemessage",c),c=a.trigger("showmessage",{content:a.getLang("autosave.success"),timeout:2e3})},2e3)})})}(); \ No newline at end of file diff --git a/public/static/UEditor/ueditor.config.js b/public/static/UEditor/ueditor.config.js new file mode 100644 index 00000000..6e10deb0 --- /dev/null +++ b/public/static/UEditor/ueditor.config.js @@ -0,0 +1,536 @@ +/** + * ueditor完整配置项 + * 可以在这里配置整个编辑器的特性 + */ +/**************************提示******************************** + * 所有被注释的配置项均为UEditor默认值。 + * 修改默认配置请首先确保已经完全明确该参数的真实用途。 + * 主要有两种修改方案,一种是取消此处注释,然后修改成对应参数;另一种是在实例化编辑器时传入对应参数。 + * 当升级编辑器时,可直接使用旧版配置文件替换新版配置文件,不用担心旧版配置文件中因缺少新功能所需的参数而导致脚本报错。 + **************************提示********************************/ + +(function () { + + /** + * 编辑器资源文件根路径。它所表示的含义是:以编辑器实例化页面为当前路径,指向编辑器资源文件(即dialog等文件夹)的路径。 + * 鉴于很多同学在使用编辑器的时候出现的种种路径问题,此处强烈建议大家使用"相对于网站根目录的相对路径"进行配置。 + * "相对于网站根目录的相对路径"也就是以斜杠开头的形如"/myProject/ueditor/"这样的路径。 + * 如果站点中有多个不在同一层级的页面需要实例化编辑器,且引用了同一UEditor的时候,此处的URL可能不适用于每个页面的编辑器。 + * 因此,UEditor提供了针对不同页面的编辑器可单独配置的根路径,具体来说,在需要实例化编辑器的页面最顶部写上如下代码即可。当然,需要令此处的URL等于对应的配置。 + * window.UEDITOR_HOME_URL = "/xxxx/xxxx/"; + */ + + window.UEDITOR_HOME_URL = "/static/UEditor"; + + var URL = window.UEDITOR_HOME_URL || getUEBasePath(); + + /** + * 配置项主体。注意,此处所有涉及到路径的配置别遗漏URL变量。 + */ + window.UEDITOR_CONFIG = { + + //为编辑器实例添加一个路径,这个不能被注释 + UEDITOR_HOME_URL: URL + + // 服务器统一请求接口路径 + , serverUrl: "/ueditor1_4_3/jsp/controller.jsp" + + //工具栏上的所有的功能按钮和下拉框,可以在new编辑器的实例时选择自己需要的重新定义 + + /* + , toolbars: [[ + 'fullscreen', 'source', '|', 'undo', 'redo', '|', + 'bold', 'italic', 'underline', 'fontborder', 'strikethrough', 'superscript', 'subscript', 'removeformat', 'formatmatch', 'autotypeset', 'blockquote', 'pasteplain', '|', 'forecolor', 'backcolor', 'insertorderedlist', 'insertunorderedlist', 'selectall', 'cleardoc', '|', + 'rowspacingtop', 'rowspacingbottom', 'lineheight', '|', + 'customstyle', 'paragraph', 'fontfamily', 'fontsize', '|', + 'directionalityltr', 'directionalityrtl', 'indent', '|', + 'justifyleft', 'justifycenter', 'justifyright', 'justifyjustify', '|', 'touppercase', 'tolowercase', '|', + 'link', 'unlink', 'anchor', '|', 'imagenone', 'imageleft', 'imageright', 'imagecenter', '|', + 'simpleupload', 'insertimage', 'emotion', 'scrawl', 'insertvideo', 'music', 'attachment', 'map', 'gmap', 'insertframe', 'insertcode', 'webapp', 'pagebreak', 'template', 'background', '|', + 'horizontal', 'date', 'time', 'spechars', 'snapscreen', 'wordimage', '|', + 'inserttable', 'deletetable', 'insertparagraphbeforetable', 'insertrow', 'deleterow', 'insertcol', 'deletecol', 'mergecells', 'mergeright', 'mergedown', 'splittocells', 'splittorows', 'splittocols', 'charts', '|', + 'print', 'preview', 'searchreplace', 'drafts', 'help' + ]] */ + + + + + ,toolbars: [[ + 'source', //源码模式 + 'undo', //撤销 + 'redo', //重做 + 'bold', //加粗 + 'indent', //首行缩进 + 'fontfamily', //字体 + 'fontsize', //字号 + 'forecolor', + 'backcolor', + 'paragraph', //段落格式 + 'italic', //斜体 + 'underline', //下划线 + 'strikethrough', //删除线 + 'superscript', //上标 + 'subscript', //下标 + 'touppercase', //字母大写 + 'tolowercase', //字母小写 + 'justifyleft', //居左对齐 + 'justifyright', //居右对齐 + 'justifycenter', //居中对齐 + 'justifyjustify', //两端对齐 + 'simpleupload', + 'link' + ]] + + + + //当鼠标放在工具栏上时显示的tooltip提示,留空支持自动多语言配置,否则以配置值为准 + //,labelMap:{ + // 'anchor':'', 'undo':'' + //} + + //语言配置项,默认是zh-cn。有需要的话也可以使用如下这样的方式来自动多语言切换,当然,前提条件是lang文件夹下存在对应的语言文件: + //lang值也可以通过自动获取 (navigator.language||navigator.browserLanguage ||navigator.userLanguage).toLowerCase() + //,lang:"zh-cn" + //,langPath:URL +"lang/" + + //主题配置项,默认是default。有需要的话也可以使用如下这样的方式来自动多主题切换,当然,前提条件是themes文件夹下存在对应的主题文件: + //现有如下皮肤:default + //,theme:'default' + //,themePath:URL +"themes/" + + ,zIndex : 9999 //编辑器层级的基数,默认是900 + + //针对getAllHtml方法,会在对应的head标签中增加该编码设置。 + //,charset:"utf-8" + + //若实例化编辑器的页面手动修改的domain,此处需要设置为true + //,customDomain:false + + //常用配置项目 + //,isShow : true //默认显示编辑器 + + //,textarea:'editorValue' // 提交表单时,服务器获取编辑器提交内容的所用的参数,多实例时可以给容器name属性,会将name给定的值最为每个实例的键值,不用每次实例化的时候都设置这个值 + + //,initialContent:'欢迎使用ueditor!' //初始化编辑器的内容,也可以通过textarea/script给值,看官网例子 + + //,autoClearinitialContent:true //是否自动清除编辑器初始内容,注意:如果focus属性设置为true,这个也为真,那么编辑器一上来就会触发导致初始化的内容看不到了 + + //,focus:false //初始化时,是否让编辑器获得焦点true或false + + //如果自定义,最好给p标签如下的行高,要不输入中文时,会有跳动感 + //,initialStyle:'p{line-height:1em}'//编辑器层级的基数,可以用来改变字体等 + + //,iframeCssUrl: URL + '/themes/iframe.css' //给编辑区域的iframe引入一个css文件 + + //indentValue + //首行缩进距离,默认是2em + //,indentValue:'2em' + + //,initialFrameWidth:700 //初始化编辑器宽度,默认1000 + ,initialFrameHeight:320 //初始化编辑器高度,默认320 + + //,readonly : false //编辑器初始化结束后,编辑区域是否是只读的,默认是false + + //,autoClearEmptyNode : true //getContent时,是否删除空的inlineElement节点(包括嵌套的情况) + + //启用自动保存 + //,enableAutoSave: true + //自动保存间隔时间, 单位ms + //,saveInterval: 500 + + //,fullscreen : false //是否开启初始化时即全屏,默认关闭 + + //,imagePopup:true //图片操作的浮层开关,默认打开 + + //,autoSyncData:true //自动同步编辑器要提交的数据 + //,emotionLocalization:false //是否开启表情本地化,默认关闭。若要开启请确保emotion文件夹下包含官网提供的images表情文件夹 + + //粘贴只保留标签,去除标签所有属性 + //,retainOnlyLabelPasted: false + + //,pasteplain:false //是否默认为纯文本粘贴。false为不使用纯文本粘贴,true为使用纯文本粘贴 + //纯文本粘贴模式下的过滤规则 + //'filterTxtRules' : function(){ + // function transP(node){ + // node.tagName = 'p'; + // node.setStyle(); + // } + // return { + // //直接删除及其字节点内容 + // '-' : 'script style object iframe embed input select', + // 'p': {$:{}}, + // 'br':{$:{}}, + // 'div':{'$':{}}, + // 'li':{'$':{}}, + // 'caption':transP, + // 'th':transP, + // 'tr':transP, + // 'h1':transP,'h2':transP,'h3':transP,'h4':transP,'h5':transP,'h6':transP, + // 'td':function(node){ + // //没有内容的td直接删掉 + // var txt = !!node.innerText(); + // if(txt){ + // node.parentNode.insertAfter(UE.uNode.createText('    '),node); + // } + // node.parentNode.removeChild(node,node.innerText()) + // } + // } + //}() + + //,allHtmlEnabled:false //提交到后台的数据是否包含整个html字符串 + + //insertorderedlist + //有序列表的下拉配置,值留空时支持多语言自动识别,若配置值,则以此值为准 + //,'insertorderedlist':{ + // //自定的样式 + // 'num':'1,2,3...', + // 'num1':'1),2),3)...', + // 'num2':'(1),(2),(3)...', + // 'cn':'一,二,三....', + // 'cn1':'一),二),三)....', + // 'cn2':'(一),(二),(三)....', + // //系统自带 + // 'decimal' : '' , //'1,2,3...' + // 'lower-alpha' : '' , // 'a,b,c...' + // 'lower-roman' : '' , //'i,ii,iii...' + // 'upper-alpha' : '' , lang //'A,B,C' + // 'upper-roman' : '' //'I,II,III...' + //} + + //insertunorderedlist + //无序列表的下拉配置,值留空时支持多语言自动识别,若配置值,则以此值为准 + //,insertunorderedlist : { //自定的样式 + // 'dash' :'— 破折号', //-破折号 + // 'dot':' 。 小圆圈', //系统自带 + // 'circle' : '', // '○ 小圆圈' + // 'disc' : '', // '● 小圆点' + // 'square' : '' //'■ 小方块' + //} + //,listDefaultPaddingLeft : '30'//默认的左边缩进的基数倍 + //,listiconpath : 'http://bs.baidu.com/listicon/'//自定义标号的路径 + //,maxListLevel : 3 //限制可以tab的级数, 设置-1为不限制 + + //,autoTransWordToList:false //禁止word中粘贴进来的列表自动变成列表标签 + + //fontfamily + //字体设置 label留空支持多语言自动切换,若配置,则以配置值为准 + + ,'fontfamily':[ + { label:'',name:'songti',val:'宋体,SimSun'}, + { label:'',name:'kaiti',val:'楷体,楷体_GB2312, SimKai'}, + { label:'',name:'yahei',val:'微软雅黑,Microsoft YaHei'}, + { label:'',name:'heiti',val:'黑体, SimHei'}, + { label:'',name:'lishu',val:'隶书, SimLi'}, + { label:'',name:'andaleMono',val:'andale mono'}, + { label:'',name:'arial',val:'arial, helvetica,sans-serif'}, + { label:'',name:'arialBlack',val:'arial black,avant garde'}, + { label:'',name:'comicSansMs',val:'comic sans ms'}, + { label:'',name:'impact',val:'impact,chicago'}, + { label:'',name:'timesNewRoman',val:'times new roman'} + ] + + + //fontsize + //字号 + ,'fontsize':[10, 11, 12, 14, 16, 18, 20, 24, 36] + + //paragraph + //段落格式 值留空时支持多语言自动识别,若配置,则以配置值为准 + //,'paragraph':{'p':'', 'h1':'', 'h2':'', 'h3':'', 'h4':'', 'h5':'', 'h6':''} + + //rowspacingtop + //段间距 值和显示的名字相同 + //,'rowspacingtop':['5', '10', '15', '20', '25'] + + //rowspacingBottom + //段间距 值和显示的名字相同 + //,'rowspacingbottom':['5', '10', '15', '20', '25'] + + //lineheight + //行内间距 值和显示的名字相同 + //,'lineheight':['1', '1.5','1.75','2', '3', '4', '5'] + + //customstyle + //自定义样式,不支持国际化,此处配置值即可最后显示值 + //block的元素是依据设置段落的逻辑设置的,inline的元素依据BIU的逻辑设置 + //尽量使用一些常用的标签 + //参数说明 + //tag 使用的标签名字 + //label 显示的名字也是用来标识不同类型的标识符,注意这个值每个要不同, + //style 添加的样式 + //每一个对象就是一个自定义的样式 + //,'customstyle':[ + // {tag:'h1', name:'tc', label:'', style:'border-bottom:#ccc 2px solid;padding:0 4px 0 0;text-align:center;margin:0 0 20px 0;'}, + // {tag:'h1', name:'tl',label:'', style:'border-bottom:#ccc 2px solid;padding:0 4px 0 0;margin:0 0 10px 0;'}, + // {tag:'span',name:'im', label:'', style:'font-style:italic;font-weight:bold'}, + // {tag:'span',name:'hi', label:'', style:'font-style:italic;font-weight:bold;color:rgb(51, 153, 204)'} + //] + + //打开右键菜单功能 + //,enableContextMenu: true + //右键菜单的内容,可以参考plugins/contextmenu.js里边的默认菜单的例子,label留空支持国际化,否则以此配置为准 + //,contextMenu:[ + // { + // label:'', //显示的名称 + // cmdName:'selectall',//执行的command命令,当点击这个右键菜单时 + // //exec可选,有了exec就会在点击时执行这个function,优先级高于cmdName + // exec:function () { + // //this是当前编辑器的实例 + // //this.ui._dialogs['inserttableDialog'].open(); + // } + // } + //] + + //快捷菜单 + //,shortcutMenu:["fontfamily", "fontsize", "bold", "italic", "underline", "forecolor", "backcolor", "insertorderedlist", "insertunorderedlist"] + + //elementPathEnabled + //是否启用元素路径,默认是显示 + //,elementPathEnabled : true + + //wordCount + //,wordCount:true //是否开启字数统计 + //,maximumWords:10000 //允许的最大字符数 + //字数统计提示,{#count}代表当前字数,{#leave}代表还可以输入多少字符数,留空支持多语言自动切换,否则按此配置显示 + //,wordCountMsg:'' //当前已输入 {#count} 个字符,您还可以输入{#leave} 个字符 + //超出字数限制提示 留空支持多语言自动切换,否则按此配置显示 + //,wordOverFlowMsg:'' //你输入的字符个数已经超出最大允许值,服务器可能会拒绝保存! + + //tab + //点击tab键时移动的距离,tabSize倍数,tabNode什么字符做为单位 + //,tabSize:4 + //,tabNode:' ' + + //removeFormat + //清除格式时可以删除的标签和属性 + //removeForamtTags标签 + //,removeFormatTags:'b,big,code,del,dfn,em,font,i,ins,kbd,q,samp,small,span,strike,strong,sub,sup,tt,u,var' + //removeFormatAttributes属性 + //,removeFormatAttributes:'class,style,lang,width,height,align,hspace,valign' + + //undo + //可以最多回退的次数,默认20 + //,maxUndoCount:20 + //当输入的字符数超过该值时,保存一次现场 + //,maxInputCount:1 + + //autoHeightEnabled + // 是否自动长高,默认true + //,autoHeightEnabled:true + + //scaleEnabled + //是否可以拉伸长高,默认true(当开启时,自动长高失效) + //,scaleEnabled:false + //,minFrameWidth:800 //编辑器拖动时最小宽度,默认800 + //,minFrameHeight:220 //编辑器拖动时最小高度,默认220 + + //autoFloatEnabled + //是否保持toolbar的位置不动,默认true + //,autoFloatEnabled:true + //浮动时工具栏距离浏览器顶部的高度,用于某些具有固定头部的页面 + //,topOffset:30 + //编辑器底部距离工具栏高度(如果参数大于等于编辑器高度,则设置无效) + //,toolbarTopOffset:400 + + //设置远程图片是否抓取到本地保存 + //,catchRemoteImageEnable: true //设置是否抓取远程图片 + + //pageBreakTag + //分页标识符,默认是_ueditor_page_break_tag_ + //,pageBreakTag:'_ueditor_page_break_tag_' + + //autotypeset + //自动排版参数 + //,autotypeset: { + // mergeEmptyline: true, //合并空行 + // removeClass: true, //去掉冗余的class + // removeEmptyline: false, //去掉空行 + // textAlign:"left", //段落的排版方式,可以是 left,right,center,justify 去掉这个属性表示不执行排版 + // imageBlockLine: 'center', //图片的浮动方式,独占一行剧中,左右浮动,默认: center,left,right,none 去掉这个属性表示不执行排版 + // pasteFilter: false, //根据规则过滤没事粘贴进来的内容 + // clearFontSize: false, //去掉所有的内嵌字号,使用编辑器默认的字号 + // clearFontFamily: false, //去掉所有的内嵌字体,使用编辑器默认的字体 + // removeEmptyNode: false, // 去掉空节点 + // //可以去掉的标签 + // removeTagNames: {标签名字:1}, + // indent: false, // 行首缩进 + // indentValue : '2em', //行首缩进的大小 + // bdc2sb: false, + // tobdc: false + //} + + //tableDragable + //表格是否可以拖拽 + //,tableDragable: true + + + + //sourceEditor + //源码的查看方式,codemirror 是代码高亮,textarea是文本框,默认是codemirror + //注意默认codemirror只能在ie8+和非ie中使用 + //,sourceEditor:"codemirror" + //如果sourceEditor是codemirror,还用配置一下两个参数 + //codeMirrorJsUrl js加载的路径,默认是 URL + "third-party/codemirror/codemirror.js" + //,codeMirrorJsUrl:URL + "third-party/codemirror/codemirror.js" + //codeMirrorCssUrl css加载的路径,默认是 URL + "third-party/codemirror/codemirror.css" + //,codeMirrorCssUrl:URL + "third-party/codemirror/codemirror.css" + //编辑器初始化完成后是否进入源码模式,默认为否。 + //,sourceEditorFirst:false + + //iframeUrlMap + //dialog内容的路径 ~会被替换成URL,垓属性一旦打开,将覆盖所有的dialog的默认路径 + //,iframeUrlMap:{ + // 'anchor':'~/dialogs/anchor/anchor.html', + //} + + //allowLinkProtocol 允许的链接地址,有这些前缀的链接地址不会自动添加http + //, allowLinkProtocols: ['http:', 'https:', '#', '/', 'ftp:', 'mailto:', 'tel:', 'git:', 'svn:'] + + //webAppKey 百度应用的APIkey,每个站长必须首先去百度官网注册一个key后方能正常使用app功能,注册介绍,http://app.baidu.com/static/cms/getapikey.html + //, webAppKey: "" + + //默认过滤规则相关配置项目 + //,disabledTableInTable:true //禁止表格嵌套 + //,allowDivTransToP:true //允许进入编辑器的div标签自动变成p标签 + //,rgb2Hex:true //默认产出的数据中的color自动从rgb格式变成16进制格式 + + // xss 过滤是否开启,inserthtml等操作 + ,xssFilterRules: true + //input xss过滤 + ,inputXssFilter: true + //output xss过滤 + ,outputXssFilter: true + // xss过滤白名单 名单来源: https://raw.githubusercontent.com/leizongmin/js-xss/master/lib/default.js + ,whitList: { + a: ['target', 'href', 'title', 'class', 'style'], + abbr: ['title', 'class', 'style'], + address: ['class', 'style'], + area: ['shape', 'coords', 'href', 'alt'], + article: [], + aside: [], + audio: ['autoplay', 'controls', 'loop', 'preload', 'src', 'class', 'style'], + b: ['class', 'style'], + bdi: ['dir'], + bdo: ['dir'], + big: [], + blockquote: ['cite', 'class', 'style'], + br: [], + caption: ['class', 'style'], + center: [], + cite: [], + code: ['class', 'style'], + col: ['align', 'valign', 'span', 'width', 'class', 'style'], + colgroup: ['align', 'valign', 'span', 'width', 'class', 'style'], + dd: ['class', 'style'], + del: ['datetime'], + details: ['open'], + div: ['class', 'style'], + dl: ['class', 'style'], + dt: ['class', 'style'], + em: ['class', 'style'], + font: ['color', 'size', 'face'], + footer: [], + h1: ['class', 'style'], + h2: ['class', 'style'], + h3: ['class', 'style'], + h4: ['class', 'style'], + h5: ['class', 'style'], + h6: ['class', 'style'], + header: [], + hr: [], + i: ['class', 'style'], + img: ['src', 'alt', 'title', 'width', 'height', 'id', '_src', 'loadingclass', 'class', 'data-latex'], + ins: ['datetime'], + li: ['class', 'style'], + mark: [], + nav: [], + ol: ['class', 'style'], + p: ['class', 'style'], + pre: ['class', 'style'], + s: [], + section:[], + small: [], + span: ['class', 'style'], + sub: ['class', 'style'], + sup: ['class', 'style'], + strong: ['class', 'style'], + table: ['width', 'border', 'align', 'valign', 'class', 'style'], + tbody: ['align', 'valign', 'class', 'style'], + td: ['width', 'rowspan', 'colspan', 'align', 'valign', 'class', 'style'], + tfoot: ['align', 'valign', 'class', 'style'], + th: ['width', 'rowspan', 'colspan', 'align', 'valign', 'class', 'style'], + thead: ['align', 'valign', 'class', 'style'], + tr: ['rowspan', 'align', 'valign', 'class', 'style'], + tt: [], + u: [], + ul: ['class', 'style'], + video: ['autoplay', 'controls', 'loop', 'preload', 'src', 'height', 'width', 'class', 'style'] + } + }; + + function getUEBasePath(docUrl, confUrl) { + + return getBasePath(docUrl || self.document.URL || self.location.href, confUrl || getConfigFilePath()); + + } + + function getConfigFilePath() { + + var configPath = document.getElementsByTagName('script'); + + return configPath[ configPath.length - 1 ].src; + + } + + function getBasePath(docUrl, confUrl) { + + var basePath = confUrl; + + + if (/^(\/|\\\\)/.test(confUrl)) { + + basePath = /^.+?\w(\/|\\\\)/.exec(docUrl)[0] + confUrl.replace(/^(\/|\\\\)/, ''); + + } else if (!/^[a-z]+:/i.test(confUrl)) { + + docUrl = docUrl.split("#")[0].split("?")[0].replace(/[^\\\/]+$/, ''); + + basePath = docUrl + "" + confUrl; + + } + + return optimizationPath(basePath); + + } + + function optimizationPath(path) { + + var protocol = /^[a-z]+:\/\//.exec(path)[ 0 ], + tmp = null, + res = []; + + path = path.replace(protocol, "").split("?")[0].split("#")[0]; + + path = path.replace(/\\/g, '/').split(/\//); + + path[ path.length - 1 ] = ""; + + while (path.length) { + + if (( tmp = path.shift() ) === "..") { + res.pop(); + } else if (tmp !== ".") { + res.push(tmp); + } + + } + + return protocol + res.join("/"); + + } + + window.UE = { + getUEBasePath: getUEBasePath + }; + +})(); diff --git a/public/static/UEditor/ueditor.parse.min.js b/public/static/UEditor/ueditor.parse.min.js new file mode 100644 index 00000000..9fe9a08b --- /dev/null +++ b/public/static/UEditor/ueditor.parse.min.js @@ -0,0 +1,7 @@ +/*! + * UEditor + * version: ueditor + * build: Wed Aug 10 2016 11:06:19 GMT+0800 (CST) + */ + +!function(){!function(){UE=window.UE||{};var a=!!window.ActiveXObject,b={removeLastbs:function(a){return a.replace(/\/$/,"")},extend:function(a,b){for(var c=arguments,d=!!this.isBoolean(c[c.length-1])&&c[c.length-1],e=this.isBoolean(c[c.length-1])?c.length-1:c.length,f=1;f=c&&a===b)return d=e,!1}),d},hasClass:function(a,b){b=b.replace(/(^[ ]+)|([ ]+$)/g,"").replace(/[ ]{2,}/g," ").split(" ");for(var c,d=0,e=a.className;c=b[d++];)if(!new RegExp("\\b"+c+"\\b","i").test(e))return!1;return d-1==b.length},addClass:function(a,c){if(a){c=this.trim(c).replace(/[ ]{2,}/g," ").split(" ");for(var d,e=0,f=a.className;d=c[e++];)new RegExp("\\b"+d+"\\b").test(f)||(f+=" "+d);a.className=b.trim(f)}},removeClass:function(a,b){b=this.isArray(b)?b:this.trim(b).replace(/[ ]{2,}/g," ").split(" ");for(var c,d=0,e=a.className;c=b[d++];)e=e.replace(new RegExp("\\b"+c+"\\b"),"");e=this.trim(e).replace(/[ ]{2,}/g," "),a.className=e,!e&&a.removeAttribute("className")},on:function(a,c,d){var e=this.isArray(c)?c:c.split(/\s+/),f=e.length;if(f)for(;f--;)if(c=e[f],a.addEventListener)a.addEventListener(c,d,!1);else{d._d||(d._d={els:[]});var g=c+d.toString(),h=b.indexOf(d._d.els,a);d._d[g]&&h!=-1||(h==-1&&d._d.els.push(a),d._d[g]||(d._d[g]=function(a){return d.call(a.srcElement,a||window.event)}),a.attachEvent("on"+c,d._d[g]))}a=null},off:function(a,c,d){var e=this.isArray(c)?c:c.split(/\s+/),f=e.length;if(f)for(;f--;)if(c=e[f],a.removeEventListener)a.removeEventListener(c,d,!1);else{var g=c+d.toString();try{a.detachEvent("on"+c,d._d?d._d[g]:d)}catch(h){}if(d._d&&d._d[g]){var i=b.indexOf(d._d.els,a);i!=-1&&d._d.els.splice(i,1),0==d._d.els.length&&delete d._d[g]}}},loadFile:function(){function a(a,c){try{for(var d,e=0;d=b[e++];)if(d.doc===a&&d.url==(c.src||c.href))return d}catch(f){return null}}var b=[];return function(c,d,e){var f=a(c,d);if(f)return void(f.ready?e&&e():f.funs.push(e));if(b.push({doc:c,url:d.src||d.href,funs:[e]}),!c.body){var g=[];for(var h in d)"tag"!=h&&g.push(h+'="'+d[h]+'"');return void c.write("<"+d.tag+" "+g.join(" ")+" >")}if(!d.id||!c.getElementById(d.id)){var i=c.createElement(d.tag);delete d.tag;for(var h in d)i.setAttribute(h,d[h]);i.onload=i.onreadystatechange=function(){if(!this.readyState||/loaded|complete/.test(this.readyState)){if(f=a(c,d),f.funs.length>0){f.ready=1;for(var b;b=f.funs.pop();)b()}i.onload=i.onreadystatechange=null}},i.onerror=function(){throw Error("The load "+(d.href||d.src)+" fails,check the url")},c.getElementsByTagName("head")[0].appendChild(i)}}}()};b.each(["String","Function","Array","Number","RegExp","Object","Boolean"],function(a){b["is"+a]=function(b){return Object.prototype.toString.apply(b)=="[object "+a+"]"}});var c={};UE.parse={register:function(a,b){c[a]=b},load:function(a){b.each(c,function(c){c.call(a,b)})}},uParse=function(a,c){b.domReady(function(){var d;if(document.querySelectorAll)d=document.querySelectorAll(a);else if(/^#/.test(a))d=[document.getElementById(a.replace(/^#/,""))];else if(/^\./.test(a)){var d=[];b.each(document.getElementsByTagName("*"),function(b){b.className&&new RegExp("\\b"+a.replace(/^\./,"")+"\\b","i").test(b.className)&&d.push(b)})}else d=document.getElementsByTagName(a);b.each(d,function(d){UE.parse.load(b.extend({root:d,selector:a},c))})})}}(),UE.parse.register("insertcode",function(a){var b=this.root.getElementsByTagName("pre");if(b.length)if("undefined"==typeof XRegExp){var c,d;void 0!==this.rootPath?(c=a.removeLastbs(this.rootPath)+"/third-party/SyntaxHighlighter/shCore.js",d=a.removeLastbs(this.rootPath)+"/third-party/SyntaxHighlighter/shCoreDefault.css"):(c=this.highlightJsUrl,d=this.highlightCssUrl),a.loadFile(document,{id:"syntaxhighlighter_css",tag:"link",rel:"stylesheet",type:"text/css",href:d}),a.loadFile(document,{id:"syntaxhighlighter_js",src:c,tag:"script",type:"text/javascript",defer:"defer"},function(){a.each(b,function(a){a&&/brush/i.test(a.className)&&SyntaxHighlighter.highlight(a)})})}else a.each(b,function(a){a&&/brush/i.test(a.className)&&SyntaxHighlighter.highlight(a)})}),UE.parse.register("table",function(a){function b(b,c){var d,e=b;for(c=a.isArray(c)?c:[c];e;){for(d=0;d0){var g=a[c];a[c]=a[e],a[e]=g}return a}function e(b){if(!a.hasClass(b.rows[0],"firstRow")){for(var c=1;c
    + + + + + +
    + + + + + diff --git a/src/assets/css/base.css b/src/assets/css/base.css new file mode 100644 index 00000000..4009616a --- /dev/null +++ b/src/assets/css/base.css @@ -0,0 +1,81 @@ +@import "./normalize.css"; +:root { + --color-text: #000; + --color-high-text: #ff5777; + --color-tint: #ff8198; + --color-background: #f2f2f2; + --font-size: 14px; + --line-height: 1.5; +} + +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serif; + user-select: none; + /* 禁止用户鼠标在页面上选中文字/图片等 */ + -webkit-tap-highlight-color: transparent; + /* webkit是苹果浏览器引擎,tap点击,highlight背景高亮,color颜色,颜色用数值调节 */ + background: var(--color-background); + color: var(--color-text); + width: 100vw; +} + +a { + color: var(--color-text); + text-decoration: none; +} + +.clear-fix::after { + clear: both; + content: ''; + display: block; + width: 0; + height: 0; + visibility: hidden; +} + +.clear-fix { + zoom: 1; +} + +.arrow-right { + border-top: 1px solid #999; + border-left: 1px solid #999; + width: 9px; + height: 9px; + background-color: transparent; + transform: rotate(135deg); + display: inline-block; + margin-left: .1rem; +} + +.left { + float: left; +} + +.right { + float: right; +} + +@font-face { + font-family: 'icomoon'; + src: url('../fonts/icomoon.eot?wum72a'); + src: url('../fonts/icomoon.eot?wum72a#iefix') format('embedded-opentype'), url('../fonts/icomoon.ttf?wum72a') format('truetype'), url('../fonts/icomoon.woff?wum72a') format('woff'), url('../fonts/icomoon.svg?wum72a#icomoon') format('svg'); + font-weight: normal; + font-style: normal; + font-display: block; +} + +.icon-font { + width: 1em; height: 1em; + vertical-align: -0.15em; + fill: currentColor; + overflow: hidden; +} \ No newline at end of file diff --git a/src/assets/css/list_base.css b/src/assets/css/list_base.css new file mode 100644 index 00000000..f98df8d8 --- /dev/null +++ b/src/assets/css/list_base.css @@ -0,0 +1,78 @@ +.nav { + background-color: #54bf8e; + color: #fff; +} + +.content { + position: fixed; + top: 50px; + left: 0; + right: 0px; + bottom: 49px; +} + + +.block { + height: 88px; +} +.ignore-pull-down1, +.ignore-pull-down2 { + height: 80px; + width: 100vw; + text-align: center; + position: absolute; + top: -80px; + line-height: 80px; +} +.ignore-pull-down2 { + line-height: 120px; +} +.loading { + width: 60px; + height: 20px; + background-color: pink; + position: absolute; + bottom: 0; + left: 50%; + transform: translate3d(-50%, 0, 0); + display: flex; +} +.ball1, +.ball2, +.ball3 { + width: 10px; + height: 10px; + background-color: #4fc08d; + border-radius: 50%; + position: absolute; + bottom: 10px; +} +.ball1 { + right: calc(50% + 15px); +} +.ball2 { + left: calc(50% - 5px); +} +.ball3 { + left: calc(50% + 15px); +} +.ball1 { + animation: loading 1.2s linear infinite; +} +.ball2 { + animation: loading 1.2s 0.4s linear infinite; +} +.ball3 { + animation: loading 1.2s 0.8s linear infinite; +} +@keyframes loading { + 16.667% { + transform: scale(2); + } + 33.333% { + transform: scale(1); + } + 100% { + transform: scale(1); + } +} diff --git a/src/assets/css/normalize.css b/src/assets/css/normalize.css new file mode 100644 index 00000000..f1ade34d --- /dev/null +++ b/src/assets/css/normalize.css @@ -0,0 +1,419 @@ +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ + + +/* Document + ========================================================================== */ + + +/** + * 1. Correct the line height in all browsers. + * 2. Prevent adjustments of font size after orientation changes in iOS. + */ + +html { + line-height: 1.15; + /* 1 */ + -webkit-text-size-adjust: 100%; + /* 2 */ +} + + +/* Sections + ========================================================================== */ + + +/** + * Remove the margin in all browsers. + */ + +body { + margin: 0; +} + + +/** + * Render the `main` element consistently in IE. + */ + +main { + display: block; +} + + +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + + +/* Grouping content + ========================================================================== */ + + +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ + +hr { + box-sizing: content-box; + /* 1 */ + height: 0; + /* 1 */ + overflow: visible; + /* 2 */ +} + + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +pre { + font-family: monospace, monospace; + /* 1 */ + font-size: 1em; + /* 2 */ +} + + +/* Text-level semantics + ========================================================================== */ + + +/** + * Remove the gray background on active links in IE 10. + */ + +a { + background-color: transparent; +} + + +/** + * 1. Remove the bottom border in Chrome 57- + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ + +abbr[title] { + border-bottom: none; + /* 1 */ + text-decoration: underline; + /* 2 */ + text-decoration: underline dotted; + /* 2 */ +} + + +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ + +b, +strong { + font-weight: bolder; +} + + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +code, +kbd, +samp { + font-family: monospace, monospace; + /* 1 */ + font-size: 1em; + /* 2 */ +} + + +/** + * Add the correct font size in all browsers. + */ + +small { + font-size: 80%; +} + + +/** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + + +/* Embedded content + ========================================================================== */ + + +/** + * Remove the border on images inside links in IE 10. + */ + +img { + border-style: none; +} + + +/* Forms + ========================================================================== */ + + +/** + * 1. Change the font styles in all browsers. + * 2. Remove the margin in Firefox and Safari. + */ + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; + /* 1 */ + font-size: 100%; + /* 1 */ + line-height: 1.15; + /* 1 */ + margin: 0; + /* 2 */ +} + + +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ + +button, +input { + /* 1 */ + overflow: visible; +} + + +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ + +button, +select { + /* 1 */ + text-transform: none; +} + + +/** + * Correct the inability to style clickable types in iOS and Safari. + */ + +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; +} + + +/** + * Remove the inner border and padding in Firefox. + */ + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; +} + + +/** + * Restore the focus styles unset by the previous rule. + */ + +button:-moz-focusring, +[type="button"]:-moz-focusring, +[type="reset"]:-moz-focusring, +[type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; +} + + +/** + * Correct the padding in Firefox. + */ + +fieldset { + padding: 0.35em 0.75em 0.625em; +} + + +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ + +legend { + box-sizing: border-box; + /* 1 */ + color: inherit; + /* 2 */ + display: table; + /* 1 */ + max-width: 100%; + /* 1 */ + padding: 0; + /* 3 */ + white-space: normal; + /* 1 */ +} + + +/** + * Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ + +progress { + vertical-align: baseline; +} + + +/** + * Remove the default vertical scrollbar in IE 10+. + */ + +textarea { + overflow: auto; +} + + +/** + * 1. Add the correct box sizing in IE 10. + * 2. Remove the padding in IE 10. + */ + +[type="checkbox"], +[type="radio"] { + box-sizing: border-box; + /* 1 */ + padding: 0; + /* 2 */ +} + + +/** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + + +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ + +[type="search"] { + -webkit-appearance: textfield; + /* 1 */ + outline-offset: -2px; + /* 2 */ +} + + +/** + * Remove the inner padding in Chrome and Safari on macOS. + */ + +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + + +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ + + ::-webkit-file-upload-button { + -webkit-appearance: button; + /* 1 */ + font: inherit; + /* 2 */ +} + + +/* Interactive + ========================================================================== */ + + +/* + * Add the correct display in Edge, IE 10+, and Firefox. + */ + +details { + display: block; +} + + +/* + * Add the correct display in all browsers. + */ + +summary { + display: list-item; +} + + +/* Misc + ========================================================================== */ + + +/** + * Add the correct display in IE 10+. + */ + +template { + display: none; +} + + +/** + * Add the correct display in IE 10. + */ + +[hidden] { + display: none; +} \ No newline at end of file diff --git a/src/assets/css/resetVant.css b/src/assets/css/resetVant.css new file mode 100644 index 00000000..5f3a9cc5 --- /dev/null +++ b/src/assets/css/resetVant.css @@ -0,0 +1,16 @@ +.van-uploader__preview-image { + width: 98px!important; + height: 98px!important; +} +.van-uploader__preview:nth-child(3), +.van-uploader__preview:nth-child(6), +.van-uploader__preview:nth-child(9){ + margin-right: 0!important; +} +.van-uploader__upload { + width: 98px!important; + height: 98px!important; + box-sizing: border-box; + /* border: 1px dashed #888; */ + margin-right: 0!important; +} \ No newline at end of file diff --git a/src/assets/css/vant2.7.1.css b/src/assets/css/vant2.7.1.css new file mode 100644 index 00000000..c5c099ee --- /dev/null +++ b/src/assets/css/vant2.7.1.css @@ -0,0 +1 @@ +html{-webkit-tap-highlight-color:transparent}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,'Helvetica Neue',Helvetica,Segoe UI,Arial,Roboto,'PingFang SC','Hiragino Sans GB','Microsoft Yahei',sans-serif}a{text-decoration:none}button,input,textarea{color:inherit;font:inherit}[class*=van-]:focus,a:focus,button:focus,input:focus,textarea:focus{outline:0}ol,ul{margin:0;padding:0;list-style:none}.van-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.van-multi-ellipsis--l2{display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical}.van-multi-ellipsis--l3{display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:3;-webkit-box-orient:vertical}.van-clearfix::after{display:table;clear:both;content:''}[class*=van-hairline]::after{position:absolute;box-sizing:border-box;content:' ';pointer-events:none;top:-50%;right:-50%;bottom:-50%;left:-50%;border:0 solid #ebedf0;-webkit-transform:scale(.5);transform:scale(.5)}.van-hairline,.van-hairline--bottom,.van-hairline--left,.van-hairline--right,.van-hairline--surround,.van-hairline--top,.van-hairline--top-bottom{position:relative}.van-hairline--top::after{border-top-width:1px}.van-hairline--left::after{border-left-width:1px}.van-hairline--right::after{border-right-width:1px}.van-hairline--bottom::after{border-bottom-width:1px}.van-hairline--top-bottom::after,.van-hairline-unset--top-bottom::after{border-width:1px 0}.van-hairline--surround::after{border-width:1px}@-webkit-keyframes van-slide-up-enter{from{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes van-slide-up-enter{from{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@-webkit-keyframes van-slide-up-leave{to{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes van-slide-up-leave{to{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@-webkit-keyframes van-slide-down-enter{from{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes van-slide-down-enter{from{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@-webkit-keyframes van-slide-down-leave{to{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes van-slide-down-leave{to{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@-webkit-keyframes van-slide-left-enter{from{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes van-slide-left-enter{from{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@-webkit-keyframes van-slide-left-leave{to{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes van-slide-left-leave{to{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@-webkit-keyframes van-slide-right-enter{from{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes van-slide-right-enter{from{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@-webkit-keyframes van-slide-right-leave{to{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes van-slide-right-leave{to{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@-webkit-keyframes van-fade-in{from{opacity:0}to{opacity:1}}@keyframes van-fade-in{from{opacity:0}to{opacity:1}}@-webkit-keyframes van-fade-out{from{opacity:1}to{opacity:0}}@keyframes van-fade-out{from{opacity:1}to{opacity:0}}@-webkit-keyframes van-rotate{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes van-rotate{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.van-fade-enter-active{-webkit-animation:.3s van-fade-in both ease-out;animation:.3s van-fade-in both ease-out}.van-fade-leave-active{-webkit-animation:.3s van-fade-out both ease-in;animation:.3s van-fade-out both ease-in}.van-slide-up-enter-active{-webkit-animation:van-slide-up-enter .3s both ease-out;animation:van-slide-up-enter .3s both ease-out}.van-slide-up-leave-active{-webkit-animation:van-slide-up-leave .3s both ease-in;animation:van-slide-up-leave .3s both ease-in}.van-slide-down-enter-active{-webkit-animation:van-slide-down-enter .3s both ease-out;animation:van-slide-down-enter .3s both ease-out}.van-slide-down-leave-active{-webkit-animation:van-slide-down-leave .3s both ease-in;animation:van-slide-down-leave .3s both ease-in}.van-slide-left-enter-active{-webkit-animation:van-slide-left-enter .3s both ease-out;animation:van-slide-left-enter .3s both ease-out}.van-slide-left-leave-active{-webkit-animation:van-slide-left-leave .3s both ease-in;animation:van-slide-left-leave .3s both ease-in}.van-slide-right-enter-active{-webkit-animation:van-slide-right-enter .3s both ease-out;animation:van-slide-right-enter .3s both ease-out}.van-slide-right-leave-active{-webkit-animation:van-slide-right-leave .3s both ease-in;animation:van-slide-right-leave .3s both ease-in}.van-overlay{position:fixed;top:0;left:0;z-index:1;width:100%;height:100%;background-color:rgba(0,0,0,.7)}.van-info{position:absolute;top:0;right:0;box-sizing:border-box;min-width:16px;padding:0 3px;color:#fff;font-weight:500;font-size:12px;font-family:Avenir-Heavy,PingFang SC,Helvetica Neue,Arial,sans-serif;line-height:14px;text-align:center;background-color:#ee0a24;border:1px solid #fff;border-radius:16px;-webkit-transform:translate(50%,-50%);transform:translate(50%,-50%);-webkit-transform-origin:100%;transform-origin:100%}.van-info--dot{width:8px;min-width:0;height:8px;background-color:#ee0a24;border-radius:100%}.van-sidebar-item{position:relative;display:block;box-sizing:border-box;padding:20px 12px;overflow:hidden;color:#323233;font-size:14px;line-height:20px;word-wrap:break-word;background-color:#f7f8fa;cursor:pointer;-webkit-user-select:none;user-select:none}.van-sidebar-item:active{background-color:#f2f3f5}.van-sidebar-item__text{position:relative;display:inline-block}.van-sidebar-item:not(:last-child)::after{border-bottom-width:1px}.van-sidebar-item--select{color:#323233;font-weight:500}.van-sidebar-item--select,.van-sidebar-item--select:active{background-color:#fff}.van-sidebar-item--select::before{position:absolute;top:50%;left:0;width:4px;height:16px;background-color:#ee0a24;-webkit-transform:translateY(-50%);transform:translateY(-50%);content:''}.van-sidebar-item--disabled{color:#c8c9cc;cursor:not-allowed}.van-sidebar-item--disabled:active{background-color:#f7f8fa}@font-face{font-weight:400;font-family:vant-icon;font-style:normal;font-display:auto;src:url(https://img.yzcdn.cn/vant/vant-icon-db1de1.woff2) format('woff2'),url(https://img.yzcdn.cn/vant/vant-icon-db1de1.woff) format('woff'),url(https://img.yzcdn.cn/vant/vant-icon-db1de1.ttf) format('truetype')}.van-icon{position:relative;display:inline-block;font:normal normal normal 14px/1 vant-icon;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased}.van-icon::before{display:inline-block}.van-icon-add-o::before{content:"\F000"}.van-icon-add-square::before{content:"\F001"}.van-icon-add::before{content:"\F002"}.van-icon-after-sale::before{content:"\F003"}.van-icon-aim::before{content:"\F004"}.van-icon-alipay::before{content:"\F005"}.van-icon-apps-o::before{content:"\F006"}.van-icon-arrow-down::before{content:"\F007"}.van-icon-arrow-left::before{content:"\F008"}.van-icon-arrow-up::before{content:"\F009"}.van-icon-arrow::before{content:"\F00A"}.van-icon-ascending::before{content:"\F00B"}.van-icon-audio::before{content:"\F00C"}.van-icon-award-o::before{content:"\F00D"}.van-icon-award::before{content:"\F00E"}.van-icon-bag-o::before{content:"\F00F"}.van-icon-bag::before{content:"\F010"}.van-icon-balance-list-o::before{content:"\F011"}.van-icon-balance-list::before{content:"\F012"}.van-icon-balance-o::before{content:"\F013"}.van-icon-balance-pay::before{content:"\F014"}.van-icon-bar-chart-o::before{content:"\F015"}.van-icon-bars::before{content:"\F016"}.van-icon-bell::before{content:"\F017"}.van-icon-bill-o::before{content:"\F018"}.van-icon-bill::before{content:"\F019"}.van-icon-birthday-cake-o::before{content:"\F01A"}.van-icon-bookmark-o::before{content:"\F01B"}.van-icon-bookmark::before{content:"\F01C"}.van-icon-browsing-history-o::before{content:"\F01D"}.van-icon-browsing-history::before{content:"\F01E"}.van-icon-brush-o::before{content:"\F01F"}.van-icon-bulb-o::before{content:"\F020"}.van-icon-bullhorn-o::before{content:"\F021"}.van-icon-calender-o::before{content:"\F022"}.van-icon-card::before{content:"\F023"}.van-icon-cart-circle-o::before{content:"\F024"}.van-icon-cart-circle::before{content:"\F025"}.van-icon-cart-o::before{content:"\F026"}.van-icon-cart::before{content:"\F027"}.van-icon-cash-back-record::before{content:"\F028"}.van-icon-cash-on-deliver::before{content:"\F029"}.van-icon-cashier-o::before{content:"\F02A"}.van-icon-certificate::before{content:"\F02B"}.van-icon-chart-trending-o::before{content:"\F02C"}.van-icon-chat-o::before{content:"\F02D"}.van-icon-chat::before{content:"\F02E"}.van-icon-checked::before{content:"\F02F"}.van-icon-circle::before{content:"\F030"}.van-icon-clear::before{content:"\F031"}.van-icon-clock-o::before{content:"\F032"}.van-icon-clock::before{content:"\F033"}.van-icon-close::before{content:"\F034"}.van-icon-closed-eye::before{content:"\F035"}.van-icon-cluster-o::before{content:"\F036"}.van-icon-cluster::before{content:"\F037"}.van-icon-column::before{content:"\F038"}.van-icon-comment-circle-o::before{content:"\F039"}.van-icon-comment-circle::before{content:"\F03A"}.van-icon-comment-o::before{content:"\F03B"}.van-icon-comment::before{content:"\F03C"}.van-icon-completed::before{content:"\F03D"}.van-icon-contact::before{content:"\F03E"}.van-icon-coupon-o::before{content:"\F03F"}.van-icon-coupon::before{content:"\F040"}.van-icon-credit-pay::before{content:"\F041"}.van-icon-cross::before{content:"\F042"}.van-icon-debit-pay::before{content:"\F043"}.van-icon-delete::before{content:"\F044"}.van-icon-descending::before{content:"\F045"}.van-icon-description::before{content:"\F046"}.van-icon-desktop-o::before{content:"\F047"}.van-icon-diamond-o::before{content:"\F048"}.van-icon-diamond::before{content:"\F049"}.van-icon-discount::before{content:"\F04A"}.van-icon-down::before{content:"\F04B"}.van-icon-ecard-pay::before{content:"\F04C"}.van-icon-edit::before{content:"\F04D"}.van-icon-ellipsis::before{content:"\F04E"}.van-icon-empty::before{content:"\F04F"}.van-icon-envelop-o::before{content:"\F050"}.van-icon-exchange::before{content:"\F051"}.van-icon-expand-o::before{content:"\F052"}.van-icon-expand::before{content:"\F053"}.van-icon-eye-o::before{content:"\F054"}.van-icon-eye::before{content:"\F055"}.van-icon-fail::before{content:"\F056"}.van-icon-failure::before{content:"\F057"}.van-icon-filter-o::before{content:"\F058"}.van-icon-fire-o::before{content:"\F059"}.van-icon-fire::before{content:"\F05A"}.van-icon-flag-o::before{content:"\F05B"}.van-icon-flower-o::before{content:"\F05C"}.van-icon-free-postage::before{content:"\F05D"}.van-icon-friends-o::before{content:"\F05E"}.van-icon-friends::before{content:"\F05F"}.van-icon-gem-o::before{content:"\F060"}.van-icon-gem::before{content:"\F061"}.van-icon-gift-card-o::before{content:"\F062"}.van-icon-gift-card::before{content:"\F063"}.van-icon-gift-o::before{content:"\F064"}.van-icon-gift::before{content:"\F065"}.van-icon-gold-coin-o::before{content:"\F066"}.van-icon-gold-coin::before{content:"\F067"}.van-icon-good-job-o::before{content:"\F068"}.van-icon-good-job::before{content:"\F069"}.van-icon-goods-collect-o::before{content:"\F06A"}.van-icon-goods-collect::before{content:"\F06B"}.van-icon-graphic::before{content:"\F06C"}.van-icon-home-o::before{content:"\F06D"}.van-icon-hot-o::before{content:"\F06E"}.van-icon-hot-sale-o::before{content:"\F06F"}.van-icon-hot-sale::before{content:"\F070"}.van-icon-hot::before{content:"\F071"}.van-icon-hotel-o::before{content:"\F072"}.van-icon-idcard::before{content:"\F073"}.van-icon-info-o::before{content:"\F074"}.van-icon-info::before{content:"\F075"}.van-icon-invition::before{content:"\F076"}.van-icon-label-o::before{content:"\F077"}.van-icon-label::before{content:"\F078"}.van-icon-like-o::before{content:"\F079"}.van-icon-like::before{content:"\F07A"}.van-icon-live::before{content:"\F07B"}.van-icon-location-o::before{content:"\F07C"}.van-icon-location::before{content:"\F07D"}.van-icon-lock::before{content:"\F07E"}.van-icon-logistics::before{content:"\F07F"}.van-icon-manager-o::before{content:"\F080"}.van-icon-manager::before{content:"\F081"}.van-icon-map-marked::before{content:"\F082"}.van-icon-medal-o::before{content:"\F083"}.van-icon-medal::before{content:"\F084"}.van-icon-more-o::before{content:"\F085"}.van-icon-more::before{content:"\F086"}.van-icon-music-o::before{content:"\F087"}.van-icon-music::before{content:"\F088"}.van-icon-new-arrival-o::before{content:"\F089"}.van-icon-new-arrival::before{content:"\F08A"}.van-icon-new-o::before{content:"\F08B"}.van-icon-new::before{content:"\F08C"}.van-icon-newspaper-o::before{content:"\F08D"}.van-icon-notes-o::before{content:"\F08E"}.van-icon-orders-o::before{content:"\F08F"}.van-icon-other-pay::before{content:"\F090"}.van-icon-paid::before{content:"\F091"}.van-icon-passed::before{content:"\F092"}.van-icon-pause-circle-o::before{content:"\F093"}.van-icon-pause-circle::before{content:"\F094"}.van-icon-pause::before{content:"\F095"}.van-icon-peer-pay::before{content:"\F096"}.van-icon-pending-payment::before{content:"\F097"}.van-icon-phone-circle-o::before{content:"\F098"}.van-icon-phone-circle::before{content:"\F099"}.van-icon-phone-o::before{content:"\F09A"}.van-icon-phone::before{content:"\F09B"}.van-icon-photo-o::before{content:"\F09C"}.van-icon-photo::before{content:"\F09D"}.van-icon-photograph::before{content:"\F09E"}.van-icon-play-circle-o::before{content:"\F09F"}.van-icon-play-circle::before{content:"\F0A0"}.van-icon-play::before{content:"\F0A1"}.van-icon-plus::before{content:"\F0A2"}.van-icon-point-gift-o::before{content:"\F0A3"}.van-icon-point-gift::before{content:"\F0A4"}.van-icon-points::before{content:"\F0A5"}.van-icon-printer::before{content:"\F0A6"}.van-icon-qr-invalid::before{content:"\F0A7"}.van-icon-qr::before{content:"\F0A8"}.van-icon-question-o::before{content:"\F0A9"}.van-icon-question::before{content:"\F0AA"}.van-icon-records::before{content:"\F0AB"}.van-icon-refund-o::before{content:"\F0AC"}.van-icon-replay::before{content:"\F0AD"}.van-icon-scan::before{content:"\F0AE"}.van-icon-search::before{content:"\F0AF"}.van-icon-send-gift-o::before{content:"\F0B0"}.van-icon-send-gift::before{content:"\F0B1"}.van-icon-service-o::before{content:"\F0B2"}.van-icon-service::before{content:"\F0B3"}.van-icon-setting-o::before{content:"\F0B4"}.van-icon-setting::before{content:"\F0B5"}.van-icon-share::before{content:"\F0B6"}.van-icon-shop-collect-o::before{content:"\F0B7"}.van-icon-shop-collect::before{content:"\F0B8"}.van-icon-shop-o::before{content:"\F0B9"}.van-icon-shop::before{content:"\F0BA"}.van-icon-shopping-cart-o::before{content:"\F0BB"}.van-icon-shopping-cart::before{content:"\F0BC"}.van-icon-shrink::before{content:"\F0BD"}.van-icon-sign::before{content:"\F0BE"}.van-icon-smile-comment-o::before{content:"\F0BF"}.van-icon-smile-comment::before{content:"\F0C0"}.van-icon-smile-o::before{content:"\F0C1"}.van-icon-smile::before{content:"\F0C2"}.van-icon-star-o::before{content:"\F0C3"}.van-icon-star::before{content:"\F0C4"}.van-icon-stop-circle-o::before{content:"\F0C5"}.van-icon-stop-circle::before{content:"\F0C6"}.van-icon-stop::before{content:"\F0C7"}.van-icon-success::before{content:"\F0C8"}.van-icon-thumb-circle-o::before{content:"\F0C9"}.van-icon-thumb-circle::before{content:"\F0CA"}.van-icon-todo-list-o::before{content:"\F0CB"}.van-icon-todo-list::before{content:"\F0CC"}.van-icon-tosend::before{content:"\F0CD"}.van-icon-tv-o::before{content:"\F0CE"}.van-icon-umbrella-circle::before{content:"\F0CF"}.van-icon-underway-o::before{content:"\F0D0"}.van-icon-underway::before{content:"\F0D1"}.van-icon-upgrade::before{content:"\F0D2"}.van-icon-user-circle-o::before{content:"\F0D3"}.van-icon-user-o::before{content:"\F0D4"}.van-icon-video-o::before{content:"\F0D5"}.van-icon-video::before{content:"\F0D6"}.van-icon-vip-card-o::before{content:"\F0D7"}.van-icon-vip-card::before{content:"\F0D8"}.van-icon-volume-o::before{content:"\F0D9"}.van-icon-volume::before{content:"\F0DA"}.van-icon-wap-home-o::before{content:"\F0DB"}.van-icon-wap-home::before{content:"\F0DC"}.van-icon-wap-nav::before{content:"\F0DD"}.van-icon-warn-o::before{content:"\F0DE"}.van-icon-warning-o::before{content:"\F0DF"}.van-icon-warning::before{content:"\F0E0"}.van-icon-weapp-nav::before{content:"\F0E1"}.van-icon-wechat::before{content:"\F0E2"}.van-icon-youzan-shield::before{content:"\F0E3"}.van-icon__image{width:1em;height:1em;object-fit:contain}.van-tabbar-item{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-flex:1;-webkit-flex:1;flex:1;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;color:#646566;font-size:12px;line-height:1;cursor:pointer}.van-tabbar-item__icon{position:relative;margin-bottom:5px;font-size:18px}.van-tabbar-item__icon .van-icon{display:block;min-width:1em}.van-tabbar-item__icon img{display:block;height:18px}.van-tabbar-item--active{color:#1989fa}.van-tabbar-item .van-info{margin-top:2px}.van-step{position:relative;-webkit-box-flex:1;-webkit-flex:1;flex:1;color:#969799;font-size:14px}.van-step__circle{display:block;width:5px;height:5px;background-color:#969799;border-radius:50%}.van-step__line{position:absolute;background-color:#ebedf0;-webkit-transition:background-color .3s;transition:background-color .3s}.van-step--horizontal{float:left}.van-step--horizontal:first-child .van-step__title{margin-left:0;-webkit-transform:none;transform:none}.van-step--horizontal:last-child{position:absolute;right:1px;width:auto}.van-step--horizontal:last-child .van-step__title{margin-left:0;-webkit-transform:none;transform:none}.van-step--horizontal:last-child .van-step__circle-container{right:-9px;left:auto}.van-step--horizontal .van-step__circle-container{position:absolute;top:30px;left:-8px;z-index:1;padding:0 8px;background-color:#fff;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.van-step--horizontal .van-step__title{display:inline-block;margin-left:3px;font-size:12px;-webkit-transform:translateX(-50%);transform:translateX(-50%)}@media (max-width:321px){.van-step--horizontal .van-step__title{font-size:11px}}.van-step--horizontal .van-step__line{top:30px;left:0;width:100%;height:1px}.van-step--horizontal .van-step__icon{display:block;font-size:12px}.van-step--horizontal .van-step--process{color:#323233}.van-step--vertical{display:block;float:none;padding:10px 10px 10px 0;line-height:18px}.van-step--vertical:not(:last-child)::after{border-bottom-width:1px}.van-step--vertical:first-child::before{position:absolute;top:0;left:-15px;z-index:1;width:1px;height:20px;background-color:#fff;content:''}.van-step--vertical .van-step__circle-container{position:absolute;top:19px;left:-15px;z-index:2;font-size:12px;line-height:1;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.van-step--vertical .van-step__line{top:16px;left:-15px;width:1px;height:100%}.van-step:last-child .van-step__line{width:0}.van-step--finish{color:#323233}.van-step--finish .van-step__circle,.van-step--finish .van-step__line{background-color:#07c160}.van-step__icon,.van-step__title{-webkit-transition:color .3s;transition:color .3s}.van-step__icon--active,.van-step__title--active{color:#07c160}.van-rate{display:-webkit-inline-box;display:-webkit-inline-flex;display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none}.van-rate__item{position:relative}.van-rate__item:not(:last-child){padding-right:4px}.van-rate__icon{display:block;width:1em;color:#c8c9cc;font-size:20px}.van-rate__icon--half{position:absolute;top:0;left:0;width:.5em;overflow:hidden}.van-rate__icon--full{color:#ffd21e}.van-rate__icon--disabled{color:#bdbdbd}.van-rate--disabled{cursor:not-allowed}.van-rate--readonly{cursor:default}.van-notice-bar{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;height:40px;padding:0 16px;color:#ed6a0c;font-size:14px;line-height:24px;background-color:#fffbe8}.van-notice-bar__left-icon,.van-notice-bar__right-icon{min-width:22px;font-size:16px}.van-notice-bar__right-icon{text-align:right;cursor:pointer}.van-notice-bar__wrap{position:relative;-webkit-box-flex:1;-webkit-flex:1;flex:1;height:24px;overflow:hidden}.van-notice-bar__content{position:absolute;white-space:nowrap}.van-notice-bar__content.van-ellipsis{max-width:100%}.van-notice-bar__play{-webkit-animation:van-notice-bar-play linear both;animation:van-notice-bar-play linear both}.van-notice-bar__play--infinite{-webkit-animation:van-notice-bar-play-infinite linear infinite both;animation:van-notice-bar-play-infinite linear infinite both}.van-notice-bar--wrapable{height:auto;padding:8px 16px}.van-notice-bar--wrapable .van-notice-bar__wrap{height:auto}.van-notice-bar--wrapable .van-notice-bar__content{position:relative;white-space:normal;word-wrap:break-word}@-webkit-keyframes van-notice-bar-play{to{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes van-notice-bar-play{to{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@-webkit-keyframes van-notice-bar-play-infinite{to{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes van-notice-bar-play-infinite{to{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.van-nav-bar{position:relative;z-index:1;height:46px;line-height:46px;text-align:center;background-color:#fff;-webkit-user-select:none;user-select:none}.van-nav-bar .van-icon{color:#1989fa}.van-nav-bar__arrow{min-width:1em;margin-right:4px;font-size:16px}.van-nav-bar--fixed{position:fixed;top:0;left:0;width:100%}.van-nav-bar__title{max-width:60%;margin:0 auto;color:#323233;font-weight:500;font-size:16px}.van-nav-bar__left,.van-nav-bar__right{position:absolute;top:0;bottom:0;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;padding:0 16px;font-size:14px;cursor:pointer}.van-nav-bar__left:active,.van-nav-bar__right:active{opacity:.7}.van-nav-bar__left{left:0}.van-nav-bar__right{right:0}.van-nav-bar__text{color:#1989fa}.van-grid-item{position:relative;box-sizing:border-box}.van-grid-item--square{height:0}.van-grid-item__content{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;box-sizing:border-box;height:100%;padding:16px 8px;background-color:#fff}.van-grid-item__content::after{z-index:1;border-width:0 1px 1px 0}.van-grid-item__content--square{position:absolute;top:0;right:0;left:0}.van-grid-item__content--center{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.van-grid-item__content--surround::after{border-width:1px}.van-grid-item__content--clickable{cursor:pointer}.van-grid-item__content--clickable:active{background-color:#f2f3f5}.van-grid-item__icon{font-size:28px}.van-grid-item__icon-wrapper{position:relative}.van-grid-item__text{color:#646566;font-size:12px;word-wrap:break-word}.van-grid-item__icon+.van-grid-item__text{margin-top:8px}.van-goods-action-icon{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;min-width:48px;height:100%;color:#646566;font-size:10px;line-height:1;text-align:center;background-color:#fff;cursor:pointer}.van-goods-action-icon:active{background-color:#f2f3f5}.van-goods-action-icon__icon{position:relative;width:1em;margin:0 auto 5px;color:#323233;font-size:18px}.van-checkbox{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;overflow:hidden;cursor:pointer;-webkit-user-select:none;user-select:none}.van-checkbox--disabled{cursor:not-allowed}.van-checkbox--label-disabled{cursor:default}.van-checkbox--horizontal{margin-right:12px}.van-checkbox__icon{-webkit-box-flex:0;-webkit-flex:none;flex:none;height:1em;font-size:20px;line-height:1em;cursor:pointer}.van-checkbox__icon .van-icon{display:block;box-sizing:border-box;width:1.25em;height:1.25em;color:transparent;font-size:.8em;line-height:inherit;text-align:center;border:1px solid #c8c9cc;-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-property:color,border-color,background-color;transition-property:color,border-color,background-color}.van-checkbox__icon--round .van-icon{border-radius:100%}.van-checkbox__icon--checked .van-icon{color:#fff;background-color:#1989fa;border-color:#1989fa}.van-checkbox__icon--disabled{cursor:not-allowed}.van-checkbox__icon--disabled .van-icon{background-color:#ebedf0;border-color:#c8c9cc}.van-checkbox__icon--disabled.van-checkbox__icon--checked .van-icon{color:#c8c9cc}.van-checkbox__label{margin-left:8px;color:#323233;line-height:20px}.van-checkbox__label--left{margin:0 8px 0 0}.van-checkbox__label--disabled{color:#c8c9cc}.van-coupon{margin:0 12px 12px;overflow:hidden;background-color:#fff;border-radius:8px;box-shadow:0 0 4px rgba(0,0,0,.1)}.van-coupon:active{background-color:#f2f3f5}.van-coupon__content{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;box-sizing:border-box;min-height:84px;padding:14px 0;color:#323233}.van-coupon__head{position:relative;min-width:96px;padding:0 8px;color:#ee0a24;text-align:center}.van-coupon__amount,.van-coupon__condition,.van-coupon__name,.van-coupon__valid{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.van-coupon__amount{margin-bottom:6px;font-weight:500;font-size:30px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.van-coupon__amount span{font-weight:400;font-size:40%}.van-coupon__amount span:not(:empty){margin-left:2px}.van-coupon__condition{font-size:12px;line-height:16px;white-space:pre-wrap}.van-coupon__body{position:relative;-webkit-box-flex:1;-webkit-flex:1;flex:1;border-radius:0 8px 8px 0}.van-coupon__name{margin-bottom:10px;font-weight:700;font-size:14px;line-height:20px}.van-coupon__valid{font-size:12px}.van-coupon__corner{position:absolute;top:0;right:16px;bottom:0}.van-coupon__description{padding:8px 16px;font-size:12px;border-top:1px dashed #ebedf0}.van-coupon--disabled:active{background-color:#fff}.van-coupon--disabled .van-coupon-item__content{height:74px}.van-coupon--disabled .van-coupon__head{color:inherit}.van-image{position:relative;display:inline-block}.van-image--round{overflow:hidden;border-radius:50%}.van-image--round img{border-radius:inherit}.van-image__error,.van-image__img,.van-image__loading{display:block;width:100%;height:100%}.van-image__error,.van-image__loading{position:absolute;top:0;left:0;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;color:#969799;font-size:14px;background-color:#f7f8fa}.van-image__loading-icon{font-size:22px}.van-image__error-icon{font-size:22px}.van-radio{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;overflow:hidden;cursor:pointer;-webkit-user-select:none;user-select:none}.van-radio--disabled{cursor:not-allowed}.van-radio--label-disabled{cursor:default}.van-radio--horizontal{margin-right:12px}.van-radio__icon{-webkit-box-flex:0;-webkit-flex:none;flex:none;height:1em;font-size:20px;line-height:1em;cursor:pointer}.van-radio__icon .van-icon{display:block;box-sizing:border-box;width:1.25em;height:1.25em;color:transparent;font-size:.8em;line-height:inherit;text-align:center;border:1px solid #c8c9cc;-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-property:color,border-color,background-color;transition-property:color,border-color,background-color}.van-radio__icon--round .van-icon{border-radius:100%}.van-radio__icon--checked .van-icon{color:#fff;background-color:#1989fa;border-color:#1989fa}.van-radio__icon--disabled{cursor:not-allowed}.van-radio__icon--disabled .van-icon{background-color:#ebedf0;border-color:#c8c9cc}.van-radio__icon--disabled.van-radio__icon--checked .van-icon{color:#c8c9cc}.van-radio__label{margin-left:8px;color:#323233;line-height:20px}.van-radio__label--left{margin:0 8px 0 0}.van-radio__label--disabled{color:#c8c9cc}.van-tag{display:-webkit-inline-box;display:-webkit-inline-flex;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;padding:.2em .5em;color:#fff;font-size:10px;line-height:normal;border-radius:.2em}.van-tag::after{border-color:currentColor;border-radius:.4em}.van-tag--default{background-color:#969799}.van-tag--default.van-tag--plain{color:#969799}.van-tag--danger{background-color:#ee0a24}.van-tag--danger.van-tag--plain{color:#ee0a24}.van-tag--primary{background-color:#1989fa}.van-tag--primary.van-tag--plain{color:#1989fa}.van-tag--success{background-color:#07c160}.van-tag--success.van-tag--plain{color:#07c160}.van-tag--warning{background-color:#ff976a}.van-tag--warning.van-tag--plain{color:#ff976a}.van-tag--plain{background-color:#fff}.van-tag--mark{padding-right:.7em}.van-tag--mark,.van-tag--mark::after{border-radius:0 999px 999px 0}.van-tag--round,.van-tag--round::after{border-radius:999px}.van-tag--medium{font-size:12px}.van-tag--large{font-size:14px}.van-tag__close{min-width:1em;margin-left:2px;cursor:pointer}.van-card{position:relative;box-sizing:border-box;padding:8px 16px;color:#323233;font-size:12px;background-color:#fafafa}.van-card:not(:first-child){margin-top:8px}.van-card__header{display:-webkit-box;display:-webkit-flex;display:flex}.van-card__thumb{position:relative;-webkit-box-flex:0;-webkit-flex:none;flex:none;width:88px;height:88px;margin-right:8px}.van-card__thumb img{border-radius:8px}.van-card__content{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-flex:1;-webkit-flex:1;flex:1;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;min-width:0;min-height:88px}.van-card__content--centered{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.van-card__desc,.van-card__title{word-wrap:break-word}.van-card__title{max-height:32px;font-weight:500;line-height:16px}.van-card__desc{max-height:20px;color:#646566;line-height:20px}.van-card__bottom{line-height:20px}.van-card__price{display:inline-block;color:#323233;font-weight:500;font-size:12px}.van-card__price-integer{font-size:16px;font-family:Avenir-Heavy,PingFang SC,Helvetica Neue,Arial,sans-serif}.van-card__price-decimal{font-family:Avenir-Heavy,PingFang SC,Helvetica Neue,Arial,sans-serif}.van-card__origin-price{display:inline-block;margin-left:5px;color:#969799;font-size:10px;text-decoration:line-through}.van-card__num{float:right;color:#969799}.van-card__tag{position:absolute;top:2px;left:0}.van-card__footer{-webkit-box-flex:0;-webkit-flex:none;flex:none;text-align:right}.van-card__footer .van-button{margin-left:5px}.van-cell{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;box-sizing:border-box;width:100%;padding:10px 16px;overflow:hidden;color:#323233;font-size:14px;line-height:24px;background-color:#fff}.van-cell:not(:last-child)::after{position:absolute;box-sizing:border-box;content:' ';pointer-events:none;right:0;bottom:0;left:16px;border-bottom:1px solid #ebedf0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.van-cell--borderless::after{display:none}.van-cell__label{margin-top:3px;color:#969799;font-size:12px;line-height:18px}.van-cell__title,.van-cell__value{-webkit-box-flex:1;-webkit-flex:1;flex:1}.van-cell__value{position:relative;overflow:hidden;color:#969799;text-align:right;vertical-align:middle;word-wrap:break-word}.van-cell__value--alone{color:#323233;text-align:left}.van-cell__left-icon,.van-cell__right-icon{min-width:1em;height:24px;font-size:16px;line-height:24px}.van-cell__left-icon{margin-right:5px}.van-cell__right-icon{margin-left:5px;color:#969799}.van-cell--clickable{cursor:pointer}.van-cell--clickable:active{background-color:#f2f3f5}.van-cell--required{overflow:visible}.van-cell--required::before{position:absolute;left:8px;color:#ee0a24;font-size:14px;content:'*'}.van-cell--center{-webkit-box-align:center;-webkit-align-items:center;align-items:center}.van-cell--large{padding-top:12px;padding-bottom:12px}.van-cell--large .van-cell__title{font-size:16px}.van-cell--large .van-cell__label{font-size:14px}.van-coupon-cell--selected{color:#323233}.van-contact-card{padding:16px}.van-contact-card__value{margin-left:5px;line-height:20px}.van-contact-card--add .van-contact-card__value{line-height:40px}.van-contact-card--add .van-cell__left-icon{color:#1989fa;font-size:40px}.van-contact-card::before{position:absolute;right:0;bottom:0;left:0;height:2px;background:-webkit-repeating-linear-gradient(135deg,#ff6c6c 0,#ff6c6c 20%,transparent 0,transparent 25%,#1989fa 0,#1989fa 45%,transparent 0,transparent 50%);background:repeating-linear-gradient(-45deg,#ff6c6c 0,#ff6c6c 20%,transparent 0,transparent 25%,#1989fa 0,#1989fa 45%,transparent 0,transparent 50%);background-size:80px;content:''}.van-collapse-item__title .van-cell__right-icon::before{-webkit-transform:rotate(90deg);transform:rotate(90deg);-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.van-collapse-item__title::after{visibility:hidden}.van-collapse-item__title--expanded .van-cell__right-icon::before{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.van-collapse-item__title--expanded::after{visibility:visible}.van-collapse-item__title--disabled{cursor:not-allowed}.van-collapse-item__title--disabled,.van-collapse-item__title--disabled .van-cell__right-icon{color:#c8c9cc}.van-collapse-item__title--disabled:active{background-color:#fff}.van-collapse-item__wrapper{overflow:hidden;-webkit-transition:height .3s ease-in-out;transition:height .3s ease-in-out;will-change:height}.van-collapse-item__content{padding:16px;color:#969799;font-size:13px;line-height:1.5;background-color:#fff}.van-field__label{-webkit-box-flex:0;-webkit-flex:none;flex:none;box-sizing:border-box;width:90px}.van-field__label--center{text-align:center}.van-field__label--right{padding-right:16px;text-align:right}.van-field__value{overflow:visible}.van-field__body{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.van-field__control{display:block;box-sizing:border-box;width:100%;min-width:0;margin:0;padding:0;color:#323233;line-height:inherit;text-align:left;background-color:transparent;border:0;resize:none}.van-field__control::-webkit-input-placeholder{color:#969799}.van-field__control::placeholder{color:#969799}.van-field__control:disabled{color:#969799;background-color:transparent;cursor:not-allowed;opacity:1;-webkit-text-fill-color:currentColor}.van-field__control:read-only{cursor:default}.van-field__control--center{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;text-align:center}.van-field__control--right{-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;text-align:right}.van-field__control--custom{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;min-height:24px}.van-field__control[type=date],.van-field__control[type=datetime-local],.van-field__control[type=time]{min-height:24px}.van-field__control[type=search]{-webkit-appearance:none}.van-field__button,.van-field__clear,.van-field__icon,.van-field__right-icon{-webkit-flex-shrink:0;flex-shrink:0}.van-field__clear,.van-field__right-icon{margin-right:-8px;padding:0 8px;line-height:inherit}.van-field__clear{color:#c8c9cc;font-size:16px;cursor:pointer}.van-field__left-icon .van-icon,.van-field__right-icon .van-icon{display:block;min-width:1em;font-size:16px;line-height:inherit}.van-field__left-icon{margin-right:5px}.van-field__right-icon{color:#969799}.van-field__button{padding-left:8px}.van-field__error-message{color:#ee0a24;font-size:12px;text-align:left}.van-field__error-message--center{text-align:center}.van-field__error-message--right{text-align:right}.van-field__word-limit{margin-top:4px;color:#646566;font-size:12px;line-height:16px;text-align:right}.van-field__word-num--full{color:#ee0a24}.van-field--error .van-field__control::-webkit-input-placeholder{color:#ee0a24;-webkit-text-fill-color:currentColor}.van-field--error .van-field__control,.van-field--error .van-field__control::placeholder{color:#ee0a24;-webkit-text-fill-color:currentColor}.van-field--min-height .van-field__control{min-height:60px}.van-stepper{font-size:0;-webkit-user-select:none;user-select:none}.van-stepper__minus,.van-stepper__plus{position:relative;box-sizing:border-box;width:28px;height:28px;margin:0;padding:4px;color:#323233;vertical-align:middle;background-color:#f2f3f5;border:0;cursor:pointer}.van-stepper__minus::before,.van-stepper__plus::before{width:13px;height:1px}.van-stepper__minus::after,.van-stepper__plus::after{width:1px;height:13px}.van-stepper__minus::after,.van-stepper__minus::before,.van-stepper__plus::after,.van-stepper__plus::before{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;background-color:currentColor;content:''}.van-stepper__minus:active,.van-stepper__plus:active{background-color:#e8e8e8}.van-stepper__minus--disabled,.van-stepper__plus--disabled{color:#c8c9cc;background-color:#f7f8fa;cursor:not-allowed}.van-stepper__minus--disabled:active,.van-stepper__plus--disabled:active{background-color:#f7f8fa}.van-stepper__minus{border-radius:4px 0 0 4px}.van-stepper__minus::after{display:none}.van-stepper__plus{border-radius:0 4px 4px 0}.van-stepper__input{box-sizing:border-box;width:32px;height:28px;margin:0 2px;padding:0;color:#323233;font-size:14px;text-align:center;vertical-align:middle;background-color:#f2f3f5;border:0;border-width:1px 0;border-radius:0;-webkit-appearance:none}.van-stepper__input:disabled{color:#c8c9cc;background-color:#f2f3f5;-webkit-text-fill-color:currentColor;opacity:1}.van-stepper__input:read-only{cursor:default}.van-search{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;box-sizing:border-box;padding:10px 12px;background-color:#fff}.van-search__content{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-flex:1;-webkit-flex:1;flex:1;padding-left:8px;background-color:#f7f8fa;border-radius:2px}.van-search__content--round{border-radius:999px}.van-search__label{padding:0 5px;color:#323233;font-size:14px;line-height:34px}.van-search .van-cell{-webkit-box-flex:1;-webkit-flex:1;flex:1;padding:5px 8px 5px 0;background-color:transparent}.van-search .van-cell__left-icon{color:#969799}.van-search--show-action{padding-right:0}.van-search input::-webkit-search-cancel-button,.van-search input::-webkit-search-decoration,.van-search input::-webkit-search-results-button,.van-search input::-webkit-search-results-decoration{display:none}.van-search__action{padding:0 8px;color:#323233;font-size:14px;line-height:34px;cursor:pointer;-webkit-user-select:none;user-select:none}.van-search__action:active{background-color:#f2f3f5}.van-overflow-hidden{overflow:hidden!important}.van-popup{position:fixed;max-height:100%;overflow-y:auto;background-color:#fff;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;-webkit-overflow-scrolling:touch}.van-popup--center{top:50%;left:50%;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0)}.van-popup--center.van-popup--round{border-radius:20px}.van-popup--top{top:0;left:0;width:100%}.van-popup--top.van-popup--round{border-radius:0 0 20px 20px}.van-popup--right{top:50%;right:0;-webkit-transform:translate3d(0,-50%,0);transform:translate3d(0,-50%,0)}.van-popup--right.van-popup--round{border-radius:20px 0 0 20px}.van-popup--bottom{bottom:0;left:0;width:100%}.van-popup--bottom.van-popup--round{border-radius:20px 20px 0 0}.van-popup--left{top:50%;left:0;-webkit-transform:translate3d(0,-50%,0);transform:translate3d(0,-50%,0)}.van-popup--left.van-popup--round{border-radius:0 20px 20px 0}.van-popup--safe-area-inset-bottom{padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}.van-popup-slide-bottom-enter-active,.van-popup-slide-left-enter-active,.van-popup-slide-right-enter-active,.van-popup-slide-top-enter-active{-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out}.van-popup-slide-bottom-leave-active,.van-popup-slide-left-leave-active,.van-popup-slide-right-leave-active,.van-popup-slide-top-leave-active{-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}.van-popup-slide-top-enter,.van-popup-slide-top-leave-active{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}.van-popup-slide-right-enter,.van-popup-slide-right-leave-active{-webkit-transform:translate3d(100%,-50%,0);transform:translate3d(100%,-50%,0)}.van-popup-slide-bottom-enter,.van-popup-slide-bottom-leave-active{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}.van-popup-slide-left-enter,.van-popup-slide-left-leave-active{-webkit-transform:translate3d(-100%,-50%,0);transform:translate3d(-100%,-50%,0)}.van-popup__close-icon{position:absolute;z-index:1;color:#c8c9cc;font-size:22px;cursor:pointer}.van-popup__close-icon:active{color:#969799}.van-popup__close-icon--top-left{top:16px;left:16px}.van-popup__close-icon--top-right{top:16px;right:16px}.van-popup__close-icon--bottom-left{bottom:16px;left:16px}.van-popup__close-icon--bottom-right{right:16px;bottom:16px}.van-share-sheet__header{padding:12px 16px 4px;text-align:center}.van-share-sheet__title{margin-top:8px;color:#323233;font-weight:400;font-size:14px;line-height:20px}.van-share-sheet__description{display:block;margin-top:8px;color:#969799;font-size:12px;line-height:16px}.van-share-sheet__options{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;padding:16px 0 16px 24px;overflow-x:auto;-webkit-overflow-scrolling:touch}.van-share-sheet__options--border::before{position:absolute;box-sizing:border-box;content:' ';pointer-events:none;top:0;right:0;left:16px;border-top:1px solid #ebedf0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.van-share-sheet__options::after{display:block;-webkit-flex-shrink:0;flex-shrink:0;width:24px;content:''}.van-share-sheet__option{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center;margin-right:32px;cursor:pointer;-webkit-user-select:none;user-select:none}.van-share-sheet__option:last-child{margin-right:0}.van-share-sheet__option:active{opacity:.7}.van-share-sheet__icon{width:48px;height:48px}.van-share-sheet__name{margin-top:8px;color:#646566;font-size:12px}.van-share-sheet__cancel{display:block;width:100%;padding:0;font-size:16px;line-height:48px;text-align:center;background:#fff;border:none;cursor:pointer}.van-share-sheet__cancel::before{display:block;height:8px;background-color:#f7f8fa;content:' '}.van-share-sheet__cancel:active{background-color:#f2f3f5}.van-notify{box-sizing:border-box;padding:8px 16px;color:#fff;font-size:14px;line-height:20px;white-space:pre-wrap;text-align:center;word-wrap:break-word}.van-notify--primary{background-color:#1989fa}.van-notify--success{background-color:#07c160}.van-notify--danger{background-color:#ee0a24}.van-notify--warning{background-color:#ff976a}.van-dropdown-item{position:fixed;right:0;left:0;z-index:10;overflow:hidden}.van-dropdown-item__icon{display:block;line-height:inherit}.van-dropdown-item__option{text-align:left}.van-dropdown-item__option--active{color:#1989fa}.van-dropdown-item__option--active .van-dropdown-item__icon{color:#1989fa}.van-dropdown-item--up{top:0}.van-dropdown-item--down{bottom:0}.van-dropdown-item__content{position:absolute;max-height:80%}.van-loading{position:relative;color:#c8c9cc;font-size:0;vertical-align:middle}.van-loading__spinner{position:relative;display:inline-block;width:30px;max-width:100%;height:30px;max-height:100%;vertical-align:middle;-webkit-animation:van-rotate .8s linear infinite;animation:van-rotate .8s linear infinite}.van-loading__spinner--spinner{-webkit-animation-timing-function:steps(12);animation-timing-function:steps(12)}.van-loading__spinner--spinner i{position:absolute;top:0;left:0;width:100%;height:100%}.van-loading__spinner--spinner i::before{display:block;width:2px;height:25%;margin:0 auto;background-color:currentColor;border-radius:40%;content:' '}.van-loading__spinner--circular{-webkit-animation-duration:2s;animation-duration:2s}.van-loading__circular{display:block;width:100%;height:100%}.van-loading__circular circle{-webkit-animation:van-circular 1.5s ease-in-out infinite;animation:van-circular 1.5s ease-in-out infinite;stroke:currentColor;stroke-width:3;stroke-linecap:round}.van-loading__text{display:inline-block;margin-left:8px;color:#969799;font-size:14px;vertical-align:middle}.van-loading--vertical{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.van-loading--vertical .van-loading__text{margin:8px 0 0}@-webkit-keyframes van-circular{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40}100%{stroke-dasharray:90,150;stroke-dashoffset:-120}}@keyframes van-circular{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40}100%{stroke-dasharray:90,150;stroke-dashoffset:-120}}.van-loading__spinner--spinner i:nth-of-type(1){-webkit-transform:rotate(30deg);transform:rotate(30deg);opacity:1}.van-loading__spinner--spinner i:nth-of-type(2){-webkit-transform:rotate(60deg);transform:rotate(60deg);opacity:.9375}.van-loading__spinner--spinner i:nth-of-type(3){-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:.875}.van-loading__spinner--spinner i:nth-of-type(4){-webkit-transform:rotate(120deg);transform:rotate(120deg);opacity:.8125}.van-loading__spinner--spinner i:nth-of-type(5){-webkit-transform:rotate(150deg);transform:rotate(150deg);opacity:.75}.van-loading__spinner--spinner i:nth-of-type(6){-webkit-transform:rotate(180deg);transform:rotate(180deg);opacity:.6875}.van-loading__spinner--spinner i:nth-of-type(7){-webkit-transform:rotate(210deg);transform:rotate(210deg);opacity:.625}.van-loading__spinner--spinner i:nth-of-type(8){-webkit-transform:rotate(240deg);transform:rotate(240deg);opacity:.5625}.van-loading__spinner--spinner i:nth-of-type(9){-webkit-transform:rotate(270deg);transform:rotate(270deg);opacity:.5}.van-loading__spinner--spinner i:nth-of-type(10){-webkit-transform:rotate(300deg);transform:rotate(300deg);opacity:.4375}.van-loading__spinner--spinner i:nth-of-type(11){-webkit-transform:rotate(330deg);transform:rotate(330deg);opacity:.375}.van-loading__spinner--spinner i:nth-of-type(12){-webkit-transform:rotate(360deg);transform:rotate(360deg);opacity:.3125}.van-pull-refresh{overflow:hidden;-webkit-user-select:none;user-select:none}.van-pull-refresh__track{position:relative;height:100%;-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform}.van-pull-refresh__head{position:absolute;left:0;width:100%;height:50px;overflow:hidden;color:#969799;font-size:14px;line-height:50px;text-align:center;-webkit-transform:translateY(-100%);transform:translateY(-100%)}.van-number-keyboard{position:fixed;bottom:0;left:0;z-index:100;width:100%;padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom);background-color:#f2f3f5;-webkit-user-select:none;user-select:none}.van-number-keyboard--with-title{border-radius:20px 20px 0 0}.van-number-keyboard__header{position:relative;box-sizing:content-box;height:30px;padding-top:6px;color:#646566;font-size:14px;line-height:30px;text-align:center}.van-number-keyboard__title{display:inline-block;font-weight:400}.van-number-keyboard__title-left{position:absolute;left:0}.van-number-keyboard__body{display:-webkit-box;display:-webkit-flex;display:flex;padding:6px 0 0 6px}.van-number-keyboard__keys{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-flex:3;-webkit-flex:3;flex:3;-webkit-flex-wrap:wrap;flex-wrap:wrap}.van-number-keyboard__close{position:absolute;right:0;padding:0 16px;color:#576b95;font-size:14px;background-color:transparent;border:none;cursor:pointer}.van-number-keyboard__close:active{opacity:.7}.van-number-keyboard__sidebar{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-flex:1;-webkit-flex:1;flex:1;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}.van-number-keyboard--unfit{padding-bottom:0}.van-key{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;width:100%;height:56px;padding:0;font-size:28px;line-height:1.5;background-color:#fff;border:none;border-radius:8px;cursor:pointer}.van-key--large{height:100%}.van-key--blue,.van-key--delete{font-size:16px}.van-key--active{background-color:#ebedf0}.van-key--blue{color:#fff;background-color:#1989fa}.van-key--blue.van-key--active{background-color:#0570db}.van-key__wrapper{-webkit-box-flex:1;-webkit-flex:1;flex:1;-webkit-flex-basis:33%;flex-basis:33%;box-sizing:border-box;padding:0 6px 6px 0}.van-key__wrapper--wider{-webkit-flex-basis:66%;flex-basis:66%}.van-key__delete-icon{width:32px;height:22px}.van-key__collapse-icon{width:30px;height:24px}.van-key__loading-icon{color:#fff}.van-list__error-text,.van-list__finished-text,.van-list__loading{color:#969799;font-size:14px;line-height:50px;text-align:center}.van-list__placeholder{height:0;pointer-events:none}.van-switch{position:relative;display:inline-block;box-sizing:content-box;width:2em;height:1em;font-size:30px;background-color:#fff;border:1px solid rgba(0,0,0,.1);border-radius:1em;cursor:pointer;-webkit-transition:background-color .3s;transition:background-color .3s}.van-switch__node{position:absolute;top:0;left:0;z-index:1;width:1em;height:1em;background-color:#fff;border-radius:100%;box-shadow:0 3px 1px 0 rgba(0,0,0,.05),0 2px 2px 0 rgba(0,0,0,.1),0 3px 3px 0 rgba(0,0,0,.05);-webkit-transition:-webkit-transform .3s cubic-bezier(.3,1.05,.4,1.05);transition:-webkit-transform .3s cubic-bezier(.3,1.05,.4,1.05);transition:transform .3s cubic-bezier(.3,1.05,.4,1.05);transition:transform .3s cubic-bezier(.3,1.05,.4,1.05),-webkit-transform .3s cubic-bezier(.3,1.05,.4,1.05)}.van-switch__loading{top:25%;left:25%;width:50%;height:50%;line-height:1}.van-switch--on{background-color:#1989fa}.van-switch--on .van-switch__node{-webkit-transform:translateX(1em);transform:translateX(1em)}.van-switch--on .van-switch__loading{color:#1989fa}.van-switch--disabled{cursor:not-allowed;opacity:.5}.van-switch--loading{cursor:default}.van-switch-cell{padding-top:9px;padding-bottom:9px}.van-switch-cell--large{padding-top:11px;padding-bottom:11px}.van-switch-cell .van-switch{float:right}.van-button{position:relative;display:inline-block;box-sizing:border-box;height:44px;margin:0;padding:0;font-size:16px;line-height:42px;text-align:center;border-radius:2px;cursor:pointer;-webkit-transition:opacity .2s;transition:opacity .2s;-webkit-appearance:none;-webkit-text-size-adjust:100%}.van-button::before{position:absolute;top:50%;left:50%;width:100%;height:100%;background-color:#000;border:inherit;border-color:#000;border-radius:inherit;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);opacity:0;content:' '}.van-button:active::before{opacity:.1}.van-button--disabled::before,.van-button--loading::before{display:none}.van-button--default{color:#323233;background-color:#fff;border:1px solid #ebedf0}.van-button--primary{color:#fff;background-color:#07c160;border:1px solid #07c160}.van-button--info{color:#fff;background-color:#1989fa;border:1px solid #1989fa}.van-button--danger{color:#fff;background-color:#ee0a24;border:1px solid #ee0a24}.van-button--warning{color:#fff;background-color:#ff976a;border:1px solid #ff976a}.van-button--plain{background-color:#fff}.van-button--plain.van-button--primary{color:#07c160}.van-button--plain.van-button--info{color:#1989fa}.van-button--plain.van-button--danger{color:#ee0a24}.van-button--plain.van-button--warning{color:#ff976a}.van-button--large{width:100%;height:50px;line-height:48px}.van-button--normal{padding:0 15px;font-size:14px}.van-button--small{min-width:60px;height:30px;padding:0 8px;font-size:12px;line-height:28px}.van-button__loading{display:inline-block;color:inherit;vertical-align:top}.van-button--mini{display:inline-block;min-width:50px;height:22px;font-size:10px;line-height:20px}.van-button--mini+.van-button--mini{margin-left:4px}.van-button--block{display:block;width:100%}.van-button--disabled{cursor:not-allowed;opacity:.5}.van-button--loading{cursor:default}.van-button--round{border-radius:999px}.van-button--square{border-radius:0}.van-button__icon{min-width:1em;font-size:1.2em;line-height:inherit;vertical-align:top}.van-button__icon+.van-button__text,.van-button__loading+.van-button__text{display:inline-block;margin-left:5px;vertical-align:top}.van-button--hairline{border-width:0}.van-button--hairline::after{border-color:inherit;border-radius:4px}.van-button--hairline.van-button--round::after{border-radius:999px}.van-button--hairline.van-button--square::after{border-radius:0}.van-submit-bar{position:fixed;bottom:0;left:0;z-index:100;width:100%;padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom);background-color:#fff;-webkit-user-select:none;user-select:none}.van-submit-bar__tip{padding:8px 12px;color:#f56723;font-size:12px;line-height:1.5;background-color:#fff7cc}.van-submit-bar__tip-icon{min-width:18px;font-size:12px;vertical-align:middle}.van-submit-bar__tip-text{vertical-align:middle}.van-submit-bar__bar{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;height:50px;padding:0 16px;font-size:14px}.van-submit-bar__text{-webkit-box-flex:1;-webkit-flex:1;flex:1;padding-right:12px;color:#323233;text-align:right}.van-submit-bar__text span{display:inline-block}.van-submit-bar__suffix-label{margin-left:5px;font-weight:500}.van-submit-bar__price{color:#ee0a24;font-weight:500;font-size:12px}.van-submit-bar__price--integer{font-size:20px;font-family:Avenir-Heavy,PingFang SC,Helvetica Neue,Arial,sans-serif}.van-submit-bar__button{width:110px;height:40px;font-weight:500;line-height:40px;border:none}.van-submit-bar__button--danger{background:-webkit-linear-gradient(left,#ff6034,#ee0a24);background:linear-gradient(to right,#ff6034,#ee0a24)}.van-submit-bar--unfit{padding-bottom:0}.van-goods-action-button{-webkit-box-flex:1;-webkit-flex:1;flex:1;height:40px;font-weight:500;font-size:14px;line-height:40px;border:none}.van-goods-action-button--first{margin-left:5px;border-top-left-radius:20px;border-bottom-left-radius:20px}.van-goods-action-button--last{margin-right:5px;border-top-right-radius:20px;border-bottom-right-radius:20px}.van-goods-action-button--warning{background:-webkit-linear-gradient(left,#ffd01e,#ff8917);background:linear-gradient(to right,#ffd01e,#ff8917)}.van-goods-action-button--danger{background:-webkit-linear-gradient(left,#ff6034,#ee0a24);background:linear-gradient(to right,#ff6034,#ee0a24)}@media (max-width:321px){.van-goods-action-button{font-size:13px}}.van-dialog{position:fixed;top:45%;left:50%;width:320px;overflow:hidden;font-size:16px;background-color:#fff;border-radius:16px;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0);-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transition:.3s;transition:.3s;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:transform,opacity;transition-property:transform,opacity,-webkit-transform}@media (max-width:321px){.van-dialog{width:90%}}.van-dialog__header{padding-top:24px;font-weight:500;line-height:24px;text-align:center}.van-dialog__header--isolated{padding:24px 0}.van-dialog__message{max-height:60vh;padding:24px;overflow-y:auto;font-size:14px;line-height:20px;white-space:pre-wrap;text-align:center;word-wrap:break-word;-webkit-overflow-scrolling:touch}.van-dialog__message--has-title{padding-top:12px;color:#646566}.van-dialog__message--left{text-align:left}.van-dialog__message--right{text-align:right}.van-dialog__footer{overflow:hidden;-webkit-user-select:none;user-select:none}.van-dialog__footer--buttons{display:-webkit-box;display:-webkit-flex;display:flex}.van-dialog__footer--buttons .van-button{-webkit-box-flex:1;-webkit-flex:1;flex:1}.van-dialog .van-button{border:0}.van-dialog__confirm,.van-dialog__confirm:active{color:#1989fa}.van-dialog-bounce-enter{-webkit-transform:translate3d(-50%,-50%,0) scale(.7);transform:translate3d(-50%,-50%,0) scale(.7);opacity:0}.van-dialog-bounce-leave-active{-webkit-transform:translate3d(-50%,-50%,0) scale(.9);transform:translate3d(-50%,-50%,0) scale(.9);opacity:0}.van-contact-edit{padding:16px}.van-contact-edit__fields{overflow:hidden;border-radius:4px}.van-contact-edit__fields .van-cell__title{max-width:65px}.van-contact-edit__switch-cell{margin-top:10px;padding-top:9px;padding-bottom:9px;overflow:hidden;border-radius:4px}.van-contact-edit__switch-cell .van-cell__value{-webkit-box-flex:0;-webkit-flex:none;flex:none}.van-contact-edit__switch-cell .van-switch{vertical-align:top}.van-contact-edit__buttons{padding:32px 0}.van-contact-edit .van-button{margin-bottom:12px;font-size:16px}.van-toast{position:fixed;top:50%;left:50%;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;box-sizing:content-box;width:88px;max-width:70%;min-height:88px;padding:16px;color:#fff;font-size:14px;line-height:20px;white-space:pre-wrap;text-align:center;word-wrap:break-word;background-color:rgba(50,50,51,.88);border-radius:8px;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0)}.van-toast--unclickable{overflow:hidden}.van-toast--unclickable *{pointer-events:none}.van-toast--html,.van-toast--text{width:-webkit-fit-content;width:fit-content;min-width:96px;min-height:0;padding:8px 12px}.van-toast--html .van-toast__text,.van-toast--text .van-toast__text{margin-top:0}.van-toast--top{top:50px}.van-toast--bottom{top:auto;bottom:50px}.van-toast__icon{font-size:40px}.van-toast__loading{padding:4px;color:#fff}.van-toast__text{margin-top:8px}.van-calendar{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;height:100%;background-color:#fff}.van-calendar__popup.van-popup--bottom,.van-calendar__popup.van-popup--top{height:80%}.van-calendar__popup.van-popup--left,.van-calendar__popup.van-popup--right{height:100%}.van-calendar__popup .van-popup__close-icon{top:11px}.van-calendar__header{-webkit-flex-shrink:0;flex-shrink:0;box-shadow:0 2px 10px rgba(125,126,128,.16)}.van-calendar__header-subtitle,.van-calendar__header-title,.van-calendar__month-title{height:44px;font-weight:500;line-height:44px;text-align:center}.van-calendar__header-title{font-size:16px}.van-calendar__header-subtitle{font-size:14px}.van-calendar__month-title{font-size:14px}.van-calendar__weekdays{display:-webkit-box;display:-webkit-flex;display:flex}.van-calendar__weekday{-webkit-box-flex:1;-webkit-flex:1;flex:1;font-size:12px;line-height:30px;text-align:center}.van-calendar__body{-webkit-box-flex:1;-webkit-flex:1;flex:1;overflow:auto;-webkit-overflow-scrolling:touch}.van-calendar__days{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-webkit-user-select:none;user-select:none}.van-calendar__month-mark{position:absolute;top:50%;left:50%;z-index:0;color:rgba(242,243,245,.8);font-size:160px;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);pointer-events:none}.van-calendar__day,.van-calendar__selected-day{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;text-align:center}.van-calendar__day{position:relative;width:14.285%;height:64px;font-size:16px;cursor:pointer}.van-calendar__day--end,.van-calendar__day--multiple-middle,.van-calendar__day--multiple-selected,.van-calendar__day--start,.van-calendar__day--start-end{color:#fff;background-color:#ee0a24}.van-calendar__day--start{border-radius:4px 0 0 4px}.van-calendar__day--end{border-radius:0 4px 4px 0}.van-calendar__day--multiple-selected,.van-calendar__day--start-end{border-radius:4px}.van-calendar__day--middle{color:#ee0a24}.van-calendar__day--middle::after{position:absolute;top:0;right:0;bottom:0;left:0;background-color:currentColor;opacity:.1;content:''}.van-calendar__day--disabled{color:#c8c9cc;cursor:default}.van-calendar__bottom-info,.van-calendar__top-info{position:absolute;right:0;left:0;font-size:10px;line-height:14px}@media (max-width:350px){.van-calendar__bottom-info,.van-calendar__top-info{font-size:9px}}.van-calendar__top-info{top:6px}.van-calendar__bottom-info{bottom:6px}.van-calendar__selected-day{width:54px;height:54px;color:#fff;background-color:#ee0a24;border-radius:4px}.van-calendar__footer{-webkit-flex-shrink:0;flex-shrink:0;padding:0 16px;padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}.van-calendar__footer--unfit{padding-bottom:0}.van-calendar__confirm{height:36px;margin:7px 0;line-height:34px}.van-picker{position:relative;background-color:#fff;-webkit-user-select:none;user-select:none;-webkit-text-size-adjust:100%}.van-picker__toolbar{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;height:44px;line-height:44px}.van-picker__cancel,.van-picker__confirm{padding:0 16px;color:#1989fa;font-size:14px;background-color:transparent;border:none;cursor:pointer}.van-picker__cancel:active,.van-picker__confirm:active{background-color:#f2f3f5}.van-picker__title{max-width:50%;font-weight:500;font-size:16px;text-align:center}.van-picker__columns{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;cursor:grab}.van-picker__loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;color:#1989fa;background-color:rgba(255,255,255,.9)}.van-picker__frame{position:absolute;top:50%;left:0;z-index:3;width:100%;-webkit-transform:translateY(-50%);transform:translateY(-50%);pointer-events:none}.van-picker__mask{position:absolute;top:0;left:0;z-index:2;width:100%;height:100%;background-image:-webkit-linear-gradient(top,hsla(0,0%,100%,.9),hsla(0,0%,100%,.4)),-webkit-linear-gradient(bottom,hsla(0,0%,100%,.9),hsla(0,0%,100%,.4));background-image:linear-gradient(180deg,hsla(0,0%,100%,.9),hsla(0,0%,100%,.4)),linear-gradient(0deg,hsla(0,0%,100%,.9),hsla(0,0%,100%,.4));background-repeat:no-repeat;background-position:top,bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;pointer-events:none}.van-picker-column{-webkit-box-flex:1;-webkit-flex:1;flex:1;overflow:hidden;font-size:16px;text-align:center}.van-picker-column__wrapper{-webkit-transition-timing-function:cubic-bezier(.23,1,.68,1);transition-timing-function:cubic-bezier(.23,1,.68,1)}.van-picker-column__item{padding:0 5px;color:#000}.van-picker-column__item--disabled{opacity:.3}.van-address-edit{padding:12px}.van-address-edit__fields{overflow:hidden;border-radius:8px}.van-address-edit__default{margin-top:12px;overflow:hidden;border-radius:8px}.van-address-edit__buttons{padding:32px 4px}.van-address-edit__buttons .van-button{margin-bottom:12px}.van-address-edit-detail{padding:0}.van-address-edit-detail__search-item{background-color:#f2f3f5}.van-address-edit-detail__keyword{color:#ee0a24}.van-address-edit-detail__finish{color:#1989fa;font-size:12px}.van-action-sheet{max-height:80%;color:#323233}.van-action-sheet__cancel,.van-action-sheet__item{display:block;width:100%;padding:0;font-size:16px;line-height:50px;text-align:center;background-color:#fff;border:none;cursor:pointer}.van-action-sheet__cancel:active,.van-action-sheet__item:active{background-color:#f2f3f5}.van-action-sheet__item{height:50px}.van-action-sheet__item--disabled,.van-action-sheet__item--loading{color:#c8c9cc}.van-action-sheet__item--disabled:active,.van-action-sheet__item--loading:active{background-color:#fff}.van-action-sheet__item--disabled{cursor:not-allowed}.van-action-sheet__item--loading{cursor:default}.van-action-sheet__subname{margin-left:4px;color:#646566;font-size:12px}.van-action-sheet__cancel::before{display:block;height:8px;background-color:#f7f8fa;content:' '}.van-action-sheet__header{font-weight:500;font-size:16px;line-height:44px;text-align:center}.van-action-sheet__description{padding:16px;color:#646566;font-size:14px;line-height:20px;text-align:center}.van-action-sheet__close{position:absolute;top:0;right:0;padding:0 16px;color:#c8c9cc;font-size:22px;line-height:inherit}.van-action-sheet__close:active{color:#969799}.van-radio-group--horizontal{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap}.van-contact-list{box-sizing:border-box;height:100%;padding-bottom:50px}.van-contact-list__item{padding:16px}.van-contact-list__item-value{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;padding-right:32px;padding-left:8px}.van-contact-list__item-tag{-webkit-box-flex:0;-webkit-flex:none;flex:none;margin-left:8px;padding-top:0;padding-bottom:0;line-height:1.4em}.van-contact-list__group{box-sizing:border-box;height:100%;overflow-y:scroll;-webkit-overflow-scrolling:touch}.van-contact-list__edit{font-size:16px}.van-contact-list__bottom{position:fixed;right:0;bottom:0;left:0;z-index:999;padding:5px 16px;background-color:#fff}.van-contact-list__add{height:40px;line-height:38px}.van-address-list{box-sizing:border-box;height:100%;padding:12px 12px 100px}.van-address-list__bottom{position:fixed;bottom:0;left:0;z-index:999;box-sizing:border-box;width:100%;padding:5px 16px;background-color:#fff}.van-address-list__add{height:40px;line-height:38px}.van-address-list__disabled-text{padding:20px 0 16px;color:#969799;font-size:14px;line-height:20px}.van-address-item{padding:12px;background-color:#fff;border-radius:8px}.van-address-item:not(:last-child){margin-bottom:12px}.van-address-item__value{padding-right:44px}.van-address-item__name{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;margin-bottom:8px;font-size:16px;line-height:22px}.van-address-item__tag{-webkit-box-flex:0;-webkit-flex:none;flex:none;margin-left:8px;padding-top:0;padding-bottom:0;line-height:1.4em}.van-address-item__address{color:#323233;font-size:13px;line-height:18px}.van-address-item--disabled .van-address-item__address,.van-address-item--disabled .van-address-item__name{color:#c8c9cc}.van-address-item__edit{position:absolute;top:50%;right:16px;color:#969799;font-size:20px;-webkit-transform:translate(0,-50%);transform:translate(0,-50%)}.van-address-item .van-cell{padding:0}.van-address-item .van-radio__label{margin-left:12px}.van-address-item .van-radio__icon--checked .van-icon{background-color:#ee0a24;border-color:#ee0a24}.van-cell-group{background-color:#fff}.van-cell-group__title{padding:16px 16px 8px;color:#969799;font-size:14px;line-height:16px}.van-panel{background:#fff}.van-panel__header-value{color:#ee0a24}.van-panel__footer{padding:8px 16px}.van-checkbox-group--horizontal{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap}.van-circle{position:relative;display:inline-block;text-align:center}.van-circle svg{position:absolute;top:0;left:0;width:100%;height:100%}.van-circle__layer{fill:none;stroke-linecap:round}.van-circle__text{position:absolute;top:50%;left:0;box-sizing:border-box;width:100%;padding:0 4px;color:#323233;font-weight:500;font-size:14px;line-height:18px;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.van-col{float:left;box-sizing:border-box;min-height:1px}.van-col--1{width:4.16666667%}.van-col--offset-1{margin-left:4.16666667%}.van-col--2{width:8.33333333%}.van-col--offset-2{margin-left:8.33333333%}.van-col--3{width:12.5%}.van-col--offset-3{margin-left:12.5%}.van-col--4{width:16.66666667%}.van-col--offset-4{margin-left:16.66666667%}.van-col--5{width:20.83333333%}.van-col--offset-5{margin-left:20.83333333%}.van-col--6{width:25%}.van-col--offset-6{margin-left:25%}.van-col--7{width:29.16666667%}.van-col--offset-7{margin-left:29.16666667%}.van-col--8{width:33.33333333%}.van-col--offset-8{margin-left:33.33333333%}.van-col--9{width:37.5%}.van-col--offset-9{margin-left:37.5%}.van-col--10{width:41.66666667%}.van-col--offset-10{margin-left:41.66666667%}.van-col--11{width:45.83333333%}.van-col--offset-11{margin-left:45.83333333%}.van-col--12{width:50%}.van-col--offset-12{margin-left:50%}.van-col--13{width:54.16666667%}.van-col--offset-13{margin-left:54.16666667%}.van-col--14{width:58.33333333%}.van-col--offset-14{margin-left:58.33333333%}.van-col--15{width:62.5%}.van-col--offset-15{margin-left:62.5%}.van-col--16{width:66.66666667%}.van-col--offset-16{margin-left:66.66666667%}.van-col--17{width:70.83333333%}.van-col--offset-17{margin-left:70.83333333%}.van-col--18{width:75%}.van-col--offset-18{margin-left:75%}.van-col--19{width:79.16666667%}.van-col--offset-19{margin-left:79.16666667%}.van-col--20{width:83.33333333%}.van-col--offset-20{margin-left:83.33333333%}.van-col--21{width:87.5%}.van-col--offset-21{margin-left:87.5%}.van-col--22{width:91.66666667%}.van-col--offset-22{margin-left:91.66666667%}.van-col--23{width:95.83333333%}.van-col--offset-23{margin-left:95.83333333%}.van-col--24{width:100%}.van-col--offset-24{margin-left:100%}.van-count-down{color:#323233;font-size:14px;line-height:20px}.van-tab__pane,.van-tab__pane-wrapper{-webkit-flex-shrink:0;flex-shrink:0;box-sizing:border-box;width:100%}.van-tab__pane-wrapper--inactive{height:0;overflow:visible}.van-sticky--fixed{position:fixed;top:0;right:0;left:0;z-index:99}.van-tab{position:relative;-webkit-box-flex:1;-webkit-flex:1;flex:1;box-sizing:border-box;min-width:0;padding:0 5px;color:#646566;font-size:14px;line-height:44px;text-align:center;cursor:pointer}.van-tab--active{color:#323233;font-weight:500}.van-tab--disabled{color:#c8c9cc;cursor:not-allowed}.van-tab__text{position:relative}.van-tabs{position:relative}.van-tabs__wrap{overflow:hidden}.van-tabs__wrap--page-top{position:fixed}.van-tabs__wrap--content-bottom{top:auto;bottom:0}.van-tabs__wrap--scrollable .van-tab{-webkit-box-flex:0;-webkit-flex:0 0 22%;flex:0 0 22%}.van-tabs__wrap--scrollable .van-tab--complete{-webkit-box-flex:1;-webkit-flex:1 0 auto;flex:1 0 auto}.van-tabs__wrap--scrollable .van-tabs__nav{overflow:hidden;overflow-x:auto;-webkit-overflow-scrolling:touch}.van-tabs__wrap--scrollable .van-tabs__nav::-webkit-scrollbar{display:none}.van-tabs__nav{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;background-color:#fff;-webkit-user-select:none;user-select:none}.van-tabs__nav--line{box-sizing:content-box;height:100%;padding-bottom:15px}.van-tabs__nav--card{box-sizing:border-box;height:30px;margin:0 16px;border:1px solid #ee0a24;border-radius:2px}.van-tabs__nav--card .van-tab{color:#ee0a24;line-height:28px;border-right:1px solid #ee0a24}.van-tabs__nav--card .van-tab:last-child{border-right:none}.van-tabs__nav--card .van-tab.van-tab--active{color:#fff;background-color:#ee0a24}.van-tabs__nav--card .van-tab--disabled{color:#c8c9cc}.van-tabs__line{position:absolute;bottom:15px;left:0;z-index:1;height:3px;background-color:#ee0a24;border-radius:3px}.van-tabs__track{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;width:100%;height:100%;will-change:left}.van-tabs__content--animated{overflow:hidden}.van-tabs--line .van-tabs__wrap{height:44px}.van-tabs--card>.van-tabs__wrap{height:30px}.van-coupon-list{position:relative;height:100%;background-color:#f7f8fa}.van-coupon-list__field{padding:5px 0 5px 16px}.van-coupon-list__field .van-field__body{height:34px;padding-left:12px;line-height:34px;background:#f7f8fa;border-radius:17px}.van-coupon-list__field .van-field__body::-webkit-input-placeholder{color:#c8c9cc}.van-coupon-list__field .van-field__body::placeholder{color:#c8c9cc}.van-coupon-list__field .van-field__clear{margin-right:0}.van-coupon-list__exchange-bar{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;background-color:#fff}.van-coupon-list__exchange{-webkit-box-flex:0;-webkit-flex:none;flex:none;height:32px;font-size:16px;line-height:30px;border:0}.van-coupon-list .van-tabs__wrap{box-shadow:0 6px 12px -12px #969799}.van-coupon-list__list{box-sizing:border-box;padding:16px 0 24px;overflow-y:auto;-webkit-overflow-scrolling:touch}.van-coupon-list__list--with-bottom{padding-bottom:66px}.van-coupon-list__bottom{position:absolute;bottom:0;left:0;z-index:999;box-sizing:border-box;width:100%;padding:5px 16px;font-weight:500;background-color:#fff}.van-coupon-list__close{height:40px;line-height:38px}.van-coupon-list__empty{padding-top:60px;text-align:center}.van-coupon-list__empty p{margin:16px 0;color:#969799;font-size:14px;line-height:20px}.van-coupon-list__empty img{width:200px;height:200px}.van-divider{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;margin:16px 0;color:#969799;font-size:14px;line-height:24px;border-color:#ebedf0;border-style:solid;border-width:0}.van-divider::after,.van-divider::before{display:block;-webkit-box-flex:1;-webkit-flex:1;flex:1;box-sizing:border-box;height:1px;border-color:inherit;border-style:inherit;border-width:1px 0 0}.van-divider::before{content:''}.van-divider--hairline::after,.van-divider--hairline::before{-webkit-transform:scaleY(.5);transform:scaleY(.5)}.van-divider--dashed{border-style:dashed}.van-divider--content-center::before,.van-divider--content-left::before,.van-divider--content-right::before{margin-right:16px}.van-divider--content-center::after,.van-divider--content-left::after,.van-divider--content-right::after{margin-left:16px;content:''}.van-divider--content-left::before{max-width:10%}.van-divider--content-right::after{max-width:10%}.van-dropdown-menu{-webkit-user-select:none;user-select:none}.van-dropdown-menu__bar{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;height:48px;background-color:#fff;box-shadow:0 2px 12px rgba(100,101,102,.08)}.van-dropdown-menu__bar--opened{z-index:11}.van-dropdown-menu__item{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-flex:1;-webkit-flex:1;flex:1;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;min-width:0;cursor:pointer}.van-dropdown-menu__item:active{opacity:.7}.van-dropdown-menu__item--disabled:active{opacity:1}.van-dropdown-menu__item--disabled .van-dropdown-menu__title{color:#969799}.van-dropdown-menu__title{position:relative;box-sizing:border-box;max-width:100%;padding:0 8px;color:#323233;font-size:15px;line-height:22px}.van-dropdown-menu__title::after{position:absolute;top:50%;right:-4px;margin-top:-5px;border:3px solid;border-color:transparent transparent #dcdee0 #dcdee0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:.8;content:''}.van-dropdown-menu__title--active{color:#1989fa}.van-dropdown-menu__title--active::after{border-color:transparent transparent currentColor currentColor}.van-dropdown-menu__title--down::after{margin-top:-1px;-webkit-transform:rotate(135deg);transform:rotate(135deg)}.van-empty{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;box-sizing:border-box;padding:32px 0}.van-empty__image{width:160px;height:160px}.van-empty__image img{width:100%;height:100%}.van-empty__description{margin-top:16px;padding:0 60px;color:#969799;font-size:14px;line-height:20px}.van-empty__bottom{margin-top:24px}.van-goods-action{position:fixed;right:0;bottom:0;left:0;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;box-sizing:content-box;height:50px;padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom);background-color:#fff}.van-goods-action--unfit{padding-bottom:0}.van-grid{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap}.van-swipe{position:relative;overflow:hidden;cursor:grab;-webkit-user-select:none;user-select:none}.van-swipe__track{display:-webkit-box;display:-webkit-flex;display:flex;height:100%}.van-swipe__track--vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}.van-swipe__indicators{position:absolute;bottom:12px;left:50%;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.van-swipe__indicators--vertical{top:50%;bottom:auto;left:12px;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.van-swipe__indicators--vertical .van-swipe__indicator:not(:last-child){margin-bottom:6px}.van-swipe__indicator{width:6px;height:6px;background-color:#ebedf0;border-radius:100%;opacity:.3;-webkit-transition:opacity .2s;transition:opacity .2s}.van-swipe__indicator:not(:last-child){margin-right:6px}.van-swipe__indicator--active{background-color:#1989fa;opacity:1}.van-swipe-item{position:relative;-webkit-flex-shrink:0;flex-shrink:0;width:100%;height:100%}.van-image-preview{position:fixed;top:0;left:0;width:100%;height:100%}.van-image-preview__swipe{height:100%}.van-image-preview__cover{position:absolute;top:0;left:0}.van-image-preview__image{position:absolute;top:0;right:0;bottom:0;left:0;-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform}.van-image-preview__image img{-webkit-user-drag:none}.van-image-preview__image .van-image__error{top:30%;height:40%}.van-image-preview__image .van-image__error-icon{font-size:36px}.van-image-preview__image .van-image__loading{background-color:transparent}.van-image-preview__index{position:absolute;top:10px;left:50%;color:#fff;font-size:14px;text-shadow:0 1px 1px #323233;-webkit-transform:translate(-50%,0);transform:translate(-50%,0)}.van-image-preview__overlay{background-color:rgba(0,0,0,.9)}.van-image-preview__close-icon{position:absolute;z-index:1;color:#c8c9cc;font-size:22px;cursor:pointer}.van-image-preview__close-icon:active{color:#969799}.van-image-preview__close-icon--top-left{top:16px;left:16px}.van-image-preview__close-icon--top-right{top:16px;right:16px}.van-image-preview__close-icon--bottom-left{bottom:16px;left:16px}.van-image-preview__close-icon--bottom-right{right:16px;bottom:16px}.van-uploader{position:relative;display:inline-block}.van-uploader__wrapper{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap}.van-uploader__wrapper--disabled{opacity:.5}.van-uploader__input{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;cursor:pointer;opacity:0}.van-uploader__input-wrapper{position:relative}.van-uploader__input:disabled{cursor:not-allowed}.van-uploader__upload{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;box-sizing:border-box;width:80px;height:80px;margin:0 8px 8px 0;background-color:#f7f8fa;border-radius:8px}.van-uploader__upload:active{background-color:#f2f3f5}.van-uploader__upload-icon{color:#dcdee0;font-size:24px}.van-uploader__upload-text{margin-top:8px;color:#969799;font-size:12px}.van-uploader__preview{position:relative;margin:0 8px 8px 0;cursor:pointer}.van-uploader__preview-image{display:block;width:80px;height:80px;overflow:hidden;border-radius:8px}.van-uploader__preview-delete{position:absolute;top:-8px;right:-8px;color:#969799;font-size:18px;background-color:#fff;border-radius:100%}.van-uploader__mask{position:absolute;top:0;right:0;bottom:0;left:0;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;color:#fff;background-color:rgba(50,50,51,.88);border-radius:8px}.van-uploader__mask-icon{font-size:22px}.van-uploader__mask-message{margin-top:6px;padding:0 4px;font-size:12px;line-height:14px}.van-uploader__loading{width:22px;height:22px;color:#fff}.van-uploader__file{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;width:80px;height:80px;background-color:#f7f8fa;border-radius:8px}.van-uploader__file-icon{color:#646566;font-size:20px}.van-uploader__file-name{box-sizing:border-box;width:100%;margin-top:8px;padding:0 4px;color:#646566;font-size:12px;text-align:center}.van-sku-container{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:stretch;-webkit-align-items:stretch;align-items:stretch;min-height:50%;max-height:80%;overflow-y:visible;font-size:14px;background:#fff}.van-sku-body{-webkit-box-flex:1;-webkit-flex:1 1 auto;flex:1 1 auto;min-height:44px;overflow-y:scroll;-webkit-overflow-scrolling:touch}.van-sku-body::-webkit-scrollbar{display:none}.van-sku-header{margin-left:16px}.van-sku-header__img-wrap{position:relative;float:left;width:96px;height:96px;margin:12px 0;overflow:hidden;background:#f7f8fa;border-radius:4px}.van-sku-header__img-wrap img{position:absolute;top:0;right:0;bottom:0;left:0;max-width:100%;max-height:100%;margin:auto}.van-sku-header__goods-info{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;min-height:96px;padding:12px 36px 12px 8px;overflow:hidden}.van-sku-header-item{margin-top:8px;color:#969799;font-size:12px;line-height:16px}.van-sku__price-symbol{font-size:16px;vertical-align:middle}.van-sku__price-num{font-weight:500;font-size:22px;vertical-align:middle;word-wrap:break-word}.van-sku__goods-price{color:#ee0a24}.van-sku__price-tag{position:relative;display:inline-block;margin-left:8px;padding:0 5px;overflow:hidden;color:#ee0a24;font-size:12px;line-height:16px;vertical-align:middle;border-radius:8px}.van-sku__price-tag::before{position:absolute;top:0;left:0;width:100%;height:100%;background:currentColor;opacity:.1;content:''}.van-sku-group-container{margin-left:16px;padding:12px 0 2px}.van-sku-group-container--hide-soldout .van-sku-row__item--disabled{display:none}.van-sku-row{margin:0 3px 12px 0}.van-sku-row:last-child{margin-bottom:0}.van-sku-row__title{padding-bottom:12px}.van-sku-row__title-multiple{color:#969799}.van-sku-row__item{position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;min-width:40px;margin:0 12px 12px 0;overflow:hidden;color:#323233;font-size:13px;line-height:16px;vertical-align:middle;border-radius:4px;cursor:pointer}.van-sku-row__item::before{position:absolute;top:0;left:0;width:100%;height:100%;background:#f7f8fa;content:''}.van-sku-row__item-img{z-index:1;width:24px;height:24px;margin:4px 0 4px 4px;object-fit:cover;border-radius:2px}.van-sku-row__item-name{z-index:1;padding:8px}.van-sku-row__item--active{color:#ee0a24}.van-sku-row__item--active::before{background:currentColor;opacity:.1}.van-sku-row__item--disabled{color:#c8c9cc;background:#f2f3f5;cursor:not-allowed}.van-sku-row__item--disabled .van-sku-row__item-img{opacity:.3}.van-sku-stepper-stock{margin-left:16px;padding:12px 0}.van-sku-stepper-container{min-height:30px;margin-right:20px;overflow:hidden}.van-sku__stepper{float:right;padding-left:4px}.van-sku__stepper-title{float:left;line-height:30px}.van-sku__stepper-quota{display:inline-block;float:right;color:#ee0a24;font-size:12px;line-height:30px}.van-sku__stock{display:inline-block;margin-right:8px;color:#969799;font-size:12px}.van-sku__stock-num--highlight{color:#ee0a24}.van-sku-messages{padding-bottom:32px}.van-sku-messages__image-cell .van-cell__title{max-width:90px}.van-sku-messages__image-cell .van-cell__value{overflow:visible;text-align:left}.van-sku-img-uploader{display:inline-block}.van-sku-img-uploader__uploader{vertical-align:middle}.van-sku-img-uploader__img{position:relative;float:left;width:64px;height:64px;margin-right:8px;background:#f7f8fa;border-radius:2px}.van-sku-img-uploader__img img{width:100%;height:100%;object-fit:contain}.van-sku-img-uploader__delete{position:absolute;top:-12px;right:-14px;z-index:1;padding:6px;color:rgba(50,50,51,.8);opacity:.8}.van-sku-img-uploader__delete::before{background-color:#fff;border-radius:14px}.van-sku-img-uploader__mask{position:absolute;top:0;left:0;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;width:100%;height:100%;color:#fff;background:rgba(50,50,51,.8)}.van-sku-img-uploader__warn-text{margin-top:6px;font-size:12px;line-height:14px}.van-sku-img-uploader__trigger{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;width:100%;height:100%;color:#dcdee0}.van-sku-actions{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-shrink:0;flex-shrink:0;padding:8px 16px}.van-sku-actions .van-button{height:40px;font-weight:500;font-size:14px;line-height:34px;border:none;border-radius:0}.van-sku-actions .van-button:first-of-type{border-top-left-radius:20px;border-bottom-left-radius:20px}.van-sku-actions .van-button:last-of-type{border-top-right-radius:20px;border-bottom-right-radius:20px}.van-sku-actions .van-button--warning{background:-webkit-linear-gradient(left,#ffd01e,#ff8917);background:linear-gradient(to right,#ffd01e,#ff8917)}.van-sku-actions .van-button--danger{background:-webkit-linear-gradient(left,#ff6034,#ee0a24);background:linear-gradient(to right,#ff6034,#ee0a24)}.van-index-anchor{z-index:1;box-sizing:border-box;padding:0 16px;color:#323233;font-weight:500;font-size:14px;line-height:32px;background-color:transparent}.van-index-anchor--sticky{position:fixed;top:0;right:0;left:0;color:#07c160;background-color:#fff}.van-index-bar__sidebar{position:fixed;top:50%;right:0;z-index:2;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;text-align:center;-webkit-transform:translateY(-50%);transform:translateY(-50%);cursor:pointer;-webkit-user-select:none;user-select:none}.van-index-bar__index{padding:0 4px 0 16px;font-weight:500;font-size:10px;line-height:14px}.van-index-bar__index--active{color:#07c160}.van-pagination{display:-webkit-box;display:-webkit-flex;display:flex;font-size:14px;line-height:40px;text-align:center}.van-pagination__item{-webkit-box-flex:1;-webkit-flex:1;flex:1;box-sizing:border-box;min-width:36px;height:40px;color:#1989fa;background-color:#fff;cursor:pointer;-webkit-user-select:none;user-select:none}.van-pagination__item:active{color:#fff;background-color:#1989fa}.van-pagination__item::after{border-width:1px 0 1px 1px}.van-pagination__item:last-child::after{border-right-width:1px}.van-pagination__item--active{color:#fff;background-color:#1989fa}.van-pagination__next,.van-pagination__prev{padding:0 4px;cursor:pointer}.van-pagination__item--disabled,.van-pagination__item--disabled:active{color:#646566;background-color:#f7f8fa;cursor:not-allowed;opacity:.5}.van-pagination__page{-webkit-box-flex:0;-webkit-flex-grow:0;flex-grow:0}.van-pagination__page-desc{-webkit-box-flex:1;-webkit-flex:1;flex:1;height:40px;color:#646566}.van-pagination--simple .van-pagination__next::after,.van-pagination--simple .van-pagination__prev::after{border-width:1px}.van-password-input{position:relative;margin:0 16px;-webkit-user-select:none;user-select:none}.van-password-input__error-info,.van-password-input__info{margin-top:16px;font-size:14px;text-align:center}.van-password-input__info{color:#969799}.van-password-input__error-info{color:#ee0a24}.van-password-input__security{display:-webkit-box;display:-webkit-flex;display:flex;width:100%;height:50px;cursor:pointer}.van-password-input__security::after{border-radius:6px}.van-password-input__security li{position:relative;-webkit-box-flex:1;-webkit-flex:1;flex:1;height:100%;font-size:20px;line-height:50px;text-align:center;background-color:#fff}.van-password-input__security i{position:absolute;top:50%;left:50%;width:10px;height:10px;background-color:#000;border-radius:100%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);visibility:hidden}.van-password-input__cursor{position:absolute;top:50%;left:50%;width:1px;height:40%;background-color:#323233;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-animation:1s van-cursor-flicker infinite;animation:1s van-cursor-flicker infinite}@-webkit-keyframes van-cursor-flicker{from{opacity:0}50%{opacity:1}100%{opacity:0}}@keyframes van-cursor-flicker{from{opacity:0}50%{opacity:1}100%{opacity:0}}.van-progress{position:relative;height:4px;background:#ebedf0;border-radius:4px}.van-progress__portion{position:absolute;left:0;height:100%;background:#1989fa;border-radius:inherit}.van-progress__pivot{position:absolute;top:50%;box-sizing:border-box;min-width:3.6em;padding:0 5px;color:#fff;font-size:10px;line-height:1.6;text-align:center;word-break:keep-all;background-color:#1989fa;border-radius:1em;-webkit-transform:translate(0,-50%);transform:translate(0,-50%)}.van-row::after{display:table;clear:both;content:''}.van-row--flex{display:-webkit-box;display:-webkit-flex;display:flex}.van-row--flex::after{display:none}.van-row--justify-center{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.van-row--justify-end{-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.van-row--justify-space-between{-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.van-row--justify-space-around{-webkit-justify-content:space-around;justify-content:space-around}.van-row--align-center{-webkit-box-align:center;-webkit-align-items:center;align-items:center}.van-row--align-bottom{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end}.van-sidebar{width:85px;overflow-y:auto;-webkit-overflow-scrolling:touch}.van-tree-select{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;font-size:14px;-webkit-user-select:none;user-select:none}.van-tree-select__nav{-webkit-box-flex:1;-webkit-flex:1;flex:1;overflow-y:auto;background-color:#f7f8fa;-webkit-overflow-scrolling:touch}.van-tree-select__nav-item{padding:14px 12px}.van-tree-select__content{-webkit-box-flex:2;-webkit-flex:2;flex:2;overflow-y:auto;background-color:#fff;-webkit-overflow-scrolling:touch}.van-tree-select__item{position:relative;padding:0 32px 0 16px;font-weight:700;line-height:48px;cursor:pointer}.van-tree-select__item--active{color:#ee0a24}.van-tree-select__item--disabled{color:#c8c9cc;cursor:not-allowed}.van-tree-select__selected{position:absolute;top:50%;right:16px;margin-top:-8px;font-size:16px}.van-skeleton{display:-webkit-box;display:-webkit-flex;display:flex;padding:0 16px}.van-skeleton__avatar{-webkit-flex-shrink:0;flex-shrink:0;margin-right:16px;background-color:#f2f3f5}.van-skeleton__avatar--round{border-radius:100%}.van-skeleton__content{width:100%}.van-skeleton__avatar+.van-skeleton__content{padding-top:8px}.van-skeleton__row,.van-skeleton__title{height:16px;background-color:#f2f3f5}.van-skeleton__title{margin:0}.van-skeleton__row:not(:first-child){margin-top:12px}.van-skeleton__title+.van-skeleton__row{margin-top:20px}.van-skeleton--animate{-webkit-animation:van-skeleton-blink 1.2s ease-in-out infinite;animation:van-skeleton-blink 1.2s ease-in-out infinite}@-webkit-keyframes van-skeleton-blink{50%{opacity:.6}}@keyframes van-skeleton-blink{50%{opacity:.6}}.van-slider{position:relative;width:100%;height:2px;background-color:#ebedf0;border-radius:999px;cursor:pointer}.van-slider::before{position:absolute;top:-8px;right:0;bottom:-8px;left:0;content:''}.van-slider__bar{position:relative;width:100%;height:100%;background-color:#1989fa;border-radius:inherit;-webkit-transition:width .2s;transition:width .2s}.van-slider__button{width:24px;height:24px;background-color:#fff;border-radius:50%;box-shadow:0 1px 2px rgba(0,0,0,.5)}.van-slider__button-wrapper{position:absolute;top:50%;right:0;-webkit-transform:translate3d(50%,-50%,0);transform:translate3d(50%,-50%,0);cursor:grab}.van-slider--disabled{cursor:not-allowed;opacity:.5}.van-slider--disabled .van-slider__button-wrapper{cursor:not-allowed}.van-slider--vertical{display:inline-block;width:2px;height:100%}.van-slider--vertical .van-slider__button-wrapper{top:auto;right:50%;bottom:0;-webkit-transform:translate3d(50%,50%,0);transform:translate3d(50%,50%,0)}.van-slider--vertical::before{top:0;right:-8px;bottom:0;left:-8px}.van-steps{overflow:hidden;background-color:#fff}.van-steps--horizontal{padding:10px 10px 0}.van-steps--horizontal .van-steps__items{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;margin:0 0 10px;padding-bottom:22px}.van-steps--vertical{padding:0 0 0 32px}.van-swipe-cell{position:relative;overflow:hidden;cursor:grab}.van-swipe-cell__wrapper{-webkit-transition-timing-function:cubic-bezier(.18,.89,.32,1);transition-timing-function:cubic-bezier(.18,.89,.32,1);-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform}.van-swipe-cell__left,.van-swipe-cell__right{position:absolute;top:0;height:100%}.van-swipe-cell__left{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.van-swipe-cell__right{right:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.van-tabbar{z-index:1;display:-webkit-box;display:-webkit-flex;display:flex;box-sizing:content-box;width:100%;height:50px;padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom);background-color:#fff}.van-tabbar--fixed{position:fixed;bottom:0;left:0}.van-tabbar--unfit{padding-bottom:0} \ No newline at end of file diff --git a/src/assets/fonts/icomoon.eot b/src/assets/fonts/icomoon.eot new file mode 100644 index 0000000000000000000000000000000000000000..857e7f774500974884340012ed43ccc01be873a7 GIT binary patch literal 11432 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 literal 0 HcmV?d00001 diff --git a/src/assets/fonts/icomoon.svg b/src/assets/fonts/icomoon.svg new file mode 100644 index 00000000..052b75e9 --- /dev/null +++ b/src/assets/fonts/icomoon.svg @@ -0,0 +1,55 @@ + + + +Generated by IcoMoon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/fonts/icomoon.ttf b/src/assets/fonts/icomoon.ttf new file mode 100644 index 0000000000000000000000000000000000000000..8fb03834ea3fdfef810f9486f050087f3377f73a GIT binary patch literal 11268 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 literal 0 HcmV?d00001 diff --git a/src/assets/fonts/icomoon.woff b/src/assets/fonts/icomoon.woff new file mode 100644 index 0000000000000000000000000000000000000000..6660ce3d71d6fc30d642baf28e8edc9b3a52d140 GIT binary patch literal 11344 zcmcIqd2n3CneXm*&-LcbsTpZB_lz``G$W11hcq%+*!aT6NH(@PYzs?(u}yqbFl1qJ z5J(_L!EU7>K*8qNlte*_N(CyZO?eY9fmFPygvgs@{~+1a!iJ>SY!Ws}1wHMr-y2!7 zV~5=;=gsu%ukY@!zy7X%@87y^9iaqIX&Z4`vB=*Sd$wNJS0jX~DBH_}?o;|E5AC}X zdAA~c0}pR)eoLL+cZ}zqMw-{AQZy4ze56U-%-`slW_+7}`i!|@^^w&se`yEFnQLn)3+`_|;|M2g>KD6&Hj9YjR z>4X(lknbPfcjy4}zJ#$q%EMzDwLjf?6Eu1221O((*I7Q5#g!Q&Y0n~*u4tL?rYjqLPYT*K=7+^{g zzbL-tU6@~3u-YYlfxfL2UHExe3?dnq&gfv!KQ&^hEU(ORrabZrF z6I!G}wvj1vJC-n*uh4uBKOUu1iiavPemn{W!re3+!jDG-wMLURhVbK2KEUgwQ@mY$ zkmn85c)ehLi1(;S=s@sLAH!odH?Navk;omM0rih{@nzPY9!xsqnjJ_x%7OY6- zixK0jBFnmF5>1z7#e(UqIb%d32HnBm%i#rLWmzxQI(!dkSYnh}oz737QzO_OK=Vp3 zoi!q6LG{Yk<5k(LHH6uU_of+CWtQiBwl&aaY*FatWG1tx9KS#U_F_RGe6gHf*URzqzP|>31~_NnbcPoQun5KrjxER9Y+>NCV$3?m*0ETE zE+20#wm3DSXCu;vK-bneE8?6Li5n8LfOB>p{}awjrH%8FLUDd3U8|+p4*tFbJXcHe z(sYd$Yw1j_ma!nbd5ZJ&gCvOY*ANehkrKGm806#yv$$Z~3zIY;gIhr)LLSyH0SiTQ zj*m%;{C!C{*esWt%~H8}Vf+`DF+Win9W5a&v>Tf3PC$}mmVk?~Q(W)j)WdlgIFm*p zpe(L5LTzCmuG@M6BTxo(4Xn`o9d&_`g2yXzsa(0fw>J}w-Z0u^J%=7lW1xQiaCR$RnHP8(~FgeNpRhxjHnntQin)r`&Om-l@^oAob@D(fxJv zsrtq>ML`S%`T_x`hm8!<{e$LHwDmyafd;$(iy9uZ?bP*d_bDs^;^j4~NAp>`^_Plk zm`9@lKiZ2za(Q#$@@>*$@35yK#|X{IijarMk^^y$%T<&sN&cZ+p8YUBW<0egvOW@t z%(@a@K^6i@$DHAhv#0Sgf4&<9>rmvTLdZv3sLl83O^DtI+elK7k4+kf!UZ*KQ7_|Y zfY#8D-Lv$z#+ybl_{uB6qT!{wn$PV>r`4d-8C28h9l5-!GlOk3nE%u%KQoM~SIuUx zOD0uKQD-^s-M4HS>E@E+t8Qlpd&Jaa)u^o%t} zOfP0lG3K=TiPM|0t_f>CXv^`&7u24bLa+U^g*{Jiw&r2Y5v#@=E!x`(+I!rh0}t(k zApjy+)cdQpqTg?wN4yjv@?OM8w=QmxQRBq7J(=VuFPYrViLVCYJKrw3+0vsgw_U=O zZd*y?GBfD6RcK3}zKn9yoLJO;i?$LRxqLEnW`=iZy_S@0SRciOvzAS_ja$jq;j#I{ za>Fcy{j<5feXicyz=JkxBMOJl=4+u^gTlB&N@xw&VIbK?6NidhQ{JSay1j*cgD}4) zEW0j}IcL||M%H;HT#cmX@f(yBfA?*!67VmmdoJ7i*xBZMd}CC(j97m^{l&flJxak|cG6^=vq{ zzA$k2x^;IC6xPSWSv}lwsr((X?sTUD(PpMNxnjj+G1H6&Qf?`qIVF%`!i#w%Q(DmNj(Iyufk@8bl02ST(n!dXZkV53X7_VGwd8xc{Cjp8 znfT>n*%rTcj#;u29@V?Zr{9ZS+X^`NNT>>ydrsp5qp90IgSLB4vG`J(Ii2T& zOaDI^jWDZeiEua;OQkm#3Z+t^usNNI#lqo)rip@w-^t|c#GQR4K zg$>P-T^%68NXM>`=7z$JRb+c&o}O#6gXQw3&MvRs*}17w8O&bOgKTSfYa$o$HftUi zur|)*AV<$EoDrskGthhbu}3)TtATKS#`%kL{)S=<)EmNpKMe0vzR|E%h^nPS46uQX zuD;-7k8RY`LAurvb~}R(`opQ|$EQw?Pd}6yC=L%73&X<&Hg(t+nK}|o>lI0nC3@ci z`R?HS0DWNGJVPIQ=)~j01-mL}=X{?Fm+qIF)4`t>f{MtsgTA&qA$S>2k~!ga&gv;u zb$TD=iqYjeS(GdgcR<>Kp1mn`!yDXx2ie}g@FS53Go*u5$={HF0mf{R494AT%W%%J z!LJ*aDxj94WQ%O@cAa~3xsbQ~+IDu47P!5Nf7>^HK~&?KCO@xvTY9A1C-s8J@|rg+ zZy}d8P}KQw%Q_tzg(bXH0hSTFySwIh`$eJKFamH#8=#sk2`cp(KL@JguF&Mav#jnXxZ!4ndEe) z!X2@WSZpkpFZ7lx`vwOaycEty|AZpJ1u)RpzpJM=n@^`lqS0VyC>VD*L@I&fYafPt zKvJk=I2og|Fys)GNWA;1e6Gjc%eN}KO8Rjd>taZ@RCTG-`ky@9Em$4ot2Jh4!^&@vs$Z8_Vrit+00lx&UKr#%O%4Z@2hmSTACNL#7Yx^U`M2@Yb2RW7mB4_ z9GM87RkjAecn$sd|07rxy=B$(M4HgX|UF zU_F}CJvPMqD7)Qd9uN2S^zfE=^IoQV%m<*2pR{|#Dkm0x0NHpiIGvk}lbgt`SdEfx zNC^DMg~Gx)eVkt-;Yjfd6id9>M=_tR@N>wI4G;FI3|c_@<|QoQYzYSHp+()GM%KQ0 zQP{zQ=D!}KZ{BA9XuGJ2ibpAkPDyr%u8@Nk0$r*oDGKOV#1#ltd=7IiPz*Xl&Ic8j z^l^7UWddb*s3_?k6w@Ng!sah=SVW1oz#CS?Cf|o8cxZcR-c1+E1FVzeanWTyHGfP)DY=`2K$L8m(ZqTJyrL*U*DmuCLyL6es zQ$PwMyUCRBMIl2HWCZwtPXlHx4uuWyOV0q`UAC70!%E(Bvg{At z9$oiz*Xwrt=QHBEh(HE}d0~oll03N@ldujHC#glF7%nU8=CY4UiymjLeX-B%-1(W<`}U?N-4)Hs;oC+w^YJT<}oW$rV_kKMm5i{YH(j zrR~-8Y0wGJl7h*)eJ-FvS@*SuoowXOev4`0Y|xdxuU*gBmPT!({O!gT8vQ|(ZfQ_r z5+mzZ!Ej=%87n9r)t@z9z5cZxc~h;ig|Xe#^@i+L3d4iB-Ov~X_QyZsRTv)n&Ua*m zQSKo?oa)ZMKg*!I{a$?~n;j6+4Qo)(O4J&~2oO^L%maftbk6;ih zvdvgfb9GViLN3~wrNrY@%+qd7bGbClO&>pbrnz%x^UTSP8_MN^Cy|N8_w^Q{Ayo}U3%&c| zu}s2KD3@>OXz3nl^cxLF((Ta{>h)4Z^SG0a#y3VKkat{t#Ej;0QS%WsuG8;pZfgMW zg>R8gVOm%Xt)JgW@T=X6VQiG6jjMH*rW_8{Y&cJsk-9LkK(d|D+=A|qm6-neRW4ao zyFGjMK)g5uvMRgQy$`}EFr%+sjCB!`*hn&eU>U4PG zSiu_Vap~PE{ixMKQ{A|$x_9A}@F6iq0;C8YzX{gmH14Y4t+G56L)HFJkZY8RT+P~7 z1zb5ua`(EOoAle3i*3dT^?_j9^i0|vG=y`_s%?KSyk1gX!Eb>5O0GqKRVI8S+_9n~ zY(DC7r`#S@p?|BW9#7KaHq8&F`ukHn_!6FQ$6zGtHSh68I%;rg{lseY5rJXBk(x|X zon5JL>Lq=A^;omHw<|Wfe|)5Qtv|4}Qu*N6SUG=nB5`%TG&c6Zz6$**I;~dGF+FnU zAxAK@wy)A0u9VjXL(X^i2mIGIN5=P$#=7=4n`5iTz0qB}D&sgCj7$)>@Dy~WZcArc z)D;#bo287~pRj^v6`>{%!U`1jmC(!8U$r?0Q4_l{=s5TJ7Y zH&6DIF8G#Y?4IhAmJ5=~cDsCOsRf`z&EbPR|M+C}?y(ELL@DQ=uoOn{{3pq7VUjIa zRNBAjcIu{8z})}DKhMFQ+W;nBwLDb-EO==tRr;wX*UApY1gUl+;eq-hyQI}0|JZ6o zvPeCN6Ez7cibG!e++&#sl7BCf->ZcPfJ=#_GrF1zkl4xKSi40Z3^cgS~PM&$^|-g#>Pecn`=%F}M-?p5l?AWj+5qbPqk_(cMC? zD-*aD%DO7aQ6KRB$~dKJx6kO-*mbWW?TgBi>SFZodIh&v^*hYZ(~$cKN67I+mMQA} zFF5_;#*L!i`NI9GB9sJyQaX7H#hr)4nfAZzO!zl4>P{Kn4uOVVLVvo?rz3hPEQSp) zT-l61@UlPclx5l>A6mUjl6F1s3@Io5%xZ37sgkH@2L3VlLq7p(m`C#E^a4^xEj~~y2!e5#D?cm=|zpr{;sI~#ZZx2qPng4 zo%@Wa7%_g!M9l-?37>}|%lP1F!{ZJ^b$TXXIW;q2STl^lr~b2!vf&L0t3|g*FGk@6 zoc|9PQxe~E$*b943v}W$p+LYgw75~ua1p{ZS@CLS%d-3EGjxyORN&WbwJdM1$7!}C zRWec0@OtuL+KN^KfliUmpS4xHqV-`B*9omJVaz#85#;^^;Evl&3D`_)xXlFn3uch8 z*G&BMY1(2fVGV~&Kvq3e{jWccy>qiZ{0^}-W%851pMD0}?Ren@k$|J}?-}tWo%Nu9 z>zh9~7x;rWa?X3Ic8Q(Gn;~69Xdz6rW1e2jI|z8To&PrCH}N?jtUmf7ggC-o2#?q> zFSFY5w$d_~_j{(D?nnFy1U_yUftT^HyB!3?=%1WG_!h#w2)z7BgyRUjZ~JjTmUNTT zbT9oH8)n}X4hzqT-Qo@6Y4JBwNt%+LmQG9mDZAu;`F2HBo>p7h4cd~Ivp3s>-tUv4Zc)w(b#uLW7zH#4M{s;X}SeUDl??HC)XA#5p*!J5)o@?Wm z5(QZ{t{LFHZCC(2)P_aCC)%)tFI$6cSVsP)HtZl#@^PFnDr(5_pu~n5;ORCj03K<> zBH$0SVTpuDq7BQ)-`<8D_;T&@w@n^7bmYiks9BTb2swmsgdE;+;OMd2jvP)@EB#~# zIY5q*W2k@v^izda)_>7f7tP#$VEV)z`;KDJ1DNOuu!Vi(=tXO;J97AVV*0@014s8A zKX6N8|H;IL$s=1Zw+eVKANx2)pGG%_tr_h@`T*_<6X44y@!nu9V2ix~%#rh>zxezw D7k}E} literal 0 HcmV?d00001 diff --git a/src/assets/images/angry.png b/src/assets/images/angry.png new file mode 100644 index 0000000000000000000000000000000000000000..7ab4c1c52c6a849259b4a745fbb0d9b8e2ab5858 GIT binary patch literal 39194 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

    Ujp<+di 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%0DO? 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 z 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׾!OgvbOP8csx(ev7EJais0YMrCz z7*9+|z>7&0QZj8$S|E?RzgDY46|sPh3p0?2!uW7M965Xt-un9MaN_t&=nahS7;yT6 zu-)sl>q*r&QQ)d>0ji#kzptt)tH@i>l^}F!F;&86C^k3W#_!}Ns-$soYjw#vO(sF} z8*229`{;vJdXHuCZY)AyS5h$w>Ua2+s(`Bb$)>=zQ63ejkmM3Bc=e`m#YD*1dpP?` zBAteJ-hBt6@fiGDc6rDP#q(AX&&E5@uNDtbivS~G=_J7!3yh&!b+^-36)Q~UF?2C zYagpk4&rtf6?fAPi<^UMcpG2-86NjTB?PvQ1^j+FwzcGUq)~PZ;}1e~TCY=v&EAn9 zSe6A76BF>x_r3!zE;e1n>v!gaW-u)SJk$(6?g%j%`?pjY&Q&GqhNuH%5JD_KEprb3 zT`yO}Zz$%n;MB@6n2f=`-J|fvt0&;ZOE1Fn&p!uNIQk{WD7xzyG^i69c-2O8)j~~% zsGVvTy@qJw(KSm|T)P`CuV}a>ieSYSE86)V(kAJ@Mq0%0m+;M&?7i^Xbi+Ov4O%+K zM{*+y_{uuI_p-tT@2lb$uNxG)@BmULzmHD@S7`hV{di9kB$fiKD4@5~TTf3PeE)C1 z4^i~h|MNfo6M7TpVRpuaO0^Cnqr(u0MM0}KKu4_;q^e&^p>ZNvq!KxFiO|%<&?9Kz zcb98*ksnwg0LnbrvuhYmyl@PTJ@bqZ0y0UzuMqh00$<2GyV7?bSsS?3Q3z_)n#`jR z(RXP2@3{w7dKr6k9i)=`uq4+DvQrCS;p>d?rW&RHVj|B09Zh$zqddg z!=wTc@8ZcA&}!h~G+gi=frX43RwL0U9Nf1LckRolVH~(UI}Zg^?Ll-oV+cNjOhyAW z1b#Y|kI^h0{2Yx}@yJ|I7c!cq-1-{W)iU(NLh$&$33&O%=i&KhpN2%LN0^ITu?%6n zFwsa@9Pd$Y-GcC-TeD%qdL|E9bW@3^K@SqXp$hDVsCd?xv6Y1t8i9O%I=2=gdrJ^` zb;85`PT!ob6g!;?XS#s9r!+!~=mPvvNFhTA0t!VPU%QOo_a46W7kJEj4~pm-Dufw= zZAzo0UG$`HN|l%tmZ5@ELamR$Jhi&I24~Nnhe9C_FCdcd?dyg2e*SAXdGRu=FD?T^ z5E>jAh6MWXZn+E`&wv6%9*Tbz7qg*)J^5?~))(fXzb665Uw#?B{nnfC^fOP3t9