diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000..9079579 Binary files /dev/null and b/favicon.ico differ diff --git a/index.html b/index.html new file mode 100644 index 0000000..3ac9d40 --- /dev/null +++ b/index.html @@ -0,0 +1,97 @@ +fishyue
\ No newline at end of file diff --git a/static/css/main.687f77fdea20bdad3b9ca120bc2f5962.css b/static/css/main.687f77fdea20bdad3b9ca120bc2f5962.css new file mode 100644 index 0000000..b643089 --- /dev/null +++ b/static/css/main.687f77fdea20bdad3b9ca120bc2f5962.css @@ -0,0 +1,2 @@ +.el-loading{z-index:999999}.el-table th{display:table-cell!important}.el-loading .el-loading-spinner{padding:7px;background:#ececec;width:200px;color:red;left:0;right:0;margin:0 auto;border-radius:5px;border:1px solid #a0a0a0}#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#2c3e50}#nprogress .bar{background:#fff;height:2px}.ivu-form .ivu-form-item-label{color:#2e2e2f}.grid-detail .el-table__fixed-body-wrapper{top:41px!important}#app,body,html{height:100%}*{box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.el-pager li{font-weight:100;margin-right:9px;border:1px solid #eee;border-radius:3px;min-width:28px}.el-pager li.active,.el-pager li:hover{background:#ed4014;color:#fff}.el-pagination__editor.el-input .el-input__inner{height:23px}.animated{animation-duration:.5s;animation-fill-mode:both}@media (prefers-reduced-motion),(print){.animated{animation:unset!important;transition:none!important}}@keyframes fadeInDown{0%{opacity:0;transform:translate3d(0,-100%,0)}to{opacity:1;transform:translateZ(0)}}.fadeInDown{animation-name:fadeInDown}.ivu-message{z-index:999999999!important}.ivu-form-item-content{text-align:left}.icons-item[data-v-bf012582]{float:left;margin:6px 6px 6px 0;width:145px;text-align:center;list-style:none;cursor:pointer;height:100px;color:#5c6b77;transition:all .2s ease;position:relative;padding-top:10px}.active[data-v-bf012582]{border:1px solid;background:#f44336;color:#fff;font-size:32px}.upload-container[data-v-d25a0afc]{display:inline-block;width:100%;padding:10px;border:1px dashed #2d8cf0;min-height:250px;border-radius:5px}.upload-container .alert[data-v-d25a0afc]{margin-top:43px}.upload-container .button-group>[data-v-d25a0afc]{float:left;margin-right:10px}.upload-container .file-info>span[data-v-d25a0afc]{margin-right:20px}.upload-container .v-r-message[data-v-d25a0afc]{margin-top:10px}.upload-container .v-r-message .title[data-v-d25a0afc]{margin-bottom:2px}.upload-container .v-r-message>.text[data-v-d25a0afc]{font-size:13px}.upload-container .v-r-message .v-r-success[data-v-d25a0afc]{color:#02b702}.upload-container .v-r-message .v-r-error[data-v-d25a0afc]{color:#dc0909}.upload-container .alert[data-v-dcf2f5da]{margin-top:43px}.upload-container .button-group>[data-v-dcf2f5da]{float:left;margin-right:10px}.upload-container .file-info>span[data-v-dcf2f5da]{margin-right:20px}.upload-container .img-selector i[data-v-dcf2f5da]{font-size:60px}.upload-container .imgs[data-v-dcf2f5da]{width:100%;display:inline-block}.upload-container .imgs .item[data-v-dcf2f5da]:hover{cursor:pointer}.upload-container .imgs .item:hover .remove[data-v-dcf2f5da]{display:block}.upload-container .imgs>.item[data-v-dcf2f5da]{position:relative;text-align:center;float:left;line-height:80px;margin-right:20px}.upload-container .imgs>.item .remove[data-v-dcf2f5da]{display:none;position:absolute;top:0;width:100%;line-height:20px;background:#9e9e9e;text-align:right;padding:5px 10px;opacity:.7;font-size:22px;color:#f56234}.upload-container .imgs>.item .remove i[data-v-dcf2f5da]{cursor:pointer}.upload-container .imgs .img-selector[data-v-dcf2f5da]{color:#9e9e9e;text-align:center;float:left}.upload-container .imgs .img-selector[data-v-dcf2f5da]:hover{cursor:pointer}.img-selector[data-v-dcf2f5da] .ivu-upload-select{border:1px dashed #2d8cf0}.t-tree[data-v-b719b222]{padding:100px}.action-group[data-v-b719b222]{width:100%;display:-ms-flexbox;display:flex}.action-text[data-v-b719b222]{margin-right:10px}.action-item[data-v-b719b222]{-ms-flex:1;flex:1}.action-item>label[data-v-b719b222]{width:80px}.rm-main[data-v-2273e12f]{display:-ms-flexbox;display:flex}.rm-main .rm-main-left[data-v-2273e12f]{-ms-flex:0.25;flex:0.25;padding:30px 35px;overflow:hidden;background:#eee}.rm-main .rm-main-right[data-v-2273e12f]{-ms-flex:0.8;flex:0.8;padding:35px 30px 10px 35px}.totop[data-v-2273e12f]{position:fixed;bottom:100px;right:40px;width:40px;height:40px;background-color:#fff;border-radius:50%;box-shadow:0 0 6px rgba(0,0,0,.12);cursor:pointer;z-index:5}.totop .el-icon-caret-top[data-v-2273e12f]{color:#fff;display:block;line-height:40px;text-align:center;font-size:18px}.totop:hover .el-icon-caret-top[data-v-2273e12f]{color:#39f}.right .right-top[data-v-2b8fc8bc]{color:#2894ff;text-align:center;letter-spacing:5px}.right .right-top h1[data-v-2b8fc8bc]{margin-top:10px;margin-bottom:0;font-weight:500;letter-spacing:5px}.right .right-top h3[data-v-2b8fc8bc]{margin:15px 0;font-size:20px;font-weight:500}.right .right-top .right-top__avatar[data-v-2b8fc8bc]{display:inline-block;width:200px;height:200px;border-radius:50%;background:#fff}.right .right-info[data-v-2b8fc8bc]{margin:70px 0;padding-left:20px}.right .right-skill[data-v-2b8fc8bc]{height:260px;text-align:center}.right .right-skill>p[data-v-2b8fc8bc]{margin:0;text-align:left}.right .right-skill a[data-v-2b8fc8bc]{text-decoration:none;border-bottom:1px solid #999;word-wrap:break-word;display:inline-block;margin:8px;font-size:12px;color:#9d9d9d;cursor:pointer}.right .right-skill a[data-v-2b8fc8bc]:active,.right .right-skill a[data-v-2b8fc8bc]:hover{outline:0;border-bottom-color:#222;color:#9d9d9d}.right .right-link[data-v-2b8fc8bc]{margin-top:50px;padding-left:20px}.right .right-link p[data-v-2b8fc8bc]{cursor:pointer}.right .right-link p img[data-v-2b8fc8bc]{width:24px;height:24px;vertical-align:top}.right .right-link p a[data-v-2b8fc8bc]{color:#2894ff;margin-left:10px}.right .right-link p[data-v-2b8fc8bc]:hover{color:#1e90ff}.right .right-link p:hover a[data-v-2b8fc8bc]{text-decoration:underline}.right .right-skills[data-v-2b8fc8bc]{margin:200px 0}.right .right-skills>p[data-v-2b8fc8bc]{margin:0;text-align:left}.right .right-skills a[data-v-2b8fc8bc]{text-decoration:none;border-bottom:1px solid #999;word-wrap:break-word;display:inline-block;margin:8px;font-size:12px;color:#9d9d9d;cursor:pointer}.right .right-skills a[data-v-2b8fc8bc]:active,.right .right-skills a[data-v-2b8fc8bc]:hover{outline:0;border-bottom-color:#222;color:#9d9d9d}.ivu-card-head p{color:#337ab7;font-weight:600}.bg-light-blue{background-color:#3c8dbc!important;color:#fff!important;font-weight:600;padding:5px;display:inline-block;background-color:#fff;border-radius:4px;font-family:Source Sans Pro,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif;margin-bottom:15px}.el-row{margin-bottom:20px}.el-col{border-radius:4px}.bg-purple-dark{background:#99a9bf}.bg-purple{background:#d3dce6}.bg-purple-light{background:#e5e9f2}.grid-content{border-radius:4px;min-height:36px}.row-bg{padding:10px 0;background-color:#f9fafc}body[data-v-204d69b0]{background-color:#fff}.middle-box[data-v-204d69b0]{text-align:center;padding-top:80px;height:100%}.middle-box h1[data-v-204d69b0]{font-size:140px;font-weight:100}.middle-box .back[data-v-204d69b0]{padding:10px}.view-container[data-v-3ab0f987]{background:#fff}.view-container .grid-search[data-v-3ab0f987]{padding-top:15px}.view-container .grid-body[data-v-3ab0f987],.view-container .grid-container[data-v-3ab0f987]{padding:0 15px}.view-container .view-header[data-v-3ab0f987]{padding-left:15px;padding-right:15px}.view-container .fs-line[data-v-3ab0f987]{height:10px;background:#eee;margin-top:-10px;margin-bottom:11px;border-top:1px solid #dadada;border-bottom:1px solid #dadada}.view-header[data-v-3ab0f987]{height:45px;position:relative;padding-bottom:11px;display:-ms-flexbox;display:flex}.view-header .search-line[data-v-3ab0f987]{width:180px}.view-header .search-line>div[data-v-3ab0f987]{margin-left:5px;margin-right:10px}.view-header .search-line>div>div[data-v-3ab0f987]{width:200px;text-align:left}.view-header .search-line>div[data-v-3ab0f987]:first-child{-ms-flex:1;flex:1}.view-header .search-line>div .ivu-select-dropdown[data-v-3ab0f987]{max-height:300px}.view-header .btn-group[data-v-3ab0f987]{white-space:nowrap}.view-header .btn-group button[data-v-3ab0f987]{margin-left:10px}.view-header .btn-group .dropdown[data-v-3ab0f987]{height:31px;padding-right:9px;padding-left:11px;border-top-right-radius:0;border-bottom-right-radius:0}.view-header .btn-group .r-dropdown[data-v-3ab0f987]{height:31px;margin-left:0;padding-left:5px;padding-right:5px;border-bottom-left-radius:0;border-left:1px solid #eee;border-top-left-radius:0}.view-header .btn-group .ivu-dropdown-item[data-v-3ab0f987]{text-align:left!important}.view-header .btn-group .ivu-dropdown-item[data-v-3ab0f987]:not(:last-child){border-bottom:1px dotted #eee}.view-header .desc-text[data-v-3ab0f987]{margin-top:5px;font-weight:700;margin-bottom:3px;font-size:14px;color:#313131;white-space:nowrap;border-bottom:2px solid #646565}.view-header .desc-text .ivu-icon[data-v-3ab0f987]{font-size:20px;bottom:2px;position:relative}.view-header .search-box[data-v-3ab0f987]{background:#fefefe;margin-top:45px;border:1px solid #ececec;position:absolute;z-index:999;left:0;right:0;padding:25px 40px;padding-bottom:0;box-shadow:0 7px 18px -12px #bdc0bb}.view-header .notice[data-v-3ab0f987]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;position:relative;top:12px;-ms-flex:1;flex:1;left:10px;margin-right:20px}.table-info-cell-title[data-v-3ab0f987]{background-color:#f5f5f5!important}.iview-com[data-v-3ab0f987]{background:#f3f3f3}.iview-com>div.item[data-v-3ab0f987]{margin-bottom:12px;background:#fff}.iview-com>div.form-item[data-v-3ab0f987]{padding:8px 16px 7px}.iview-com>div.table-item[data-v-3ab0f987]{padding:0 10px;border-top:1px solid #eee}.iview-com .v-text[data-v-3ab0f987]{line-height:27px}.iview-com .form-text[data-v-3ab0f987]{position:relative;border-bottom:1px solid #eee;font-size:14px;margin-bottom:14px}.iview-com .form-text .title[data-v-3ab0f987]{border-bottom:2px solid #00bcd4;color:#009688;font-weight:700;letter-spacing:1px;padding:6px 0}.iview-com .form-text .icon[data-v-3ab0f987]{color:#00bcd4;font-size:19px;position:relative;top:-1px}.form-closex[data-v-3ab0f987]{text-align:right;padding-bottom:24px}.form-closex button[data-v-3ab0f987]{margin-left:10px;padding:4px 13px}.toolbar[data-v-3ab0f987]{padding:3px 0;width:100%;display:-ms-flexbox;display:flex}.toolbar .title[data-v-3ab0f987]{line-height:29px;border-bottom:none;font-size:13px;font-weight:bolder;margin-bottom:0;color:#5d5c5c}.toolbar .title .icon[data-v-3ab0f987]{color:#009688;font-size:18px}.toolbar .title i[data-v-3ab0f987]{line-height:29px;border-bottom:none;font-weight:bolder;margin-bottom:0;color:#5d5c5c;position:relative;margin-top:-4px;font-size:14px}.toolbar .btns[data-v-3ab0f987]{line-height:28px;-ms-flex:1;flex:1;text-align:right;margin-right:12px}.toolbar .btns button[data-v-3ab0f987]{border:none;margin-left:15px;border:0;color:#009688}.toolbar .btns button[data-v-3ab0f987]:hover{color:#ff9800;border-color:#ff9800;border:none}.btn-group[data-v-3ab0f987] .ivu-select-dropdown{padding:0!important;right:3px}.btn-group[data-v-3ab0f987] .ivu-select-dropdown .ivu-dropdown-menu{min-width:100px;right:-2px;position:absolute;background:#fff;width:130px;border-radius:5px;border:1px solid #e7e5e5}.vertical-center-modal[data-v-3ab0f987] .srcoll-content{padding:0}.view-model-content[data-v-3ab0f987]{background:#eee}.grid-detail[data-v-3ab0f987] .v-table .el-table__header th{height:41px}.grid-search{position:relative}.grid-search .search-box{background:#fefefe;margin-top:45px;border:1px solid #ececec;position:absolute;z-index:999;left:15px;right:15px;padding:25px 20px;padding-bottom:0;box-shadow:0 7px 18px -12px #bdc0bb}.vol-table[data-v-e1b54b8e]{position:relative}.vol-table .mask[data-v-e1b54b8e]{opacity:.2;position:absolute;width:100%;height:100%;background:#d0d0d0;z-index:100}.vol-table .message[data-v-e1b54b8e]{text-align:center;color:#635c5c;font-size:15px;font-weight:600;background:#eee;transform:translateY(-50%);top:50%;position:absolute;z-index:200;left:0;right:0;width:150px;margin:0 auto;line-height:40px;border-radius:4px;border:1px solid #a09e9e}.e-item[data-v-e1b54b8e]{display:-ms-flexbox;display:flex}.e-item>div[data-v-e1b54b8e]:first-child{-ms-flex:1;flex:1}.pagination[data-v-e1b54b8e]{text-align:right;padding:2px 28px;border:1px solid #eee;border-top:0}.v-table[data-v-e1b54b8e] .el-table__header th{padding:0!important;background-color:#f8f8f9!important;font-size:13px;height:42px;color:#616161}.v-table[data-v-e1b54b8e] .el-table__header th.is-sortable{padding:3px!important}.vol-table.text-inline[data-v-e1b54b8e] .el-table__body .cell{word-break:inherit!important;white-space:nowrap!important}.v-table[data-v-e1b54b8e] .el-table__body td{padding:9px 0!important}.v-table[data-v-e1b54b8e] .el-table__footer td{padding:7px 0!important}.vol-table[data-v-e1b54b8e] .el-table-column--selection .cell{display:inline}.vol-table.text-inline[data-v-e1b54b8e] .el-table th>.cell{white-space:nowrap!important}.vol-table[data-v-e1b54b8e] .el-table__body-wrapper::-webkit-scrollbar{width:10px;height:10px}.vol-table[data-v-e1b54b8e] .el-table__body-wrapper::-webkit-scrollbar-thumb{border-radius:5px;background:#ddd}.vol-table .table-img[data-v-e1b54b8e]{height:40px;border-radius:5px;margin-right:10px;width:40px;-o-object-fit:cover;object-fit:cover}.vol-table .table-img[data-v-e1b54b8e]:hover{cursor:pointer}.v-table[data-v-e1b54b8e] .ivu-tag-default{border:none!important;background:none!important}.v-table[data-v-e1b54b8e] .el-table__fixed:before{border-color:none!important}.chrome[data-v-e1b54b8e] .el-table__fixed{height:calc(100% - 11px)!important;background:#fff}.chrome[data-v-e1b54b8e] .el-table__body-wrapper::-webkit-scrollbar{width:11px;height:11px}.chrome[data-v-e1b54b8e] .el-table__body-wrapper::-webkit-scrollbar-thumb{border-radius:5px;background:#ddd}.chrome[data-v-e1b54b8e] .el-table__fixed:before{background-color:unset}.chrome[data-v-e1b54b8e] .el-table__fixed-footer-wrapper{bottom:-11.5px}.ivu-date-picker{width:100%}.readonly-input[data-v-f7198d8e] input{box-shadow:none;border:0}.line-row[data-v-f7198d8e] .ivu-select .ivu-select-dropdown{width:100%!important;z-index:99999}.line-row[data-v-f7198d8e] .ivu-form-item img{max-height:100px}.line-row[data-v-f7198d8e] .ivu-form-item-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.form-imgs[data-v-f7198d8e]{display:inline-block}.form-imgs .img-item[data-v-f7198d8e]{position:relative;cursor:pointer;margin:0 10px 10px 0;float:left;height:100px;border:1px solid #9e9e9e;overflow:hidden;border-radius:5px;width:100px}.form-imgs img[data-v-f7198d8e]{margin:0;padding:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.form-item-extra[data-v-f7198d8e]{display:-ms-flexbox;display:flex}.form-item-extra>div[data-v-f7198d8e]:first-child{-ms-flex:1;flex:1}.form-item-extra .form-extra[data-v-f7198d8e]{margin-left:10px}h1[data-v-a85650a6],h2[data-v-a85650a6]{font-weight:400}ul[data-v-a85650a6]{list-style-type:none;padding:0}li[data-v-a85650a6]{display:inline-block;margin:0 10px}a[data-v-a85650a6]{color:#42b983}.upload-list[data-v-6a8822d0]{list-style:none}.upload-list .list-file[data-v-6a8822d0]{padding:4px;color:#515a6e;border-radius:4px;transition:background-color .2s ease-in-out;overflow:hidden;position:relative;font-size:13px}.upload-list .list-file .file-remove[data-v-6a8822d0]{display:none;right:0;color:#0e9286}.upload-list .list-file[data-v-6a8822d0]:hover{cursor:pointer;color:#2d8cf0}.upload-list .list-file:hover .file-remove[data-v-6a8822d0]{display:initial}.upload-container[data-v-6a8822d0]{display:inline-block;width:100%;border-radius:5px}.upload-container .alert[data-v-6a8822d0]{margin-top:43px}.upload-container .button-group>[data-v-6a8822d0]{float:left;margin-right:10px}.upload-container .file-info>span[data-v-6a8822d0]{margin-right:20px}.upload-img[data-v-6a8822d0]{display:inline-block}.upload-img .img-item:hover .operation[data-v-6a8822d0]{display:block}.upload-img .img-item[data-v-6a8822d0],.upload-img .img-selector[data-v-6a8822d0]{position:relative;cursor:pointer;margin:0 10px 10px 0;float:left;width:70px;height:70px;border:1px solid #c7c7c7;overflow:hidden;border-radius:5px}.upload-img .img-item img[data-v-6a8822d0],.upload-img .img-selector img[data-v-6a8822d0]{margin:0;padding:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.upload-img .img-item .operation[data-v-6a8822d0],.upload-img .img-selector .operation[data-v-6a8822d0]{display:none;position:absolute;top:0;bottom:0;left:0;right:0}.upload-img .img-item .operation .action[data-v-6a8822d0],.upload-img .img-selector .operation .action[data-v-6a8822d0]{opacity:.6;text-align:right;background:#727779;font-size:17px;position:absolute;z-index:90;width:100%;bottom:3px;bottom:0;color:#ded5d5;padding-right:7px;padding-bottom:3px;line-height:23px}.upload-img .img-item .operation .mask[data-v-6a8822d0],.upload-img .img-selector .operation .mask[data-v-6a8822d0]{opacity:.6;background:#9e9e9e;top:0;width:100%;height:100%;position:absolute}.upload-img .img-selector[data-v-6a8822d0]{font-size:50px;text-align:center}.upload-img .img-selector i[data-v-6a8822d0]{top:-4px;position:relative}.upload-img .auto-selector .selector[data-v-6a8822d0]{line-height:64px}.upload-img .selector[data-v-6a8822d0]{color:#a0a0a0}.upload-img .submit-selector .s-btn[data-v-6a8822d0]{line-height:22px;font-size:12px;top:-7px;position:relative;background:#2db7f5;color:#fff}.upload-img .submit-selector .selector[data-v-6a8822d0]{line-height:50px}.upload-img .submit-selector .readonly[data-v-6a8822d0]{background:#8c8c8c}.big-model[data-v-6a8822d0]{width:100%;height:100%;position:relative}.big-model .mask[data-v-6a8822d0]{opacity:.6;background:#eee;top:0;width:100%;height:100%;position:absolute}.auto-upload[data-v-6a8822d0]{z-index:9999999;width:100%;height:100%;position:fixed;top:0;left:0}.auto-upload .j-content[data-v-6a8822d0]{text-align:center;font-size:17px;top:40%;position:absolute;z-index:999;left:0;right:0;width:240px;margin:auto;background:#fff;line-height:50px;border-radius:6px;border:1px solid #d2d2d2}.auto-upload .mask[data-v-6a8822d0]{cursor:pointer;opacity:.6;width:100%;height:100%;background:#101010}.iview-com[data-v-2171a189]{padding:15px 25px 15px 15px}.vertical-center-modal{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.vertical-center-modal .ivu-modal{top:0}.vertical-center-modal .ivu-modal-close .ivu-icon-ios-close{color:#fff}.vertical-center-modal .view-model-content{min-height:180px}.vertical-center-modal .srcoll-content{height:100%;word-break:break-all}.vertical-center-modal .ivu-modal-body{padding:0}.vertical-center-modal .ivu-modal-header{border-top-left-radius:6px;border-top-right-radius:6px;padding:12px 15px;background-image:linear-gradient(135deg,#0cd7bd 10%,#57c5f7)}.vertical-center-modal .ivu-modal-footer{padding:5px 10px}.vertical-center-modal .ivu-modal-footer button{padding:4px 18px}.vertical-center-modal .header{color:#fff}.view-model-content[data-v-f95c9282] .el-scrollbar>.el-scrollbar__wrap{overflow-x:hidden}h3[data-v-46457e9c]{font-weight:500}h3>span[data-v-46457e9c]:last-child{margin-left:30px}h3[data-v-4f29e350],h3[data-v-04854a50]{font-weight:500;padding-left:10px;background:#fff;margin-top:10px;padding-top:6px;padding-bottom:5px}.vol-tabs[data-v-707b4ec3]{background:#fff}.tabs1-header[data-v-707b4ec3]{display:-ms-flexbox;display:flex;text-align:right;padding:10px}.tabs1-header .btn-group[data-v-707b4ec3]{-ms-flex:1;flex:1}.app-container[data-v-c044db96]{height:100%;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.app-container .content[data-v-c044db96]{-ms-flex:1;flex:1;overflow:scroll;background:#eaeaea}.app-container .footer[data-v-c044db96]{height:3.7rem;border:1px solid #eee}.app-container .footer>a[data-v-c044db96]{float:left;width:25%;padding:.3rem;text-align:center;color:#7c7979}.app-container .footer>a>i[data-v-c044db96]{font-size:1.8rem}.active[data-v-c044db96]{color:#fc0000!important}.home[data-v-31946acd]{background:#f9f8f8;height:100%}.home-content[data-v-31946acd]{margin-top:42px;overflow-y:auto}.carouse[data-v-31946acd]{height:180px}.carouse img[data-v-31946acd]{height:100%;width:100%}.head[data-v-31946acd]{width:100%;padding:.6rem;background:#fff;display:inline-block;border-bottom:1px solid #eee;top:0;position:fixed;z-index:100}.head>div[data-v-31946acd]{float:left;width:33.3333%}.head .location .ivu-dropdown[data-v-31946acd]{top:5px;position:relative}.head .text[data-v-31946acd]{text-align:center;font-size:1rem;color:#228b22}.head .search[data-v-31946acd]{text-align:right;font-size:1.1rem;color:#228b22}.title[data-v-31946acd]{padding:.6rem}.icon-item[data-v-31946acd]{width:100%;display:inline-block;position:relative;background:#fff;border:1px solid #eee}.icon-item>a[data-v-31946acd]{float:left;width:25%;padding:.6rem .3rem;text-align:center;color:#7c7979;border:1px solid #f1eded}.icon-item>a>i[data-v-31946acd]{font-size:1.8rem}.head[data-v-31946acd] input{border-radius:20px}.cow-container[data-v-2600241c]{height:100%}.cow-top[data-v-2600241c]{background:#fff;display:inline-block;width:100%;padding:0 4px}.cow-top>div[data-v-2600241c]{float:left;width:49%;text-align:left}.cow-top>div[data-v-2600241c]:first-child{background:#57a3f3;padding:10px;color:#fff;border-radius:5px;margin-right:2%}.cow-top>div[data-v-2600241c]:last-child{background:#ff4081;padding:10px;color:#fff;border-radius:5px}.cow-top>div .text[data-v-2600241c]{font-size:20px}.cow-top>div .desc[data-v-2600241c]{font-size:12px}.cow-choiceness .star[data-v-2600241c],.cow-hot .hot[data-v-2600241c]{color:#f5f5f56b;position:relative;float:right;top:-5px;right:-5px;margin-top:-54px;font-size:46px;border:0}.item-head[data-v-2600241c]{border-bottom:1px solid #eee;margin-bottom:12px;text-align:left}.item-head img[data-v-2600241c]{height:25px;width:25px;border-radius:50%;margin-right:10px}.item-head span[data-v-2600241c]{position:relative;top:-5px;font-size:15px}.item-head .focus[data-v-2600241c]{position:relative;top:0;font-size:15px;float:right;padding:0 10px;border-radius:15px;border:1px solid #f9d9d9;color:#f44336}.item-imgs[data-v-2600241c]{max-height:180px;line-height:25px;overflow:hidden}.item-imgs .img1[data-v-2600241c]{width:100%}.item-imgs .img2[data-v-2600241c]{width:49%;height:120px}.item-imgs .img3[data-v-2600241c]{width:32%;height:75px}.item-imgs .img2[data-v-2600241c]:first-child,.item-imgs .img3[data-v-2600241c]:first-child{margin-right:2%}.item-imgs .img3[data-v-2600241c]:last-child{margin-left:2%}.cow-item[data-v-2600241c]{background:#fff;padding:10px;margin-bottom:8px}.cow-item[data-v-2600241c]:hover{cursor:pointer}.item-imgs[data-v-2600241c]{margin-top:9px}.item-content[data-v-2600241c]{letter-spacing:1.2px;text-align:left;color:#8b8787}.item-content .title[data-v-2600241c]{font-size:15px;color:#353535}.item-content .all-text[data-v-2600241c]{color:blue}.cow-list[data-v-2600241c]{border:1px solid #eee}.head[data-v-0940e89a]{top:0;position:fixed;background:#03a9f4;padding:.8rem;font-size:1rem;color:#fff;width:100%;z-index:999}.content[data-v-0940e89a]{margin-top:60px}.question-container[data-v-7c57af51]{height:100%;border:1px solid #eee}.best-user[data-v-7c57af51]{width:100%;display:inline-block;background:#fff;padding:10px}.best-user .title[data-v-7c57af51]{text-align:left;font-size:15px;color:#2196f3}.best-user .title span[data-v-7c57af51]{border-bottom:1px solid;padding-bottom:4px}.header img[data-v-7c57af51]{height:40px;width:40px;border-radius:50%}.user-list[data-v-7c57af51]{margin-top:20px;width:100%;display:inline-block}.user-list .user[data-v-7c57af51]{text-align:center;float:left;width:33.333%}.user-info[data-v-7c57af51]{font-size:12px}.user-index[data-v-7c57af51]{padding:1px 5px;border:0;border-radius:50%;color:#fff;background:#ff9800;margin:1px}.user-info .user-name[data-v-7c57af51]{font-size:13px}.user-info .user-text[data-v-7c57af51]{letter-spacing:1.5px;color:#8f8e8e}.user-line1[data-v-7c57af51]{color:#f44336}.user-line1 .user-index[data-v-7c57af51]{background:#f44336;color:#fff}.user-line2[data-v-7c57af51]{color:#ff9800}.user-line2 .user-index[data-v-7c57af51]{background:#ff9800;color:#fff}.user-line3[data-v-7c57af51]{color:#2196f3}.user-line3 .user-index[data-v-7c57af51]{background:#2196f3;color:#fff}.all-ask[data-v-7c57af51]{margin-top:10px;background:#fff;padding:10px}.all-ask .title[data-v-7c57af51]{padding:5px;font-size:15px;color:#9c27b0}.all-ask .title span[data-v-7c57af51]{border-bottom:1px solid;padding-bottom:4px}.ask-list li[data-v-7c57af51]{color:#757474;list-style:none;padding:7px;border-bottom:1px solid #eee}.ask-list li span[data-v-7c57af51]{color:#454b4b;float:right;font-size:18px;margin-top:-3px}.question-group[data-v-7c57af51]{border-bottom:1px solid #eee;background:#fff;padding:20px 10px}.question-group .title[data-v-7c57af51]{padding-bottom:5px;font-size:16px;text-align:left}.question-group .q-imgs[data-v-7c57af51]{margin-top:10px}.question-group .q-imgs img[data-v-7c57af51]{width:32%;height:75px;margin-right:1.333%}.question-group .q-user-info[data-v-7c57af51]{padding:5px;color:#b6b4b4;text-align:left}.question-group .q-user-info img[data-v-7c57af51]{font-size:12px;color:#757474;height:25px;width:25px;border-radius:50%;position:relative;top:7px}.q-user-info .q-date[data-v-7c57af51]{margin-left:40px}.q-user-info .q-reply[data-v-7c57af51]{position:relative;float:right;top:8px}.ask-btn[data-v-7c57af51]{position:fixed;right:20px;color:#9e9e9e}.ask-btn i[data-v-7c57af51]{position:fixed;font-size:30px;right:20px;border:1px solid;border-radius:50%}.ask-split-title[data-v-7c57af51]{margin-top:10px;text-align:left;background:#eee;padding:10px 15px;color:#909399}.head[data-v-c98378ba]{top:0;position:fixed;background:#03a9f4;padding:.8rem;font-size:1rem;color:#fff;width:100%;z-index:999}.content[data-v-c98378ba]{margin-top:50px}.com-container[data-v-22aba3b2]{border:1px solid #eee;overflow:hidden;height:100%}.com-body[data-v-22aba3b2]{width:100%;height:calc(100% - 3rem);background:#fff;position:relative}.com-body>div[data-v-22aba3b2]{height:100%;display:inline-block;width:100%}.com-body[data-v-22aba3b2] .vux-slider{height:100%;width:100%;background:#f4f4f4}.com-body[data-v-22aba3b2] .vux-swiper{height:calc(100% - 44px)!important;overflow-y:scroll}.mu-tabs[data-v-22aba3b2]{background:#fff;border-bottom:1px solid #e2dfdf}.com-head[data-v-22aba3b2]{background:#12cce4;padding:8px;color:#fff;height:3rem}.com-head i[data-v-22aba3b2]{top:4px;position:relative;margin-right:24px}.com-head span[data-v-22aba3b2]{font-size:1.4rem}.info-item[data-v-22aba3b2]{padding:15px 17px;background:#fff;border-bottom:1px solid #eee}.info-item[data-v-22aba3b2]:hover{cursor:pointer}.info-item .info-title[data-v-22aba3b2]{text-align:left;font-size:1rem;color:#828282;display:inline-block;width:100%}.info-item .info-foot[data-v-22aba3b2]{color:#b5b5b5;text-align:left}.info-item .info-foot img[data-v-22aba3b2]{position:relative;height:24px;width:24px;top:5px;border-radius:50%}.info-item .info-foot .date[data-v-22aba3b2]{position:relative;float:right;top:7px}.info-img[data-v-22aba3b2]{padding-right:5px;float:left;width:calc(100% - 100px)}.single-img[data-v-22aba3b2]{max-width:100px;float:left}.single-img>img[data-v-22aba3b2]{height:65px;border-radius:4px}.img-group[data-v-22aba3b2]{padding-top:10px}.img-group img[data-v-22aba3b2]{height:65px;width:32%;border-radius:4px}.img-group img[data-v-22aba3b2]:first-child{margin-right:2%}.img-group img[data-v-22aba3b2]:last-child{margin-left:2%}.flag[data-v-22aba3b2]{background:#e43700;padding:4px 14px 3px;color:#fff;border-radius:3px;font-size:12px;margin-left:80px}.topic-container[data-v-0bae55b0]{height:100%}.topic-item[data-v-0bae55b0]{background:#fff;margin:10px;box-shadow:2px 2px 10px #d0d0d0;border-radius:5px;padding:12px;padding-bottom:9px}.t-imgs img[data-v-0bae55b0]{height:65px;width:32%;border-radius:4px}.t-img-group img[data-v-0bae55b0]:first-child{margin-right:2%}.t-img-group img[data-v-0bae55b0]:last-child{margin-left:2%}.topic-item .t-head[data-v-0bae55b0]{padding:5px}.topic-item .t-title[data-v-0bae55b0]{font-size:20px;color:#3c3c3c}.topic-item .t-date[data-v-0bae55b0]{font-size:12px;float:right;margin-top:9px;color:#ff9800}.topic-item .t-foot[data-v-0bae55b0]{padding-top:5px}.topic-item .t-content[data-v-0bae55b0]{padding:0 5px 8px;font-size:17px;color:#9e9e9e}.topic-item .t-foot i[data-v-0bae55b0]{padding:3px 2px 0;font-size:19px!important}.topic-item .t-foot i[data-v-0bae55b0]:last-child{float:right}.head[data-v-3bc86c96]{top:0;position:fixed;background:#03a9f4;padding:.8rem;font-size:1rem;color:#fff;width:100%;z-index:999}.info[data-v-3bc86c96]{margin-top:50px;padding:1rem;background:#fff;color:#ff9800;font-size:16px;display:inline-block;width:100%}.info>div[data-v-3bc86c96]{float:left}.info>div[data-v-3bc86c96]:last-child{line-height:2.2rem;margin-left:2rem}.info img[data-v-3bc86c96]{height:70px;width:70px;border-radius:50%;margin-right:0;top:4px;position:relative;border:2px solid #eaeaea}.list[data-v-3bc86c96]{margin-top:.6rem;background:#fff;width:100%;display:inline-block}.list .row[data-v-3bc86c96]{cursor:pointer;width:100%;padding:.9rem;border-bottom:1px solid #f3f3f3;display:-ms-flexbox;display:flex}.list .row .text[data-v-3bc86c96]{font-size:.9rem}.list .row .text i[data-v-3bc86c96]{position:relative;font-size:1.3rem}.list .row>div[data-v-3bc86c96]:last-child{-ms-flex:1;flex:1;text-align:right}.app-guide[data-v-b9e4d02a]{position:absolute;width:900px;left:0;right:0;margin:0 auto;padding:20px}.app-guide .img-item[data-v-b9e4d02a]{margin-top:25px;background:#fbfbfb;display:inline-block;padding:28px;border:1px solid #eee;border-radius:5px}.app-guide .img-item>img[data-v-b9e4d02a]:first-child{margin-right:3%}.app-guide .img-item img[data-v-b9e4d02a]{width:48.5%;float:left}.app-guide .guide[data-v-b9e4d02a]{display:-ms-flexbox;display:flex}.app-guide .guide h3[data-v-b9e4d02a]{text-align:center}.app-guide .guide .desc[data-v-b9e4d02a]{-ms-flex:1;flex:1;margin-left:56px}.app-guide .guide .desc .content[data-v-b9e4d02a]{letter-spacing:1.8px}.single-form[data-v-d93841c0]{position:relative;max-width:600px;padding:30px 45px;left:0;margin:auto}.v-table[data-v-ff106afc] .container{padding:0!important}.v-header[data-v-e96290e8]{display:-ms-flexbox;display:flex;border-bottom:1px solid #dcdee2}.v-header .v-left-text[data-v-e96290e8]{margin-top:3px;padding-bottom:3px;font-weight:700;font-size:14px;color:#464646;white-space:nowrap;border-bottom:2px solid #464646}.v-header .v-left-text .tx-icon[data-v-e96290e8]{position:relative;bottom:-1px}.v-header .v-left-text>span[data-v-e96290e8]{position:relative;top:2px;margin-left:-3px}.v-header .content[data-v-e96290e8]{line-height:25px;padding-left:10px;padding:6px 0 0 10px}.v-header .v-right-content[data-v-e96290e8]{-ms-flex:1;flex:1}.layout-content[data-v-5e3d7b0f]{display:-ms-flexbox;display:flex}.layout-content .layout-left[data-v-5e3d7b0f]{width:200px;margin-right:10px}.layout-content .layout-right[data-v-5e3d7b0f]{-ms-flex:1;flex:1}.com>div[data-v-5e3d7b0f]{margin-top:30px}.d-group[data-v-5e3d7b0f]{display:inline-block;width:100%}.d-group>div[data-v-5e3d7b0f]{float:left;width:49%}.d-group>div[data-v-5e3d7b0f]:first-child{margin-right:2%}.on-icon[data-v-5e3d7b0f]{line-height:20px;position:relative}.on-icon .remove[data-v-5e3d7b0f]{display:none;color:red;right:7px;position:absolute;top:-14px;font-size:13px}.on-icon[data-v-5e3d7b0f]:hover{cursor:pointer}.on-icon:hover .remove[data-v-5e3d7b0f]{display:block}.layout-content[data-v-5e3d7b0f] .ivu-menu{width:200px!important}.icons-item[data-v-ebbd7478]{float:left;margin:6px 6px 6px 0;width:115px;text-align:center;list-style:none;cursor:pointer;height:100px;color:#5c6b77;transition:all .2s ease;position:relative;padding-top:10px}.active[data-v-ebbd7478]{border:1px solid;background:#f44336;color:#fff;font-size:32px}.t-dis[data-v-8a4b7e7a]{box-shadow:0 4px 21px #d6d6d6;margin-bottom:15px;background:#fff;border:1px solid #eaeaea;padding:5px;border-radius:5px}.upload-container[data-v-4df0acf9]{max-height:160px;display:-ms-flexbox;display:flex}.upload-container .upload-item[data-v-4df0acf9]{-ms-flex:1;flex:1;padding:20px}.upload-container[data-v-276cf89a]{padding:10px 15px}.upload-container[data-v-276cf89a] .img-item,.upload-container[data-v-276cf89a] .img-item img{width:70px!important;height:70px!important}.content[data-v-022189a1]{padding:15px;min-height:400px;background:#fff}.v-kind[data-v-022189a1]{display:-ms-flexbox;display:flex}.v-kind>label[data-v-022189a1]{color:#939394;padding:10px 12px 10px 0;text-align:right;width:90px;line-height:300px}.v-kind>div[data-v-022189a1]{-ms-flex:1;flex:1}.com-container[data-v-10666c3b]{overflow:visible;left:0;margin:0 auto;right:0;display:-ms-flexbox;display:flex;max-width:1200px;height:100%;position:relative;padding:20px}.com-body[data-v-10666c3b] .vux-slider{height:100%;width:100%;background:#f4f4f4}.com-body[data-v-10666c3b] .vux-swiper{height:calc(100% - 44px)!important;overflow-y:scroll}.mu-tabs[data-v-10666c3b]{background:#fff;border-bottom:1px solid #e2dfdf}.com-head[data-v-10666c3b]{background:#12cce4;padding:8px;color:#fff;height:3rem}.com-head i[data-v-10666c3b]{top:4px;position:relative;margin-right:24px}.com-head span[data-v-10666c3b]{font-size:1.4rem}.info-item[data-v-10666c3b]{margin-bottom:20px;padding:15px 20px;background:#fff;border-bottom:1px solid #eee}.info-item .info-title[data-v-10666c3b]:hover{color:#0776ce;cursor:pointer}.info-item .info-title[data-v-10666c3b]{text-align:left;font-size:1rem;color:#404040;display:inline-block;width:100%}.info-item .info-foot[data-v-10666c3b]{line-height:30px;color:#9c9b9b;text-align:left}.info-item .info-foot img[data-v-10666c3b]{position:relative;height:24px;width:24px;top:5px;border-radius:50%}.info-item .info-foot .date[data-v-10666c3b]{position:relative;float:right;top:7px}.info-img[data-v-10666c3b]{padding-right:5px;float:left;width:calc(100% - 150px)}.single-img[data-v-10666c3b]{float:left}.single-img>img[data-v-10666c3b]{-o-object-fit:cover;object-fit:cover;width:150px;height:80px;border-radius:4px}.img-group[data-v-10666c3b]{padding-top:10px}.img-group img[data-v-10666c3b]{height:90px;width:32%;border-radius:4px;margin:0;padding:0;-o-object-fit:cover;object-fit:cover}.img-group img[data-v-10666c3b]:first-child{margin-right:2%}.img-group img[data-v-10666c3b]:last-child{margin-left:2%}.flag[data-v-10666c3b]{background:#e43700;padding:4px 14px 3px;color:#fff;border-radius:3px;font-size:12px;margin-left:80px}.author[data-v-10666c3b]{margin-left:10px;margin-right:20px}.list[data-v-10666c3b]{background:#fff;margin:0 30px;-ms-flex:1;flex:1;padding-top:15px;border-radius:5px;border-left:1px solid #e2dfdf;border-right:1px solid #e2dfdf}.validator[data-v-ee09996c]{text-align:center;padding:10px 30px}.general[data-v-ee09996c],.object-model[data-v-ee09996c]{display:inline-block}.general>div[data-v-ee09996c],.object-model>div[data-v-ee09996c]{width:300px;float:left;margin-right:50px}.general .btn[data-v-ee09996c],.general .v-input[data-v-ee09996c],.object-model .btn[data-v-ee09996c],.object-model .v-input[data-v-ee09996c]{margin-top:20px}.general .btn[data-v-ee09996c],.object-model .btn[data-v-ee09996c]{padding-right:4px;padding-left:13px}.general .require[data-v-ee09996c],.object-model .require[data-v-ee09996c]{color:red;position:relative;top:2px;margin-right:5px}.general label[data-v-ee09996c],.object-model label[data-v-ee09996c]{display:inline-block;width:60px;text-align:right}.object-model[data-v-ee09996c]{margin-top:40px}h2[data-v-ee09996c]{font-size:16px;text-align:left;font-weight:500;padding-left:14px}.com-tree[data-v-131ef25b]{display:-ms-flexbox;display:flex}.com-tree>.left-tree[data-v-131ef25b]{width:215px}.com-tree>.right-table[data-v-131ef25b]{-ms-flex:1;flex:1}.com-el-tree[data-v-f67b8d8c]{display:inline-block;width:210px}.com-el-tree .el-role-tree[data-v-f67b8d8c]{position:absolute;padding:5px 0;top:45px;bottom:0;border-right:1px solid #eee}.com-el-tree .actived[data-v-f67b8d8c]{color:#5884ff;font-size:15px}.com-el-tree .action-text[data-v-f67b8d8c]{font-size:14px}.role-list[data-v-f67b8d8c]{color:#fff;line-height:44px;background:#1a89ff;padding:0 13px;font-size:16px;position:absolute;top:2px;width:210px}.com-el-tree[data-v-f67b8d8c] .el-tree-node{padding:3px 0}.com-el-tree[data-v-f67b8d8c] .el-scrollbar .el-scrollbar__thumb{width:0!important}.com-tree[data-v-4731f913]{display:-ms-flexbox;display:flex}.com-tree>.left-tree[data-v-4731f913]{width:215px}.com-tree>.right-table[data-v-4731f913]{-ms-flex:1;flex:1}.com-el-tree[data-v-79773669]{display:inline-block;width:210px}.com-el-tree .el-role-tree[data-v-79773669]{position:absolute;padding:5px 0;top:45px;bottom:0;border-right:1px solid #eee}.com-el-tree .actived[data-v-79773669]{color:#5884ff;font-size:15px}.com-el-tree .action-text[data-v-79773669]{font-size:14px}.role-list[data-v-79773669]{color:#fff;line-height:44px;background:#1a89ff;padding:0 13px;font-size:16px;position:absolute;top:2px;width:210px}.com-el-tree[data-v-79773669] .el-tree-node{padding:3px 0}.com-el-tree[data-v-79773669] .el-scrollbar .el-scrollbar__thumb{width:0!important}.container[data-v-4f83b774]{background:#fff;margin-top:20px;padding:15px;border:1px solid #b7c5cc}.header[data-v-4f83b774]{display:-ms-flexbox;display:flex;margin-bottom:10px}.header .text[data-v-4f83b774]{line-height:30px;border-bottom:2px solid #607d8b;font-size:16px;font-weight:500}.header .btns[data-v-4f83b774]{-ms-flex:1;flex:1;text-align:right}.m-step[data-v-4977727d]{padding:20px 112px;background:#fff;margin:20px 0}.m-tabs[data-v-4977727d]{padding:12px 15px;margin:20px 0;background:#fff}.m-tabs[data-v-4977727d] .container{padding:0;border:0;margin:0}.tb-3[data-v-4977727d] .container{padding-top:0!important}.m-chart[data-v-8ad7842e]{margin-top:20px;background:#fff}.chart-t[data-v-8ad7842e]{display:-ms-flexbox;display:flex}.chart-t>div[data-v-8ad7842e]{padding:10px;margin:10px;-ms-flex:1;flex:1}.m-charts[data-v-0ae6d2f2]{background:#f1f1f1;padding:20px}.m-charts .m-tabs[data-v-0ae6d2f2]{background:#fff}.c-container[data-v-346190ed]{background:#f1f1f1;padding:10px}.c-container .item[data-v-346190ed]{display:-ms-flexbox;display:flex}.c-container .item>div[data-v-346190ed]{-ms-flex:1;flex:1;margin:10px;background:#fff}.home-contianer[data-v-3e5cab89]{background:#efefef;width:100%;height:100%}.ivu-card-body[data-v-3e5cab89]{text-align:center;padding:20px 5px;font-size:16px}.demo-color-name[data-v-3e5cab89]{color:#fff;font-size:14px}.demo-color-desc[data-v-3e5cab89]{color:#fff;font-size:20px;margin-top:2px}.ivu-card[data-v-3e5cab89]{box-shadow:0 3px 13px hsla(0,1%,45%,.47);display:-ms-flexbox;display:flex;position:relative}.ivu-card .icon-left[data-v-3e5cab89]{width:85px}.ivu-card .ivu-card-body[data-v-3e5cab89]{-ms-flex:1;flex:1}.ivu-card .icon-left[data-v-3e5cab89]{text-align:center;border-right:1px solid;padding:8px 0;height:100%;font-size:50px;color:#fff}.ivu-row[data-v-3e5cab89]{border-bottom:2px dotted #eee;padding:15px;margin-bottom:15px;display:-ms-flexbox;display:flex}.ivu-row>div[data-v-3e5cab89]{-ms-flex:1;flex:1}.h5-desc[data-v-3e5cab89]{padding-top:10px}.jn-day-total[data-v-3e5cab89]{display:-ms-flexbox;display:flex;padding:15px;background:#fff}.jn-day-total .date-text[data-v-3e5cab89]{line-height:36px;padding:0 15px}.jn-day-total .date[data-v-3e5cab89]{margin-right:20px}.jn-day-total .btn[data-v-3e5cab89]{margin-left:10px}.order-title h2[data-v-3e5cab89]{padding:7px 15px;font-weight:500;background:#fff;border-bottom:1px dotted #d4d4d4}.order-range[data-v-3e5cab89]{padding:0 15px;background:#fff;display:-ms-flexbox;display:flex}.order-range .order-item[data-v-3e5cab89]{box-shadow:0 3px 13px hsla(0,1%,45%,.47);-ms-flex:1;flex:1;border-radius:6px;font-size:14px;text-align:center;border:1px solid #e6e6e6;margin:7px}.order-range .total[data-v-3e5cab89]{color:#fff;font-size:50px;font-weight:700;line-height:100px;background:#55ce80;font-family:Helvetica Neue,Helvetica,PingFang SC,Hiragino Sans GB,Microsoft YaHei,\\5FAE\8F6F\96C5\9ED1,Arial,sans-serif}.order-range .number[data-v-3e5cab89]{transition:transform .8s}.order-range .number[data-v-3e5cab89]:hover{cursor:pointer;transform:scale(1.2)}.order-range .name[data-v-3e5cab89]{font-size:20px;padding:10px}.order-range .date[data-v-3e5cab89]{padding:1px 0 20px;color:#9e9e9e;font-size:13px}.numbers[data-v-3e5cab89]{margin-bottom:15px;border-radius:5px;border:1px solid #eaeaea;background:#fff;display:-ms-flexbox;display:flex;padding:20px 0}.numbers .item[data-v-3e5cab89]{-ms-flex:1;flex:1;text-align:center;border-right:1px solid #e5e5e5}.numbers .item>div[data-v-3e5cab89]:first-child{word-break:break-all;color:#282727;font-size:30px}.numbers .item>div[data-v-3e5cab89]:last-child{font-size:13px;color:#777}.numbers .item[data-v-3e5cab89]:last-child{border-right:none}.numbers .number[data-v-3e5cab89]{cursor:pointer;transition:transform .8s}.numbers .number[data-v-3e5cab89]:hover{transform:scale(1.2);color:#03c10b!important}.tb[data-v-4038aaf8]{padding:0 20px;margin-top:20px}.v-header[data-v-4038aaf8]{background:#fff;padding:10px}.keep-edit[data-v-4038aaf8] .img-btn,.keep-edit[data-v-4038aaf8] .oper-btn{width:75px;border-radius:4px;padding:2px 15px;background:#eee;color:#fff;background-color:#03a9f4;border-color:#19be6b;text-align:center;font-size:12px;line-height:24px;cursor:pointer}.keep-edit[data-v-4038aaf8] .oper-btn{background-color:#19be6b}.tb-container[data-v-f5b615c4]{background:#eee;padding:6px}.tb-container .v-top[data-v-f5b615c4]{display:-ms-flexbox;display:flex}.tb-container .v-top>div[data-v-f5b615c4]{background:#fff;margin:10px;-ms-flex:1;flex:1;height:300px}.links[data-v-ab9af4e8]{display:-ms-flexbox;display:flex;font-size:15px;position:fixed;z-index:999;width:100%;background:#000;box-shadow:0 0 10px #524747}.links>.item[data-v-ab9af4e8]{position:relative;text-align:center;line-height:55px;-ms-flex:1;flex:1;color:#b1b0b0}.links>.item[data-v-ab9af4e8]:hover{cursor:pointer;color:#fff}.links .actived[data-v-ab9af4e8]{color:#fff;font-weight:700}.links .actived span[data-v-ab9af4e8]{border-bottom:2px solid #fff}.links span[data-v-ab9af4e8]{height:100%;position:relative;padding:17px 0}.affix[data-v-ab9af4e8]{left:50px;position:fixed;top:50px;padding:20px;border-right:1px solid #d6d3d3}.affix .actived[data-v-ab9af4e8]{color:#ed4014;font-weight:700}.affix li[data-v-ab9af4e8]:hover{cursor:pointer}.content[data-v-ab9af4e8]{position:relative;height:100%;left:0;right:0;margin:0 auto;padding:10px 30px;padding-top:80px}.doc-api[data-v-ab9af4e8]{max-width:100%;padding:80px 40px}.new[data-v-ab9af4e8]:after{content:".";position:absolute;width:8px;height:8px;background:#ececea;top:11px;border-radius:50%}.view-model-content[data-v-ab9af4e8] .el-scrollbar>.el-scrollbar__wrap{overflow-x:hidden}@media screen and (max-width:600px){.g-left{display:none}.g-right{margin:0!important}.g-right p,.g-right span{font-size:.8rem!important;line-height:2!important}.g-right li{padding-left:0!important}.content{padding:0!important;padding-right:3px!important}.links{display:none!important}.doc-menu{font-size:1.5rem;padding:.2rem .5rem;border-bottom:1px solid #eee;display:block!important}.g-p{text-align:center;padding:.5rem}.g-p a{font-size:1.3rem!important;margin:0!important;padding:.4rem}.coder-container .left{display:none!important}.coder-container .right{margin:0!important}.i-container{padding:1rem}.i-container .list{margin:0!important}.i-container .nav{display:none!important}}table[data-v-f066ecb8]{border-collapse:collapse}table tr[data-v-f066ecb8]:first-child{background:#f5f5f5}table td[data-v-f066ecb8]{padding:12px 13px!important;border:1px solid #dfe2e5!important;border-collapse:collapse}.g-left[data-v-f066ecb8]{border-right:1px solid #e8e8e8;margin-right:10px;width:180px;position:fixed;padding-left:20px}.g-left .n-item[data-v-f066ecb8]{text-align:left;padding-right:15px;list-style:none}.g-left .n-item a[data-v-f066ecb8]{font-size:15px;color:#737070;line-height:40px;height:40px;margin:0;padding:0;text-decoration:none;display:block;position:relative;transition:.15s ease-out}.actived a[data-v-f066ecb8]{color:#2196f3!important}.avd1[data-v-f066ecb8],.avd2[data-v-f066ecb8]{position:fixed;right:10px}.avd1 img[data-v-f066ecb8],.avd2 img[data-v-f066ecb8]{width:270px}.avd2[data-v-f066ecb8]{top:250px}.h-box[data-v-f066ecb8]{line-height:50px;text-align:center;font-size:20px;border-radius:5px;margin-bottom:20px;width:900px}.h-box a[data-v-f066ecb8]{cursor:pointer;display:inline-block;padding:25px 10px;height:150px;width:24%;border:1px solid #eee;font-size:16px;margin:0;color:#676767;margin-right:-6px;margin-bottom:-1px}.h-box i[data-v-f066ecb8]{transition:transform .8s;font-size:40px}.h-box a[data-v-f066ecb8]:hover{background:#e8e8e8}.h-box a:hover i[data-v-f066ecb8]{transform:scale(1.2);font-size:50px!important}.coder-container[data-v-7dd746cf]{display:-ms-flexbox;display:flex}.coder-container .left[data-v-7dd746cf]{position:fixed;width:170px;border-right:1px solid #ececec;margin-right:20px}.coder-container .left li[data-v-7dd746cf]{cursor:pointer;list-style:none;font-size:15px;padding:13px 5px}.coder-container .left li.actived[data-v-7dd746cf]{color:#2196f3}.coder-container .right[data-v-7dd746cf]{-ms-flex:1;flex:1;margin-left:190px}.coder-doc .title h2[data-v-7dd746cf]{color:#1f1f1f;font-weight:500!important}.coder-doc .title h2[data-v-7dd746cf]:before{content:"";display:inline-block;width:4px;height:4px;border-radius:50%;vertical-align:middle;background-color:#5e6d82;margin-right:5px}.coder-doc .coder-group[data-v-7dd746cf]{border-radius:5px;width:900px;display:inline-block;padding:15px 25px;box-shadow:2px 0 16px #e6e6e6;margin:15px 40px}.coder-doc .coder-img[data-v-7dd746cf],.coder-doc .coder-list[data-v-7dd746cf]{font-size:15px;margin-bottom:10px;color:#5e6d82;list-style:none}.coder-doc .coder-img img[data-v-7dd746cf]{cursor:pointer;width:100%}.coder-doc .coder-list[data-v-7dd746cf]:before{content:"";display:inline-block;width:4px;height:4px;border-radius:50%;vertical-align:middle;background-color:#5e6d82;margin-right:5px}.step[data-v-7dd746cf]{color:#797878;font-size:12px!important}@keyframes shake-data-v-7dd746cf{0%{opacity:.8}50%{opacity:.4}to{opacity:.8}}.big-text[data-v-7dd746cf]{background:#ffff29;width:940px;text-align:center;padding:20px;border-radius:10px;border:1px solid;margin-bottom:19px;font-size:28px;margin-top:18px;color:red;animation:shake-data-v-7dd746cf .5s infinite}table[data-v-7dd746cf]{border-collapse:collapse}table tr[data-v-7dd746cf]:first-child{background:#f5f5f5}table td[data-v-7dd746cf]{padding:12px 13px!important;border:1px solid #dfe2e5!important;border-collapse:collapse}.doc[data-v-ed65f762]{display:-ms-flexbox;display:flex}.doc .doc-left[data-v-ed65f762]{border-right:1px solid;margin-right:30px;color:#d2d2d2;position:fixed;width:200px;padding:0 10px;bottom:20px;top:81px}.doc .doc-left li[data-v-ed65f762]{padding:10px 5px;font-size:14px}.doc .doc-left li a[data-v-ed65f762]{color:#828282}.doc .doc-right[data-v-ed65f762]{margin-left:210px;-ms-flex:1;flex:1;width:1000px}h2[data-v-ed65f762]{color:#171616;font-weight:500}.doc-wrapper[data-v-ed65f762]{margin-bottom:35px}.top-content[data-v-ed65f762]{color:#f44336;margin-top:10px;border:1px dotted #dcd3d3;border-radius:6px;padding:15px;background:#fff;font-size:14px;margin-bottom:10px;box-shadow:0 8px 12px #ebedf0}.top-content>p[data-v-ed65f762]{padding:5px 0;padding-bottom:10px}.top-content>p[data-v-ed65f762]:before{content:"";display:inline-block;width:4px;height:4px;border-radius:50%;vertical-align:middle;background-color:#5e6d82;margin-right:5px}.d-content[data-v-ed65f762]{display:-ms-flexbox;display:flex;margin-top:10px;border:1px dotted #dcd3d3;border-radius:6px;padding:15px;background:#fff;font-size:14px;margin-bottom:10px;box-shadow:0 8px 12px #ebedf0}.d-content .code[data-v-ed65f762]{margin-right:15px;border-right:1px solid #dbddde;-ms-flex:1;flex:1;line-height:2.5}.d-content .img[data-v-ed65f762]{cursor:pointer;width:500px}.d-content .img img[data-v-ed65f762]{width:100%}.d-content .full-code[data-v-ed65f762]{display:none}.d-content>p[data-v-ed65f762]{padding:5px 0}.d-content>p[data-v-ed65f762]:before,.title h2[data-v-ed65f762]:before{content:"";display:inline-block;width:4px;height:4px;border-radius:50%;vertical-align:middle;background-color:#5e6d82;margin-right:5px}.active[data-v-ed65f762]{color:#409eff!important}@keyframes shake-data-v-ed65f762{50%{background:#268af1}to{background:#0b66c3}}.big-text[data-v-ed65f762]{background:#0b69cc;padding:20px;border-radius:10px;border:1px solid;margin-bottom:19px;font-size:25px;margin-top:18px;color:#fff;animation:shake-data-v-ed65f762 .5s infinite}.doc[data-v-11b5bd7a]{display:-ms-flexbox;display:flex}.doc .doc-left[data-v-11b5bd7a]{border-right:1px solid;margin-right:30px;color:#d2d2d2;position:fixed;width:250px;padding:0 10px;bottom:20px;top:81px}.doc .doc-left li[data-v-11b5bd7a]{padding:10px;font-size:14px}.doc .doc-left li a[data-v-11b5bd7a]{color:#828282}.doc .doc-right[data-v-11b5bd7a]{margin-left:270px;-ms-flex:1;flex:1;width:900px}h2[data-v-11b5bd7a]{color:#171616;font-weight:500}.doc-wrapper[data-v-11b5bd7a]{margin-bottom:35px}.top-content[data-v-11b5bd7a]{color:#f44336;margin-top:10px;border:1px dotted #dcd3d3;border-radius:6px;padding:15px;background:#fff;font-size:14px;margin-bottom:10px;box-shadow:0 8px 12px #ebedf0}.top-content>p[data-v-11b5bd7a]{padding:5px 0;padding-bottom:10px}.top-content>p[data-v-11b5bd7a]:before{content:"";display:inline-block;width:4px;height:4px;border-radius:50%;vertical-align:middle;background-color:#5e6d82;margin-right:5px}.d-content[data-v-11b5bd7a]{display:-ms-flexbox;display:flex;margin-top:10px;border:1px dotted #dcd3d3;border-radius:6px;padding:15px;background:#fff;font-size:14px;margin-bottom:10px;box-shadow:0 8px 12px #ebedf0}.d-content .code[data-v-11b5bd7a]{margin-right:15px;border-right:1px solid #dbddde;-ms-flex:1;flex:1}.d-content .img[data-v-11b5bd7a]{cursor:pointer;width:500px}.d-content .img img[data-v-11b5bd7a]{width:100%}.d-content>p[data-v-11b5bd7a]{padding:5px 0}.d-content>p[data-v-11b5bd7a]:before,.title h2[data-v-11b5bd7a]:before{content:"";display:inline-block;width:4px;height:4px;border-radius:50%;vertical-align:middle;background-color:#5e6d82;margin-right:5px}.active[data-v-11b5bd7a]{color:#409eff!important}.doc-nav[data-v-11b5bd7a]{margin:15px;text-align:center;padding:10px}.doc-nav a[data-v-11b5bd7a]{font-size:20px;margin:0 10px;line-height:30px;padding:4px 0;border-bottom:1px solid}.i-container[data-v-f5e4db56]{display:-ms-flexbox;display:flex}.i-container>.nav[data-v-f5e4db56]{border-right:1px solid #ccc3c3;margin-right:50px;width:250px;position:fixed;bottom:20px;top:81px}.i-container>.nav .n-item[data-v-f5e4db56]{text-align:left;padding-right:29px;list-style:none}.i-container>.nav .n-item a[data-v-f5e4db56]{font-size:14px;color:#737070;line-height:30px;margin:0;padding:0;text-decoration:none;display:block;position:relative;transition:.15s ease-out}.i-container>.list[data-v-f5e4db56]{-ms-flex:1;flex:1;margin-left:270px}.active[data-v-f5e4db56]{color:#409eff!important}.i-item[data-v-f5e4db56]{padding-bottom:10px;border-bottom:1px solid #eee;margin-bottom:15px}.i-item h3[data-v-f5e4db56]{font-size:22px;font-weight:400;margin:0 0 10px;color:#1f2d3d}.i-item[data-v-f5e4db56]:hover{cursor:pointer}.desc li[data-v-f5e4db56]{font-size:14px;margin-bottom:10px;color:#5e6d82;list-style:none}.desc li[data-v-f5e4db56]:before{content:"";display:inline-block;width:4px;height:4px;border-radius:50%;vertical-align:middle;background-color:#5e6d82;margin-right:5px}.time-line-item[data-v-12a27190]{margin-top:40px}.time-line-item h3[data-v-12a27190]{font-size:22px;font-weight:400;margin:0 0 15px;color:#1f2d3d}.date[data-v-12a27190]{border-right:1px solid #009688;margin-right:30px;padding-right:30px}li[data-v-12a27190]{list-style:none;font-size:15px;padding:5px}li[data-v-12a27190]:before{content:"";display:inline-block;width:9px;height:9px;background-color:#40ad44;border-radius:50%;margin-right:10px;top:-1px;position:relative}.month[data-v-12a27190]{font-size:26px;font-weight:700;margin-top:20px}.month .date[data-v-12a27190]{border-right:0}.month[data-v-12a27190]:before{display:none}.log[data-v-12a27190]{display:-ms-flexbox;display:flex}.log .active[data-v-12a27190]{color:#409eff!important}.log .nav[data-v-12a27190]{width:300px}.log .nav ul[data-v-12a27190]{z-index:999999;top:90px;position:fixed}.log .nav a[data-v-12a27190]{font-size:15px;color:#737070;line-height:40px;height:40px;margin:0;padding:0;text-decoration:none;display:block;position:relative;transition:.15s ease-out}.log .item[data-v-12a27190]{-ms-flex:1;flex:1}.content[data-v-12a27190]{max-width:800px;padding-top:40px}.i-container[data-v-7237559b]{display:-ms-flexbox;display:flex}.i-container>.nav[data-v-7237559b]{border-right:1px solid #ccc3c3;margin-right:10px;width:180px;position:fixed}.i-container>.nav .n-item[data-v-7237559b]{text-align:left;padding-right:15px;list-style:none}.i-container>.nav .n-item a[data-v-7237559b]{font-size:15px;color:#737070;line-height:40px;height:40px;margin:0;padding:0;text-decoration:none;display:block;position:relative;transition:.15s ease-out}.i-container>.list[data-v-7237559b]{width:1000px;-ms-flex:1;flex:1;margin-left:195px}.active[data-v-7237559b]{color:#409eff!important}.i-item[data-v-7237559b]{padding-bottom:10px;border-bottom:1px solid #eee;margin-bottom:15px}.i-item h3[data-v-7237559b]{font-size:22px;font-weight:400;margin:0 0 10px;color:#1f2d3d}.i-item[data-v-7237559b]:hover{cursor:pointer}.desc li[data-v-7237559b]{font-size:14px;margin-bottom:10px;color:#5e6d82;list-style:none}.desc li[data-v-7237559b]:before{content:"";display:inline-block;width:4px;height:4px;border-radius:50%;vertical-align:middle;background-color:#5e6d82;margin-right:5px}.i-text h2{font-size:20px;font-weight:400}.bg-ms{margin:0}.bg-ms>code{background:#f7f7f7;display:block;overflow-x:auto;color:#525252}table[data-v-8a33760c]{font-family:Consolas,Menlo,Courier,monospace;font-size:12px;border-collapse:collapse;border-spacing:0;empty-cells:show;border:1px solid #e9e9e9;width:100%;margin-bottom:24px}td[data-v-8a33760c]{border:1px solid #e9e9e9;padding:8px 16px;text-align:left}thead td[data-v-8a33760c]{background:#f7f7f7;white-space:nowrap;color:#5c6b77;font-weight:600}.i-text[data-v-8a33760c]{margin-bottom:15px}.i-text h2[data-v-8a33760c]{font-size:20px;font-weight:400}.vol-demo[data-v-2862465f]{box-shadow:0 0 10px #ccc9c9;padding:23px}.keep-edit[data-v-2862465f] .img-btn,.keep-edit[data-v-2862465f] .oper-btn{width:75px;border-radius:4px;padding:2px 15px;background:#eee;color:#fff;background-color:#03a9f4;border-color:#19be6b;text-align:center;font-size:12px;line-height:24px;cursor:pointer}.keep-edit[data-v-2862465f] .oper-btn{background-color:#19be6b}.desc[data-v-7f85d654]{padding:3px 5px}.upload-container[data-v-09158d38]{max-height:160px;display:-ms-flexbox;display:flex}.upload-container .upload-item[data-v-09158d38]{-ms-flex:1;flex:1;padding:20px}.vol-demo[data-v-741e5755]{box-shadow:0 0 10px #ccc9c9;padding:23px}.keep-edit[data-v-741e5755] .img-btn,.keep-edit[data-v-741e5755] .oper-btn{width:75px;border-radius:4px;padding:2px 15px;background:#eee;color:#fff;background-color:#03a9f4;border-color:#19be6b;text-align:center;font-size:12px;line-height:24px;cursor:pointer}.keep-edit[data-v-741e5755] .oper-btn{background-color:#19be6b}#MySignature{background-color:#f8f8ee;border:1px solid #e8e7d0;box-shadow:0 0 15px #aaa;padding:10px;margin-bottom:10px;color:gray}.rm-main[data-v-dd566fec]{display:-ms-flexbox;display:flex}.rm-main .rm-main-left[data-v-dd566fec]{-ms-flex:0.25;flex:0.25;padding:30px 35px;overflow:hidden;background:#eee}.rm-main .rm-main-right[data-v-dd566fec]{-ms-flex:0.8;flex:0.8;padding:35px 30px 10px 35px}.rm-main[data-v-7be657d4]{display:-ms-flexbox;display:flex}.rm-main .rm-main-left[data-v-7be657d4]{-ms-flex:0.25;flex:0.25;padding:30px 35px;overflow:hidden;background:#eee}.rm-main .rm-main-right[data-v-7be657d4]{-ms-flex:0.8;flex:0.8;padding:35px 30px 10px 35px}.totop[data-v-7be657d4]{position:fixed;bottom:100px;right:40px;width:40px;height:40px;background-color:#fff;border-radius:50%;box-shadow:0 0 6px rgba(0,0,0,.12);cursor:pointer;z-index:5}.totop .el-icon-caret-top[data-v-7be657d4]{color:#fff;display:block;line-height:40px;text-align:center;font-size:18px}.totop:hover .el-icon-caret-top[data-v-7be657d4]{color:#39f}.bg[data-v-bf8b8c84]{display:-ms-flexbox;display:flex;overflow:hidden;position:relative;height:100%;width:100%;background-color:#300;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 800 400'%3E%3Cdefs%3E%3CradialGradient id='a' cx='396' cy='281' r='514' gradientUnits='userSpaceOnUse'%3E%3Cstop offset='0' stop-color='%233b3b6b'/%3E%3Cstop offset='1' stop-color='%23300'/%3E%3C/radialGradient%3E%3ClinearGradient id='b' gradientUnits='userSpaceOnUse' x1='400' y1='148' x2='400' y2='333'%3E%3Cstop offset='0' stop-color='%23146cc9' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23146cc9' stop-opacity='.5'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath fill='url(%23a)' d='M0 0h800v400H0z'/%3E%3Cg fill-opacity='.5' fill='url(%23b)'%3E%3Ccircle cx='267.5' cy='61' r='300'/%3E%3Ccircle cx='532.5' cy='61' r='300'/%3E%3Ccircle cx='400' cy='30' r='300'/%3E%3C/g%3E%3C/svg%3E")}.login[data-v-bf8b8c84]{-ms-flex:1;flex:1}.content[data-v-bf8b8c84]{display:-ms-flexbox;display:flex;z-index:99;position:relative;width:860px;left:0;right:0;margin:0 auto;transform:translateY(-50%);top:50%;height:400px;border-radius:10px}.content .l-left[data-v-bf8b8c84]{border-top-left-radius:5px;border-bottom-left-radius:5px;width:400px;background-image:linear-gradient(135deg,#0d82ff 10%,#0cd7bd);border:1px solid #5c87ff}.desc[data-v-bf8b8c84]{width:450px;padding:10px 30px;box-sizing:border-box;height:100%}.desc p[data-v-bf8b8c84]{font-size:15px;color:#fff;line-height:30px}.desc p[data-v-bf8b8c84]:before{top:-1px;content:"o";position:relative;margin-right:7px}.title[data-v-bf8b8c84]{z-index:999;font-size:70px;font-weight:700;color:#fff}.l-bg[data-v-bf8b8c84]{height:1200px;width:1200px;border-radius:50%;background:#2cecff;position:absolute;top:-700px;left:-700px;background-image:linear-gradient(135deg,#00a7f5 10%,#0cb3ff)}.r-bg[data-v-bf8b8c84]{height:2000px;width:2000px;border-radius:50%;background:#2cecff;position:absolute;top:-1500px;right:-900px;background-image:linear-gradient(135deg,#42c2ff 10%,#1da1dc)}.form-user[data-v-bf8b8c84]{margin:25px 0}.form-user .f-remove[data-v-bf8b8c84]{display:none}.form-user .item:hover .f-remove[data-v-bf8b8c84]{display:block}.form-user .item[data-v-bf8b8c84]{padding-bottom:5px;border-bottom:1px solid #eee;margin-bottom:30px;display:-ms-flexbox;display:flex}.form-user .item .f-text[data-v-bf8b8c84]{color:#484848;font-weight:400;width:110px;font-size:16px}.form-user .item .f-text i[data-v-bf8b8c84]{position:relative;top:-1px;right:5px}.form-user .item .f-input[data-v-bf8b8c84]{border:0;-ms-flex:1;flex:1}.form-user .item .code[data-v-bf8b8c84]{position:relative;cursor:pointer;top:-5px;width:74px;border:1px solid #fdfdfd;border-radius:2px;height:35px;margin-left:10px}input[data-v-bf8b8c84]:-webkit-autofill{box-shadow:inset 0 0 0 1000px #fff}.login-contianer .login-form[data-v-bf8b8c84]{border-top-right-radius:5px;border-bottom-right-radius:5px;padding:10px 30px 40px;width:400px;min-height:340px;background:#fff;height:400px;box-shadow:0 4px 21px #d6d6d6}.login-project[data-v-bf8b8c84]{line-height:70px}.login-project img[data-v-bf8b8c84]{height:80px}.login-project .project-name[data-v-bf8b8c84]{font-size:50px;position:relative;color:#fff;font-weight:600;margin-left:9px}.login-project .desc[data-v-bf8b8c84]{color:wheat;font-size:15px}.loging-btn[data-v-bf8b8c84]{margin-top:40px}.action[data-v-bf8b8c84]{text-align:right;margin-top:20px}.action a[data-v-bf8b8c84]{margin-left:20px}.login-footer[data-v-bf8b8c84]{padding:10px;text-align:center;font-size:16px;position:absolute;width:100%;bottom:0;background:#06a3ea;border-top:1px solid #e2e2e2}.login-footer i[data-v-bf8b8c84]{position:relative;top:-2px;margin-right:5px}.login-footer a[data-v-bf8b8c84]{margin-left:30px;color:#fff}.login-footer a[data-v-bf8b8c84]:hover{color:orange}.login-footer a[data-v-bf8b8c84]:active{color:pink}@media screen and (max-width:600px){.desc[data-v-bf8b8c84]{display:none}.bg[data-v-bf8b8c84]{background-image:none}.login-form[data-v-bf8b8c84]{box-shadow:none!important;width:100%!important}.l-bg[data-v-bf8b8c84],.l-left[data-v-bf8b8c84],.login-footer[data-v-bf8b8c84],.r-bg[data-v-bf8b8c84]{display:none}.c-bg-item[data-v-bf8b8c84]{background:none!important}}.login-contianer[data-v-bf8b8c84] .ivu-form .ivu-form-item-content{margin-left:0!important}input:-webkit-autofill{-webkit-box-shadow:0 0 0 1000px #fff inset!important}input{background:#fff;display:block;box-sizing:border-box;width:100%;min-width:0;margin:0;padding:0;color:#323233;line-height:inherit;text-align:left;border:0;outline:none;font-size:16px;line-height:20px}.c-bg[data-v-bf8b8c84]{position:absolute;width:100%;height:200px}.c-bg .c-bg-item[data-v-bf8b8c84]{width:25%;background:#00a7f5;height:200px}p[data-v-bf8b8c84]:hover{color:orange}p[data-v-bf8b8c84]:active{color:pink}.el-message__closeBtn:focus,.el-message__content:focus{outline-width:0}.el-message{min-width:380px;box-sizing:border-box;border-radius:4px;border:1px solid #ebeef5;position:fixed;left:50%;top:20px;transform:translateX(-50%);background-color:#edf2fc;transition:opacity .3s,transform .4s,top .4s;overflow:hidden;padding:15px 15px 15px 20px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.el-message.is-center{-ms-flex-pack:center;justify-content:center}.el-message.is-closable .el-message__content{padding-right:16px}.el-message p{margin:0}.el-message--info .el-message__content{color:#909399}.el-message--success{background-color:#f0f9eb;border-color:#e1f3d8}.el-message--success .el-message__content{color:#67c23a}.el-message--warning{background-color:#fdf6ec;border-color:#faecd8}.el-message--warning .el-message__content{color:#e6a23c}.el-message--error{background-color:#fef0f0;border-color:#fde2e2}.el-message--error .el-message__content{color:#f56c6c}.el-message__icon{margin-right:10px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__closeBtn{position:absolute;top:50%;right:15px;transform:translateY(-50%);cursor:pointer;color:#c0c4cc;font-size:16px}.el-message__closeBtn:hover{color:#909399}.el-message .el-icon-success{color:#67c23a}.el-message .el-icon-error{color:#f56c6c}.el-message .el-icon-info{color:#909399}.el-message .el-icon-warning{color:#e6a23c}.el-message-fade-enter,.el-message-fade-leave-active{opacity:0;transform:translate(-50%,-100%)}.el-fade-in-enter,.el-fade-in-leave-active,.el-fade-in-linear-enter,.el-fade-in-linear-leave,.el-fade-in-linear-leave-active,.fade-in-linear-enter,.fade-in-linear-leave,.fade-in-linear-leave-active{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active,.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:opacity .2s linear}.el-fade-in-enter-active,.el-fade-in-leave-active,.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center top}.el-zoom-in-top-enter,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:center bottom}.el-zoom-in-bottom-enter,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transform-origin:top left}.el-zoom-in-left-enter,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:height .3s ease-in-out,padding-top .3s ease-in-out,padding-bottom .3s ease-in-out}.horizontal-collapse-transition{transition:width .3s ease-in-out,padding-left .3s ease-in-out,padding-right .3s ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter,.el-list-leave-active{opacity:0;transform:translateY(-30px)}.el-opacity-transition{transition:opacity .3s cubic-bezier(.55,0,.1,1)}@font-face{font-family:element-icons;src:url(/static/fonts/element-icons.535877f.woff) format("woff"),url(/static/fonts/element-icons.732389d.ttf) format("truetype");font-weight:400;font-display:"auto";font-style:normal}[class*=" el-icon-"],[class^=el-icon-]{font-family:element-icons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;vertical-align:baseline;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-icon-ice-cream-round:before{content:"\E6A0"}.el-icon-ice-cream-square:before{content:"\E6A3"}.el-icon-lollipop:before{content:"\E6A4"}.el-icon-potato-strips:before{content:"\E6A5"}.el-icon-milk-tea:before{content:"\E6A6"}.el-icon-ice-drink:before{content:"\E6A7"}.el-icon-ice-tea:before{content:"\E6A9"}.el-icon-coffee:before{content:"\E6AA"}.el-icon-orange:before{content:"\E6AB"}.el-icon-pear:before{content:"\E6AC"}.el-icon-apple:before{content:"\E6AD"}.el-icon-cherry:before{content:"\E6AE"}.el-icon-watermelon:before{content:"\E6AF"}.el-icon-grape:before{content:"\E6B0"}.el-icon-refrigerator:before{content:"\E6B1"}.el-icon-goblet-square-full:before{content:"\E6B2"}.el-icon-goblet-square:before{content:"\E6B3"}.el-icon-goblet-full:before{content:"\E6B4"}.el-icon-goblet:before{content:"\E6B5"}.el-icon-cold-drink:before{content:"\E6B6"}.el-icon-coffee-cup:before{content:"\E6B8"}.el-icon-water-cup:before{content:"\E6B9"}.el-icon-hot-water:before{content:"\E6BA"}.el-icon-ice-cream:before{content:"\E6BB"}.el-icon-dessert:before{content:"\E6BC"}.el-icon-sugar:before{content:"\E6BD"}.el-icon-tableware:before{content:"\E6BE"}.el-icon-burger:before{content:"\E6BF"}.el-icon-knife-fork:before{content:"\E6C1"}.el-icon-fork-spoon:before{content:"\E6C2"}.el-icon-chicken:before{content:"\E6C3"}.el-icon-food:before{content:"\E6C4"}.el-icon-dish-1:before{content:"\E6C5"}.el-icon-dish:before{content:"\E6C6"}.el-icon-moon-night:before{content:"\E6EE"}.el-icon-moon:before{content:"\E6F0"}.el-icon-cloudy-and-sunny:before{content:"\E6F1"}.el-icon-partly-cloudy:before{content:"\E6F2"}.el-icon-cloudy:before{content:"\E6F3"}.el-icon-sunny:before{content:"\E6F6"}.el-icon-sunset:before{content:"\E6F7"}.el-icon-sunrise-1:before{content:"\E6F8"}.el-icon-sunrise:before{content:"\E6F9"}.el-icon-heavy-rain:before{content:"\E6FA"}.el-icon-lightning:before{content:"\E6FB"}.el-icon-light-rain:before{content:"\E6FC"}.el-icon-wind-power:before{content:"\E6FD"}.el-icon-baseball:before{content:"\E712"}.el-icon-soccer:before{content:"\E713"}.el-icon-football:before{content:"\E715"}.el-icon-basketball:before{content:"\E716"}.el-icon-ship:before{content:"\E73F"}.el-icon-truck:before{content:"\E740"}.el-icon-bicycle:before{content:"\E741"}.el-icon-mobile-phone:before{content:"\E6D3"}.el-icon-service:before{content:"\E6D4"}.el-icon-key:before{content:"\E6E2"}.el-icon-unlock:before{content:"\E6E4"}.el-icon-lock:before{content:"\E6E5"}.el-icon-watch:before{content:"\E6FE"}.el-icon-watch-1:before{content:"\E6FF"}.el-icon-timer:before{content:"\E702"}.el-icon-alarm-clock:before{content:"\E703"}.el-icon-map-location:before{content:"\E704"}.el-icon-delete-location:before{content:"\E705"}.el-icon-add-location:before{content:"\E706"}.el-icon-location-information:before{content:"\E707"}.el-icon-location-outline:before{content:"\E708"}.el-icon-location:before{content:"\E79E"}.el-icon-place:before{content:"\E709"}.el-icon-discover:before{content:"\E70A"}.el-icon-first-aid-kit:before{content:"\E70B"}.el-icon-trophy-1:before{content:"\E70C"}.el-icon-trophy:before{content:"\E70D"}.el-icon-medal:before{content:"\E70E"}.el-icon-medal-1:before{content:"\E70F"}.el-icon-stopwatch:before{content:"\E710"}.el-icon-mic:before{content:"\E711"}.el-icon-copy-document:before{content:"\E718"}.el-icon-full-screen:before{content:"\E719"}.el-icon-switch-button:before{content:"\E71B"}.el-icon-aim:before{content:"\E71C"}.el-icon-crop:before{content:"\E71D"}.el-icon-odometer:before{content:"\E71E"}.el-icon-time:before{content:"\E71F"}.el-icon-bangzhu:before{content:"\E724"}.el-icon-close-notification:before{content:"\E726"}.el-icon-microphone:before{content:"\E727"}.el-icon-turn-off-microphone:before{content:"\E728"}.el-icon-position:before{content:"\E729"}.el-icon-postcard:before{content:"\E72A"}.el-icon-message:before{content:"\E72B"}.el-icon-chat-line-square:before{content:"\E72D"}.el-icon-chat-dot-square:before{content:"\E72E"}.el-icon-chat-dot-round:before{content:"\E72F"}.el-icon-chat-square:before{content:"\E730"}.el-icon-chat-line-round:before{content:"\E731"}.el-icon-chat-round:before{content:"\E732"}.el-icon-set-up:before{content:"\E733"}.el-icon-turn-off:before{content:"\E734"}.el-icon-open:before{content:"\E735"}.el-icon-connection:before{content:"\E736"}.el-icon-link:before{content:"\E737"}.el-icon-cpu:before{content:"\E738"}.el-icon-thumb:before{content:"\E739"}.el-icon-female:before{content:"\E73A"}.el-icon-male:before{content:"\E73B"}.el-icon-guide:before{content:"\E73C"}.el-icon-news:before{content:"\E73E"}.el-icon-price-tag:before{content:"\E744"}.el-icon-discount:before{content:"\E745"}.el-icon-wallet:before{content:"\E747"}.el-icon-coin:before{content:"\E748"}.el-icon-money:before{content:"\E749"}.el-icon-bank-card:before{content:"\E74A"}.el-icon-box:before{content:"\E74B"}.el-icon-present:before{content:"\E74C"}.el-icon-sell:before{content:"\E6D5"}.el-icon-sold-out:before{content:"\E6D6"}.el-icon-shopping-bag-2:before{content:"\E74D"}.el-icon-shopping-bag-1:before{content:"\E74E"}.el-icon-shopping-cart-2:before{content:"\E74F"}.el-icon-shopping-cart-1:before{content:"\E750"}.el-icon-shopping-cart-full:before{content:"\E751"}.el-icon-smoking:before{content:"\E752"}.el-icon-no-smoking:before{content:"\E753"}.el-icon-house:before{content:"\E754"}.el-icon-table-lamp:before{content:"\E755"}.el-icon-school:before{content:"\E756"}.el-icon-office-building:before{content:"\E757"}.el-icon-toilet-paper:before{content:"\E758"}.el-icon-notebook-2:before{content:"\E759"}.el-icon-notebook-1:before{content:"\E75A"}.el-icon-files:before{content:"\E75B"}.el-icon-collection:before{content:"\E75C"}.el-icon-receiving:before{content:"\E75D"}.el-icon-suitcase-1:before{content:"\E760"}.el-icon-suitcase:before{content:"\E761"}.el-icon-film:before{content:"\E763"}.el-icon-collection-tag:before{content:"\E765"}.el-icon-data-analysis:before{content:"\E766"}.el-icon-pie-chart:before{content:"\E767"}.el-icon-data-board:before{content:"\E768"}.el-icon-data-line:before{content:"\E76D"}.el-icon-reading:before{content:"\E769"}.el-icon-magic-stick:before{content:"\E76A"}.el-icon-coordinate:before{content:"\E76B"}.el-icon-mouse:before{content:"\E76C"}.el-icon-brush:before{content:"\E76E"}.el-icon-headset:before{content:"\E76F"}.el-icon-umbrella:before{content:"\E770"}.el-icon-scissors:before{content:"\E771"}.el-icon-mobile:before{content:"\E773"}.el-icon-attract:before{content:"\E774"}.el-icon-monitor:before{content:"\E775"}.el-icon-search:before{content:"\E778"}.el-icon-takeaway-box:before{content:"\E77A"}.el-icon-paperclip:before{content:"\E77D"}.el-icon-printer:before{content:"\E77E"}.el-icon-document-add:before{content:"\E782"}.el-icon-document:before{content:"\E785"}.el-icon-document-checked:before{content:"\E786"}.el-icon-document-copy:before{content:"\E787"}.el-icon-document-delete:before{content:"\E788"}.el-icon-document-remove:before{content:"\E789"}.el-icon-tickets:before{content:"\E78B"}.el-icon-folder-checked:before{content:"\E77F"}.el-icon-folder-delete:before{content:"\E780"}.el-icon-folder-remove:before{content:"\E781"}.el-icon-folder-add:before{content:"\E783"}.el-icon-folder-opened:before{content:"\E784"}.el-icon-folder:before{content:"\E78A"}.el-icon-edit-outline:before{content:"\E764"}.el-icon-edit:before{content:"\E78C"}.el-icon-date:before{content:"\E78E"}.el-icon-c-scale-to-original:before{content:"\E7C6"}.el-icon-view:before{content:"\E6CE"}.el-icon-loading:before{content:"\E6CF"}.el-icon-rank:before{content:"\E6D1"}.el-icon-sort-down:before{content:"\E7C4"}.el-icon-sort-up:before{content:"\E7C5"}.el-icon-sort:before{content:"\E6D2"}.el-icon-finished:before{content:"\E6CD"}.el-icon-refresh-left:before{content:"\E6C7"}.el-icon-refresh-right:before{content:"\E6C8"}.el-icon-refresh:before{content:"\E6D0"}.el-icon-video-play:before{content:"\E7C0"}.el-icon-video-pause:before{content:"\E7C1"}.el-icon-d-arrow-right:before{content:"\E6DC"}.el-icon-d-arrow-left:before{content:"\E6DD"}.el-icon-arrow-up:before{content:"\E6E1"}.el-icon-arrow-down:before{content:"\E6DF"}.el-icon-arrow-right:before{content:"\E6E0"}.el-icon-arrow-left:before{content:"\E6DE"}.el-icon-top-right:before{content:"\E6E7"}.el-icon-top-left:before{content:"\E6E8"}.el-icon-top:before{content:"\E6E6"}.el-icon-bottom:before{content:"\E6EB"}.el-icon-right:before{content:"\E6E9"}.el-icon-back:before{content:"\E6EA"}.el-icon-bottom-right:before{content:"\E6EC"}.el-icon-bottom-left:before{content:"\E6ED"}.el-icon-caret-top:before{content:"\E78F"}.el-icon-caret-bottom:before{content:"\E790"}.el-icon-caret-right:before{content:"\E791"}.el-icon-caret-left:before{content:"\E792"}.el-icon-d-caret:before{content:"\E79A"}.el-icon-share:before{content:"\E793"}.el-icon-menu:before{content:"\E798"}.el-icon-s-grid:before{content:"\E7A6"}.el-icon-s-check:before{content:"\E7A7"}.el-icon-s-data:before{content:"\E7A8"}.el-icon-s-opportunity:before{content:"\E7AA"}.el-icon-s-custom:before{content:"\E7AB"}.el-icon-s-claim:before{content:"\E7AD"}.el-icon-s-finance:before{content:"\E7AE"}.el-icon-s-comment:before{content:"\E7AF"}.el-icon-s-flag:before{content:"\E7B0"}.el-icon-s-marketing:before{content:"\E7B1"}.el-icon-s-shop:before{content:"\E7B4"}.el-icon-s-open:before{content:"\E7B5"}.el-icon-s-management:before{content:"\E7B6"}.el-icon-s-ticket:before{content:"\E7B7"}.el-icon-s-release:before{content:"\E7B8"}.el-icon-s-home:before{content:"\E7B9"}.el-icon-s-promotion:before{content:"\E7BA"}.el-icon-s-operation:before{content:"\E7BB"}.el-icon-s-unfold:before{content:"\E7BC"}.el-icon-s-fold:before{content:"\E7A9"}.el-icon-s-platform:before{content:"\E7BD"}.el-icon-s-order:before{content:"\E7BE"}.el-icon-s-cooperation:before{content:"\E7BF"}.el-icon-bell:before{content:"\E725"}.el-icon-message-solid:before{content:"\E799"}.el-icon-video-camera:before{content:"\E772"}.el-icon-video-camera-solid:before{content:"\E796"}.el-icon-camera:before{content:"\E779"}.el-icon-camera-solid:before{content:"\E79B"}.el-icon-download:before{content:"\E77C"}.el-icon-upload2:before{content:"\E77B"}.el-icon-upload:before{content:"\E7C3"}.el-icon-picture-outline-round:before{content:"\E75F"}.el-icon-picture-outline:before{content:"\E75E"}.el-icon-picture:before{content:"\E79F"}.el-icon-close:before{content:"\E6DB"}.el-icon-check:before{content:"\E6DA"}.el-icon-plus:before{content:"\E6D9"}.el-icon-minus:before{content:"\E6D8"}.el-icon-help:before{content:"\E73D"}.el-icon-s-help:before{content:"\E7B3"}.el-icon-circle-close:before{content:"\E78D"}.el-icon-circle-check:before{content:"\E720"}.el-icon-circle-plus-outline:before{content:"\E723"}.el-icon-remove-outline:before{content:"\E722"}.el-icon-zoom-out:before{content:"\E776"}.el-icon-zoom-in:before{content:"\E777"}.el-icon-error:before{content:"\E79D"}.el-icon-success:before{content:"\E79C"}.el-icon-circle-plus:before{content:"\E7A0"}.el-icon-remove:before{content:"\E7A2"}.el-icon-info:before{content:"\E7A1"}.el-icon-question:before{content:"\E7A4"}.el-icon-warning-outline:before{content:"\E6C9"}.el-icon-warning:before{content:"\E7A3"}.el-icon-goods:before{content:"\E7C2"}.el-icon-s-goods:before{content:"\E7B2"}.el-icon-star-off:before{content:"\E717"}.el-icon-star-on:before{content:"\E797"}.el-icon-more-outline:before{content:"\E6CC"}.el-icon-more:before{content:"\E794"}.el-icon-phone-outline:before{content:"\E6CB"}.el-icon-phone:before{content:"\E795"}.el-icon-user:before{content:"\E6E3"}.el-icon-user-solid:before{content:"\E7A5"}.el-icon-setting:before{content:"\E6CA"}.el-icon-s-tools:before{content:"\E7AC"}.el-icon-delete:before{content:"\E6D7"}.el-icon-delete-solid:before{content:"\E7C9"}.el-icon-eleme:before{content:"\E7C7"}.el-icon-platform-eleme:before{content:"\E7CA"}.el-icon-loading{animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{position:absolute;z-index:2000;background-color:hsla(0,0%,100%,.9);margin:0;top:0;right:0;bottom:0;left:0;transition:opacity .3s}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:-25px}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:50px;width:50px}.el-loading-spinner{top:50%;margin-top:-21px;width:100%;text-align:center;position:absolute}.el-loading-spinner .el-loading-text{color:#409eff;margin:3px 0;font-size:14px}.el-loading-spinner .circular{height:42px;width:42px;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:#409eff;stroke-linecap:round}.el-loading-spinner i{color:#409eff}.el-loading-fade-enter,.el-loading-fade-leave-active{opacity:0}@keyframes loading-rotate{to{transform:rotate(1turn)}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}} +/*# sourceMappingURL=main.687f77fdea20bdad3b9ca120bc2f5962.css.map */ \ No newline at end of file diff --git a/static/css/main.687f77fdea20bdad3b9ca120bc2f5962.css.map b/static/css/main.687f77fdea20bdad3b9ca120bc2f5962.css.map new file mode 100644 index 0000000..529001b --- /dev/null +++ b/static/css/main.687f77fdea20bdad3b9ca120bc2f5962.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["main.687f77fdea20bdad3b9ca120bc2f5962.css"],"names":[],"mappings":"AACA,YACE,cAAgB,CACjB,AAKD,aACE,4BAA+B,CAChC,AACD,gCACE,YAAa,AACb,mBAAoB,AACpB,YAAa,AACb,UAAW,AACX,OAAQ,AACR,QAAS,AACT,cAAe,AACf,kBAAmB,AACnB,wBAA0B,CAC3B,AACD,KACE,8CAAoD,AACpD,mCAAoC,AACpC,kCAAmC,AAEnC,aAAe,CAEhB,AACD,gBACE,gBAAkB,AAClB,UAAY,CAEb,AACD,+BACI,aAAe,CAClB,AAED,2CACE,kBAAqB,CACtB,AAED,eAGE,WAAa,CACd,AACD,EACE,sBAAuB,AACvB,2BAA4B,AAE5B,6BAA+B,CAEhC,AACD,aACE,gBAAiB,AACjB,iBAAkB,AAClB,sBAAuB,AACvB,kBAAmB,AACnB,cAAgB,CACjB,AACD,uCAEE,mBAAoB,AACpB,UAAa,CACd,AACD,iDACE,WAAa,CACd,AACD,UAEE,uBAAyB,AAEzB,wBAA0B,CAC3B,AACD,wCACE,UAEE,0BAA4B,AAE5B,yBAA4B,CAC7B,CACF,AAaD,sBACE,GACE,UAAW,AAEX,gCAAoC,CACrC,AACD,GACE,UAAW,AAEX,uBAAgC,CACjC,CACF,AACD,YAEE,yBAA2B,CAC5B,AACD,aACE,2BAA8B,CAC/B,AACD,uBACE,eAAiB,CAClB,AAED,6BACE,WAAY,AACZ,qBAAsB,AACtB,YAAa,AACb,kBAAmB,AACnB,gBAAiB,AACjB,eAAgB,AAChB,aAAc,AACd,cAAe,AAEf,wBAA0B,AAC1B,kBAAmB,AACnB,gBAAkB,CACnB,AACD,yBACE,iBAAkB,AAClB,mBAAoB,AACpB,WAAa,AACb,cAAgB,CACjB,AAED,mCACE,qBAAsB,AACtB,WAAY,AACZ,aAAc,AACd,0BAA2B,AAC3B,iBAAkB,AAClB,iBAAmB,CACpB,AACD,0CACE,eAAiB,CAClB,AACD,kDACE,WAAY,AACZ,iBAAmB,CACpB,AACD,mDACE,iBAAmB,CACpB,AACD,gDACE,eAAiB,CAClB,AACD,uDACE,iBAAmB,CACpB,AACD,sDACE,cAAgB,CACjB,AACD,6DACE,aAAe,CAChB,AACD,2DACE,aAAe,CAChB,AAED,0CACE,eAAiB,CAClB,AACD,kDACE,WAAY,AACZ,iBAAmB,CACpB,AACD,mDACE,iBAAmB,CACpB,AACD,mDACE,cAAgB,CACjB,AACD,yCACE,WAAY,AACZ,oBAAsB,CACvB,AACD,qDACE,cAAgB,CACjB,AACD,6DACE,aAAe,CAChB,AACD,+CACE,kBAAmB,AACnB,kBAAmB,AACnB,WAAY,AACZ,iBAAkB,AAClB,iBAAmB,CACpB,AACD,uDACE,aAAc,AACd,kBAAmB,AACnB,MAAO,AACP,WAAY,AACZ,iBAAkB,AAClB,mBAAoB,AACpB,iBAAkB,AAClB,iBAAkB,AAClB,WAAa,AACb,eAAgB,AAChB,aAAe,CAChB,AACD,yDACE,cAAgB,CACjB,AACD,uDACE,cAAe,AACf,kBAAmB,AACnB,UAAY,CACb,AACD,6DACE,cAAgB,CACjB,AAED,kDACE,yBAA2B,CAC5B,AAED,yBACE,aAAe,CAChB,AACD,+BACE,WAAY,AAEZ,oBAAqB,AACrB,YAAc,CACf,AACD,8BAEE,iBAAmB,CACpB,AACD,8BAEM,WAAY,AACR,MAAQ,CACjB,AACD,oCACE,UAAY,CACb,AAED,0BAEE,oBAAqB,AACrB,YAAc,CACf,AACD,wCAEM,cAAe,AACX,UAAW,AACnB,kBAAmB,AACnB,gBAAiB,AACjB,eAAoB,CACrB,AACD,yCAEM,aAAc,AACV,SAAU,AAClB,2BAA6B,CAC9B,AACD,wBACE,eAAgB,AAChB,aAAc,AACd,WAAY,AACZ,WAAY,AACZ,YAAa,AACb,sBAAuB,AACvB,kBAAmB,AAEX,mCAAwC,AAChD,eAAgB,AAChB,SAAW,CACZ,AACD,2CACE,WAAY,AACZ,cAAe,AACf,iBAAkB,AAClB,kBAAmB,AACnB,cAAgB,CACjB,AACD,iDACE,UAAe,CAChB,AAED,mCACE,cAAe,AACf,kBAAmB,AACnB,kBAAoB,CACrB,AACD,sCACE,gBAAiB,AACjB,gBAAiB,AACjB,gBAAiB,AACjB,kBAAoB,CACrB,AACD,sCACE,cAAe,AACf,eAAgB,AAChB,eAAiB,CAClB,AACD,sDACE,qBAAsB,AACtB,YAAa,AACb,aAAc,AACd,kBAAmB,AACnB,eAAiB,CAClB,AACD,oCACE,cAAe,AACf,iBAAmB,CACpB,AACD,qCACE,aAAc,AACd,iBAAmB,CACpB,AACD,uCACE,SAAU,AACV,eAAiB,CAClB,AACD,uCACE,qBAAsB,AACtB,6BAA8B,AAC9B,qBAAsB,AACtB,qBAAsB,AACtB,WAAY,AACZ,eAAgB,AAChB,cAAe,AACf,cAAgB,CACjB,AACD,2FAEE,UAAW,AACX,yBAA0B,AAC1B,aAAe,CAChB,AACD,oCACE,gBAAiB,AACjB,iBAAmB,CACpB,AACD,sCACE,cAAgB,CACjB,AACD,0CACE,WAAY,AACZ,YAAa,AACb,kBAAoB,CACrB,AACD,wCACE,cAAe,AACf,gBAAkB,CACnB,AACD,4CACE,aAA0B,CAC3B,AACD,8CACE,yBAA2B,CAC5B,AACD,sCACE,cAAgB,CACjB,AACD,wCACE,SAAU,AACV,eAAiB,CAClB,AACD,wCACE,qBAAsB,AACtB,6BAA8B,AAC9B,qBAAsB,AACtB,qBAAsB,AACtB,WAAY,AACZ,eAAgB,AAChB,cAAe,AACf,cAAgB,CACjB,AACD,6FAEE,UAAW,AACX,yBAA0B,AAC1B,aAAe,CAChB,AAED,iBACE,cAAe,AACf,eAAiB,CAClB,AACD,eACE,mCAAqC,AACrC,qBAAuB,AACvB,gBAAiB,AACjB,YAAa,AACb,qBAAsB,AACtB,sBAAuB,AACvB,kBAAmB,AACnB,sFACoB,AAGpB,kBAAoB,CACrB,AACD,QACI,kBAAoB,CACvB,AACD,QACI,iBAAmB,CACtB,AACD,gBACI,kBAAoB,CACvB,AACD,WACI,kBAAoB,CACvB,AACD,iBACI,kBAAoB,CACvB,AACD,cACI,kBAAmB,AACnB,eAAiB,CACpB,AACD,QACI,eAAgB,AAChB,wBAA0B,CAC7B,AAED,sBACE,qBAAuB,CACxB,AACD,6BACE,kBAAmB,AACnB,iBAAkB,AAClB,WAAa,CACd,AACD,gCACE,gBAAiB,AACjB,eAAiB,CAClB,AACD,mCACE,YAAc,CACf,AAED,iCACE,eAAkB,CACnB,AACD,8CACE,gBAAkB,CA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,AAChB,gBAAiB,AACjB,gBAAiB,AAET,2BAA4B,AACpC,QAAS,AACT,kBAAmB,AACnB,YAAa,AACb,OAAQ,AACR,QAAS,AACT,YAAa,AACb,cAAe,AACf,iBAAkB,AAClB,kBAAmB,AACnB,wBAA0B,CAC3B,AACD,yBAEE,oBAAqB,AACrB,YAAc,CACf,AACD,yCAEM,WAAY,AACR,MAAQ,CACjB,AAyzCD,6BACE,iBAAkB,AAElB,iBAAkB,AAClB,sBAAuB,AACvB,YAAgB,CACjB,AACD,+CACE,oBAAwB,AACxB,mCAAqC,AACrC,eAAgB,AAChB,YAAa,AACb,aAAe,CAChB,AACD,2DACE,qBAAwB,CACzB,AACD,8DACE,6BAA+B,AAC/B,4BAA+B,CAChC,AACD,6CACE,uBAA0B,CAC3B,AACD,+CACE,uBAA0B,CAC3B,AAED,8DACE,cAAgB,CACjB,AACD,2DACE,4BAA+B,CAChC,AACD,uEACE,WAAY,AACZ,WAAa,CACd,AACD,6EACE,kBAAmB,AACnB,eAAiB,CAClB,AACD,uCACE,YAAa,AACb,kBAAmB,AACnB,kBAAmB,AACnB,WAAY,AACZ,oBAAqB,AAClB,gBAAkB,CACtB,AACD,6CACE,cAAgB,CACjB,AACD,2CACE,sBAAwB,AACxB,yBAA4B,CAC7B,AAID,kDACE,2BAA8B,CAC/B,AAED,0CACE,mCAAqC,AACrC,eAAkB,CAEnB,AACD,oEACE,WAAY,AACZ,WAAa,CACd,AACD,0EACE,kBAAmB,AACnB,eAAiB,CAClB,AACD,iDACE,sBAAwB,CACzB,AACD,yDACE,cAAgB,CACjB,AAED,iBACE,UAAY,CACb,AAKD,uCAEU,gBAAiB,AACzB,QAAY,CACb,AACD,4DACE,qBAAuB,AACvB,aAAe,CAChB,AACD,8CACE,gBAAkB,CACnB,AAID,gDACE,gBAAiB,AACjB,uBAAwB,AACxB,kBAAoB,CACrB,AAED,4BACE,oBAAsB,CACvB,AACD,sCACE,kBAAmB,AACnB,eAAgB,AAChB,qBAAsB,AACtB,WAAY,AACZ,aAAc,AACd,yBAA0B,AAC1B,gBAAiB,AACjB,kBAAmB,AACnB,WAAa,CACd,AACD,gCACE,SAAU,AACV,UAAW,AACX,WAAY,AACZ,YAAa,AACb,oBAAqB,AAClB,gBAAkB,CACtB,AACD,kCAEE,oBAAqB,AACrB,YAAc,CACf,AACD,kDAEM,WAAY,AACR,MAAQ,CACjB,AACD,8CACE,gBAAkB,CACnB,AAED,wCAEE,eAAoB,CACrB,AACD,oBACE,qBAAsB,AACtB,SAAW,CACZ,AACD,oBACE,qBAAsB,AACtB,aAAe,CAChB,AACD,mBACE,aAAe,CAChB,AAED,8BACE,eAAiB,CAClB,AACD,yCACE,YAAa,AACb,cAAe,AACf,kBAAmB,AAEnB,4CAA8C,AAC9C,gBAAiB,AACjB,kBAAmB,AACnB,cAAgB,CACjB,AACD,sDACE,aAAc,AACd,QAAS,AACT,aAAe,CAChB,AACD,+CACE,eAAgB,AAChB,aAAe,CAChB,AACD,4DACE,eAAiB,CAClB,AACD,mCACE,qBAAsB,AACtB,WAAY,AACZ,iBAAmB,CACpB,AACD,0CACE,eAAiB,CAClB,AACD,kDACE,WAAY,AACZ,iBAAmB,CACpB,AACD,mDACE,iBAAmB,CACpB,AACD,6BACE,oBAAsB,CACvB,AACD,wDACE,aAAe,CAChB,AACD,kFAEE,kBAAmB,AACnB,eAAgB,AAChB,qBAAsB,AACtB,WAAY,AACZ,WAAY,AACZ,YAAa,AACb,yBAA0B,AAC1B,gBAAiB,AACjB,iBAAmB,CACpB,AACD,0FAEE,SAAU,AACV,UAAW,AACX,WAAY,AACZ,YAAa,AACb,oBAAqB,AAClB,gBAAkB,CACtB,AACD,wGAEE,aAAc,AACd,kBAAmB,AACnB,MAAO,AACP,SAAU,AACV,OAAQ,AACR,OAAS,CACV,AACD,wHAEE,WAAa,AACb,iBAAkB,AAClB,mBAAoB,AACpB,eAAgB,AAChB,kBAAmB,AACnB,WAAY,AACZ,WAAY,AACZ,WAAY,AACZ,SAAU,AACV,cAAe,AACf,kBAAmB,AACnB,mBAAoB,AACpB,gBAAkB,CACnB,AACD,oHAEE,WAAa,AACb,mBAAoB,AACpB,MAAO,AACP,WAAY,AACZ,YAAa,AACb,iBAAmB,CACpB,AACD,2CACE,eAAgB,AAChB,iBAAmB,CACpB,AACD,6CACE,SAAU,AACV,iBAAmB,CACpB,AACD,sDACE,gBAAkB,CACnB,AACD,uCACE,aAAe,CAChB,AACD,qDACE,iBAAkB,AAClB,eAAgB,AAChB,SAAU,AACV,kBAAmB,AACnB,mBAAoB,AACpB,UAAa,CACd,AACD,wDACE,gBAAkB,CACnB,AACD,wDACE,kBAAoB,CACrB,AACD,4BACE,WAAY,AACZ,YAAa,AACb,iBAAmB,CACpB,AACD,kCACE,WAAa,AACb,gBAAiB,AACjB,MAAO,AACP,WAAY,AACZ,YAAa,AACb,iBAAmB,CACpB,AACD,8BACE,gBAAiB,AACjB,WAAY,AACZ,YAAa,AACb,eAAgB,AAChB,MAAO,AACP,MAAQ,CACT,AACD,yCACE,kBAAmB,AACnB,eAAgB,AAChB,QAAS,AACT,kBAAmB,AACnB,YAAa,AACb,OAAQ,AACR,QAAS,AACT,YAAa,AAEb,YAAa,AACb,gBAAkB,AAElB,iBAAkB,AAClB,kBAAmB,AACnB,wBAA0B,CAC3B,AACD,oCACE,eAAgB,AAChB,WAAa,AACb,WAAY,AACZ,YAAa,AACb,kBAAoB,CACrB,AAED,4BACE,2BAA6B,CAO9B,AAED,uBAEE,oBAAqB,AACrB,aAAc,AAEV,sBAAuB,AACnB,kBAAoB,CAC7B,AACD,kCACE,KAAO,CACR,AACD,4DACE,UAAa,CACd,AACD,2CACE,gBAAkB,CACnB,AACD,uCACE,YAAa,AACb,oBAAsB,CACvB,AACD,uCACE,SAAa,CACd,AACD,yCACE,2BAA4B,AAC5B,4BAA6B,AAC7B,kBAAmB,AACnB,4DAAqE,CACtE,AACD,yCACE,gBAAkB,CACnB,AACD,gDACE,gBAAkB,CACnB,AACD,+BACE,UAAa,CACd,AAED,uEACE,iBAAmB,CACpB,AAED,oBACE,eAAiB,CAClB,AACD,oCACE,gBAAkB,CACnB,AAWD,wCACE,gBAAiB,AACjB,kBAAmB,AACnB,gBAAkB,AAClB,gBAAiB,AACjB,gBAAiB,AACjB,kBAAoB,CACrB,AAED,2BACE,eAAkB,CACnB,AACD,+BAEE,oBAAqB,AACrB,aAAc,AACd,iBAAkB,AAClB,YAAc,CACf,AACD,0CAEM,WAAY,AACR,MAAQ,CACjB,AAED,gCACE,YAAa,AAEb,oBAAqB,AACrB,aAAc,AAGV,0BAA2B,AACvB,qBAAuB,CAChC,AACD,yCAEM,WAAY,AACR,OAAQ,AAChB,gBAAiB,AACjB,kBAAoB,CACrB,AACD,wCACE,cAAe,AAEf,qBAAuB,CACxB,AACD,0CACE,WAAY,AACZ,UAAW,AACX,cAAgB,AAChB,kBAAmB,AACnB,aAAe,CAChB,AACD,4CACE,gBAAkB,CACnB,AACD,yBACE,uBAA0B,CAC3B,AAED,uBACE,mBAAoB,AACpB,WAAa,CACd,AACD,+BACE,gBAAiB,AACjB,eAAiB,CAClB,AACD,0BACE,YAAc,CACf,AACD,8BACE,YAAa,AACb,UAAY,CACb,AACD,uBACE,WAAY,AACZ,cAAgB,AAChB,gBAAkB,AAClB,qBAAsB,AACtB,6BAA8B,AAC9B,MAAO,AACP,eAAgB,AAChB,WAAa,CACd,AACD,2BACE,WAAY,AACZ,cAAgB,CACjB,AACD,+CACE,QAAS,AACT,iBAAmB,CACpB,AACD,6BACE,kBAAmB,AACnB,eAAgB,AAChB,aAAmB,CACpB,AACD,+BACE,iBAAkB,AAClB,iBAAkB,AAClB,aAAmB,CACpB,AACD,wBACE,aAAgB,CACjB,AACD,4BACE,WAAY,AACZ,qBAAsB,AACtB,kBAAmB,AACnB,gBAAkB,AAGlB,qBAAuB,CACxB,AACD,8BACE,WAAY,AACZ,UAAW,AACX,oBAAuB,AACvB,kBAAmB,AACnB,cAAe,AACf,wBAA0B,CAC3B,AACD,gCACE,gBAAkB,CACnB,AAED,6BACE,kBAAoB,CACrB,AAED,gCACE,WAAa,CACd,AACD,0BACE,gBAAkB,AAClB,qBAAsB,AACtB,WAAY,AACZ,aAAe,CAChB,AACD,8BACE,WAAY,AACZ,UAAW,AACX,eAAiB,CAClB,AACD,0CACE,mBAAoB,AACpB,aAAc,AACd,WAAa,AACb,kBAAmB,AACnB,eAAiB,CAClB,AACD,yCACE,mBAAoB,AACpB,aAAc,AACd,WAAa,AACb,iBAAmB,CACpB,AACD,oCACE,cAAgB,CACjB,AACD,oCACE,cAAgB,CACjB,AAWD,sEACE,gBAAiB,AACjB,kBAAmB,AACnB,YAAa,AACb,SAAU,AACV,WAAY,AACZ,iBAAkB,AAClB,eAAgB,AAChB,QAAY,CACb,AACD,4BACE,6BAA8B,AAC9B,mBAAoB,AACpB,eAAiB,CAClB,AACD,gCACE,YAAa,AACb,WAAY,AACZ,kBAAmB,AACnB,iBAAmB,CACpB,AACD,iCACE,kBAAmB,AACnB,SAAU,AACV,cAAgB,CACjB,AACD,mCACE,kBAAmB,AACnB,MAAO,AACP,eAAgB,AAChB,YAAa,AACb,eAAkB,AAClB,mBAAoB,AACpB,yBAA0B,AAC1B,aAAe,CAChB,AACD,4BACM,iBAAkB,AAGpB,iBAAkB,AAClB,eAAiB,CACpB,AACD,kCACE,UAAY,CAEb,AACD,kCACE,UAAW,AACX,YAAc,CACf,AACD,kCACE,UAAW,AACX,WAAa,CACd,AACD,4FAEE,eAAiB,CAClB,AACD,6CACE,cAAgB,CACjB,AACD,2BACE,gBAAkB,AAClB,aAAc,AACd,iBAAmB,CACpB,AACD,iCACE,cAAgB,CACjB,AACD,4BACE,cAAgB,CACjB,AACD,+BACE,qBAAsB,AACtB,gBAAiB,AACjB,aAAe,CAChB,AACD,sCACE,eAAgB,AAChB,aAAe,CAChB,AACD,yCACE,UAAY,CACb,AACD,2BACE,qBAAuB,CACxB,AAED,uBACE,MAAO,AACP,eAAgB,AAChB,mBAAoB,AACpB,cAAgB,AAChB,eAAgB,AAChB,WAAa,AACb,WAAY,AACZ,WAAa,CACd,AACD,0BACE,eAAiB,CAClB,AAED,qCACE,YAAa,AACb,qBAAuB,CAGxB,AACD,4BACE,WAAY,AACZ,qBAAsB,AACtB,gBAAkB,AAClB,YAAc,CACf,AACD,mCACE,gBAAiB,AAEjB,eAAgB,AAChB,aAAe,CAChB,AACD,wCACE,wBAAyB,AACzB,kBAAoB,CACrB,AACD,6BACE,YAAa,AACb,WAAY,AACZ,iBAAmB,CACpB,AACD,4BACE,gBAAiB,AACjB,WAAY,AACZ,oBAAsB,CACvB,AACD,kCACE,kBAAmB,AACnB,WAAY,AACZ,aAAe,CAChB,AACD,4BACE,cAAgB,CACjB,AACD,6BACE,gBAAiB,AACjB,SAAU,AACV,kBAAmB,AACnB,WAAa,AACb,mBAAoB,AACpB,UAAY,CACb,AACD,uCACE,cAAgB,CACjB,AACD,uCACE,qBAAsB,AACtB,aAAe,CAChB,AACD,6BACE,aAAe,CAChB,AACD,yCACE,mBAAoB,AACpB,UAAa,CACd,AACD,6BACE,aAAe,CAChB,AACD,yCACE,mBAAoB,AACpB,UAAa,CACd,AACD,6BACE,aAAe,CAChB,AACD,yCACE,mBAAoB,AACpB,UAAa,CACd,AACD,0BACE,gBAAiB,AACjB,gBAAkB,AAClB,YAAc,CACf,AACD,iCACE,YAAa,AACb,eAAgB,AAChB,aAAe,CAChB,AACD,sCACE,wBAAyB,AACzB,kBAAoB,CACrB,AACD,8BACE,cAAe,AACf,gBAAiB,AACjB,YAAa,AACb,4BAA8B,CAC/B,AACD,mCAEE,cAAe,AACf,YAAa,AACb,eAAgB,AAChB,eAAiB,CAClB,AACD,iCACE,6BAA8B,AAC9B,gBAAkB,AAElB,iBAAmB,CACpB,AACD,wCAEE,mBAAoB,AACpB,eAAgB,AAChB,eAAiB,CAClB,AACD,yCACE,eAAiB,CAClB,AACD,6CACE,UAAW,AACX,YAAa,AACb,mBAAqB,CACtB,AACD,8CACE,YAAa,AACb,cAAe,AACf,eAAiB,CAClB,AACD,kDACE,eAAgB,AAChB,cAAe,AACf,YAAa,AACb,WAAY,AACZ,kBAAmB,AACnB,kBAAmB,AACnB,OAAS,CACV,AACD,sCACE,gBAAkB,CACnB,AACD,uCACE,kBAAmB,AACnB,YAAa,AAEb,OAAS,CACV,AACD,0BACE,eAAgB,AAChB,WAAY,AAGZ,aAAe,CAChB,AACD,4BACE,eAAgB,AAChB,eAAgB,AAChB,WAAY,AACZ,iBAAkB,AAClB,iBAAmB,CACpB,AACD,kCACE,gBAAiB,AACjB,gBAAiB,AACjB,gBAAiB,AACjB,kBAAmB,AACnB,aAAe,CAChB,AAED,uBACE,MAAO,AACP,eAAgB,AAChB,mBAAoB,AACpB,cAAgB,AAChB,eAAgB,AAChB,WAAa,AACb,WAAY,AACZ,WAAa,CACd,AACD,0BACE,eAAiB,CAClB,AAED,gCACE,sBAAuB,AACvB,gBAAiB,AACjB,WAAa,CACd,AACD,2BACE,WAAY,AACZ,yBAA0B,AAC1B,gBAAkB,AAClB,iBAAmB,CACpB,AACD,+BACE,YAAa,AACb,qBAAsB,AACtB,UAAY,CACb,AACD,uCACE,YAAa,AACb,WAAY,AACZ,kBAAoB,CAErB,AACD,uCACE,mCAAqC,AACrC,iBAAmB,CACpB,AACD,0BACE,gBAAkB,AAClB,+BAAiC,CAClC,AACD,2BACE,mBAAoB,AACpB,YAAa,AACb,WAAa,AACb,WAAa,CACd,AACD,6BACE,QAAS,AACT,kBAAmB,AACnB,iBAAmB,CACpB,AACD,gCACE,gBAAkB,CACnB,AAQD,4BACE,kBAAmB,AACnB,gBAAkB,AAClB,4BAA8B,CAC/B,AACD,kCACE,cAAgB,CACjB,AACD,wCACE,gBAAiB,AACjB,eAAgB,AAChB,cAAe,AACf,qBAAsB,AACtB,UAAY,CACb,AACD,uCAGE,cAAe,AACf,eAAiB,CAClB,AACD,2CACE,kBAAmB,AACnB,YAAa,AACb,WAAY,AACZ,QAAS,AACT,iBAAmB,CACpB,AACD,6CACE,kBAAmB,AACnB,YAAa,AACb,OAAS,CACV,AACD,2BACE,kBAAmB,AACnB,WAAY,AACZ,wBAA0B,CAC3B,AAID,6BACE,gBAAiB,AACjB,UAAY,CACb,AACD,iCACE,YAAa,AACb,iBAAmB,CACpB,AACD,4BACE,gBAAkB,CACnB,AACD,gCACE,YAAa,AACb,UAAW,AACX,iBAAmB,CACpB,AACD,4CACE,eAAiB,CAClB,AACD,2CACE,cAAgB,CACjB,AACD,uBACE,mBAAoB,AACpB,qBAAsB,AAEtB,WAAa,AACb,kBAAmB,AACnB,eAAgB,AAChB,gBAAkB,CACnB,AAED,kCACE,WAAa,CACd,AACD,6BACE,gBAAkB,AAClB,YAAa,AAEL,gCAAiC,AAEzC,kBAAmB,AACnB,aAAc,AACd,kBAAoB,CACrB,AACD,6BACE,YAAa,AACb,UAAW,AACX,iBAAmB,CACpB,AACD,8CACE,eAAiB,CAClB,AACD,6CACE,cAAgB,CACjB,AACD,qCACE,WAAa,CACd,AACD,sCACE,eAAgB,AAChB,aAAe,CAChB,AACD,qCACE,eAAgB,AAChB,YAAa,AACb,eAAgB,AAChB,aAAe,CAChB,AACD,qCACE,eAAiB,CAClB,AACD,wCACE,kBAAyB,AACzB,eAAgB,AAChB,aAAe,CAChB,AACD,uCACE,kBAAuB,AACvB,wBAA2B,CAC5B,AACD,kDACE,WAAa,CACd,AAED,uBACE,MAAO,AACP,eAAgB,AAChB,mBAAoB,AACpB,cAAgB,AAChB,eAAgB,AAChB,WAAa,AACb,WAAY,AACZ,WAAa,CACd,AACD,uBACE,gBAAiB,AACjB,aAAc,AACd,gBAAkB,AAClB,cAAe,AACf,eAAgB,AAChB,qBAAsB,AACtB,UAAY,CACb,AACD,2BACE,UAAY,CACb,AACD,sCACE,mBAAoB,AACpB,gBAAkB,CACnB,AACD,2BACE,YAAa,AACb,WAAY,AACZ,kBAAmB,AACnB,eAAkB,AAClB,QAAS,AACT,kBAAmB,AACnB,wBAA0B,CAC3B,AACD,uBACE,iBAAmB,AACnB,gBAAkB,AAClB,WAAY,AACZ,oBAAsB,CACvB,AACD,4BACE,eAAgB,AAChB,WAAY,AACZ,cAAgB,AAChB,gCAAiC,AAEjC,oBAAqB,AACrB,YAAc,CACf,AACD,kCACE,eAAkB,CACnB,AACD,oCACE,kBAAmB,AACnB,gBAAkB,CACnB,AACD,2CAEM,WAAY,AACR,OAAQ,AAChB,gBAAkB,CACnB,AAED,4BACE,kBAAmB,AACnB,YAAa,AACb,OAAQ,AACR,QAAS,AACT,cAAe,AACf,YAAc,CACf,AACD,sCACE,gBAAiB,AACjB,mBAAoB,AACpB,qBAAsB,AACtB,aAAc,AACd,sBAAuB,AACvB,iBAAmB,CACpB,AACD,sDACE,eAAiB,CAClB,AACD,0CACE,YAAa,AACb,UAAY,CACb,AACD,mCAEE,oBAAqB,AACrB,YAAc,CACf,AACD,sCACE,iBAAmB,CACpB,AACD,yCAEM,WAAY,AACR,OAAQ,AAChB,gBAAkB,CACnB,AACD,kDACE,oBAAsB,CACvB,AAED,8BACE,kBAAmB,AACnB,gBAAiB,AACjB,kBAAmB,AACnB,OAAQ,AAER,WAAa,CACd,AAED,qCACE,mBAAsB,CACvB,AAED,2BAEE,oBAAqB,AACrB,aAAc,AACd,+BAAiC,CAClC,AACD,wCACE,eAAgB,AAChB,mBAAoB,AACpB,gBAAkB,AAClB,eAAgB,AAChB,cAAe,AACf,mBAAoB,AACpB,+BAAiC,CAClC,AACD,iDACE,kBAAmB,AACnB,WAAa,CACd,AACD,6CACE,kBAAmB,AACnB,QAAS,AACT,gBAAkB,CACnB,AACD,oCACE,iBAAkB,AAClB,kBAAmB,AACnB,oBAAsB,CACvB,AACD,4CAEM,WAAY,AACR,MAAQ,CACjB,AAED,iCAEE,oBAAqB,AACrB,YAAc,CACf,AACD,8CACE,YAAa,AACb,iBAAmB,CACpB,AACD,+CAEM,WAAY,AACR,MAAQ,CACjB,AACD,0BACE,eAAiB,CAClB,AACD,0BACE,qBAAsB,AACtB,UAAY,CACb,AACD,8BACE,WAAY,AACZ,SAAW,CACZ,AACD,0CACE,eAAiB,CAClB,AACD,0BACE,iBAAkB,AAClB,iBAAmB,CACpB,AACD,kCACE,aAAc,AACd,UAAW,AACX,UAAW,AACX,kBAAmB,AACnB,UAAW,AACX,cAAgB,CACjB,AACD,gCACE,cAAgB,CACjB,AACD,wCACE,aAAe,CAChB,AAED,2CACE,qBAAwB,CACzB,AAED,6BACE,WAAY,AACZ,qBAAsB,AACtB,YAAa,AACb,kBAAmB,AACnB,gBAAiB,AACjB,eAAgB,AAChB,aAAc,AACd,cAAe,AAEf,wBAA0B,AAC1B,kBAAmB,AACnB,gBAAkB,CACnB,AACD,yBACE,iBAAkB,AAClB,mBAAoB,AACpB,WAAa,AACb,cAAgB,CACjB,AAED,wBAEU,8BAAiC,AAEzC,mBAAoB,AACpB,gBAAkB,AAElB,yBAA0B,AAC1B,YAAa,AACb,iBAAmB,CACpB,AAED,mCACE,iBAAkB,AAElB,oBAAqB,AACrB,YAAc,CACf,AACD,gDAEM,WAAY,AACR,OAAQ,AAChB,YAAc,CACf,AAED,mCACE,iBAAmB,CACpB,AACD,8FAEE,qBAAwB,AACxB,qBAAyB,CAC1B,AAED,0BACE,aAAc,AACd,iBAAkB,AAClB,eAAkB,CACnB,AACD,yBAEE,oBAAqB,AACrB,YAAc,CACf,AACD,+BACE,cAAe,AACf,yBAA0B,AAC1B,iBAAkB,AAClB,WAAY,AACZ,iBAAmB,CACpB,AACD,6BAEM,WAAY,AACR,MAAQ,CACjB,AAED,gCACE,iBAAkB,AAClB,OAAQ,AACR,cAAe,AACf,QAAS,AAET,oBAAqB,AACrB,aAAc,AACd,iBAAkB,AAClB,YAAa,AACb,kBAAmB,AACnB,YAAc,CACf,AACD,uCACE,YAAa,AACb,WAAY,AACZ,kBAAoB,CAErB,AACD,uCACE,mCAAqC,AACrC,iBAAmB,CACpB,AACD,0BACE,gBAAkB,AAClB,+BAAiC,CAClC,AACD,2BACE,mBAAoB,AACpB,YAAa,AACb,WAAa,AACb,WAAa,CACd,AACD,6BACE,QAAS,AACT,kBAAmB,AACnB,iBAAmB,CACpB,AACD,gCACE,gBAAkB,CACnB,AACD,4BACE,mBAAoB,AACpB,kBAAmB,AACnB,gBAAkB,AAClB,4BAA8B,CAC/B,AACD,8CACE,cAAe,AACf,cAAgB,CACjB,AACD,wCACE,gBAAiB,AACjB,eAAgB,AAChB,cAAe,AACf,qBAAsB,AACtB,UAAY,CACb,AACD,uCACE,iBAAkB,AAClB,cAAe,AACf,eAAiB,CAClB,AACD,2CACE,kBAAmB,AACnB,YAAa,AACb,WAAY,AACZ,QAAS,AACT,iBAAmB,CACpB,AACD,6CACE,kBAAmB,AACnB,YAAa,AACb,OAAS,CACV,AACD,2BACE,kBAAmB,AACnB,WAAY,AACZ,wBAA0B,CAC3B,AAID,6BACE,UAAY,CACb,AACD,iCACE,oBAAqB,AAClB,iBAAkB,AACrB,YAAa,AACb,YAAa,AACb,iBAAmB,CACpB,AACD,4BACE,gBAAkB,CACnB,AACD,gCACE,YAAa,AACb,UAAW,AACX,kBAAmB,AACnB,SAAU,AACV,UAAW,AACX,oBAAqB,AAClB,gBAAkB,CACtB,AACD,4CACE,eAAiB,CAClB,AACD,2CACE,cAAgB,CACjB,AACD,uBACE,mBAAoB,AACpB,qBAAsB,AAEtB,WAAa,AACb,kBAAmB,AACnB,eAAgB,AAChB,gBAAkB,CACnB,AACD,yBACE,iBAAkB,AAClB,iBAAmB,CACpB,AACD,uBACE,gBAAkB,AAClB,cAAiB,AAEb,WAAY,AACR,OAAQ,AAChB,iBAAkB,AAClB,kBAAmB,AACnB,8BAA+B,AAC/B,8BAAgC,CACjC,AAED,4BACE,kBAAmB,AACnB,iBAAmB,CACpB,AACD,yDAEE,oBAAsB,CACvB,AACD,iEAEE,YAAa,AACb,WAAY,AACZ,iBAAmB,CACpB,AACD,8IAIE,eAAiB,CAClB,AACD,mEAEE,kBAAmB,AACnB,iBAAmB,CACpB,AACD,2EAEE,UAAW,AACX,kBAAmB,AACnB,QAAS,AACT,gBAAkB,CACnB,AACD,qEAEE,qBAAsB,AACtB,WAAY,AACZ,gBAAkB,CACnB,AACD,+BACE,eAAiB,CAClB,AACD,oBACE,eAAgB,AAChB,gBAAiB,AACjB,gBAAiB,AACjB,iBAAmB,CACpB,AAED,2BAEE,oBAAqB,AACrB,YAAc,CACf,AACD,sCACE,WAAa,CACd,AACD,wCAEM,WAAY,AACR,MAAQ,CACjB,AAED,8BACE,qBAAsB,AACtB,WAAa,CACd,AACD,4CACE,kBAAmB,AACnB,cAAiB,AACjB,SAAU,AACV,SAAU,AACV,2BAA6B,CAC9B,AACD,uCACE,cAAe,AACf,cAAgB,CACjB,AACD,2CACE,cAAgB,CACjB,AACD,4BACE,WAAa,AACb,iBAAkB,AAClB,mBAAoB,AACpB,eAAgB,AAChB,eAAgB,AAChB,kBAAmB,AACnB,QAAS,AACT,WAAa,CACd,AAED,4CACE,aAAe,CAChB,AACD,iEACE,iBAAoB,CACrB,AAED,2BAEE,oBAAqB,AACrB,YAAc,CACf,AACD,sCACE,WAAa,CACd,AACD,wCAEM,WAAY,AACR,MAAQ,CACjB,AAED,8BACE,qBAAsB,AACtB,WAAa,CACd,AACD,4CACE,kBAAmB,AACnB,cAAiB,AACjB,SAAU,AACV,SAAU,AACV,2BAA6B,CAC9B,AACD,uCACE,cAAe,AACf,cAAgB,CACjB,AACD,2CACE,cAAgB,CACjB,AACD,4BACE,WAAa,AACb,iBAAkB,AAClB,mBAAoB,AACpB,eAAgB,AAChB,eAAgB,AAChB,kBAAmB,AACnB,QAAS,AACT,WAAa,CACd,AAED,4CACE,aAAe,CAChB,AACD,iEACE,iBAAoB,CACrB,AAED,4BACE,gBAAkB,AAClB,gBAAiB,AACjB,aAAc,AACd,wBAA0B,CAC3B,AACD,yBAEE,oBAAqB,AACrB,aAAc,AACd,kBAAoB,CACrB,AACD,+BACE,iBAAkB,AAClB,gCAAiC,AACjC,eAAgB,AAEhB,eAAiB,CAClB,AACD,+BAEM,WAAY,AACR,OAAQ,AAChB,gBAAkB,CACnB,AAED,yBACE,mBAAoB,AACpB,gBAAkB,AAClB,aAAiB,CAClB,AACD,yBACE,kBAAmB,AACnB,cAAiB,AACjB,eAAkB,CACnB,AAED,oCACE,UAAa,AACb,SAAY,AACR,QAAU,CACf,AACD,kCACI,uBAAwB,CAC3B,AAED,0BACE,gBAAiB,AACjB,eAAkB,CACnB,AACD,0BAEE,oBAAqB,AACrB,YAAc,CACf,AACD,8BACE,aAAc,AACd,YAAa,AAET,WAAY,AACR,MAAQ,CACjB,AAgBD,2BACE,mBAAoB,AACpB,YAAc,CACf,AACD,mCACE,eAAkB,CACnB,AAED,8BACE,mBAAoB,AACpB,YAAc,CACf,AACD,oCAEE,oBAAqB,AACrB,YAAc,CACf,AACD,wCAEM,WAAY,AACR,OAAQ,AAChB,YAAa,AACb,eAAiB,CAClB,AAED,iCACE,mBAAoB,AACpB,WAAY,AACZ,WAAa,CAEd,AACD,gCACE,kBAAmB,AACnB,iBAAkB,AAElB,cAAgB,CACjB,AACD,kCACE,WAAY,AACZ,cAAgB,CACjB,AACD,kCACE,WAAa,AAEb,eAAgB,AAChB,cAAgB,CACjB,AACD,2BAEU,yCAAiD,AAEzD,oBAAqB,AACrB,aAAc,AACd,iBAAmB,CACpB,AACD,sCACE,UAAY,CACb,AACD,0CAEM,WAAY,AACR,MAAQ,CACjB,AACD,sCACE,kBAAmB,AACnB,uB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AmB,AACnB,mBAAoB,AACpB,kBAAmB,AACnB,YAAa,AACb,aAAc,AACd,4DAAgE,CACjE,AAED,4BACE,aAAe,CAChB,AACD,sCACE,YAAc,CACf,AACD,kDACE,aAAe,CAChB,AACD,kCACE,mBAAoB,AACpB,6BAA8B,AAC9B,mBAAoB,AAEpB,oBAAqB,AACrB,YAAc,CACf,AACD,0CACE,cAAe,AACf,gBAAiB,AACjB,YAAa,AACb,cAAgB,CACjB,AACD,4CACE,kBAAmB,AACnB,SAAU,AACV,SAAW,CACZ,AACD,2CACE,SAAY,AAER,WAAY,AACR,MAAQ,CACjB,AACD,wCACE,kBAAmB,AACnB,eAAgB,AAChB,SAAU,AACV,WAAY,AACZ,yBAA0B,AAC1B,kBAAmB,AACnB,YAAa,AACb,gBAAkB,CACnB,AACD,wCAEU,kCAAuC,CAChD,AACD,8CACE,4BAA6B,AAC7B,+BAAgC,AAChC,uBAA6B,AAC7B,YAAa,AACb,iBAAkB,AAClB,gBAAkB,AAClB,aAAc,AAEN,6BAAiC,CAC1C,AACD,gCACE,gBAAkB,CACnB,AACD,oCACE,WAAa,CACd,AACD,8CACE,eAAgB,AAChB,kBAAmB,AACnB,WAAa,AACb,gBAAiB,AACjB,eAAiB,CAClB,AACD,sCACE,YAAa,AACb,cAAgB,CACjB,AACD,6BACE,eAAiB,CAClB,AACD,yBACE,iBAAkB,AAClB,eAAiB,CAClB,AACD,2BACE,gBAAkB,CACnB,AACD,+BACE,aAAc,AACd,kBAAmB,AACnB,eAAgB,AAChB,kBAAmB,AACnB,WAAY,AACZ,SAAY,AACZ,mBAAoB,AACpB,4BAA8B,CAC/B,AACD,iCACE,kBAAmB,AACnB,SAAU,AACV,gBAAkB,CACnB,AACD,iCACE,iBAAkB,AAClB,UAAa,CACd,AACD,uCACE,YAAc,CACf,AACD,wCACE,UAAY,CACb,AACD,oCACA,uBACI,YAAc,CACjB,AACD,qBACI,qBAAuB,CAC1B,AACD,6BAEY,0BAA4B,AAGpC,oBAAuB,CAF1B,AASD,sGACI,YAAc,CACjB,AACD,4BACI,yBAA4B,CAC/B,CACA,AAED,mEACE,uB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","file":"main.687f77fdea20bdad3b9ca120bc2f5962.css","sourcesContent":["\n.el-loading {\r\n z-index: 999999;\n}\r\n/* 解决element-ui的table表格控件表头与内容列不对齐问题 */\r\n/* .el-table th.gutter{\r\n display: table-cell !important;\r\n } */\n.el-table th {\r\n display: table-cell !important;\n}\n.el-loading .el-loading-spinner {\r\n padding: 7px;\r\n background: #ececec;\r\n width: 200px;\r\n color: red;\r\n left: 0;\r\n right: 0;\r\n margin: 0 auto;\r\n border-radius: 5px;\r\n border: 1px solid #a0a0a0;\n}\n#app {\r\n font-family: \"Avenir\", Helvetica, Arial, sans-serif;\r\n -webkit-font-smoothing: antialiased;\r\n -moz-osx-font-smoothing: grayscale;\r\n /* text-align: center; */\r\n color: #2c3e50;\r\n /* margin-top: 60px; */\n}\n#nprogress .bar {\r\n background: white;\r\n height: 2px;\r\n /* filter: blur(0.5px) */\n}\n.ivu-form .ivu-form-item-label {\r\n color: #2e2e2f;\n}\r\n/* 2021.03.20修复明细表格错位 */\n.grid-detail .el-table__fixed-body-wrapper{\r\n top: 41px !important;\n}\r\n\nhtml,\r\nbody,\r\n#app {\r\n height: 100%;\n}\r\n* {\n box-sizing: border-box;\n -moz-box-sizing: border-box;\n /* Firefox */\n -webkit-box-sizing: border-box;\n /* Safari */\n}\n.el-pager li {\n font-weight: 100;\n margin-right: 9px;\n border: 1px solid #eee;\n border-radius: 3px;\n min-width: 28px;\n}\n.el-pager li.active,\n.el-pager li:hover {\n background: #ed4014;\n color: white;\n}\n.el-pagination__editor.el-input .el-input__inner {\n height: 23px;\n}\n.animated {\n -webkit-animation-duration: 0.5s;\n animation-duration: 0.5s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n}\n@media (print), (prefers-reduced-motion) {\n .animated {\n -webkit-animation: unset !important;\n animation: unset !important;\n -webkit-transition: none !important;\n transition: none !important;\n }\n}\n@-webkit-keyframes fadeInDown {\n from {\n opacity: 1;\n -webkit-transform: translate3d(0, -100%, 0);\n transform: translate3d(0, -100%, 0);\n }\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}\n@keyframes fadeInDown {\n from {\n opacity: 0;\n -webkit-transform: translate3d(0, -100%, 0);\n transform: translate3d(0, -100%, 0);\n }\n to {\n opacity: 1;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}\n.fadeInDown {\n -webkit-animation-name: fadeInDown;\n animation-name: fadeInDown;\n}\n.ivu-message {\n z-index: 999999999 !important;\n}\n.ivu-form-item-content {\n text-align: left;\n}\n\n.icons-item[data-v-bf012582] {\n float: left;\n margin: 6px 6px 6px 0;\n width: 145px;\n text-align: center;\n list-style: none;\n cursor: pointer;\n height: 100px;\n color: #5c6b77;\n -webkit-transition: all 0.2s ease;\n transition: all 0.2s ease;\n position: relative;\n padding-top: 10px;\n}\n.active[data-v-bf012582] {\n border: 1px solid;\n background: #f44336;\n color: white;\n font-size: 32px;\n}\n\n.upload-container[data-v-d25a0afc] {\n display: inline-block;\n width: 100%;\n padding: 10px;\n border: 1px dashed #2d8cf0;\n min-height: 250px;\n border-radius: 5px;\n}\n.upload-container .alert[data-v-d25a0afc] {\n margin-top: 43px;\n}\n.upload-container .button-group > *[data-v-d25a0afc] {\n float: left;\n margin-right: 10px;\n}\n.upload-container .file-info > span[data-v-d25a0afc] {\n margin-right: 20px;\n}\n.upload-container .v-r-message[data-v-d25a0afc] {\n margin-top: 10px;\n}\n.upload-container .v-r-message .title[data-v-d25a0afc] {\n margin-bottom: 2px;\n}\n.upload-container .v-r-message > .text[data-v-d25a0afc] {\n font-size: 13px;\n}\n.upload-container .v-r-message .v-r-success[data-v-d25a0afc] {\n color: #02b702;\n}\n.upload-container .v-r-message .v-r-error[data-v-d25a0afc] {\n color: #dc0909;\n}\n\n.upload-container .alert[data-v-dcf2f5da] {\n margin-top: 43px;\n}\n.upload-container .button-group > *[data-v-dcf2f5da] {\n float: left;\n margin-right: 10px;\n}\n.upload-container .file-info > span[data-v-dcf2f5da] {\n margin-right: 20px;\n}\n.upload-container .img-selector i[data-v-dcf2f5da] {\n font-size: 60px;\n}\n.upload-container .imgs[data-v-dcf2f5da] {\n width: 100%;\n display: inline-block;\n}\n.upload-container .imgs .item[data-v-dcf2f5da]:hover {\n cursor: pointer;\n}\n.upload-container .imgs .item:hover .remove[data-v-dcf2f5da] {\n display: block;\n}\n.upload-container .imgs > .item[data-v-dcf2f5da] {\n position: relative;\n text-align: center;\n float: left;\n line-height: 80px;\n margin-right: 20px;\n}\n.upload-container .imgs > .item .remove[data-v-dcf2f5da] {\n display: none;\n position: absolute;\n top: 0;\n width: 100%;\n line-height: 20px;\n background: #9e9e9e;\n text-align: right;\n padding: 5px 10px;\n opacity: 0.7;\n font-size: 22px;\n color: #f56234;\n}\n.upload-container .imgs > .item .remove i[data-v-dcf2f5da] {\n cursor: pointer;\n}\n.upload-container .imgs .img-selector[data-v-dcf2f5da] {\n color: #9e9e9e;\n text-align: center;\n float: left;\n}\n.upload-container .imgs .img-selector[data-v-dcf2f5da]:hover {\n cursor: pointer;\n}\n\n.img-selector[data-v-dcf2f5da] .ivu-upload-select {\r\n border: 1px dashed #2d8cf0;\n}\r\n\n.t-tree[data-v-b719b222] {\r\n padding: 100px;\n}\n.action-group[data-v-b719b222] {\r\n width: 100%;\r\n display: -webkit-box;\r\n display: -ms-flexbox;\r\n display: flex;\n}\n.action-text[data-v-b719b222] {\r\n /* width: 200px; */\r\n margin-right: 10px;\n}\n.action-item[data-v-b719b222] {\r\n -webkit-box-flex: 1;\r\n -ms-flex: 1;\r\n flex: 1;\n}\n.action-item > label[data-v-b719b222] {\r\n width: 80px;\n}\r\n\n.rm-main[data-v-2273e12f] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.rm-main .rm-main-left[data-v-2273e12f] {\n -webkit-box-flex: 0.25;\n -ms-flex: 0.25;\n flex: 0.25;\n padding: 30px 35px;\n overflow: hidden;\n background: #eeeeee;\n}\n.rm-main .rm-main-right[data-v-2273e12f] {\n -webkit-box-flex: 0.8;\n -ms-flex: 0.8;\n flex: 0.8;\n padding: 35px 30px 10px 35px;\n}\n.totop[data-v-2273e12f] {\n position: fixed;\n bottom: 100px;\n right: 40px;\n width: 40px;\n height: 40px;\n background-color: #fff;\n border-radius: 50%;\n -webkit-box-shadow: 0 0 6px rgba(0, 0, 0, 0.12);\n box-shadow: 0 0 6px rgba(0, 0, 0, 0.12);\n cursor: pointer;\n z-index: 5;\n}\n.totop .el-icon-caret-top[data-v-2273e12f] {\n color: #fff;\n display: block;\n line-height: 40px;\n text-align: center;\n font-size: 18px;\n}\n.totop:hover .el-icon-caret-top[data-v-2273e12f] {\n color: #3399ff;\n}\n\n.right .right-top[data-v-2b8fc8bc] {\n color: #2894FF;\n text-align: center;\n letter-spacing: 5px;\n}\n.right .right-top h1[data-v-2b8fc8bc] {\n margin-top: 10px;\n margin-bottom: 0;\n font-weight: 500;\n letter-spacing: 5px;\n}\n.right .right-top h3[data-v-2b8fc8bc] {\n margin: 15px 0;\n font-size: 20px;\n font-weight: 500;\n}\n.right .right-top .right-top__avatar[data-v-2b8fc8bc] {\n display: inline-block;\n width: 200px;\n height: 200px;\n border-radius: 50%;\n background: #FFF;\n}\n.right .right-info[data-v-2b8fc8bc] {\n margin: 70px 0;\n padding-left: 20px;\n}\n.right .right-skill[data-v-2b8fc8bc] {\n height: 260px;\n text-align: center;\n}\n.right .right-skill > p[data-v-2b8fc8bc] {\n margin: 0;\n text-align: left;\n}\n.right .right-skill a[data-v-2b8fc8bc] {\n text-decoration: none;\n border-bottom: 1px solid #999;\n word-wrap: break-word;\n display: inline-block;\n margin: 8px;\n font-size: 12px;\n color: #9d9d9d;\n cursor: pointer;\n}\n.right .right-skill a[data-v-2b8fc8bc]:active,\n.right .right-skill a[data-v-2b8fc8bc]:hover {\n outline: 0;\n border-bottom-color: #222;\n color: #9d9d9d;\n}\n.right .right-link[data-v-2b8fc8bc] {\n margin-top: 50px;\n padding-left: 20px;\n}\n.right .right-link p[data-v-2b8fc8bc] {\n cursor: pointer;\n}\n.right .right-link p img[data-v-2b8fc8bc] {\n width: 24px;\n height: 24px;\n vertical-align: top;\n}\n.right .right-link p a[data-v-2b8fc8bc] {\n color: #2894FF;\n margin-left: 10px;\n}\n.right .right-link p[data-v-2b8fc8bc]:hover {\n color: rgba(30, 144, 255);\n}\n.right .right-link p:hover a[data-v-2b8fc8bc] {\n text-decoration: underline;\n}\n.right .right-skills[data-v-2b8fc8bc] {\n margin: 200px 0;\n}\n.right .right-skills > p[data-v-2b8fc8bc] {\n margin: 0;\n text-align: left;\n}\n.right .right-skills a[data-v-2b8fc8bc] {\n text-decoration: none;\n border-bottom: 1px solid #999;\n word-wrap: break-word;\n display: inline-block;\n margin: 8px;\n font-size: 12px;\n color: #9d9d9d;\n cursor: pointer;\n}\n.right .right-skills a[data-v-2b8fc8bc]:active,\n.right .right-skills a[data-v-2b8fc8bc]:hover {\n outline: 0;\n border-bottom-color: #222;\n color: #9d9d9d;\n}\n\n.ivu-card-head p {\r\n color: #337ab7;\r\n font-weight: 600;\n}\n.bg-light-blue {\r\n background-color: #3c8dbc !important;\r\n color: #fff !important;\r\n font-weight: 600;\r\n padding: 5px;\r\n display: inline-block;\r\n background-color: #fff;\r\n border-radius: 4px;\r\n font-family: \"Source Sans Pro\", \"Microsoft YaHei\", \"Helvetica Neue\", Helvetica,\r\n Arial, sans-serif;\r\n\r\n /* margin-right: 100%; */\r\n margin-bottom: 15px;\n}\n.el-row {\r\n margin-bottom: 20px;\n}\n.el-col {\r\n border-radius: 4px;\n}\n.bg-purple-dark {\r\n background: #99a9bf;\n}\n.bg-purple {\r\n background: #d3dce6;\n}\n.bg-purple-light {\r\n background: #e5e9f2;\n}\n.grid-content {\r\n border-radius: 4px;\r\n min-height: 36px;\n}\n.row-bg {\r\n padding: 10px 0;\r\n background-color: #f9fafc;\n}\r\n\nbody[data-v-204d69b0] {\n background-color: #fff;\n}\n.middle-box[data-v-204d69b0] {\n text-align: center;\n padding-top: 80px;\n height: 100%;\n}\n.middle-box h1[data-v-204d69b0] {\n font-size: 140px;\n font-weight: 100;\n}\n.middle-box .back[data-v-204d69b0] {\n padding: 10px;\n}\n\n.view-container[data-v-3ab0f987] {\n background: white;\n}\n.view-container .grid-search[data-v-3ab0f987] {\n padding-top: 15px;\n}\n.view-container .grid-container[data-v-3ab0f987],\n.view-container .grid-body[data-v-3ab0f987] {\n padding: 0 15px;\n}\n.view-container .view-header[data-v-3ab0f987] {\n padding-left: 15px;\n padding-right: 15px;\n}\n.view-container .fs-line[data-v-3ab0f987] {\n height: 10px;\n background: #eee;\n margin-top: -10px;\n margin-bottom: 11px;\n border-top: 1px solid #dadada;\n border-bottom: 1px solid #dadada;\n}\n.view-header[data-v-3ab0f987] {\n height: 45px;\n position: relative;\n padding-bottom: 11px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.view-header .search-line[data-v-3ab0f987] {\n width: 180px;\n}\n.view-header .search-line > div[data-v-3ab0f987] {\n margin-left: 5px;\n margin-right: 10px;\n}\n.view-header .search-line > div > div[data-v-3ab0f987] {\n width: 200px;\n text-align: left;\n}\n.view-header .search-line > div[data-v-3ab0f987]:first-child {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n}\n.view-header .search-line > div .ivu-select-dropdown[data-v-3ab0f987] {\n max-height: 300px;\n}\n.view-header .btn-group[data-v-3ab0f987] {\n white-space: nowrap;\n}\n.view-header .btn-group button[data-v-3ab0f987] {\n margin-left: 10px;\n}\n.view-header .btn-group .dropdown[data-v-3ab0f987] {\n height: 31px;\n padding-right: 9px;\n padding-left: 11px;\n border-top-right-radius: 0px;\n border-bottom-right-radius: 0px;\n}\n.view-header .btn-group .r-dropdown[data-v-3ab0f987] {\n height: 31px;\n margin-left: 0px;\n padding-left: 5px;\n padding-right: 5px;\n border-bottom-left-radius: 0px;\n border-left: 1px solid #eee;\n border-top-left-radius: 0;\n}\n.view-header .btn-group .ivu-dropdown-item[data-v-3ab0f987] {\n text-align: left !important;\n}\n.view-header .btn-group .ivu-dropdown-item[data-v-3ab0f987]:not(:last-child) {\n border-bottom: 1px dotted #eee;\n}\n.view-header .desc-text[data-v-3ab0f987] {\n margin-top: 5px;\n font-weight: bold;\n margin-bottom: 3px;\n font-size: 14px;\n color: #313131;\n white-space: nowrap;\n border-bottom: 2px solid #646565;\n}\n.view-header .desc-text .ivu-icon[data-v-3ab0f987] {\n font-size: 20px;\n bottom: 2px;\n position: relative;\n}\n.view-header .search-box[data-v-3ab0f987] {\n background: #fefefe;\n margin-top: 45px;\n border: 1px solid #ececec;\n position: absolute;\n z-index: 999;\n left: 0;\n right: 0;\n padding: 25px 40px;\n padding-bottom: 0;\n -webkit-box-shadow: 0px 7px 18px -12px #bdc0bb;\n box-shadow: 0px 7px 18px -12px #bdc0bb;\n}\n.view-header .notice[data-v-3ab0f987] {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n position: relative;\n top: 12px;\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n left: 10px;\n margin-right: 20px;\n}\n.table-info-cell-title[data-v-3ab0f987] {\n background-color: #f5f5f5 !important;\n}\n.iview-com[data-v-3ab0f987] {\n background: #f3f3f3;\n}\n.iview-com > div.item[data-v-3ab0f987] {\n margin-bottom: 12px;\n background: white;\n}\n.iview-com > div.form-item[data-v-3ab0f987] {\n padding: 8px 16px 7px 16px;\n}\n.iview-com > div.table-item[data-v-3ab0f987] {\n padding: 0 10px;\n border-top: 1px solid #eee;\n}\n.iview-com .v-text[data-v-3ab0f987] {\n line-height: 27px;\n}\n.iview-com .form-text[data-v-3ab0f987] {\n position: relative;\n /* height: 38px; */\n /* line-height: 38px; */\n /* padding: 0 15px; */\n border-bottom: 1px solid #eee;\n /* border-radius: 2px 2px 0 0; */\n font-size: 14px;\n margin-bottom: 14px;\n}\n.iview-com .form-text .title[data-v-3ab0f987] {\n border-bottom: 2px solid #00BCD4;\n color: #009688;\n font-weight: bold;\n letter-spacing: 1px;\n padding: 6px 0;\n}\n.iview-com .form-text .icon[data-v-3ab0f987] {\n color: #00BCD4;\n font-size: 19px;\n position: relative;\n top: -1px;\n}\n.form-closex[data-v-3ab0f987] {\n text-align: right;\n padding-bottom: 24px;\n}\n.form-closex button[data-v-3ab0f987] {\n margin-left: 10px;\n padding: 4px 13px;\n}\n.toolbar[data-v-3ab0f987] {\n padding: 3px 0px;\n width: 100%;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.toolbar .title[data-v-3ab0f987] {\n line-height: 29px;\n border-bottom: none;\n font-size: 13px;\n font-weight: bolder;\n margin-bottom: 0;\n color: #5d5c5c;\n}\n.toolbar .title .icon[data-v-3ab0f987] {\n color: #009688;\n font-size: 18px;\n}\n.toolbar .title i[data-v-3ab0f987] {\n line-height: 29px;\n border-bottom: none;\n font-weight: bolder;\n margin-bottom: 0;\n color: #5d5c5c;\n position: relative;\n margin-top: -4px;\n font-size: 14px;\n}\n.toolbar .btns[data-v-3ab0f987] {\n line-height: 28px;\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n text-align: right;\n margin-right: 12px;\n}\n.toolbar .btns button[data-v-3ab0f987] {\n border: none;\n margin-left: 15px;\n border: 0px;\n color: #009688;\n}\n.toolbar .btns button[data-v-3ab0f987]:hover {\n color: #FF9800;\n border-color: #FF9800;\n border: none;\n}\n\n.btn-group[data-v-3ab0f987] .ivu-select-dropdown {\r\n padding: 0px !important;\r\n right: 3px;\n}\n.btn-group[data-v-3ab0f987] .ivu-select-dropdown .ivu-dropdown-menu {\r\n min-width: 100px;\r\n right: -2px;\r\n position: absolute;\r\n background: white;\r\n width: 130px;\r\n border-radius: 5px;\r\n border: 1px solid #e7e5e5;\n}\n.vertical-center-modal[data-v-3ab0f987] .srcoll-content {\r\n padding: 0;\n}\n.view-model-content[data-v-3ab0f987] {\r\n background: #eee;\n}\n.grid-detail[data-v-3ab0f987] .v-table .el-table__header th {\r\n height: 41px;\n}\r\n\n.grid-search {\n position: relative;\n}\n.grid-search .search-box {\n background: #fefefe;\n margin-top: 45px;\n border: 1px solid #ececec;\n position: absolute;\n z-index: 999;\n left: 15px;\n right: 15px;\n padding: 25px 20px;\n padding-bottom: 0;\n -webkit-box-shadow: 0 7px 18px -12px #bdc0bb;\n box-shadow: 0 7px 18px -12px #bdc0bb;\n}\n\n.vol-table[data-v-e1b54b8e] {\n position: relative;\n}\n.vol-table .mask[data-v-e1b54b8e] {\n opacity: 0.2;\n position: absolute;\n width: 100%;\n height: 100%;\n background: #d0d0d0;\n z-index: 100;\n}\n.vol-table .message[data-v-e1b54b8e] {\n text-align: center;\n color: #635c5c;\n font-size: 15px;\n font-weight: 600;\n background: #eee;\n -webkit-transform: translateY(-50%);\n transform: translateY(-50%);\n top: 50%;\n position: absolute;\n z-index: 200;\n left: 0;\n right: 0;\n width: 150px;\n margin: 0 auto;\n line-height: 40px;\n border-radius: 4px;\n border: 1px solid #a09e9e;\n}\n.e-item[data-v-e1b54b8e] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.e-item > div[data-v-e1b54b8e]:first-child {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\n/*表头错行 .el-table th.gutter{\r\n display: table-cell!important;\r\n} */\n.pagination[data-v-e1b54b8e] {\r\n text-align: right;\r\n /* margin-top: 8px; */\r\n padding: 2px 28px;\r\n border: 1px solid #eee;\r\n border-top: 0px;\n}\n.v-table[data-v-e1b54b8e] .el-table__header th {\r\n padding: 0px !important;\r\n background-color: #f8f8f9 !important;\r\n font-size: 13px;\r\n height: 42px;\r\n color: #616161;\n}\n.v-table[data-v-e1b54b8e] .el-table__header th.is-sortable {\r\n padding: 3px !important;\n}\n.vol-table.text-inline[data-v-e1b54b8e] .el-table__body .cell {\r\n word-break: inherit !important;\r\n white-space: nowrap !important;\n}\n.v-table[data-v-e1b54b8e] .el-table__body td {\r\n padding: 9px 0 !important;\n}\n.v-table[data-v-e1b54b8e] .el-table__footer td {\r\n padding: 7px 0 !important;\n}\r\n/* 2021.01.30修复火狐checkbox错位问题 */\n.vol-table[data-v-e1b54b8e] .el-table-column--selection .cell {\r\n display: inline;\n}\n.vol-table.text-inline[data-v-e1b54b8e] .el-table th > .cell {\r\n white-space: nowrap !important;\n}\n.vol-table[data-v-e1b54b8e] .el-table__body-wrapper::-webkit-scrollbar {\r\n width: 10px;\r\n height: 10px;\n}\n.vol-table[data-v-e1b54b8e] .el-table__body-wrapper::-webkit-scrollbar-thumb {\r\n border-radius: 5px;\r\n background: #ddd;\n}\n.vol-table .table-img[data-v-e1b54b8e] {\r\n height: 40px;\r\n border-radius: 5px;\r\n margin-right: 10px;\r\n width: 40px;\r\n -o-object-fit: cover;\r\n object-fit: cover;\n}\n.vol-table .table-img[data-v-e1b54b8e]:hover {\r\n cursor: pointer;\n}\n.v-table[data-v-e1b54b8e] .ivu-tag-default {\r\n border: none !important;\r\n background: none !important;\n}\r\n/* .v-table >>> .el-table__fixed-body-wrapper {\r\n top: 41px !important;\r\n} */\n.v-table[data-v-e1b54b8e] .el-table__fixed:before {\r\n border-color: none !important;\n}\r\n/* 2021.06.19判断谷歌内核浏览重新计算table高度 */\n.chrome[data-v-e1b54b8e] .el-table__fixed {\r\n height: calc(100% - 11px) !important;\r\n background: white;\r\n /* box-shadow: 0px -11px 10px rgb(0 0 0 / 12%) !important; */\n}\n.chrome[data-v-e1b54b8e] .el-table__body-wrapper::-webkit-scrollbar {\r\n width: 11px;\r\n height: 11px;\n}\n.chrome[data-v-e1b54b8e] .el-table__body-wrapper::-webkit-scrollbar-thumb {\r\n border-radius: 5px;\r\n background: #ddd;\n}\n.chrome[data-v-e1b54b8e] .el-table__fixed:before {\r\n background-color: unset;\n}\n.chrome[data-v-e1b54b8e] .el-table__fixed-footer-wrapper {\r\n bottom: -11.5px;\n}\r\n\n.ivu-date-picker {\r\n width: 100%;\n}\r\n/* .ivu-form-item {\r\n margin-bottom: 20px !important;\r\n} */\r\n\n.readonly-input[data-v-f7198d8e] input {\r\n -webkit-box-shadow: none;\r\n box-shadow: none;\r\n border: 0px;\n}\n.line-row[data-v-f7198d8e] .ivu-select .ivu-select-dropdown {\r\n width: 100% !important;\r\n z-index: 99999;\n}\n.line-row[data-v-f7198d8e] .ivu-form-item img {\r\n max-height: 100px;\n}\r\n/* .ivu-form-item{\r\n\r\n} */\n.line-row[data-v-f7198d8e] .ivu-form-item-label {\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\n}\r\n\n.form-imgs[data-v-f7198d8e] {\n display: inline-block;\n}\n.form-imgs .img-item[data-v-f7198d8e] {\n position: relative;\n cursor: pointer;\n margin: 0 10px 10px 0;\n float: left;\n height: 100px;\n border: 1px solid #9e9e9e;\n overflow: hidden;\n border-radius: 5px;\n width: 100px;\n}\n.form-imgs img[data-v-f7198d8e] {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 100%;\n -o-object-fit: cover;\n object-fit: cover;\n}\n.form-item-extra[data-v-f7198d8e] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.form-item-extra > div[data-v-f7198d8e]:first-child {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n}\n.form-item-extra .form-extra[data-v-f7198d8e] {\n margin-left: 10px;\n}\n\nh1[data-v-a85650a6],\r\nh2[data-v-a85650a6] {\r\n font-weight: normal;\n}\nul[data-v-a85650a6] {\r\n list-style-type: none;\r\n padding: 0;\n}\nli[data-v-a85650a6] {\r\n display: inline-block;\r\n margin: 0 10px;\n}\na[data-v-a85650a6] {\r\n color: #42b983;\n}\r\n\n.upload-list[data-v-6a8822d0] {\n list-style: none;\n}\n.upload-list .list-file[data-v-6a8822d0] {\n padding: 4px;\n color: #515a6e;\n border-radius: 4px;\n -webkit-transition: background-color 0.2s ease-in-out;\n transition: background-color 0.2s ease-in-out;\n overflow: hidden;\n position: relative;\n font-size: 13px;\n}\n.upload-list .list-file .file-remove[data-v-6a8822d0] {\n display: none;\n right: 0;\n color: #0e9286;\n}\n.upload-list .list-file[data-v-6a8822d0]:hover {\n cursor: pointer;\n color: #2d8cf0;\n}\n.upload-list .list-file:hover .file-remove[data-v-6a8822d0] {\n display: initial;\n}\n.upload-container[data-v-6a8822d0] {\n display: inline-block;\n width: 100%;\n border-radius: 5px;\n}\n.upload-container .alert[data-v-6a8822d0] {\n margin-top: 43px;\n}\n.upload-container .button-group > *[data-v-6a8822d0] {\n float: left;\n margin-right: 10px;\n}\n.upload-container .file-info > span[data-v-6a8822d0] {\n margin-right: 20px;\n}\n.upload-img[data-v-6a8822d0] {\n display: inline-block;\n}\n.upload-img .img-item:hover .operation[data-v-6a8822d0] {\n display: block;\n}\n.upload-img .img-item[data-v-6a8822d0],\n.upload-img .img-selector[data-v-6a8822d0] {\n position: relative;\n cursor: pointer;\n margin: 0 10px 10px 0;\n float: left;\n width: 70px;\n height: 70px;\n border: 1px solid #c7c7c7;\n overflow: hidden;\n border-radius: 5px;\n}\n.upload-img .img-item img[data-v-6a8822d0],\n.upload-img .img-selector img[data-v-6a8822d0] {\n margin: 0;\n padding: 0;\n width: 100%;\n height: 100%;\n -o-object-fit: cover;\n object-fit: cover;\n}\n.upload-img .img-item .operation[data-v-6a8822d0],\n.upload-img .img-selector .operation[data-v-6a8822d0] {\n display: none;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n}\n.upload-img .img-item .operation .action[data-v-6a8822d0],\n.upload-img .img-selector .operation .action[data-v-6a8822d0] {\n opacity: 0.6;\n text-align: right;\n background: #727779;\n font-size: 17px;\n position: absolute;\n z-index: 90;\n width: 100%;\n bottom: 3px;\n bottom: 0;\n color: #ded5d5;\n padding-right: 7px;\n padding-bottom: 3px;\n line-height: 23px;\n}\n.upload-img .img-item .operation .mask[data-v-6a8822d0],\n.upload-img .img-selector .operation .mask[data-v-6a8822d0] {\n opacity: 0.6;\n background: #9e9e9e;\n top: 0;\n width: 100%;\n height: 100%;\n position: absolute;\n}\n.upload-img .img-selector[data-v-6a8822d0] {\n font-size: 50px;\n text-align: center;\n}\n.upload-img .img-selector i[data-v-6a8822d0] {\n top: -4px;\n position: relative;\n}\n.upload-img .auto-selector .selector[data-v-6a8822d0] {\n line-height: 64px;\n}\n.upload-img .selector[data-v-6a8822d0] {\n color: #a0a0a0;\n}\n.upload-img .submit-selector .s-btn[data-v-6a8822d0] {\n line-height: 22px;\n font-size: 12px;\n top: -7px;\n position: relative;\n background: #2db7f5;\n color: white;\n}\n.upload-img .submit-selector .selector[data-v-6a8822d0] {\n line-height: 50px;\n}\n.upload-img .submit-selector .readonly[data-v-6a8822d0] {\n background: #8c8c8c;\n}\n.big-model[data-v-6a8822d0] {\n width: 100%;\n height: 100%;\n position: relative;\n}\n.big-model .mask[data-v-6a8822d0] {\n opacity: 0.6;\n background: #eee;\n top: 0;\n width: 100%;\n height: 100%;\n position: absolute;\n}\n.auto-upload[data-v-6a8822d0] {\n z-index: 9999999;\n width: 100%;\n height: 100%;\n position: fixed;\n top: 0;\n left: 0;\n}\n.auto-upload .j-content[data-v-6a8822d0] {\n text-align: center;\n font-size: 17px;\n top: 40%;\n position: absolute;\n z-index: 999;\n left: 0;\n right: 0;\n width: 240px;\n /* height: 100%; */\n margin: auto;\n background: white;\n /* bottom: 30px; */\n line-height: 50px;\n border-radius: 6px;\n border: 1px solid #d2d2d2;\n}\n.auto-upload .mask[data-v-6a8822d0] {\n cursor: pointer;\n opacity: 0.6;\n width: 100%;\n height: 100%;\n background: #101010;\n}\n\n.iview-com[data-v-2171a189] {\r\n padding: 15px 25px 15px 15px;\r\n /* left: 0;\r\n position: absolute;\r\n right: 0;\r\n max-width: 500px;\r\n margin: auto;\r\n margin-top: 13px; */\n}\r\n\n.vertical-center-modal {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n}\n.vertical-center-modal .ivu-modal {\n top: 0;\n}\n.vertical-center-modal .ivu-modal-close .ivu-icon-ios-close {\n color: white;\n}\n.vertical-center-modal .view-model-content {\n min-height: 180px;\n}\n.vertical-center-modal .srcoll-content {\n height: 100%;\n word-break: break-all;\n}\n.vertical-center-modal .ivu-modal-body {\n padding: 0px;\n}\n.vertical-center-modal .ivu-modal-header {\n border-top-left-radius: 6px;\n border-top-right-radius: 6px;\n padding: 12px 15px;\n background-image: linear-gradient(135deg, #0cd7bd 10%, #57c5f7 100%);\n}\n.vertical-center-modal .ivu-modal-footer {\n padding: 5px 10px;\n}\n.vertical-center-modal .ivu-modal-footer button {\n padding: 4px 18px;\n}\n.vertical-center-modal .header {\n color: white;\n}\n\n.view-model-content[data-v-f95c9282] .el-scrollbar > .el-scrollbar__wrap {\r\n overflow-x: hidden;\n}\r\n\nh3[data-v-46457e9c] {\n font-weight: 500;\n}\nh3 > span[data-v-46457e9c]:last-child {\n margin-left: 30px;\n}\n\nh3[data-v-4f29e350]{\n font-weight: 500;\n padding-left: 10px;\n background: white;\n margin-top: 10px;\n padding-top: 6px;\n padding-bottom: 5px;\n}\n\nh3[data-v-04854a50] {\r\n font-weight: 500;\r\n padding-left: 10px;\r\n background: white;\r\n margin-top: 10px;\r\n padding-top: 6px;\r\n padding-bottom: 5px;\n}\r\n\n.vol-tabs[data-v-707b4ec3] {\n background: white;\n}\n.tabs1-header[data-v-707b4ec3] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n text-align: right;\n padding: 10px;\n}\n.tabs1-header .btn-group[data-v-707b4ec3] {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n}\n\n.app-container[data-v-c044db96] {\n height: 100%;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.app-container .content[data-v-c044db96] {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n overflow: scroll;\n background: #eaeaea;\n}\n.app-container .footer[data-v-c044db96] {\n height: 3.7rem;\n /* background: red; */\n border: 1px solid #eee;\n}\n.app-container .footer > a[data-v-c044db96] {\n float: left;\n width: 25%;\n padding: 0.3rem;\n text-align: center;\n color: #7c7979;\n}\n.app-container .footer > a > i[data-v-c044db96] {\n font-size: 1.8rem;\n}\n.active[data-v-c044db96] {\n color: #fc0000 !important;\n}\n\n.home[data-v-31946acd] {\n background: #f9f8f8;\n height: 100%;\n}\n.home-content[data-v-31946acd] {\n margin-top: 42px;\n overflow-y: auto;\n}\n.carouse[data-v-31946acd] {\n height: 180px;\n}\n.carouse img[data-v-31946acd] {\n height: 100%;\n width: 100%;\n}\n.head[data-v-31946acd] {\n width: 100%;\n padding: 0.6rem;\n background: white;\n display: inline-block;\n border-bottom: 1px solid #eee;\n top: 0;\n position: fixed;\n z-index: 100;\n}\n.head > div[data-v-31946acd] {\n float: left;\n width: 33.3333%;\n}\n.head .location .ivu-dropdown[data-v-31946acd] {\n top: 5px;\n position: relative;\n}\n.head .text[data-v-31946acd] {\n text-align: center;\n font-size: 1rem;\n color: forestgreen;\n}\n.head .search[data-v-31946acd] {\n text-align: right;\n font-size: 1.1rem;\n color: forestgreen;\n}\n.title[data-v-31946acd] {\n padding: 0.6rem;\n}\n.icon-item[data-v-31946acd] {\n width: 100%;\n display: inline-block;\n position: relative;\n background: white;\n /* height: 3.7rem; */\n /* background: red; */\n border: 1px solid #eee;\n}\n.icon-item > a[data-v-31946acd] {\n float: left;\n width: 25%;\n padding: 0.6rem 0.3rem;\n text-align: center;\n color: #7c7979;\n border: 1px solid #f1eded;\n}\n.icon-item > a > i[data-v-31946acd] {\n font-size: 1.8rem;\n}\n\n.head[data-v-31946acd] input {\r\n border-radius: 20px;\n}\r\n\n.cow-container[data-v-2600241c] {\r\n height: 100%;\n}\n.cow-top[data-v-2600241c] {\r\n background: white;\r\n display: inline-block;\r\n width: 100%;\r\n padding: 0 4px;\n}\n.cow-top > div[data-v-2600241c] {\r\n float: left;\r\n width: 49%;\r\n text-align: left;\n}\n.cow-top > div[data-v-2600241c]:first-child {\r\n background: #57a3f3;\r\n padding: 10px;\r\n color: white;\r\n border-radius: 5px;\r\n margin-right: 2%;\n}\n.cow-top > div[data-v-2600241c]:last-child {\r\n background: #ff4081;\r\n padding: 10px;\r\n color: white;\r\n border-radius: 5px;\n}\n.cow-top > div .text[data-v-2600241c] {\r\n font-size: 20px;\n}\n.cow-top > div .desc[data-v-2600241c] {\r\n font-size: 12px;\n}\n.cow-choiceness .star[data-v-2600241c] {\r\n color: #f5f5f56b;\r\n position: relative;\r\n float: right;\r\n top: -5px;\r\n right: -5px;\r\n margin-top: -54px;\r\n font-size: 46px;\r\n border: 0px;\n}\n.cow-hot .hot[data-v-2600241c] {\r\n color: #f5f5f56b;\r\n position: relative;\r\n float: right;\r\n top: -5px;\r\n right: -5px;\r\n margin-top: -54px;\r\n font-size: 46px;\r\n border: 0px;\n}\n.item-head[data-v-2600241c] {\r\n border-bottom: 1px solid #eee;\r\n margin-bottom: 12px;\r\n text-align: left;\n}\n.item-head img[data-v-2600241c] {\r\n height: 25px;\r\n width: 25px;\r\n border-radius: 50%;\r\n margin-right: 10px;\n}\n.item-head span[data-v-2600241c] {\r\n position: relative;\r\n top: -5px;\r\n font-size: 15px;\n}\n.item-head .focus[data-v-2600241c] {\r\n position: relative;\r\n top: 0;\r\n font-size: 15px;\r\n float: right;\r\n padding: 0px 10px;\r\n border-radius: 15px;\r\n border: 1px solid #f9d9d9;\r\n color: #f44336;\n}\n.item-imgs[data-v-2600241c]{\r\n max-height: 180px;\r\n /* width: 300px; */\r\n /* height: 50px; */\r\n line-height: 25px;\r\n overflow: hidden;\n}\n.item-imgs .img1[data-v-2600241c] {\r\n width: 100%;\r\n /* max-height: 180px; */\n}\n.item-imgs .img2[data-v-2600241c] {\r\n width: 49%;\r\n height: 120px;\n}\n.item-imgs .img3[data-v-2600241c] {\r\n width: 32%;\r\n height: 75px;\n}\n.item-imgs .img3[data-v-2600241c]:first-child,\r\n.item-imgs .img2[data-v-2600241c]:first-child {\r\n margin-right: 2%;\n}\n.item-imgs .img3[data-v-2600241c]:last-child {\r\n margin-left: 2%;\n}\n.cow-item[data-v-2600241c] {\r\n background: white;\r\n padding: 10px;\r\n margin-bottom: 8px;\n}\n.cow-item[data-v-2600241c]:hover {\r\n cursor: pointer;\n}\n.item-imgs[data-v-2600241c] {\r\n margin-top: 9px;\n}\n.item-content[data-v-2600241c] {\r\n letter-spacing: 1.2px;\r\n text-align: left;\r\n color: #8b8787;\n}\n.item-content .title[data-v-2600241c] {\r\n font-size: 15px;\r\n color: #353535;\n}\n.item-content .all-text[data-v-2600241c] {\r\n color: blue;\n}\n.cow-list[data-v-2600241c] {\r\n border: 1px solid #eee;\n}\r\n\n.head[data-v-0940e89a] {\n top: 0;\n position: fixed;\n background: #03A9F4;\n padding: 0.8rem;\n font-size: 1rem;\n color: white;\n width: 100%;\n z-index: 999;\n}\n.content[data-v-0940e89a] {\n margin-top: 60px;\n}\n\n.question-container[data-v-7c57af51] {\r\n height: 100%;\r\n border: 1px solid #eee;\r\n /* padding: 10px;\r\n background: white; */\n}\n.best-user[data-v-7c57af51] {\r\n width: 100%;\r\n display: inline-block;\r\n background: white;\r\n padding: 10px;\n}\n.best-user .title[data-v-7c57af51] {\r\n text-align: left;\r\n /* border-bottom: 1px solid #eee; */\r\n font-size: 15px;\r\n color: #2196f3;\n}\n.best-user .title span[data-v-7c57af51] {\r\n border-bottom: 1px solid;\r\n padding-bottom: 4px;\n}\n.header img[data-v-7c57af51] {\r\n height: 40px;\r\n width: 40px;\r\n border-radius: 50%;\n}\n.user-list[data-v-7c57af51] {\r\n margin-top: 20px;\r\n width: 100%;\r\n display: inline-block;\n}\n.user-list .user[data-v-7c57af51] {\r\n text-align: center;\r\n float: left;\r\n width: 33.333%;\n}\n.user-info[data-v-7c57af51] {\r\n font-size: 12px;\n}\n.user-index[data-v-7c57af51] {\r\n padding: 1px 5px;\r\n border: 0;\r\n border-radius: 50%;\r\n color: white;\r\n background: #ff9800;\r\n margin: 1px;\n}\n.user-info .user-name[data-v-7c57af51] {\r\n font-size: 13px;\n}\n.user-info .user-text[data-v-7c57af51] {\r\n letter-spacing: 1.5px;\r\n color: #8f8e8e;\n}\n.user-line1[data-v-7c57af51] {\r\n color: #f44336;\n}\n.user-line1 .user-index[data-v-7c57af51] {\r\n background: #f44336;\r\n color: white;\n}\n.user-line2[data-v-7c57af51] {\r\n color: #ff9800;\n}\n.user-line2 .user-index[data-v-7c57af51] {\r\n background: #ff9800;\r\n color: white;\n}\n.user-line3[data-v-7c57af51] {\r\n color: #2196f3;\n}\n.user-line3 .user-index[data-v-7c57af51] {\r\n background: #2196f3;\r\n color: white;\n}\n.all-ask[data-v-7c57af51] {\r\n margin-top: 10px;\r\n background: white;\r\n padding: 10px;\n}\n.all-ask .title[data-v-7c57af51] {\r\n padding: 5px;\r\n font-size: 15px;\r\n color: #9c27b0;\n}\n.all-ask .title span[data-v-7c57af51] {\r\n border-bottom: 1px solid;\r\n padding-bottom: 4px;\n}\n.ask-list li[data-v-7c57af51] {\r\n color: #757474;\r\n list-style: none;\r\n padding: 7px;\r\n border-bottom: 1px solid #eee;\n}\n.ask-list li span[data-v-7c57af51] {\r\n float: right;\r\n color: #454b4b;\r\n float: right;\r\n font-size: 18px;\r\n margin-top: -3px;\n}\n.question-group[data-v-7c57af51] {\r\n border-bottom: 1px solid #eee;\r\n background: white;\r\n /* margin-top: 10px; */\r\n padding: 20px 10px;\n}\n.question-group .title[data-v-7c57af51] {\r\n /* border-bottom: 1px solid #eee; */\r\n padding-bottom: 5px;\r\n font-size: 16px;\r\n text-align: left;\n}\n.question-group .q-imgs[data-v-7c57af51] {\r\n margin-top: 10px;\n}\n.question-group .q-imgs img[data-v-7c57af51] {\r\n width: 32%;\r\n height: 75px;\r\n margin-right: 1.333%;\n}\n.question-group .q-user-info[data-v-7c57af51] {\r\n padding: 5px;\r\n color: #b6b4b4;\r\n text-align: left;\n}\n.question-group .q-user-info img[data-v-7c57af51] {\r\n font-size: 12px;\r\n color: #757474;\r\n height: 25px;\r\n width: 25px;\r\n border-radius: 50%;\r\n position: relative;\r\n top: 7px;\n}\n.q-user-info .q-date[data-v-7c57af51] {\r\n margin-left: 40px;\n}\n.q-user-info .q-reply[data-v-7c57af51] {\r\n position: relative;\r\n float: right;\r\n /* margin-left: 55px; */\r\n top: 8px;\n}\n.ask-btn[data-v-7c57af51] {\r\n position: fixed;\r\n right: 20px;\r\n /* top: 100px; */\r\n /* font-size: 55px; */\r\n color: #9e9e9e;\n}\n.ask-btn i[data-v-7c57af51] {\r\n position: fixed;\r\n font-size: 30px;\r\n right: 20px;\r\n border: 1px solid;\r\n border-radius: 50%;\n}\n.ask-split-title[data-v-7c57af51] {\r\n margin-top: 10px;\r\n text-align: left;\r\n background: #eee;\r\n padding: 10px 15px;\r\n color: #909399;\n}\r\n\n.head[data-v-c98378ba] {\n top: 0;\n position: fixed;\n background: #03A9F4;\n padding: 0.8rem;\n font-size: 1rem;\n color: white;\n width: 100%;\n z-index: 999;\n}\n.content[data-v-c98378ba] {\n margin-top: 50px;\n}\n\n.com-container[data-v-22aba3b2] {\r\n border: 1px solid #eee;\r\n overflow: hidden;\r\n height: 100%;\n}\n.com-body[data-v-22aba3b2] {\r\n width: 100%;\r\n height: calc(100% - 3rem);\r\n background: white;\r\n position: relative;\n}\n.com-body > div[data-v-22aba3b2] {\r\n height: 100%;\r\n display: inline-block;\r\n width: 100%;\n}\n.com-body[data-v-22aba3b2] .vux-slider {\r\n height: 100%;\r\n width: 100%;\r\n background: #f4f4f4;\r\n /* overflow-y: scroll; */\n}\n.com-body[data-v-22aba3b2] .vux-swiper {\r\n height: calc(100% - 44px) !important;\r\n overflow-y: scroll;\n}\n.mu-tabs[data-v-22aba3b2] {\r\n background: white;\r\n border-bottom: 1px solid #e2dfdf;\n}\n.com-head[data-v-22aba3b2] {\r\n background: #12cce4;\r\n padding: 8px;\r\n color: white;\r\n height: 3rem;\n}\n.com-head i[data-v-22aba3b2] {\r\n top: 4px;\r\n position: relative;\r\n margin-right: 24px;\n}\n.com-head span[data-v-22aba3b2] {\r\n font-size: 1.4rem;\n}\r\n/* .com-content {\r\n padding: 16px;\r\n background: #fff;\r\n p {\r\n margin: 8px 0;\r\n }\r\n} */\n.info-item[data-v-22aba3b2] {\r\n padding: 15px 17px;\r\n background: white;\r\n border-bottom: 1px solid #eee;\n}\n.info-item[data-v-22aba3b2]:hover {\r\n cursor: pointer;\n}\n.info-item .info-title[data-v-22aba3b2] {\r\n text-align: left;\r\n font-size: 1rem;\r\n color: #828282;\r\n display: inline-block;\r\n width: 100%;\n}\n.info-item .info-foot[data-v-22aba3b2] {\r\n /* padding: 8px 2px 8px; */\r\n /* padding-top: 2px; */\r\n color: #b5b5b5;\r\n text-align: left;\n}\n.info-item .info-foot img[data-v-22aba3b2] {\r\n position: relative;\r\n height: 24px;\r\n width: 24px;\r\n top: 5px;\r\n border-radius: 50%;\n}\n.info-item .info-foot .date[data-v-22aba3b2] {\r\n position: relative;\r\n float: right;\r\n top: 7px;\n}\n.info-img[data-v-22aba3b2] {\r\n padding-right: 5px;\r\n float: left;\r\n width: calc(100% - 100px);\n}\r\n/* .info-text {\r\n\r\n} */\n.single-img[data-v-22aba3b2] {\r\n max-width: 100px;\r\n float: left;\n}\n.single-img > img[data-v-22aba3b2] {\r\n height: 65px;\r\n border-radius: 4px;\n}\n.img-group[data-v-22aba3b2] {\r\n padding-top: 10px;\n}\n.img-group img[data-v-22aba3b2] {\r\n height: 65px;\r\n width: 32%;\r\n border-radius: 4px;\n}\n.img-group img[data-v-22aba3b2]:first-child {\r\n margin-right: 2%;\n}\n.img-group img[data-v-22aba3b2]:last-child {\r\n margin-left: 2%;\n}\n.flag[data-v-22aba3b2] {\r\n background: #e43700;\r\n padding: 4px 14px 3px;\r\n /* width: 200px; */\r\n color: white;\r\n border-radius: 3px;\r\n font-size: 12px;\r\n margin-left: 80px;\n}\r\n\n.topic-container[data-v-0bae55b0] {\r\n height: 100%;\n}\n.topic-item[data-v-0bae55b0] {\r\n background: white;\r\n margin: 10px;\r\n -webkit-box-shadow: 2px 2px 10px #d0d0d0;\r\n box-shadow: 2px 2px 10px #d0d0d0;\r\n /* margin-bottom: 10px; */\r\n border-radius: 5px;\r\n padding: 12px;\r\n padding-bottom: 9px;\n}\n.t-imgs img[data-v-0bae55b0] {\r\n height: 65px;\r\n width: 32%;\r\n border-radius: 4px;\n}\n.t-img-group img[data-v-0bae55b0]:first-child {\r\n margin-right: 2%;\n}\n.t-img-group img[data-v-0bae55b0]:last-child {\r\n margin-left: 2%;\n}\n.topic-item .t-head[data-v-0bae55b0] {\r\n padding: 5px;\n}\n.topic-item .t-title[data-v-0bae55b0] {\r\n font-size: 20px;\r\n color: #3c3c3c;\n}\n.topic-item .t-date[data-v-0bae55b0] {\r\n font-size: 12px;\r\n float: right;\r\n margin-top: 9px;\r\n color: #ff9800;\n}\n.topic-item .t-foot[data-v-0bae55b0] {\r\n padding-top: 5px;\n}\n.topic-item .t-content[data-v-0bae55b0] {\r\n padding: 0px 5px 8px 5px;\r\n font-size: 17px;\r\n color: #9e9e9e;\n}\n.topic-item .t-foot i[data-v-0bae55b0] {\r\n padding: 3px 2px 0 2px;\r\n font-size: 19px !important;\n}\n.topic-item .t-foot i[data-v-0bae55b0]:last-child {\r\n float: right;\n}\r\n\n.head[data-v-3bc86c96] {\n top: 0;\n position: fixed;\n background: #03a9f4;\n padding: 0.8rem;\n font-size: 1rem;\n color: white;\n width: 100%;\n z-index: 999;\n}\n.info[data-v-3bc86c96] {\n margin-top: 50px;\n padding: 1rem;\n background: white;\n color: #ff9800;\n font-size: 16px;\n display: inline-block;\n width: 100%;\n}\n.info > div[data-v-3bc86c96] {\n float: left;\n}\n.info > div[data-v-3bc86c96]:last-child {\n line-height: 2.2rem;\n margin-left: 2rem;\n}\n.info img[data-v-3bc86c96] {\n height: 70px;\n width: 70px;\n border-radius: 50%;\n margin-right: 0px;\n top: 4px;\n position: relative;\n border: 2px solid #eaeaea;\n}\n.list[data-v-3bc86c96] {\n margin-top: 0.6rem;\n background: white;\n width: 100%;\n display: inline-block;\n}\n.list .row[data-v-3bc86c96] {\n cursor: pointer;\n width: 100%;\n padding: 0.9rem;\n border-bottom: 1px solid #f3f3f3;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.list .row .text[data-v-3bc86c96] {\n font-size: 0.9rem;\n}\n.list .row .text i[data-v-3bc86c96] {\n position: relative;\n font-size: 1.3rem;\n}\n.list .row > div[data-v-3bc86c96]:last-child {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n text-align: right;\n}\n\n.app-guide[data-v-b9e4d02a] {\n position: absolute;\n width: 900px;\n left: 0;\n right: 0;\n margin: 0 auto;\n padding: 20px;\n}\n.app-guide .img-item[data-v-b9e4d02a] {\n margin-top: 25px;\n background: #fbfbfb;\n display: inline-block;\n padding: 28px;\n border: 1px solid #eee;\n border-radius: 5px;\n}\n.app-guide .img-item > img[data-v-b9e4d02a]:first-child {\n margin-right: 3%;\n}\n.app-guide .img-item img[data-v-b9e4d02a] {\n width: 48.5%;\n float: left;\n}\n.app-guide .guide[data-v-b9e4d02a] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.app-guide .guide h3[data-v-b9e4d02a] {\n text-align: center;\n}\n.app-guide .guide .desc[data-v-b9e4d02a] {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n margin-left: 56px;\n}\n.app-guide .guide .desc .content[data-v-b9e4d02a] {\n letter-spacing: 1.8px;\n}\n\n.single-form[data-v-d93841c0] {\r\n position: relative;\r\n max-width: 600px;\r\n padding: 30px 45px;\r\n left: 0;\r\n\r\n margin: auto;\n}\r\n\n.v-table[data-v-ff106afc] .container {\r\n padding: 0 !important;\n}\r\n\n.v-header[data-v-e96290e8] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n border-bottom: 1px solid #dcdee2;\n}\n.v-header .v-left-text[data-v-e96290e8] {\n margin-top: 3px;\n padding-bottom: 3px;\n font-weight: bold;\n font-size: 14px;\n color: #464646;\n white-space: nowrap;\n border-bottom: 2px solid #464646;\n}\n.v-header .v-left-text .tx-icon[data-v-e96290e8] {\n position: relative;\n bottom: -1px;\n}\n.v-header .v-left-text > span[data-v-e96290e8] {\n position: relative;\n top: 2px;\n margin-left: -3px;\n}\n.v-header .content[data-v-e96290e8] {\n line-height: 25px;\n padding-left: 10px;\n padding: 6px 0 0 10px;\n}\n.v-header .v-right-content[data-v-e96290e8] {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n}\n\n.layout-content[data-v-5e3d7b0f] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.layout-content .layout-left[data-v-5e3d7b0f] {\n width: 200px;\n margin-right: 10px;\n}\n.layout-content .layout-right[data-v-5e3d7b0f] {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n}\n.com > div[data-v-5e3d7b0f] {\n margin-top: 30px;\n}\n.d-group[data-v-5e3d7b0f] {\n display: inline-block;\n width: 100%;\n}\n.d-group > div[data-v-5e3d7b0f] {\n float: left;\n width: 49%;\n}\n.d-group > div[data-v-5e3d7b0f]:first-child {\n margin-right: 2%;\n}\n.on-icon[data-v-5e3d7b0f] {\n line-height: 20px;\n position: relative;\n}\n.on-icon .remove[data-v-5e3d7b0f] {\n display: none;\n color: red;\n right: 7px;\n position: absolute;\n top: -14px;\n font-size: 13px;\n}\n.on-icon[data-v-5e3d7b0f]:hover {\n cursor: pointer;\n}\n.on-icon:hover .remove[data-v-5e3d7b0f] {\n display: block;\n}\n\n.layout-content[data-v-5e3d7b0f] .ivu-menu{\r\n width: 200px !important;\n}\r\n\n.icons-item[data-v-ebbd7478] {\n float: left;\n margin: 6px 6px 6px 0;\n width: 115px;\n text-align: center;\n list-style: none;\n cursor: pointer;\n height: 100px;\n color: #5c6b77;\n -webkit-transition: all 0.2s ease;\n transition: all 0.2s ease;\n position: relative;\n padding-top: 10px;\n}\n.active[data-v-ebbd7478] {\n border: 1px solid;\n background: #f44336;\n color: white;\n font-size: 32px;\n}\n\n.t-dis[data-v-8a4b7e7a] {\r\n -webkit-box-shadow: #d6d6d6 0px 4px 21px;\r\n box-shadow: #d6d6d6 0px 4px 21px;\r\n /* margin: 20px; */\r\n margin-bottom: 15px;\r\n background: white;\r\n /* padding: 10px 30px; */\r\n border: 1px solid #eaeaea;\r\n padding: 5px;\r\n border-radius: 5px;\n}\r\n\n.upload-container[data-v-4df0acf9] {\n max-height: 160px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.upload-container .upload-item[data-v-4df0acf9] {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n padding: 20px;\n}\n\n.upload-container[data-v-276cf89a] {\r\n padding: 10px 15px;\n}\n.upload-container[data-v-276cf89a] .img-item,\r\n.upload-container[data-v-276cf89a] .img-item img{\r\n width: 70px !important;\r\n height: 70px !important;\n}\r\n\n.content[data-v-022189a1] {\n padding: 15px;\n min-height: 400px;\n background: white;\n}\n.v-kind[data-v-022189a1] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.v-kind > label[data-v-022189a1] {\n color: #939394;\n padding: 10px 12px 10px 0;\n text-align: right;\n width: 90px;\n line-height: 300px;\n}\n.v-kind > div[data-v-022189a1] {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n}\n\n.com-container[data-v-10666c3b] {\r\n overflow: visible;\r\n left: 0;\r\n margin: 0 auto;\r\n right: 0;\r\n display: -webkit-box;\r\n display: -ms-flexbox;\r\n display: flex;\r\n max-width: 1200px;\r\n height: 100%;\r\n position: relative;\r\n padding: 20px;\n}\n.com-body[data-v-10666c3b] .vux-slider {\r\n height: 100%;\r\n width: 100%;\r\n background: #f4f4f4;\r\n /* overflow-y: scroll; */\n}\n.com-body[data-v-10666c3b] .vux-swiper {\r\n height: calc(100% - 44px) !important;\r\n overflow-y: scroll;\n}\n.mu-tabs[data-v-10666c3b] {\r\n background: white;\r\n border-bottom: 1px solid #e2dfdf;\n}\n.com-head[data-v-10666c3b] {\r\n background: #12cce4;\r\n padding: 8px;\r\n color: white;\r\n height: 3rem;\n}\n.com-head i[data-v-10666c3b] {\r\n top: 4px;\r\n position: relative;\r\n margin-right: 24px;\n}\n.com-head span[data-v-10666c3b] {\r\n font-size: 1.4rem;\n}\n.info-item[data-v-10666c3b] {\r\n margin-bottom: 20px;\r\n padding: 15px 20px;\r\n background: white;\r\n border-bottom: 1px solid #eee;\n}\n.info-item .info-title[data-v-10666c3b]:hover {\r\n color: #0776ce;\r\n cursor: pointer;\n}\n.info-item .info-title[data-v-10666c3b] {\r\n text-align: left;\r\n font-size: 1rem;\r\n color: #404040;\r\n display: inline-block;\r\n width: 100%;\n}\n.info-item .info-foot[data-v-10666c3b] {\r\n line-height: 30px;\r\n color: #9c9b9b;\r\n text-align: left;\n}\n.info-item .info-foot img[data-v-10666c3b] {\r\n position: relative;\r\n height: 24px;\r\n width: 24px;\r\n top: 5px;\r\n border-radius: 50%;\n}\n.info-item .info-foot .date[data-v-10666c3b] {\r\n position: relative;\r\n float: right;\r\n top: 7px;\n}\n.info-img[data-v-10666c3b] {\r\n padding-right: 5px;\r\n float: left;\r\n width: calc(100% - 150px);\n}\r\n/* .info-text {\r\n\r\n} */\n.single-img[data-v-10666c3b] {\r\n float: left;\n}\n.single-img > img[data-v-10666c3b] {\r\n -o-object-fit: cover;\r\n object-fit: cover;\r\n width: 150px;\r\n height: 80px;\r\n border-radius: 4px;\n}\n.img-group[data-v-10666c3b] {\r\n padding-top: 10px;\n}\n.img-group img[data-v-10666c3b] {\r\n height: 90px;\r\n width: 32%;\r\n border-radius: 4px;\r\n margin: 0;\r\n padding: 0;\r\n -o-object-fit: cover;\r\n object-fit: cover;\n}\n.img-group img[data-v-10666c3b]:first-child {\r\n margin-right: 2%;\n}\n.img-group img[data-v-10666c3b]:last-child {\r\n margin-left: 2%;\n}\n.flag[data-v-10666c3b] {\r\n background: #e43700;\r\n padding: 4px 14px 3px;\r\n /* width: 200px; */\r\n color: white;\r\n border-radius: 3px;\r\n font-size: 12px;\r\n margin-left: 80px;\n}\n.author[data-v-10666c3b] {\r\n margin-left: 10px;\r\n margin-right: 20px;\n}\n.list[data-v-10666c3b] {\r\n background: white;\r\n margin: 0px 30px;\r\n -webkit-box-flex: 1;\r\n -ms-flex: 1;\r\n flex: 1;\r\n padding-top: 15px;\r\n border-radius: 5px;\r\n border-left: 1px solid #e2dfdf;\r\n border-right: 1px solid #e2dfdf;\n}\r\n\n.validator[data-v-ee09996c] {\n text-align: center;\n padding: 10px 30px;\n}\n.general[data-v-ee09996c],\n.object-model[data-v-ee09996c] {\n display: inline-block;\n}\n.general > div[data-v-ee09996c],\n.object-model > div[data-v-ee09996c] {\n width: 300px;\n float: left;\n margin-right: 50px;\n}\n.general .v-input[data-v-ee09996c],\n.object-model .v-input[data-v-ee09996c],\n.general .btn[data-v-ee09996c],\n.object-model .btn[data-v-ee09996c] {\n margin-top: 20px;\n}\n.general .btn[data-v-ee09996c],\n.object-model .btn[data-v-ee09996c] {\n padding-right: 4px;\n padding-left: 13px;\n}\n.general .require[data-v-ee09996c],\n.object-model .require[data-v-ee09996c] {\n color: red;\n position: relative;\n top: 2px;\n margin-right: 5px;\n}\n.general label[data-v-ee09996c],\n.object-model label[data-v-ee09996c] {\n display: inline-block;\n width: 60px;\n text-align: right;\n}\n.object-model[data-v-ee09996c] {\n margin-top: 40px;\n}\nh2[data-v-ee09996c] {\n font-size: 16px;\n text-align: left;\n font-weight: 500;\n padding-left: 14px;\n}\n\n.com-tree[data-v-131ef25b] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.com-tree > .left-tree[data-v-131ef25b] {\n width: 215px;\n}\n.com-tree > .right-table[data-v-131ef25b] {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n}\n\n.com-el-tree[data-v-f67b8d8c] {\n display: inline-block;\n width: 210px;\n}\n.com-el-tree .el-role-tree[data-v-f67b8d8c] {\n position: absolute;\n padding: 5px 0px;\n top: 45px;\n bottom: 0;\n border-right: 1px solid #eee;\n}\n.com-el-tree .actived[data-v-f67b8d8c] {\n color: #5884ff;\n font-size: 15px;\n}\n.com-el-tree .action-text[data-v-f67b8d8c] {\n font-size: 14px;\n}\n.role-list[data-v-f67b8d8c] {\n color: white;\n line-height: 44px;\n background: #1a89ff;\n padding: 0 13px;\n font-size: 16px;\n position: absolute;\n top: 2px;\n width: 210px;\n}\n\n.com-el-tree[data-v-f67b8d8c] .el-tree-node {\r\n padding: 3px 0;\n}\n.com-el-tree[data-v-f67b8d8c] .el-scrollbar .el-scrollbar__thumb {\r\n width: 0 !important;\n}\r\n\n.com-tree[data-v-4731f913] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.com-tree > .left-tree[data-v-4731f913] {\n width: 215px;\n}\n.com-tree > .right-table[data-v-4731f913] {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n}\n\n.com-el-tree[data-v-79773669] {\n display: inline-block;\n width: 210px;\n}\n.com-el-tree .el-role-tree[data-v-79773669] {\n position: absolute;\n padding: 5px 0px;\n top: 45px;\n bottom: 0;\n border-right: 1px solid #eee;\n}\n.com-el-tree .actived[data-v-79773669] {\n color: #5884ff;\n font-size: 15px;\n}\n.com-el-tree .action-text[data-v-79773669] {\n font-size: 14px;\n}\n.role-list[data-v-79773669] {\n color: white;\n line-height: 44px;\n background: #1a89ff;\n padding: 0 13px;\n font-size: 16px;\n position: absolute;\n top: 2px;\n width: 210px;\n}\n\n.com-el-tree[data-v-79773669] .el-tree-node {\r\n padding: 3px 0;\n}\n.com-el-tree[data-v-79773669] .el-scrollbar .el-scrollbar__thumb {\r\n width: 0 !important;\n}\r\n\n.container[data-v-4f83b774] {\n background: white;\n margin-top: 20px;\n padding: 15px;\n border: 1px solid #b7c5cc;\n}\n.header[data-v-4f83b774] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n margin-bottom: 10px;\n}\n.header .text[data-v-4f83b774] {\n line-height: 30px;\n border-bottom: 2px solid #607D8B;\n font-size: 16px;\n /* color: #FF9800; */\n font-weight: 500;\n}\n.header .btns[data-v-4f83b774] {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n text-align: right;\n}\n\n.m-step[data-v-4977727d] {\n padding: 20px 112px;\n background: white;\n margin: 20px 0px;\n}\n.m-tabs[data-v-4977727d] {\n padding: 12px 15px;\n margin: 20px 0px;\n background: white;\n}\n\n.m-tabs[data-v-4977727d] .container {\r\n padding: 0px;\r\n border: 0px;\r\n margin: 0;\n}\n.tb-3[data-v-4977727d] .container {\r\n padding-top:0 !important\n}\r\n\n.m-chart[data-v-8ad7842e] {\r\n margin-top: 20px;\r\n background: white;\n}\n.chart-t[data-v-8ad7842e] {\r\n display: -webkit-box;\r\n display: -ms-flexbox;\r\n display: flex;\n}\n.chart-t > div[data-v-8ad7842e] {\r\n padding: 10px;\r\n margin: 10px;\r\n -webkit-box-flex: 1;\r\n -ms-flex: 1;\r\n flex: 1;\n}\r\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.m-charts[data-v-0ae6d2f2] {\n background: #f1f1f1;\n padding: 20px;\n}\n.m-charts .m-tabs[data-v-0ae6d2f2] {\n background: white;\n}\n\n.c-container[data-v-346190ed] {\n background: #f1f1f1;\n padding: 10px;\n}\n.c-container .item[data-v-346190ed] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.c-container .item > div[data-v-346190ed] {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n margin: 10px;\n background: #fff;\n}\n\n.home-contianer[data-v-3e5cab89] {\r\n background: #efefef;\r\n width: 100%;\r\n height: 100%;\r\n /* padding: 20px; */\n}\n.ivu-card-body[data-v-3e5cab89] {\r\n text-align: center;\r\n padding: 20px 5px;\r\n /* padding-left: 80px; */\r\n font-size: 16px;\n}\n.demo-color-name[data-v-3e5cab89] {\r\n color: #fff;\r\n font-size: 14px;\n}\n.demo-color-desc[data-v-3e5cab89] {\r\n color: white;\r\n /* opacity: 0.7; */\r\n font-size: 20px;\r\n margin-top: 2px;\n}\n.ivu-card[data-v-3e5cab89] {\r\n -webkit-box-shadow: 0 3px 13px rgba(117, 114, 114, 0.47);\r\n box-shadow: 0 3px 13px rgba(117, 114, 114, 0.47);\r\n display: -webkit-box;\r\n display: -ms-flexbox;\r\n display: flex;\r\n position: relative;\n}\n.ivu-card .icon-left[data-v-3e5cab89] {\r\n width: 85px;\n}\n.ivu-card .ivu-card-body[data-v-3e5cab89] {\r\n -webkit-box-flex: 1;\r\n -ms-flex: 1;\r\n flex: 1;\n}\n.ivu-card .icon-left[data-v-3e5cab89] {\r\n text-align: center;\r\n border-right: 1px solid;\r\n padding: 8px 0px;\r\n height: 100%;\r\n\r\n font-size: 50px;\r\n color: white;\n}\n.ivu-row[data-v-3e5cab89] {\r\n border-bottom: 2px dotted #eee;\r\n padding: 15px;\r\n margin-bottom: 15px;\r\n display: -webkit-box;\r\n display: -ms-flexbox;\r\n display: flex;\n}\n.ivu-row > div[data-v-3e5cab89] {\r\n -webkit-box-flex: 1;\r\n -ms-flex: 1;\r\n flex: 1;\n}\n.h5-desc[data-v-3e5cab89] {\r\n padding-top: 10px;\n}\r\n\n.jn-day-total[data-v-3e5cab89] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n padding: 15px;\n background: white;\n}\n.jn-day-total .date-text[data-v-3e5cab89] {\n line-height: 36px;\n padding: 0 15px;\n}\n.jn-day-total .date[data-v-3e5cab89] {\n margin-right: 20px;\n}\n.jn-day-total .btn[data-v-3e5cab89] {\n margin-left: 10px;\n}\n.order-title h2[data-v-3e5cab89] {\n padding: 7px 15px;\n font-weight: 500;\n background: white;\n border-bottom: 1px dotted #d4d4d4;\n}\n.order-range[data-v-3e5cab89] {\n padding: 0 15px;\n background: white;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.order-range .order-item[data-v-3e5cab89] {\n -webkit-box-shadow: 0 3px 13px rgba(117, 114, 114, 0.47);\n box-shadow: 0 3px 13px rgba(117, 114, 114, 0.47);\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n border-radius: 6px;\n font-size: 14px;\n text-align: center;\n border: 1px solid #e6e6e6;\n margin: 7px;\n}\n.order-range .total[data-v-3e5cab89] {\n color: white;\n font-size: 50px;\n font-weight: bold;\n line-height: 100px;\n background: #55ce80;\n font-family: \"Helvetica Neue\", Helvetica, \"PingFang SC\", \"Hiragino Sans GB\", \"Microsoft YaHei\", \"\\5FAE\\8F6F\\96C5\\9ED1\", Arial, sans-serif;\n}\n.order-range .number[data-v-3e5cab89] {\n -webkit-transition: -webkit-transform 0.8s;\n transition: -webkit-transform 0.8s;\n transition: transform 0.8s;\n transition: transform 0.8s, -webkit-transform 0.8s;\n}\n.order-range .number[data-v-3e5cab89]:hover {\n cursor: pointer;\n -webkit-transform: scale(1.2);\n transform: scale(1.2);\n}\n.order-range .name[data-v-3e5cab89] {\n font-size: 20px;\n padding: 10px;\n}\n.order-range .date[data-v-3e5cab89] {\n padding: 1px 0 20px 0;\n color: #9e9e9e;\n font-size: 13px;\n}\n\n.numbers[data-v-3e5cab89] {\n margin-bottom: 15px;\n border-radius: 5px;\n border: 1px solid #eaeaea;\n background: white;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n padding: 20px 0px;\n}\n.numbers .item[data-v-3e5cab89] {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n text-align: center;\n border-right: 1px solid #e5e5e5;\n}\n.numbers .item > div[data-v-3e5cab89]:first-child {\n word-break: break-all;\n color: #282727;\n font-size: 30px;\n}\n.numbers .item > div[data-v-3e5cab89]:last-child {\n font-size: 13px;\n color: #777;\n}\n.numbers .item[data-v-3e5cab89]:last-child {\n border-right: none;\n}\n.numbers .number[data-v-3e5cab89] {\n cursor: pointer;\n -webkit-transition: -webkit-transform 0.8s;\n transition: -webkit-transform 0.8s;\n transition: transform 0.8s;\n transition: transform 0.8s, -webkit-transform 0.8s;\n}\n.numbers .number[data-v-3e5cab89]:hover {\n -webkit-transform: scale(1.2);\n transform: scale(1.2);\n color: #03c10b !important;\n}\n\n.tb[data-v-4038aaf8] {\n padding: 0px 20px;\n margin-top: 20px;\n}\n.v-header[data-v-4038aaf8] {\n background: white;\n padding: 10px;\n}\n\n.keep-edit[data-v-4038aaf8] .oper-btn,\r\n.keep-edit[data-v-4038aaf8] .img-btn {\r\n width: 75px;\r\n border-radius: 4px;\r\n padding: 2px 15px;\r\n background: #eee;\r\n color: #fff;\r\n background-color: #03a9f4;\r\n border-color: #19be6b;\r\n text-align: center;\r\n font-size: 12px;\r\n line-height: 24px;\r\n cursor: pointer;\n}\n.keep-edit[data-v-4038aaf8] .oper-btn {\r\n background-color: #19be6b;\n}\r\n\n.tb-container[data-v-f5b615c4] {\n background: #eee;\n padding: 6px;\n}\n.tb-container .v-top[data-v-f5b615c4] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.tb-container .v-top > div[data-v-f5b615c4] {\n background: white;\n margin: 10px;\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n height: 300px;\n}\n\n.links[data-v-ab9af4e8] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n font-size: 15px;\n position: fixed;\n z-index: 999;\n width: 100%;\n background: black;\n -webkit-box-shadow: 0px 0px 10px #524747;\n box-shadow: 0px 0px 10px #524747;\n}\n.links > .item[data-v-ab9af4e8] {\n position: relative;\n text-align: center;\n line-height: 55px;\n /* float: right; */\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n color: #b1b0b0;\n}\n.links > .item[data-v-ab9af4e8]:hover {\n cursor: pointer;\n color: white;\n}\n.links .actived[data-v-ab9af4e8] {\n color: white;\n font-weight: bold;\n}\n.links .actived span[data-v-ab9af4e8] {\n border-bottom: 2px solid #fff;\n}\n.links span[data-v-ab9af4e8] {\n height: 100%;\n position: relative;\n padding: 17px 0;\n}\n.affix[data-v-ab9af4e8] {\n left: 50px;\n position: fixed;\n top: 50px;\n padding: 20px;\n border-right: 1px solid #d6d3d3;\n}\n.affix .actived[data-v-ab9af4e8] {\n color: #ed4014;\n font-weight: bold;\n}\n.affix li[data-v-ab9af4e8]:hover {\n cursor: pointer;\n}\n.content[data-v-ab9af4e8] {\n position: relative;\n height: 100%;\n left: 0;\n right: 0;\n margin: 0 auto;\n padding: 10px 30px;\n padding-top: 80px;\n}\n.doc-api[data-v-ab9af4e8] {\n max-width: 100%;\n padding: 80px 40px;\n}\n.new[data-v-ab9af4e8]:after {\n content: \".\";\n position: absolute;\n width: 8px;\n height: 8px;\n background: #ececea;\n top: 11px;\n border-radius: 50%;\n}\n\n.view-model-content[data-v-ab9af4e8] .el-scrollbar > .el-scrollbar__wrap {\r\n overflow-x: hidden;\n}\r\n@media screen and (max-width: 600px) {\n .g-left {\n display: none;\n }\n .g-right {\n margin: 0 !important;\n }\n .g-right span,\n .g-right p {\n font-size: 0.8rem !important;\n line-height: 2 !important;\n }\n .g-right li {\n padding-left: 0 !important;\n }\n .content {\n padding: 0 !important;\n padding-right: 3px !important;\n }\n .links {\n display: none !important;\n }\n .doc-menu {\n font-size: 1.5rem;\n padding: 0.2rem 0.5rem;\n border-bottom: 1px solid #eee;\n display: block !important;\n }\n .g-p {\n text-align: center;\n padding: 0.5rem;\n }\n .g-p a {\n font-size: 1.3rem !important;\n margin: 0 !important;\n padding: 0.4rem;\n }\n .coder-container .left {\n display: none !important;\n }\n .coder-container .right {\n margin: 0 !important;\n }\n .i-container {\n padding: 1rem;\n }\n .i-container .list {\n margin: 0 !important;\n }\n .i-container .nav {\n display: none !important;\n }\n}\n\ntable[data-v-f066ecb8] {\n border-collapse: collapse;\n}\ntable tr[data-v-f066ecb8]:first-child {\n background: #f5f5f5;\n}\ntable td[data-v-f066ecb8] {\n padding: 12px 13px !important;\n border: 1px solid #dfe2e5 !important;\n border-collapse: collapse;\n}\n.g-left[data-v-f066ecb8] {\n border-right: 1px solid #e8e8e8;\n margin-right: 10px;\n width: 180px;\n position: fixed;\n padding-left: 20px;\n}\n.g-left .n-item[data-v-f066ecb8] {\n text-align: left;\n padding-right: 15px;\n list-style: none;\n}\n.g-left .n-item a[data-v-f066ecb8] {\n font-size: 15px;\n color: #737070;\n line-height: 40px;\n height: 40px;\n margin: 0;\n padding: 0;\n text-decoration: none;\n display: block;\n position: relative;\n -webkit-transition: 0.15s ease-out;\n transition: 0.15s ease-out;\n}\n.actived a[data-v-f066ecb8] {\n color: #2196f3 !important;\n}\n.avd1[data-v-f066ecb8],\n.avd2[data-v-f066ecb8] {\n position: fixed;\n right: 10px;\n}\n.avd1 img[data-v-f066ecb8],\n.avd2 img[data-v-f066ecb8] {\n width: 270px;\n}\n.avd2[data-v-f066ecb8] {\n top: 250px;\n}\n.h-box[data-v-f066ecb8] {\n line-height: 50px;\n text-align: center;\n font-size: 20px;\n border-radius: 5px;\n margin-bottom: 20px;\n width: 900px;\n}\n.h-box a[data-v-f066ecb8] {\n cursor: pointer;\n display: inline-block;\n padding: 25px 10px;\n height: 150px;\n width: 24%;\n border: 1px solid #eee;\n font-size: 16px;\n margin: 0px;\n color: #676767;\n margin-right: -6px;\n margin-bottom: -1px;\n}\n.h-box i[data-v-f066ecb8] {\n -webkit-transition: -webkit-transform 0.8s;\n transition: -webkit-transform 0.8s;\n transition: transform 0.8s;\n transition: transform 0.8s, -webkit-transform 0.8s;\n font-size: 40px;\n}\n.h-box a[data-v-f066ecb8]:hover {\n background: #e8e8e8;\n}\n.h-box a:hover i[data-v-f066ecb8] {\n -webkit-transform: scale(1.2);\n transform: scale(1.2);\n font-size: 50px !important;\n}\n\n.coder-container[data-v-7dd746cf] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.coder-container .left[data-v-7dd746cf] {\n position: fixed;\n width: 170px;\n border-right: 1px solid #ececec;\n margin-right: 20px;\n}\n.coder-container .left li[data-v-7dd746cf] {\n cursor: pointer;\n list-style: none;\n font-size: 15px;\n padding: 13px 5px;\n}\n.coder-container .left li.actived[data-v-7dd746cf] {\n color: #2196f3;\n}\n.coder-container .right[data-v-7dd746cf] {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n margin-left: 190px;\n}\n.coder-doc .title h2[data-v-7dd746cf] {\n color: #1f1f1f;\n font-weight: 500 !important;\n}\n.coder-doc .title h2[data-v-7dd746cf]:before {\n content: \"\";\n display: inline-block;\n width: 4px;\n height: 4px;\n border-radius: 50%;\n vertical-align: middle;\n background-color: #5e6d82;\n margin-right: 5px;\n}\n.coder-doc .coder-group[data-v-7dd746cf] {\n border-radius: 5px;\n width: 900px;\n display: inline-block;\n padding: 15px 25px;\n -webkit-box-shadow: 2px 0px 16px #e6e6e6;\n box-shadow: 2px 0px 16px #e6e6e6;\n margin: 15px 40px;\n}\n.coder-doc .coder-list[data-v-7dd746cf],\n.coder-doc .coder-img[data-v-7dd746cf] {\n font-size: 15px;\n margin-bottom: 10px;\n color: #5e6d82;\n list-style: none;\n}\n.coder-doc .coder-img img[data-v-7dd746cf] {\n cursor: pointer;\n width: 100%;\n}\n.coder-doc .coder-list[data-v-7dd746cf]:before {\n content: \"\";\n display: inline-block;\n width: 4px;\n height: 4px;\n border-radius: 50%;\n vertical-align: middle;\n background-color: #5e6d82;\n margin-right: 5px;\n}\n.step[data-v-7dd746cf] {\n color: #797878;\n font-size: 12px !important;\n}\n@-webkit-keyframes shake-data-v-7dd746cf {\n0% {\n opacity: 0.8;\n}\n50% {\n opacity: 0.4;\n}\n100% {\n opacity: 0.8;\n}\n}\n@keyframes shake-data-v-7dd746cf {\n0% {\n opacity: 0.8;\n}\n50% {\n opacity: 0.4;\n}\n100% {\n opacity: 0.8;\n}\n}\n.big-text[data-v-7dd746cf] {\n background: #ffff29;\n width: 940px;\n text-align: center;\n padding: 20px;\n border-radius: 10px;\n border: 1px solid;\n margin-bottom: 19px;\n font-size: 28px;\n margin-top: 18px;\n color: red;\n -webkit-animation: shake-data-v-7dd746cf 0.5s infinite;\n animation: shake-data-v-7dd746cf 0.5s infinite;\n}\n\ntable[data-v-7dd746cf] {\n border-collapse: collapse;\n}\ntable tr[data-v-7dd746cf]:first-child {\n background: #f5f5f5;\n}\ntable td[data-v-7dd746cf] {\n padding: 12px 13px !important;\n border: 1px solid #dfe2e5 !important;\n border-collapse: collapse;\n}\n\n.doc[data-v-ed65f762] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.doc .doc-left[data-v-ed65f762] {\n border-right: 1px solid;\n margin-right: 30px;\n color: #d2d2d2;\n position: fixed;\n width: 200px;\n padding: 0 10px;\n bottom: 20px;\n top: 81px;\n}\n.doc .doc-left li[data-v-ed65f762] {\n padding: 10px 5px;\n font-size: 14px;\n}\n.doc .doc-left li a[data-v-ed65f762] {\n color: #828282;\n}\n.doc .doc-right[data-v-ed65f762] {\n margin-left: 210px;\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n width: 1000px;\n}\nh2[data-v-ed65f762] {\n color: #171616;\n font-weight: 500;\n}\n.doc-wrapper[data-v-ed65f762] {\n margin-bottom: 35px;\n}\n.top-content[data-v-ed65f762] {\n color: #f44336;\n margin-top: 10px;\n border: 1px dotted #dcd3d3;\n border-radius: 6px;\n padding: 15px;\n background: white;\n font-size: 14px;\n margin-bottom: 10px;\n -webkit-box-shadow: 0 8px 12px #ebedf0;\n box-shadow: 0 8px 12px #ebedf0;\n}\n.top-content > p[data-v-ed65f762] {\n padding: 5px 0;\n padding-bottom: 10px;\n}\n.top-content > p[data-v-ed65f762]:before {\n content: \"\";\n display: inline-block;\n width: 4px;\n height: 4px;\n border-radius: 50%;\n vertical-align: middle;\n background-color: #5e6d82;\n margin-right: 5px;\n}\n.d-content[data-v-ed65f762] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n margin-top: 10px;\n border: 1px dotted #dcd3d3;\n border-radius: 6px;\n padding: 15px;\n background: white;\n font-size: 14px;\n margin-bottom: 10px;\n -webkit-box-shadow: 0 8px 12px #ebedf0;\n box-shadow: 0 8px 12px #ebedf0;\n}\n.d-content .code[data-v-ed65f762] {\n margin-right: 15px;\n border-right: 1px solid #dbddde;\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n line-height: 2.5;\n}\n.d-content .img[data-v-ed65f762] {\n cursor: pointer;\n width: 500px;\n}\n.d-content .img img[data-v-ed65f762] {\n width: 100%;\n}\n.d-content .full-code[data-v-ed65f762] {\n display: none;\n}\n.d-content > p[data-v-ed65f762] {\n padding: 5px 0;\n}\n.d-content > p[data-v-ed65f762]:before {\n content: \"\";\n display: inline-block;\n width: 4px;\n height: 4px;\n border-radius: 50%;\n vertical-align: middle;\n background-color: #5e6d82;\n margin-right: 5px;\n}\n.title h2[data-v-ed65f762]:before {\n content: \"\";\n display: inline-block;\n width: 4px;\n height: 4px;\n border-radius: 50%;\n vertical-align: middle;\n background-color: #5e6d82;\n margin-right: 5px;\n}\n.active[data-v-ed65f762] {\n color: #409eff !important;\n}\n@-webkit-keyframes shake-data-v-ed65f762 {\n50% {\n background: #268af1;\n}\n100% {\n background: #0b66c3;\n}\n}\n@keyframes shake-data-v-ed65f762 {\n50% {\n background: #268af1;\n}\n100% {\n background: #0b66c3;\n}\n}\n.big-text[data-v-ed65f762] {\n background: #0b69cc;\n /* width: 940px; */\n /* text-align: center; */\n padding: 20px;\n border-radius: 10px;\n border: 1px solid;\n margin-bottom: 19px;\n font-size: 25px;\n margin-top: 18px;\n color: #ffffff;\n -webkit-animation: shake-data-v-ed65f762 0.5s infinite;\n animation: shake-data-v-ed65f762 0.5s infinite;\n}\n\n.doc[data-v-11b5bd7a] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.doc .doc-left[data-v-11b5bd7a] {\n border-right: 1px solid;\n margin-right: 30px;\n color: #d2d2d2;\n position: fixed;\n width: 250px;\n padding: 0 10px;\n bottom: 20px;\n top: 81px;\n}\n.doc .doc-left li[data-v-11b5bd7a] {\n padding: 10px 10px;\n font-size: 14px;\n}\n.doc .doc-left li a[data-v-11b5bd7a] {\n color: #828282;\n}\n.doc .doc-right[data-v-11b5bd7a] {\n margin-left: 270px;\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n width: 900px;\n}\nh2[data-v-11b5bd7a] {\n color: #171616;\n font-weight: 500;\n}\n.doc-wrapper[data-v-11b5bd7a] {\n margin-bottom: 35px;\n}\n.top-content[data-v-11b5bd7a] {\n color: #f44336;\n margin-top: 10px;\n border: 1px dotted #dcd3d3;\n border-radius: 6px;\n padding: 15px;\n background: white;\n font-size: 14px;\n margin-bottom: 10px;\n -webkit-box-shadow: 0 8px 12px #ebedf0;\n box-shadow: 0 8px 12px #ebedf0;\n}\n.top-content > p[data-v-11b5bd7a] {\n padding: 5px 0;\n padding-bottom: 10px;\n}\n.top-content > p[data-v-11b5bd7a]:before {\n content: \"\";\n display: inline-block;\n width: 4px;\n height: 4px;\n border-radius: 50%;\n vertical-align: middle;\n background-color: #5e6d82;\n margin-right: 5px;\n}\n.d-content[data-v-11b5bd7a] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n margin-top: 10px;\n border: 1px dotted #dcd3d3;\n border-radius: 6px;\n padding: 15px;\n background: white;\n font-size: 14px;\n margin-bottom: 10px;\n -webkit-box-shadow: 0 8px 12px #ebedf0;\n box-shadow: 0 8px 12px #ebedf0;\n}\n.d-content .code[data-v-11b5bd7a] {\n margin-right: 15px;\n border-right: 1px solid #dbddde;\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n}\n.d-content .img[data-v-11b5bd7a] {\n cursor: pointer;\n width: 500px;\n}\n.d-content .img img[data-v-11b5bd7a] {\n width: 100%;\n}\n.d-content > p[data-v-11b5bd7a] {\n padding: 5px 0;\n}\n.d-content > p[data-v-11b5bd7a]:before {\n content: \"\";\n display: inline-block;\n width: 4px;\n height: 4px;\n border-radius: 50%;\n vertical-align: middle;\n background-color: #5e6d82;\n margin-right: 5px;\n}\n.title h2[data-v-11b5bd7a]:before {\n content: \"\";\n display: inline-block;\n width: 4px;\n height: 4px;\n border-radius: 50%;\n vertical-align: middle;\n background-color: #5e6d82;\n margin-right: 5px;\n}\n.active[data-v-11b5bd7a] {\n color: #409eff !important;\n}\n.doc-nav[data-v-11b5bd7a] {\n margin: 15px;\n text-align: center;\n padding: 10px;\n}\n.doc-nav a[data-v-11b5bd7a] {\n font-size: 20px;\n margin: 0 10px;\n line-height: 30px;\n padding: 4px 0;\n border-bottom: 1px solid;\n}\n\n.i-container[data-v-f5e4db56] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.i-container > .nav[data-v-f5e4db56] {\n border-right: 1px solid #ccc3c3;\n margin-right: 50px;\n width: 250px;\n position: fixed;\n /* height: 100%; */\n bottom: 20px;\n top: 81px;\n}\n.i-container > .nav .n-item[data-v-f5e4db56] {\n text-align: left;\n padding-right: 29px;\n list-style: none;\n}\n.i-container > .nav .n-item a[data-v-f5e4db56] {\n font-size: 14px;\n color: #737070;\n line-height: 30px;\n margin: 0;\n padding: 0;\n text-decoration: none;\n display: block;\n position: relative;\n -webkit-transition: 0.15s ease-out;\n transition: 0.15s ease-out;\n}\n.i-container > .list[data-v-f5e4db56] {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n margin-left: 270px;\n}\n.active[data-v-f5e4db56] {\n color: #409eff !important;\n}\n.i-item[data-v-f5e4db56] {\n padding-bottom: 10px;\n border-bottom: 1px solid #eee;\n margin-bottom: 15px;\n}\n.i-item h3[data-v-f5e4db56] {\n font-size: 22px;\n font-weight: 400;\n margin: 0 0 10px;\n color: #1f2d3d;\n}\n.i-item[data-v-f5e4db56]:hover {\n cursor: pointer;\n}\n.desc li[data-v-f5e4db56] {\n font-size: 14px;\n margin-bottom: 10px;\n color: #5e6d82;\n list-style: none;\n}\n.desc li[data-v-f5e4db56]:before {\n content: \"\";\n display: inline-block;\n width: 4px;\n height: 4px;\n border-radius: 50%;\n vertical-align: middle;\n background-color: #5e6d82;\n margin-right: 5px;\n}\n\n.time-line-item[data-v-12a27190] {\n margin-top: 40px;\n}\n.time-line-item h3[data-v-12a27190] {\n font-size: 22px;\n font-weight: 400;\n margin: 0 0 15px;\n color: #1f2d3d;\n}\n.date[data-v-12a27190] {\n border-right: 1px solid #009688;\n margin-right: 30px;\n padding-right: 30px;\n}\nli[data-v-12a27190] {\n list-style: none;\n font-size: 15px;\n padding: 5px;\n}\nli[data-v-12a27190]:before {\n content: \"\";\n display: inline-block;\n width: 9px;\n height: 9px;\n background-color: #40ad44;\n border-radius: 50%;\n margin-right: 10px;\n top: -1px;\n position: relative;\n}\n.month[data-v-12a27190] {\n font-size: 26px;\n font-weight: bold;\n margin-top: 20px;\n}\n.month .date[data-v-12a27190] {\n border-right: 0;\n}\n.month[data-v-12a27190]:before {\n display: none;\n}\n.log[data-v-12a27190] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.log .active[data-v-12a27190] {\n color: #409eff !important;\n}\n.log .nav[data-v-12a27190] {\n width: 300px;\n}\n.log .nav ul[data-v-12a27190] {\n z-index: 999999;\n top: 90px;\n position: fixed;\n}\n.log .nav a[data-v-12a27190] {\n font-size: 15px;\n color: #737070;\n line-height: 40px;\n height: 40px;\n margin: 0;\n padding: 0;\n text-decoration: none;\n display: block;\n position: relative;\n -webkit-transition: 0.15s ease-out;\n transition: 0.15s ease-out;\n}\n.log .item[data-v-12a27190] {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n}\n.content[data-v-12a27190] {\n max-width: 800px;\n padding-top: 40px;\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n.i-container[data-v-7237559b] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.i-container > .nav[data-v-7237559b] {\n border-right: 1px solid #ccc3c3;\n margin-right: 10px;\n width: 180px;\n position: fixed;\n}\n.i-container > .nav .n-item[data-v-7237559b] {\n text-align: left;\n padding-right: 15px;\n list-style: none;\n}\n.i-container > .nav .n-item a[data-v-7237559b] {\n font-size: 15px;\n color: #737070;\n line-height: 40px;\n height: 40px;\n margin: 0;\n padding: 0;\n text-decoration: none;\n display: block;\n position: relative;\n -webkit-transition: 0.15s ease-out;\n transition: 0.15s ease-out;\n}\n.i-container > .list[data-v-7237559b] {\n width: 1000px;\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n margin-left: 195px;\n}\n.active[data-v-7237559b] {\n color: #409eff !important;\n}\n.i-item[data-v-7237559b] {\n padding-bottom: 10px;\n border-bottom: 1px solid #eee;\n margin-bottom: 15px;\n}\n.i-item h3[data-v-7237559b] {\n font-size: 22px;\n font-weight: 400;\n margin: 0 0 10px;\n color: #1f2d3d;\n}\n.i-item[data-v-7237559b]:hover {\n cursor: pointer;\n}\n.desc li[data-v-7237559b] {\n font-size: 14px;\n margin-bottom: 10px;\n color: #5e6d82;\n list-style: none;\n}\n.desc li[data-v-7237559b]:before {\n content: \"\";\n display: inline-block;\n width: 4px;\n height: 4px;\n border-radius: 50%;\n vertical-align: middle;\n background-color: #5e6d82;\n margin-right: 5px;\n}\n.i-text h2 {\n font-size: 20px;\n font-weight: 400;\n}\n.bg-ms {\n margin: 0;\n}\n.bg-ms > code {\n background: #f7f7f7;\n display: block;\n overflow-x: auto;\n color: #525252;\n}\n\ntable[data-v-8a33760c] {\r\n width: 100%;\r\n font-family: Consolas, Menlo, Courier, monospace;\r\n font-size: 12px;\r\n border-collapse: collapse;\r\n border-spacing: 0;\r\n empty-cells: show;\r\n border: 1px solid #e9e9e9;\r\n width: 100%;\r\n margin-bottom: 24px;\n}\ntd[data-v-8a33760c] {\r\n border: 1px solid #e9e9e9;\r\n padding: 8px 16px;\r\n text-align: left;\n}\nthead td[data-v-8a33760c] {\r\n background: #f7f7f7;\r\n white-space: nowrap;\r\n color: #5c6b77;\r\n font-weight: 600;\n}\n.i-text[data-v-8a33760c] {\r\n margin-bottom: 15px;\n}\n.i-text h2[data-v-8a33760c] {\r\n font-size: 20px;\r\n font-weight: 400;\n}\r\n\n.vol-demo[data-v-2862465f] {\n -webkit-box-shadow: 0px 0px 10px #ccc9c9;\n box-shadow: 0px 0px 10px #ccc9c9;\n padding: 23px;\n}\n\n.keep-edit[data-v-2862465f] .oper-btn,\r\n.keep-edit[data-v-2862465f] .img-btn {\r\n width: 75px;\r\n border-radius: 4px;\r\n padding: 2px 15px;\r\n background: #eee;\r\n color: #fff;\r\n background-color: #03a9f4;\r\n border-color: #19be6b;\r\n text-align: center;\r\n font-size: 12px;\r\n line-height: 24px;\r\n cursor: pointer;\n}\n.keep-edit[data-v-2862465f] .oper-btn {\r\n background-color: #19be6b;\n}\r\n\n.desc[data-v-7f85d654] {\r\n padding: 3px 5px;\n}\r\n\n.upload-container[data-v-09158d38] {\n max-height: 160px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.upload-container .upload-item[data-v-09158d38] {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n padding: 20px;\n}\n\n.vol-demo[data-v-741e5755] {\n -webkit-box-shadow: 0px 0px 10px #ccc9c9;\n box-shadow: 0px 0px 10px #ccc9c9;\n padding: 23px;\n}\n\n.keep-edit[data-v-741e5755] .oper-btn,\r\n.keep-edit[data-v-741e5755] .img-btn {\r\n width: 75px;\r\n border-radius: 4px;\r\n padding: 2px 15px;\r\n background: #eee;\r\n color: #fff;\r\n background-color: #03a9f4;\r\n border-color: #19be6b;\r\n text-align: center;\r\n font-size: 12px;\r\n line-height: 24px;\r\n cursor: pointer;\n}\n.keep-edit[data-v-741e5755] .oper-btn {\r\n background-color: #19be6b;\n}\r\n\n#MySignature {\r\n background-color: #f8f8ee;\r\n border: solid 1px #e8e7d0;\r\n -webkit-box-shadow: 0 0 15px #aaa;\r\n box-shadow: 0 0 15px #aaa;\r\n padding: 10px;\r\n margin-bottom: 10px;\r\n color: #808080;\n}\r\n\r\n\n.rm-main[data-v-dd566fec] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.rm-main .rm-main-left[data-v-dd566fec] {\n -webkit-box-flex: 0.25;\n -ms-flex: 0.25;\n flex: 0.25;\n padding: 30px 35px;\n overflow: hidden;\n background: #eeeeee;\n}\n.rm-main .rm-main-right[data-v-dd566fec] {\n -webkit-box-flex: 0.8;\n -ms-flex: 0.8;\n flex: 0.8;\n padding: 35px 30px 10px 35px;\n}\n\n.rm-main[data-v-7be657d4] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.rm-main .rm-main-left[data-v-7be657d4] {\n -webkit-box-flex: 0.25;\n -ms-flex: 0.25;\n flex: 0.25;\n padding: 30px 35px;\n overflow: hidden;\n background: #eeeeee;\n}\n.rm-main .rm-main-right[data-v-7be657d4] {\n -webkit-box-flex: 0.8;\n -ms-flex: 0.8;\n flex: 0.8;\n padding: 35px 30px 10px 35px;\n}\n.totop[data-v-7be657d4] {\n position: fixed;\n bottom: 100px;\n right: 40px;\n width: 40px;\n height: 40px;\n background-color: #fff;\n border-radius: 50%;\n -webkit-box-shadow: 0 0 6px rgba(0, 0, 0, 0.12);\n box-shadow: 0 0 6px rgba(0, 0, 0, 0.12);\n cursor: pointer;\n z-index: 5;\n}\n.totop .el-icon-caret-top[data-v-7be657d4] {\n color: #fff;\n display: block;\n line-height: 40px;\n text-align: center;\n font-size: 18px;\n}\n.totop:hover .el-icon-caret-top[data-v-7be657d4] {\n color: #3399ff;\n}\n\n.bg[data-v-bf8b8c84] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n overflow: hidden;\n position: relative;\n height: 100%;\n width: 100%;\n background-color: #330000;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25' viewBox='0 0 800 400'%3E%3Cdefs%3E%3CradialGradient id='a' cx='396' cy='281' r='514' gradientUnits='userSpaceOnUse'%3E%3Cstop offset='0' stop-color='%233b3b6b'/%3E%3Cstop offset='1' stop-color='%23330000'/%3E%3C/radialGradient%3E%3ClinearGradient id='b' gradientUnits='userSpaceOnUse' x1='400' y1='148' x2='400' y2='333'%3E%3Cstop offset='0' stop-color='%23146cc9' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23146cc9' stop-opacity='0.5'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect fill='url(%23a)' width='800' height='400'/%3E%3Cg fill-opacity='0.5'%3E%3Ccircle fill='url(%23b)' cx='267.5' cy='61' r='300'/%3E%3Ccircle fill='url(%23b)' cx='532.5' cy='61' r='300'/%3E%3Ccircle fill='url(%23b)' cx='400' cy='30' r='300'/%3E%3C/g%3E%3C/svg%3E\");\n}\n.login[data-v-bf8b8c84] {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n}\n.content[data-v-bf8b8c84] {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n z-index: 99;\n position: relative;\n width: 860px;\n left: 0;\n right: 0;\n margin: 0 auto;\n -webkit-transform: translateY(-50%);\n transform: translateY(-50%);\n top: 50%;\n height: 400px;\n border-radius: 10px;\n}\n.content .l-left[data-v-bf8b8c84] {\n border-top-left-radius: 5px;\n border-bottom-left-radius: 5px;\n width: 400px;\n background-image: linear-gradient(135deg, #0d82ff 10%, #0cd7bd);\n border: 1px solid #5c87ff;\n}\n.desc[data-v-bf8b8c84] {\n width: 450px;\n padding: 10px 30px;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n height: 100%;\n}\n.desc p[data-v-bf8b8c84] {\n font-size: 15px;\n color: white;\n line-height: 30px;\n}\n.desc p[data-v-bf8b8c84]:before {\n top: -1px;\n content: \"o\";\n position: relative;\n margin-right: 7px;\n}\n.title[data-v-bf8b8c84] {\n z-index: 999;\n font-size: 70px;\n font-weight: bold;\n color: white;\n}\n.l-bg[data-v-bf8b8c84] {\n height: 1200px;\n width: 1200px;\n border-radius: 50%;\n background: #2cecff;\n position: absolute;\n top: -700px;\n left: -700px;\n background-image: linear-gradient(135deg, #00a7f5 10%, #0cb3ff);\n}\n.r-bg[data-v-bf8b8c84] {\n height: 2000px;\n width: 2000px;\n border-radius: 50%;\n background: #2cecff;\n position: absolute;\n top: -1500px;\n right: -900px;\n background-image: linear-gradient(135deg, #42c2ff 10%, #1da1dc);\n}\n\n.form-user[data-v-bf8b8c84] {\n margin: 25px 0;\n}\n.form-user .f-remove[data-v-bf8b8c84] {\n display: none;\n}\n.form-user .item:hover .f-remove[data-v-bf8b8c84] {\n display: block;\n}\n.form-user .item[data-v-bf8b8c84] {\n padding-bottom: 5px;\n border-bottom: 1px solid #eee;\n margin-bottom: 30px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.form-user .item .f-text[data-v-bf8b8c84] {\n color: #484848;\n font-weight: 400;\n width: 110px;\n font-size: 16px;\n}\n.form-user .item .f-text i[data-v-bf8b8c84] {\n position: relative;\n top: -1px;\n right: 5px;\n}\n.form-user .item .f-input[data-v-bf8b8c84] {\n border: 0px;\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n}\n.form-user .item .code[data-v-bf8b8c84] {\n position: relative;\n cursor: pointer;\n top: -5px;\n width: 74px;\n border: 1px solid #fdfdfd;\n border-radius: 2px;\n height: 35px;\n margin-left: 10px;\n}\ninput[data-v-bf8b8c84]:-webkit-autofill {\n -webkit-box-shadow: 0 0 0px 1000px white inset;\n box-shadow: 0 0 0px 1000px white inset;\n}\n.login-contianer .login-form[data-v-bf8b8c84] {\n border-top-right-radius: 5px;\n border-bottom-right-radius: 5px;\n padding: 10px 30px 40px 30px;\n width: 400px;\n min-height: 340px;\n background: white;\n height: 400px;\n -webkit-box-shadow: 0px 4px 21px #d6d6d6;\n box-shadow: 0px 4px 21px #d6d6d6;\n}\n.login-project[data-v-bf8b8c84] {\n line-height: 70px;\n}\n.login-project img[data-v-bf8b8c84] {\n height: 80px;\n}\n.login-project .project-name[data-v-bf8b8c84] {\n font-size: 50px;\n position: relative;\n color: white;\n font-weight: 600;\n margin-left: 9px;\n}\n.login-project .desc[data-v-bf8b8c84] {\n color: wheat;\n font-size: 15px;\n}\n.loging-btn[data-v-bf8b8c84] {\n margin-top: 40px;\n}\n.action[data-v-bf8b8c84] {\n text-align: right;\n margin-top: 20px;\n}\n.action a[data-v-bf8b8c84] {\n margin-left: 20px;\n}\n.login-footer[data-v-bf8b8c84] {\n padding: 10px;\n text-align: center;\n font-size: 16px;\n position: absolute;\n width: 100%;\n bottom: 0px;\n background: #06a3ea;\n border-top: 1px solid #e2e2e2;\n}\n.login-footer i[data-v-bf8b8c84] {\n position: relative;\n top: -2px;\n margin-right: 5px;\n}\n.login-footer a[data-v-bf8b8c84] {\n margin-left: 30px;\n color: white;\n}\n.login-footer a[data-v-bf8b8c84]:hover {\n color: orange;\n}\n.login-footer a[data-v-bf8b8c84]:active {\n color: pink;\n}\n@media screen and (max-width: 600px) {\n.desc[data-v-bf8b8c84] {\n display: none;\n}\n.bg[data-v-bf8b8c84] {\n background-image: none;\n}\n.login-form[data-v-bf8b8c84] {\n -webkit-box-shadow: none !important;\n box-shadow: none !important;\n}\n.login-form[data-v-bf8b8c84] {\n width: 100% !important;\n}\n.login-footer[data-v-bf8b8c84],\n .r-bg[data-v-bf8b8c84],\n .l-bg[data-v-bf8b8c84] {\n display: none;\n}\n.l-left[data-v-bf8b8c84] {\n display: none;\n}\n.c-bg-item[data-v-bf8b8c84] {\n background: none !important;\n}\n}\n\n.login-contianer[data-v-bf8b8c84] .ivu-form .ivu-form-item-content {\r\n margin-left: 0px !important;\n}\r\n\ninput:-webkit-autofill {\r\n -webkit-box-shadow: 0 0 0px 1000px white inset !important;\n}\ninput {\r\n background: white;\r\n display: block;\r\n -webkit-box-sizing: border-box;\r\n box-sizing: border-box;\r\n width: 100%;\r\n min-width: 0;\r\n margin: 0;\r\n padding: 0;\r\n color: #323233;\r\n line-height: inherit;\r\n text-align: left;\r\n border: 0;\r\n outline: none;\r\n font-size: 16px;\r\n line-height: 20px;\n}\r\n\n.c-bg[data-v-bf8b8c84] {\n position: absolute;\n width: 100%;\n height: 200px;\n}\n.c-bg .c-bg-item[data-v-bf8b8c84] {\n width: 25%;\n background: #00a7f5;\n height: 200px;\n}\np[data-v-bf8b8c84]:hover {\n color: orange;\n}\np[data-v-bf8b8c84]:active {\n color: pink;\n}\n.el-message__closeBtn:focus,.el-message__content:focus{outline-width:0}.el-message{min-width:380px;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;border-width:1px;border-style:solid;border-color:#EBEEF5;position:fixed;left:50%;top:20px;-webkit-transform:translateX(-50%);transform:translateX(-50%);background-color:#edf2fc;-webkit-transition:opacity .3s,top .4s,-webkit-transform .4s;transition:opacity .3s,top .4s,-webkit-transform .4s;transition:opacity .3s,transform .4s,top .4s;transition:opacity .3s,transform .4s,top .4s,-webkit-transform .4s;overflow:hidden;padding:15px 15px 15px 20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-message.is-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-message.is-closable .el-message__content{padding-right:16px}.el-message p{margin:0}.el-message--info .el-message__content{color:#909399}.el-message--success{background-color:#f0f9eb;border-color:#e1f3d8}.el-message--success .el-message__content{color:#67C23A}.el-message--warning{background-color:#fdf6ec;border-color:#faecd8}.el-message--warning .el-message__content{color:#E6A23C}.el-message--error{background-color:#fef0f0;border-color:#fde2e2}.el-message--error .el-message__content{color:#F56C6C}.el-message__icon{margin-right:10px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__closeBtn{position:absolute;top:50%;right:15px;-webkit-transform:translateY(-50%);transform:translateY(-50%);cursor:pointer;color:#C0C4CC;font-size:16px}.el-message__closeBtn:hover{color:#909399}.el-message .el-icon-success{color:#67C23A}.el-message .el-icon-error{color:#F56C6C}.el-message .el-icon-info{color:#909399}.el-message .el-icon-warning{color:#E6A23C}.el-message-fade-enter,.el-message-fade-leave-active{opacity:0;-webkit-transform:translate(-50%,-100%);transform:translate(-50%,-100%)}.el-fade-in-enter,.el-fade-in-leave-active,.el-fade-in-linear-enter,.el-fade-in-linear-leave,.el-fade-in-linear-leave-active,.fade-in-linear-enter,.fade-in-linear-leave,.fade-in-linear-leave-active{opacity:0}.fade-in-linear-enter-active,.fade-in-linear-leave-active{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.el-fade-in-enter-active,.el-fade-in-leave-active{-webkit-transition:all .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{-webkit-transition:all .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter,.el-zoom-in-center-leave-active{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:center top;transform-origin:center top}.el-zoom-in-top-enter,.el-zoom-in-top-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:center bottom;transform-origin:center bottom}.el-zoom-in-bottom-enter,.el-zoom-in-bottom-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;-webkit-transform:scale(1,1);transform:scale(1,1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:top left;transform-origin:top left}.el-zoom-in-left-enter,.el-zoom-in-left-leave-active{opacity:0;-webkit-transform:scale(.45,.45);transform:scale(.45,.45)}.collapse-transition{-webkit-transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out;transition:.3s height ease-in-out,.3s padding-top ease-in-out,.3s padding-bottom ease-in-out}.horizontal-collapse-transition{-webkit-transition:.3s width ease-in-out,.3s padding-left ease-in-out,.3s padding-right ease-in-out;transition:.3s width ease-in-out,.3s padding-left ease-in-out,.3s padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{-webkit-transition:all 1s;transition:all 1s}.el-list-enter,.el-list-leave-active{opacity:0;-webkit-transform:translateY(-30px);transform:translateY(-30px)}.el-opacity-transition{-webkit-transition:opacity .3s cubic-bezier(.55,0,.1,1);transition:opacity .3s cubic-bezier(.55,0,.1,1)}@font-face{font-family:element-icons;src:url(/static/fonts/element-icons.535877f.woff) format(\"woff\"),url(/static/fonts/element-icons.732389d.ttf) format(\"truetype\");font-weight:400;font-display:\"auto\";font-style:normal}[class*=\" el-icon-\"],[class^=el-icon-]{font-family:element-icons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;vertical-align:baseline;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-icon-ice-cream-round:before{content:\"\\E6A0\"}.el-icon-ice-cream-square:before{content:\"\\E6A3\"}.el-icon-lollipop:before{content:\"\\E6A4\"}.el-icon-potato-strips:before{content:\"\\E6A5\"}.el-icon-milk-tea:before{content:\"\\E6A6\"}.el-icon-ice-drink:before{content:\"\\E6A7\"}.el-icon-ice-tea:before{content:\"\\E6A9\"}.el-icon-coffee:before{content:\"\\E6AA\"}.el-icon-orange:before{content:\"\\E6AB\"}.el-icon-pear:before{content:\"\\E6AC\"}.el-icon-apple:before{content:\"\\E6AD\"}.el-icon-cherry:before{content:\"\\E6AE\"}.el-icon-watermelon:before{content:\"\\E6AF\"}.el-icon-grape:before{content:\"\\E6B0\"}.el-icon-refrigerator:before{content:\"\\E6B1\"}.el-icon-goblet-square-full:before{content:\"\\E6B2\"}.el-icon-goblet-square:before{content:\"\\E6B3\"}.el-icon-goblet-full:before{content:\"\\E6B4\"}.el-icon-goblet:before{content:\"\\E6B5\"}.el-icon-cold-drink:before{content:\"\\E6B6\"}.el-icon-coffee-cup:before{content:\"\\E6B8\"}.el-icon-water-cup:before{content:\"\\E6B9\"}.el-icon-hot-water:before{content:\"\\E6BA\"}.el-icon-ice-cream:before{content:\"\\E6BB\"}.el-icon-dessert:before{content:\"\\E6BC\"}.el-icon-sugar:before{content:\"\\E6BD\"}.el-icon-tableware:before{content:\"\\E6BE\"}.el-icon-burger:before{content:\"\\E6BF\"}.el-icon-knife-fork:before{content:\"\\E6C1\"}.el-icon-fork-spoon:before{content:\"\\E6C2\"}.el-icon-chicken:before{content:\"\\E6C3\"}.el-icon-food:before{content:\"\\E6C4\"}.el-icon-dish-1:before{content:\"\\E6C5\"}.el-icon-dish:before{content:\"\\E6C6\"}.el-icon-moon-night:before{content:\"\\E6EE\"}.el-icon-moon:before{content:\"\\E6F0\"}.el-icon-cloudy-and-sunny:before{content:\"\\E6F1\"}.el-icon-partly-cloudy:before{content:\"\\E6F2\"}.el-icon-cloudy:before{content:\"\\E6F3\"}.el-icon-sunny:before{content:\"\\E6F6\"}.el-icon-sunset:before{content:\"\\E6F7\"}.el-icon-sunrise-1:before{content:\"\\E6F8\"}.el-icon-sunrise:before{content:\"\\E6F9\"}.el-icon-heavy-rain:before{content:\"\\E6FA\"}.el-icon-lightning:before{content:\"\\E6FB\"}.el-icon-light-rain:before{content:\"\\E6FC\"}.el-icon-wind-power:before{content:\"\\E6FD\"}.el-icon-baseball:before{content:\"\\E712\"}.el-icon-soccer:before{content:\"\\E713\"}.el-icon-football:before{content:\"\\E715\"}.el-icon-basketball:before{content:\"\\E716\"}.el-icon-ship:before{content:\"\\E73F\"}.el-icon-truck:before{content:\"\\E740\"}.el-icon-bicycle:before{content:\"\\E741\"}.el-icon-mobile-phone:before{content:\"\\E6D3\"}.el-icon-service:before{content:\"\\E6D4\"}.el-icon-key:before{content:\"\\E6E2\"}.el-icon-unlock:before{content:\"\\E6E4\"}.el-icon-lock:before{content:\"\\E6E5\"}.el-icon-watch:before{content:\"\\E6FE\"}.el-icon-watch-1:before{content:\"\\E6FF\"}.el-icon-timer:before{content:\"\\E702\"}.el-icon-alarm-clock:before{content:\"\\E703\"}.el-icon-map-location:before{content:\"\\E704\"}.el-icon-delete-location:before{content:\"\\E705\"}.el-icon-add-location:before{content:\"\\E706\"}.el-icon-location-information:before{content:\"\\E707\"}.el-icon-location-outline:before{content:\"\\E708\"}.el-icon-location:before{content:\"\\E79E\"}.el-icon-place:before{content:\"\\E709\"}.el-icon-discover:before{content:\"\\E70A\"}.el-icon-first-aid-kit:before{content:\"\\E70B\"}.el-icon-trophy-1:before{content:\"\\E70C\"}.el-icon-trophy:before{content:\"\\E70D\"}.el-icon-medal:before{content:\"\\E70E\"}.el-icon-medal-1:before{content:\"\\E70F\"}.el-icon-stopwatch:before{content:\"\\E710\"}.el-icon-mic:before{content:\"\\E711\"}.el-icon-copy-document:before{content:\"\\E718\"}.el-icon-full-screen:before{content:\"\\E719\"}.el-icon-switch-button:before{content:\"\\E71B\"}.el-icon-aim:before{content:\"\\E71C\"}.el-icon-crop:before{content:\"\\E71D\"}.el-icon-odometer:before{content:\"\\E71E\"}.el-icon-time:before{content:\"\\E71F\"}.el-icon-bangzhu:before{content:\"\\E724\"}.el-icon-close-notification:before{content:\"\\E726\"}.el-icon-microphone:before{content:\"\\E727\"}.el-icon-turn-off-microphone:before{content:\"\\E728\"}.el-icon-position:before{content:\"\\E729\"}.el-icon-postcard:before{content:\"\\E72A\"}.el-icon-message:before{content:\"\\E72B\"}.el-icon-chat-line-square:before{content:\"\\E72D\"}.el-icon-chat-dot-square:before{content:\"\\E72E\"}.el-icon-chat-dot-round:before{content:\"\\E72F\"}.el-icon-chat-square:before{content:\"\\E730\"}.el-icon-chat-line-round:before{content:\"\\E731\"}.el-icon-chat-round:before{content:\"\\E732\"}.el-icon-set-up:before{content:\"\\E733\"}.el-icon-turn-off:before{content:\"\\E734\"}.el-icon-open:before{content:\"\\E735\"}.el-icon-connection:before{content:\"\\E736\"}.el-icon-link:before{content:\"\\E737\"}.el-icon-cpu:before{content:\"\\E738\"}.el-icon-thumb:before{content:\"\\E739\"}.el-icon-female:before{content:\"\\E73A\"}.el-icon-male:before{content:\"\\E73B\"}.el-icon-guide:before{content:\"\\E73C\"}.el-icon-news:before{content:\"\\E73E\"}.el-icon-price-tag:before{content:\"\\E744\"}.el-icon-discount:before{content:\"\\E745\"}.el-icon-wallet:before{content:\"\\E747\"}.el-icon-coin:before{content:\"\\E748\"}.el-icon-money:before{content:\"\\E749\"}.el-icon-bank-card:before{content:\"\\E74A\"}.el-icon-box:before{content:\"\\E74B\"}.el-icon-present:before{content:\"\\E74C\"}.el-icon-sell:before{content:\"\\E6D5\"}.el-icon-sold-out:before{content:\"\\E6D6\"}.el-icon-shopping-bag-2:before{content:\"\\E74D\"}.el-icon-shopping-bag-1:before{content:\"\\E74E\"}.el-icon-shopping-cart-2:before{content:\"\\E74F\"}.el-icon-shopping-cart-1:before{content:\"\\E750\"}.el-icon-shopping-cart-full:before{content:\"\\E751\"}.el-icon-smoking:before{content:\"\\E752\"}.el-icon-no-smoking:before{content:\"\\E753\"}.el-icon-house:before{content:\"\\E754\"}.el-icon-table-lamp:before{content:\"\\E755\"}.el-icon-school:before{content:\"\\E756\"}.el-icon-office-building:before{content:\"\\E757\"}.el-icon-toilet-paper:before{content:\"\\E758\"}.el-icon-notebook-2:before{content:\"\\E759\"}.el-icon-notebook-1:before{content:\"\\E75A\"}.el-icon-files:before{content:\"\\E75B\"}.el-icon-collection:before{content:\"\\E75C\"}.el-icon-receiving:before{content:\"\\E75D\"}.el-icon-suitcase-1:before{content:\"\\E760\"}.el-icon-suitcase:before{content:\"\\E761\"}.el-icon-film:before{content:\"\\E763\"}.el-icon-collection-tag:before{content:\"\\E765\"}.el-icon-data-analysis:before{content:\"\\E766\"}.el-icon-pie-chart:before{content:\"\\E767\"}.el-icon-data-board:before{content:\"\\E768\"}.el-icon-data-line:before{content:\"\\E76D\"}.el-icon-reading:before{content:\"\\E769\"}.el-icon-magic-stick:before{content:\"\\E76A\"}.el-icon-coordinate:before{content:\"\\E76B\"}.el-icon-mouse:before{content:\"\\E76C\"}.el-icon-brush:before{content:\"\\E76E\"}.el-icon-headset:before{content:\"\\E76F\"}.el-icon-umbrella:before{content:\"\\E770\"}.el-icon-scissors:before{content:\"\\E771\"}.el-icon-mobile:before{content:\"\\E773\"}.el-icon-attract:before{content:\"\\E774\"}.el-icon-monitor:before{content:\"\\E775\"}.el-icon-search:before{content:\"\\E778\"}.el-icon-takeaway-box:before{content:\"\\E77A\"}.el-icon-paperclip:before{content:\"\\E77D\"}.el-icon-printer:before{content:\"\\E77E\"}.el-icon-document-add:before{content:\"\\E782\"}.el-icon-document:before{content:\"\\E785\"}.el-icon-document-checked:before{content:\"\\E786\"}.el-icon-document-copy:before{content:\"\\E787\"}.el-icon-document-delete:before{content:\"\\E788\"}.el-icon-document-remove:before{content:\"\\E789\"}.el-icon-tickets:before{content:\"\\E78B\"}.el-icon-folder-checked:before{content:\"\\E77F\"}.el-icon-folder-delete:before{content:\"\\E780\"}.el-icon-folder-remove:before{content:\"\\E781\"}.el-icon-folder-add:before{content:\"\\E783\"}.el-icon-folder-opened:before{content:\"\\E784\"}.el-icon-folder:before{content:\"\\E78A\"}.el-icon-edit-outline:before{content:\"\\E764\"}.el-icon-edit:before{content:\"\\E78C\"}.el-icon-date:before{content:\"\\E78E\"}.el-icon-c-scale-to-original:before{content:\"\\E7C6\"}.el-icon-view:before{content:\"\\E6CE\"}.el-icon-loading:before{content:\"\\E6CF\"}.el-icon-rank:before{content:\"\\E6D1\"}.el-icon-sort-down:before{content:\"\\E7C4\"}.el-icon-sort-up:before{content:\"\\E7C5\"}.el-icon-sort:before{content:\"\\E6D2\"}.el-icon-finished:before{content:\"\\E6CD\"}.el-icon-refresh-left:before{content:\"\\E6C7\"}.el-icon-refresh-right:before{content:\"\\E6C8\"}.el-icon-refresh:before{content:\"\\E6D0\"}.el-icon-video-play:before{content:\"\\E7C0\"}.el-icon-video-pause:before{content:\"\\E7C1\"}.el-icon-d-arrow-right:before{content:\"\\E6DC\"}.el-icon-d-arrow-left:before{content:\"\\E6DD\"}.el-icon-arrow-up:before{content:\"\\E6E1\"}.el-icon-arrow-down:before{content:\"\\E6DF\"}.el-icon-arrow-right:before{content:\"\\E6E0\"}.el-icon-arrow-left:before{content:\"\\E6DE\"}.el-icon-top-right:before{content:\"\\E6E7\"}.el-icon-top-left:before{content:\"\\E6E8\"}.el-icon-top:before{content:\"\\E6E6\"}.el-icon-bottom:before{content:\"\\E6EB\"}.el-icon-right:before{content:\"\\E6E9\"}.el-icon-back:before{content:\"\\E6EA\"}.el-icon-bottom-right:before{content:\"\\E6EC\"}.el-icon-bottom-left:before{content:\"\\E6ED\"}.el-icon-caret-top:before{content:\"\\E78F\"}.el-icon-caret-bottom:before{content:\"\\E790\"}.el-icon-caret-right:before{content:\"\\E791\"}.el-icon-caret-left:before{content:\"\\E792\"}.el-icon-d-caret:before{content:\"\\E79A\"}.el-icon-share:before{content:\"\\E793\"}.el-icon-menu:before{content:\"\\E798\"}.el-icon-s-grid:before{content:\"\\E7A6\"}.el-icon-s-check:before{content:\"\\E7A7\"}.el-icon-s-data:before{content:\"\\E7A8\"}.el-icon-s-opportunity:before{content:\"\\E7AA\"}.el-icon-s-custom:before{content:\"\\E7AB\"}.el-icon-s-claim:before{content:\"\\E7AD\"}.el-icon-s-finance:before{content:\"\\E7AE\"}.el-icon-s-comment:before{content:\"\\E7AF\"}.el-icon-s-flag:before{content:\"\\E7B0\"}.el-icon-s-marketing:before{content:\"\\E7B1\"}.el-icon-s-shop:before{content:\"\\E7B4\"}.el-icon-s-open:before{content:\"\\E7B5\"}.el-icon-s-management:before{content:\"\\E7B6\"}.el-icon-s-ticket:before{content:\"\\E7B7\"}.el-icon-s-release:before{content:\"\\E7B8\"}.el-icon-s-home:before{content:\"\\E7B9\"}.el-icon-s-promotion:before{content:\"\\E7BA\"}.el-icon-s-operation:before{content:\"\\E7BB\"}.el-icon-s-unfold:before{content:\"\\E7BC\"}.el-icon-s-fold:before{content:\"\\E7A9\"}.el-icon-s-platform:before{content:\"\\E7BD\"}.el-icon-s-order:before{content:\"\\E7BE\"}.el-icon-s-cooperation:before{content:\"\\E7BF\"}.el-icon-bell:before{content:\"\\E725\"}.el-icon-message-solid:before{content:\"\\E799\"}.el-icon-video-camera:before{content:\"\\E772\"}.el-icon-video-camera-solid:before{content:\"\\E796\"}.el-icon-camera:before{content:\"\\E779\"}.el-icon-camera-solid:before{content:\"\\E79B\"}.el-icon-download:before{content:\"\\E77C\"}.el-icon-upload2:before{content:\"\\E77B\"}.el-icon-upload:before{content:\"\\E7C3\"}.el-icon-picture-outline-round:before{content:\"\\E75F\"}.el-icon-picture-outline:before{content:\"\\E75E\"}.el-icon-picture:before{content:\"\\E79F\"}.el-icon-close:before{content:\"\\E6DB\"}.el-icon-check:before{content:\"\\E6DA\"}.el-icon-plus:before{content:\"\\E6D9\"}.el-icon-minus:before{content:\"\\E6D8\"}.el-icon-help:before{content:\"\\E73D\"}.el-icon-s-help:before{content:\"\\E7B3\"}.el-icon-circle-close:before{content:\"\\E78D\"}.el-icon-circle-check:before{content:\"\\E720\"}.el-icon-circle-plus-outline:before{content:\"\\E723\"}.el-icon-remove-outline:before{content:\"\\E722\"}.el-icon-zoom-out:before{content:\"\\E776\"}.el-icon-zoom-in:before{content:\"\\E777\"}.el-icon-error:before{content:\"\\E79D\"}.el-icon-success:before{content:\"\\E79C\"}.el-icon-circle-plus:before{content:\"\\E7A0\"}.el-icon-remove:before{content:\"\\E7A2\"}.el-icon-info:before{content:\"\\E7A1\"}.el-icon-question:before{content:\"\\E7A4\"}.el-icon-warning-outline:before{content:\"\\E6C9\"}.el-icon-warning:before{content:\"\\E7A3\"}.el-icon-goods:before{content:\"\\E7C2\"}.el-icon-s-goods:before{content:\"\\E7B2\"}.el-icon-star-off:before{content:\"\\E717\"}.el-icon-star-on:before{content:\"\\E797\"}.el-icon-more-outline:before{content:\"\\E6CC\"}.el-icon-more:before{content:\"\\E794\"}.el-icon-phone-outline:before{content:\"\\E6CB\"}.el-icon-phone:before{content:\"\\E795\"}.el-icon-user:before{content:\"\\E6E3\"}.el-icon-user-solid:before{content:\"\\E7A5\"}.el-icon-setting:before{content:\"\\E6CA\"}.el-icon-s-tools:before{content:\"\\E7AC\"}.el-icon-delete:before{content:\"\\E6D7\"}.el-icon-delete-solid:before{content:\"\\E7C9\"}.el-icon-eleme:before{content:\"\\E7C7\"}.el-icon-platform-eleme:before{content:\"\\E7CA\"}.el-icon-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@-webkit-keyframes rotating{0%{-webkit-transform:rotateZ(0);transform:rotateZ(0)}100%{-webkit-transform:rotateZ(360deg);transform:rotateZ(360deg)}}@keyframes rotating{0%{-webkit-transform:rotateZ(0);transform:rotateZ(0)}100%{-webkit-transform:rotateZ(360deg);transform:rotateZ(360deg)}}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{position:absolute;z-index:2000;background-color:rgba(255,255,255,.9);margin:0;top:0;right:0;bottom:0;left:0;-webkit-transition:opacity .3s;transition:opacity .3s}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:-25px}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:50px;width:50px}.el-loading-spinner{top:50%;margin-top:-21px;width:100%;text-align:center;position:absolute}.el-loading-spinner .el-loading-text{color:#409EFF;margin:3px 0;font-size:14px}.el-loading-spinner .circular{height:42px;width:42px;-webkit-animation:loading-rotate 2s linear infinite;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{-webkit-animation:loading-dash 1.5s ease-in-out infinite;animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:#409EFF;stroke-linecap:round}.el-loading-spinner i{color:#409EFF}.el-loading-fade-enter,.el-loading-fade-leave-active{opacity:0}@-webkit-keyframes loading-rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes loading-rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}100%{stroke-dasharray:90,150;stroke-dashoffset:-120px}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}100%{stroke-dasharray:90,150;stroke-dashoffset:-120px}}"]} \ No newline at end of file diff --git a/static/fonts/element-icons.535877f.woff b/static/fonts/element-icons.535877f.woff new file mode 100644 index 0000000..02b9a25 Binary files /dev/null and b/static/fonts/element-icons.535877f.woff differ diff --git a/static/fonts/element-icons.732389d.ttf b/static/fonts/element-icons.732389d.ttf new file mode 100644 index 0000000..91b74de Binary files /dev/null and b/static/fonts/element-icons.732389d.ttf differ diff --git a/static/img/1.62c3f42.png b/static/img/1.62c3f42.png new file mode 100644 index 0000000..99acd02 Binary files /dev/null and b/static/img/1.62c3f42.png differ diff --git a/static/img/1.70541d4.png b/static/img/1.70541d4.png new file mode 100644 index 0000000..1b0bfe2 Binary files /dev/null and b/static/img/1.70541d4.png differ diff --git a/static/img/1.cd75ee8.png b/static/img/1.cd75ee8.png new file mode 100644 index 0000000..56111ac Binary files /dev/null and b/static/img/1.cd75ee8.png differ diff --git a/static/img/1.e3ae5b1.png b/static/img/1.e3ae5b1.png new file mode 100644 index 0000000..3bd525e Binary files /dev/null and b/static/img/1.e3ae5b1.png differ diff --git a/static/img/1.e8855d2.png b/static/img/1.e8855d2.png new file mode 100644 index 0000000..9f0085b Binary files /dev/null and b/static/img/1.e8855d2.png differ diff --git a/static/img/1.f505345.png b/static/img/1.f505345.png new file mode 100644 index 0000000..2ce0370 Binary files /dev/null and b/static/img/1.f505345.png differ diff --git a/static/img/12.d4e268d.png b/static/img/12.d4e268d.png new file mode 100644 index 0000000..e5882fc Binary files /dev/null and b/static/img/12.d4e268d.png differ diff --git a/static/img/13.0aaa0be.png b/static/img/13.0aaa0be.png new file mode 100644 index 0000000..f82179b Binary files /dev/null and b/static/img/13.0aaa0be.png differ diff --git a/static/img/14.7141e9d.png b/static/img/14.7141e9d.png new file mode 100644 index 0000000..0719094 Binary files /dev/null and b/static/img/14.7141e9d.png differ diff --git a/static/img/15.a979ed0.png b/static/img/15.a979ed0.png new file mode 100644 index 0000000..edfefda Binary files /dev/null and b/static/img/15.a979ed0.png differ diff --git a/static/img/2.748e262.png b/static/img/2.748e262.png new file mode 100644 index 0000000..8ecb0a4 Binary files /dev/null and b/static/img/2.748e262.png differ diff --git a/static/img/2.ca31e65.png b/static/img/2.ca31e65.png new file mode 100644 index 0000000..2814c3b Binary files /dev/null and b/static/img/2.ca31e65.png differ diff --git a/static/img/2.df218e3.png b/static/img/2.df218e3.png new file mode 100644 index 0000000..70a7656 Binary files /dev/null and b/static/img/2.df218e3.png differ diff --git a/static/img/2.e7530a0.png b/static/img/2.e7530a0.png new file mode 100644 index 0000000..e72ea38 Binary files /dev/null and b/static/img/2.e7530a0.png differ diff --git a/static/img/2.fe77687.png b/static/img/2.fe77687.png new file mode 100644 index 0000000..4f4deb8 Binary files /dev/null and b/static/img/2.fe77687.png differ diff --git a/static/img/3.08240e7.png b/static/img/3.08240e7.png new file mode 100644 index 0000000..3c22700 Binary files /dev/null and b/static/img/3.08240e7.png differ diff --git a/static/img/3.2a97c0a.png b/static/img/3.2a97c0a.png new file mode 100644 index 0000000..86d5aed Binary files /dev/null and b/static/img/3.2a97c0a.png differ diff --git a/static/img/3.799a265.png b/static/img/3.799a265.png new file mode 100644 index 0000000..26dfe2b Binary files /dev/null and b/static/img/3.799a265.png differ diff --git a/static/img/3.a8b9e7d.png b/static/img/3.a8b9e7d.png new file mode 100644 index 0000000..4a87708 Binary files /dev/null and b/static/img/3.a8b9e7d.png differ diff --git a/static/img/3.f7accbc.png b/static/img/3.f7accbc.png new file mode 100644 index 0000000..050117b Binary files /dev/null and b/static/img/3.f7accbc.png differ diff --git a/static/img/4.3269955.png b/static/img/4.3269955.png new file mode 100644 index 0000000..655ba2a Binary files /dev/null and b/static/img/4.3269955.png differ diff --git a/static/img/4.9532def.png b/static/img/4.9532def.png new file mode 100644 index 0000000..cb78319 Binary files /dev/null and b/static/img/4.9532def.png differ diff --git a/static/img/4.a62261c.png b/static/img/4.a62261c.png new file mode 100644 index 0000000..0f9d080 Binary files /dev/null and b/static/img/4.a62261c.png differ diff --git a/static/img/4.ca2fbf0.png b/static/img/4.ca2fbf0.png new file mode 100644 index 0000000..be9b5b0 Binary files /dev/null and b/static/img/4.ca2fbf0.png differ diff --git a/static/img/4.d7f2b7f.png b/static/img/4.d7f2b7f.png new file mode 100644 index 0000000..0aa2265 Binary files /dev/null and b/static/img/4.d7f2b7f.png differ diff --git a/static/img/5-1-lg.f8f7816.jpg b/static/img/5-1-lg.f8f7816.jpg new file mode 100644 index 0000000..636d7c1 Binary files /dev/null and b/static/img/5-1-lg.f8f7816.jpg differ diff --git a/static/img/5-2-lg.1d67d52.jpg b/static/img/5-2-lg.1d67d52.jpg new file mode 100644 index 0000000..973fffc Binary files /dev/null and b/static/img/5-2-lg.1d67d52.jpg differ diff --git a/static/img/5-3-lg.0b647e9.jpg b/static/img/5-3-lg.0b647e9.jpg new file mode 100644 index 0000000..04079c9 Binary files /dev/null and b/static/img/5-3-lg.0b647e9.jpg differ diff --git a/static/img/5-4-lg.0ce8074.jpg b/static/img/5-4-lg.0ce8074.jpg new file mode 100644 index 0000000..a061c6a Binary files /dev/null and b/static/img/5-4-lg.0ce8074.jpg differ diff --git a/static/img/5-5-lg.c2aaf54.jpg b/static/img/5-5-lg.c2aaf54.jpg new file mode 100644 index 0000000..6b4972e Binary files /dev/null and b/static/img/5-5-lg.c2aaf54.jpg differ diff --git a/static/img/5-6-lg.09e4845.jpg b/static/img/5-6-lg.09e4845.jpg new file mode 100644 index 0000000..9f42f83 Binary files /dev/null and b/static/img/5-6-lg.09e4845.jpg differ diff --git a/static/img/5.2ef28ce.png b/static/img/5.2ef28ce.png new file mode 100644 index 0000000..e533104 Binary files /dev/null and b/static/img/5.2ef28ce.png differ diff --git a/static/img/5.3d757c4.png b/static/img/5.3d757c4.png new file mode 100644 index 0000000..dc0dc86 Binary files /dev/null and b/static/img/5.3d757c4.png differ diff --git a/static/img/5.be84e21.png b/static/img/5.be84e21.png new file mode 100644 index 0000000..e095bba Binary files /dev/null and b/static/img/5.be84e21.png differ diff --git a/static/img/5.d720990.png b/static/img/5.d720990.png new file mode 100644 index 0000000..5636799 Binary files /dev/null and b/static/img/5.d720990.png differ diff --git a/static/img/5.ec53758.png b/static/img/5.ec53758.png new file mode 100644 index 0000000..2993def Binary files /dev/null and b/static/img/5.ec53758.png differ diff --git a/static/img/6.1f41013.png b/static/img/6.1f41013.png new file mode 100644 index 0000000..f6f2daa Binary files /dev/null and b/static/img/6.1f41013.png differ diff --git a/static/img/6.2c62ab4.png b/static/img/6.2c62ab4.png new file mode 100644 index 0000000..c7bb466 Binary files /dev/null and b/static/img/6.2c62ab4.png differ diff --git a/static/img/6.30d63ca.png b/static/img/6.30d63ca.png new file mode 100644 index 0000000..d4c99aa Binary files /dev/null and b/static/img/6.30d63ca.png differ diff --git a/static/img/6.96c4d52.png b/static/img/6.96c4d52.png new file mode 100644 index 0000000..09f3b08 Binary files /dev/null and b/static/img/6.96c4d52.png differ diff --git a/static/img/7-1-lg.810db17.jpg b/static/img/7-1-lg.810db17.jpg new file mode 100644 index 0000000..c2040fa Binary files /dev/null and b/static/img/7-1-lg.810db17.jpg differ diff --git a/static/img/7-2-lg.2fb9e73.jpg b/static/img/7-2-lg.2fb9e73.jpg new file mode 100644 index 0000000..481f38a Binary files /dev/null and b/static/img/7-2-lg.2fb9e73.jpg differ diff --git a/static/img/7-3-lg.e763700.jpg b/static/img/7-3-lg.e763700.jpg new file mode 100644 index 0000000..57ebaeb Binary files /dev/null and b/static/img/7-3-lg.e763700.jpg differ diff --git a/static/img/7-4-lg.d5c55b0.jpg b/static/img/7-4-lg.d5c55b0.jpg new file mode 100644 index 0000000..605c22f Binary files /dev/null and b/static/img/7-4-lg.d5c55b0.jpg differ diff --git a/static/img/7-5-lg.eb98a05.jpg b/static/img/7-5-lg.eb98a05.jpg new file mode 100644 index 0000000..50d7ba1 Binary files /dev/null and b/static/img/7-5-lg.eb98a05.jpg differ diff --git a/static/img/7-6-lg.c036476.jpg b/static/img/7-6-lg.c036476.jpg new file mode 100644 index 0000000..a592c4e Binary files /dev/null and b/static/img/7-6-lg.c036476.jpg differ diff --git a/static/img/7.95d284d.png b/static/img/7.95d284d.png new file mode 100644 index 0000000..99015e9 Binary files /dev/null and b/static/img/7.95d284d.png differ diff --git a/static/img/7.b0fca64.png b/static/img/7.b0fca64.png new file mode 100644 index 0000000..6e560a2 Binary files /dev/null and b/static/img/7.b0fca64.png differ diff --git a/static/img/7.c506ebc.png b/static/img/7.c506ebc.png new file mode 100644 index 0000000..d5abb85 Binary files /dev/null and b/static/img/7.c506ebc.png differ diff --git a/static/img/8-1-lg.2357e00.jpg b/static/img/8-1-lg.2357e00.jpg new file mode 100644 index 0000000..bdd2a4a Binary files /dev/null and b/static/img/8-1-lg.2357e00.jpg differ diff --git a/static/img/8-2-lg.0ce48c1.jpg b/static/img/8-2-lg.0ce48c1.jpg new file mode 100644 index 0000000..f51b11c Binary files /dev/null and b/static/img/8-2-lg.0ce48c1.jpg differ diff --git a/static/img/8-3-lg.5db6941.jpg b/static/img/8-3-lg.5db6941.jpg new file mode 100644 index 0000000..ed2ca80 Binary files /dev/null and b/static/img/8-3-lg.5db6941.jpg differ diff --git a/static/img/8-4-lg.7652634.jpg b/static/img/8-4-lg.7652634.jpg new file mode 100644 index 0000000..ac925d5 Binary files /dev/null and b/static/img/8-4-lg.7652634.jpg differ diff --git a/static/img/8-5-lg.a392b49.jpg b/static/img/8-5-lg.a392b49.jpg new file mode 100644 index 0000000..edc8229 Binary files /dev/null and b/static/img/8-5-lg.a392b49.jpg differ diff --git a/static/img/8-6-lg.011938a.jpg b/static/img/8-6-lg.011938a.jpg new file mode 100644 index 0000000..15b9d53 Binary files /dev/null and b/static/img/8-6-lg.011938a.jpg differ diff --git a/static/img/8.54721eb.png b/static/img/8.54721eb.png new file mode 100644 index 0000000..34ebff0 Binary files /dev/null and b/static/img/8.54721eb.png differ diff --git a/static/img/8.d546abf.png b/static/img/8.d546abf.png new file mode 100644 index 0000000..8b3a9c6 Binary files /dev/null and b/static/img/8.d546abf.png differ diff --git a/static/img/9-1-lg.9036f02.jpg b/static/img/9-1-lg.9036f02.jpg new file mode 100644 index 0000000..2ef0762 Binary files /dev/null and b/static/img/9-1-lg.9036f02.jpg differ diff --git a/static/img/9-2-lg.2d03b49.jpg b/static/img/9-2-lg.2d03b49.jpg new file mode 100644 index 0000000..3cc68d2 Binary files /dev/null and b/static/img/9-2-lg.2d03b49.jpg differ diff --git a/static/img/9-3-lg.e7db9f0.jpg b/static/img/9-3-lg.e7db9f0.jpg new file mode 100644 index 0000000..96636e8 Binary files /dev/null and b/static/img/9-3-lg.e7db9f0.jpg differ diff --git a/static/img/9-4-lg.9b882fa.jpg b/static/img/9-4-lg.9b882fa.jpg new file mode 100644 index 0000000..d1db106 Binary files /dev/null and b/static/img/9-4-lg.9b882fa.jpg differ diff --git a/static/img/9-5-lg.fa4fee9.jpg b/static/img/9-5-lg.fa4fee9.jpg new file mode 100644 index 0000000..0be8067 Binary files /dev/null and b/static/img/9-5-lg.fa4fee9.jpg differ diff --git a/static/img/9-6-lg.9d74679.jpg b/static/img/9-6-lg.9d74679.jpg new file mode 100644 index 0000000..f2ba430 Binary files /dev/null and b/static/img/9-6-lg.9d74679.jpg differ diff --git a/static/img/9-7-lg.da0034d.jpg b/static/img/9-7-lg.da0034d.jpg new file mode 100644 index 0000000..a11eddd Binary files /dev/null and b/static/img/9-7-lg.da0034d.jpg differ diff --git a/static/img/9-8-lg.5ce458c.jpg b/static/img/9-8-lg.5ce458c.jpg new file mode 100644 index 0000000..a89ee67 Binary files /dev/null and b/static/img/9-8-lg.5ce458c.jpg differ diff --git a/static/img/9-9-lg.fd6848d.jpg b/static/img/9-9-lg.fd6848d.jpg new file mode 100644 index 0000000..3e25325 Binary files /dev/null and b/static/img/9-9-lg.fd6848d.jpg differ diff --git a/static/img/9.c3df639.png b/static/img/9.c3df639.png new file mode 100644 index 0000000..aed2b9e Binary files /dev/null and b/static/img/9.c3df639.png differ diff --git a/static/img/9.ea4e8d0.png b/static/img/9.ea4e8d0.png new file mode 100644 index 0000000..3dbf1cb Binary files /dev/null and b/static/img/9.ea4e8d0.png differ diff --git a/static/img/avatar_real.1b70c79.png b/static/img/avatar_real.1b70c79.png new file mode 100644 index 0000000..e8590fe Binary files /dev/null and b/static/img/avatar_real.1b70c79.png differ diff --git a/static/img/me.6bfb1f7.png b/static/img/me.6bfb1f7.png new file mode 100644 index 0000000..9efe47f Binary files /dev/null and b/static/img/me.6bfb1f7.png differ diff --git a/static/js/0.7f5d9f9a3af454368e7b.1724034856713.js b/static/js/0.7f5d9f9a3af454368e7b.1724034856713.js new file mode 100644 index 0000000..df747b2 --- /dev/null +++ b/static/js/0.7f5d9f9a3af454368e7b.1724034856713.js @@ -0,0 +1 @@ +webpackJsonp([0],{"+PGD":function(t,e,i){t.exports=i.p+"static/img/7-4-lg.d5c55b0.jpg"},"/B2F":function(t,e,i){t.exports=i.p+"static/img/9-6-lg.9d74679.jpg"},"/PFc":function(t,e,i){t.exports=i.p+"static/img/1.70541d4.png"},"03my":function(t,e,i){t.exports=i.p+"static/img/9-4-lg.9b882fa.jpg"},"09nQ":function(t,e,i){t.exports=i.p+"static/img/9-5-lg.fa4fee9.jpg"},"136v":function(t,e,i){t.exports=i.p+"static/img/9-3-lg.e7db9f0.jpg"},"2DRj":function(t,e,i){t.exports=i.p+"static/img/13.0aaa0be.png"},"2XGT":function(t,e,i){t.exports=i.p+"static/img/6.1f41013.png"},"2iSA":function(t,e,i){t.exports=i.p+"static/img/8-6-lg.011938a.jpg"},"2m0d":function(t,e,i){t.exports=i.p+"static/img/9.ea4e8d0.png"},"2pD0":function(t,e,i){t.exports=i.p+"static/img/7.95d284d.png"},"2uFj":function(t,e,i){"use strict";var n={name:"庾柱鹏",sex:"男",position:"高级工程师",birthday:"1992.09",university:"东莞理工学院城市学院",major:"软件工程",education:"本科",graduation:"2016年",english:"四级",social:[{id:0,name:"博客",url:"//tossers.github.io",icon:"/blog.png",text:"//tossers.github.io"},{id:1,name:"GitHub",url:"//github.com/tossers",icon:"/github.png",text:"//github.com/tossers"},{id:2,name:"知乎",url:"//www.zhihu.com/people/wo-shi-you-xiang/activities",icon:"/zhihu.png",text:"//www.zhihu.com/people/wo-shi-you-xiang/activities"},{id:3,name:"邮箱",url:"",icon:"/email.png",text:"371777394@qq.com"},{id:4,name:"电话",url:"",icon:"/phone.png",text:"13266705799"}],skillList:[".net core","Restful Api","vue","jQuery","html","SQL","javascript","css","webpack","Vuex","ES6","webpack","elementUI","echarts","Dapper"]},o=[{starttime:"2022.06",time:"20个月",title:"领益智造QMS&WMS管理系统",company:"广东领益智造股份有限公司",job:"开发工程师",duty:"系统核心功能设计,详细设计,框架的搭建和所有功能模块的设计实现,以及部署-发布-上线(devops)全流程",technology:".net core 5,vue,nginx,,PyPDF2,,docker,git,Jenkins,portal",people:"17人",Projectmessage:["1. 项目包含:票根网发票数据爬取模块,KPTG 数据自动化处理模块,简历系统自动化模块,定时任务管理模块","2. 票根网发票数据爬取模块:按月份批量抓取发票信息,批量合并发票pdf,读取发票pdf信息,合并并统计生成发票金额信息EXCEL","3. KPTG 数据自动化处理模块:采购订单自动下载,检收单自动打印整合,下载采购单数据自动发送邮件","4: 简历系统自动化模块: 问卷星招聘签名批量自动下载API,Sony相机 拍照API对接,python处理免冠照片剪辑,OCR识别身份证信息","5. 个人主要负责以上所有模块开发"],picture:[]},{starttime:"2022.06",time:"24个月",title:"领益智造WMS2.0管理系统",company:"广东领益智造股份有限公司",job:"开发工程师",duty:"项目问题调研,核心功能重构,对接集团内系统(SRM,OA,MES,QMS,ERP(SAP)),以及部署和上线",technology:".net,Quzartz,python,图像处理,爬虫,PyPDF2,Pillow,pandas,BeautifulSoup",people:"4人",Projectmessage:["1. 项目包含:物料出入库,成品出入库,位置管理,配送管理,库存盘点,容器管理","2. 票根网发票数据爬取模块:按月份批量抓取发票信息,批量合并发票pdf,读取发票pdf信息,合并并统计生成发票金额信息EXCEL","3. KPTG 数据自动化处理模块:采购订单自动下载,检收单自动打印整合,下载采购单数据自动发送邮件","4: 简历系统自动化模块: 问卷星招聘签名批量自动下载API,Sony相机 拍照API对接,python处理免冠照片剪辑","5. 个人主要负责以上所有模块开发"],picture:[]},{starttime:"2022.02",time:"4个月",title:"SKC 商务派车及费用分摊管理系统",company:"京瓷信息系统(上海)有限公司-东莞分公司",job:"开发工程师",duty:"项目组织工作,开发工作量评估、开发任务分配,框架的搭建和重要功能模块的设计实现",technology:".net core,Restful Api,EntityFrameWorkCore,SQL,Dapper,Quzartz,vue,IView,Element-UI,Vuex,axios,webpack",people:"5人",Projectmessage:["1. 项目包含:BWF数据抓取模块,用车申请单维护管理模块,短信消息管理模块,司机-车辆-部门-地点-信息管理,分摊系数生成分摊管理","2. BWF数据抓取模块:爬虫抓取BWF 用车申请的审批单数据,调用百度地图API计算路程公里数,创建用车申请单","3. 短信消息管理模块:获取用车申请单,司机和乘客信息,调用阿里云短信平台发送乘车短信","4. 个人主要负责:处理以上所有模块"],picture:[i("iM/o"),i("5TaJ"),i("WLbw"),i("6Pnu"),i("qYSn"),i("k8xh"),i("2pD0"),i("veMC"),i("2m0d")]},{starttime:"2020.12~2021.06",special:"true",time:"6个月",title:"全球数据货币交易所-数据采集",company:"个人项目",job:"个人",duty:"实现 全球大型头部数字货币交易所 数据实时采集 展示行情数据,图示化数据等",technology:"python,websckoet,c#,webAPI,redis,sqlserver,mongodb,python,VarN proxy",people:"1人",Projectmessage:["1. 对:Binance,Bitmex,OKEX,FTX,huobi,CoinBase,Bybit,deribit,等平台的全部交易对,采集,现货,合约(交割,永续), 交易数据(行情波动大时,每小时数据量可达数十亿条)","2. 对接上述平台的 公共数据 中英文 API ,采集 持仓数据,强平订单,费率,交易对,等信息","3. 数据采集模块:通过websocket 采集 各个交易所的永续,现货,期货交易对的时序数据,将数据加入到消息队列中","4. 数据清洗模块:对每一个交易信息数据进行 唯一性,完整性,一致性的处理,并对交易的价值进行计算,确认数据的完整性后移出队列","5. 数据分析以及持久化模块:对每一个交易对数据进行小时汇总,得出单位小时内所有交易所 的一个交易对(BTC)的 永续,现货,期货 的净成交汇总数据","6. 数据可视化模块:计划中..."],picture:[i("psBI"),i("7GvT"),i("tkXF"),i("gEBR"),i("4X1f"),i("4kva")]},{starttime:"2021.11",time:"6个月",title:"SKC固定资产管理系统-重构",company:"京瓷信息系统(上海)有限公司-东莞分公司",job:"开发工程师",duty:"项目组织工作,框架的搭建和重要功能模块的实现,",technology:".net core,Restful Api,EntityFrameWorkCore,SQL,Dapper,Quzartz,vue,IView,Element-UI,Vuex,axios,webpack",people:"6人",Projectmessage:["1. 项目包含:AX固定资产检收数据导入,固定资产维护,固定资产变动及处置,资产标签打印,固定资产盘点对象数据等37个页面","2. 个人主要负责:根据Winform界面 使用VUE重构 其中大部分的页面,对各个模块的代码进行封装以及维护,并且根据业务需求对代码进行更新,提高代码复用率。"],picture:[i("ykXI"),i("3+ls"),i("ceJ5"),i("fc5a"),i("ZD2O"),i("2XGT"),i("VWHU")]},{starttime:"2021.05",time:"4个月",title:"SKC数据-RPA管理系统",company:"京瓷信息系统(上海)有限公司-东莞分公司",job:"开发工程师",duty:"项目需求调研,项目的功能设计,详细设计,框架的搭建和所有功能模块的设计实现,以及部署和上线",technology:".net,Quzartz,python,图像处理,爬虫,PyPDF2,Pillow,pandas,BeautifulSoup",people:"3人",Projectmessage:["1. 项目包含:票根网发票数据爬取模块,KPTG 数据自动化处理模块,简历系统自动化模块,定时任务管理模块","2. 票根网发票数据爬取模块:按月份批量抓取发票信息,批量合并发票pdf,读取发票pdf信息,合并并统计生成发票金额信息EXCEL","3. KPTG 数据自动化处理模块:采购订单自动下载,检收单自动打印整合,下载采购单数据自动发送邮件","4: 简历系统自动化模块: 问卷星招聘签名批量自动下载API,Sony相机 拍照API对接,python处理免冠照片剪辑","5. 个人主要负责以上所有模块开发"],picture:[]},{starttime:"2021.02",time:"4个月",title:"SKC-Bus约车管理系统",company:"京瓷信息系统(上海)有限公司-东莞分公司",job:"开发工程师",duty:"项目需求调研,项目的功能设计,详细设计,框架的搭建和重要功能模块的设计实现,以及部署和上线",technology:"微信小程序,.net core,vue,Restful Api,IView,axios,webpack,SQL,Dapper,Quzartz",people:"5人",Projectmessage:["1.项目包含:微信小程序模块,后台微服务,后台数据管理模块","2.微信小程序:线路维护,预约总览,工作日历维护,预约乘车班次,消息推送&自动推送,用户信息,角色权限编辑","3.后台数据微服务:上传日历,上传用户信息,获取班次信息,获取线路信息,获取预约信息等","4.个人主要负责:后台微服务,后台数据报表管理模块,设计小程序UI界面"],picture:[i("MPSP"),i("S30D"),i("VQ0k"),i("72nL"),i("lX5B"),i("CmaT"),i("6Tp1"),i("GvOz"),i("K1vC")]},{starttime:"2020.11",time:"3个月",title:"电力可视化系统",company:"京瓷信息系统(上海)有限公司-东莞分公司",job:"开发工程师",people:"3人",duty:"根据influxdb和grafana进行框架的搭建,设计电流,电压,功率,用电情况的BI展示",technology:"influxdb,grafana,AJAX,.NET WebApi,Linux",Projectmessage:["1.智能电表数据采集模块,Grafana 图表展示模块(ABC电流,ABC电压,用电量统计,峰谷平电价的计算),短信报警模块","2.根据三相电表,ABC电流,ABC电压,功率,分别统计出13台变压器的 用电情况,根据工业用电电价阶梯表计算每天,每月用电的量,汇总得出不同年份同一天的对比图表","3.监控十三台 变压器的 电压,电流,功率 对超过设定的阈值进行短信报警提醒","4.个人主要负责:grafana图表的制作,包含influxdb sql 的编写,以及峰谷平电价的计算"],picture:[i("/PFc"),i("FoGf"),i("enh5"),i("74SL"),i("Qefh")]},{starttime:"2020.08",time:"3个月",title:"AEO体系管理系統",people:"3人",company:"京瓷信息系统(上海)有限公司-东莞分公司",job:"开发工程师",duty:"整体项目的评估、选择合适框架和组件,对卡顿的页面的和异常bug点进行重构和修改",technology:"ASP.net,ASP.net MVC,Web Api,bootstrap,JQuery,SQL",Projectmessage:["1.对现有AEO系统进行多公司模块功能修改,多公司模块化下处理多库操作的处理","2.优化 使用Bootstap table treetable优化 体系管理审核模块卡顿问题"],picture:[i("rvgy"),i("YaVv"),i("2DRj"),i("s01X"),i("aL3T")]},{starttime:"2019.12",time:"12个月",title:"数码车间-MES精益製造執行系統",company:"东莞隽思印刷有限公司",job:"高级工程师",people:"8人",duty:"项目组织工作,项目需求调研,功能设计,详细设计,框架的搭建和重要功能模块的设计实现,以及部署和上线",technology:"ASP.net MVC,Spring.net,Nhibernate,Web Api,knockout.js,echarts,Ext.js,JQuery,light.7.css,SQL",Projectmessage:["1. 系统主要功能模块:包括基础设置、訂單模塊、工作票模塊、生產訂單管理模塊、補數模塊、品質模塊、KPI模塊、MTS領料模塊、货架模块,报表模块,資源管理模塊等.","2. 包含中间件:实时显示货架模块,状态机组件,sql动态可配置报表,基于echar配置图表组件","3. 项目目标:达成工业4.0的认证配合公司在香港上市","4. 个人主要处理:基础设置,订单模块,工作票模块,MTS領料模塊,货架模块"],picture:[i("Jibj"),i("srPf"),i("136v"),i("03my"),i("09nQ"),i("/B2F"),i("MZo0"),i("HtU2"),i("Y0Dj")]},{starttime:"2018.08",title:"OEM-實時車間管理系統",time:"9个月",company:"东莞隽思印刷有限公司",job:"软件工程师",people:"6人",duty:"项目组织工作,项目需求调研,功能设计,详细设计,框架的搭建和重要功能模块的设计实现,以及部署和上线",technology:"WPF,ASP.net MVC,Spring.net,Nhibernate,Web Api,knockout.js,Ext.js,JQuery,light.7.css,SQL",Projectmessage:["1.系统主要功能模块:PMC車間管理模塊、CTP看板、纸料看板、印刷实时显示目视化看板、OEM车间效率实时达成看板、异常追踪看板、后工序水塘产能看板.","2.包含中间件:状态机组件,可配置工厂日历,基于业务的规则引擎组件","3.项目目标:管理人员通过印刷实时显示目视化看板,OEM车间效率实时达成看板,异常追踪看板等看板,监控订单的进度,根据印刷物料状态实时调控订单生产进度,并对异常订单及时跟进保证三班的生产效率","4.PMC导入MPS的計劃生產訂單到系统,系统根據業務規則(物料狀態,物料配套,当前车间产能情況)和印刷部的印刷規則來調控OEM訂單的生產順序。通过印刷实时显示目视化看板,OEM车间效率实时达成看板,异常追踪看板等看板,监控订单的生成进度.","5.个人主要负责:除了CTP看板和异常追踪看板以外的模块"],picture:[i("Njc2"),i("rVn+"),i("l8mI"),i("rkrb"),i("mabU"),i("2iSA")]},{starttime:"2017.09",time:"5个月",title:"美泰FVT项目",company:"东莞隽思印刷有限公司",job:"软件工程师",people:"4人",duty:"项目部分的需求调研,功能设计,详细设计,框架的搭建和重要功能模块的设计实现,以及部署和上线",technology:"Web Api,Nhibernate,ASP.net,JQuery,Javascript,css,sql",Projectmessage:["1. 系统主要功能模块:物流指令流出、物流指令流入、工作指令標籤上机执行、工作指令標籤工作指令下机完成、物料出庫、流程記錄查詢、物料查詢、區域設定、稿袋录入、美泰原料批次报表模块.","2. 项目目标:追溯生产订单生产过程中使用的原料批次信息,防止生產流程中出現使用錯誤的生產原料,一旦物料出现异常,可即可追溯原料批次信息.","3. 與客戶約定能夠追溯物料的批次信息,则可降低成品/半成品的测试频率,以降低测试成本.","4. 个人主要负责:除了美泰原料批次报表模块的其他模块"],picture:[i("IUQa"),i("wEEr"),i("VWWt"),i("+PGD"),i("VtRm"),i("KFjJ")]},{starttime:"2017.03",title:"PMS项目管理系统",time:"8个月",company:"东莞隽思印刷有限公司",job:"见习工程师",people:"4人",duty:"模块的实现和维护",technology:"WPF,SQL,Web Api,Nhibernate,Web Api,SSO,spring.net",Projectmessage:["1. 系统主要功能模块: 项目管理,任务管理,日历设置,项目模版管理,资源管理,用户管理,报表管理.","2. 个人主要负责:对任务流程中的-子流程与PE设计管理系统数据交互模块 进行封装以及维护,并且根据业务需求对代码库进行更新,修正的业务代码中的错误以及提高程序的性能。"],picture:[i("bT0f"),i("H5tg"),i("e2jq"),i("ov9C"),i("ovDs"),i("4CYz")]}];e.a={projectlists:o,traitList:["深入前端工程化,拥抱组件化和函数式编程,有dry编程习惯。","会总结项目开发和维护的难点痛点,思考解决方案。","认真负责,有较强的学习能力,对新事物有较强的接受能力。","有时间观念,能在规定时间内完成任务。","知乎,github重度使用者,关注前端技术的最新发展,会收听技术大牛的Live。","热爱阅读技术书籍,喜欢的书目有《深入浅出React和Redux》,《你不知道的JavaScript》。"],projectList:[{id:0,name:"银河智投",date:"2017-11",link:"http://yh178178.com",detail:"/yh",account:13266705799,password:123456,dec:"银河智投是个金属交易所网站,主要功能有交易、平仓、出入金、展示行情数据、图示化数据等。\n主要技术栈: React+Mobx+Typescript\n组件样式: antd+less。",points:["mobx状态管理库管理数据,实现多组件数据同步,实时更新。","使用typescript增加类型检查,提高开发和维护的效率。","less提取公共样式,cssModules限制组件样式作用域。","基于react-helmet实现黑白主题。","基于react-stockchart定制了股票图表。","实现路由按需加载。"]},{id:1,name:"基于vue后台管理模版",date:"2017-10",link:"https://github.com/tossers/vue-template-backstage",detail:"/yh",account:"",password:"",dec:"基于Vue+Mockjs+ElementUI+echarts后台管理模板.",points:["基于vue,vuex,Mock后台管理模版实践。","基于elementUI,echart,提供后台管理常见使用场景。","使用vuex管理状态,vue-router实现路由按需加载。","使用mock实现脱离后端开发。","使用rem单位实现浅度自适应。"]},{id:2,name:"摩尔交易所",date:"2017-8",link:"https://trade.moer.pro",detail:"/yh",account:13266705799,password:123456,dec:"摩尔交易所是个交易所网站,主要功能有交易,平仓,出入金,展示行情数据,图示化数据等。\n主要技术栈: React+Mobx\n组件样式: antd+less。",points:["mobx状态管理库管理数据,实现多组件数据同步,实时更新。","基于Echarts定制股票图表。","使用react-intl实现多语言功能。","less提取公共样式,cssModules限制组件样式作用域。","根据路由按需加载。","数据节流,优化websocket实时推送带来的频繁渲染。"]},{id:3,name:"交易所后台展板",date:"2017-6",link:"http://dashboard.quant.tuling.me",detail:"/yh",account:"cds",password:123456,dec:"这是监控数据的内部网站,主要功能是后台数据展示,图示化数据,对数据进行增删改查操作等。\n主要技术栈: React+dva,\n组件样式: antd+highchart+css。",points:["使用阿里开源项目dva手脚架","使用highcharts图示化数据。"]}],personalInfo:n,lastUpdate:"2018-02-10"}},"3+ls":function(t,e,i){t.exports=i.p+"static/img/2.ca31e65.png"},"4CYz":function(t,e,i){t.exports=i.p+"static/img/5-6-lg.09e4845.jpg"},"4X1f":function(t,e,i){t.exports=i.p+"static/img/5.ec53758.png"},"4kva":function(t,e,i){t.exports=i.p+"static/img/6.96c4d52.png"},"5TaJ":function(t,e,i){t.exports=i.p+"static/img/2.748e262.png"},"6Pnu":function(t,e,i){t.exports=i.p+"static/img/4.3269955.png"},"6Tp1":function(t,e,i){t.exports=i.p+"static/img/7.b0fca64.png"},"72nL":function(t,e,i){t.exports=i.p+"static/img/4.ca2fbf0.png"},"74SL":function(t,e,i){t.exports=i.p+"static/img/4.9532def.png"},"7GvT":function(t,e,i){t.exports=i.p+"static/img/2.e7530a0.png"},CmaT:function(t,e,i){t.exports=i.p+"static/img/6.2c62ab4.png"},FoGf:function(t,e,i){t.exports=i.p+"static/img/2.fe77687.png"},GvOz:function(t,e,i){t.exports=i.p+"static/img/8.54721eb.png"},H5tg:function(t,e,i){t.exports=i.p+"static/img/5-2-lg.1d67d52.jpg"},HtU2:function(t,e,i){t.exports=i.p+"static/img/9-8-lg.5ce458c.jpg"},ICCY:function(t,e){t.exports="data:image/png;base64,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"},IUQa:function(t,e,i){t.exports=i.p+"static/img/7-1-lg.810db17.jpg"},Jibj:function(t,e,i){t.exports=i.p+"static/img/9-1-lg.9036f02.jpg"},K1vC:function(t,e,i){t.exports=i.p+"static/img/9.c3df639.png"},KFjJ:function(t,e,i){t.exports=i.p+"static/img/7-6-lg.c036476.jpg"},MPSP:function(t,e,i){t.exports=i.p+"static/img/1.cd75ee8.png"},MZo0:function(t,e,i){t.exports=i.p+"static/img/9-7-lg.da0034d.jpg"},Njc2:function(t,e,i){t.exports=i.p+"static/img/8-1-lg.2357e00.jpg"},OUQM:function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC0AAAAtCAYAAAA6GuKaAAAE8UlEQVRoQ+3ZW2gcVRgH8P93trEUo2R3U9RiRchMquANHxSv6IMvFSsK3d3Q2tpQaDKbhIC0VBGMCoIiFNrsbL1AKxYTKxYbLLbWWi9VKwoV44VkJqn0oZKanW0LEUo388kkmc1Jejabzc4meXAgEGZmZ37z7f+cOecsYRFtEXNgE+BuB+EQCO86TfofKh4tFnMk1dcBEi9Jnt8hEFPBFwVaAufAaADc2yYeQAlfcLQPZuCSACUyhvaJV23pQa6ALyg6D2MeYRFKZJvrPpXjWgi+YGgJdAGCEk6TdljVvlTwBUFLkAxcbnBa6o/O1CFMh887WgKcE0yJ4aR2XFlh01rrGPpH/rH85whH5xUtgc8y3ETWWPWtClyzy3pEhHCcGclsUjfzcNP+BuCHxtDhtLWOGE+CcR8IN5bddxPtdZq1TQUa1RkIJJwm/YeZwN4xJvGE3zgjprUfwFp4lY6m7BYm3lU2VL7ANLRU4UFikcgk634qBgYQ8+ORBwNj3R9FTOsMgJXySUE+gAS2XEL8fLN+qhyw94b00OxdxDH0wPMtgf/kkIhnt9T1lgv2Pl8xtNTae3EZCadNPfipTdmPusRfTjxMwUjIY5CKoH0wAafIzSWGW27tV3Zruwcfgzv6eSngilR68tWMn0eJ4xeM+kEVONzZt5qEOFQqOHC0lOGTExn2GvkVW61prXGBg3MBB4qeBNMJMZqLD7feclYFjqYGnmZyP54rODB0PsOEr5aA4kPN2jllhlN9cZDoLgccCFoaXh7LLV0Wu7h5paPMcMpaR4R95YLLRksZPoJrEXPW6xeVkTDtjQzeGwS4LLSU4UNVIyPxoa13jigjYfZtBsQ7QYHnjJamSD3ZHGJo0y8pI2H2NxEoHSR4TujJCvMBp/aXGGKxUWUk0nYLc34gVvRNF0nbe8D4xzG0barryftKeiMuT9naKOFXgJeBKeEktQ/VkRhoB9wdpVS4lDFQSeio2f8ig16dhHKjY9TvkeFhs38rgd4oBeydWxk0M0XStjdKGyLgCwZeG8sXU2smqXV6/0dN63l//0zjYdUCTEXQ4d0DDeS6HxDwTMbQ98mTBwJeYKIlYH6l1Ar731JF0FHT6mHgLsfQb/JvFDWt9Qy8Py3XRRuduh3Mflw/q0xHO/vvZUEnGdieNfTXp2X4cQL5iyxzAlck0xHT8nqC9iqi61TjimjafoqZD/jRGJuAjv8VXEScXu1A41G901p+VQi9IDrsGNqzhfrQSNp+DsxvSsdnDQ680lHTbmXwTmJxT6FZdCRtNQLYCMbDE+iSwIGjI6b9HcD3g92XneSqDr+StW/9dQPnLrcxYQOAFWP7mX8E0FUlRFeh4WnBb6qECfaMDTFiWl4uvUWS8Y3QAcYRgNoBjk/upy6Xufu8ofcUQhXbH1im/UUSJrqdmKdO/5lPM1EXiLqyzdpvxVDFjgeGDqftbcQ8pYsD0TEwd1dVX9M1tOF65XC0GLDi/bQ3lgBoNbH7NTF9lmmp93Ib+BZYpQOXzXDB/9HzVe1SK50FUCNCVSuGt9z893wh5fvU7DhdI5bmsgD96xja1cUMFDatgwSs8V4eCIn9hX4lLXahco77K//e2l/G0O8udi0Kp+0HiPlEsRPn57hodIy6KTMh1X3Hf75IDTxI5Hr98R0AqucHOOUu3wP0nmNob8/m3v8BYT5lt+mtuUAAAAAASUVORK5CYII="},Qefh:function(t,e,i){t.exports=i.p+"static/img/5.2ef28ce.png"},S30D:function(t,e,i){t.exports=i.p+"static/img/2.df218e3.png"},SzkV:function(t,e){},TJ95:function(t,e){},UqHI:function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAC5klEQVRYR8WXQVLbQBBF3xibbbhBzAniG2AvU0EETgCcALGIVVmFrFIoC8gJMCewCyeVJeYEwAlibgBbsN2pmZGsGVvGSUoKXtkjS/27+/f/LcULf9QLx6c8AD/iBmPpolQduAF1SPBhMJtwOQBMcC5RrHkBhX222h33rHgA3ZM1Vh6vbebyAOwhKkSxgXDPCi3etW9SEMUDuIh7KN6b4BXVNME0qOrjANQbYEDQbpUDoP+1CXJpHj5bbvcaqpXyodgKpNkLV2y1m3MTdhEPTCuQc4JoT18vGoANkEM2A+Yi3kNxhsiQrWi9eAD94w6o3TyyGQBuG4K2Sb7YCliyDUG9ygVROgCdktaAiWjGWxDj2jo7h/f/pwIp61wQyGeC6MgCON4G1TUjGkRGpIptgUv7lA8O4+nHp8ABzpSUA8Co4dMvI8VKDtmMdGDox0PgtXtWDgBXDUerdcMBl4DV8TpvP2owJbTg+3GIqBPbDdkhiHqJBqQa4YlUsRVIhcZG/0bQDufY78hwsRUwzOc6yfyWIGqY76475kj04grYnn1CaKAYUmHftVFP573M5ZbRajOb/UQd9ehVJ4209+n98wCMmj11Ad9McrzcPMTvuR/cBbbAH3wA/hqlSXQOlQ5MThMvz2zWyu4ZqG3LN64Y17anmftVmbqfVzlvCrw1KtlkUgb7C4V+xiBpTbJyZfaaMN66Xgosz5oTJFkFMq/ONhkX7jwIffUOJJyO2rKWzKbvVaAfS4J4bnGcJ5zUETX0FkyrficozKJh2jdaDactyQnuj+FUvbihOt6ZZeuC++2xnhiZnCUruD7JNODZG10lnLXRioRsRufPBzbudpBNzAx3lgT3K6B/eTaqqyhDVKWD6BcLsZ5ekToTpTWi6WRssx7VjpaVfPEUpFcs2fTY7S5PwGTcM6Oa89az/P7nzOjnlzqjlTAZt42EWA+I0i8Vuho9xrXe32a8vAJ/ArvA/xTrhv8A7Df7Z3MwSvRCgQAAAABJRU5ErkJggg=="},VQ0k:function(t,e,i){t.exports=i.p+"static/img/3.a8b9e7d.png"},VWHU:function(t,e,i){t.exports=i.p+"static/img/7.c506ebc.png"},VWWt:function(t,e,i){t.exports=i.p+"static/img/7-3-lg.e763700.jpg"},VtRm:function(t,e,i){t.exports=i.p+"static/img/7-5-lg.eb98a05.jpg"},WLbw:function(t,e,i){t.exports=i.p+"static/img/3.2a97c0a.png"},Y0Dj:function(t,e,i){t.exports=i.p+"static/img/9-9-lg.fd6848d.jpg"},YaVv:function(t,e,i){t.exports=i.p+"static/img/12.d4e268d.png"},ZD2O:function(t,e,i){t.exports=i.p+"static/img/5.d720990.png"},aL3T:function(t,e,i){t.exports=i.p+"static/img/15.a979ed0.png"},bT0f:function(t,e,i){t.exports=i.p+"static/img/5-1-lg.f8f7816.jpg"},c4Q0:function(t,e,i){"use strict";var n=i("2uFj"),o=i("UqHI"),s=i("wF+D"),a=i("gkEB"),c=i("ICCY"),p=i("OUQM"),r=n.a.personalInfo,g={components:{personalInfo:r},data:function(){return{logo1:c,logo2:p,personalInfo:r,phone:o,email:s,avatarreal:a,phones:i("wti+")}},computed:{},watch:{},methods:{},created:function(){},mounted:function(){},beforeCreate:function(){},beforeMount:function(){},beforeUpdate:function(){},updated:function(){},beforeDestroy:function(){},destroyed:function(){},activated:function(){}},l={render:function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("div",{staticClass:"right"},[i("div",{staticClass:"right-top"},[i("img",{staticClass:"right-top__avatar",attrs:{src:t.avatarreal}}),t._v(" "),i("h1",[t._v(t._s(t.personalInfo.name))]),t._v(" "),i("h3",[t._v(t._s(t.personalInfo.position))])]),t._v(" "),t._m(0),t._v(" "),i("div",{staticClass:"right-info"},[i("p",[t._v(t._s(t.personalInfo.sex)+" / "+t._s(t.personalInfo.birthday)+" / 32岁")]),t._v(" "),i("p",[t._v(t._s(t.personalInfo.university)+" / "+t._s(t.personalInfo.major))]),t._v(" "),i("p",[t._v(t._s(t.personalInfo.education)+" / "+t._s(t.personalInfo.graduation)+"毕业")]),t._v(" "),i("p",[t._v("工作年限 / 8年")])]),t._v(" "),t._m(1),t._v(" "),i("div",{staticClass:"right-skill"},[i("p",[t._v(" "),i("img",{attrs:{src:t.logo2}}),i("strong",[t._v("技术栈")])]),t._v(" "),i("p",[t._v("1、.C#/.NET、.NET Core、.NET MVC、Web API、RESTful API")]),t._v(" "),i("p",[t._v("2、前端:js、jQuery、Vue.js、Vuex、IView、Element-UI、Bootstrap")]),t._v(" "),i("p",[t._v("3、数据库:SQLServer、MySQL、Redis、MongoDB ")]),t._v(" "),i("p",[t._v("4、ORM:Nhibernate、Dapper、Entity Framework、FreeSql、SqlSugar")]),t._v(" "),i("p",[t._v("5、架构:领域驱动设计 DDD、")]),t._v(" "),i("p",[t._v("6、环境:Windows、Linux、IIS、Nginx")]),t._v(" "),i("p",[t._v("7、其他:微信小程序 Python:爬虫、办公自动化处理、图像处理")]),t._v(" "),i("p",[t._v("8、工具:.Vscode、VS Studio、git、Svn、npm、yarn、Webpack、Docker、")])]),t._v(" "),i("div",{staticClass:"right-skills"},[i("p",[t._v(" "),i("img",{attrs:{src:t.logo1}}),i("strong",[t._v("个人资料:")])]),t._v(" "),t._m(2)])])},staticRenderFns:[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"right-link"},[e("img",{attrs:{align:"",src:"https://img.shields.io/badge/%20fishyue-blog-yellow"}}),this._v(" "),e("p",[e("i",{staticClass:"el-icon-message",staticStyle:{color:"#2894FF","font-size":"25.5px"}}),this._v(" 364466548@qq.com")]),this._v(" "),e("p",[e("i",{staticClass:"el-icon-phone-outline",staticStyle:{color:"#2894FF","font-size":"25.5px"}}),this._v(" 13794928207")])])},function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("div",{staticStyle:{"margin-bottom":"40px"}},[i("strong",[t._v("工作经历")]),t._v(" "),i("div",{staticStyle:{padding:"8px"}},[i("div",[i("span",{staticStyle:{color:"gray"}},[t._v("2015.07 - 2015.11")]),t._v(" "),i("p",{staticStyle:{"margin-left":"16px"}},[t._v("东莞申翔网络公司-实习")])]),t._v(" "),i("div",[i("span",{staticStyle:{color:"gray"}},[t._v("2016.03 - 2020.01")]),t._v(" "),i("p",{staticStyle:{"margin-left":"16px"}},[t._v("东莞隽思印刷有限公司")])]),t._v(" "),i("div",[i("span",{staticStyle:{color:"gray"}},[t._v("2020.05 - 2022-03")]),t._v(" "),i("p",{staticStyle:{"margin-left":"16px"}},[t._v("京瓷信息系统(上海)有限公司")])]),t._v(" "),i("div",[i("span",{staticStyle:{color:"gray"}},[t._v("2022.03 - 至今")]),t._v(" "),i("p",{staticStyle:{"margin-left":"16px"}},[t._v("广东领益智造股份有限公司")])])])])},function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("div",{staticStyle:{padding:"8px"}},[i("div",[i("b",{staticStyle:{color:"black"}},[t._v(" VUE&.NET CORE 6 前后端分离框架")]),t._v(" "),i("p",[i("a",{attrs:{href:"http://www.yuzhupengs.com/",target:"_blank"}},[t._v("http://www.yuzhupengs.com/")])])]),t._v(" "),i("div",[i("b",{staticStyle:{color:"black"}},[t._v(" githup-#需FQ:")]),t._v(" "),i("p",[i("a",{attrs:{href:"https://github.com/yuzhupeng",target:"_blank"}},[t._v("https://github.com/yuzhupeng")])])]),t._v(" "),i("div",[i("b",{staticStyle:{color:"black"}},[t._v(" .NET Core高质量资源-#需FQ:")]),t._v(" "),i("p",[i("a",{attrs:{href:"https://yuzhupeng.github.io/DotNetGuide/",target:"_blank"}},[t._v("https://yuzhupeng.github.io/DotNetGuide/")])])]),t._v(" "),i("div",[i("b",{staticStyle:{color:"black"}},[t._v(" JavaScript 资源大全中文版-#需FQ:")]),t._v(" "),i("p",[i("a",{attrs:{href:"https://yuzhupeng.github.io/awesome-python-cn/",target:"_blank"}},[t._v("https://yuzhupeng.github.io/awesome-python-cn/")])])]),t._v(" "),i("div",[i("b",{staticStyle:{color:"black"}},[t._v("深入理解Vue.js实战-#需FQ:")]),t._v(" "),i("p",[i("a",{attrs:{href:"https://yuzhupeng.github.io/vue-ebook/vue-ebook/0.html",target:"_blank"}},[t._v("https://yuzhupeng.github.io/vue-ebook/vue-ebook/0.html")])])]),t._v(" "),i("div",[i("b",{staticStyle:{color:"black"}},[t._v(" Linux命令大全搜索工具-#需FQ:")]),t._v(" "),i("p",[i("a",{attrs:{href:"https://yuzhupeng.github.io/linux-command/",target:"_blank"}},[t._v("https://yuzhupeng.github.io/linux-command/")])])]),t._v(" "),i("div",[i("b",{staticStyle:{color:"black"}},[t._v(" Python 中文算法教程-#需FQ:")]),t._v(" "),i("p",[i("a",{attrs:{href:"https://yuzhupeng.github.io/python_data_structures_and_algorithms/",target:"_blank"}},[t._v("https://yuzhupeng.github.io/python_data_structures_and_algorithms/")])])]),t._v(" "),i("div",[i("b",{staticStyle:{color:"black"}},[t._v(" Python资源库大全-#需FQ:")]),t._v(" "),i("p",[i("a",{attrs:{href:"https://yuzhupeng.github.io/awesome-python-cn/",target:"_blank"}},[t._v("https://yuzhupeng.github.io/awesome-python-cn/")])])])])}]};var u=i("VU/8")(g,l,!1,function(t){i("SzkV")},"data-v-2b8fc8bc",null);e.a=u.exports},ceJ5:function(t,e,i){t.exports=i.p+"static/img/3.08240e7.png"},e2jq:function(t,e,i){t.exports=i.p+"static/img/5-3-lg.0b647e9.jpg"},enh5:function(t,e,i){t.exports=i.p+"static/img/3.f7accbc.png"},fc5a:function(t,e,i){t.exports=i.p+"static/img/4.a62261c.png"},gEBR:function(t,e,i){t.exports=i.p+"static/img/4.d7f2b7f.png"},gkEB:function(t,e,i){t.exports=i.p+"static/img/me.6bfb1f7.png"},"iM/o":function(t,e,i){t.exports=i.p+"static/img/1.62c3f42.png"},k8xh:function(t,e,i){t.exports=i.p+"static/img/6.30d63ca.png"},l8mI:function(t,e,i){t.exports=i.p+"static/img/8-3-lg.5db6941.jpg"},lX5B:function(t,e,i){t.exports=i.p+"static/img/5.3d757c4.png"},lvQq:function(t,e,i){"use strict";var n=i("2uFj").a.projectlists,o={components:{projectlists:n},data:function(){return{projectlists:n,addressa:[{starttime:"2017.03",time:"14个月",title:"数码车间-MES製造執行系統",company:"",job:"",duty:"",technology:"1",Projectmessage:"2",p:[{sss:i("wti+")},{sss:i("wti+")}]},{starttime:"2017.03",title:"quanzhisq111",away:"1",address:"2",p:[{sss:"https://yuzhupeng.github.io/fishyue_files/9-8-lg.jpg"},{sss:"https://yuzhupeng.github.io/fishyue_files/9-8-lg.jpg"},{sss:"https://yuzhupeng.github.io/fishyue_files/9-8-lg.jpg"},{sss:"https://yuzhupeng.github.io/fishyue_files/9-8-lg.jpg"},{sss:"https://yuzhupeng.github.io/fishyue_files/9-8-lg.jpg"},{sss:"https://yuzhupeng.github.io/fishyue_files/9-8-lg.jpg"}],a:"22"}],value11:[0,65],marks:{33:"了解",66:"熟悉",100:"精通"}}},computed:{},watch:{},methods:{viewImg:function(t){window.open(t)}},created:function(){},mounted:function(){},beforeCreate:function(){},beforeMount:function(){},beforeUpdate:function(){},updated:function(){},beforeDestroy:function(){},destroyed:function(){},activated:function(){}},s={render:function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("div",t._l(t.projectlists,function(e,n){return i("Timeline-item",{key:n},[i("div",[i("span",{staticClass:"bg-light-blue"},[t._v(t._s(e.starttime))])]),t._v(" "),i("Card",{staticStyle:{width:"100%"}},[i("p",{staticClass:"titles",attrs:{slot:"title"},slot:"title"},[i("Icon",{attrs:{type:"ios-film-outline"}}),t._v("\n "+t._s(e.title)+"\n ")],1),t._v(" "),i("a",{attrs:{slot:"extra",href:"#"},slot:"extra"},[i("Icon",{attrs:{type:"ios-bookmarks-outline"}}),t._v("\n 持续时间:"+t._s(e.time)+"\n ")],1),t._v(" "),i("p",[t._v("所在公司:"+t._s(e.company))]),t._v(" "),i("p",[t._v("项目职务:"+t._s(e.job))]),t._v(" "),i("p",[t._v("项目职责:"+t._s(e.duty))]),t._v(" "),i("p",[t._v("项目技术:"+t._s(e.technology))])]),t._v(" "),i("BR"),t._v(" "),i("Card",{staticStyle:{width:"100%"}},[i("p",{attrs:{slot:"title"},slot:"title"},[i("Icon",{attrs:{type:"ios-film-outline"}}),t._v("\n 项目描述:\n\n ")],1),t._v(" "),i("a",{attrs:{slot:"extra",href:"#"},slot:"extra"},[i("Icon",{attrs:{type:"ios-bookmarks-outline"}}),t._v("\n 规模:"+t._s(e.people)+"\n ")],1),t._v(" "),t._l(e.Projectmessage,function(e,n){return i("div",{key:n},[t._v("\n     \n "),i("span",{staticClass:"left__personal-point"}),t._v(t._s(e)+"\n ")])})],2),t._v(" "),i("BR"),t._v(" "),i("Card",{staticStyle:{width:"100%"}},[i("p",{attrs:{slot:"title"},slot:"title"},[i("Icon",{attrs:{type:"ios-film-outline"}}),t._v("\n 效果预览:\n ")],1),t._v(" "),i("div",[i("el-row",{attrs:{gutter:20}},t._l(e.picture,function(e,n){return i("el-col",{key:n,staticClass:"text item",staticStyle:{width:"33.33333333%",display:"inline",padding:"20px"},attrs:{span:6}},[i("img",{staticStyle:{cursor:"pointer",height:"100px"},attrs:{src:e},on:{click:function(i){t.viewImg(e)}}})])}),1)],1)])],1)}),1)},staticRenderFns:[]};var a=i("VU/8")(o,s,!1,function(t){i("yYMs")},null,null);e.a=a.exports},mabU:function(t,e,i){t.exports=i.p+"static/img/8-5-lg.a392b49.jpg"},nUj5:function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i("c4Q0"),o=i("lvQq"),s={components:{mainleft:n.a,mainright:o.a},data:function(){return{iftop:!1}},computed:{},watch:{},methods:{handleScroll:function(){var t=window.pageYOffset>400;this.iftop=t},backTop:function(){window.scrollTo({top:0,behavior:"smooth"})}},created:function(){},mounted:function(){window.addEventListener("scroll",this.handleScroll)},beforeCreate:function(){},beforeMount:function(){},beforeUpdate:function(){},updated:function(){},beforeDestroy:function(){},destroyed:function(){window.removeEventListener("scroll",this.handleScroll)},activated:function(){}},a={render:function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"rm-main"},[e("div",{staticClass:"rm-main-left"},[e("mainleft")],1),this._v(" "),e("div",{staticClass:"rm-main-right"},[e("mainright")],1),this._v(" "),e("div",{directives:[{name:"show",rawName:"v-show",value:this.iftop,expression:"iftop"}],staticClass:"totop flexCenter",on:{click:this.backTop}},[e("i",{staticClass:"el-icon-caret-top",staticStyle:{color:"#CC1720"}})])])},staticRenderFns:[]};var c=i("VU/8")(s,a,!1,function(t){i("TJ95")},"data-v-2273e12f",null);e.default=c.exports},ov9C:function(t,e,i){t.exports=i.p+"static/img/5-4-lg.0ce8074.jpg"},ovDs:function(t,e,i){t.exports=i.p+"static/img/5-5-lg.c2aaf54.jpg"},psBI:function(t,e,i){t.exports=i.p+"static/img/1.e8855d2.png"},qYSn:function(t,e,i){t.exports=i.p+"static/img/5.be84e21.png"},"rVn+":function(t,e,i){t.exports=i.p+"static/img/8-2-lg.0ce48c1.jpg"},rkrb:function(t,e,i){t.exports=i.p+"static/img/8-4-lg.7652634.jpg"},rvgy:function(t,e,i){t.exports=i.p+"static/img/1.e3ae5b1.png"},s01X:function(t,e,i){t.exports=i.p+"static/img/14.7141e9d.png"},srPf:function(t,e,i){t.exports=i.p+"static/img/9-2-lg.2d03b49.jpg"},tkXF:function(t,e,i){t.exports=i.p+"static/img/3.799a265.png"},veMC:function(t,e,i){t.exports=i.p+"static/img/8.d546abf.png"},wEEr:function(t,e,i){t.exports=i.p+"static/img/7-2-lg.2fb9e73.jpg"},"wF+D":function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABqElEQVRYR+2XTW6CQBSAv0HtGm9QT1COYNcNht5Ab6CLwra7Rjb1BnqDGk3TZekJqifoEXRd0WlGRcC/oGDsAnYkzPu+vDfvzSC48iOuzCcX2M3A26tOYXZ3kdLMS2MeW9No7FBAgYu/XRDWReBBUEmPmt0IXkOBYbuHFDrzUn3bMjOhj5db/MIPpr3hRgRcSXFeWcJ8zcB0+pmBVaBlhmefwBeIPkgL027GBZTZ0lIbIUWTmt3LRGIDl2NMp87A7SPkCNN53hVQxHfXYCG9TCS24Sr+sD0FzcJ88vYLZCWxD74UcCWI++MCaSUOwU8SOFfiGPxkgVMlQrjAv6nubenEJYi2QJKNmQR+VgYCkYFbR9BF0thp0aTwVAJq8SGJgeshpH4w7dFsnlWCaIBAYt1KqDEORiJ46gzEyiE7gBqvlcTwzASCcoB18gGWugRpD4hc4P9mwC+VL3YbCvbNamBNWLPC41gNEuQ3NaeVdo8dXT90OyCrmI6hvgsFVvc1D5gAsZtrhkI6UEbD4sEexQU29zbfgEU1Q2gklObhF0fRMud/RnkG/gD6eT8wV9a0AwAAAABJRU5ErkJggg=="},"wti+":function(t,e,i){t.exports=i.p+"static/img/avatar_real.1b70c79.png"},yYMs:function(t,e){},ykXI:function(t,e,i){t.exports=i.p+"static/img/1.f505345.png"}}); \ No newline at end of file diff --git a/static/js/1.650c699123abbd20d329.1724034856713.js b/static/js/1.650c699123abbd20d329.1724034856713.js new file mode 100644 index 0000000..8d5651d --- /dev/null +++ b/static/js/1.650c699123abbd20d329.1724034856713.js @@ -0,0 +1 @@ +webpackJsonp([1],{"+PGD":function(t,e,i){t.exports=i.p+"static/img/7-4-lg.d5c55b0.jpg"},"/B2F":function(t,e,i){t.exports=i.p+"static/img/9-6-lg.9d74679.jpg"},"/PFc":function(t,e,i){t.exports=i.p+"static/img/1.70541d4.png"},"03my":function(t,e,i){t.exports=i.p+"static/img/9-4-lg.9b882fa.jpg"},"09nQ":function(t,e,i){t.exports=i.p+"static/img/9-5-lg.fa4fee9.jpg"},"136v":function(t,e,i){t.exports=i.p+"static/img/9-3-lg.e7db9f0.jpg"},"2DRj":function(t,e,i){t.exports=i.p+"static/img/13.0aaa0be.png"},"2XGT":function(t,e,i){t.exports=i.p+"static/img/6.1f41013.png"},"2iSA":function(t,e,i){t.exports=i.p+"static/img/8-6-lg.011938a.jpg"},"2m0d":function(t,e,i){t.exports=i.p+"static/img/9.ea4e8d0.png"},"2pD0":function(t,e,i){t.exports=i.p+"static/img/7.95d284d.png"},"2uFj":function(t,e,i){"use strict";var n={name:"庾柱鹏",sex:"男",position:"高级工程师",birthday:"1992.09",university:"东莞理工学院城市学院",major:"软件工程",education:"本科",graduation:"2016年",english:"四级",social:[{id:0,name:"博客",url:"//tossers.github.io",icon:"/blog.png",text:"//tossers.github.io"},{id:1,name:"GitHub",url:"//github.com/tossers",icon:"/github.png",text:"//github.com/tossers"},{id:2,name:"知乎",url:"//www.zhihu.com/people/wo-shi-you-xiang/activities",icon:"/zhihu.png",text:"//www.zhihu.com/people/wo-shi-you-xiang/activities"},{id:3,name:"邮箱",url:"",icon:"/email.png",text:"371777394@qq.com"},{id:4,name:"电话",url:"",icon:"/phone.png",text:"13266705799"}],skillList:[".net core","Restful Api","vue","jQuery","html","SQL","javascript","css","webpack","Vuex","ES6","webpack","elementUI","echarts","Dapper"]},o=[{starttime:"2022.06",time:"20个月",title:"领益智造QMS&WMS管理系统",company:"广东领益智造股份有限公司",job:"开发工程师",duty:"系统核心功能设计,详细设计,框架的搭建和所有功能模块的设计实现,以及部署-发布-上线(devops)全流程",technology:".net core 5,vue,nginx,,PyPDF2,,docker,git,Jenkins,portal",people:"17人",Projectmessage:["1. 项目包含:票根网发票数据爬取模块,KPTG 数据自动化处理模块,简历系统自动化模块,定时任务管理模块","2. 票根网发票数据爬取模块:按月份批量抓取发票信息,批量合并发票pdf,读取发票pdf信息,合并并统计生成发票金额信息EXCEL","3. KPTG 数据自动化处理模块:采购订单自动下载,检收单自动打印整合,下载采购单数据自动发送邮件","4: 简历系统自动化模块: 问卷星招聘签名批量自动下载API,Sony相机 拍照API对接,python处理免冠照片剪辑,OCR识别身份证信息","5. 个人主要负责以上所有模块开发"],picture:[]},{starttime:"2022.06",time:"24个月",title:"领益智造WMS2.0管理系统",company:"广东领益智造股份有限公司",job:"开发工程师",duty:"项目问题调研,核心功能重构,对接集团内系统(SRM,OA,MES,QMS,ERP(SAP)),以及部署和上线",technology:".net,Quzartz,python,图像处理,爬虫,PyPDF2,Pillow,pandas,BeautifulSoup",people:"4人",Projectmessage:["1. 项目包含:物料出入库,成品出入库,位置管理,配送管理,库存盘点,容器管理","2. 票根网发票数据爬取模块:按月份批量抓取发票信息,批量合并发票pdf,读取发票pdf信息,合并并统计生成发票金额信息EXCEL","3. KPTG 数据自动化处理模块:采购订单自动下载,检收单自动打印整合,下载采购单数据自动发送邮件","4: 简历系统自动化模块: 问卷星招聘签名批量自动下载API,Sony相机 拍照API对接,python处理免冠照片剪辑","5. 个人主要负责以上所有模块开发"],picture:[]},{starttime:"2022.02",time:"4个月",title:"SKC 商务派车及费用分摊管理系统",company:"京瓷信息系统(上海)有限公司-东莞分公司",job:"开发工程师",duty:"项目组织工作,开发工作量评估、开发任务分配,框架的搭建和重要功能模块的设计实现",technology:".net core,Restful Api,EntityFrameWorkCore,SQL,Dapper,Quzartz,vue,IView,Element-UI,Vuex,axios,webpack",people:"5人",Projectmessage:["1. 项目包含:BWF数据抓取模块,用车申请单维护管理模块,短信消息管理模块,司机-车辆-部门-地点-信息管理,分摊系数生成分摊管理","2. BWF数据抓取模块:爬虫抓取BWF 用车申请的审批单数据,调用百度地图API计算路程公里数,创建用车申请单","3. 短信消息管理模块:获取用车申请单,司机和乘客信息,调用阿里云短信平台发送乘车短信","4. 个人主要负责:处理以上所有模块"],picture:[i("iM/o"),i("5TaJ"),i("WLbw"),i("6Pnu"),i("qYSn"),i("k8xh"),i("2pD0"),i("veMC"),i("2m0d")]},{starttime:"2020.12~2021.06",special:"true",time:"6个月",title:"全球数据货币交易所-数据采集",company:"个人项目",job:"个人",duty:"实现 全球大型头部数字货币交易所 数据实时采集 展示行情数据,图示化数据等",technology:"python,websckoet,c#,webAPI,redis,sqlserver,mongodb,python,VarN proxy",people:"1人",Projectmessage:["1. 对:Binance,Bitmex,OKEX,FTX,huobi,CoinBase,Bybit,deribit,等平台的全部交易对,采集,现货,合约(交割,永续), 交易数据(行情波动大时,每小时数据量可达数十亿条)","2. 对接上述平台的 公共数据 中英文 API ,采集 持仓数据,强平订单,费率,交易对,等信息","3. 数据采集模块:通过websocket 采集 各个交易所的永续,现货,期货交易对的时序数据,将数据加入到消息队列中","4. 数据清洗模块:对每一个交易信息数据进行 唯一性,完整性,一致性的处理,并对交易的价值进行计算,确认数据的完整性后移出队列","5. 数据分析以及持久化模块:对每一个交易对数据进行小时汇总,得出单位小时内所有交易所 的一个交易对(BTC)的 永续,现货,期货 的净成交汇总数据","6. 数据可视化模块:计划中..."],picture:[i("psBI"),i("7GvT"),i("tkXF"),i("gEBR"),i("4X1f"),i("4kva")]},{starttime:"2021.11",time:"6个月",title:"SKC固定资产管理系统-重构",company:"京瓷信息系统(上海)有限公司-东莞分公司",job:"开发工程师",duty:"项目组织工作,框架的搭建和重要功能模块的实现,",technology:".net core,Restful Api,EntityFrameWorkCore,SQL,Dapper,Quzartz,vue,IView,Element-UI,Vuex,axios,webpack",people:"6人",Projectmessage:["1. 项目包含:AX固定资产检收数据导入,固定资产维护,固定资产变动及处置,资产标签打印,固定资产盘点对象数据等37个页面","2. 个人主要负责:根据Winform界面 使用VUE重构 其中大部分的页面,对各个模块的代码进行封装以及维护,并且根据业务需求对代码进行更新,提高代码复用率。"],picture:[i("ykXI"),i("3+ls"),i("ceJ5"),i("fc5a"),i("ZD2O"),i("2XGT"),i("VWHU")]},{starttime:"2021.05",time:"4个月",title:"SKC数据-RPA管理系统",company:"京瓷信息系统(上海)有限公司-东莞分公司",job:"开发工程师",duty:"项目需求调研,项目的功能设计,详细设计,框架的搭建和所有功能模块的设计实现,以及部署和上线",technology:".net,Quzartz,python,图像处理,爬虫,PyPDF2,Pillow,pandas,BeautifulSoup",people:"3人",Projectmessage:["1. 项目包含:票根网发票数据爬取模块,KPTG 数据自动化处理模块,简历系统自动化模块,定时任务管理模块","2. 票根网发票数据爬取模块:按月份批量抓取发票信息,批量合并发票pdf,读取发票pdf信息,合并并统计生成发票金额信息EXCEL","3. KPTG 数据自动化处理模块:采购订单自动下载,检收单自动打印整合,下载采购单数据自动发送邮件","4: 简历系统自动化模块: 问卷星招聘签名批量自动下载API,Sony相机 拍照API对接,python处理免冠照片剪辑","5. 个人主要负责以上所有模块开发"],picture:[]},{starttime:"2021.02",time:"4个月",title:"SKC-Bus约车管理系统",company:"京瓷信息系统(上海)有限公司-东莞分公司",job:"开发工程师",duty:"项目需求调研,项目的功能设计,详细设计,框架的搭建和重要功能模块的设计实现,以及部署和上线",technology:"微信小程序,.net core,vue,Restful Api,IView,axios,webpack,SQL,Dapper,Quzartz",people:"5人",Projectmessage:["1.项目包含:微信小程序模块,后台微服务,后台数据管理模块","2.微信小程序:线路维护,预约总览,工作日历维护,预约乘车班次,消息推送&自动推送,用户信息,角色权限编辑","3.后台数据微服务:上传日历,上传用户信息,获取班次信息,获取线路信息,获取预约信息等","4.个人主要负责:后台微服务,后台数据报表管理模块,设计小程序UI界面"],picture:[i("MPSP"),i("S30D"),i("VQ0k"),i("72nL"),i("lX5B"),i("CmaT"),i("6Tp1"),i("GvOz"),i("K1vC")]},{starttime:"2020.11",time:"3个月",title:"电力可视化系统",company:"京瓷信息系统(上海)有限公司-东莞分公司",job:"开发工程师",people:"3人",duty:"根据influxdb和grafana进行框架的搭建,设计电流,电压,功率,用电情况的BI展示",technology:"influxdb,grafana,AJAX,.NET WebApi,Linux",Projectmessage:["1.智能电表数据采集模块,Grafana 图表展示模块(ABC电流,ABC电压,用电量统计,峰谷平电价的计算),短信报警模块","2.根据三相电表,ABC电流,ABC电压,功率,分别统计出13台变压器的 用电情况,根据工业用电电价阶梯表计算每天,每月用电的量,汇总得出不同年份同一天的对比图表","3.监控十三台 变压器的 电压,电流,功率 对超过设定的阈值进行短信报警提醒","4.个人主要负责:grafana图表的制作,包含influxdb sql 的编写,以及峰谷平电价的计算"],picture:[i("/PFc"),i("FoGf"),i("enh5"),i("74SL"),i("Qefh")]},{starttime:"2020.08",time:"3个月",title:"AEO体系管理系統",people:"3人",company:"京瓷信息系统(上海)有限公司-东莞分公司",job:"开发工程师",duty:"整体项目的评估、选择合适框架和组件,对卡顿的页面的和异常bug点进行重构和修改",technology:"ASP.net,ASP.net MVC,Web Api,bootstrap,JQuery,SQL",Projectmessage:["1.对现有AEO系统进行多公司模块功能修改,多公司模块化下处理多库操作的处理","2.优化 使用Bootstap table treetable优化 体系管理审核模块卡顿问题"],picture:[i("rvgy"),i("YaVv"),i("2DRj"),i("s01X"),i("aL3T")]},{starttime:"2019.12",time:"12个月",title:"数码车间-MES精益製造執行系統",company:"东莞隽思印刷有限公司",job:"高级工程师",people:"8人",duty:"项目组织工作,项目需求调研,功能设计,详细设计,框架的搭建和重要功能模块的设计实现,以及部署和上线",technology:"ASP.net MVC,Spring.net,Nhibernate,Web Api,knockout.js,echarts,Ext.js,JQuery,light.7.css,SQL",Projectmessage:["1. 系统主要功能模块:包括基础设置、訂單模塊、工作票模塊、生產訂單管理模塊、補數模塊、品質模塊、KPI模塊、MTS領料模塊、货架模块,报表模块,資源管理模塊等.","2. 包含中间件:实时显示货架模块,状态机组件,sql动态可配置报表,基于echar配置图表组件","3. 项目目标:达成工业4.0的认证配合公司在香港上市","4. 个人主要处理:基础设置,订单模块,工作票模块,MTS領料模塊,货架模块"],picture:[i("Jibj"),i("srPf"),i("136v"),i("03my"),i("09nQ"),i("/B2F"),i("MZo0"),i("HtU2"),i("Y0Dj")]},{starttime:"2018.08",title:"OEM-實時車間管理系統",time:"9个月",company:"东莞隽思印刷有限公司",job:"软件工程师",people:"6人",duty:"项目组织工作,项目需求调研,功能设计,详细设计,框架的搭建和重要功能模块的设计实现,以及部署和上线",technology:"WPF,ASP.net MVC,Spring.net,Nhibernate,Web Api,knockout.js,Ext.js,JQuery,light.7.css,SQL",Projectmessage:["1.系统主要功能模块:PMC車間管理模塊、CTP看板、纸料看板、印刷实时显示目视化看板、OEM车间效率实时达成看板、异常追踪看板、后工序水塘产能看板.","2.包含中间件:状态机组件,可配置工厂日历,基于业务的规则引擎组件","3.项目目标:管理人员通过印刷实时显示目视化看板,OEM车间效率实时达成看板,异常追踪看板等看板,监控订单的进度,根据印刷物料状态实时调控订单生产进度,并对异常订单及时跟进保证三班的生产效率","4.PMC导入MPS的計劃生產訂單到系统,系统根據業務規則(物料狀態,物料配套,当前车间产能情況)和印刷部的印刷規則來調控OEM訂單的生產順序。通过印刷实时显示目视化看板,OEM车间效率实时达成看板,异常追踪看板等看板,监控订单的生成进度.","5.个人主要负责:除了CTP看板和异常追踪看板以外的模块"],picture:[i("Njc2"),i("rVn+"),i("l8mI"),i("rkrb"),i("mabU"),i("2iSA")]},{starttime:"2017.09",time:"5个月",title:"美泰FVT项目",company:"东莞隽思印刷有限公司",job:"软件工程师",people:"4人",duty:"项目部分的需求调研,功能设计,详细设计,框架的搭建和重要功能模块的设计实现,以及部署和上线",technology:"Web Api,Nhibernate,ASP.net,JQuery,Javascript,css,sql",Projectmessage:["1. 系统主要功能模块:物流指令流出、物流指令流入、工作指令標籤上机执行、工作指令標籤工作指令下机完成、物料出庫、流程記錄查詢、物料查詢、區域設定、稿袋录入、美泰原料批次报表模块.","2. 项目目标:追溯生产订单生产过程中使用的原料批次信息,防止生產流程中出現使用錯誤的生產原料,一旦物料出现异常,可即可追溯原料批次信息.","3. 與客戶約定能夠追溯物料的批次信息,则可降低成品/半成品的测试频率,以降低测试成本.","4. 个人主要负责:除了美泰原料批次报表模块的其他模块"],picture:[i("IUQa"),i("wEEr"),i("VWWt"),i("+PGD"),i("VtRm"),i("KFjJ")]},{starttime:"2017.03",title:"PMS项目管理系统",time:"8个月",company:"东莞隽思印刷有限公司",job:"见习工程师",people:"4人",duty:"模块的实现和维护",technology:"WPF,SQL,Web Api,Nhibernate,Web Api,SSO,spring.net",Projectmessage:["1. 系统主要功能模块: 项目管理,任务管理,日历设置,项目模版管理,资源管理,用户管理,报表管理.","2. 个人主要负责:对任务流程中的-子流程与PE设计管理系统数据交互模块 进行封装以及维护,并且根据业务需求对代码库进行更新,修正的业务代码中的错误以及提高程序的性能。"],picture:[i("bT0f"),i("H5tg"),i("e2jq"),i("ov9C"),i("ovDs"),i("4CYz")]}];e.a={projectlists:o,traitList:["深入前端工程化,拥抱组件化和函数式编程,有dry编程习惯。","会总结项目开发和维护的难点痛点,思考解决方案。","认真负责,有较强的学习能力,对新事物有较强的接受能力。","有时间观念,能在规定时间内完成任务。","知乎,github重度使用者,关注前端技术的最新发展,会收听技术大牛的Live。","热爱阅读技术书籍,喜欢的书目有《深入浅出React和Redux》,《你不知道的JavaScript》。"],projectList:[{id:0,name:"银河智投",date:"2017-11",link:"http://yh178178.com",detail:"/yh",account:13266705799,password:123456,dec:"银河智投是个金属交易所网站,主要功能有交易、平仓、出入金、展示行情数据、图示化数据等。\n主要技术栈: React+Mobx+Typescript\n组件样式: antd+less。",points:["mobx状态管理库管理数据,实现多组件数据同步,实时更新。","使用typescript增加类型检查,提高开发和维护的效率。","less提取公共样式,cssModules限制组件样式作用域。","基于react-helmet实现黑白主题。","基于react-stockchart定制了股票图表。","实现路由按需加载。"]},{id:1,name:"基于vue后台管理模版",date:"2017-10",link:"https://github.com/tossers/vue-template-backstage",detail:"/yh",account:"",password:"",dec:"基于Vue+Mockjs+ElementUI+echarts后台管理模板.",points:["基于vue,vuex,Mock后台管理模版实践。","基于elementUI,echart,提供后台管理常见使用场景。","使用vuex管理状态,vue-router实现路由按需加载。","使用mock实现脱离后端开发。","使用rem单位实现浅度自适应。"]},{id:2,name:"摩尔交易所",date:"2017-8",link:"https://trade.moer.pro",detail:"/yh",account:13266705799,password:123456,dec:"摩尔交易所是个交易所网站,主要功能有交易,平仓,出入金,展示行情数据,图示化数据等。\n主要技术栈: React+Mobx\n组件样式: antd+less。",points:["mobx状态管理库管理数据,实现多组件数据同步,实时更新。","基于Echarts定制股票图表。","使用react-intl实现多语言功能。","less提取公共样式,cssModules限制组件样式作用域。","根据路由按需加载。","数据节流,优化websocket实时推送带来的频繁渲染。"]},{id:3,name:"交易所后台展板",date:"2017-6",link:"http://dashboard.quant.tuling.me",detail:"/yh",account:"cds",password:123456,dec:"这是监控数据的内部网站,主要功能是后台数据展示,图示化数据,对数据进行增删改查操作等。\n主要技术栈: React+dva,\n组件样式: antd+highchart+css。",points:["使用阿里开源项目dva手脚架","使用highcharts图示化数据。"]}],personalInfo:n,lastUpdate:"2018-02-10"}},"3+ls":function(t,e,i){t.exports=i.p+"static/img/2.ca31e65.png"},"4CYz":function(t,e,i){t.exports=i.p+"static/img/5-6-lg.09e4845.jpg"},"4X1f":function(t,e,i){t.exports=i.p+"static/img/5.ec53758.png"},"4kva":function(t,e,i){t.exports=i.p+"static/img/6.96c4d52.png"},"5TaJ":function(t,e,i){t.exports=i.p+"static/img/2.748e262.png"},"6Pnu":function(t,e,i){t.exports=i.p+"static/img/4.3269955.png"},"6Tp1":function(t,e,i){t.exports=i.p+"static/img/7.b0fca64.png"},"72nL":function(t,e,i){t.exports=i.p+"static/img/4.ca2fbf0.png"},"74SL":function(t,e,i){t.exports=i.p+"static/img/4.9532def.png"},"7GvT":function(t,e,i){t.exports=i.p+"static/img/2.e7530a0.png"},"8C3Q":function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i("c4Q0"),o=i("lvQq"),s={components:{mainleft:n.a,mainright:o.a},data:function(){return{}},computed:{},watch:{},methods:{},created:function(){},mounted:function(){},beforeCreate:function(){},beforeMount:function(){},beforeUpdate:function(){},updated:function(){},beforeDestroy:function(){},destroyed:function(){},activated:function(){}},a={render:function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"rm-main"},[e("div",{staticClass:"rm-main-left"},[e("mainleft")],1),this._v(" "),e("div",{staticClass:"rm-main-right"},[e("mainright")],1)])},staticRenderFns:[]};var c=i("VU/8")(s,a,!1,function(t){i("QaeG")},"data-v-dd566fec",null);e.default=c.exports},CmaT:function(t,e,i){t.exports=i.p+"static/img/6.2c62ab4.png"},FoGf:function(t,e,i){t.exports=i.p+"static/img/2.fe77687.png"},GvOz:function(t,e,i){t.exports=i.p+"static/img/8.54721eb.png"},H5tg:function(t,e,i){t.exports=i.p+"static/img/5-2-lg.1d67d52.jpg"},HtU2:function(t,e,i){t.exports=i.p+"static/img/9-8-lg.5ce458c.jpg"},ICCY:function(t,e){t.exports="data:image/png;base64,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"},IUQa:function(t,e,i){t.exports=i.p+"static/img/7-1-lg.810db17.jpg"},Jibj:function(t,e,i){t.exports=i.p+"static/img/9-1-lg.9036f02.jpg"},K1vC:function(t,e,i){t.exports=i.p+"static/img/9.c3df639.png"},KFjJ:function(t,e,i){t.exports=i.p+"static/img/7-6-lg.c036476.jpg"},MPSP:function(t,e,i){t.exports=i.p+"static/img/1.cd75ee8.png"},MZo0:function(t,e,i){t.exports=i.p+"static/img/9-7-lg.da0034d.jpg"},Njc2:function(t,e,i){t.exports=i.p+"static/img/8-1-lg.2357e00.jpg"},OUQM:function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC0AAAAtCAYAAAA6GuKaAAAE8UlEQVRoQ+3ZW2gcVRgH8P93trEUo2R3U9RiRchMquANHxSv6IMvFSsK3d3Q2tpQaDKbhIC0VBGMCoIiFNrsbL1AKxYTKxYbLLbWWi9VKwoV44VkJqn0oZKanW0LEUo388kkmc1Jejabzc4meXAgEGZmZ37z7f+cOecsYRFtEXNgE+BuB+EQCO86TfofKh4tFnMk1dcBEi9Jnt8hEFPBFwVaAufAaADc2yYeQAlfcLQPZuCSACUyhvaJV23pQa6ALyg6D2MeYRFKZJvrPpXjWgi+YGgJdAGCEk6TdljVvlTwBUFLkAxcbnBa6o/O1CFMh887WgKcE0yJ4aR2XFlh01rrGPpH/rH85whH5xUtgc8y3ETWWPWtClyzy3pEhHCcGclsUjfzcNP+BuCHxtDhtLWOGE+CcR8IN5bddxPtdZq1TQUa1RkIJJwm/YeZwN4xJvGE3zgjprUfwFp4lY6m7BYm3lU2VL7ANLRU4UFikcgk634qBgYQ8+ORBwNj3R9FTOsMgJXySUE+gAS2XEL8fLN+qhyw94b00OxdxDH0wPMtgf/kkIhnt9T1lgv2Pl8xtNTae3EZCadNPfipTdmPusRfTjxMwUjIY5CKoH0wAafIzSWGW27tV3Zruwcfgzv6eSngilR68tWMn0eJ4xeM+kEVONzZt5qEOFQqOHC0lOGTExn2GvkVW61prXGBg3MBB4qeBNMJMZqLD7feclYFjqYGnmZyP54rODB0PsOEr5aA4kPN2jllhlN9cZDoLgccCFoaXh7LLV0Wu7h5paPMcMpaR4R95YLLRksZPoJrEXPW6xeVkTDtjQzeGwS4LLSU4UNVIyPxoa13jigjYfZtBsQ7QYHnjJamSD3ZHGJo0y8pI2H2NxEoHSR4TujJCvMBp/aXGGKxUWUk0nYLc34gVvRNF0nbe8D4xzG0barryftKeiMuT9naKOFXgJeBKeEktQ/VkRhoB9wdpVS4lDFQSeio2f8ig16dhHKjY9TvkeFhs38rgd4oBeydWxk0M0XStjdKGyLgCwZeG8sXU2smqXV6/0dN63l//0zjYdUCTEXQ4d0DDeS6HxDwTMbQ98mTBwJeYKIlYH6l1Ar731JF0FHT6mHgLsfQb/JvFDWt9Qy8Py3XRRuduh3Mflw/q0xHO/vvZUEnGdieNfTXp2X4cQL5iyxzAlck0xHT8nqC9iqi61TjimjafoqZD/jRGJuAjv8VXEScXu1A41G901p+VQi9IDrsGNqzhfrQSNp+DsxvSsdnDQ680lHTbmXwTmJxT6FZdCRtNQLYCMbDE+iSwIGjI6b9HcD3g92XneSqDr+StW/9dQPnLrcxYQOAFWP7mX8E0FUlRFeh4WnBb6qECfaMDTFiWl4uvUWS8Y3QAcYRgNoBjk/upy6Xufu8ofcUQhXbH1im/UUSJrqdmKdO/5lPM1EXiLqyzdpvxVDFjgeGDqftbcQ8pYsD0TEwd1dVX9M1tOF65XC0GLDi/bQ3lgBoNbH7NTF9lmmp93Ib+BZYpQOXzXDB/9HzVe1SK50FUCNCVSuGt9z893wh5fvU7DhdI5bmsgD96xja1cUMFDatgwSs8V4eCIn9hX4lLXahco77K//e2l/G0O8udi0Kp+0HiPlEsRPn57hodIy6KTMh1X3Hf75IDTxI5Hr98R0AqucHOOUu3wP0nmNob8/m3v8BYT5lt+mtuUAAAAAASUVORK5CYII="},QaeG:function(t,e){},Qefh:function(t,e,i){t.exports=i.p+"static/img/5.2ef28ce.png"},S30D:function(t,e,i){t.exports=i.p+"static/img/2.df218e3.png"},SzkV:function(t,e){},UqHI:function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAC5klEQVRYR8WXQVLbQBBF3xibbbhBzAniG2AvU0EETgCcALGIVVmFrFIoC8gJMCewCyeVJeYEwAlibgBbsN2pmZGsGVvGSUoKXtkjS/27+/f/LcULf9QLx6c8AD/iBmPpolQduAF1SPBhMJtwOQBMcC5RrHkBhX222h33rHgA3ZM1Vh6vbebyAOwhKkSxgXDPCi3etW9SEMUDuIh7KN6b4BXVNME0qOrjANQbYEDQbpUDoP+1CXJpHj5bbvcaqpXyodgKpNkLV2y1m3MTdhEPTCuQc4JoT18vGoANkEM2A+Yi3kNxhsiQrWi9eAD94w6o3TyyGQBuG4K2Sb7YCliyDUG9ygVROgCdktaAiWjGWxDj2jo7h/f/pwIp61wQyGeC6MgCON4G1TUjGkRGpIptgUv7lA8O4+nHp8ABzpSUA8Co4dMvI8VKDtmMdGDox0PgtXtWDgBXDUerdcMBl4DV8TpvP2owJbTg+3GIqBPbDdkhiHqJBqQa4YlUsRVIhcZG/0bQDufY78hwsRUwzOc6yfyWIGqY76475kj04grYnn1CaKAYUmHftVFP573M5ZbRajOb/UQd9ehVJ4209+n98wCMmj11Ad9McrzcPMTvuR/cBbbAH3wA/hqlSXQOlQ5MThMvz2zWyu4ZqG3LN64Y17anmftVmbqfVzlvCrw1KtlkUgb7C4V+xiBpTbJyZfaaMN66Xgosz5oTJFkFMq/ONhkX7jwIffUOJJyO2rKWzKbvVaAfS4J4bnGcJ5zUETX0FkyrficozKJh2jdaDactyQnuj+FUvbihOt6ZZeuC++2xnhiZnCUruD7JNODZG10lnLXRioRsRufPBzbudpBNzAx3lgT3K6B/eTaqqyhDVKWD6BcLsZ5ekToTpTWi6WRssx7VjpaVfPEUpFcs2fTY7S5PwGTcM6Oa89az/P7nzOjnlzqjlTAZt42EWA+I0i8Vuho9xrXe32a8vAJ/ArvA/xTrhv8A7Df7Z3MwSvRCgQAAAABJRU5ErkJggg=="},VQ0k:function(t,e,i){t.exports=i.p+"static/img/3.a8b9e7d.png"},VWHU:function(t,e,i){t.exports=i.p+"static/img/7.c506ebc.png"},VWWt:function(t,e,i){t.exports=i.p+"static/img/7-3-lg.e763700.jpg"},VtRm:function(t,e,i){t.exports=i.p+"static/img/7-5-lg.eb98a05.jpg"},WLbw:function(t,e,i){t.exports=i.p+"static/img/3.2a97c0a.png"},Y0Dj:function(t,e,i){t.exports=i.p+"static/img/9-9-lg.fd6848d.jpg"},YaVv:function(t,e,i){t.exports=i.p+"static/img/12.d4e268d.png"},ZD2O:function(t,e,i){t.exports=i.p+"static/img/5.d720990.png"},aL3T:function(t,e,i){t.exports=i.p+"static/img/15.a979ed0.png"},bT0f:function(t,e,i){t.exports=i.p+"static/img/5-1-lg.f8f7816.jpg"},c4Q0:function(t,e,i){"use strict";var n=i("2uFj"),o=i("UqHI"),s=i("wF+D"),a=i("gkEB"),c=i("ICCY"),p=i("OUQM"),r=n.a.personalInfo,g={components:{personalInfo:r},data:function(){return{logo1:c,logo2:p,personalInfo:r,phone:o,email:s,avatarreal:a,phones:i("wti+")}},computed:{},watch:{},methods:{},created:function(){},mounted:function(){},beforeCreate:function(){},beforeMount:function(){},beforeUpdate:function(){},updated:function(){},beforeDestroy:function(){},destroyed:function(){},activated:function(){}},u={render:function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("div",{staticClass:"right"},[i("div",{staticClass:"right-top"},[i("img",{staticClass:"right-top__avatar",attrs:{src:t.avatarreal}}),t._v(" "),i("h1",[t._v(t._s(t.personalInfo.name))]),t._v(" "),i("h3",[t._v(t._s(t.personalInfo.position))])]),t._v(" "),t._m(0),t._v(" "),i("div",{staticClass:"right-info"},[i("p",[t._v(t._s(t.personalInfo.sex)+" / "+t._s(t.personalInfo.birthday)+" / 32岁")]),t._v(" "),i("p",[t._v(t._s(t.personalInfo.university)+" / "+t._s(t.personalInfo.major))]),t._v(" "),i("p",[t._v(t._s(t.personalInfo.education)+" / "+t._s(t.personalInfo.graduation)+"毕业")]),t._v(" "),i("p",[t._v("工作年限 / 8年")])]),t._v(" "),t._m(1),t._v(" "),i("div",{staticClass:"right-skill"},[i("p",[t._v(" "),i("img",{attrs:{src:t.logo2}}),i("strong",[t._v("技术栈")])]),t._v(" "),i("p",[t._v("1、.C#/.NET、.NET Core、.NET MVC、Web API、RESTful API")]),t._v(" "),i("p",[t._v("2、前端:js、jQuery、Vue.js、Vuex、IView、Element-UI、Bootstrap")]),t._v(" "),i("p",[t._v("3、数据库:SQLServer、MySQL、Redis、MongoDB ")]),t._v(" "),i("p",[t._v("4、ORM:Nhibernate、Dapper、Entity Framework、FreeSql、SqlSugar")]),t._v(" "),i("p",[t._v("5、架构:领域驱动设计 DDD、")]),t._v(" "),i("p",[t._v("6、环境:Windows、Linux、IIS、Nginx")]),t._v(" "),i("p",[t._v("7、其他:微信小程序 Python:爬虫、办公自动化处理、图像处理")]),t._v(" "),i("p",[t._v("8、工具:.Vscode、VS Studio、git、Svn、npm、yarn、Webpack、Docker、")])]),t._v(" "),i("div",{staticClass:"right-skills"},[i("p",[t._v(" "),i("img",{attrs:{src:t.logo1}}),i("strong",[t._v("个人资料:")])]),t._v(" "),t._m(2)])])},staticRenderFns:[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"right-link"},[e("img",{attrs:{align:"",src:"https://img.shields.io/badge/%20fishyue-blog-yellow"}}),this._v(" "),e("p",[e("i",{staticClass:"el-icon-message",staticStyle:{color:"#2894FF","font-size":"25.5px"}}),this._v(" 364466548@qq.com")]),this._v(" "),e("p",[e("i",{staticClass:"el-icon-phone-outline",staticStyle:{color:"#2894FF","font-size":"25.5px"}}),this._v(" 13794928207")])])},function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("div",{staticStyle:{"margin-bottom":"40px"}},[i("strong",[t._v("工作经历")]),t._v(" "),i("div",{staticStyle:{padding:"8px"}},[i("div",[i("span",{staticStyle:{color:"gray"}},[t._v("2015.07 - 2015.11")]),t._v(" "),i("p",{staticStyle:{"margin-left":"16px"}},[t._v("东莞申翔网络公司-实习")])]),t._v(" "),i("div",[i("span",{staticStyle:{color:"gray"}},[t._v("2016.03 - 2020.01")]),t._v(" "),i("p",{staticStyle:{"margin-left":"16px"}},[t._v("东莞隽思印刷有限公司")])]),t._v(" "),i("div",[i("span",{staticStyle:{color:"gray"}},[t._v("2020.05 - 2022-03")]),t._v(" "),i("p",{staticStyle:{"margin-left":"16px"}},[t._v("京瓷信息系统(上海)有限公司")])]),t._v(" "),i("div",[i("span",{staticStyle:{color:"gray"}},[t._v("2022.03 - 至今")]),t._v(" "),i("p",{staticStyle:{"margin-left":"16px"}},[t._v("广东领益智造股份有限公司")])])])])},function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("div",{staticStyle:{padding:"8px"}},[i("div",[i("b",{staticStyle:{color:"black"}},[t._v(" VUE&.NET CORE 6 前后端分离框架")]),t._v(" "),i("p",[i("a",{attrs:{href:"http://www.yuzhupengs.com/",target:"_blank"}},[t._v("http://www.yuzhupengs.com/")])])]),t._v(" "),i("div",[i("b",{staticStyle:{color:"black"}},[t._v(" githup-#需FQ:")]),t._v(" "),i("p",[i("a",{attrs:{href:"https://github.com/yuzhupeng",target:"_blank"}},[t._v("https://github.com/yuzhupeng")])])]),t._v(" "),i("div",[i("b",{staticStyle:{color:"black"}},[t._v(" .NET Core高质量资源-#需FQ:")]),t._v(" "),i("p",[i("a",{attrs:{href:"https://yuzhupeng.github.io/DotNetGuide/",target:"_blank"}},[t._v("https://yuzhupeng.github.io/DotNetGuide/")])])]),t._v(" "),i("div",[i("b",{staticStyle:{color:"black"}},[t._v(" JavaScript 资源大全中文版-#需FQ:")]),t._v(" "),i("p",[i("a",{attrs:{href:"https://yuzhupeng.github.io/awesome-python-cn/",target:"_blank"}},[t._v("https://yuzhupeng.github.io/awesome-python-cn/")])])]),t._v(" "),i("div",[i("b",{staticStyle:{color:"black"}},[t._v("深入理解Vue.js实战-#需FQ:")]),t._v(" "),i("p",[i("a",{attrs:{href:"https://yuzhupeng.github.io/vue-ebook/vue-ebook/0.html",target:"_blank"}},[t._v("https://yuzhupeng.github.io/vue-ebook/vue-ebook/0.html")])])]),t._v(" "),i("div",[i("b",{staticStyle:{color:"black"}},[t._v(" Linux命令大全搜索工具-#需FQ:")]),t._v(" "),i("p",[i("a",{attrs:{href:"https://yuzhupeng.github.io/linux-command/",target:"_blank"}},[t._v("https://yuzhupeng.github.io/linux-command/")])])]),t._v(" "),i("div",[i("b",{staticStyle:{color:"black"}},[t._v(" Python 中文算法教程-#需FQ:")]),t._v(" "),i("p",[i("a",{attrs:{href:"https://yuzhupeng.github.io/python_data_structures_and_algorithms/",target:"_blank"}},[t._v("https://yuzhupeng.github.io/python_data_structures_and_algorithms/")])])]),t._v(" "),i("div",[i("b",{staticStyle:{color:"black"}},[t._v(" Python资源库大全-#需FQ:")]),t._v(" "),i("p",[i("a",{attrs:{href:"https://yuzhupeng.github.io/awesome-python-cn/",target:"_blank"}},[t._v("https://yuzhupeng.github.io/awesome-python-cn/")])])])])}]};var l=i("VU/8")(g,u,!1,function(t){i("SzkV")},"data-v-2b8fc8bc",null);e.a=l.exports},ceJ5:function(t,e,i){t.exports=i.p+"static/img/3.08240e7.png"},e2jq:function(t,e,i){t.exports=i.p+"static/img/5-3-lg.0b647e9.jpg"},enh5:function(t,e,i){t.exports=i.p+"static/img/3.f7accbc.png"},fc5a:function(t,e,i){t.exports=i.p+"static/img/4.a62261c.png"},gEBR:function(t,e,i){t.exports=i.p+"static/img/4.d7f2b7f.png"},gkEB:function(t,e,i){t.exports=i.p+"static/img/me.6bfb1f7.png"},"iM/o":function(t,e,i){t.exports=i.p+"static/img/1.62c3f42.png"},k8xh:function(t,e,i){t.exports=i.p+"static/img/6.30d63ca.png"},l8mI:function(t,e,i){t.exports=i.p+"static/img/8-3-lg.5db6941.jpg"},lX5B:function(t,e,i){t.exports=i.p+"static/img/5.3d757c4.png"},lvQq:function(t,e,i){"use strict";var n=i("2uFj").a.projectlists,o={components:{projectlists:n},data:function(){return{projectlists:n,addressa:[{starttime:"2017.03",time:"14个月",title:"数码车间-MES製造執行系統",company:"",job:"",duty:"",technology:"1",Projectmessage:"2",p:[{sss:i("wti+")},{sss:i("wti+")}]},{starttime:"2017.03",title:"quanzhisq111",away:"1",address:"2",p:[{sss:"https://yuzhupeng.github.io/fishyue_files/9-8-lg.jpg"},{sss:"https://yuzhupeng.github.io/fishyue_files/9-8-lg.jpg"},{sss:"https://yuzhupeng.github.io/fishyue_files/9-8-lg.jpg"},{sss:"https://yuzhupeng.github.io/fishyue_files/9-8-lg.jpg"},{sss:"https://yuzhupeng.github.io/fishyue_files/9-8-lg.jpg"},{sss:"https://yuzhupeng.github.io/fishyue_files/9-8-lg.jpg"}],a:"22"}],value11:[0,65],marks:{33:"了解",66:"熟悉",100:"精通"}}},computed:{},watch:{},methods:{viewImg:function(t){window.open(t)}},created:function(){},mounted:function(){},beforeCreate:function(){},beforeMount:function(){},beforeUpdate:function(){},updated:function(){},beforeDestroy:function(){},destroyed:function(){},activated:function(){}},s={render:function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("div",t._l(t.projectlists,function(e,n){return i("Timeline-item",{key:n},[i("div",[i("span",{staticClass:"bg-light-blue"},[t._v(t._s(e.starttime))])]),t._v(" "),i("Card",{staticStyle:{width:"100%"}},[i("p",{staticClass:"titles",attrs:{slot:"title"},slot:"title"},[i("Icon",{attrs:{type:"ios-film-outline"}}),t._v("\n "+t._s(e.title)+"\n ")],1),t._v(" "),i("a",{attrs:{slot:"extra",href:"#"},slot:"extra"},[i("Icon",{attrs:{type:"ios-bookmarks-outline"}}),t._v("\n 持续时间:"+t._s(e.time)+"\n ")],1),t._v(" "),i("p",[t._v("所在公司:"+t._s(e.company))]),t._v(" "),i("p",[t._v("项目职务:"+t._s(e.job))]),t._v(" "),i("p",[t._v("项目职责:"+t._s(e.duty))]),t._v(" "),i("p",[t._v("项目技术:"+t._s(e.technology))])]),t._v(" "),i("BR"),t._v(" "),i("Card",{staticStyle:{width:"100%"}},[i("p",{attrs:{slot:"title"},slot:"title"},[i("Icon",{attrs:{type:"ios-film-outline"}}),t._v("\n 项目描述:\n\n ")],1),t._v(" "),i("a",{attrs:{slot:"extra",href:"#"},slot:"extra"},[i("Icon",{attrs:{type:"ios-bookmarks-outline"}}),t._v("\n 规模:"+t._s(e.people)+"\n ")],1),t._v(" "),t._l(e.Projectmessage,function(e,n){return i("div",{key:n},[t._v("\n     \n "),i("span",{staticClass:"left__personal-point"}),t._v(t._s(e)+"\n ")])})],2),t._v(" "),i("BR"),t._v(" "),i("Card",{staticStyle:{width:"100%"}},[i("p",{attrs:{slot:"title"},slot:"title"},[i("Icon",{attrs:{type:"ios-film-outline"}}),t._v("\n 效果预览:\n ")],1),t._v(" "),i("div",[i("el-row",{attrs:{gutter:20}},t._l(e.picture,function(e,n){return i("el-col",{key:n,staticClass:"text item",staticStyle:{width:"33.33333333%",display:"inline",padding:"20px"},attrs:{span:6}},[i("img",{staticStyle:{cursor:"pointer",height:"100px"},attrs:{src:e},on:{click:function(i){t.viewImg(e)}}})])}),1)],1)])],1)}),1)},staticRenderFns:[]};var a=i("VU/8")(o,s,!1,function(t){i("yYMs")},null,null);e.a=a.exports},mabU:function(t,e,i){t.exports=i.p+"static/img/8-5-lg.a392b49.jpg"},ov9C:function(t,e,i){t.exports=i.p+"static/img/5-4-lg.0ce8074.jpg"},ovDs:function(t,e,i){t.exports=i.p+"static/img/5-5-lg.c2aaf54.jpg"},psBI:function(t,e,i){t.exports=i.p+"static/img/1.e8855d2.png"},qYSn:function(t,e,i){t.exports=i.p+"static/img/5.be84e21.png"},"rVn+":function(t,e,i){t.exports=i.p+"static/img/8-2-lg.0ce48c1.jpg"},rkrb:function(t,e,i){t.exports=i.p+"static/img/8-4-lg.7652634.jpg"},rvgy:function(t,e,i){t.exports=i.p+"static/img/1.e3ae5b1.png"},s01X:function(t,e,i){t.exports=i.p+"static/img/14.7141e9d.png"},srPf:function(t,e,i){t.exports=i.p+"static/img/9-2-lg.2d03b49.jpg"},tkXF:function(t,e,i){t.exports=i.p+"static/img/3.799a265.png"},veMC:function(t,e,i){t.exports=i.p+"static/img/8.d546abf.png"},wEEr:function(t,e,i){t.exports=i.p+"static/img/7-2-lg.2fb9e73.jpg"},"wF+D":function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABqElEQVRYR+2XTW6CQBSAv0HtGm9QT1COYNcNht5Ab6CLwra7Rjb1BnqDGk3TZekJqifoEXRd0WlGRcC/oGDsAnYkzPu+vDfvzSC48iOuzCcX2M3A26tOYXZ3kdLMS2MeW9No7FBAgYu/XRDWReBBUEmPmt0IXkOBYbuHFDrzUn3bMjOhj5db/MIPpr3hRgRcSXFeWcJ8zcB0+pmBVaBlhmefwBeIPkgL027GBZTZ0lIbIUWTmt3LRGIDl2NMp87A7SPkCNN53hVQxHfXYCG9TCS24Sr+sD0FzcJ88vYLZCWxD74UcCWI++MCaSUOwU8SOFfiGPxkgVMlQrjAv6nubenEJYi2QJKNmQR+VgYCkYFbR9BF0thp0aTwVAJq8SGJgeshpH4w7dFsnlWCaIBAYt1KqDEORiJ46gzEyiE7gBqvlcTwzASCcoB18gGWugRpD4hc4P9mwC+VL3YbCvbNamBNWLPC41gNEuQ3NaeVdo8dXT90OyCrmI6hvgsFVvc1D5gAsZtrhkI6UEbD4sEexQU29zbfgEU1Q2gklObhF0fRMud/RnkG/gD6eT8wV9a0AwAAAABJRU5ErkJggg=="},"wti+":function(t,e,i){t.exports=i.p+"static/img/avatar_real.1b70c79.png"},yYMs:function(t,e){},ykXI:function(t,e,i){t.exports=i.p+"static/img/1.f505345.png"}}); \ No newline at end of file diff --git a/static/js/10.7992e4cf569e75f4efd3.1724034856713.js b/static/js/10.7992e4cf569e75f4efd3.1724034856713.js new file mode 100644 index 0000000..302c0e3 --- /dev/null +++ b/static/js/10.7992e4cf569e75f4efd3.1724034856713.js @@ -0,0 +1,16 @@ +webpackJsonp([10],{"02ea":function(e,t){},"14rw":function(e,t,n){"use strict";var o=n("woOf"),i=n.n(o),r=n("fZjL"),a=n.n(r),l={render:function(){var e=this.$createElement;return(this._self._c||e)("div")},staticRenderFns:[]},s=n("VU/8")(null,l,!1,null,null,null).exports,u=n("k6jg"),c=n("ifJF"),d={columns:{type:Array,default:function(){return[]}},detail:{type:Object,default:function(){return{columns:[],sortName:""}}},editFormFileds:{type:Object,default:function(){return{}}},editFormFields:{type:Object,default:function(){return{}}},editFormOptions:{type:Array,default:function(){return[]}},searchFormFileds:{type:Object,default:function(){return{}}},searchFormFields:{type:Object,default:function(){return{}}},searchFormOptions:{type:Array,default:function(){return[]}},table:{type:Object,default:function(){return{}}},extend:{type:Object,default:function(){return{}}}},f=n("mvHQ"),p=n.n(f),h=n("pFYg"),m=n.n(h),v=n("Xxa5"),g=n.n(v),A=n("exGp"),y=n.n(A),w=n("Gu7T"),x=n.n(w),b={loadInternalDetailTableBefore:function(e,t){this.detailOptions.delKeys.length>0&&(this.detailOptions.delKeys=[]);var n=this.table.key;return this.currentRow&&this.currentRow.hasOwnProperty(n)&&(e.value=this.currentRow[n]),this.loadDetailTableBefore(e,t)},detailRowOnChange:function(e){this.detailRowChange(e)},detailRowChange:function(e){},detailRowOnClick:function(e){var t=e.row,n=e.column,o=e.event;this.detailRowClick({row:t,column:n,event:o})},detailRowClick:function(e){e.row,e.column,e.event},resetDetailTable:function(e){if(this.detailOptions.columns&&0!=this.detailOptions.columns.length){var t=this.table.key,n={value:e?e[t]:this.currentRow[t]};this.$refs.detail&&(this.$refs.detail.reset(),this.$refs.detail.load(n))}},refreshRow:function(){this.resetDetailTable()},addRow:function(){this.$refs.detail.addRow({}),this.updateDetailTableSummaryTotal()},delRow:function(){var e=this,t=this.$refs.detail.getSelected();return t&&0!=t.length?!!this.delDetailRow(t)&&void this.$Modal.confirm({title:"删除警告!",content:'

确认要删除选择的数据吗?

',onOk:function(){t=e.$refs.detail.delRow();var n=e.detailOptions.key;t.forEach(function(t){t.hasOwnProperty(n)&&t[n]&&e.detailOptions.delKeys.push(t[n])}),e.updateDetailTableSummaryTotal()}}):this.$message.error("请选择要删除的行!")},updateDetailTableSummaryTotal:function(){var e=this;this.$refs.detail&&(this.$refs.detail.paginations.total=this.$refs.detail.rowData.length,this.$refs.detail.summary&&this.$refs.detail.columns.forEach(function(t){t.summary&&e.$refs.detail.getInputSummaries(null,null,null,t)}))}},E={onInit:function(){console.log("Create执行前")},onInited:function(){console.log("Create执行后")},mounted:function(){console.log("mounted")},searchBefore:function(e){return!0},searchAfter:function(e,t){return!0},searchDetailBefore:function(e){return!0},searchDetailAfter:function(e,t){return!0},delBefore:function(e,t){return!0},delAfter:function(e){return!0},delDetailRow:function(e){return!0},addBefore:function(e){return!0},addBeforeAsync:function(e){var t=this;return y()(g.a.mark(function e(){return g.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",!0);case 1:case"end":return e.stop()}},e,t)}))()},addAfter:function(e){return!0},updateBefore:function(e){return!0},updateBeforeAsync:function(e){var t=this;return y()(g.a.mark(function e(){return g.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",!0);case 1:case"end":return e.stop()}},e,t)}))()},updateAfter:function(e){return!0},auditBefore:function(e,t){return!0},auditAfter:function(e,t){return!0},resetAddFormBefore:function(){return!0},resetAddFormAfter:function(){return!0},resetUpdateFormBefore:function(){return!0},resetUpdateFormAfter:function(){return!0},modelOpenBefore:function(e){},modelOpenAfter:function(e){},importAfter:function(e){this.search()},importExcelBefore:function(e){return!0},reloadDicSource:function(){this.initDicKeys()},exportBefore:function(e){return!0},onModelClose:function(e){this.boxModel=!1}},C={parentCall:function(e){if("function"!=typeof e)return console.log("扩展组件需要传入一个回调方法才能获取父级Vue对象");e(this)},getCurrentAction:function(){return this.currentReadonly?"":"--"+(this.currentAction==this.const.ADD?"新增":"编辑")},quickSearchKeyPress:function(e){13==e.keyCode&&""!=this._searchFormFields[this.singleSearch.field]&&this.search()},getButtons:function(){var e=this,t=this.buttons.findIndex(function(e){return"Search"==e.value});if(-1!=t&&this.buttons.splice(t+1,0,{icon:"ios-arrow-down",class:"r-dropdown",name:"",type:this.buttons[t].type,onClick:function(){e.searchBoxShow=!e.searchBoxShow}}),this.maxBtnLength+=-1==t?0:1,this.buttons.length<=this.maxBtnLength)return this.buttons;var n=this.buttons.slice(0,this.maxBtnLength);return n[this.maxBtnLength-1].last=!0,n},extendBtn:function(e,t){e&&t&&t instanceof Array&&t.forEach(function(t){e.splice(void 0==t.index?e.length:t.index,0,t)})},initBoxButtons:function(){var e,t,n=this,o=this.$route.path,i=this.permission.getButtons(o,null,this.extend.tableAction);i&&i.forEach(function(e){var t={};for(var o in e)t[o]=e[o];n.buttons.push(t)}),this.extend||(this.extend={}),this.extend.buttons||(this.extend.buttons={}),this.extend.buttons.view&&this.extendBtn(this.buttons,this.extend.buttons.view);var r=[],a=this.buttons.some(function(e){if(e.value&&(e.value.toLowerCase()==n.const.ADD.toLowerCase()||e.value.toLowerCase()==n.const.EDIT.toLowerCase()))return!0});this.currentReadonly=!a;var l,s={name:"刷新",icon:"md-refresh",onClick:function(){this.currentAction!=this.const.ADD&&this.refreshRow()}};if(this.buttons.some(function(e){if(e.value==n.const.IMPORT)return!0})&&(this.upload.url=this.getUrl(this.const.IMPORT),this.upload.template.fileName=this.table.cnName,this.upload.template.url=this.http.ipAddress+this.getUrl(this.const.DOWNLOADTEMPLATE,!0)),!a)return this.editFormOptions.forEach(function(e){e.forEach(function(e){e.disabled=!0})}),this.detail.columns.forEach(function(e){e.hasOwnProperty("edit")&&(e.edit=!1)}),this.extendBtn(r,this.extend.buttons.box),(l=this.boxButtons).push.apply(l,r),this.detailOptions.buttons.push(s),this.extendBtn(this.detailOptions.buttons,this.extend.buttons.detail),r;this.detailOptions.edit=!0,r.push.apply(r,[{name:"保 存",icon:"md-checkmark",type:"error",value:"save",onClick:function(){this.save()}},{name:"重 置",icon:"md-refresh",type:"success",onClick:function(){this.resetEdit()}}]),(e=this.detailOptions.buttons).push.apply(e,[{name:"添加行",icon:"md-add",onClick:function(){this.addRow()}},{name:"删除行",icon:"md-close",onClick:function(){this.delRow()}}]),this.extendBtn(r,this.extend.buttons.box),this.detailOptions.buttons.push(s),this.extendBtn(this.detailOptions.buttons,this.extend.buttons.detail),(t=this.boxButtons).push.apply(t,r)},onClick:function(e){e.apply(this)},changeDropdown:function(e,t){var n=this.buttons.filter(function(t){return t.name==e});n&&n.length>0&&n[0].onClick.apply(this)},emptyValue:function(e){return"string"==typeof e&&""===e.trim()||(e instanceof Array&&!e.length||(null===e||void 0===e||""===e))},getSearchParameters:function(){var e=this;this.fiexdSearchForm||(this.searchBoxShow=!1);var t={wheres:[]},n=function(n){var o=e._searchFormFields[n];if(e.emptyValue(o))return"continue";"number"==typeof o&&(o+="");var i=e.getSearchItem(n);if("cascader"==i&&(o=o.length?o[o.length-1]+"":""),"string"==typeof o||-1==["date","datetime","range"].indexOf(i))return t.wheres.push({name:n,value:"string"==typeof o?(o+"").trim():o.join(","),displayType:i}),"continue";for(var r=function(r){e.emptyValue(o[r])||t.wheres.push({name:n,value:(o[r]+"").trim(),displayType:-1!=["date","datetime","range"].indexOf(i)?r?"lessorequal":"thanorequal":i})},a=0;a0&&!n.keyValueType.hasOwnProperty(e.field)&&(n.keyValueType[e.field]=t[0].key,n.keyValueType[o+e.field]=e.type)})})}catch(e){console.log(e.message)}},resetForm:function(e,t){var n=this;if(this.$refs[e]&&this.$refs[e].reset(),t){var o,i=void 0,r=void 0;"searchForm"==e?(i=this._searchFormFields,r="s_b_"):(i=this._editFormFields,r="e_b_"),this.keyValueType._dinit||(this.getKeyValueType(this.editFormOptions,!0),this.getKeyValueType(this.searchFormOptions,!1),this.keyValueType._dinit=!0);var a=function(e){if(t.hasOwnProperty(e)){var a,l=t[e],u=n.keyValueType[r+e];if("selectList"==u||"checkbox"==u||"cascader"==u?"cascader"==u?(s=n.dicKeys.find(function(t){return t.fileds&&-1!=t.fileds.indexOf(e)}))&&s.orginData&&s.orginData.length?("number"==typeof s.orginData[0].id?l=~~l:l+="",(o=n.base.getTreeAllParent(l,s.orginData))&&(l=o.map(function(e){return e.id}))):l=[l]:""!=l&&void 0!=l&&"string"==typeof l?l=l.split(","):"checkbox"==u&&(l=[]):n.keyValueType.hasOwnProperty(e)&&"number"==typeof n.keyValueType[e]&&1*l==l?l*=1:null==l||void 0==l?l="":l+="",l instanceof Array)i[e]&&(i[e]=[]),i[e].splice(0),(a=i[e]).push.apply(a,x()(l)),"cascader"==u&&n.$nextTick(function(){(o=o||[]).forEach(function(e){e.label=e.value}),n.$refs.form.$refs[e]&&(n.$refs.form.$refs[e][0].selected=o)});else i[e]=l}else i[e]=i[e]instanceof Array?[]:""};for(var l in i){var s;a(l)}}},onBtnClick:function(e){this[e.method](e.data)},refresh:function(){this.search()},saveBefore:function(e){return!0},saveAfter:function(e,t){return!0},save:function(){var e=this;this.$refs.form.validate(function(t){t&&e.saveExecute()})},saveExecute:function(){var e=this;return y()(g.a.mark(function t(){var n,o,i,r,a,l,s;return g.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:for(i in n={},o=function(t){if(e.uploadfiled&&e.uploadfiled.length>0&&-1!=e.uploadfiled.indexOf(t)&&e._editFormFields[t]instanceof Array){var o=e._editFormFields[t].map(function(e){return e.path});n[t]=o.join(",")}else void 0===e._editFormFields[t]&&e.dicKeys.some(function(e){return e.fileds&&-1!=e.fileds.indexOf(t)})?n[t]=null:n[t]=e._editFormFields[t]},e._editFormFields)o(i);for(i in r=function(t){n[t]instanceof Array&&(e.dicKeys.some(function(e){return"cascader"==e.type&&e.fileds&&-1!=e.fileds.indexOf(t)})&&n[t].length?n[t]=n[t][n[t].length-1]:n[t]=n[t].join(","))},n)r(i);if(a={mainData:n,detailData:null,delKeys:null},e.hasDetail&&(a.detailData=e.$refs.detail.rowData),e.detailOptions.delKeys.length>0&&(a.delKeys=e.detailOptions.delKeys),!(l=e.currentAction==e.const.ADD)){t.next=19;break}if(t.t0=!e.addBefore(a),t.t0){t.next=15;break}return t.next=14,e.addBeforeAsync(a);case 14:t.t0=!t.sent;case 15:if(!t.t0){t.next=17;break}return t.abrupt("return");case 17:t.next=26;break;case 19:if(t.t1=!e.updateBefore(a),t.t1){t.next=24;break}return t.next=23,e.updateBeforeAsync(a);case 23:t.t1=!t.sent;case 24:if(!t.t1){t.next=26;break}return t.abrupt("return");case 26:s=e.getUrl(e.currentAction),e.http.post(s,a,!0).then(function(t){if(l){if(!e.addAfter(t))return;if(e.continueAdd&&t.status)return e.$success(t.message),e.currentAction=e.const.ADD,e.currentRow={},e.resetAdd(),void e.refresh()}else if(!e.updateAfter(t))return;if(!t.status)return e.$error(t.message);if(e.$success(t.message),e.boxOptions.saveClose)return e.boxModel=!1,void e.$refs.table.load(null,l);var n,o=void 0;(o="string"==typeof t.data&&""!=t.data?JSON.parse(t.data):t.data,e.currentAction==e.const.ADD&&(e._editFormFields[e.table.key]="",e.currentAction=e.const.EDIT,e.currentRow=o.data),e.resetEditForm(o.data),e.hasDetail)&&(e.detailOptions.delKeys=[],o.list&&(n=e.$refs.detail.rowData).push.apply(n,x()(o.list)));e.$refs.table.load(null,l)});case 28:case"end":return t.stop()}},t,e)}))()},del:function(){var e=this,t=this.$refs.table.getSelected();if(0==t.length)return this.$error("请选择要删除的行!");var n=t.map(function(t){return t[e.table.key]});if(!n||0==n.length)return this.$error("没有获取要删除的行数据!");if(this.delBefore(n,t)){var o=!1;this.$Modal.confirm({title:"删除警告!",content:'

确认要删除选择的数据吗?

',onOk:function(){if(!o){o=!0;var t=e.getUrl(e.const.DEL);e.http.post(t,n,"正在删除数据....").then(function(t){if(!t.status)return e.$error(t.message);e.$success(t.message),e.delAfter(t)&&e.refresh()})}}})}},modelOpenBeforeAsync:function(e){var t=this;return y()(g.a.mark(function e(){return g.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",!0);case 1:case"end":return e.stop()}},e,t)}))()},initBox:function(){var e=this;return y()(g.a.mark(function t(){return g.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.modelOpenBeforeAsync(e.currentRow);case 2:if(t.sent){t.next=4;break}return t.abrupt("return",!1);case 4:return e.modelOpenBefore(e.currentRow),e.boxInit||(e.boxInit=!0,e.boxModel=!0),t.abrupt("return",!0);case 7:case"end":return t.stop()}},t,e)}))()},setEditForm:function(e){var t=this;this.$refs.table.remoteColumns.forEach(function(e){t.editFormOptions.forEach(function(t){t.forEach(function(t){t.field==e.field&&(t.data.data=i()([],t.data,e.bind.data))})})}),this._editFormFields,this._editFormFields[this.table.key]=e[this.table.key],this.resetEditForm(e),this.currentAction=this.const.EDIT,this.boxModel=!0},linkData:function(e,t){var n=this;return y()(g.a.mark(function t(){return g.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return n.currentAction=n.const.EDIT,n.currentRow=e,t.next=4,n.initBox();case 4:if(t.sent){t.next=6;break}return t.abrupt("return");case 6:n.resetDetailTable(e),n.setEditForm(e),n.setContinueAdd(!1),n.getRemoteFormDefaultKeyValue(),n.modelOpenProcess(e);case 11:case"end":return t.stop()}},t,n)}))()},setContinueAdd:function(e){if(this.continueAdd){var t=this.boxButtons.find(function(e){return"save"==e.value});t&&(t.name=e?this.continueAddName:"保 存")}},resetAdd:function(){this.hasDetail&&this.$refs.detail&&this.$refs.detail.reset();var e={};this.editFormOptions.forEach(function(t){t.forEach(function(t){"switch"==t.type&&(e[t.field]=1)})}),this.resetEditForm(e)},add:function(){var e=this;return y()(g.a.mark(function t(){return g.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return e.currentAction=e.const.ADD,e.currentRow={},t.next=4,e.initBox();case 4:if(t.sent){t.next=6;break}return t.abrupt("return");case 6:e.resetAdd(),e.setContinueAdd(!0),e.boxModel=!0,e.modelOpenProcess();case 10:case"end":return t.stop()}},t,e)}))()},edit:function(){var e=this;return y()(g.a.mark(function t(){var n;return g.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(e.currentAction=e.const.EDIT,0!=(n=e.$refs.table.getSelected()).length){t.next=4;break}return t.abrupt("return",e.$error("请选择要编辑的行!"));case 4:return e.currentRow=n[0],t.next=7,e.initBox();case 7:if(t.sent){t.next=9;break}return t.abrupt("return");case 9:e.setContinueAdd(!1),e.resetDetailTable(),e.setEditForm(n[0]),e.getRemoteFormDefaultKeyValue(),e.modelOpenProcess(n[0]);case 14:case"end":return t.stop()}},t,e)}))()},getRemoteFormDefaultKeyValue:function(){var e=this;this.currentAction==this.const.EDIT&&0!=this.remoteKeys.length&&this.editFormOptions.forEach(function(t,n){t.forEach(function(t,o){if(t.remote){var i=e.columns.find(function(e){return e.bind&&e.bind.key==t.dataKey});if(!i)return;var r=e.currentRow[t.field],a=i.bind.data.find(function(e){return e.key==r});t.data=[{key:r,value:a?a.value:r}],e.editFormOptions[n].splice(o,1,t)}})})},modelOpenProcess:function(e){var t=this;this.$nextTick(function(){t.modelOpenAfter(e)})},import:function(){this.upload.excel=!0,this.$refs.upload_excel&&this.$refs.upload_excel.reset()},download:function(e,t){var n=new XMLHttpRequest;n.open("GET",e,!0),n.setRequestHeader("Content-type","application/json"),n.setRequestHeader("Authorization",this.$store.getters.getToken());var o=this.$refs.export;n.responseType="blob",n.onload=function(e){if(200==n.status){var i=n.response;o.download=t;var r=new Blob([i]);o.href=URL.createObjectURL(r),o.click()}else this.$error("下载文件出错了..")},n.send()},export:function(){var e=this,t=this.getUrl(this.const.EXPORT),n=this.getSearchParameters(),o={order:this.pagination.order,wheres:n.wheres||[]};if(this.exportBefore(o)){o.wheres&&"object"==m()(o.wheres)&&(o.wheres=p()(o.wheres));var i=this.http;i.post(t,o,"正在导出数据....").then(function(t){if(!t.status)return e.$error(t.message);var n=e.getUrl(e.const.DOWNLOAD);n="/"==n[0]?n.substring(1):n,e.download(i.ipAddress+n+"?path="+t.data,e.table.cnName+".xlsx")})}},getSelectRows:function(){return this.$refs.table.getSelected()},getDetailSelectRows:function(){return this.$refs.detail?this.$refs.detail.getSelected():[]},audit:function(){var e=this.$refs.table.getSelected();return 0==e.length?this.$error("请选择要审核的行!"):e.every(function(e){return e.AuditStatus>0})?this.$error("只能选择审核中的数据!"):(this.auditParam.rows=e.length,void(this.auditParam.model=!0))},saveAudit:function(){var e=this,t=this.$refs.table.getSelected();if(-1==this.auditParam.status)return this.$error("请选择审核结果!");if(t.length!=this.auditParam.rows)return this.$error("所选数据已发生变化,请重新选择审数据!");var n=t.map(function(t){return t[e.table.key]});if(this.auditBefore(n,t)){var o=this.getUrl(this.const.AUDIT)+"?auditReason="+this.auditParam.reason+"&auditStatus="+this.auditParam.status;this.http.post(o,n,"审核中....").then(function(n){if(e.auditAfter(n,t)){if(!n.status)return e.$error(n.message);e.auditParam.rows=0,e.auditParam.status=-1,e.auditParam.reason="",e.auditParam.model=!1,e.$success(n.message),e.refresh()}})}},openViewColumns:function(){var e,t=this;0==this.viewColumns&&((e=this.viewColumns).push.apply(e,[{title:"名称",key:"title"},{title:"字段",key:"field"},{title:"类型",key:"type"},{title:"是否显示",key:"hidden"},{title:"绑定数据源",key:"bind"}]),this.columns.forEach(function(e){t.viewData.push({title:e.title,field:e.field,type:e.type,hidden:e.hidden?"否":"是",bind:e.bind?e.bind.dicNo:"--",cellClassName:{title:"table-info-cell-title"}})}));this.viewModel=!0},viewModelCancel:function(){this.viewModel=!1},initFormOptions:function(e,t,n,o){var r=this;e.forEach(function(e){e.forEach(function(e){if("img"!=e.type&&"excel"!=e.type&&"file"!=e.type&&"img"!=e.columnType||(e.url=r.http.ipAddress+"api"+r.table.url+"Upload",r.uploadfiled.push(e.field)),!e.dataKey)return!0;if(e.remote)return r.remoteKeys.push(e.dataKey),e.data=[],!0;if("checkbox"!=e.type||n[e.field]instanceof Array||(n[e.field]=[]),-1==t.indexOf(e.dataKey)){t.push(e.dataKey);var a={dicNo:e.dataKey,data:[],fileds:[e.field],orginData:[]};"cascader"==e.type&&(a.type="cascader"),o&&(a.e_type=e.type),r.dicKeys.push(a)}else"cascader"==e.type&&(e.hasOwnProperty("changeOnSelect")||(e.changeOnSelect=!0),r.dicKeys.forEach(function(t){t.dicNo==e.dataKey&&(t.type="cascader",t.fileds.push(e.field))}));i()(e,r.dicKeys.filter(function(t){return t.dicNo==e.dataKey})[0])})})},initColumns:function(e,t,n){var o=this;e&&e instanceof Array&&e.forEach(function(e){if(!e.bind||e.bind.data&&e.bind.data.length>0)return!0;var i=e.bind.key||e.bind.dicNo;if(-1!=o.remoteKeys.indexOf(i))return e.bind.remote=!0,!0;-1==o.hasKeyField.indexOf(e.field)&&o.hasKeyField.push(e.field);var r=t.filter(function(e){return e.dicNo==i});r&&0!=r.length||(t.push({dicNo:i,data:[]}),r=[t[t.length-1]],n.push(i)),"cascader"==r[0].type?e.bind={data:r[0].orginData,tyep:"select"}:e.bind=r[0],e.bind.type=e.bind.e_type||"string"})},bindOptions:function(e){var t=this;e.forEach(function(e){t.dicKeys.forEach(function(n){if(n.dicNo!=e.dicNo)return!0;var o,i,r;if("cascader"==n.type)(o=n.data).push.apply(o,x()(t.base.convertTree(JSON.parse(p()(e.data)),function(e,t,n){e.label=e.value,e.value=e.key}))),(i=n.orginData).push.apply(i,x()(e.data));else if(e.data.length>0&&!e.data[0].hasOwnProperty("key")){for(var a,l=e.data,s=new Array(l.length),u=0;u0&&"number"==typeof e.data[0].key&&e.data.forEach(function(e){e.key=e.key+""}),(c=n.data).push.apply(c,x()(e.data))}t.singleSearch&&t.singleSearch.dataKey&&t.singleSearch.dataKey==n.dicNo&&(r=t.singleSearch.data).splice.apply(r,[0,1].concat(x()(n.data)))})})},getUrl:function(e,t){return(t?"":"/")+"api"+this.table.url+e},initDicKeys:function(){var e=[];if(this.dicKeys.splice(0),this.initFormOptions(this.editFormOptions,e,this._editFormFields,!0),this.initFormOptions(this.searchFormOptions,e,this._searchFormFields,!1),this.searchFormOptions.forEach(function(e){e.forEach(function(e){"date"!=e.type&&"datetime"!=e.type||(e.range=!0)})}),this.initColumns(this.columns,this.dicKeys,e),this.detailOptions&&this.detailOptions.columns&&this.initColumns(this.detailOptions.columns,this.dicKeys,e),this.searchFormOptions.length>0&&(this.singleSearch={dataKey:this.searchFormOptions[0][0].dataKey,dicNo:this.searchFormOptions[0][0].dicNo,field:this.searchFormOptions[0][0].field,title:this.searchFormOptions[0][0].title,type:this.searchFormOptions[0][0].type,data:[]}),0!=e.length){var t=this;this.http.post("/api/Sys_Dictionary/GetVueDictionary",e).then(function(e){t.bindOptions(e)})}},setFiexdColumn:function(e,t){var n=0;if(e.forEach(function(e){!e.hidden&&e.width&&(n+=e.width)}),n>t){var o=e.find(function(e){return!e.hidden});o&&(o.fixed=!0)}},initBoxHeightWidth:function(){var e=document.documentElement.clientHeight;e=e<250?250:e;var t=document.documentElement.clientWidth;this.editFormOptions.some(function(e){return e.some(function(e){return"editor"==e.type})})?(this.editor.uploadImgUrl=this.getUrl("upload"),this.boxOptions.height=.8*e,this.boxOptions.width=.8*t):(this.boxOptions.height&&this.boxOptions.height>.8*e&&(this.boxOptions.height=.8*e),this.boxOptions.width&&this.boxOptions.width>.8*t&&(this.boxOptions.width=.8*t));var n=t-270;if(this.setFiexdColumn(this.columns,n),this.height=this.tableHeight||e-206,this.url=this.getUrl(this.const.PAGE),this.detail.columns&&this.detail.columns.length>0)this.hasDetail=!0,t*=.8,e*=.82,this.detailOptions.height||(this.detailOptions.height=e-57*this.editFormOptions.length-205,this.detailOptions.height=this.detailOptions.height<240?240:this.detailOptions.height),this.detailOptions.columns=this.detail.columns,this.detailOptions.pagination.sortName=this.detail.sortName,this.detailOptions.cnName=this.detail.cnName,this.detailOptions.key=this.detail.key,this.detailOptions.url=this.getUrl("getDetailPage"),this.setFiexdColumn(this.detail.columns,t);else{var o=1;this.editFormOptions.forEach(function(e){e.length>o&&(o=e.length)});var i=.7;t*=o/10+.3,e*=i=(i=.1*(this.editFormOptions.length||1)+.03)>.9?.9:i}this.boxOptions.height||(this.boxOptions.height=e),this.boxOptions.width||(this.boxOptions.width=t)},rowOnChange:function(e){this.rowChange(e)},rowChange:function(e){},rowOnClick:function(e){var t=e.row,n=e.column,o=e.event;this.rowClick({row:t,column:n,event:o})},rowClick:function(e){e.row,e.column,e.event},rowOnDbClick:function(e){var t=e.row,n=e.column,o=e.event;this.rowDbClick({row:t,column:n,event:o})},rowDbClick:function(e){e.row,e.column,e.event},$error:function(e){this.$Message.error({content:e,duration:5})},$success:function(e){this.$Message.success({content:e,duration:3})},setFiexdSearchForm:function(e){this.fiexdSearchForm=!0;var t=this.buttons.find(function(e){return"刷 新"==e.name});e&&(this.searchBoxShow=!0),t&&(t.name="重 置",t.onClick=function(){this.resetSearch()})},endEditBefore:function(e,t,n){return!0},filterPermission:function(e,t){var n=(this.$store.state.system.permission||[]).find(function(t){return t.url=="/"+e});return n&&n.permission.some(function(e){return e==t})},destroyed:function(){},loadTreeTableChildren:function(e,t,n){this.loadTreeChildren.call(this,e,t,n)},loadTreeChildren:function(e,t,n){return n([])}},_=C=i()(C,b,E),B={EDIT:"update",ADD:"Add",VIEW:"view",PAGE:"getPageData",AUDIT:"audit",DEL:"del",EXPORT:"Export",DOWNLOAD:"DownLoadFile",DOWNLOADTEMPLATE:"DownLoadTemplate",IMPORT:"Import",UPLOAD:"Upload"},D={components:{VolForm:c.a,VolBoxForm:function(){return n.e(86).then(n.bind(null,"R/er"))},VolTable:u.default,VolBox:function(){return n.e(76).then(n.bind(null,"mRGL"))},QuickSearch:function(){return n.e(96).then(n.bind(null,"xln9"))},Audit:function(){return n.e(97).then(n.bind(null,"uSAI"))},UploadExcel:function(){return n.e(85).then(n.bind(null,"DTwg"))}},props:{},data:function(){return{dynamicComponent:{gridHeader:s,gridBody:s,gridFooter:s,modelHeader:s,modelBody:s,modelFooter:s},rowKey:void 0,_searchFormFields:{},_editFormFields:{},fiexdSearchForm:!1,_inited:!1,doubleEdit:!1,single:!1,const:B,boxInit:!1,searchBoxShow:!1,singleSearch:{},exportHref:"",currentAction:B.ADD,currentRow:{},closable:!1,boxModel:!1,width:700,labelWidth:100,viewModel:!1,viewColumns:[],viewData:[],maxBtnLength:3,buttons:[],splitButtons:[],uploadfiled:[],boxButtons:[],dicKeys:[],hasKeyField:[],keyValueType:{_dinit:!1},url:"",hasDetail:!1,initActivated:!1,load:!0,activatedLoad:!1,summary:!1,remoteKeys:[],columnIndex:!1,ck:!0,continueAdd:!1,continueAddName:"保存后继续添加",detailOptions:{buttons:[],cnName:"",key:"",data:[],columns:[],edit:!0,single:!1,load:!0,delKeys:[],url:"",pagination:{total:0,size:100,sortName:""},height:0,doubleEdit:!0,clickEdit:!1,currentReadonly:!1,beginEdit:function(e,t,n){return!0},endEditBefore:function(e,t,n){return!0},endEditAfter:function(e,t,n){return!0},columnIndex:!1,ck:!0},auditParam:{rows:0,model:!1,status:-1,reason:"",data:[{text:"通过",status:1},{text:"拒绝",status:2}]},upload:{excel:!1,url:"",template:{url:"",fileName:""},init:!1},height:0,tableHeight:0,tableMaxHeight:0,textInline:!0,pagination:{total:0,size:30,sortName:""},boxOptions:{saveClose:!0,labelWidth:100,height:0,width:0,summary:!1},editor:{uploadImgUrl:"",upload:null}}},methods:{},activated:function(){this.onActivated&&this.onActivated(),this._inited?this.activatedLoad&&this.refresh():this._inited=!0},mounted:function(){this.mounted()},destroyed:function(){this.destroyed()},created:function(){if(this._searchFormFields=a()(this.searchFormFields).length?this.searchFormFields:this.searchFormFileds,this._editFormFields=a()(this.editFormFields).length?this.editFormFields:this.editFormFileds,this,this,this.extend.components)for(var e in this.extend.components)this.dynamicComponent[e]=this.extend.components[e];if(this.extend.methods)for(var t in this.extend.methods)this[t]=this.extend.methods[t];this.pagination.sortName=this.table.sortName||this.table.key,this.initBoxButtons(),this.onInit(),this.initBoxHeightWidth(),this.initDicKeys(),this.onInited(),this.splitButtons=this.getButtons()},beforeUpdate:function(){},updated:function(){}};D.props=i()(D.props,d),D.methods=i()(D.methods,_,d.extend.methods);var k=D,I={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"layout-container"},[n("a",{ref:"export",attrs:{href:e.exportHref}}),e._v(" "),n("vol-box",{attrs:{model:e.viewModel,height:450,width:e.width,lazy:!0,title:e.table.cnName+"数据结构"},on:{"update:model":function(t){e.viewModel=t}}},[n("div",{attrs:{slot:"content"},slot:"content"},[n("Table",{attrs:{columns:e.viewColumns,data:e.viewData}})],1)]),e._v(" "),n("vol-box",{attrs:{model:e.auditParam.model,height:300,width:550,lazy:!0,title:e.table.cnName+"--审核"},on:{"update:model":function(t){e.$set(e.auditParam,"model",t)}}},[n("div",{attrs:{slot:"content"},slot:"content"},[n("Audit",{attrs:{auditParam:e.auditParam}})],1),e._v(" "),n("div",{attrs:{slot:"footer"},slot:"footer"},[n("Button",{attrs:{type:"success",icon:"md-checkmark-circle"},on:{click:e.saveAudit}},[e._v("审核")])],1)]),e._v(" "),e.upload.url?n("vol-box",{attrs:{model:e.upload.excel,height:285,width:600,lazy:!0,title:e.table.cnName+"--导入"},on:{"update:model":function(t){e.$set(e.upload,"excel",t)}}},[n("UploadExcel",{ref:"upload_excel",attrs:{importExcelBefore:e.importExcelBefore,url:e.upload.url,template:e.upload.template},on:{importExcelAfter:e.importAfter}})],1):e._e(),e._v(" "),n(e.dynamicComponent.gridHeader,{ref:"gridHeader",tag:"component",on:{parentCall:e.parentCall}}),e._v(" "),n("div",{staticClass:"view-container"},[n("div",{staticClass:"grid-search"},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.searchBoxShow,expression:"searchBoxShow"}],class:[e.fiexdSearchForm?"fiexd-search-box":"search-box"]},[n("vol-form",{ref:"searchForm",staticStyle:{padding:"0 15px"},attrs:{"label-width":e.labelWidth,formRules:e.searchFormOptions,formFields:e._searchFormFields}},[e.fiexdSearchForm?e._e():n("div",{staticClass:"form-closex",attrs:{slot:"footer"},slot:"footer"},[n("Button",{attrs:{size:"small",type:"info",ghost:""},on:{click:e.search}},[n("Icon",{attrs:{type:"md-search"}}),e._v("查询\n ")],1),e._v(" "),n("Button",{attrs:{size:"small",type:"success",ghost:""},on:{click:e.resetSearch}},[n("Icon",{attrs:{type:"md-refresh"}}),e._v("重置\n ")],1),e._v(" "),n("Button",{attrs:{size:"small",type:"warning",ghost:""},on:{click:function(t){e.searchBoxShow=!e.searchBoxShow}}},[n("Icon",{attrs:{type:"md-power"}}),e._v("关闭\n ")],1)],1)]),e._v(" "),e.fiexdSearchForm?n("div",{staticClass:"fs-line"}):e._e()],1),e._v(" "),n("div",{staticClass:"view-header"},[n("div",{staticClass:"desc-text"},[n("Icon",{attrs:{type:"md-apps"}}),e._v(" "),n("span",[e._v(e._s(e.table.cnName))])],1),e._v(" "),n("div",{staticClass:"notice"},[n("a",{staticClass:"text",attrs:{title:e.extend.text}},[e._v(e._s(e.extend.text))])]),e._v(" "),n("div",{staticClass:"search-line"},[e.singleSearch?n("QuickSearch",{attrs:{singleSearch:e.singleSearch,searchFormFields:e._searchFormFields,tiggerPress:e.quickSearchKeyPress}}):e._e()],1),e._v(" "),n("div",{staticClass:"btn-group"},[e._l(e.splitButtons,function(t,o){return n("Button",{directives:[{name:"show",rawName:"v-show",value:!t.hidden,expression:"!btn.hidden"}],key:o,class:t.class,attrs:{type:t.type},on:{click:function(n){e.onClick(t.onClick)}}},[n("Icon",{attrs:{type:t.icon}}),e._v("\n "+e._s(t.name)+"\n ")],1)}),e._v(" "),e.buttons.length>e.maxBtnLength?n("Dropdown",{attrs:{trigger:"click"},on:{"on-click":e.changeDropdown}},[n("Button",{attrs:{type:"info",ghost:""}},[e._v("\n 更多\n "),n("Icon",{attrs:{type:"ios-arrow-down"}})],1),e._v(" "),n("DropdownMenu",{attrs:{slot:"list"},slot:"list"},e._l(e.buttons.slice(e.maxBtnLength,e.buttons.length),function(t,o){return n("DropdownItem",{directives:[{name:"show",rawName:"v-show",value:!t.hidden,expression:"!item.hidden"}],key:o,attrs:{name:t.name}},[n("Icon",{attrs:{type:t.icon}}),e._v("\n "+e._s(t.name)+"\n ")],1)}),1)],1):e._e()],2)]),e._v(" "),e.boxInit?n("vol-box",{attrs:{model:e.boxModel,title:e.table.cnName+e.getCurrentAction(),width:e.boxOptions.width,height:e.boxOptions.height,padding:0,"on-model-close":e.onModelClose},on:{"update:model":function(t){e.boxModel=t}}},[n("div",{staticClass:"iview-com",attrs:{slot:"content"},slot:"content"},[n(e.dynamicComponent.modelHeader,{ref:"modelHeader",tag:"component",on:{parentCall:e.parentCall}}),e._v(" "),n("div",{staticClass:"item form-item"},[n("div",{staticClass:"form-text v-text"},[n("span",{staticClass:"title"},[n("Icon",{attrs:{type:"ios-create-outline"}}),e._v("\n "+e._s(e.table.cnName)+"\n ")],1)]),e._v(" "),n("vol-form",{ref:"form",attrs:{editor:e.editor,"label-width":e.boxOptions.labelWidth,formRules:e.editFormOptions,formFields:e._editFormFields}})],1),e._v(" "),n(e.dynamicComponent.modelBody,{ref:"modelBody",tag:"component",on:{parentCall:e.parentCall}}),e._v(" "),e.detail.columns&&e.detail.columns.length>0?n("div",{staticClass:"grid-detail table-item item"},[n("div",{staticClass:"toolbar"},[n("div",{staticClass:"title form-text"},[n("span",[n("Icon",{attrs:{type:"md-list-box"}}),e._v("\n "+e._s(e.detail.cnName)+"\n ")],1)]),e._v(" "),n("div",{staticClass:"btns"},e._l(e.detailOptions.buttons,function(t,o){return n("Button",{directives:[{name:"show",rawName:"v-show",value:!t.hasOwnProperty("hidden")||!t.hidden,expression:"!btn.hasOwnProperty('hidden') || !btn.hidden"}],key:o,attrs:{type:"dashed",ghost:"",icon:t.icon,size:"small"},on:{click:function(n){e.onClick(t.onClick)}}},[e._v(e._s(t.name))])}),1)]),e._v(" "),n("vol-table",{ref:"detail",attrs:{url:e.detailOptions.url,index:e.detailOptions.edit,tableData:e.detailOptions.data,columns:e.detailOptions.columns,pagination:e.detailOptions.pagination,height:e.detailOptions.height,single:e.detailOptions.single,"pagination-hide":!1,defaultLoadPage:e.detailOptions.load,doubleEdit:e.detailOptions.doubleEdit,beginEdit:e.detailOptions.beginEdit,endEditBefore:e.detailOptions.endEditBefore,endEditAfter:e.detailOptions.endEditAfter,summary:e.detailOptions.summary,"click-edit":e.detailOptions.clickEdit,"column-index":e.detailOptions.columnIndex,ck:e.detailOptions.ck},on:{loadBefore:e.loadInternalDetailTableBefore,loadAfter:e.loadDetailTableAfter,rowChange:e.detailRowOnChange,rowClick:e.detailRowOnClick}})],1):e._e(),e._v(" "),n(e.dynamicComponent.modelFooter,{ref:"modelFooter",tag:"component",on:{parentCall:e.parentCall}})],1),e._v(" "),n("div",{attrs:{slot:"footer"},slot:"footer"},[e._l(e.boxButtons,function(t,o){return n("Button",{directives:[{name:"show",rawName:"v-show",value:!t.hasOwnProperty("hidden")||!t.hidden,expression:"!btn.hasOwnProperty('hidden') || !btn.hidden"}],key:o,attrs:{type:t.type,disabled:t.hasOwnProperty("disabled")&&!!t.disabled},on:{click:function(n){e.onClick(t.onClick)}}},[n("Icon",{attrs:{type:t.icon}}),e._v("\n "+e._s(t.name)+"\n ")],1)}),e._v(" "),n("Button",{attrs:{type:"info"},on:{click:function(){e.onModelClose(!1)}}},[n("Icon",{attrs:{type:"md-close"}}),e._v("关闭\n ")],1)],2)]):e._e()],1),e._v(" "),n("div",{staticClass:"grid-body"},[n(e.dynamicComponent.gridBody,{ref:"gridBody",tag:"component",on:{parentCall:e.parentCall}})],1),e._v(" "),n("div",{staticClass:"grid-container"},[n("vol-table",{ref:"table",attrs:{single:e.single,rowKey:e.rowKey,loadTreeChildren:e.loadTreeTableChildren,tableData:[],linkView:e.linkData,columns:e.columns,pagination:e.pagination,height:e.height,"max-height":e.tableMaxHeight,"pagination-hide":!1,url:e.url,defaultLoadPage:e.load,summary:e.summary,"double-edit":e.doubleEdit,index:e.doubleEdit,endEditBefore:e.endEditBefore,"click-edit":!0,"column-index":e.columnIndex,"text-inline":e.textInline,ck:e.ck},on:{loadBefore:e.loadTableBefore,loadAfter:e.loadTableAfter,rowChange:e.rowOnChange,rowClick:e.rowOnClick,"row-dbclick":e.rowOnDbClick}})],1)]),e._v(" "),n(e.dynamicComponent.gridFooter,{ref:"gridFooter",tag:"component",on:{parentCall:e.parentCall}})],1)},staticRenderFns:[]};var S=n("VU/8")(k,I,!1,function(e){n("XLNM"),n("KtH7"),n("C4IM")},"data-v-3ab0f987",null);t.a=S.exports},"3P1r":function(e,t){},"89jp":function(e,t){},"9bBU":function(e,t,n){n("mClu");var o=n("FeBl").Object;e.exports=function(e,t,n){return o.defineProperty(e,t,n)}},"9u3v":function(e,t){},C4IM:function(e,t){},C4MV:function(e,t,n){e.exports={default:n("9bBU"),__esModule:!0}},Cdx3:function(e,t,n){var o=n("sB3e"),i=n("lktj");n("uqUo")("keys",function(){return function(e){return i(o(e))}})},KtH7:function(e,t){},OuMS:function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAAsTAAALEwEAmpwYAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAblklEQVR42mJkmPGTYRADNiBWAGJNIFaCsmWAWAKIRYBYEIh5gJgDqv4HEH8B4vdA/AaIXwDxEyB+AMT3gPg6lP1rsHoYIIBYBpl7uIFYB4gtgNgYiA2BWBWI2YnUzwnFokCshkUelPpuA/F5ID4LxCeA+AoQfx0sAQAQQIyDIIfwQyPAEYidgFgXKcXTGoBy1GUg3gfE+6ER9HEgAwMggAYyQkAB7wfE3tCcwDHACeMHNOdsBeJN0IiiOwAIIHpHCBM0FwQDcSgQCw/SovwtEK8G4rXQ3POPXhYDBBA9I8QNiKOAOBCI+RiGBvgExOuBeBkQ76KHhQABRI8IMQPieCCOhtYXQxGA6pWlQLwQiE/R0iKAAKJlhMgCcRgQ5wKxPMPwAA+BeDIQrwLix7SwACCAaBUhoOIpH1pfcDAML/ADWq9MpEUxBhBATFQ2D9T+LwTixUDsNQwjgwHqJy+oHwuhfqYaAAgganYM9YE4D4jDoR284Q7EgLgZ2pGdBMQXqWEoQABRK4e4AnE/EMeOkMhAHlmIhfrdlRoGAgQQNSIkAlqeOgAxK8PIA6xQv0+EhgVFACCAKC2yEoG4A5p9RzJgZIAMgIIiBTSWNp9cgwACiJIISQHiniHct6BVvQIqvpiBeA45BgAEELlFVhoQd49GBlbADw2bNHI0AwQQORESA8StQCwwGvY4gQA0jGJI1QgQQKRGCGhkto5h8A4KDiYgDA0rb1I0AQQQKRECmrMoZ4DM3DGOhjdRFb0SNMwsiNUEEEDERogUtNNnDq2wRgFxgBkaZnnQMCQIAAKI2AhJZYAMm7ONhjHJgA0adqnEKAYIIGIiJIQBMmbDMRq2ZAMOaBiGEFIIEECEIkQdiDMYICs7RgFlgAcalur4FAEEEKEIAU0s2YzWG1SrT2ygYYoTAAQQvgjxgHZu2EfDkmqAHRqmHrgUAAQQrghhgXZqRnvitOnJx0DDGAMABBATnoo8BJemUUARYEEKXwwAEEDYIgQ0xh8+Ghk0jxSsE3kAAYQtQgKgZdxoRU7bCt4DGtYoACCAcEUI62iY0RywYosQgABCjxBXqKLR3EGfXBLAgDb1CxBA6BHiSWTvfRRQBzBBwxwOAAIIOfClweXafwZG8EpWXJhS8B+P2f+g8uQAbOb8p6K7yfUPfsAIrUukYQIAAYTcknIAYlVmRgZGXnbcdn/6AaQZGcgbgAcawAW0kR1aIP77Dw1/RkQZ+eUXA8Pv/ySYDw14TmCJzMkCMfM3MCC+/QYmP6AZIL+AxEDmgmiq5v9/EL9ws0HNRgvpH38ZGL7/xmsnSJkqNOxBS1UZAAIIOULsGX4yMIVqMTG0mzMxsDExgDMLxMfAWAIyWYB4ya2/DPUn/jF8+UeC58CuY2CQEWBgmOPEwmAiwsjw8y/IP//BHoGYzcjAw8bIsOjWH4aWk/8YXnwlomkBNIMB6OEwTUaGJjNmBlFORmAg/AdGBiPDs2//we5V4GVkYAG6c/GtfwyNJ/8yfP4J7S//pzBXAO3WEAK615mZQYWfkeH7H4g//4P98w8YNIwMD74wMiTv+8Nw7fV/fOPkTOCwh0YIQADBIkQSKsiowMvAIMUNihDkZIpIrkX6zAwcQF1Vx/8xfPxDQkoGBpynLBODkQgTgzDHP6hGJiQfQgzK1mJmOPrsP8PyG/+RhbFHBhDH6zIydFqyMIhzorpVhR85NfxnKNZnYhAERkTBISpECtBeJWA4TbZjYjAVgxQXguzo9TUD0J/AcDJmYojZ+RefXxihYQ+Kg+cAAQQLEdAKdfBM4N//CHX/YabAymMoP0ubmcFVDpjy/hPhKZB1wADgF/jPEKkOTMWggej/jBiK/iNFTIASE4M0NyQScUYGMDFkGzAxTLBBjoz/SG5FTs4QO2LUmBmKDZngKZwsAHQTyG2zgDnDRZoRpbL6/x8SYiAaxGAFWmUvycggxw9xL54QUoLGAQNAAMEixBQWf39RKlZGBMWImlNU+YmcrfoDMa/dnIXBUhxmHmYlBOZBI8pDlpFBX5wBS+BC+cBASdRhZGg0ZWYQYGNENYURloaAkQwy7z8jhA2EoGLYBZhL1YWAar5B3UZKxADVS3AxMHTZMDM4SzNBEwDEHliCAtvGyAjzEAMbMLNwMhNVqIPigAEggGARYgQLE2ZGRrSUhV2/Eh8TOAXgVQZNyc1WTAyxwNzBwfwfb7kMk+UDGuwE9DA3B1qAgZz2nYHBDhhhxYbMwCKBEa8PGZHyH4ytJ8zAEKXOxCAuyMBgIAYsnnmgOfEP4WJKAFhUlwCLoCgVJqiTmeBFIqyeBfsDmlNA4C2w7nz+nWDRzgiNAwaAAALVIaCtxfqwyHn38x/cInjU/P8PTdgIU03FmBg4gHXBx2//cVd8QMeUWjAx5OoxM/CwQnMAI+4YYWRElPn3P/1n+PoHKclAiz4+YNmdqsvEoC3IhF79YJrICA0oWG0LBLzAyC4DFlvZuv+BjQgGhjc//jOsvfOXYcIlBob7b/9DGhLMmK0pUKmYpMcErItYUOo9sJf+MzIgl+4w5377w8iwFNgI+vSVgdAkBhM0DgQBAgjE0GCATcADTbn36R+w2Ui4ttMXZmQwFAW6HVuxAm1VOSozMuQAPcHPxkiwroFVK6+//2PIOfyHYf61/6g9pf+QVOwtz8jgLMOE6HsQbFT8R5jP+B9cdIEaJaDcxQ5sF0tzMTLk6bEwnAxhZqiygIiBcwwjIjJA8eMD9EuXBQvUREhRxYhsBywxMUJyCqguPvL8L0P7uX/EDtOC4kADIICYoO1geOPg8jtGhsdfUMOPEWwJps8NhZkY2BmxRMhfSJM1DxgZcjxMBAtABmg6vv7+P0PYjr8MU88Bm67/kFIqNHeIAeutaGBxI8kJSfGQHIAnGkCBBi/fwVkd0nwA6f3/HxqwkMwjysHE0GjGyjDDEZjzWRkQkQJ0hzw3I0MpsIhkBqerf0iegepHquxgofQaWEwVHv3H8O8XSQNRqgABBAotReQIefOZgeEUsN38l4gmISsztH7G0mFiATbB+NgQ9RE4IOAB+B+Llv8MjWf+Mhx4Am2zM6FFMFA4Qo0J3GoBBwHWRIIcMP8ZEFEBq6CYwMXxf2hxzIiWc1iAdIACE0M6sC8G3icFBd+B9j/6gkg4sKIKkZqY4BEOsujHX0aGzQ+A/Y+X/0mdb1UECCCQSfLofrr2DtRhIxwjoJ4o1tINaOofYAp79wupkEfywH/kFAoFOx//Zzj97D/mgA5IH9AcJWDLKBDYHOZhZULqXSClzv/IfETxAQpsSMsHkqNA40KQxMEIr18Ywd04CJ+bFdhM5WOEFDP/ILXs8+//GQqBxSioUwypvP9BAh+UAxkRDQYY49OvfwwLb/5H78IRA+QBAoiFAcsCLnCv8z9hk0BNTmb0IosRUtYLAJuHkrD+AazCgxYZIM//Y4QUOyAPgXLjght/Ge59ZsAsb6FjQp6KwE4YrNn8H5pC/yNVrIz/oIHKxHD+zT+GTff/MQhzAnvxykwMYpxMSANcjHgDCRTfYqANBaDK8R90TAeIH39kYKg5/I9BhoeRwUEKUTL8R+pFgVigBHrp7T+GEy//k7OKTQoggEDeF0cXff7tPxHjYv+BTVMGhonALPnlO1oAAiOkwoCZwUAYubvHiBJpTEjJBzRccuAhjtwBLDo0xP8zhKsAUy+kEEd4nxGp0wpqkHz+x9Bz/j/Dkhv/GD5/g6g5BMx1U+wYGcQ4mKCdNwas9SEyUBdgYlDkZ2S4/w6aQKBjYH+BiefHn//QSuE/ckqDsIDM9z//M0y+9JfhLyhMuEkeDRAHCCCQK4VQhIAOOAj0xNOv/wmaZS7GyKApxAjrA8ED0E+DkSFekxmc/f9BRyL/wzqEjEi9AiD1+Os/hrlX/zO8+o5l7ApadwQoMzOYiUFjihFWMSMGJkH4ErAxErP7H8P0M8DIAOVwYA4FpdDVwKKj5uRfYD3wH1404ffZfwZJYECag3LjX9SRHR0JRgZHGWakRgOs6GSEmgss7oENk+2PyR6aEQIIIJAv+dGnTV5/YmA4+pxQxQ4JCWVgSoLnTGBZz8n1n6HKmBnYo4X0kpnAJQSwOPmPKOFhbJCPm8/8YTj+4j9mUQWtOxSBucxTHtoc/Q/ry0DqBob/kGLoF7CcmHHlL8Pxx/8h+5dgCZgZkrLnXf3H0Hz2H1JnnhGvvwSBHgIlNOThdTGgWCSwQ8jOhFa5g2PlH9g9n4DuXXr7L8PvrwzkrkjgBwggJmhawmisHHv1FzKMQqDYMhJhBA+pw4Y0IoFFiwofI2oPHKmIQK5QpwMDat1NoH+xjRxDA8JVjolBVwiRO8CR+h+pyAKacxQYofse/Uce10OZKP0LzDFLrv5lWHfvL47xGLQoAdXpTCgtBwZJPlD/hxGpNfUP0uyG90f+M3wEVuZ7n/xHFHOkAy6AAGLCOsgNNHDD/f/A4uQ/YkwRnr7/IbVcGRn0RZgYONkgnSl2YFaP02CBDmn8h/eUUQcPIeAcsOKdcpGB4e1PLC6A5g5env8MXvJMwBTLiGidQVtMjP8RddCx5/8Ybn6A9rKxjX0BU/djYINh9d3/4LkSgskMqOfPX0SiAI1FucqCOpFMGKPfjNCK7+9/JobLbxkY7rxjoGRJOitAADFhHVMFRsjL96Bi6x/Dn38YvS2IK6F9CiYmSACBAtATmJrVBBiRunqMiEYNIywlQciJF/+BO4I4szbQVYbAyFYVQBoiAWUjRiaUQD8LjNiN9/5DynsWPKUrENwGNuevviPcFgV5GT5JBqQ5gBEiw8uIZh4T3H8g8BUY00df/IWcVUf+JNhvgABigo57YgXX30MjhBESCZAgRS0TbgGbg99/QCqxBGBlLsaJaAf/R+rLMCI1oZYAW1V7HkBaPFgdDy3CrKSAdRTff9RuBbQShTQOIBNPp59Dm5j/CfWb/jN8+f2fiBwCHSmGJgTQTCRonggfeAIsTZbdxpFLiQffAAIIFBwfcaWqEy8ZGH7+Rx1vgmQSRAELalV8AUaIOLC40haC9ktgeQFL8/IXsMJYcus/w7MfeFI0sMznAZpnJgqtzNF64jBjT70Cpson/xEVOAEAGn7nZCU8QQ7K8UxI/SshbkYGYxHcyR5YdYDD6uEbBkoXUH0ECCCQLe9wjT/eA7a2Pv2EtbWZwK0j9CEQac7/YLX+wA6YCAcTjnF1xPjPnifAouo1ntlARkhzVwrY1BDjQi5e/mOU36df/We4/O4folWFL5yBblYSBLaeBAh1eBnBOffvf4QbQRNSMnjOpwD1TW6A3PGPgdI5+3cAAQRKoy+xSrFAOoiPv/wHOgYyRABrUSB6p0wMUaqMDIbCjAxaQCzAhjM04OEIGlJ49J1Aiv4PGQXgZGFCi4r/KBF0B5hgfv5mJNzEBEYwB7BPZCHBBGwRMjLgTw2ghsZ/hotv/8OLKx0h/Ks6QDnk4Zf/1Nh5+RIggEA+foaryPoDbAGtA1aYoAUJjGiJFdZqEgG2qGylmBmEUYZ9kcapYP0GINj08A+kr0Bo9QdQHjRkz4UnoEFt/mdf/xNOldChHFVgf8lakpmB8ADTf4Z7H/8zHHsGyXmgnOojjz+kQeFz6wMDNVa0PAMIIJARD3FKAwNk/vW/DA8+/4P2RiHFz3+snkKkIlh0/P+POgy46s5/hiffiXM4MzOoHP8P737AKvP/yGOHyOMoeObAWYDleqAqE4OlGCOiJvqP2pyHDVJ+A0beIWAj4f0nRnB9IA8s4izEUQfsYIOjMH+9/gEatvmPvej8z0DKerOHAAEECpr7uEOFgeE9sP0+/do/YDkJS/Cg3vc/lCYstgqIEdZhggbqFmDH7chjROuVYO32ixE844awBjoyywib5mVkkAD1C5gZcC9I+wuRS9RiYijRZ4J2Kv9D6kLw6C9mfnnxDdKvgUlwA4s4Dma0+X/40D8jsBXKyHD93V+GT9+wFJ1/IF7lY4e65ScSxj5lfB8ggEBG3MYbMkAVm4CdxEpDSHkKKX4JlDf/EXMNsIjbBiyuQMPYRGVroD13gR29V6DpYWHcxQU/G1IGxNZ0Bno6SpOJodOKmYGXFXlAEjGaBRtsZASvEWNk2PP0L8Oeh6AVcIzgBQpKvGhRhlb9fAX2C46DIvAHNKFBcwOIaSj1n6HdkgXYdGdiOPQMNAL8D2wmyJ7DwFx4CTZkhAiT2wABBOLegNYj2PdRAz3yEFjBrb37lyFFi5mBgwnaW8aZO2CT/QiX3/34j+HQU0jlR7AC/g9R8wpYBIA8AJquZWbErpCf7T9Y7u8/pFFZRsSihSgtRoY+G2bw2BRiqP4/tD+DqBD//4e4+T7QzhXAfg0DqKHAAWzuAv1uAi2u/iP7Da0prS0EbBECsQwfaPCRgUGSi5GBF+gefyVGBnHokhMldWaGBHUm+Lzz2x+MDF3n/zF0X/gLGZJjAsfBDYAAAnkDdE466DQ0CZyFCVB0NrAuCQJaAFpEhygjGHGG6n9GRnir6DAwJYACmGjADMnie4DFXLDyfwZtQUYsrS1QZcvEsAfYSNhxC2no/g9k+WihGWhBAjN41vL/f9iqEKQWFnKbAzxAyciw4f5fhv0PoAOU/yBLUdmYGXBnQ6C5oJZgshYbQyDQnaBGCA8rZosFdc6ECawPtIiu3YKJQYL7P0PRoX+gOuAiEL8HCCCYznN4qx1gSrkEjL+51/+BJ68Y4ctfcEQGUoUHwuBK8g8JrRCQNqCDDwOLgkOw8pwBpRYGY9C8xVwnFoYWRyYGPTFIfyFUnZFhuz8LeM0WHxuiYcEInSNg/I/a0YQF1H5gkdJ+FtqcZEZMUQuw/YeNDeD0MQt4UosRGBlIKyOQ3Qqeh2dEmliGhB8ownN1mRmSdYHZ9g8wDoA5GyCAYEF0Gm+EMEIipesCaPzpL1LQYF9ywsjIBJ+9A43E7n/4HzIEQ0qzEJR3fzIybLn7HzzxhKjW/8OWo4HtlgIWD9WGLAyHAlkZzoSxMixxZWGwlkBKMIzQsTZ4QkGdRwE56iqwjKg9/pfh7SdIQoB5SQpY9puJMmMMjsJ9jXUNGyOsvw+dMPmP1GX4D59E+Q9trYLWwWVrM/1nY2M4DcQMAAEECyLQ4cD38EYKMIC+AFtczWf+gfsAjGgFyH/ktiSSKVuAFeQrYitz9FwCLHq2Pf4LLpYQTWpoyoZ2VGF28YNaXcBUysbEiJL+EUthGSGNEUbUxAPq7afs/QOZz+dENFNB/UfQojoBdgb4kP9/QusMoPaAShAmeEMatob5PwPqTAp8fdN/PjamexwsDKdAy5MAAggm+hyIDxJsLQNTz4bb/xn2PfnL8PsfYlgdMqSCUbAAI+Ivw67H/yBLesjpNIGX4zAy9AArvwPP/yHVWkiLJPAtvGNAbp4zoiwdBw2NLLr1l8F/6x+GE0//ox4cAuoU/4eMVKBawIiIZqSR7//IxTVqWYFr4Bk8qQVLLsC65yA0DhgAAgg5mA4yENpiAo3olnN/Gd7BRh3//0cMw8JWckD7HpuARdWj9xT0W6F1ye3X/xlKDv8Fp2bEoCUTUjGA3FlD8jqid4oUEqCO3D+G0uN/GJL3/GV4/gWaM7D0cU8CI2rhzT/w8h4+h4/SwmdEmpJggNdVDFhnThjh3dAPwL7IGaB/1tz9/2/m1b8Hi3SZGEAYIICQT7YG7eLZzQBZyciIN5CAkVFmzsRQa8wKWSIKr8gQaRC0RDNkxx/w/DzeNgCxANjOVxFiZOi0Zga29pgwZ5RQynTkEuIfPDWB1letv/eXoQOYoC6DVoWwMuLPucC40BdlZFjhxsygIcCE1mKCtdYYkQZbIatOHgEj+fyb/+DOtCgwsn//BdajwIbNbWDfCtQAAG0muvvpP8P9Lwz/f/0Cdjv+g/cZPgWZABBA6EeN9zFAjghnIjiDAzQlXoOJwV2GGTzE8e03yDImBk5gsw8UGfOBLbJzL4F+okZkIM0ighJAiCoTQwGw560vzIi3tQfTCJpzB40y91/8x7Af2JQG91vYiMyhwEg0B3YIZjkyM+gJMaP1Dv8z/PwHSu2MDJ9//Qf22EGlwj+G7UD89DPSvD4jWs8c5mxmcJk6Edi6KoJJAQQQeoSAYmobUVP00LW2KJUHOpuZgfpnz0F74KI8jAxGIgwM8nzAUg2Y7DC2lEE7gD+AqfHme2CKBRZ7n75DI4KRxGITNB3A85/BUYqJQYAT2ooC5gzQ1MQTYAvwxQ/QInUGhrffgMr/MsAXV6B0Xxhx5UHwseW7YQIAAYTtMH7QRSaBDIN9a/Q/BvgyIbyBCav7WChMHNAdWxhTM8iYtNIAZBrobpJQZEGAAMKWEzaAOsGDPkKYGOi7gZuZ6iHyGxrWKAAggJhwRMgOBvI3fY0C4nLHDmwRAhBA2CIEtMxrJQPhPUWjgHzwBxrGGNf1AQQQrky/BopHI4U2kQELXwwAEEBMeDQtYRjgO/2GKfgIDVusiR0ggPBVi6AybhYDZH5rFFAH/ISG6Q5cCgACiFA7BXQr2ZHRCp5qFfkRaJjiBAABRChCbgLxDAbIhb+jgDLwBRqWN/EpAgggYlryoMqnnwFl190oIBH8gIbhGkIKAQKI2K7VbGiv8tdo2JIMfkHDbjYxigECiNgIAU3Ag24iOzlan5Bcb5yEht0zYjQABBApgw+gq607GQjNLI4CGPgPDatOaNgRBQACiNTRINDV1k0MkNuURwF+8BYaVltJ0QQQQOQMz4E6NdVA/GE0zHGCD9AwWkKqRoAAIvewZFDnBjQAPnpLG/aeeCkDmbe0AQQQJQPYIAtBd2K8Go0DOHgFDZM55BoAEECUziiALlAETfleH+EV/X9oGOQzUHCpJAgABBA1pnhWQB1ygAH3oXzDGfyG+j0fGhYUAYAAotaB+7uh2XUk3RYNArC5I6rdFg0QQNS8AQHkoAogvgKlh/v9uKAE2AFtSb2mlqEAAUTtKylADgON2VyFZmEnhuF3mRhoXGofA+Qi4l3UNhwggGh1R8guaCUXBsS5DOhncg1dANr+NxmIVwHxY1pYABBA2JYBURuAzqMFXYQVPYT7LKC+BejkadBcxilaWgQQQPSIEBhwA+IoBsiaL74hEhGgDQqgkdpltCiesAGAAKJnhMCa2aB6JZgBskBssF5yDBqHAi0YXAutL/7Ry2KAAKJ3hCADXSD2Y4Dcpmw4CCp/UGV9ngEyGLgJiC8PhCMAAmggIwQGQPUK6DZlR2ju0aVj5PyABjwoF+xngAyTD+hKG4AAGgwRggxAHUodaAQZQ3MO6Fxhal1uCfLsbWhOOAuNgCsMWBasDRQACKDBFiHoALRWXQGINRkgNwiA2DIMkB3DIgyQY9J5kHIUKMWDFhOAtgmBzuZ5AcRPgPgBA2Sy6DqUPWinogECiPH//9HJv8EEAAIMAAfV0k1eePL5AAAAAElFTkSuQmCC"},ScXB:function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAAsTAAALEwEAmpwYAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAblklEQVR42mJkmPGTYRADNiBWAGJNIFaCsmWAWAKIRYBYEIh5gJgDqv4HEH8B4vdA/AaIXwDxEyB+AMT3gPg6lP1rsHoYIIBYBpl7uIFYB4gtgNgYiA2BWBWI2YnUzwnFokCshkUelPpuA/F5ID4LxCeA+AoQfx0sAQAQQIyDIIfwQyPAEYidgFgXKcXTGoBy1GUg3gfE+6ER9HEgAwMggAYyQkAB7wfE3tCcwDHACeMHNOdsBeJN0IiiOwAIIHpHCBM0FwQDcSgQCw/SovwtEK8G4rXQ3POPXhYDBBA9I8QNiKOAOBCI+RiGBvgExOuBeBkQ76KHhQABRI8IMQPieCCOhtYXQxGA6pWlQLwQiE/R0iKAAKJlhMgCcRgQ5wKxPMPwAA+BeDIQrwLix7SwACCAaBUhoOIpH1pfcDAML/ADWq9MpEUxBhBATFQ2D9T+LwTixUDsNQwjgwHqJy+oHwuhfqYaAAgganYM9YE4D4jDoR284Q7EgLgZ2pGdBMQXqWEoQABRK4e4AnE/EMeOkMhAHlmIhfrdlRoGAgQQNSIkAlqeOgAxK8PIA6xQv0+EhgVFACCAKC2yEoG4A5p9RzJgZIAMgIIiBTSWNp9cgwACiJIISQHiniHct6BVvQIqvpiBeA45BgAEELlFVhoQd49GBlbADw2bNHI0AwQQORESA8StQCwwGvY4gQA0jGJI1QgQQKRGCGhkto5h8A4KDiYgDA0rb1I0AQQQKRECmrMoZ4DM3DGOhjdRFb0SNMwsiNUEEEDERogUtNNnDq2wRgFxgBkaZnnQMCQIAAKI2AhJZYAMm7ONhjHJgA0adqnEKAYIIGIiJIQBMmbDMRq2ZAMOaBiGEFIIEECEIkQdiDMYICs7RgFlgAcalur4FAEEEKEIAU0s2YzWG1SrT2ygYYoTAAQQvgjxgHZu2EfDkmqAHRqmHrgUAAQQrghhgXZqRnvitOnJx0DDGAMABBATnoo8BJemUUARYEEKXwwAEEDYIgQ0xh8+Ghk0jxSsE3kAAYQtQgKgZdxoRU7bCt4DGtYoACCAcEUI62iY0RywYosQgABCjxBXqKLR3EGfXBLAgDb1CxBA6BHiSWTvfRRQBzBBwxwOAAIIOfClweXafwZG8EpWXJhS8B+P2f+g8uQAbOb8p6K7yfUPfsAIrUukYQIAAYTcknIAYlVmRgZGXnbcdn/6AaQZGcgbgAcawAW0kR1aIP77Dw1/RkQZ+eUXA8Pv/ySYDw14TmCJzMkCMfM3MCC+/QYmP6AZIL+AxEDmgmiq5v9/EL9ws0HNRgvpH38ZGL7/xmsnSJkqNOxBS1UZAAIIOULsGX4yMIVqMTG0mzMxsDExgDMLxMfAWAIyWYB4ya2/DPUn/jF8+UeC58CuY2CQEWBgmOPEwmAiwsjw8y/IP//BHoGYzcjAw8bIsOjWH4aWk/8YXnwlomkBNIMB6OEwTUaGJjNmBlFORmAg/AdGBiPDs2//we5V4GVkYAG6c/GtfwyNJ/8yfP4J7S//pzBXAO3WEAK615mZQYWfkeH7H4g//4P98w8YNIwMD74wMiTv+8Nw7fV/fOPkTOCwh0YIQADBIkQSKsiowMvAIMUNihDkZIpIrkX6zAwcQF1Vx/8xfPxDQkoGBpynLBODkQgTgzDHP6hGJiQfQgzK1mJmOPrsP8PyG/+RhbFHBhDH6zIydFqyMIhzorpVhR85NfxnKNZnYhAERkTBISpECtBeJWA4TbZjYjAVgxQXguzo9TUD0J/AcDJmYojZ+RefXxihYQ+Kg+cAAQQLEdAKdfBM4N//CHX/YabAymMoP0ubmcFVDpjy/hPhKZB1wADgF/jPEKkOTMWggej/jBiK/iNFTIASE4M0NyQScUYGMDFkGzAxTLBBjoz/SG5FTs4QO2LUmBmKDZngKZwsAHQTyG2zgDnDRZoRpbL6/x8SYiAaxGAFWmUvycggxw9xL54QUoLGAQNAAMEixBQWf39RKlZGBMWImlNU+YmcrfoDMa/dnIXBUhxmHmYlBOZBI8pDlpFBX5wBS+BC+cBASdRhZGg0ZWYQYGNENYURloaAkQwy7z8jhA2EoGLYBZhL1YWAar5B3UZKxADVS3AxMHTZMDM4SzNBEwDEHliCAtvGyAjzEAMbMLNwMhNVqIPigAEggGARYgQLE2ZGRrSUhV2/Eh8TOAXgVQZNyc1WTAyxwNzBwfwfb7kMk+UDGuwE9DA3B1qAgZz2nYHBDhhhxYbMwCKBEa8PGZHyH4ytJ8zAEKXOxCAuyMBgIAYsnnmgOfEP4WJKAFhUlwCLoCgVJqiTmeBFIqyeBfsDmlNA4C2w7nz+nWDRzgiNAwaAAALVIaCtxfqwyHn38x/cInjU/P8PTdgIU03FmBg4gHXBx2//cVd8QMeUWjAx5OoxM/CwQnMAI+4YYWRElPn3P/1n+PoHKclAiz4+YNmdqsvEoC3IhF79YJrICA0oWG0LBLzAyC4DFlvZuv+BjQgGhjc//jOsvfOXYcIlBob7b/9DGhLMmK0pUKmYpMcErItYUOo9sJf+MzIgl+4w5377w8iwFNgI+vSVgdAkBhM0DgQBAgjE0GCATcADTbn36R+w2Ui4ttMXZmQwFAW6HVuxAm1VOSozMuQAPcHPxkiwroFVK6+//2PIOfyHYf61/6g9pf+QVOwtz8jgLMOE6HsQbFT8R5jP+B9cdIEaJaDcxQ5sF0tzMTLk6bEwnAxhZqiygIiBcwwjIjJA8eMD9EuXBQvUREhRxYhsBywxMUJyCqguPvL8L0P7uX/EDtOC4kADIICYoO1geOPg8jtGhsdfUMOPEWwJps8NhZkY2BmxRMhfSJM1DxgZcjxMBAtABmg6vv7+P0PYjr8MU88Bm67/kFIqNHeIAeutaGBxI8kJSfGQHIAnGkCBBi/fwVkd0nwA6f3/HxqwkMwjysHE0GjGyjDDEZjzWRkQkQJ0hzw3I0MpsIhkBqerf0iegepHquxgofQaWEwVHv3H8O8XSQNRqgABBAotReQIefOZgeEUsN38l4gmISsztH7G0mFiATbB+NgQ9RE4IOAB+B+Llv8MjWf+Mhx4Am2zM6FFMFA4Qo0J3GoBBwHWRIIcMP8ZEFEBq6CYwMXxf2hxzIiWc1iAdIACE0M6sC8G3icFBd+B9j/6gkg4sKIKkZqY4BEOsujHX0aGzQ+A/Y+X/0mdb1UECCCQSfLofrr2DtRhIxwjoJ4o1tINaOofYAp79wupkEfywH/kFAoFOx//Zzj97D/mgA5IH9AcJWDLKBDYHOZhZULqXSClzv/IfETxAQpsSMsHkqNA40KQxMEIr18Ywd04CJ+bFdhM5WOEFDP/ILXs8+//GQqBxSioUwypvP9BAh+UAxkRDQYY49OvfwwLb/5H78IRA+QBAoiFAcsCLnCv8z9hk0BNTmb0IosRUtYLAJuHkrD+AazCgxYZIM//Y4QUOyAPgXLjght/Ge59ZsAsb6FjQp6KwE4YrNn8H5pC/yNVrIz/oIHKxHD+zT+GTff/MQhzAnvxykwMYpxMSANcjHgDCRTfYqANBaDK8R90TAeIH39kYKg5/I9BhoeRwUEKUTL8R+pFgVigBHrp7T+GEy//k7OKTQoggEDeF0cXff7tPxHjYv+BTVMGhonALPnlO1oAAiOkwoCZwUAYubvHiBJpTEjJBzRccuAhjtwBLDo0xP8zhKsAUy+kEEd4nxGp0wpqkHz+x9Bz/j/Dkhv/GD5/g6g5BMx1U+wYGcQ4mKCdNwas9SEyUBdgYlDkZ2S4/w6aQKBjYH+BiefHn//QSuE/ckqDsIDM9z//M0y+9JfhLyhMuEkeDRAHCCCQK4VQhIAOOAj0xNOv/wmaZS7GyKApxAjrA8ED0E+DkSFekxmc/f9BRyL/wzqEjEi9AiD1+Os/hrlX/zO8+o5l7ApadwQoMzOYiUFjihFWMSMGJkH4ErAxErP7H8P0M8DIAOVwYA4FpdDVwKKj5uRfYD3wH1404ffZfwZJYECag3LjX9SRHR0JRgZHGWakRgOs6GSEmgss7oENk+2PyR6aEQIIIJAv+dGnTV5/YmA4+pxQxQ4JCWVgSoLnTGBZz8n1n6HKmBnYo4X0kpnAJQSwOPmPKOFhbJCPm8/8YTj+4j9mUQWtOxSBucxTHtoc/Q/ry0DqBob/kGLoF7CcmHHlL8Pxx/8h+5dgCZgZkrLnXf3H0Hz2H1JnnhGvvwSBHgIlNOThdTGgWCSwQ8jOhFa5g2PlH9g9n4DuXXr7L8PvrwzkrkjgBwggJmhawmisHHv1FzKMQqDYMhJhBA+pw4Y0IoFFiwofI2oPHKmIQK5QpwMDat1NoH+xjRxDA8JVjolBVwiRO8CR+h+pyAKacxQYofse/Uce10OZKP0LzDFLrv5lWHfvL47xGLQoAdXpTCgtBwZJPlD/hxGpNfUP0uyG90f+M3wEVuZ7n/xHFHOkAy6AAGLCOsgNNHDD/f/A4uQ/YkwRnr7/IbVcGRn0RZgYONkgnSl2YFaP02CBDmn8h/eUUQcPIeAcsOKdcpGB4e1PLC6A5g5env8MXvJMwBTLiGidQVtMjP8RddCx5/8Ybn6A9rKxjX0BU/djYINh9d3/4LkSgskMqOfPX0SiAI1FucqCOpFMGKPfjNCK7+9/JobLbxkY7rxjoGRJOitAADFhHVMFRsjL96Bi6x/Dn38YvS2IK6F9CiYmSACBAtATmJrVBBiRunqMiEYNIywlQciJF/+BO4I4szbQVYbAyFYVQBoiAWUjRiaUQD8LjNiN9/5DynsWPKUrENwGNuevviPcFgV5GT5JBqQ5gBEiw8uIZh4T3H8g8BUY00df/IWcVUf+JNhvgABigo57YgXX30MjhBESCZAgRS0TbgGbg99/QCqxBGBlLsaJaAf/R+rLMCI1oZYAW1V7HkBaPFgdDy3CrKSAdRTff9RuBbQShTQOIBNPp59Dm5j/CfWb/jN8+f2fiBwCHSmGJgTQTCRonggfeAIsTZbdxpFLiQffAAIIFBwfcaWqEy8ZGH7+Rx1vgmQSRAELalV8AUaIOLC40haC9ktgeQFL8/IXsMJYcus/w7MfeFI0sMznAZpnJgqtzNF64jBjT70Cpson/xEVOAEAGn7nZCU8QQ7K8UxI/SshbkYGYxHcyR5YdYDD6uEbBkoXUH0ECCCQLe9wjT/eA7a2Pv2EtbWZwK0j9CEQac7/YLX+wA6YCAcTjnF1xPjPnifAouo1ntlARkhzVwrY1BDjQi5e/mOU36df/We4/O4folWFL5yBblYSBLaeBAh1eBnBOffvf4QbQRNSMnjOpwD1TW6A3PGPgdI5+3cAAQRKoy+xSrFAOoiPv/wHOgYyRABrUSB6p0wMUaqMDIbCjAxaQCzAhjM04OEIGlJ49J1Aiv4PGQXgZGFCi4r/KBF0B5hgfv5mJNzEBEYwB7BPZCHBBGwRMjLgTw2ghsZ/hotv/8OLKx0h/Ks6QDnk4Zf/1Nh5+RIggEA+foaryPoDbAGtA1aYoAUJjGiJFdZqEgG2qGylmBmEUYZ9kcapYP0GINj08A+kr0Bo9QdQHjRkz4UnoEFt/mdf/xNOldChHFVgf8lakpmB8ADTf4Z7H/8zHHsGyXmgnOojjz+kQeFz6wMDNVa0PAMIIJARD3FKAwNk/vW/DA8+/4P2RiHFz3+snkKkIlh0/P+POgy46s5/hiffiXM4MzOoHP8P737AKvP/yGOHyOMoeObAWYDleqAqE4OlGCOiJvqP2pyHDVJ+A0beIWAj4f0nRnB9IA8s4izEUQfsYIOjMH+9/gEatvmPvej8z0DKerOHAAEECpr7uEOFgeE9sP0+/do/YDkJS/Cg3vc/lCYstgqIEdZhggbqFmDH7chjROuVYO32ixE844awBjoyywib5mVkkAD1C5gZcC9I+wuRS9RiYijRZ4J2Kv9D6kLw6C9mfnnxDdKvgUlwA4s4Dma0+X/40D8jsBXKyHD93V+GT9+wFJ1/IF7lY4e65ScSxj5lfB8ggEBG3MYbMkAVm4CdxEpDSHkKKX4JlDf/EXMNsIjbBiyuQMPYRGVroD13gR29V6DpYWHcxQU/G1IGxNZ0Bno6SpOJodOKmYGXFXlAEjGaBRtsZASvEWNk2PP0L8Oeh6AVcIzgBQpKvGhRhlb9fAX2C46DIvAHNKFBcwOIaSj1n6HdkgXYdGdiOPQMNAL8D2wmyJ7DwFx4CTZkhAiT2wABBOLegNYj2PdRAz3yEFjBrb37lyFFi5mBgwnaW8aZO2CT/QiX3/34j+HQU0jlR7AC/g9R8wpYBIA8AJquZWbErpCf7T9Y7u8/pFFZRsSihSgtRoY+G2bw2BRiqP4/tD+DqBD//4e4+T7QzhXAfg0DqKHAAWzuAv1uAi2u/iP7Da0prS0EbBECsQwfaPCRgUGSi5GBF+gefyVGBnHokhMldWaGBHUm+Lzz2x+MDF3n/zF0X/gLGZJjAsfBDYAAAnkDdE466DQ0CZyFCVB0NrAuCQJaAFpEhygjGHGG6n9GRnir6DAwJYACmGjADMnie4DFXLDyfwZtQUYsrS1QZcvEsAfYSNhxC2no/g9k+WihGWhBAjN41vL/f9iqEKQWFnKbAzxAyciw4f5fhv0PoAOU/yBLUdmYGXBnQ6C5oJZgshYbQyDQnaBGCA8rZosFdc6ECawPtIiu3YKJQYL7P0PRoX+gOuAiEL8HCCCYznN4qx1gSrkEjL+51/+BJ68Y4ctfcEQGUoUHwuBK8g8JrRCQNqCDDwOLgkOw8pwBpRYGY9C8xVwnFoYWRyYGPTFIfyFUnZFhuz8LeM0WHxuiYcEInSNg/I/a0YQF1H5gkdJ+FtqcZEZMUQuw/YeNDeD0MQt4UosRGBlIKyOQ3Qqeh2dEmliGhB8ownN1mRmSdYHZ9g8wDoA5GyCAYEF0Gm+EMEIipesCaPzpL1LQYF9ywsjIBJ+9A43E7n/4HzIEQ0qzEJR3fzIybLn7HzzxhKjW/8OWo4HtlgIWD9WGLAyHAlkZzoSxMixxZWGwlkBKMIzQsTZ4QkGdRwE56iqwjKg9/pfh7SdIQoB5SQpY9puJMmMMjsJ9jXUNGyOsvw+dMPmP1GX4D59E+Q9trYLWwWVrM/1nY2M4DcQMAAEECyLQ4cD38EYKMIC+AFtczWf+gfsAjGgFyH/ktiSSKVuAFeQrYitz9FwCLHq2Pf4LLpYQTWpoyoZ2VGF28YNaXcBUysbEiJL+EUthGSGNEUbUxAPq7afs/QOZz+dENFNB/UfQojoBdgb4kP9/QusMoPaAShAmeEMatob5PwPqTAp8fdN/PjamexwsDKdAy5MAAggm+hyIDxJsLQNTz4bb/xn2PfnL8PsfYlgdMqSCUbAAI+Ivw67H/yBLesjpNIGX4zAy9AArvwPP/yHVWkiLJPAtvGNAbp4zoiwdBw2NLLr1l8F/6x+GE0//ox4cAuoU/4eMVKBawIiIZqSR7//IxTVqWYFr4Bk8qQVLLsC65yA0DhgAAgg5mA4yENpiAo3olnN/Gd7BRh3//0cMw8JWckD7HpuARdWj9xT0W6F1ye3X/xlKDv8Fp2bEoCUTUjGA3FlD8jqid4oUEqCO3D+G0uN/GJL3/GV4/gWaM7D0cU8CI2rhzT/w8h4+h4/SwmdEmpJggNdVDFhnThjh3dAPwL7IGaB/1tz9/2/m1b8Hi3SZGEAYIICQT7YG7eLZzQBZyciIN5CAkVFmzsRQa8wKWSIKr8gQaRC0RDNkxx/w/DzeNgCxANjOVxFiZOi0Zga29pgwZ5RQynTkEuIfPDWB1letv/eXoQOYoC6DVoWwMuLPucC40BdlZFjhxsygIcCE1mKCtdYYkQZbIatOHgEj+fyb/+DOtCgwsn//BdajwIbNbWDfCtQAAG0muvvpP8P9Lwz/f/0Cdjv+g/cZPgWZABBA6EeN9zFAjghnIjiDAzQlXoOJwV2GGTzE8e03yDImBk5gsw8UGfOBLbJzL4F+okZkIM0ighJAiCoTQwGw560vzIi3tQfTCJpzB40y91/8x7Af2JQG91vYiMyhwEg0B3YIZjkyM+gJMaP1Dv8z/PwHSu2MDJ9//Qf22EGlwj+G7UD89DPSvD4jWs8c5mxmcJk6Edi6KoJJAQQQeoSAYmobUVP00LW2KJUHOpuZgfpnz0F74KI8jAxGIgwM8nzAUg2Y7DC2lEE7gD+AqfHme2CKBRZ7n75DI4KRxGITNB3A85/BUYqJQYAT2ooC5gzQ1MQTYAvwxQ/QInUGhrffgMr/MsAXV6B0Xxhx5UHwseW7YQIAAYTtMH7QRSaBDIN9a/Q/BvgyIbyBCav7WChMHNAdWxhTM8iYtNIAZBrobpJQZEGAAMKWEzaAOsGDPkKYGOi7gZuZ6iHyGxrWKAAggJhwRMgOBvI3fY0C4nLHDmwRAhBA2CIEtMxrJQPhPUWjgHzwBxrGGNf1AQQQrky/BopHI4U2kQELXwwAEEBMeDQtYRjgO/2GKfgIDVusiR0ggPBVi6AybhYDZH5rFFAH/ISG6Q5cCgACiFA7BXQr2ZHRCp5qFfkRaJjiBAABRChCbgLxDAbIhb+jgDLwBRqWN/EpAgggYlryoMqnnwFl190oIBH8gIbhGkIKAQKI2K7VbGiv8tdo2JIMfkHDbjYxigECiNgIAU3Ag24iOzlan5Bcb5yEht0zYjQABBApgw+gq607GQjNLI4CGPgPDatOaNgRBQACiNTRINDV1k0MkNuURwF+8BYaVltJ0QQQQOQMz4E6NdVA/GE0zHGCD9AwWkKqRoAAIvewZFDnBjQAPnpLG/aeeCkDmbe0AQQQJQPYIAtBd2K8Go0DOHgFDZM55BoAEECUziiALlAETfleH+EV/X9oGOQzUHCpJAgABBA1pnhWQB1ygAH3oXzDGfyG+j0fGhYUAYAAotaB+7uh2XUk3RYNArC5I6rdFg0QQNS8AQHkoAogvgKlh/v9uKAE2AFtSb2mlqEAAUTtKylADgON2VyFZmEnhuF3mRhoXGofA+Qi4l3UNhwggGh1R8guaCUXBsS5DOhncg1dANr+NxmIVwHxY1pYABBA2JYBURuAzqMFXYQVPYT7LKC+BejkadBcxilaWgQQQPSIEBhwA+IoBsiaL74hEhGgDQqgkdpltCiesAGAAKJnhMCa2aB6JZgBskBssF5yDBqHAi0YXAutL/7Ry2KAAKJ3hCADXSD2Y4Dcpmw4CCp/UGV9ngEyGLgJiC8PhCMAAmggIwQGQPUK6DZlR2ju0aVj5PyABjwoF+xngAyTD+hKG4AAGgwRggxAHUodaAQZQ3MO6Fxhal1uCfLsbWhOOAuNgCsMWBasDRQACKDBFiHoALRWXQGINRkgNwiA2DIMkB3DIgyQY9J5kHIUKMWDFhOAtgmBzuZ5AcRPgPgBA2Sy6DqUPWinogECiPH//9HJv8EEAAIMAAfV0k1eePL5AAAAAElFTkSuQmCC"},SldL:function(e,t){!function(t){"use strict";var n,o=Object.prototype,i=o.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",l=r.asyncIterator||"@@asyncIterator",s=r.toStringTag||"@@toStringTag",u="object"==typeof e,c=t.regeneratorRuntime;if(c)u&&(e.exports=c);else{(c=t.regeneratorRuntime=u?e.exports:{}).wrap=w;var d="suspendedStart",f="suspendedYield",p="executing",h="completed",m={},v={};v[a]=function(){return this};var g=Object.getPrototypeOf,A=g&&g(g(M([])));A&&A!==o&&i.call(A,a)&&(v=A);var y=C.prototype=b.prototype=Object.create(v);E.prototype=y.constructor=C,C.constructor=E,C[s]=E.displayName="GeneratorFunction",c.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===E||"GeneratorFunction"===(t.displayName||t.name))},c.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,C):(e.__proto__=C,s in e||(e[s]="GeneratorFunction")),e.prototype=Object.create(y),e},c.awrap=function(e){return{__await:e}},_(B.prototype),B.prototype[l]=function(){return this},c.AsyncIterator=B,c.async=function(e,t,n,o){var i=new B(w(e,t,n,o));return c.isGeneratorFunction(t)?i:i.next().then(function(e){return e.done?e.value:i.next()})},_(y),y[s]="Generator",y[a]=function(){return this},y.toString=function(){return"[object Generator]"},c.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var o=t.pop();if(o in e)return n.value=o,n.done=!1,n}return n.done=!0,n}},c.values=M,S.prototype={constructor:S,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=n,this.done=!1,this.delegate=null,this.method="next",this.arg=n,this.tryEntries.forEach(I),!e)for(var t in this)"t"===t.charAt(0)&&i.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=n)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function o(o,i){return l.type="throw",l.arg=e,t.next=o,i&&(t.method="next",t.arg=n),!!i}for(var r=this.tryEntries.length-1;r>=0;--r){var a=this.tryEntries[r],l=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var s=i.call(a,"catchLoc"),u=i.call(a,"finallyLoc");if(s&&u){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&i.call(o,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),I(n),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var o=n.completion;if("throw"===o.type){var i=o.arg;I(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,o){return this.delegate={iterator:M(e),resultName:t,nextLoc:o},"next"===this.method&&(this.arg=n),m}}}function w(e,t,n,o){var i=t&&t.prototype instanceof b?t:b,r=Object.create(i.prototype),a=new S(o||[]);return r._invoke=function(e,t,n){var o=d;return function(i,r){if(o===p)throw new Error("Generator is already running");if(o===h){if("throw"===i)throw r;return F()}for(n.method=i,n.arg=r;;){var a=n.delegate;if(a){var l=D(a,n);if(l){if(l===m)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===d)throw o=h,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=p;var s=x(e,t,n);if("normal"===s.type){if(o=n.done?h:f,s.arg===m)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(o=h,n.method="throw",n.arg=s.arg)}}}(e,n,a),r}function x(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}function b(){}function E(){}function C(){}function _(e){["next","throw","return"].forEach(function(t){e[t]=function(e){return this._invoke(t,e)}})}function B(e){var t;this._invoke=function(n,o){function r(){return new Promise(function(t,r){!function t(n,o,r,a){var l=x(e[n],e,o);if("throw"!==l.type){var s=l.arg,u=s.value;return u&&"object"==typeof u&&i.call(u,"__await")?Promise.resolve(u.__await).then(function(e){t("next",e,r,a)},function(e){t("throw",e,r,a)}):Promise.resolve(u).then(function(e){s.value=e,r(s)},a)}a(l.arg)}(n,o,t,r)})}return t=t?t.then(r,r):r()}}function D(e,t){var o=e.iterator[t.method];if(o===n){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=n,D(e,t),"throw"===t.method))return m;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return m}var i=x(o,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,m;var r=i.arg;return r?r.done?(t[e.resultName]=r.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=n),t.delegate=null,m):r:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,m)}function k(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function I(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function S(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(k,this),this.reset(!0)}function M(e){if(e){var t=e[a];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,r=function t(){for(;++o=0;l--)(i=e[l])&&(a=(r<3?i(a):r>3?i(t,n,a):i(t,n))||a);return r>3&&a&&Object.defineProperty(t,n,a),a}function s(e,t){return function(n,o){t(n,o,e)}}function u(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function c(e,t,n,o){return new(n||(n=Promise))(function(i,r){function a(e){try{s(o.next(e))}catch(e){r(e)}}function l(e){try{s(o.throw(e))}catch(e){r(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(a,l)}s((o=o.apply(e,t||[])).next())})}function d(e,t){var n,o,i,r,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return r={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(r[Symbol.iterator]=function(){return this}),r;function l(r){return function(l){return function(r){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,o&&(i=2&r[0]?o.return:r[0]?o.throw||((i=o.return)&&i.call(o),0):o.next)&&!(i=i.call(o,r[1])).done)return i;switch(o=0,i&&(r=[2&r[0],i.value]),r[0]){case 0:case 1:i=r;break;case 4:return a.label++,{value:r[1],done:!1};case 5:a.label++,o=r[1],r=[0];continue;case 7:r=a.ops.pop(),a.trys.pop();continue;default:if(!(i=(i=a.trys).length>0&&i[i.length-1])&&(6===r[0]||2===r[0])){a=0;continue}if(3===r[0]&&(!i||r[1]>i[0]&&r[1]=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function m(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var o,i,r=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(o=r.next()).done;)a.push(o.value)}catch(e){i={error:e}}finally{try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(i)throw i.error}}return a}function v(){for(var e=[],t=0;t1||l(e,t)})})}function l(e,t){try{(n=i[e](t)).value instanceof y?Promise.resolve(n.value.v).then(s,u):c(r[0][2],n)}catch(e){c(r[0][3],e)}var n}function s(e){l("next",e)}function u(e){l("throw",e)}function c(e,t){e(t),r.shift(),r.length&&l(r[0][0],r[0][1])}}function x(e){var t,n;return t={},o("next"),o("throw",function(e){throw e}),o("return"),t[Symbol.iterator]=function(){return this},t;function o(o,i){t[o]=e[o]?function(t){return(n=!n)?{value:y(e[o](t)),done:"return"===o}:i?i(t):t}:i}}function b(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=h(e),t={},o("next"),o("throw"),o("return"),t[Symbol.asyncIterator]=function(){return this},t);function o(n){t[n]=e[n]&&function(t){return new Promise(function(o,i){(function(e,t,n,o){Promise.resolve(o).then(function(t){e({value:t,done:n})},t)})(o,i,(t=e[n](t)).done,t.value)})}}}function E(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var C=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t};function _(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&f(t,e,n);return C(t,e),t}function B(e){return e&&e.__esModule?e:{default:e}}function D(e,t,n,o){if("a"===n&&!o)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?o:"a"===n?o.call(e):o?o.value:t.get(e)}function k(e,t,n,o,i){if("m"===o)throw new TypeError("Private method is not writable");if("a"===o&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===o?i.call(e,n):i?i.value=n:t.set(e,n),n}},function(e,t,n){"use strict";var o=n(0),i=o(n(1)),r=o(n(96)),a=o(n(4)),l=o(n(27)),s=o(n(16)),u=o(n(125)),c=o(n(28)),d=o(n(99)),f=o(n(76)),p=o(n(46)),h=o(n(61));(0,i.default)(t,"__esModule",{value:!0}),t.DomElement=void 0;var m=n(2),v=n(6),g=[];function A(e){var t=[],n=[];return t=(0,r.default)(e)?e:e.split(";"),(0,a.default)(t).call(t,function(e){var t,o=(0,l.default)(t=e.split(":")).call(t,function(e){return(0,s.default)(e).call(e)});2===o.length&&n.push(o[0]+":"+o[1])}),n}var y=function(){function e(t){if(this.elems=[],this.length=this.elems.length,this.dataSource=new u.default,t){if(t instanceof e)return t;var n=[],o=t instanceof Node?t.nodeType:-1;if(this.selector=t,1===o||9===o)n=[t];else if(function(e){return!!e&&(e instanceof HTMLCollection||e instanceof NodeList)}(t))n=v.toArray(t);else if(t instanceof Array)n=t;else if("string"==typeof t){var i,r=(0,s.default)(i=t.replace("/\n/mg","")).call(i);n=0===(0,c.default)(r).call(r,"<")?function(e){var t=document.createElement("div");t.innerHTML=e;var n=t.children;return v.toArray(n)}(r):function(e){var t=document.querySelectorAll(e);return v.toArray(t)}(r)}var a=n.length;if(!a)return this;for(var l=0;l=t&&(e%=t),w(this.elems[e])},e.prototype.first=function(){return this.get(0)},e.prototype.last=function(){var e=this.length;return this.get(e-1)},e.prototype.on=function(e,t,n){var o;return e?("function"==typeof t&&(n=t,t=""),(0,a.default)(o=this).call(o,function(o){if(t){var i=function(e){var o=e.target;o.matches(t)&&n.call(o,e)};o.addEventListener(e,i),g.push({elem:o,selector:t,fn:n,agentFn:i})}else o.addEventListener(e,n)})):this},e.prototype.off=function(e,t,n){var o;return e?("function"==typeof t&&(n=t,t=""),(0,a.default)(o=this).call(o,function(o){if(t){for(var i=-1,r=0;r]+>/g,function(){return""})},e.prototype.html=function(e){var t=this.elems[0];return e?(t.innerHTML=e,this):t.innerHTML},e.prototype.val=function(){var e,t=this.elems[0];return(0,s.default)(e=t.value).call(e)},e.prototype.focus=function(){var e;return(0,a.default)(e=this).call(e,function(e){e.focus()})},e.prototype.prev=function(){return w(this.elems[0].previousElementSibling)},e.prototype.next=function(){return w(this.elems[0].nextElementSibling)},e.prototype.getNextSibling=function(){return w(this.elems[0].nextSibling)},e.prototype.parent=function(){return w(this.elems[0].parentElement)},e.prototype.parentUntil=function(e,t){var n=t||this.elems[0];if("BODY"===n.nodeName)return null;var o=n.parentElement;return null===o?null:o.matches(e)?w(o):this.parentUntil(e,o)},e.prototype.parentUntilEditor=function(e,t,n){var o=n||this.elems[0];if(w(o).equal(t.$textContainerElem)||w(o).equal(t.$toolbarElem))return null;var i=o.parentElement;return null===i?null:i.matches(e)?w(i):this.parentUntilEditor(e,t,i)},e.prototype.equal=function(t){return t instanceof e?this.elems[0]===t.elems[0]:t instanceof HTMLElement&&this.elems[0]===t},e.prototype.insertBefore=function(e){var t,n=w(e).elems[0];return n?(0,a.default)(t=this).call(t,function(e){var t=n.parentNode;null===t||void 0===t||t.insertBefore(e,n)}):this},e.prototype.insertAfter=function(e){var t,n=w(e).elems[0],o=n&&n.nextSibling;return n?(0,a.default)(t=this).call(t,function(e){var t=n.parentNode;o?t.insertBefore(e,o):t.appendChild(e)}):this},e.prototype.data=function(e,t){if(null==t)return this.dataSource.get(e);this.dataSource.set(e,t)},e.prototype.getNodeTop=function(e){if(this.length<1)return this;var t=this.parent();return e.$textElem.equal(this)||e.$textElem.equal(t)?this:(t.prior=this,t.getNodeTop(e))},e.prototype.getOffsetData=function(){var e=this.elems[0];return{top:e.offsetTop,left:e.offsetLeft,width:e.offsetWidth,height:e.offsetHeight,parent:e.offsetParent}},e.prototype.scrollTop=function(e){this.elems[0].scrollTo({top:e})},e}();function w(){for(var e=[],t=0;t/gm,">").replace(/"/gm,""").replace(/(\r\n|\r|\n)/g,"
")},t.replaceSpecialSymbol=function(e){return e.replace(/</gm,"<").replace(/>/gm,">").replace(/"/gm,'"')},t.forEach=function(e,t){for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&!1===t(n,e[n]))break},t.arrForEach=function(e,t){var n,o,i=e.length||0;for(n=0;n

',t.EMPTY_P_LAST_REGEX=/

<\/p>$/gim,t.EMPTY_P_REGEX=/

/gim},function(e,t,n){(function(t){var n=function(e){return e&&e.Math==Math&&e};e.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof t&&t)||function(){return this}()||Function("return this")()}).call(this,n(150))},function(e,t,n){var o=n(8),i=n(80),r=n(17),a=n(67),l=n(79),s=n(107),u=i("wks"),c=o.Symbol,d=s?c:c&&c.withoutSetter||a;e.exports=function(e){return r(u,e)&&(l||"string"==typeof u[e])||(l&&r(c,e)?u[e]=c[e]:u[e]=d("Symbol."+e)),u[e]}},function(e,t,n){var o=n(11),i=n(17),r=n(101),a=n(18).f;e.exports=function(e){var t=o.Symbol||(o.Symbol={});i(t,e)||a(t,e,{value:r.f(e)})}},function(e,t){e.exports={}},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){var o=n(11);e.exports=function(e){return o[e+"Prototype"]}},function(e,t,n){var o=n(12);e.exports=!o(function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})},function(e,t,n){e.exports=n(203)},function(e,t,n){var o=n(26),i={}.hasOwnProperty;e.exports=Object.hasOwn||function(e,t){return i.call(o(e),t)}},function(e,t,n){var o=n(15),i=n(108),r=n(20),a=n(64),l=Object.defineProperty;t.f=o?l:function(e,t,n){if(r(e),t=a(t),r(n),i)try{return l(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(e[t]=n.value),e}},function(e,t,n){var o=n(15),i=n(18),r=n(38);e.exports=o?function(e,t,n){return i.f(e,t,r(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){var o=n(13);e.exports=function(e){if(!o(e))throw TypeError(String(e)+" is not an object");return e}},function(e,t,n){"use strict";var o,i=function(){return void 0===o&&(o=Boolean(window&&document&&document.all&&!window.atob)),o},r=function(){var e={};return function(t){if(void 0===e[t]){var n=document.querySelector(t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}e[t]=n}return e[t]}}(),a=[];function l(e){for(var t=-1,n=0;n0){var o=null===n||void 0===n?void 0:n.getNodeName();o&&"I"===o&&t.addClass(u)}});var d=new c.default(i,o);return i.dropList=d,t.on("click",function(){var e;null!=n.selection.getRange()&&(t.css("z-index",n.zIndex.get("menu")),(0,r.default)(e=n.txt.eventHooks.dropListMenuHoverEvents).call(e,function(e){return e()}),d.show())}).on("mouseleave",function(){t.css("z-index","auto"),d.hideTimeoutId=(0,a.default)(function(){d.hide()})}),i}return l.__extends(t,e),t}(u.default);t.default=d},function(e,t,n){var o=n(11),i=n(8),r=function(e){return"function"==typeof e?e:void 0};e.exports=function(e,t){return arguments.length<2?r(o[e])||r(i[e]):o[e]&&o[e][t]||i[e]&&i[e][t]}},function(e,t,n){var o=n(51);e.exports=function(e){return Object(o(e))}},function(e,t,n){e.exports=n(199)},function(e,t,n){e.exports=n(212)},function(e,t,n){var o=n(78),i=n(51);e.exports=function(e){return o(i(e))}},function(e,t,n){var o=n(65);e.exports=function(e){if(o(e))throw TypeError("Cannot convert a Symbol value to a string");return String(e)}},function(e,t,n){var o=n(40),i=n(78),r=n(26),a=n(35),l=n(95),s=[].push,u=function(e){var t=1==e,n=2==e,u=3==e,c=4==e,d=6==e,f=7==e,p=5==e||d;return function(h,m,v,g){for(var A,y,w=r(h),x=i(w),b=o(m,v,3),E=a(x.length),C=0,_=g||l,B=t?_(h,E):n||f?_(h,0):void 0;E>C;C++)if((p||C in x)&&(y=b(A=x[C],C,w),e))if(t)B[C]=y;else if(y)switch(e){case 3:return!0;case 5:return A;case 6:return C;case 2:s.call(B,A)}else switch(e){case 4:return!1;case 7:s.call(B,A)}return d?-1:u||c?c:B}};e.exports={forEach:u(0),map:u(1),filter:u(2),some:u(3),every:u(4),find:u(5),findIndex:u(6),filterReject:u(7)}},function(e,t,n){e.exports=n(298)},function(e,t,n){"use strict";var o=n(0),i=o(n(1)),r=o(n(4)),a=o(n(32)),l=o(n(136));(0,i.default)(t,"__esModule",{value:!0});var s=n(2),u=s.__importDefault(n(3)),c=n(7),d=function(){function e(t,n){this.menu=t,this.conf=n,this.$container=u.default('

');var o=t.editor;o.txt.eventHooks.clickEvents.push(e.hideCurAllPanels),o.txt.eventHooks.toolbarClickEvents.push(e.hideCurAllPanels),o.txt.eventHooks.dropListMenuHoverEvents.push(e.hideCurAllPanels)}return e.prototype.create=function(){var t=this,n=this.menu;if(!e.createdMenus.has(n)){var o=this.conf,i=this.$container,l=o.width||300,d=n.editor.$toolbarElem.getBoundingClientRect(),f=n.$elem.getBoundingClientRect(),p=d.height+d.top-f.top,h=(d.width-l)/2+d.left-f.left;Math.abs(h)>300&&(h=f.left');i.append(m),m.on("click",function(){t.remove()});var v=u.default('
    '),g=u.default('
    ');i.append(v).append(g);var A=o.height;A&&g.css("height",A+"px").css("overflow-y","auto");var y=o.tabs||[],w=[],x=[];(0,r.default)(y).call(y,function(e,t){if(e){var n=e.title||"",o=e.tpl||"",i=u.default('
  • '+n+"
  • ");v.append(i);var a=u.default(o);g.append(a),w.push(i),x.push(a),0===t?(i.data("active",!0),i.addClass("w-e-active")):a.hide(),i.on("click",function(){i.data("active")||((0,r.default)(w).call(w,function(e){e.data("active",!1),e.removeClass("w-e-active")}),(0,r.default)(x).call(x,function(e){e.hide()}),i.data("active",!0),i.addClass("w-e-active"),a.show())})}}),i.on("click",function(e){e.stopPropagation()}),n.$elem.append(i),(0,r.default)(y).call(y,function(e,n){if(e){var o=e.events||[];(0,r.default)(o).call(o,function(e){var o,i=e.selector,r=e.type,l=e.fn||c.EMPTY_FN,u=x[n],d=null!==(o=e.bindEnter)&&void 0!==o&&o,f=function(e){return s.__awaiter(t,void 0,void 0,function(){return s.__generator(this,function(t){switch(t.label){case 0:return e.stopPropagation(),[4,l(e)];case 1:return t.sent()&&this.remove(),[2]}})})};(0,a.default)(u).call(u,i).on(r,f),d&&"click"===r&&u.on("keyup",function(e){13==e.keyCode&&f(e)})})}});var b=(0,a.default)(i).call(i,"input[type=text],textarea");b.length&&b.get(0).focus(),e.hideCurAllPanels(),n.setPanel(this),e.createdMenus.add(n)}},e.prototype.remove=function(){var t=this.menu,n=this.$container;n&&n.remove(),e.createdMenus.delete(t)},e.hideCurAllPanels=function(){var t;0!==e.createdMenus.size&&(0,r.default)(t=e.createdMenus).call(t,function(e){var t=e.panel;t&&t.remove()})},e.createdMenus=new l.default,e}();t.default=d},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e}},function(e,t,n){var o=n(70),i=Math.min;e.exports=function(e){return e>0?i(o(e),9007199254740991):0}},function(e,t,n){"use strict";(0,n(0)(n(1)).default)(t,"__esModule",{value:!0});var o=n(2),i=function(e){function t(t,n){return e.call(this,t,n)||this}return o.__extends(t,e),t.prototype.setPanel=function(e){this.panel=e},t}(o.__importDefault(n(103)).default);t.default=i},function(e,t,n){"use strict";var o=n(0),i=o(n(1)),r=o(n(4)),a=o(n(61));(0,i.default)(t,"__esModule",{value:!0});var l=n(2).__importDefault(n(3)),s=function(){function e(e,t,n){this.editor=e,this.$targetElem=t,this.conf=n,this._show=!1,this._isInsertTextContainer=!1;var o=l.default("
    ");o.addClass("w-e-tooltip"),this.$container=o}return e.prototype.getPositionData=function(){var e=this.$container,t=0,n=0,o=document.documentElement.scrollTop,i=this.$targetElem.getBoundingClientRect(),r=this.editor.$textElem.getBoundingClientRect(),a=this.$targetElem.getOffsetData(),s=l.default(a.parent),u=this.editor.$textElem.elems[0].scrollTop;if(this._isInsertTextContainer=s.equal(this.editor.$textContainerElem),this._isInsertTextContainer){var c=s.getBoundingClientRect().height,d=a.top,f=a.left,p=a.height,h=d-u;h>25?(t=h-20-15,e.addClass("w-e-tooltip-up")):h+p+200?h:0)+20+10,e.addClass("w-e-tooltip-down")),n=f<0?0:f}else i.top<20?(t=i.bottom+o+5,e.addClass("w-e-tooltip-down")):i.top-r.top<20?(t=i.bottom+o+5,e.addClass("w-e-tooltip-down")):(t=i.top+o-20-15,e.addClass("w-e-tooltip-up")),n=i.left<0?0:i.left;return{top:t,left:n}},e.prototype.appendMenus=function(){var e=this,t=this.conf,n=this.editor,o=this.$targetElem,i=this.$container;(0,r.default)(t).call(t,function(t,r){var a=t.$elem,s=l.default("
    ");s.addClass("w-e-tooltip-item-wrapper "),s.append(a),i.append(s),a.on("click",function(i){i.preventDefault(),t.onClick(n,o)&&e.remove()})})},e.prototype.create=function(){var e,t,n=this.editor,o=this.$container;this.appendMenus();var i=this.getPositionData(),r=i.top,s=i.left;o.css("top",r+"px"),o.css("left",s+"px"),o.css("z-index",n.zIndex.get("tooltip")),this._isInsertTextContainer?this.editor.$textContainerElem.append(o):l.default("body").append(o),this._show=!0,n.beforeDestroy((0,a.default)(e=this.remove).call(e,this)),n.txt.eventHooks.onBlurEvents.push((0,a.default)(t=this.remove).call(t,this))},e.prototype.remove=function(){this.$container.remove(),this._show=!1},(0,i.default)(e.prototype,"isShow",{get:function(){return this._show},enumerable:!1,configurable:!0}),e}();t.default=s},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t){e.exports=!0},function(e,t,n){var o=n(34);e.exports=function(e,t,n){if(o(e),void 0===t)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,o){return e.call(t,n,o)};case 3:return function(n,o,i){return e.call(t,n,o,i)}}return function(){return e.apply(t,arguments)}}},function(e,t,n){var o=n(20),i=n(112),r=n(35),a=n(40),l=n(113),s=n(114),u=function(e,t){this.stopped=e,this.result=t};e.exports=function(e,t,n){var c,d,f,p,h,m,v,g=n&&n.that,A=!(!n||!n.AS_ENTRIES),y=!(!n||!n.IS_ITERATOR),w=!(!n||!n.INTERRUPTED),x=a(t,g,1+A+w),b=function(e){return c&&s(c),new u(!0,e)},E=function(e){return A?(o(e),w?x(e[0],e[1],b):x(e[0],e[1])):w?x(e,b):x(e)};if(y)c=e;else{if("function"!=typeof(d=l(e)))throw TypeError("Target is not iterable");if(i(d)){for(f=0,p=r(e.length);p>f;f++)if((h=E(e[f]))&&h instanceof u)return h;return new u(!1)}c=d.call(e)}for(m=c.next;!(v=m.call(c)).done;){try{h=E(v.value)}catch(e){throw s(c),e}if("object"==typeof h&&h&&h instanceof u)return h}return new u(!1)}},function(e,t){e.exports={}},function(e,t,n){var o,i,r,a=n(176),l=n(8),s=n(13),u=n(19),c=n(17),d=n(81),f=n(68),p=n(54),h=l.WeakMap;if(a||d.state){var m=d.state||(d.state=new h),v=m.get,g=m.has,A=m.set;o=function(e,t){if(g.call(m,e))throw new TypeError("Object already initialized");return t.facade=e,A.call(m,e,t),t},i=function(e){return v.call(m,e)||{}},r=function(e){return g.call(m,e)}}else{var y=f("state");p[y]=!0,o=function(e,t){if(c(e,y))throw new TypeError("Object already initialized");return t.facade=e,u(e,y,t),t},i=function(e){return c(e,y)?e[y]:{}},r=function(e){return c(e,y)}}e.exports={set:o,get:i,has:r,enforce:function(e){return r(e)?i(e):o(e,{})},getterFor:function(e){return function(t){var n;if(!s(t)||(n=i(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}}}},function(e,t,n){var o=n(88),i=n(18).f,r=n(19),a=n(17),l=n(178),s=n(9)("toStringTag");e.exports=function(e,t,n,u){if(e){var c=n?e:e.prototype;a(c,s)||i(c,s,{configurable:!0,value:t}),u&&!o&&r(c,"toString",l)}}},function(e,t,n){n(55);var o=n(189),i=n(8),r=n(71),a=n(19),l=n(42),s=n(9)("toStringTag");for(var u in o){var c=i[u],d=c&&c.prototype;d&&r(d)!==s&&a(d,s,u),l[u]=l.Array}},function(e,t,n){e.exports=n(224)},function(e,t,n){e.exports=n(276)},function(e,t,n){e.exports=n(280)},function(e,t,n){"use strict";var o=n(0),i=o(n(1)),r=o(n(4));(0,i.default)(t,"__esModule",{value:!0}),t.createElementFragment=t.createDocumentFragment=t.createElement=t.insertBefore=t.getEndPoint=t.getStartPoint=t.updateRange=t.filterSelectionNodes=void 0;var a=n(2),l=n(142),s=a.__importDefault(n(3));function u(e){return document.createElement(e)}t.filterSelectionNodes=function(e){var t=[];return(0,r.default)(e).call(e,function(e){var n=e.getNodeName();if(n!==l.ListType.OrderedList&&n!==l.ListType.UnorderedList)t.push(e);else if(e.prior)t.push(e.prior);else{var o=e.children();null===o||void 0===o||(0,r.default)(o).call(o,function(e){t.push(s.default(e))})}}),t},t.updateRange=function(e,t,n){var o=e.selection,i=document.createRange();t.length>1?(i.setStart(t.elems[0],0),i.setEnd(t.elems[t.length-1],t.elems[t.length-1].childNodes.length)):i.selectNodeContents(t.elems[0]),n&&i.collapse(!1),o.saveRange(i),o.restoreSelection()},t.getStartPoint=function(e){var t;return e.prior?e.prior:s.default(null===(t=e.children())||void 0===t?void 0:t.elems[0])},t.getEndPoint=function(e){var t;return e.prior?e.prior:s.default(null===(t=e.children())||void 0===t?void 0:t.last().elems[0])},t.insertBefore=function(e,t,n){void 0===n&&(n=null),e.parent().elems[0].insertBefore(t,n)},t.createElement=u,t.createDocumentFragment=function(){return document.createDocumentFragment()},t.createElementFragment=function(e,t,n){return void 0===n&&(n="li"),(0,r.default)(e).call(e,function(e){var o=u(n);o.innerHTML=e.html(),t.appendChild(o),e.remove()}),t}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},function(e,t,n){var o=n(25);e.exports=o("navigator","userAgent")||""},function(e,t,n){var o=n(110),i=n(87);e.exports=Object.keys||function(e){return o(e,i)}},function(e,t){e.exports={}},function(e,t,n){"use strict";var o=n(29),i=n(89),r=n(42),a=n(43),l=n(90),s=a.set,u=a.getterFor("Array Iterator");e.exports=l(Array,"Array",function(e,t){s(this,{type:"Array Iterator",target:o(e),index:0,kind:t})},function(){var e=u(this),t=e.target,n=e.kind,o=e.index++;return!t||o>=t.length?(e.target=void 0,{value:void 0,done:!0}):"keys"==n?{value:o,done:!1}:"values"==n?{value:t[o],done:!1}:{value:[o,t[o]],done:!1}},"values"),r.Arguments=r.Array,i("keys"),i("values"),i("entries")},function(e,t,n){var o=n(19);e.exports=function(e,t,n,i){i&&i.enumerable?e[t]=n:o(e,t,n)}},function(e,t){},function(e,t,n){"use strict";var o=n(188).charAt,i=n(30),r=n(43),a=n(90),l=r.set,s=r.getterFor("String Iterator");a(String,"String",function(e){l(this,{type:"String Iterator",string:i(e),index:0})},function(){var e,t=s(this),n=t.string,i=t.index;return i>=n.length?{value:void 0,done:!0}:(e=o(n,i),t.index+=e.length,{value:e,done:!1})})},function(e,t,n){var o=n(50);e.exports=Array.isArray||function(e){return"Array"==o(e)}},function(e,t,n){var o=n(12),i=n(9),r=n(66),a=i("species");e.exports=function(e){return r>=51||!o(function(){var t=[];return(t.constructor={})[a]=function(){return{foo:1}},1!==t[e](Boolean).foo})}},function(e,t,n){e.exports=n(233)},function(e,t,n){"use strict";(0,n(0)(n(1)).default)(t,"__esModule",{value:!0}),t.ListHandle=void 0;var o=n(2).__importDefault(n(388)),i=function(){return function(e){this.options=e,this.selectionRangeElem=new o.default}}();t.ListHandle=i},function(e,t,n){"use strict";var o={}.propertyIsEnumerable,i=Object.getOwnPropertyDescriptor,r=i&&!o.call({1:2},1);t.f=r?function(e){var t=i(this,e);return!!t&&t.enumerable}:o},function(e,t,n){var o=n(151),i=n(65);e.exports=function(e){var t=o(e,"string");return i(t)?t:String(t)}},function(e,t,n){var o=n(25),i=n(107);e.exports=i?function(e){return"symbol"==typeof e}:function(e){var t=o("Symbol");return"function"==typeof t&&Object(e)instanceof t}},function(e,t,n){var o,i,r=n(8),a=n(52),l=r.process,s=r.Deno,u=l&&l.versions||s&&s.version,c=u&&u.v8;c?i=(o=c.split("."))[0]<4?1:o[0]+o[1]:a&&(!(o=a.match(/Edge\/(\d+)/))||o[1]>=74)&&(o=a.match(/Chrome\/(\d+)/))&&(i=o[1]),e.exports=i&&+i},function(e,t){var n=0,o=Math.random();e.exports=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++n+o).toString(36)}},function(e,t,n){var o=n(80),i=n(67),r=o("keys");e.exports=function(e){return r[e]||(r[e]=i(e))}},function(e,t,n){var o,i=n(20),r=n(175),a=n(87),l=n(54),s=n(111),u=n(82),c=n(68)("IE_PROTO"),d=function(){},f=function(e){return""}).replace(/]*data-ke-noscript-attr="([^"]*)"[^>]*>([\s\S]*?)<\/div>/gi,function(a,b,c){return""+unescape(c)+""}).replace(/(<[^>]*)data-ke-src="([^"]*)"([^>]*>)/gi,function(a,b,c,d){return a=a.replace(/(\s+(?:href|src)=")[^"]*(")/i,function(a,b,d){return b+_unescape(c)+d}),a=a.replace(/\s+data-ke-src="[^"]*"/i,"")}).replace(/(<[^>]+\s)data-ke-(on\w+="[^"]*"[^>]*>)/gi,function(a,b,c){return b+c})}),b.beforeSetHtml(function(a){return _IE&&8>=_V&&(a=a.replace(/]*>|<(select|button)[^>]*>[\s\S]*?<\/\1>/gi,function(a){var b=_getAttrList(a),c=_getCssList(b.style||"");return"none"==c.display?'
    ':a})),a.replace(/]*type="([^"]+)"[^>]*>(?:<\/embed>)?/gi,function(a){var c=_getAttrList(a);return c.src=_undef(c.src,""),c.width=_undef(c.width,0),c.height=_undef(c.height,0),_mediaImg(b.themesPath+"common/blank.gif",c)}).replace(/]*name="([^"]+)"[^>]*>(?:<\/a>)?/gi,function(a){var c=_getAttrList(a);return c.href!==undefined?a:''}).replace(/]*)>([\s\S]*?)<\/script>/gi,function(a,b,c){return'
    '+escape(c)+"
    "}).replace(/]*)>([\s\S]*?)<\/noscript>/gi,function(a,b,c){return'
    '+escape(c)+"
    "}).replace(/(<[^>]*)(href|src)="([^"]*)"([^>]*>)/gi,function(a,b,c,d,e){return a.match(/\sdata-ke-src="[^"]*"/i)?a:a=b+c+'="'+d+'" data-ke-src="'+_escape(d)+'"'+e}).replace(/(<[^>]+\s)(on\w+="[^"]*"[^>]*>)/gi,function(a,b,c){return b+"data-ke-"+c}).replace(/]*\s+border="0"[^>]*>/gi,function(a){return a.indexOf("ke-zeroborder")>=0?a:_addClassToTag(a,"ke-zeroborder")})})})}}(window),KindEditor.lang({source:"HTML代码",preview:"预览",undo:"后退(Ctrl+Z)",redo:"前进(Ctrl+Y)",cut:"剪切(Ctrl+X)",copy:"复制(Ctrl+C)",paste:"粘贴(Ctrl+V)",plainpaste:"粘贴为无格式文本",wordpaste:"从Word粘贴",selectall:"全选(Ctrl+A)",justifyleft:"左对齐",justifycenter:"居中",justifyright:"右对齐",justifyfull:"两端对齐",insertorderedlist:"编号",insertunorderedlist:"项目符号",indent:"增加缩进",outdent:"减少缩进",subscript:"下标",superscript:"上标",formatblock:"段落",fontname:"字体",fontsize:"文字大小",forecolor:"文字颜色",hilitecolor:"文字背景",bold:"粗体(Ctrl+B)",italic:"斜体(Ctrl+I)",underline:"下划线(Ctrl+U)",strikethrough:"删除线",removeformat:"删除格式",image:"图片",multiimage:"批量图片上传",flash:"Flash",media:"视音频",table:"表格",tablecell:"单元格",hr:"插入横线",emoticons:"插入表情",link:"超级链接",unlink:"取消超级链接",fullscreen:"全屏显示",about:"关于",print:"打印(Ctrl+P)",filemanager:"文件空间",code:"插入程序代码",map:"Google地图",baidumap:"百度地图",lineheight:"行距",clearhtml:"清理HTML代码",pagebreak:"插入分页符",quickformat:"一键排版",insertfile:"插入文件",template:"插入模板",anchor:"锚点",yes:"确定",no:"取消",close:"关闭",editImage:"图片属性",deleteImage:"删除图片",editFlash:"Flash属性",deleteFlash:"删除Flash",editMedia:"视音频属性",deleteMedia:"删除视音频",editLink:"超级链接属性",deleteLink:"取消超级链接",editAnchor:"锚点属性",deleteAnchor:"删除锚点",tableprop:"表格属性",tablecellprop:"单元格属性",tableinsert:"插入表格",tabledelete:"删除表格",tablecolinsertleft:"左侧插入列",tablecolinsertright:"右侧插入列",tablerowinsertabove:"上方插入行",tablerowinsertbelow:"下方插入行",tablerowmerge:"向下合并单元格",tablecolmerge:"向右合并单元格",tablerowsplit:"拆分行",tablecolsplit:"拆分列",tablecoldelete:"删除列",tablerowdelete:"删除行",noColor:"无颜色",pleaseSelectFile:"请选择文件。",invalidImg:"请输入有效的URL地址。\n只允许jpg,gif,bmp,png格式。",invalidMedia:"请输入有效的URL地址。\n只允许swf,flv,mp3,wav,wma,wmv,mid,avi,mpg,asf,rm,rmvb格式。",invalidWidth:"宽度必须为数字。",invalidHeight:"高度必须为数字。",invalidBorder:"边框必须为数字。",invalidUrl:"请输入有效的URL地址。",invalidRows:"行数为必选项,只允许输入大于0的数字。",invalidCols:"列数为必选项,只允许输入大于0的数字。",invalidPadding:"边距必须为数字。",invalidSpacing:"间距必须为数字。",invalidJson:"服务器发生故障。",uploadSuccess:"上传成功。",cutError:"您的浏览器安全设置不允许使用剪切操作,请使用快捷键(Ctrl+X)来完成。",copyError:"您的浏览器安全设置不允许使用复制操作,请使用快捷键(Ctrl+C)来完成。",pasteError:"您的浏览器安全设置不允许使用粘贴操作,请使用快捷键(Ctrl+V)来完成。",ajaxLoading:"加载中,请稍候 ...",uploadLoading:"上传中,请稍候 ...",uploadError:"上传错误","plainpaste.comment":"请使用快捷键(Ctrl+V)把内容粘贴到下面的方框里。","wordpaste.comment":"请使用快捷键(Ctrl+V)把内容粘贴到下面的方框里。","code.pleaseInput":"请输入程序代码。","link.url":"URL","link.linkType":"打开类型","link.newWindow":"新窗口","link.selfWindow":"当前窗口","flash.url":"URL","flash.width":"宽度","flash.height":"高度","flash.upload":"上传","flash.viewServer":"文件空间","media.url":"URL","media.width":"宽度","media.height":"高度","media.autostart":"自动播放","media.upload":"上传","media.viewServer":"文件空间","image.remoteImage":"网络图片","image.localImage":"本地上传","image.remoteUrl":"图片地址","image.localUrl":"上传文件","image.size":"图片大小","image.width":"宽","image.height":"高","image.resetSize":"重置大小","image.align":"对齐方式","image.defaultAlign":"默认方式","image.leftAlign":"左对齐","image.rightAlign":"右对齐","image.imgTitle":"图片说明","image.upload":"浏览...","image.viewServer":"图片空间","multiimage.uploadDesc":"允许用户同时上传<%=uploadLimit%>张图片,单张图片容量不超过<%=sizeLimit%>","multiimage.startUpload":"开始上传","multiimage.clearAll":"全部清空","multiimage.insertAll":"全部插入","multiimage.queueLimitExceeded":"文件数量超过限制。","multiimage.fileExceedsSizeLimit":"文件大小超过限制。","multiimage.zeroByteFile":"无法上传空文件。","multiimage.invalidFiletype":"文件类型不正确。","multiimage.unknownError":"发生异常,无法上传。","multiimage.pending":"等待上传","multiimage.uploadError":"上传失败","filemanager.emptyFolder":"空文件夹","filemanager.moveup":"移到上一级文件夹","filemanager.viewType":"显示方式:","filemanager.viewImage":"缩略图","filemanager.listImage":"详细信息","filemanager.orderType":"排序方式:","filemanager.fileName":"名称","filemanager.fileSize":"大小","filemanager.fileType":"类型","insertfile.url":"URL","insertfile.title":"文件说明","insertfile.upload":"上传","insertfile.viewServer":"文件空间","table.cells":"单元格数","table.rows":"行数","table.cols":"列数","table.size":"大小","table.width":"宽度","table.height":"高度","table.percent":"%","table.px":"px","table.space":"边距间距","table.padding":"边距","table.spacing":"间距","table.align":"对齐方式","table.textAlign":"水平对齐","table.verticalAlign":"垂直对齐","table.alignDefault":"默认","table.alignLeft":"左对齐","table.alignCenter":"居中","table.alignRight":"右对齐","table.alignTop":"顶部","table.alignMiddle":"中部","table.alignBottom":"底部","table.alignBaseline":"基线","table.border":"边框","table.borderWidth":"边框","table.borderColor":"颜色","table.backgroundColor":"背景颜色","map.address":"地址: ","map.search":"搜索","baidumap.address":"地址: ","baidumap.search":"搜索","baidumap.insertDynamicMap":"插入动态地图","anchor.name":"锚点名称","formatblock.formatBlock":{h1:"标题 1",h2:"标题 2",h3:"标题 3",h4:"标题 4",p:"正 文"},"fontname.fontName":{SimSun:"宋体",NSimSun:"新宋体",FangSong_GB2312:"仿宋_GB2312",KaiTi_GB2312:"楷体_GB2312",SimHei:"黑体","Microsoft YaHei":"微软雅黑",Arial:"Arial","Arial Black":"Arial Black","Times New Roman":"Times New Roman","Courier New":"Courier New",Tahoma:"Tahoma",Verdana:"Verdana"},"lineheight.lineHeight":[{1:"单倍行距"},{1.5:"1.5倍行距"},{2:"2倍行距"},{2.5:"2.5倍行距"},{3:"3倍行距"}],"template.selectTemplate":"可选模板","template.replaceContent":"替换当前内容","template.fileList":{"1.html":"图片和文字","2.html":"表格","3.html":"项目编号"}},"zh-CN"),KindEditor.options.langType="zh-CN",KindEditor.plugin("anchor",function(a){var b=this,c="anchor",d=b.lang(c+".");b.plugin.anchor={edit:function(){var e=['
    ','
    ','",'',"
    ","
    "].join(""),f=b.createDialog({name:c,width:300,title:b.lang(c),body:e,yesBtn:{name:b.lang("yes"),click:function(a){b.insertHtml('').hideDialog().focus()}}}),g=f.div,h=a('input[name="name"]',g),i=b.plugin.getSelectedAnchor();i&&h.val(unescape(i.attr("data-ke-name"))),h[0].focus(),h[0].select()},"delete":function(){b.plugin.getSelectedAnchor().remove()}},b.clickToolbar(c,b.plugin.anchor.edit)}),KindEditor.plugin("autoheight",function(a){function b(){var a=e.edit,b=a.doc.body;a.iframe[0].scroll="no",b.style.overflowY="hidden"}function c(){if(!e.fullscreenMode){var b=e.edit,c=b.doc.body;b.iframe.height(f),e.resize(null,Math.max((a.IE?c.scrollHeight:c.offsetHeight)+76,f))}}function d(){f=a.removeUnit(e.height),e.edit.afterChange(c),e.fullscreenMode||b(),c()}var e=this;if(e.autoHeightMode){var f;e.isCreated?d():e.afterCreate(d)}}),KindEditor.plugin("baidumap",function(a){var b=this,c="baidumap",d=b.lang(c+"."),e=a.undef(b.mapWidth,558),f=a.undef(b.mapHeight,360);b.clickToolbar(c,function(){function g(){h=p[0].contentWindow,i=a.iframeDoc(p)}var h,i,j=['
    ','
    ','
    ',d.address+' ','','',"","
    ",'
    ',' ","
    ",'
    ',"
    ",'
    ',"
    "].join(""),k=b.createDialog({name:c,width:e+42,title:b.lang(c),body:j,yesBtn:{name:b.lang("yes"),click:function(a){var c=h.map,d=c.getCenter(),g=d.lng+","+d.lat,i=c.getZoom(),j=[o[0].checked?b.pluginsPath+"baidumap/index.html":"http://api.map.baidu.com/staticimage","?center="+encodeURIComponent(g),"&zoom="+encodeURIComponent(i),"&width="+e,"&height="+f,"&markers="+encodeURIComponent(g),"&markerStyles="+encodeURIComponent("l,A")].join("");o[0].checked?b.insertHtml(''):b.exec("insertimage",j),b.hideDialog().focus()}},beforeRemove:function(){n.remove(),i&&i.write(""),p.remove()}}),l=k.div,m=a('[name="address"]',l),n=a('[name="searchBtn"]',l),o=a('[name="insertDynamicMap"]',k.div),p=a('');p.bind("load",function(){p.unbind("load"),a.IE?g():setTimeout(g,0)}),a(".ke-map",l).replaceWith(p),n.click(function(){h.search(m.val())})})}),KindEditor.plugin("map",function(a){var b=this,c="map",d=b.lang(c+".");b.clickToolbar(c,function(){function e(){f=m[0].contentWindow,g=a.iframeDoc(m)}var f,g,h=['
    ','
    ',d.address+' ','','',"","
    ",'
    ',"
    "].join(""),i=b.createDialog({name:c,width:600,title:b.lang(c),body:h,yesBtn:{name:b.lang("yes"),click:function(a){var c=(f.geocoder,f.map),d=c.getCenter().lat()+","+c.getCenter().lng(),e=c.getZoom(),g=c.getMapTypeId(),h="http://maps.googleapis.com/maps/api/staticmap";h+="?center="+encodeURIComponent(d),h+="&zoom="+encodeURIComponent(e),h+="&size=558x360",h+="&maptype="+encodeURIComponent(g),h+="&markers="+encodeURIComponent(d),h+="&language="+b.langType,h+="&sensor=false",b.exec("insertimage",h).hideDialog().focus()}},beforeRemove:function(){l.remove(),g&&g.write(""),m.remove()}}),j=i.div,k=a('[name="address"]',j),l=a('[name="searchBtn"]',j),m=(["",'',"",'',"","",'','
    ',""].join("\n"),a(''));m.bind("load",function(){m.unbind("load"),a.IE?e():setTimeout(e,0)}),a(".ke-map",j).replaceWith(m),l.click(function(){f.search(k.val())})})}),KindEditor.plugin("clearhtml",function(a){var b=this,c="clearhtml";b.clickToolbar(c,function(){b.focus();var c=b.html();c=c.replace(/(]*>)([\s\S]*?)(<\/script>)/gi,""),c=c.replace(/(]*>)([\s\S]*?)(<\/style>)/gi,""),c=a.formatHtml(c,{a:["href","target"],embed:["src","width","height","type","loop","autostart","quality",".width",".height","align","allowscriptaccess"],img:["src","width","height","border","alt","title",".width",".height"],table:["border"],"td,th":["rowspan","colspan"],"div,hr,br,tbody,tr,p,ol,ul,li,blockquote,h1,h2,h3,h4,h5,h6":[]}),b.html(c),b.cmd.selection(!0),b.addBookmark()})}),KindEditor.plugin("code",function(a){var b=this,c="code";b.clickToolbar(c,function(){var d=b.lang(c+"."),e=['
    ','
    ','","
    ",'',"
    "].join(""),f=b.createDialog({name:c,width:450,title:b.lang(c),body:e,yesBtn:{name:b.lang("yes"),click:function(c){var e=a(".ke-code-type",f.div).val(),h=g.val(),i=""===e?"":" lang-"+e,j='
    \n'+a.escape(h)+"
    ";return""===a.trim(h)?(alert(d.pleaseInput),void g[0].focus()):void b.insertHtml(j).hideDialog().focus()}}}),g=a("textarea",f.div);g[0].focus()})}),KindEditor.plugin("emoticons",function(a){var b=this,c="emoticons",d=b.emoticonsPath||b.pluginsPath+"emoticons/images/",e=void 0===b.allowPreviewEmoticons?!0:b.allowPreviewEmoticons,f=1;b.clickToolbar(c,function(){function g(c,e,f){v?c.mouseover(function(){e>r?(v.css("left",0),v.css("right","")):(v.css("left",""),v.css("right",0)),w.attr("src",d+f+".gif"),a(this).addClass("ke-on")}):c.mouseover(function(){a(this).addClass("ke-on")}),c.mouseout(function(){a(this).removeClass("ke-on")}),c.click(function(a){b.insertHtml('').hideMenu().focus(),a.stop()})}function h(b,c){var e=document.createElement("table");c.append(e),v&&(a(e).mouseover(function(){v.show("block")}),a(e).mouseout(function(){v.hide()}),t.push(a(e))),e.className="ke-table",e.cellPadding=0,e.cellSpacing=0,e.border=0;for(var f=(b-1)*p+o,h=0;l>h;h++)for(var i=e.insertRow(h),j=0;m>j;j++){var k=a(i.insertCell(j));k.addClass("ke-cell"),g(k,j,f);var n=a('').css("background-position","-"+24*f+"px 0px").css("background-image","url("+d+"static.gif)");k.append(n),t.push(k),f++}return e}function i(){a.each(t,function(){this.unbind()})}function j(a,b){a.click(function(a){i(),y.parentNode.removeChild(y),x.remove(),y=h(b,s),k(b),f=b,a.stop()})}function k(b){x=a('
    '),s.append(x);for(var c=1;q>=c;c++){if(b!==c){var d=a('
    ['+c+"]");j(d,c),x.append(d),t.push(d)}else x.append(a("@["+c+"]"));x.append(a("@ "))}}var l=5,m=9,n=135,o=0,p=l*m,q=Math.ceil(n/p),r=Math.floor(m/2),s=a('
    '),t=[],u=b.createMenu({name:c,beforeRemove:function(){i()}});u.div.append(s);var v,w;e&&(v=a('
    ').css("right",0),w=a(''),s.append(v),v.append(w));var x,y=h(f,s);k(f)})}),KindEditor.plugin("filemanager",function(a){function b(a,b,c){return a+" ("+Math.ceil(b/1024)+"KB, "+c+")"}function c(a,c){c.is_dir?a.attr("title",c.filename):a.attr("title",b(c.filename,c.filesize,c.datetime))}var d=this,e="filemanager",f=a.undef(d.fileManagerJson,d.basePath+"php/file_manager_json.php"),g=d.pluginsPath+e+"/images/",h=d.lang(e+".");d.plugin.filemanagerDialog=function(b){function i(b,c,e){var g="path="+b+"&order="+c+"&dir="+p;t.showLoading(d.lang("ajaxLoading")),a.ajax(a.addParam(f,g+"&"+(new Date).getTime()),function(a){t.hideLoading(),e(a)})}function j(b,c,d,e){var f=a.formatUrl(c.current_url+d.filename,"absolute"),g=encodeURIComponent(c.current_dir_path+d.filename+"/");d.is_dir?b.click(function(a){i(g,y.val(),e)}):d.is_photo?b.click(function(a){r.call(this,f,d.filename)}):b.click(function(a){r.call(this,f,d.filename)}),z.push(b)}function k(b,c){function d(){"VIEW"==x.val()?i(b.current_dir_path,y.val(),m):i(b.current_dir_path,y.val(),l)}a.each(z,function(){this.unbind()}),w.unbind(),x.unbind(),y.unbind(),b.current_dir_path&&w.click(function(a){i(b.moveup_dir_path,y.val(),c)}),x.change(d),y.change(d),v.html("")}function l(b){k(b,l);var c=document.createElement("table");c.className="ke-table",c.cellPadding=0,c.cellSpacing=0,c.border=0,v.append(c);for(var d=b.file_list,e=0,f=d.length;f>e;e++){var i=d[e],m=a(c.insertRow(e));m.mouseover(function(b){a(this).addClass("ke-on")}).mouseout(function(b){a(this).removeClass("ke-on")});var n=g+(i.is_dir?"folder-16.gif":"file-16.gif"),o=a(''+i.filename+''),p=a(m[0].insertCell(0)).addClass("ke-cell ke-name").append(o).append(document.createTextNode(" "+i.filename));!i.is_dir||i.has_file?(m.css("cursor","pointer"),p.attr("title",i.filename),j(p,b,i,l)):p.attr("title",h.emptyFolder),a(m[0].insertCell(1)).addClass("ke-cell ke-size").html(i.is_dir?"-":Math.ceil(i.filesize/1024)+"KB"),a(m[0].insertCell(2)).addClass("ke-cell ke-datetime").html(i.datetime)}}function m(b){k(b,m);for(var d=b.file_list,e=0,f=d.length;f>e;e++){var i=d[e],l=a('
    ');v.append(l);var n=a('
    ').mouseover(function(b){a(this).addClass("ke-on")}).mouseout(function(b){a(this).removeClass("ke-on")});l.append(n);var o=b.current_url+i.filename,p=i.is_dir?g+"folder-64.gif":i.is_photo?o:g+"file-64.gif",q=a(''+i.filename+'');!i.is_dir||i.has_file?(n.css("cursor","pointer"),c(n,i),j(n,b,i,m)):n.attr("title",h.emptyFolder),n.append(q),l.append('
    '+i.filename+"
    ")}}var n=a.undef(b.width,650),o=a.undef(b.height,510),p=a.undef(b.dirName,""),q=a.undef(b.viewType,"VIEW").toUpperCase(),r=b.clickFn,s=['
    ','
    ','
    ',' ',''+h.moveup+"","
    ",'
    ',h.viewType+' ",h.orderType+' ","
    ",'
    ',"
    ",'
    ',"
    "].join(""),t=d.createDialog({name:e,width:n,height:o,title:d.lang(e),body:s}),u=t.div,v=a(".ke-plugin-filemanager-body",u),w=(a('[name="moveupImg"]',u),a('[name="moveupLink"]',u)),x=(a('[name="viewServer"]',u),a('[name="viewType"]',u)),y=a('[name="orderType"]',u),z=[];return x.val(q),i("",y.val(),"VIEW"==q?m:l),t}}),KindEditor.plugin("image",function(a){var b=this,c="image",d=a.undef(b.allowImageUpload,!0),e=a.undef(b.allowImageRemote,!0),f=a.undef(b.formatUploadUrl,!0),g=a.undef(b.allowFileManager,!1),h=a.undef(b.uploadJson,b.basePath+"php/upload_json.php"),i=a.undef(b.imageTabIndex,0),j=b.pluginsPath+"image/images/",k=a.undef(b.extraFileUploadParams,{}),l=a.undef(b.filePostName,"imgFile"),m=a.undef(b.fillDescAfterUploadImage,!1),n=b.lang(c+".");b.plugin.imageDialog=function(d){function e(a,b){D.val(a),E.val(b),J=a,K=b}var i=(d.imageUrl,a.undef(d.imageWidth,""),a.undef(d.imageHeight,""),a.undef(d.imageTitle,""),a.undef(d.imageAlign,""),a.undef(d.showRemote,!0)),o=a.undef(d.showLocal,!0),p=a.undef(d.tabIndex,0),q=d.clickFn,r="kindeditor_upload_iframe_"+(new Date).getTime(),s=[];for(var t in k)s.push('');var u,v=['
    ','
    ','",'","
    "].join(""),w=o||g?450:400,x=o&&i?300:250,y=b.createDialog({name:c,width:w,height:x,title:b.lang(c),body:v,yesBtn:{name:b.lang("yes"),click:function(c){if(!y.isLoading){if(o&&i&&u&&1===u.selectedIndex||!i)return""==I.fileBox.val()?void alert(b.lang("pleaseSelectFile")):(y.showLoading(b.lang("uploadLoading")),I.submit(),void B.val(""));var d=a.trim(A.val()),e=D.val(),f=E.val(),g=G.val(),h="";return H.each(function(){return this.checked?(h=this.value,!1):void 0}),"http://"==d||a.invalidUrl(d)?(alert(b.lang("invalidUrl")),void A[0].focus()):/^\d*$/.test(e)?/^\d*$/.test(f)?void q.call(b,d,g,e,f,0,h):(alert(b.lang("invalidHeight")),void E[0].focus()):(alert(b.lang("invalidWidth")),void D[0].focus())}}},beforeRemove:function(){C.unbind(),D.unbind(),E.unbind(),F.unbind()}}),z=y.div,A=a('[name="url"]',z),B=a('[name="localUrl"]',z),C=a('[name="viewServer"]',z),D=a('.tab1 [name="width"]',z),E=a('.tab1 [name="height"]',z),F=a(".ke-refresh-btn",z),G=a('.tab1 [name="title"]',z),H=a('.tab1 [name="align"]',z);i&&o?(u=a.tabs({src:a(".tabs",z),afterSelect:function(a){}}),u.add({title:n.remoteImage,panel:a(".tab1",z)}),u.select(p)):i?a(".tab1",z).show():o&&a(".tab2",z).show();var I=a.uploadbutton({button:a(".ke-upload-button",z)[0],fieldName:l,form:a(".ke-form",z),target:r,width:60,afterUpload:function(d){if(y.hideLoading(),0===d.error){var e=d.url;f&&(e=a.formatUrl(e,"absolute")),b.afterUpload&&b.afterUpload.call(b,e,d,c),m?(a(".ke-dialog-row #remoteUrl",z).val(e),a(".ke-tabs-li",z)[0].click(),a(".ke-refresh-btn",z).click()):q.call(b,e,d.title,d.width,d.height,d.border,d.align)}else alert(d.message)},afterError:function(a){y.hideLoading(),b.errorDialog(a)}});I.fileBox.change(function(a){B.val(I.fileBox.val())}),g?C.click(function(c){b.loadPlugin("filemanager",function(){b.plugin.filemanagerDialog({viewType:"VIEW",dirName:"image",clickFn:function(c,d){b.dialogs.length>1&&(a('[name="url"]',z).val(c),b.afterSelectFile&&b.afterSelectFile.call(b,c),b.hideDialog())}})})}):C.hide();var J=0,K=0;return F.click(function(b){var c=a('',document).css({position:"absolute",visibility:"hidden",top:0,left:"-1000px"});c.bind("load",function(){e(c.width(),c.height()),c.remove()}),a(document.body).append(c)}),D.change(function(a){J>0&&E.val(Math.round(K/J*parseInt(this.value,10)))}),E.change(function(a){K>0&&D.val(Math.round(J/K*parseInt(this.value,10)))}),A.val(d.imageUrl),e(d.imageWidth,d.imageHeight),G.val(d.imageTitle),H.each(function(){return this.value===d.imageAlign?(this.checked=!0,!1):void 0}),i&&0===p&&(A[0].focus(),A[0].select()),y},b.plugin.image={edit:function(){var a=b.plugin.getSelectedImage();b.plugin.imageDialog({imageUrl:a?a.attr("data-ke-src"):"http://",imageWidth:a?a.width():"",imageHeight:a?a.height():"",imageTitle:a?a.attr("title"):"",imageAlign:a?a.attr("align"):"",showRemote:e,showLocal:d,tabIndex:a?0:i,clickFn:function(c,d,e,f,g,h){a?(a.attr("src",c),a.attr("data-ke-src",c),a.attr("width",e),a.attr("height",f),a.attr("title",d),a.attr("align",h),a.attr("alt",d)):b.exec("insertimage",c,d,e,f,g,h),setTimeout(function(){b.hideDialog().focus()},0)}})},"delete":function(){var a=b.plugin.getSelectedImage();"a"==a.parent().name&&(a=a.parent()),a.remove(),b.addBookmark()}},b.clickToolbar(c,b.plugin.image.edit)}),KindEditor.plugin("insertfile",function(a){var b=this,c="insertfile",d=a.undef(b.allowFileUpload,!0),e=a.undef(b.allowFileManager,!1),f=a.undef(b.formatUploadUrl,!0),g=a.undef(b.uploadJson,b.basePath+"php/upload_json.php"),h=a.undef(b.extraFileUploadParams,{}),i=a.undef(b.filePostName,"imgFile"),j=b.lang(c+".");b.plugin.fileDialog=function(k){var l=a.undef(k.fileUrl,"http://"),m=a.undef(k.fileTitle,""),n=k.clickFn,o=['
    ','
    ','",'  ','  ','','',"","
    ",'
    ','",'
    ',"
    ","",""].join(""),p=b.createDialog({ +name:c,width:450,title:b.lang(c),body:o,yesBtn:{name:b.lang("yes"),click:function(c){var d=a.trim(r.val()),e=t.val();return"http://"==d||a.invalidUrl(d)?(alert(b.lang("invalidUrl")),void r[0].focus()):(""===a.trim(e)&&(e=d),void n.call(b,d,e))}}}),q=p.div,r=a('[name="url"]',q),s=a('[name="viewServer"]',q),t=a('[name="title"]',q);if(d){var u=a.uploadbutton({button:a(".ke-upload-button",q)[0],fieldName:i,url:a.addParam(g,"dir=file"),extraParams:h,afterUpload:function(d){if(p.hideLoading(),0===d.error){var e=d.url;f&&(e=a.formatUrl(e,"absolute")),r.val(e),b.afterUpload&&b.afterUpload.call(b,e,d,c),alert(b.lang("uploadSuccess"))}else alert(d.message)},afterError:function(a){p.hideLoading(),b.errorDialog(a)}});u.fileBox.change(function(a){p.showLoading(b.lang("uploadLoading")),u.submit()})}else a(".ke-upload-button",q).hide();e?s.click(function(c){b.loadPlugin("filemanager",function(){b.plugin.filemanagerDialog({viewType:"LIST",dirName:"file",clickFn:function(c,d){b.dialogs.length>1&&(a('[name="url"]',q).val(c),b.afterSelectFile&&b.afterSelectFile.call(b,c),b.hideDialog())}})})}):s.hide(),r.val(l),t.val(m),r[0].focus(),r[0].select()},b.clickToolbar(c,function(){b.plugin.fileDialog({clickFn:function(a,c){var d=''+c+"";b.insertHtml(d).hideDialog().focus()}})})}),KindEditor.plugin("lineheight",function(a){var b=this,c="lineheight",d=b.lang(c+".");b.clickToolbar(c,function(){var e="",f=b.cmd.commonNode({"*":".line-height"});f&&(e=f.css("line-height"));var g=b.createMenu({name:c,width:150});a.each(d.lineHeight,function(c,d){a.each(d,function(a,c){g.addItem({title:c,checked:e===a,click:function(){b.cmd.toggle('',{span:".line-height="+a}),b.updateState(),b.addBookmark(),b.hideMenu()}})})})})}),KindEditor.plugin("link",function(a){var b=this,c="link";b.plugin.link={edit:function(){var d=b.lang(c+"."),e='
    ',f=b.createDialog({name:c,width:450,title:b.lang(c),body:e,yesBtn:{name:b.lang("yes"),click:function(c){var d=a.trim(h.val());return"http://"==d||a.invalidUrl(d)?(alert(b.lang("invalidUrl")),void h[0].focus()):void b.exec("createlink",d,i.val()).hideDialog().focus()}}}),g=f.div,h=a('input[name="url"]',g),i=a('select[name="type"]',g);h.val("http://"),i[0].options[0]=new Option(d.newWindow,"_blank"),i[0].options[1]=new Option(d.selfWindow,""),b.cmd.selection();var j=b.plugin.getSelectedLink();j&&(b.cmd.range.selectNode(j[0]),b.cmd.select(),h.val(j.attr("data-ke-src")),i.val(j.attr("target"))),h[0].focus(),h[0].select()},"delete":function(){b.exec("unlink",null)}},b.clickToolbar(c,b.plugin.link.edit)}),KindEditor.plugin("pagebreak",function(a){var b=this,c="pagebreak",d=a.undef(b.pagebreakHtml,'
    ');b.clickToolbar(c,function(){var c=b.cmd,e=c.range;b.focus();var f="br"==b.newlineTag||a.WEBKIT?"":'';if(b.insertHtml(d+f),""!==f){var g=a("#__kindeditor_tail_tag__",b.edit.doc);e.selectNodeContents(g[0]),g.removeAttr("id"),c.select()}})}),KindEditor.plugin("plainpaste",function(a){var b=this,c="plainpaste";b.clickToolbar(c,function(){var d=b.lang(c+"."),e='
    '+d.comment+'
    ',f=b.createDialog({name:c,width:450,title:b.lang(c),body:e,yesBtn:{name:b.lang("yes"),click:function(c){var d=g.val();d=a.escape(d),d=d.replace(/ {2}/g,"  "),d="p"==b.newlineTag?d.replace(/^/,"

    ").replace(/$/,"

    ").replace(/\n/g,"

    "):d.replace(/\n/g,"
    $&"),b.insertHtml(d).hideDialog().focus()}}}),g=a("textarea",f.div);g[0].focus()})}),KindEditor.plugin("preview",function(a){var b=this,c="preview";b.clickToolbar(c,function(){var d=(b.lang(c+"."),'

    '),e=b.createDialog({name:c,width:750,title:b.lang(c),body:d}),f=a("iframe",e.div),g=a.iframeDoc(f);g.open(),g.write(b.fullHtml()),g.close(),a(g.body).css("background-color","#FFF"),f[0].contentWindow.focus()})}),KindEditor.plugin("quickformat",function(a){function b(a){for(var b=a.first();b&&b.first();)b=b.first();return b}var c=this,d="quickformat",e=a.toMap("blockquote,center,div,h1,h2,h3,h4,h5,h6,p");c.clickToolbar(d,function(){c.focus();for(var d,f=c.edit.doc,g=c.cmd.range,h=a(f.body).first(),i=[],j=[],k=g.createBookmark(!0);h;){d=h.next();var l=b(h);l&&"img"==l.name||(e[h.name]?(h.html(h.html().replace(/^(\s| | )+/gi,"")),h.css("text-indent","2em")):j.push(h),(!d||e[d.name]||e[h.name]&&!e[d.name])&&(j.length>0&&i.push(j),j=[])),h=d}a.each(i,function(b,c){var d=a('

    ',f);c[0].before(d),a.each(c,function(a,b){d.append(b)})}),g.moveToBookmark(k),c.addBookmark()})}),KindEditor.plugin("table",function(a){function b(a,b){b=b.toUpperCase(),a.css("background-color",b),a.css("color","#000000"===b?"#FFFFFF":"#000000"),a.html(b)}function c(c,d){function f(){a.each(i,function(){this.remove()}),i=[],a(document).unbind("click,mousedown",f),c.unbind("click,mousedown",f)}d.bind("click,mousedown",function(a){a.stopPropagation()}),d.click(function(d){f();var g=a(this),h=g.pos(),j=a.colorpicker({x:h.x,y:h.y+g.height(),z:811214,selectedColor:a(this).html(),colors:e.colorTable,noColor:e.lang("noColor"),shadowMode:e.shadowMode,click:function(a){b(g,a),f()}});i.push(j),a(document).bind("click,mousedown",f),c.bind("click,mousedown",f)})}function d(a,b,c){for(var d=0,e=0,f=b.cells.length;f>e&&b.cells[e]!=c;e++)d+=b.cells[e].rowSpan-1;return c.cellIndex-d}var e=this,f="table",g=e.lang(f+"."),h="ke-zeroborder",i=[];e.plugin.table={prop:function(d){var i=['
    ','
    ','",g.rows+'   ',g.cols+' ',"
    ",'
    ','",g.width+'   ','   ",g.height+'   ','","
    ",'
    ','",g.padding+'   ',g.spacing+' ',"
    ",'
    ','",'","
    ",'
    ','",g.borderWidth+'   ',g.borderColor+' ',"
    ",'
    ','",'',"
    ","
    "].join(""),j=e.cmd.range.createBookmark(),k=e.createDialog({name:f,width:500,title:e.lang(f),body:i,beforeRemove:function(){w.unbind()},yesBtn:{name:e.lang("yes"),click:function(b){var c=m.val(),d=n.val(),f=o.val(),g=p.val(),i=q.val(),k=r.val(),l=s.val(),y=t.val(),z=u.val(),A=v.val(),B=a(w[0]).html()||"",C=a(w[1]).html()||"";if(0==c||!/^\d+$/.test(c))return alert(e.lang("invalidRows")),void m[0].focus();if(0==d||!/^\d+$/.test(d))return alert(e.lang("invalidRows")),void n[0].focus();if(!/^\d*$/.test(f))return alert(e.lang("invalidWidth")),void o[0].focus();if(!/^\d*$/.test(g))return alert(e.lang("invalidHeight")),void p[0].focus();if(!/^\d*$/.test(l))return alert(e.lang("invalidPadding")),void s[0].focus();if(!/^\d*$/.test(y))return alert(e.lang("invalidSpacing")),void t[0].focus();if(!/^\d*$/.test(A))return alert(e.lang("invalidBorder")),void v[0].focus();if(x)return""!==f?x.width(f+i):x.css("width",""),void 0!==x[0].width&&x.removeAttr("width"),""!==g?x.height(g+k):x.css("height",""),void 0!==x[0].height&&x.removeAttr("height"),x.css("background-color",C),void 0!==x[0].bgColor&&x.removeAttr("bgColor"),""!==l?x[0].cellPadding=l:x.removeAttr("cellPadding"),""!==y?x[0].cellSpacing=y:x.removeAttr("cellSpacing"),""!==z?x[0].align=z:x.removeAttr("align"),""!==A?x.attr("border",A):x.removeAttr("border"),""===A||"0"===A?x.addClass(h):x.removeClass(h),""!==B?x.attr("borderColor",B):x.removeAttr("borderColor"),e.hideDialog().focus(),e.cmd.range.moveToBookmark(j),e.cmd.select(),void e.addBookmark();var D="";""!==f&&(D+="width:"+f+i+";"),""!==g&&(D+="height:"+g+k+";"),""!==C&&(D+="background-color:"+C+";");var E="F;F++){E+="";for(var G=0;d>G;G++)E+=""+(a.IE?" ":"
    ")+"";E+=""}E+="",a.IE||(E+="
    "),e.insertHtml(E),e.select().hideDialog().focus(),e.addBookmark()}}}),l=k.div,m=a('[name="rows"]',l).val(3),n=a('[name="cols"]',l).val(2),o=a('[name="width"]',l).val(100),p=a('[name="height"]',l),q=a('[name="widthType"]',l),r=a('[name="heightType"]',l),s=a('[name="padding"]',l).val(2),t=a('[name="spacing"]',l).val(0),u=a('[name="align"]',l),v=a('[name="border"]',l).val(1),w=a(".ke-input-color",l);c(l,w.eq(0)),c(l,w.eq(1)),b(w.eq(0),"#000000"),b(w.eq(1),""),m[0].focus(),m[0].select();var x;if(!d&&(x=e.plugin.getSelectedTable())){m.val(x[0].rows.length),n.val(x[0].rows.length>0?x[0].rows[0].cells.length:0),m.attr("disabled",!0),n.attr("disabled",!0);var y,z=x[0].style.width||x[0].width,A=x[0].style.height||x[0].height;void 0!==z&&(y=/^(\d+)((?:px|%)*)$/.exec(z))?(o.val(y[1]),q.val(y[2])):o.val(""),void 0!==A&&(y=/^(\d+)((?:px|%)*)$/.exec(A))&&(p.val(y[1]),r.val(y[2])),s.val(x[0].cellPadding||""),t.val(x[0].cellSpacing||""),u.val(x[0].align||""),v.val(void 0===x[0].border?"":x[0].border),b(w.eq(0),a.toHex(x.attr("borderColor")||"")),b(w.eq(1),a.toHex(x[0].style.backgroundColor||x[0].bgColor||"")),o[0].focus(),o[0].select()}},cellprop:function(){var d=['
    ','
    ','",g.width+'   ','   ",g.height+'   ','","
    ",'
    ','",g.textAlign+' ",g.verticalAlign+' ","
    ",'
    ','",g.borderWidth+'   ',g.borderColor+' ',"
    ",'
    ','",'',"
    ","
    "].join(""),h=e.cmd.range.createBookmark(),i=e.createDialog({name:f,width:500,title:e.lang("tablecell"),body:d,beforeRemove:function(){t.unbind()},yesBtn:{name:e.lang("yes"),click:function(b){var c=k.val(),d=l.val(),f=m.val(),g=n.val(),i=(o.val(),p.val(),q.val()),j=r.val(),u=s.val(),w=a(t[0]).html()||"",x=a(t[1]).html()||"";return/^\d*$/.test(c)?/^\d*$/.test(d)?/^\d*$/.test(u)?(v.css({width:""!==c?c+f:"",height:""!==d?d+g:"","background-color":x,"text-align":i,"vertical-align":j,"border-width":u,"border-style":""!==u?"solid":"","border-color":w}),e.hideDialog().focus(),e.cmd.range.moveToBookmark(h),e.cmd.select(),void e.addBookmark()):(alert(e.lang("invalidBorder")),void s[0].focus()):(alert(e.lang("invalidHeight")),void l[0].focus()):(alert(e.lang("invalidWidth")),void k[0].focus())}}}),j=i.div,k=a('[name="width"]',j).val(100),l=a('[name="height"]',j),m=a('[name="widthType"]',j),n=a('[name="heightType"]',j),o=a('[name="padding"]',j).val(2),p=a('[name="spacing"]',j).val(0),q=a('[name="textAlign"]',j),r=a('[name="verticalAlign"]',j),s=a('[name="border"]',j).val(1),t=a(".ke-input-color",j);c(j,t.eq(0)),c(j,t.eq(1)),b(t.eq(0),"#000000"),b(t.eq(1),""),k[0].focus(),k[0].select();var u,v=e.plugin.getSelectedCell(),w=v[0].style.width||v[0].width||"",x=v[0].style.height||v[0].height||"";(u=/^(\d+)((?:px|%)*)$/.exec(w))?(k.val(u[1]),m.val(u[2])):k.val(""),(u=/^(\d+)((?:px|%)*)$/.exec(x))&&(l.val(u[1]),n.val(u[2])),q.val(v[0].style.textAlign||""),r.val(v[0].style.verticalAlign||"");var y=v[0].style.borderWidth||"";y&&(y=parseInt(y)),s.val(y),b(t.eq(0),a.toHex(v[0].style.borderColor||"")),b(t.eq(1),a.toHex(v[0].style.backgroundColor||"")),k[0].focus(),k[0].select()},insert:function(){this.prop(!0)},"delete":function(){var a=e.plugin.getSelectedTable();e.cmd.range.setStartBefore(a[0]).collapse(!0),e.cmd.select(),a.remove(),e.addBookmark()},colinsert:function(b){var c=e.plugin.getSelectedTable()[0],f=e.plugin.getSelectedRow()[0],g=e.plugin.getSelectedCell()[0],h=g.cellIndex+b;h+=c.rows[0].cells.length-f.cells.length;for(var i=0,j=c.rows.length;j>i;i++){var k=c.rows[i],l=k.insertCell(h);l.innerHTML=a.IE?"":"
    ",h=d(c,k,l)}e.cmd.range.selectNodeContents(g).collapse(!0),e.cmd.select(),e.addBookmark()},colinsertleft:function(){this.colinsert(0)},colinsertright:function(){this.colinsert(1)},rowinsert:function(b){var c=e.plugin.getSelectedTable()[0],d=e.plugin.getSelectedRow()[0],f=e.plugin.getSelectedCell()[0],g=d.rowIndex;1===b&&(g=d.rowIndex+(f.rowSpan-1)+b);for(var h=c.insertRow(g),i=0,j=d.cells.length;j>i;i++){d.cells[i].rowSpan>1&&(j-=d.cells[i].rowSpan-1);var k=h.insertCell(i);1===b&&d.cells[i].colSpan>1&&(k.colSpan=d.cells[i].colSpan),k.innerHTML=a.IE?"":"
    "}for(var l=g;l>=0;l--){var m=c.rows[l].cells;if(m.length>i){for(var n=f.cellIndex;n>=0;n--)m[n].rowSpan>1&&(m[n].rowSpan+=1);break}}e.cmd.range.selectNodeContents(f).collapse(!0),e.cmd.select(),e.addBookmark()},rowinsertabove:function(){this.rowinsert(0)},rowinsertbelow:function(){this.rowinsert(1)},rowmerge:function(){var a=e.plugin.getSelectedTable()[0],b=e.plugin.getSelectedRow()[0],c=e.plugin.getSelectedCell()[0],d=b.rowIndex,f=d+c.rowSpan,g=a.rows[f];if(!(a.rows.length<=f)){var h=c.cellIndex;if(!(g.cells.length<=h)){var i=g.cells[h];c.colSpan===i.colSpan&&(c.rowSpan+=i.rowSpan,g.deleteCell(h),e.cmd.range.selectNodeContents(c).collapse(!0),e.cmd.select(),e.addBookmark())}}},colmerge:function(){var a=(e.plugin.getSelectedTable()[0],e.plugin.getSelectedRow()[0]),b=e.plugin.getSelectedCell()[0],c=(a.rowIndex,b.cellIndex),d=c+1;if(!(a.cells.length<=d)){var f=a.cells[d];b.rowSpan===f.rowSpan&&(b.colSpan+=f.colSpan,a.deleteCell(d),e.cmd.range.selectNodeContents(b).collapse(!0),e.cmd.select(),e.addBookmark())}},rowsplit:function(){var b=e.plugin.getSelectedTable()[0],c=e.plugin.getSelectedRow()[0],f=e.plugin.getSelectedCell()[0],g=c.rowIndex;if(1!==f.rowSpan){for(var h=d(b,c,f),i=1,j=f.rowSpan;j>i;i++){var k=b.rows[g+i],l=k.insertCell(h);f.colSpan>1&&(l.colSpan=f.colSpan),l.innerHTML=a.IE?"":"
    ",h=d(b,k,l)}a(f).removeAttr("rowSpan"),e.cmd.range.selectNodeContents(f).collapse(!0),e.cmd.select(),e.addBookmark()}},colsplit:function(){var b=(e.plugin.getSelectedTable()[0],e.plugin.getSelectedRow()[0]),c=e.plugin.getSelectedCell()[0],d=c.cellIndex;if(1!==c.colSpan){for(var f=1,g=c.colSpan;g>f;f++){var h=b.insertCell(d+f);c.rowSpan>1&&(h.rowSpan=c.rowSpan),h.innerHTML=a.IE?"":"
    "}a(c).removeAttr("colSpan"),e.cmd.range.selectNodeContents(c).collapse(!0),e.cmd.select(),e.addBookmark()}},coldelete:function(){for(var b=e.plugin.getSelectedTable()[0],c=e.plugin.getSelectedRow()[0],d=e.plugin.getSelectedCell()[0],f=d.cellIndex,g=0,h=b.rows.length;h>g;g++){var i=b.rows[g],j=i.cells[f];j.colSpan>1?(j.colSpan-=1,1===j.colSpan&&a(j).removeAttr("colSpan")):i.deleteCell(f),j.rowSpan>1&&(g+=j.rowSpan-1)}0===c.cells.length?(e.cmd.range.setStartBefore(b).collapse(!0),e.cmd.select(),a(b).remove()):e.cmd.selection(!0),e.addBookmark()},rowdelete:function(){for(var b=e.plugin.getSelectedTable()[0],c=e.plugin.getSelectedRow()[0],d=e.plugin.getSelectedCell()[0],f=c.rowIndex,g=d.rowSpan-1;g>=0;g--)b.deleteRow(f+g);0===b.rows.length?(e.cmd.range.setStartBefore(b).collapse(!0),e.cmd.select(),a(b).remove()):e.cmd.selection(!0),e.addBookmark()}},e.clickToolbar(f,e.plugin.table.prop)}),KindEditor.plugin("template",function(a){function b(b){return e+b+"?ver="+encodeURIComponent(a.DEBUG?a.TIME:a.VERSION)}var c=this,d="template",e=(c.lang(d+"."),c.pluginsPath+d+"/html/");c.clickToolbar(d,function(){var e=c.lang(d+"."),f=['
    ','
    ','
    ',e.selectTemplate+"
    ",'
    ',' ","
    ",'
    ',"
    ",'',"
    "].join("");var g=c.createDialog({name:d,width:500,title:c.lang(d),body:html,yesBtn:{name:c.lang("yes"),click:function(b){var d=a.iframeDoc(j);c[i[0].checked?"html":"insertHtml"](d.body.innerHTML).hideDialog().focus()}}}),h=a("select",g.div),i=a('[name="replaceFlag"]',g.div),j=a("iframe",g.div);i[0].checked=!0,j.attr("src",b(h.val())),h.change(function(){j.attr("src",b(this.value))})})}),KindEditor.plugin("wordpaste",function(a){var b=this,c="wordpaste";b.clickToolbar(c,function(){var d=b.lang(c+"."),e='
    '+d.comment+'
    ',f=b.createDialog({name:c,width:450,title:b.lang(c),body:e,yesBtn:{name:b.lang("yes"),click:function(c){var d=i.body.innerHTML;d=a.clearMsWord(d,b.filterMode?b.htmlTags:a.options.htmlTags),b.insertHtml(d).hideDialog().focus()}}}),g=f.div,h=a("iframe",g),i=a.iframeDoc(h);a.IE||(i.designMode="on"),i.open(),i.write("WordPaste"),i.write(''),a.IE||i.write("
    "),i.write(""),i.close(),a.IE&&(i.body.contentEditable="true"),h[0].contentWindow.focus()})}),KindEditor.plugin("fixtoolbar",function(a){function b(){var b=a(".ke-toolbar"),c=b.pos().y;a(window).bind("scroll",function(){"fixed"==b.css("position")?document.body.scrollTop-c<0&&(b.css("position","static"),b.css("top","auto")):b.pos().y-document.body.scrollTop<0&&(b.css("position","fixed"),b.css("top",0))})}var c=this;c.fixToolBar&&(c.isCreated?b():c.afterCreate(b))}); \ No newline at end of file diff --git a/static/kindeditor/kindeditor-all.js b/static/kindeditor/kindeditor-all.js new file mode 100644 index 0000000..966a400 --- /dev/null +++ b/static/kindeditor/kindeditor-all.js @@ -0,0 +1,8481 @@ +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2021 kindsoft.net +* +* @author Roddy +* @website http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +* @version 4.1.12 (2021-05-26) +*******************************************************************************/ +(function (window, undefined) { + if (window.KindEditor) { + return; + } + + +if (!window.console) { + window.console = {}; +} +if (!console.log) { + console.log = function () {}; +} +var _VERSION = '4.1.12 (2021-05-26)', + _ua = navigator.userAgent.toLowerCase(), + _IE = _ua.indexOf('msie') > -1 && _ua.indexOf('opera') == -1, + _NEWIE = _ua.indexOf('msie') == -1 && _ua.indexOf('trident') > -1, + _GECKO = _ua.indexOf('gecko') > -1 && _ua.indexOf('khtml') == -1, + _WEBKIT = _ua.indexOf('applewebkit') > -1, + _OPERA = _ua.indexOf('opera') > -1, + _MOBILE = _ua.indexOf('mobile') > -1, + _IOS = /ipad|iphone|ipod/.test(_ua), + _QUIRKS = document.compatMode != 'CSS1Compat', + _IERANGE = !window.getSelection, + _matches = /(?:msie|firefox|webkit|opera)[\/:\s](\d+)/.exec(_ua), + _V = _matches ? _matches[1] : '0', + _TIME = new Date().getTime(); +function _isArray(val) { + if (!val) { + return false; + } + return Object.prototype.toString.call(val) === '[object Array]'; +} +function _isFunction(val) { + if (!val) { + return false; + } + return Object.prototype.toString.call(val) === '[object Function]'; +} +function _inArray(val, arr) { + for (var i = 0, len = arr.length; i < len; i++) { + if (val === arr[i]) { + return i; + } + } + return -1; +} +function _each(obj, fn) { + if (_isArray(obj)) { + for (var i = 0, len = obj.length; i < len; i++) { + if (fn.call(obj[i], i, obj[i]) === false) { + break; + } + } + } else { + for (var key in obj) { + if (obj.hasOwnProperty(key)) { + if (fn.call(obj[key], key, obj[key]) === false) { + break; + } + } + } + } +} +function _trim(str) { + return str.replace(/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g, ''); +} +function _inString(val, str, delimiter) { + delimiter = delimiter === undefined ? ',' : delimiter; + return (delimiter + str + delimiter).indexOf(delimiter + val + delimiter) >= 0; +} +function _addUnit(val, unit) { + unit = unit || 'px'; + return val && /^-?\d+(?:\.\d+)?$/.test(val) ? val + unit : val; +} +function _removeUnit(val) { + var match; + return val && (match = /(\d+)/.exec(val)) ? parseInt(match[1], 10) : 0; +} +function _escape(val) { + return val.replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); +} +function _unescape(val) { + return val.replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"').replace(/&/g, '&'); +} +function _toCamel(str) { + var arr = str.split('-'); + str = ''; + _each(arr, function(key, val) { + str += (key > 0) ? val.charAt(0).toUpperCase() + val.substr(1) : val; + }); + return str; +} +function _toHex(val) { + function hex(d) { + var s = parseInt(d, 10).toString(16).toUpperCase(); + return s.length > 1 ? s : '0' + s; + } + return val.replace(/rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/ig, + function($0, $1, $2, $3) { + return '#' + hex($1) + hex($2) + hex($3); + } + ); +} +function _toMap(val, delimiter) { + delimiter = delimiter === undefined ? ',' : delimiter; + var map = {}, arr = _isArray(val) ? val : val.split(delimiter), match; + _each(arr, function(key, val) { + if ((match = /^(\d+)\.\.(\d+)$/.exec(val))) { + for (var i = parseInt(match[1], 10); i <= parseInt(match[2], 10); i++) { + map[i.toString()] = true; + } + } else { + map[val] = true; + } + }); + return map; +} +function _toArray(obj, offset) { + return Array.prototype.slice.call(obj, offset || 0); +} +function _undef(val, defaultVal) { + return val === undefined ? defaultVal : val; +} +function _invalidUrl(url) { + return !url || /[<>"]/.test(url); +} +function _addParam(url, param) { + return url.indexOf('?') >= 0 ? url + '&' + param : url + '?' + param; +} +function _extend(child, parent, proto) { + if (!proto) { + proto = parent; + parent = null; + } + var childProto; + if (parent) { + var fn = function () {}; + fn.prototype = parent.prototype; + childProto = new fn(); + _each(proto, function(key, val) { + childProto[key] = val; + }); + } else { + childProto = proto; + } + childProto.constructor = child; + child.prototype = childProto; + child.parent = parent ? parent.prototype : null; +} + +function _json(text) { + var match; + if ((match = /\{[\s\S]*\}|\[[\s\S]*\]/.exec(text))) { + text = match[0]; + } + var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g; + cx.lastIndex = 0; + if (cx.test(text)) { + text = text.replace(cx, function (a) { + return '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); + }); + } + if (/^[\],:{}\s]*$/. + test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@'). + replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']'). + replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { + return eval('(' + text + ')'); + } + throw 'JSON parse error'; +} +var _round = Math.round; +var K = { + DEBUG : false, + VERSION : _VERSION, + IE : _IE, + GECKO : _GECKO, + WEBKIT : _WEBKIT, + OPERA : _OPERA, + V : _V, + TIME : _TIME, + each : _each, + isArray : _isArray, + isFunction : _isFunction, + inArray : _inArray, + inString : _inString, + trim : _trim, + addUnit : _addUnit, + removeUnit : _removeUnit, + escape : _escape, + unescape : _unescape, + toCamel : _toCamel, + toHex : _toHex, + toMap : _toMap, + toArray : _toArray, + undef : _undef, + invalidUrl : _invalidUrl, + addParam : _addParam, + extend : _extend, + json : _json +}; +var _INLINE_TAG_MAP = _toMap('a,abbr,acronym,b,basefont,bdo,big,br,button,cite,code,del,dfn,em,font,i,img,input,ins,kbd,label,map,q,s,samp,select,small,span,strike,strong,sub,sup,textarea,tt,u,var'), + _BLOCK_TAG_MAP = _toMap('address,applet,blockquote,body,center,dd,dir,div,dl,dt,fieldset,form,frameset,h1,h2,h3,h4,h5,h6,head,hr,html,iframe,ins,isindex,li,map,menu,meta,noframes,noscript,object,ol,p,pre,script,style,table,tbody,td,tfoot,th,thead,title,tr,ul'), + _SINGLE_TAG_MAP = _toMap('area,base,basefont,br,col,frame,hr,img,input,isindex,link,meta,param,embed'), + _STYLE_TAG_MAP = _toMap('b,basefont,big,del,em,font,i,s,small,span,strike,strong,sub,sup,u'), + _CONTROL_TAG_MAP = _toMap('img,table,input,textarea,button'), + _PRE_TAG_MAP = _toMap('pre,style,script'), + _NOSPLIT_TAG_MAP = _toMap('html,head,body,td,tr,table,ol,ul,li'), + _AUTOCLOSE_TAG_MAP = _toMap('colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr'), + _FILL_ATTR_MAP = _toMap('checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected'), + _VALUE_TAG_MAP = _toMap('input,button,textarea,select'); + + +function _getBasePath() { + var els = document.getElementsByTagName('script'), src; + for (var i = 0, len = els.length; i < len; i++) { + src = els[i].src || ''; + if (/kindeditor[\w\-\.]*\.js/.test(src)) { + return src.substring(0, src.lastIndexOf('/') + 1); + } + } + return ''; +} +K.basePath = _getBasePath(); +K.options = { + designMode : true, + fullscreenMode : false, + filterMode : true, + wellFormatMode : true, + shadowMode : true, + loadStyleMode : true, + basePath : K.basePath, + themesPath : K.basePath + 'themes/', + langPath : K.basePath + 'lang/', + pluginsPath : K.basePath + 'plugins/', + themeType : 'default', + langType : 'zh-CN', + urlType : '', + newlineTag : 'p', + resizeType : 2, + syncType : 'form', + pasteType : 2, + dialogAlignType : 'page', + useContextmenu : true, + fullscreenShortcut : false, + bodyClass : 'ke-content', + indentChar : '\t', + cssPath : '', + cssData : '', + minWidth : 650, + minHeight : 100, + minChangeSize : 50, + zIndex : 811213, + items : [ + 'source', '|', 'undo', 'redo', '|', 'preview', 'print', 'template', 'code', 'cut', 'copy', 'paste', + 'plainpaste', 'wordpaste', '|', 'justifyleft', 'justifycenter', 'justifyright', + 'justifyfull', 'insertorderedlist', 'insertunorderedlist', 'indent', 'outdent', 'subscript', + 'superscript', 'clearhtml', 'quickformat', 'selectall', '|', 'fullscreen', '/', + 'formatblock', 'fontname', 'fontsize', '|', 'forecolor', 'hilitecolor', 'bold', + 'italic', 'underline', 'strikethrough', 'lineheight', 'removeformat', '|', 'image', 'insertfile', 'table', 'hr', 'emoticons', 'baidumap', 'pagebreak', + 'anchor', 'link', 'unlink', '|', 'about' + ], + noDisableItems : ['source', 'fullscreen'], + colorTable : [ + ['#E53333', '#E56600', '#FF9900', '#64451D', '#DFC5A4', '#FFE500'], + ['#009900', '#006600', '#99BB00', '#B8D100', '#60D978', '#00D5FF'], + ['#337FE5', '#003399', '#4C33E5', '#9933E5', '#CC33E5', '#EE33EE'], + ['#FFFFFF', '#CCCCCC', '#999999', '#666666', '#333333', '#000000'] + ], + fontSizeTable : ['9px', '10px', '12px', '14px', '16px', '18px', '24px', '32px'], + htmlTags : { + font : ['id', 'class', 'color', 'size', 'face', '.background-color'], + span : [ + 'id', 'class', '.color', '.background-color', '.font-size', '.font-family', '.background', + '.font-weight', '.font-style', '.text-decoration', '.vertical-align', '.line-height' + ], + div : [ + 'id', 'class', 'align', '.border', '.margin', '.padding', '.text-align', '.color', + '.background-color', '.font-size', '.font-family', '.font-weight', '.background', + '.font-style', '.text-decoration', '.vertical-align', '.margin-left' + ], + table: [ + 'id', 'class', 'border', 'cellspacing', 'cellpadding', 'width', 'height', 'align', 'bordercolor', + '.padding', '.margin', '.border', 'bgcolor', '.text-align', '.color', '.background-color', + '.font-size', '.font-family', '.font-weight', '.font-style', '.text-decoration', '.background', + '.width', '.height', '.border-collapse' + ], + 'td,th': [ + 'id', 'class', 'align', 'valign', 'width', 'height', 'colspan', 'rowspan', 'bgcolor', + '.text-align', '.color', '.background-color', '.font-size', '.font-family', '.font-weight', + '.font-style', '.text-decoration', '.vertical-align', '.background', '.border' + ], + a : ['id', 'class', 'href', 'target', 'name'], + embed : ['id', 'class', 'src', 'width', 'height', 'type', 'loop', 'autostart', 'quality', '.width', '.height', 'align', 'allowscriptaccess', 'wmode'], + img : ['id', 'class', 'src', 'width', 'height', 'border', 'alt', 'title', 'align', '.width', '.height', '.border'], + 'p,ol,ul,li,blockquote,h1,h2,h3,h4,h5,h6' : [ + 'id', 'class', 'align', '.text-align', '.color', '.background-color', '.font-size', '.font-family', '.background', + '.font-weight', '.font-style', '.text-decoration', '.vertical-align', '.text-indent', '.margin-left' + ], + pre : ['id', 'class'], + hr : ['id', 'class', '.page-break-after'], + 'br,tbody,tr,strong,b,sub,sup,em,i,u,strike,s,del' : ['id', 'class'], + iframe : ['id', 'class', 'src', 'frameborder', 'width', 'height', '.width', '.height'] + }, + layout : '
    ' +}; + + +var _useCapture = false; + +var _INPUT_KEY_MAP = _toMap('8,9,13,32,46,48..57,59,61,65..90,106,109..111,188,190..192,219..222'); +var _CURSORMOVE_KEY_MAP = _toMap('33..40'); +var _CHANGE_KEY_MAP = {}; +_each(_INPUT_KEY_MAP, function(key, val) { + _CHANGE_KEY_MAP[key] = val; +}); +_each(_CURSORMOVE_KEY_MAP, function(key, val) { + _CHANGE_KEY_MAP[key] = val; +}); + +function _bindEvent(el, type, fn) { + if (el.addEventListener){ + el.addEventListener(type, fn, _useCapture); + } else if (el.attachEvent){ + el.attachEvent('on' + type, fn); + } +} +function _unbindEvent(el, type, fn) { + if (el.removeEventListener){ + el.removeEventListener(type, fn, _useCapture); + } else if (el.detachEvent){ + el.detachEvent('on' + type, fn); + } +} +var _EVENT_PROPS = ('altKey,attrChange,attrName,bubbles,button,cancelable,charCode,clientX,clientY,ctrlKey,currentTarget,' + + 'data,detail,eventPhase,fromElement,handler,keyCode,metaKey,newValue,offsetX,offsetY,originalTarget,pageX,' + + 'pageY,prevValue,relatedNode,relatedTarget,screenX,screenY,shiftKey,srcElement,target,toElement,view,wheelDelta,which').split(','); + +function KEvent(el, event) { + this.init(el, event); +} +_extend(KEvent, { + init : function(el, event) { + var self = this, doc = el.ownerDocument || el.document || el; + self.event = event; + _each(_EVENT_PROPS, function(key, val) { + self[val] = event[val]; + }); + if (!self.target) { + self.target = self.srcElement || doc; + } + if (self.target.nodeType === 3) { + self.target = self.target.parentNode; + } + if (!self.relatedTarget && self.fromElement) { + self.relatedTarget = self.fromElement === self.target ? self.toElement : self.fromElement; + } + if (self.pageX == null && self.clientX != null) { + var d = doc.documentElement, body = doc.body; + self.pageX = self.clientX + (d && d.scrollLeft || body && body.scrollLeft || 0) - (d && d.clientLeft || body && body.clientLeft || 0); + self.pageY = self.clientY + (d && d.scrollTop || body && body.scrollTop || 0) - (d && d.clientTop || body && body.clientTop || 0); + } + if (!self.which && ((self.charCode || self.charCode === 0) ? self.charCode : self.keyCode)) { + self.which = self.charCode || self.keyCode; + } + if (!self.metaKey && self.ctrlKey) { + self.metaKey = self.ctrlKey; + } + if (!self.which && self.button !== undefined) { + self.which = (self.button & 1 ? 1 : (self.button & 2 ? 3 : (self.button & 4 ? 2 : 0))); + } + switch (self.which) { + case 186 : + self.which = 59; + break; + case 187 : + case 107 : + case 43 : + self.which = 61; + break; + case 189 : + case 45 : + self.which = 109; + break; + case 42 : + self.which = 106; + break; + case 47 : + self.which = 111; + break; + case 78 : + self.which = 110; + break; + } + if (self.which >= 96 && self.which <= 105) { + self.which -= 48; + } + }, + preventDefault : function() { + var ev = this.event; + if (ev.preventDefault) { + ev.preventDefault(); + } else { + ev.returnValue = false; + } + }, + stopPropagation : function() { + var ev = this.event; + if (ev.stopPropagation) { + ev.stopPropagation(); + } else { + ev.cancelBubble = true; + } + }, + stop : function() { + this.preventDefault(); + this.stopPropagation(); + } +}); +var _eventExpendo = 'kindeditor_' + _TIME, _eventId = 0, _eventData = {}; +function _getId(el) { + return el[_eventExpendo] || null; +} +function _setId(el) { + el[_eventExpendo] = ++_eventId; + return _eventId; +} +function _removeId(el) { + try { + delete el[_eventExpendo]; + } catch(e) { + if (el.removeAttribute) { + el.removeAttribute(_eventExpendo); + } + } +} +function _bind(el, type, fn) { + if (type.indexOf(',') >= 0) { + _each(type.split(','), function() { + _bind(el, this, fn); + }); + return; + } + var id = _getId(el); + if (!id) { + id = _setId(el); + } + if (_eventData[id] === undefined) { + _eventData[id] = {}; + } + var events = _eventData[id][type]; + if (events && events.length > 0) { + _unbindEvent(el, type, events[0]); + } else { + _eventData[id][type] = []; + _eventData[id].el = el; + } + events = _eventData[id][type]; + if (events.length === 0) { + events[0] = function(e) { + var kevent = e ? new KEvent(el, e) : undefined; + _each(events, function(i, event) { + if (i > 0 && event) { + event.call(el, kevent); + } + }); + }; + } + if (_inArray(fn, events) < 0) { + events.push(fn); + } + _bindEvent(el, type, events[0]); +} +function _unbind(el, type, fn) { + if (type && type.indexOf(',') >= 0) { + _each(type.split(','), function() { + _unbind(el, this, fn); + }); + return; + } + var id = _getId(el); + if (!id) { + return; + } + if (type === undefined) { + if (id in _eventData) { + _each(_eventData[id], function(key, events) { + if (key != 'el' && events.length > 0) { + _unbindEvent(el, key, events[0]); + } + }); + delete _eventData[id]; + _removeId(el); + } + return; + } + if (!_eventData[id]) { + return; + } + var events = _eventData[id][type]; + if (events && events.length > 0) { + if (fn === undefined) { + _unbindEvent(el, type, events[0]); + delete _eventData[id][type]; + } else { + _each(events, function(i, event) { + if (i > 0 && event === fn) { + events.splice(i, 1); + } + }); + if (events.length == 1) { + _unbindEvent(el, type, events[0]); + delete _eventData[id][type]; + } + } + var count = 0; + _each(_eventData[id], function() { + count++; + }); + if (count < 2) { + delete _eventData[id]; + _removeId(el); + } + } +} +function _fire(el, type) { + if (type.indexOf(',') >= 0) { + _each(type.split(','), function() { + _fire(el, this); + }); + return; + } + var id = _getId(el); + if (!id) { + return; + } + var events = _eventData[id][type]; + if (_eventData[id] && events && events.length > 0) { + events[0](); + } +} +function _ctrl(el, key, fn) { + var self = this; + key = /^\d{2,}$/.test(key) ? key : key.toUpperCase().charCodeAt(0); + _bind(el, 'keydown', function(e) { + if (e.ctrlKey && e.which == key && !e.shiftKey && !e.altKey) { + fn.call(el); + e.stop(); + } + }); +} +var _readyFinished = false; +function _ready(fn) { + if (_readyFinished) { + fn(KindEditor); + return; + } + var loaded = false; + function readyFunc() { + if (!loaded) { + loaded = true; + fn(KindEditor); + _readyFinished = true; + } + } + function ieReadyFunc() { + if (!loaded) { + try { + document.documentElement.doScroll('left'); + } catch(e) { + setTimeout(ieReadyFunc, 100); + return; + } + readyFunc(); + } + } + function ieReadyStateFunc() { + if (document.readyState === 'complete') { + readyFunc(); + } + } + if (document.addEventListener) { + _bind(document, 'DOMContentLoaded', readyFunc); + } else if (document.attachEvent) { + _bind(document, 'readystatechange', ieReadyStateFunc); + var toplevel = false; + try { + toplevel = window.frameElement == null; + } catch(e) {} + if (document.documentElement.doScroll && toplevel) { + ieReadyFunc(); + } + } + _bind(window, 'load', readyFunc); +} +if (window.attachEvent) { + window.attachEvent('onunload', function() { + _each(_eventData, function(key, events) { + if (events.el) { + _unbind(events.el); + } + }); + }); +} +K.ctrl = _ctrl; +K.ready = _ready; + +function _getCssList(css) { + css = css.replace(/"/g, '"'); + var list = {}, + reg = /\s*([\w\-]+)\s*:([^;]*)(;|$)/g, + match; + while ((match = reg.exec(css))) { + var key = _trim(match[1].toLowerCase()), + val = _trim(_toHex(match[2])); + list[key] = val; + } + return list; +} +function _getAttrList(tag) { + var list = {}, + reg = /\s+(?:([\w\-:]+)|(?:([\w\-:]+)=([^\s"'<>]+))|(?:([\w\-:"]+)="([^"]*)")|(?:([\w\-:"]+)='([^']*)'))(?=(?:\s|\/|>)+)/g, + match; + while ((match = reg.exec(tag))) { + var key = (match[1] || match[2] || match[4] || match[6]).toLowerCase(), + val = (match[2] ? match[3] : (match[4] ? match[5] : match[7])) || ''; + list[key] = val; + } + return list; +} +function _addClassToTag(tag, className) { + if (/\s+class\s*=/.test(tag)) { + tag = tag.replace(/(\s+class=["']?)([^"']*)(["']?[\s>])/, function($0, $1, $2, $3) { + if ((' ' + $2 + ' ').indexOf(' ' + className + ' ') < 0) { + return $2 === '' ? $1 + className + $3 : $1 + $2 + ' ' + className + $3; + } else { + return $0; + } + }); + } else { + tag = tag.substr(0, tag.length - 1) + ' class="' + className + '">'; + } + return tag; +} +function _formatCss(css) { + var str = ''; + _each(_getCssList(css), function(key, val) { + str += key + ':' + val + ';'; + }); + return str; +} +function _formatUrl(url, mode, host, pathname) { + mode = _undef(mode, '').toLowerCase(); + if (url.substr(0, 5) != 'data:') { + url = url.replace(/([^:])\/\//g, '$1/'); + } + if (_inArray(mode, ['absolute', 'relative', 'domain']) < 0) { + return url; + } + host = host || location.protocol + '//' + location.host; + if (pathname === undefined) { + var m = location.pathname.match(/^(\/.*)\//); + pathname = m ? m[1] : ''; + } + var match; + if ((match = /^(\w+:\/\/[^\/]*)/.exec(url))) { + if (match[1] !== host) { + return url; + } + } else if (/^\w+:/.test(url)) { + return url; + } + function getRealPath(path) { + var parts = path.split('/'), paths = []; + for (var i = 0, len = parts.length; i < len; i++) { + var part = parts[i]; + if (part == '..') { + if (paths.length > 0) { + paths.pop(); + } + } else if (part !== '' && part != '.') { + paths.push(part); + } + } + return '/' + paths.join('/'); + } + if (/^\//.test(url)) { + url = host + getRealPath(url.substr(1)); + } else if (!/^\w+:\/\//.test(url)) { + url = host + getRealPath(pathname + '/' + url); + } + function getRelativePath(path, depth) { + if (url.substr(0, path.length) === path) { + var arr = []; + for (var i = 0; i < depth; i++) { + arr.push('..'); + } + var prefix = '.'; + if (arr.length > 0) { + prefix += '/' + arr.join('/'); + } + if (pathname == '/') { + prefix += '/'; + } + return prefix + url.substr(path.length); + } else { + if ((match = /^(.*)\//.exec(path))) { + return getRelativePath(match[1], ++depth); + } + } + } + if (mode === 'relative') { + url = getRelativePath(host + pathname, 0).substr(2); + } else if (mode === 'absolute') { + if (url.substr(0, host.length) === host) { + url = url.substr(host.length); + } + } + return url; +} +function _formatHtml(html, htmlTags, urlType, wellFormatted, indentChar) { + if (html == null) { + html = ''; + } + urlType = urlType || ''; + wellFormatted = _undef(wellFormatted, false); + indentChar = _undef(indentChar, '\t'); + var fontSizeList = 'xx-small,x-small,small,medium,large,x-large,xx-large'.split(','); + html = html.replace(/(<(?:pre|pre\s[^>]*)>)([\s\S]*?)(<\/pre>)/ig, function($0, $1, $2, $3) { + return $1 + $2.replace(/<(?:br|br\s[^>]*)>/ig, '\n') + $3; + }); + html = html.replace(/<(?:br|br\s[^>]*)\s*\/?>\s*<\/p>/ig, '

    '); + html = html.replace(/(<(?:p|p\s[^>]*)>)\s*(<\/p>)/ig, '$1
    $2'); + html = html.replace(/\u200B/g, ''); + html = html.replace(/\u00A9/g, '©'); + html = html.replace(/\u00AE/g, '®'); + html = html.replace(/\u2003/g, ' '); + html = html.replace(/\u3000/g, ' '); + html = html.replace(/<[^>]+/g, function($0) { + return $0.replace(/\s+/g, ' '); + }); + var htmlTagMap = {}; + if (htmlTags) { + _each(htmlTags, function(key, val) { + var arr = key.split(','); + for (var i = 0, len = arr.length; i < len; i++) { + htmlTagMap[arr[i]] = _toMap(val); + } + }); + if (!htmlTagMap.script) { + html = html.replace(/(<(?:script|script\s[^>]*)>)([\s\S]*?)(<\/script>)/ig, ''); + } + if (!htmlTagMap.style) { + html = html.replace(/(<(?:style|style\s[^>]*)>)([\s\S]*?)(<\/style>)/ig, ''); + } + } + var re = /(\s*)<(\/)?([\w\-:]+)((?:\s+|(?:\s+[\w\-:]+)|(?:\s+[\w\-:]+=[^\s"'<>]+)|(?:\s+[\w\-:"]+="[^"]*")|(?:\s+[\w\-:"]+='[^']*'))*)(\/)?>(\s*)/g; + var tagStack = []; + html = html.replace(re, function($0, $1, $2, $3, $4, $5, $6) { + var full = $0, + startNewline = $1 || '', + startSlash = $2 || '', + tagName = $3.toLowerCase(), + attr = $4 || '', + endSlash = $5 ? ' ' + $5 : '', + endNewline = $6 || ''; + if (htmlTags && !htmlTagMap[tagName]) { + return ''; + } + if (endSlash === '' && _SINGLE_TAG_MAP[tagName]) { + endSlash = ' /'; + } + if (_INLINE_TAG_MAP[tagName]) { + if (startNewline) { + startNewline = ' '; + } + if (endNewline) { + endNewline = ' '; + } + } + if (_PRE_TAG_MAP[tagName]) { + if (startSlash) { + endNewline = '\n'; + } else { + startNewline = '\n'; + } + } + if (wellFormatted && tagName == 'br') { + endNewline = '\n'; + } + if (_BLOCK_TAG_MAP[tagName] && !_PRE_TAG_MAP[tagName]) { + if (wellFormatted) { + if (startSlash && tagStack.length > 0 && tagStack[tagStack.length - 1] === tagName) { + tagStack.pop(); + } else { + tagStack.push(tagName); + } + startNewline = '\n'; + endNewline = '\n'; + for (var i = 0, len = startSlash ? tagStack.length : tagStack.length - 1; i < len; i++) { + startNewline += indentChar; + if (!startSlash) { + endNewline += indentChar; + } + } + if (endSlash) { + tagStack.pop(); + } else if (!startSlash) { + endNewline += indentChar; + } + } else { + startNewline = endNewline = ''; + } + } + if (attr !== '') { + var attrMap = _getAttrList(full); + if (tagName === 'font') { + var fontStyleMap = {}, fontStyle = ''; + _each(attrMap, function(key, val) { + if (key === 'color') { + fontStyleMap.color = val; + delete attrMap[key]; + } + if (key === 'size') { + fontStyleMap['font-size'] = fontSizeList[parseInt(val, 10) - 1] || ''; + delete attrMap[key]; + } + if (key === 'face') { + fontStyleMap['font-family'] = val; + delete attrMap[key]; + } + if (key === 'style') { + fontStyle = val; + } + }); + if (fontStyle && !/;$/.test(fontStyle)) { + fontStyle += ';'; + } + _each(fontStyleMap, function(key, val) { + if (val === '') { + return; + } + if (/\s/.test(val)) { + val = "'" + val + "'"; + } + fontStyle += key + ':' + val + ';'; + }); + attrMap.style = fontStyle; + } + _each(attrMap, function(key, val) { + if (_FILL_ATTR_MAP[key]) { + attrMap[key] = key; + } + if (_inArray(key, ['src', 'href']) >= 0) { + attrMap[key] = _formatUrl(val, urlType); + } + if (htmlTags && key !== 'style' && !htmlTagMap[tagName]['*'] && !htmlTagMap[tagName][key] || + tagName === 'body' && key === 'contenteditable' || + /^kindeditor_\d+$/.test(key)) { + delete attrMap[key]; + } + if (key === 'style' && val !== '') { + var styleMap = _getCssList(val); + _each(styleMap, function(k, v) { + if (htmlTags && !htmlTagMap[tagName].style && !htmlTagMap[tagName]['.' + k]) { + delete styleMap[k]; + } + }); + var style = ''; + _each(styleMap, function(k, v) { + style += k + ':' + v + ';'; + }); + attrMap.style = style; + } + }); + attr = ''; + _each(attrMap, function(key, val) { + if (key === 'style' && val === '') { + return; + } + val = val.replace(/"/g, '"'); + attr += ' ' + key + '="' + val + '"'; + }); + } + if (tagName === 'font') { + tagName = 'span'; + } + return startNewline + '<' + startSlash + tagName + attr + endSlash + '>' + endNewline; + }); + html = html.replace(/(<(?:pre|pre\s[^>]*)>)([\s\S]*?)(<\/pre>)/ig, function($0, $1, $2, $3) { + return $1 + $2.replace(/\n/g, '\n') + $3; + }); + html = html.replace(/\n\s*\n/g, '\n'); + html = html.replace(/\n/g, '\n'); + return _trim(html); +} +function _clearMsWord(html, htmlTags) { + html = html.replace(//ig, '') + .replace(//ig, '') + .replace(/]*>[\s\S]*?<\/style>/ig, '') + .replace(/]*>[\s\S]*?<\/script>/ig, '') + .replace(/]+>[\s\S]*?<\/w:[^>]+>/ig, '') + .replace(/]+>[\s\S]*?<\/o:[^>]+>/ig, '') + .replace(/[\s\S]*?<\/xml>/ig, '') + .replace(/<(?:table|td)[^>]*>/ig, function(full) { + return full.replace(/border-bottom:([#\w\s]+)/ig, 'border:$1'); + }); + return _formatHtml(html, htmlTags); +} +function _mediaType(src) { + if (/\.(rm|rmvb)(\?|$)/i.test(src)) { + return 'audio/x-pn-realaudio-plugin'; + } + if (/\.(swf|flv)(\?|$)/i.test(src)) { + return 'application/x-shockwave-flash'; + } + return 'video/x-ms-asf-plugin'; +} +function _mediaClass(type) { + if (/realaudio/i.test(type)) { + return 'ke-rm'; + } + if (/flash/i.test(type)) { + return 'ke-flash'; + } + return 'ke-media'; +} +function _mediaAttrs(srcTag) { + return _getAttrList(unescape(srcTag)); +} +function _mediaEmbed(attrs) { + var html = ' 0) { + style += 'width:' + width + 'px;'; + } + if (/\D/.test(height)) { + style += 'height:' + height + ';'; + } else if (height > 0) { + style += 'height:' + height + 'px;'; + } + var html = ''; + return html; +} + +function _tmpl(str, data) { + var fn = new Function("obj", + "var p=[],print=function(){p.push.apply(p,arguments);};" + + "with(obj){p.push('" + + str.replace(/[\r\t\n]/g, " ") + .split("<%").join("\t") + .replace(/((^|%>)[^\t]*)'/g, "$1\r") + .replace(/\t=(.*?)%>/g, "',$1,'") + .split("\t").join("');") + .split("%>").join("p.push('") + .split("\r").join("\\'") + "');}return p.join('');"); + return data ? fn(data) : fn; +} +K.formatUrl = _formatUrl; +K.formatHtml = _formatHtml; +K.getCssList = _getCssList; +K.getAttrList = _getAttrList; +K.mediaType = _mediaType; +K.mediaAttrs = _mediaAttrs; +K.mediaEmbed = _mediaEmbed; +K.mediaImg = _mediaImg; +K.clearMsWord = _clearMsWord; +K.tmpl = _tmpl; + + +function _contains(nodeA, nodeB) { + if (nodeA.nodeType == 9 && nodeB.nodeType != 9) { + return true; + } + while ((nodeB = nodeB.parentNode)) { + if (nodeB == nodeA) { + return true; + } + } + return false; +} +var _getSetAttrDiv = document.createElement('div'); +_getSetAttrDiv.setAttribute('className', 't'); +var _GET_SET_ATTRIBUTE = _getSetAttrDiv.className !== 't'; +function _getAttr(el, key) { + key = key.toLowerCase(); + var val = null; + if (!_GET_SET_ATTRIBUTE && el.nodeName.toLowerCase() != 'script') { + var div = el.ownerDocument.createElement('div'); + div.appendChild(el.cloneNode(false)); + var list = _getAttrList(_unescape(div.innerHTML)); + if (key in list) { + val = list[key]; + } + } else { + try { + val = el.getAttribute(key, 2); + } catch(e) { + val = el.getAttribute(key, 1); + } + } + if (key === 'style' && val !== null) { + val = _formatCss(val); + } + return val; +} +function _queryAll(expr, root) { + var exprList = expr.split(','); + if (exprList.length > 1) { + var mergedResults = []; + _each(exprList, function() { + _each(_queryAll(this, root), function() { + if (_inArray(this, mergedResults) < 0) { + mergedResults.push(this); + } + }); + }); + return mergedResults; + } + root = root || document; + function escape(str) { + if (typeof str != 'string') { + return str; + } + return str.replace(/([^\w\-])/g, '\\$1'); + } + function stripslashes(str) { + return str.replace(/\\/g, ''); + } + function cmpTag(tagA, tagB) { + return tagA === '*' || tagA.toLowerCase() === escape(tagB.toLowerCase()); + } + function byId(id, tag, root) { + var arr = [], + doc = root.ownerDocument || root, + el = doc.getElementById(stripslashes(id)); + if (el) { + if (cmpTag(tag, el.nodeName) && _contains(root, el)) { + arr.push(el); + } + } + return arr; + } + function byClass(className, tag, root) { + var doc = root.ownerDocument || root, arr = [], els, i, len, el; + if (root.getElementsByClassName) { + els = root.getElementsByClassName(stripslashes(className)); + for (i = 0, len = els.length; i < len; i++) { + el = els[i]; + if (cmpTag(tag, el.nodeName)) { + arr.push(el); + } + } + } else if (doc.querySelectorAll) { + els = doc.querySelectorAll((root.nodeName !== '#document' ? root.nodeName + ' ' : '') + tag + '.' + className); + for (i = 0, len = els.length; i < len; i++) { + el = els[i]; + if (_contains(root, el)) { + arr.push(el); + } + } + } else { + els = root.getElementsByTagName(tag); + className = ' ' + className + ' '; + for (i = 0, len = els.length; i < len; i++) { + el = els[i]; + if (el.nodeType == 1) { + var cls = el.className; + if (cls && (' ' + cls + ' ').indexOf(className) > -1) { + arr.push(el); + } + } + } + } + return arr; + } + function byName(name, tag, root) { + var arr = [], doc = root.ownerDocument || root, + els = doc.getElementsByName(stripslashes(name)), el; + for (var i = 0, len = els.length; i < len; i++) { + el = els[i]; + if (cmpTag(tag, el.nodeName) && _contains(root, el)) { + if (el.getAttribute('name') !== null) { + arr.push(el); + } + } + } + return arr; + } + function byAttr(key, val, tag, root) { + var arr = [], els = root.getElementsByTagName(tag), el; + for (var i = 0, len = els.length; i < len; i++) { + el = els[i]; + if (el.nodeType == 1) { + if (val === null) { + if (_getAttr(el, key) !== null) { + arr.push(el); + } + } else { + if (val === escape(_getAttr(el, key))) { + arr.push(el); + } + } + } + } + return arr; + } + function select(expr, root) { + var arr = [], matches; + matches = /^((?:\\.|[^.#\s\[<>])+)/.exec(expr); + var tag = matches ? matches[1] : '*'; + if ((matches = /#((?:[\w\-]|\\.)+)$/.exec(expr))) { + arr = byId(matches[1], tag, root); + } else if ((matches = /\.((?:[\w\-]|\\.)+)$/.exec(expr))) { + arr = byClass(matches[1], tag, root); + } else if ((matches = /\[((?:[\w\-]|\\.)+)\]/.exec(expr))) { + arr = byAttr(matches[1].toLowerCase(), null, tag, root); + } else if ((matches = /\[((?:[\w\-]|\\.)+)\s*=\s*['"]?((?:\\.|[^'"]+)+)['"]?\]/.exec(expr))) { + var key = matches[1].toLowerCase(), val = matches[2]; + if (key === 'id') { + arr = byId(val, tag, root); + } else if (key === 'class') { + arr = byClass(val, tag, root); + } else if (key === 'name') { + arr = byName(val, tag, root); + } else { + arr = byAttr(key, val, tag, root); + } + } else { + var els = root.getElementsByTagName(tag), el; + for (var i = 0, len = els.length; i < len; i++) { + el = els[i]; + if (el.nodeType == 1) { + arr.push(el); + } + } + } + return arr; + } + var parts = [], arr, re = /((?:\\.|[^\s>])+|[\s>])/g; + while ((arr = re.exec(expr))) { + if (arr[1] !== ' ') { + parts.push(arr[1]); + } + } + var results = []; + if (parts.length == 1) { + return select(parts[0], root); + } + var isChild = false, part, els, subResults, val, v, i, j, k, length, len, l; + for (i = 0, lenth = parts.length; i < lenth; i++) { + part = parts[i]; + if (part === '>') { + isChild = true; + continue; + } + if (i > 0) { + els = []; + for (j = 0, len = results.length; j < len; j++) { + val = results[j]; + subResults = select(part, val); + for (k = 0, l = subResults.length; k < l; k++) { + v = subResults[k]; + if (isChild) { + if (val === v.parentNode) { + els.push(v); + } + } else { + els.push(v); + } + } + } + results = els; + } else { + results = select(part, root); + } + if (results.length === 0) { + return []; + } + } + return results; +} +function _query(expr, root) { + var arr = _queryAll(expr, root); + return arr.length > 0 ? arr[0] : null; +} +K.query = _query; +K.queryAll = _queryAll; + + +function _get(val) { + return K(val)[0]; +} +function _getDoc(node) { + if (!node) { + return document; + } + return node.ownerDocument || node.document || node; +} +function _getWin(node) { + if (!node) { + return window; + } + var doc = _getDoc(node); + return doc.parentWindow || doc.defaultView; +} +function _setHtml(el, html) { + if (el.nodeType != 1) { + return; + } + var doc = _getDoc(el); + try { + el.innerHTML = '' + html; + var temp = doc.getElementById('__kindeditor_temp_tag__'); + temp.parentNode.removeChild(temp); + } catch(e) { + K(el).empty(); + K('@' + html, doc).each(function() { + el.appendChild(this); + }); + } +} +function _hasClass(el, cls) { + return _inString(cls, el.className, ' '); +} +function _setAttr(el, key, val) { + if (_IE && _V < 8 && key.toLowerCase() == 'class') { + key = 'className'; + } + el.setAttribute(key, '' + val); +} +function _removeAttr(el, key) { + if (_IE && _V < 8 && key.toLowerCase() == 'class') { + key = 'className'; + } + _setAttr(el, key, ''); + el.removeAttribute(key); +} +function _getNodeName(node) { + if (!node || !node.nodeName) { + return ''; + } + return node.nodeName.toLowerCase(); +} +function _computedCss(el, key) { + var self = this, win = _getWin(el), camelKey = _toCamel(key), val = ''; + if (win.getComputedStyle) { + var style = win.getComputedStyle(el, null); + val = style[camelKey] || style.getPropertyValue(key) || el.style[camelKey]; + } else if (el.currentStyle) { + val = el.currentStyle[camelKey] || el.style[camelKey]; + } + return val; +} +function _hasVal(node) { + return !!_VALUE_TAG_MAP[_getNodeName(node)]; +} +function _docElement(doc) { + doc = doc || document; + return _QUIRKS ? doc.body : doc.documentElement; +} +function _docHeight(doc) { + var el = _docElement(doc); + return Math.max(el.scrollHeight, el.clientHeight); +} +function _docWidth(doc) { + var el = _docElement(doc); + return Math.max(el.scrollWidth, el.clientWidth); +} +function _getScrollPos(doc) { + doc = doc || document; + var x, y; + if (_IE || _NEWIE || _OPERA) { + x = _docElement(doc).scrollLeft; + y = _docElement(doc).scrollTop; + } else { + x = _getWin(doc).scrollX; + y = _getWin(doc).scrollY; + } + return {x : x, y : y}; +} + +function KNode(node) { + this.init(node); +} +_extend(KNode, { + init : function(node) { + var self = this; + node = _isArray(node) ? node : [node]; + var length = 0; + for (var i = 0, len = node.length; i < len; i++) { + if (node[i]) { + self[i] = node[i].constructor === KNode ? node[i][0] : node[i]; + length++; + } + } + self.length = length; + self.doc = _getDoc(self[0]); + self.name = _getNodeName(self[0]); + self.type = self.length > 0 ? self[0].nodeType : null; + self.win = _getWin(self[0]); + }, + each : function(fn) { + var self = this; + for (var i = 0; i < self.length; i++) { + if (fn.call(self[i], i, self[i]) === false) { + return self; + } + } + return self; + }, + bind : function(type, fn) { + this.each(function() { + _bind(this, type, fn); + }); + return this; + }, + unbind : function(type, fn) { + this.each(function() { + _unbind(this, type, fn); + }); + return this; + }, + fire : function(type) { + if (this.length < 1) { + return this; + } + _fire(this[0], type); + return this; + }, + hasAttr : function(key) { + if (this.length < 1) { + return false; + } + return !!_getAttr(this[0], key); + }, + attr : function(key, val) { + var self = this; + if (key === undefined) { + return _getAttrList(self.outer()); + } + if (typeof key === 'object') { + _each(key, function(k, v) { + self.attr(k, v); + }); + return self; + } + if (val === undefined) { + val = self.length < 1 ? null : _getAttr(self[0], key); + return val === null ? '' : val; + } + self.each(function() { + _setAttr(this, key, val); + }); + return self; + }, + removeAttr : function(key) { + this.each(function() { + _removeAttr(this, key); + }); + return this; + }, + get : function(i) { + if (this.length < 1) { + return null; + } + return this[i || 0]; + }, + eq : function(i) { + if (this.length < 1) { + return null; + } + return this[i] ? new KNode(this[i]) : null; + }, + hasClass : function(cls) { + if (this.length < 1) { + return false; + } + return _hasClass(this[0], cls); + }, + addClass : function(cls) { + this.each(function() { + if (!_hasClass(this, cls)) { + this.className = _trim(this.className + ' ' + cls); + } + }); + return this; + }, + removeClass : function(cls) { + this.each(function() { + if (_hasClass(this, cls)) { + this.className = _trim(this.className.replace(new RegExp('(^|\\s)' + cls + '(\\s|$)'), ' ')); + } + }); + return this; + }, + html : function(val) { + var self = this; + if (val === undefined) { + if (self.length < 1 || self.type != 1) { + return ''; + } + return _formatHtml(self[0].innerHTML); + } + self.each(function() { + _setHtml(this, val); + }); + return self; + }, + text : function() { + var self = this; + if (self.length < 1) { + return ''; + } + return _IE ? self[0].innerText : self[0].textContent; + }, + hasVal : function() { + if (this.length < 1) { + return false; + } + return _hasVal(this[0]); + }, + val : function(val) { + var self = this; + if (val === undefined) { + if (self.length < 1) { + return ''; + } + return self.hasVal() ? self[0].value : self.attr('value'); + } else { + self.each(function() { + if (_hasVal(this)) { + this.value = val; + } else { + _setAttr(this, 'value' , val); + } + }); + return self; + } + }, + css : function(key, val) { + var self = this; + if (key === undefined) { + return _getCssList(self.attr('style')); + } + if (typeof key === 'object') { + _each(key, function(k, v) { + self.css(k, v); + }); + return self; + } + if (val === undefined) { + if (self.length < 1) { + return ''; + } + return self[0].style[_toCamel(key)] || _computedCss(self[0], key) || ''; + } + self.each(function() { + this.style[_toCamel(key)] = val; + }); + return self; + }, + width : function(val) { + var self = this; + if (val === undefined) { + if (self.length < 1) { + return 0; + } + return self[0].offsetWidth; + } + return self.css('width', _addUnit(val)); + }, + height : function(val) { + var self = this; + if (val === undefined) { + if (self.length < 1) { + return 0; + } + return self[0].offsetHeight; + } + return self.css('height', _addUnit(val)); + }, + opacity : function(val) { + this.each(function() { + if (this.style.opacity === undefined) { + this.style.filter = val == 1 ? '' : 'alpha(opacity=' + (val * 100) + ')'; + } else { + this.style.opacity = val == 1 ? '' : val; + } + }); + return this; + }, + data : function(key, val) { + var self = this; + key = 'kindeditor_data_' + key; + if (val === undefined) { + if (self.length < 1) { + return null; + } + return self[0][key]; + } + this.each(function() { + this[key] = val; + }); + return self; + }, + pos : function() { + var self = this, node = self[0], x = 0, y = 0; + if (node) { + if (node.getBoundingClientRect) { + var box = node.getBoundingClientRect(), + pos = _getScrollPos(self.doc); + x = box.left + pos.x; + y = box.top + pos.y; + } else { + while (node) { + x += node.offsetLeft; + y += node.offsetTop; + node = node.offsetParent; + } + } + } + return {x : _round(x), y : _round(y)}; + }, + clone : function(bool) { + if (this.length < 1) { + return new KNode([]); + } + return new KNode(this[0].cloneNode(bool)); + }, + append : function(expr) { + this.each(function() { + if (this.appendChild) { + this.appendChild(_get(expr)); + } + }); + return this; + }, + appendTo : function(expr) { + this.each(function() { + _get(expr).appendChild(this); + }); + return this; + }, + before : function(expr) { + this.each(function() { + this.parentNode.insertBefore(_get(expr), this); + }); + return this; + }, + after : function(expr) { + this.each(function() { + if (this.nextSibling) { + this.parentNode.insertBefore(_get(expr), this.nextSibling); + } else { + this.parentNode.appendChild(_get(expr)); + } + }); + return this; + }, + replaceWith : function(expr) { + var nodes = []; + this.each(function(i, node) { + _unbind(node); + var newNode = _get(expr); + node.parentNode.replaceChild(newNode, node); + nodes.push(newNode); + }); + return K(nodes); + }, + empty : function() { + var self = this; + self.each(function(i, node) { + var child = node.firstChild; + while (child) { + if (!node.parentNode) { + return; + } + var next = child.nextSibling; + child.parentNode.removeChild(child); + child = next; + } + }); + return self; + }, + remove : function(keepChilds) { + var self = this; + self.each(function(i, node) { + if (!node.parentNode) { + return; + } + _unbind(node); + if (keepChilds) { + var child = node.firstChild; + while (child) { + var next = child.nextSibling; + node.parentNode.insertBefore(child, node); + child = next; + } + } + node.parentNode.removeChild(node); + delete self[i]; + }); + self.length = 0; + return self; + }, + show : function(val) { + var self = this; + if (val === undefined) { + val = self._originDisplay || ''; + } + if (self.css('display') != 'none') { + return self; + } + return self.css('display', val); + }, + hide : function() { + var self = this; + if (self.length < 1) { + return self; + } + self._originDisplay = self[0].style.display; + return self.css('display', 'none'); + }, + outer : function() { + var self = this; + if (self.length < 1) { + return ''; + } + var div = self.doc.createElement('div'), html; + div.appendChild(self[0].cloneNode(true)); + html = _formatHtml(div.innerHTML); + div = null; + return html; + }, + isSingle : function() { + return !!_SINGLE_TAG_MAP[this.name]; + }, + isInline : function() { + return !!_INLINE_TAG_MAP[this.name]; + }, + isBlock : function() { + return !!_BLOCK_TAG_MAP[this.name]; + }, + isStyle : function() { + return !!_STYLE_TAG_MAP[this.name]; + }, + isControl : function() { + return !!_CONTROL_TAG_MAP[this.name]; + }, + contains : function(otherNode) { + if (this.length < 1) { + return false; + } + return _contains(this[0], _get(otherNode)); + }, + parent : function() { + if (this.length < 1) { + return null; + } + var node = this[0].parentNode; + return node ? new KNode(node) : null; + }, + children : function() { + if (this.length < 1) { + return new KNode([]); + } + var list = [], child = this[0].firstChild; + while (child) { + if (child.nodeType != 3 || _trim(child.nodeValue) !== '') { + list.push(child); + } + child = child.nextSibling; + } + return new KNode(list); + }, + first : function() { + var list = this.children(); + return list.length > 0 ? list.eq(0) : null; + }, + last : function() { + var list = this.children(); + return list.length > 0 ? list.eq(list.length - 1) : null; + }, + index : function() { + if (this.length < 1) { + return -1; + } + var i = -1, sibling = this[0]; + while (sibling) { + i++; + sibling = sibling.previousSibling; + } + return i; + }, + prev : function() { + if (this.length < 1) { + return null; + } + var node = this[0].previousSibling; + return node ? new KNode(node) : null; + }, + next : function() { + if (this.length < 1) { + return null; + } + var node = this[0].nextSibling; + return node ? new KNode(node) : null; + }, + scan : function(fn, order) { + if (this.length < 1) { + return; + } + order = (order === undefined) ? true : order; + function walk(node) { + var n = order ? node.firstChild : node.lastChild; + while (n) { + var next = order ? n.nextSibling : n.previousSibling; + if (fn(n) === false) { + return false; + } + if (walk(n) === false) { + return false; + } + n = next; + } + } + walk(this[0]); + return this; + } +}); +_each(('blur,focus,focusin,focusout,load,resize,scroll,unload,click,dblclick,' + + 'mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,' + + 'change,select,submit,keydown,keypress,keyup,error,contextmenu').split(','), function(i, type) { + KNode.prototype[type] = function(fn) { + return fn ? this.bind(type, fn) : this.fire(type); + }; +}); +var _K = K; +K = function(expr, root) { + if (expr === undefined || expr === null) { + return; + } + function newNode(node) { + if (!node[0]) { + node = []; + } + return new KNode(node); + } + if (typeof expr === 'string') { + if (root) { + root = _get(root); + } + var length = expr.length; + if (expr.charAt(0) === '@') { + expr = expr.substr(1); + } + if (expr.length !== length || /<.+>/.test(expr)) { + var doc = root ? root.ownerDocument || root : document, + div = doc.createElement('div'), list = []; + div.innerHTML = '' + expr; + for (var i = 0, len = div.childNodes.length; i < len; i++) { + var child = div.childNodes[i]; + if (child.id == '__kindeditor_temp_tag__') { + continue; + } + list.push(child); + } + return newNode(list); + } + return newNode(_queryAll(expr, root)); + } + if (expr && expr.constructor === KNode) { + return expr; + } + if (expr.toArray) { + expr = expr.toArray(); + } + if (_isArray(expr)) { + return newNode(expr); + } + return newNode(_toArray(arguments)); +}; +_each(_K, function(key, val) { + K[key] = val; +}); +K.NodeClass = KNode; +window.KindEditor = K; + + +var _START_TO_START = 0, + _START_TO_END = 1, + _END_TO_END = 2, + _END_TO_START = 3, + _BOOKMARK_ID = 0; +function _updateCollapsed(range) { + range.collapsed = (range.startContainer === range.endContainer && range.startOffset === range.endOffset); + return range; +} +function _copyAndDelete(range, isCopy, isDelete) { + var doc = range.doc, nodeList = []; + function splitTextNode(node, startOffset, endOffset) { + var length = node.nodeValue.length, centerNode; + if (isCopy) { + var cloneNode = node.cloneNode(true); + if (startOffset > 0) { + centerNode = cloneNode.splitText(startOffset); + } else { + centerNode = cloneNode; + } + if (endOffset < length) { + centerNode.splitText(endOffset - startOffset); + } + } + if (isDelete) { + var center = node; + if (startOffset > 0) { + center = node.splitText(startOffset); + range.setStart(node, startOffset); + } + if (endOffset < length) { + var right = center.splitText(endOffset - startOffset); + range.setEnd(right, 0); + } + nodeList.push(center); + } + return centerNode; + } + function removeNodes() { + if (isDelete) { + range.up().collapse(true); + } + for (var i = 0, len = nodeList.length; i < len; i++) { + var node = nodeList[i]; + if (node.parentNode) { + node.parentNode.removeChild(node); + } + } + } + var copyRange = range.cloneRange().down(); + var start = -1, incStart = -1, incEnd = -1, end = -1, + ancestor = range.commonAncestor(), frag = doc.createDocumentFragment(); + if (ancestor.nodeType == 3) { + var textNode = splitTextNode(ancestor, range.startOffset, range.endOffset); + if (isCopy) { + frag.appendChild(textNode); + } + removeNodes(); + return isCopy ? frag : range; + } + function extractNodes(parent, frag) { + var node = parent.firstChild, nextNode; + while (node) { + var testRange = new KRange(doc).selectNode(node); + start = testRange.compareBoundaryPoints(_START_TO_END, range); + if (start >= 0 && incStart <= 0) { + incStart = testRange.compareBoundaryPoints(_START_TO_START, range); + } + if (incStart >= 0 && incEnd <= 0) { + incEnd = testRange.compareBoundaryPoints(_END_TO_END, range); + } + if (incEnd >= 0 && end <= 0) { + end = testRange.compareBoundaryPoints(_END_TO_START, range); + } + if (end >= 0) { + return false; + } + nextNode = node.nextSibling; + if (start > 0) { + if (node.nodeType == 1) { + if (incStart >= 0 && incEnd <= 0) { + if (isCopy) { + frag.appendChild(node.cloneNode(true)); + } + if (isDelete) { + nodeList.push(node); + } + } else { + var childFlag; + if (isCopy) { + childFlag = node.cloneNode(false); + frag.appendChild(childFlag); + } + if (extractNodes(node, childFlag) === false) { + return false; + } + } + } else if (node.nodeType == 3) { + var textNode; + if (node == copyRange.startContainer) { + textNode = splitTextNode(node, copyRange.startOffset, node.nodeValue.length); + } else if (node == copyRange.endContainer) { + textNode = splitTextNode(node, 0, copyRange.endOffset); + } else { + textNode = splitTextNode(node, 0, node.nodeValue.length); + } + if (isCopy) { + try { + frag.appendChild(textNode); + } catch(e) {} + } + } + } + node = nextNode; + } + } + extractNodes(ancestor, frag); + if (isDelete) { + range.up().collapse(true); + } + for (var i = 0, len = nodeList.length; i < len; i++) { + var node = nodeList[i]; + if (node.parentNode) { + node.parentNode.removeChild(node); + } + } + return isCopy ? frag : range; +} +function _moveToElementText(range, el) { + var node = el; + while (node) { + var knode = K(node); + if (knode.name == 'marquee' || knode.name == 'select') { + return; + } + node = node.parentNode; + } + try { + range.moveToElementText(el); + } catch(e) {} +} +function _getStartEnd(rng, isStart) { + var doc = rng.parentElement().ownerDocument, + pointRange = rng.duplicate(); + pointRange.collapse(isStart); + var parent = pointRange.parentElement(), + nodes = parent.childNodes; + if (nodes.length === 0) { + return {node: parent.parentNode, offset: K(parent).index()}; + } + var startNode = doc, startPos = 0, cmp = -1; + var testRange = rng.duplicate(); + _moveToElementText(testRange, parent); + for (var i = 0, len = nodes.length; i < len; i++) { + var node = nodes[i]; + cmp = testRange.compareEndPoints('StartToStart', pointRange); + if (cmp === 0) { + return {node: node.parentNode, offset: i}; + } + if (node.nodeType == 1) { + var nodeRange = rng.duplicate(), dummy, knode = K(node), newNode = node; + if (knode.isControl()) { + dummy = doc.createElement('span'); + knode.after(dummy); + newNode = dummy; + startPos += knode.text().replace(/\r\n|\n|\r/g, '').length; + } + _moveToElementText(nodeRange, newNode); + testRange.setEndPoint('StartToEnd', nodeRange); + if (cmp > 0) { + startPos += nodeRange.text.replace(/\r\n|\n|\r/g, '').length; + } else { + startPos = 0; + } + if (dummy) { + K(dummy).remove(); + } + } else if (node.nodeType == 3) { + testRange.moveStart('character', node.nodeValue.length); + startPos += node.nodeValue.length; + } + if (cmp < 0) { + startNode = node; + } + } + if (cmp < 0 && startNode.nodeType == 1) { + return {node: parent, offset: K(parent.lastChild).index() + 1}; + } + if (cmp > 0) { + while (startNode.nextSibling && startNode.nodeType == 1) { + startNode = startNode.nextSibling; + } + } + testRange = rng.duplicate(); + _moveToElementText(testRange, parent); + testRange.setEndPoint('StartToEnd', pointRange); + startPos -= testRange.text.replace(/\r\n|\n|\r/g, '').length; + if (cmp > 0 && startNode.nodeType == 3) { + var prevNode = startNode.previousSibling; + while (prevNode && prevNode.nodeType == 3) { + startPos -= prevNode.nodeValue.length; + prevNode = prevNode.previousSibling; + } + } + return {node: startNode, offset: startPos}; +} +function _getEndRange(node, offset) { + var doc = node.ownerDocument || node, + range = doc.body.createTextRange(); + if (doc == node) { + range.collapse(true); + return range; + } + if (node.nodeType == 1 && node.childNodes.length > 0) { + var children = node.childNodes, isStart, child; + if (offset === 0) { + child = children[0]; + isStart = true; + } else { + child = children[offset - 1]; + isStart = false; + } + if (!child) { + return range; + } + if (K(child).name === 'head') { + if (offset === 1) { + isStart = true; + } + if (offset === 2) { + isStart = false; + } + range.collapse(isStart); + return range; + } + if (child.nodeType == 1) { + var kchild = K(child), span; + if (kchild.isControl()) { + span = doc.createElement('span'); + if (isStart) { + kchild.before(span); + } else { + kchild.after(span); + } + child = span; + } + _moveToElementText(range, child); + range.collapse(isStart); + if (span) { + K(span).remove(); + } + return range; + } + node = child; + offset = isStart ? 0 : child.nodeValue.length; + } + var dummy = doc.createElement('span'); + K(node).before(dummy); + _moveToElementText(range, dummy); + range.moveStart('character', offset); + K(dummy).remove(); + return range; +} +function _toRange(rng) { + var doc, range; + function tr2td(start) { + if (K(start.node).name == 'tr') { + start.node = start.node.cells[start.offset]; + start.offset = 0; + } + } + if (_IERANGE) { + if (rng.item) { + doc = _getDoc(rng.item(0)); + range = new KRange(doc); + range.selectNode(rng.item(0)); + return range; + } + doc = rng.parentElement().ownerDocument; + var start = _getStartEnd(rng, true), + end = _getStartEnd(rng, false); + tr2td(start); + tr2td(end); + range = new KRange(doc); + range.setStart(start.node, start.offset); + range.setEnd(end.node, end.offset); + return range; + } + var startContainer = rng.startContainer; + doc = startContainer.ownerDocument || startContainer; + range = new KRange(doc); + range.setStart(startContainer, rng.startOffset); + range.setEnd(rng.endContainer, rng.endOffset); + return range; +} + +function KRange(doc) { + this.init(doc); +} +_extend(KRange, { + init : function(doc) { + var self = this; + self.startContainer = doc; + self.startOffset = 0; + self.endContainer = doc; + self.endOffset = 0; + self.collapsed = true; + self.doc = doc; + }, + commonAncestor : function() { + function getParents(node) { + var parents = []; + while (node) { + parents.push(node); + node = node.parentNode; + } + return parents; + } + var parentsA = getParents(this.startContainer), + parentsB = getParents(this.endContainer), + i = 0, lenA = parentsA.length, lenB = parentsB.length, parentA, parentB; + while (++i) { + parentA = parentsA[lenA - i]; + parentB = parentsB[lenB - i]; + if (!parentA || !parentB || parentA !== parentB) { + break; + } + } + return parentsA[lenA - i + 1]; + }, + setStart : function(node, offset) { + var self = this, doc = self.doc; + self.startContainer = node; + self.startOffset = offset; + if (self.endContainer === doc) { + self.endContainer = node; + self.endOffset = offset; + } + return _updateCollapsed(this); + }, + setEnd : function(node, offset) { + var self = this, doc = self.doc; + self.endContainer = node; + self.endOffset = offset; + if (self.startContainer === doc) { + self.startContainer = node; + self.startOffset = offset; + } + return _updateCollapsed(this); + }, + setStartBefore : function(node) { + return this.setStart(node.parentNode || this.doc, K(node).index()); + }, + setStartAfter : function(node) { + return this.setStart(node.parentNode || this.doc, K(node).index() + 1); + }, + setEndBefore : function(node) { + return this.setEnd(node.parentNode || this.doc, K(node).index()); + }, + setEndAfter : function(node) { + return this.setEnd(node.parentNode || this.doc, K(node).index() + 1); + }, + selectNode : function(node) { + return this.setStartBefore(node).setEndAfter(node); + }, + selectNodeContents : function(node) { + var knode = K(node); + if (knode.type == 3 || knode.isSingle()) { + return this.selectNode(node); + } + var children = knode.children(); + if (children.length > 0) { + return this.setStartBefore(children[0]).setEndAfter(children[children.length - 1]); + } + return this.setStart(node, 0).setEnd(node, 0); + }, + collapse : function(toStart) { + if (toStart) { + return this.setEnd(this.startContainer, this.startOffset); + } + return this.setStart(this.endContainer, this.endOffset); + }, + compareBoundaryPoints : function(how, range) { + var rangeA = this.get(), rangeB = range.get(); + if (_IERANGE) { + var arr = {}; + arr[_START_TO_START] = 'StartToStart'; + arr[_START_TO_END] = 'EndToStart'; + arr[_END_TO_END] = 'EndToEnd'; + arr[_END_TO_START] = 'StartToEnd'; + var cmp = rangeA.compareEndPoints(arr[how], rangeB); + if (cmp !== 0) { + return cmp; + } + var nodeA, nodeB, nodeC, posA, posB; + if (how === _START_TO_START || how === _END_TO_START) { + nodeA = this.startContainer; + posA = this.startOffset; + } + if (how === _START_TO_END || how === _END_TO_END) { + nodeA = this.endContainer; + posA = this.endOffset; + } + if (how === _START_TO_START || how === _START_TO_END) { + nodeB = range.startContainer; + posB = range.startOffset; + } + if (how === _END_TO_END || how === _END_TO_START) { + nodeB = range.endContainer; + posB = range.endOffset; + } + if (nodeA === nodeB) { + var diff = posA - posB; + return diff > 0 ? 1 : (diff < 0 ? -1 : 0); + } + nodeC = nodeB; + while (nodeC && nodeC.parentNode !== nodeA) { + nodeC = nodeC.parentNode; + } + if (nodeC) { + return K(nodeC).index() >= posA ? -1 : 1; + } + nodeC = nodeA; + while (nodeC && nodeC.parentNode !== nodeB) { + nodeC = nodeC.parentNode; + } + if (nodeC) { + return K(nodeC).index() >= posB ? 1 : -1; + } + nodeC = K(nodeB).next(); + if (nodeC && nodeC.contains(nodeA)) { + return 1; + } + nodeC = K(nodeA).next(); + if (nodeC && nodeC.contains(nodeB)) { + return -1; + } + } else { + return rangeA.compareBoundaryPoints(how, rangeB); + } + }, + cloneRange : function() { + return new KRange(this.doc).setStart(this.startContainer, this.startOffset).setEnd(this.endContainer, this.endOffset); + }, + toString : function() { + var rng = this.get(), str = _IERANGE ? rng.text : rng.toString(); + return str.replace(/\r\n|\n|\r/g, ''); + }, + cloneContents : function() { + return _copyAndDelete(this, true, false); + }, + deleteContents : function() { + return _copyAndDelete(this, false, true); + }, + extractContents : function() { + return _copyAndDelete(this, true, true); + }, + insertNode : function(node) { + var self = this, + sc = self.startContainer, so = self.startOffset, + ec = self.endContainer, eo = self.endOffset, + firstChild, lastChild, c, nodeCount = 1; + if (node.nodeName.toLowerCase() === '#document-fragment') { + firstChild = node.firstChild; + lastChild = node.lastChild; + nodeCount = node.childNodes.length; + } + if (sc.nodeType == 1) { + c = sc.childNodes[so]; + if (c) { + sc.insertBefore(node, c); + if (sc === ec) { + eo += nodeCount; + } + } else { + sc.appendChild(node); + } + } else if (sc.nodeType == 3) { + if (so === 0) { + sc.parentNode.insertBefore(node, sc); + if (sc.parentNode === ec) { + eo += nodeCount; + } + } else if (so >= sc.nodeValue.length) { + if (sc.nextSibling) { + sc.parentNode.insertBefore(node, sc.nextSibling); + } else { + sc.parentNode.appendChild(node); + } + } else { + if (so > 0) { + c = sc.splitText(so); + } else { + c = sc; + } + sc.parentNode.insertBefore(node, c); + if (sc === ec) { + ec = c; + eo -= so; + } + } + } + if (firstChild) { + self.setStartBefore(firstChild).setEndAfter(lastChild); + } else { + self.selectNode(node); + } + if (self.compareBoundaryPoints(_END_TO_END, self.cloneRange().setEnd(ec, eo)) >= 1) { + return self; + } + return self.setEnd(ec, eo); + }, + surroundContents : function(node) { + node.appendChild(this.extractContents()); + return this.insertNode(node).selectNode(node); + }, + isControl : function() { + var self = this, + sc = self.startContainer, so = self.startOffset, + ec = self.endContainer, eo = self.endOffset, rng; + return sc.nodeType == 1 && sc === ec && so + 1 === eo && K(sc.childNodes[so]).isControl(); + }, + get : function(hasControlRange) { + var self = this, doc = self.doc, node, rng; + if (!_IERANGE) { + rng = doc.createRange(); + try { + rng.setStart(self.startContainer, self.startOffset); + rng.setEnd(self.endContainer, self.endOffset); + } catch (e) {} + return rng; + } + if (hasControlRange && self.isControl()) { + rng = doc.body.createControlRange(); + rng.addElement(self.startContainer.childNodes[self.startOffset]); + return rng; + } + var range = self.cloneRange().down(); + rng = doc.body.createTextRange(); + rng.setEndPoint('StartToStart', _getEndRange(range.startContainer, range.startOffset)); + rng.setEndPoint('EndToStart', _getEndRange(range.endContainer, range.endOffset)); + return rng; + }, + html : function() { + return K(this.cloneContents()).outer(); + }, + down : function() { + var self = this; + function downPos(node, pos, isStart) { + if (node.nodeType != 1) { + return; + } + var children = K(node).children(); + if (children.length === 0) { + return; + } + var left, right, child, offset; + if (pos > 0) { + left = children.eq(pos - 1); + } + if (pos < children.length) { + right = children.eq(pos); + } + if (left && left.type == 3) { + child = left[0]; + offset = child.nodeValue.length; + } + if (right && right.type == 3) { + child = right[0]; + offset = 0; + } + if (!child) { + return; + } + if (isStart) { + self.setStart(child, offset); + } else { + self.setEnd(child, offset); + } + } + downPos(self.startContainer, self.startOffset, true); + downPos(self.endContainer, self.endOffset, false); + return self; + }, + up : function() { + var self = this; + function upPos(node, pos, isStart) { + if (node.nodeType != 3) { + return; + } + if (pos === 0) { + if (isStart) { + self.setStartBefore(node); + } else { + self.setEndBefore(node); + } + } else if (pos == node.nodeValue.length) { + if (isStart) { + self.setStartAfter(node); + } else { + self.setEndAfter(node); + } + } + } + upPos(self.startContainer, self.startOffset, true); + upPos(self.endContainer, self.endOffset, false); + return self; + }, + enlarge : function(toBlock) { + var self = this; + self.up(); + function enlargePos(node, pos, isStart) { + var knode = K(node), parent; + if (knode.type == 3 || _NOSPLIT_TAG_MAP[knode.name] || !toBlock && knode.isBlock()) { + return; + } + if (pos === 0) { + while (!knode.prev()) { + parent = knode.parent(); + if (!parent || _NOSPLIT_TAG_MAP[parent.name] || !toBlock && parent.isBlock()) { + break; + } + knode = parent; + } + if (isStart) { + self.setStartBefore(knode[0]); + } else { + self.setEndBefore(knode[0]); + } + } else if (pos == knode.children().length) { + while (!knode.next()) { + parent = knode.parent(); + if (!parent || _NOSPLIT_TAG_MAP[parent.name] || !toBlock && parent.isBlock()) { + break; + } + knode = parent; + } + if (isStart) { + self.setStartAfter(knode[0]); + } else { + self.setEndAfter(knode[0]); + } + } + } + enlargePos(self.startContainer, self.startOffset, true); + enlargePos(self.endContainer, self.endOffset, false); + return self; + }, + shrink : function() { + var self = this, child, collapsed = self.collapsed; + while (self.startContainer.nodeType == 1 && (child = self.startContainer.childNodes[self.startOffset]) && child.nodeType == 1 && !K(child).isSingle()) { + self.setStart(child, 0); + } + if (collapsed) { + return self.collapse(collapsed); + } + while (self.endContainer.nodeType == 1 && self.endOffset > 0 && (child = self.endContainer.childNodes[self.endOffset - 1]) && child.nodeType == 1 && !K(child).isSingle()) { + self.setEnd(child, child.childNodes.length); + } + return self; + }, + createBookmark : function(serialize) { + var self = this, doc = self.doc, endNode, + startNode = K('', doc)[0]; + startNode.id = '__kindeditor_bookmark_start_' + (_BOOKMARK_ID++) + '__'; + if (!self.collapsed) { + endNode = startNode.cloneNode(true); + endNode.id = '__kindeditor_bookmark_end_' + (_BOOKMARK_ID++) + '__'; + } + if (endNode) { + self.cloneRange().collapse(false).insertNode(endNode).setEndBefore(endNode); + } + self.insertNode(startNode).setStartAfter(startNode); + return { + start : serialize ? '#' + startNode.id : startNode, + end : endNode ? (serialize ? '#' + endNode.id : endNode) : null + }; + }, + moveToBookmark : function(bookmark) { + var self = this, doc = self.doc, + start = K(bookmark.start, doc), end = bookmark.end ? K(bookmark.end, doc) : null; + if (!start || start.length < 1) { + return self; + } + self.setStartBefore(start[0]); + start.remove(); + if (end && end.length > 0) { + self.setEndBefore(end[0]); + end.remove(); + } else { + self.collapse(true); + } + return self; + }, + dump : function() { + console.log('--------------------'); + console.log(this.startContainer.nodeType == 3 ? this.startContainer.nodeValue : this.startContainer, this.startOffset); + console.log(this.endContainer.nodeType == 3 ? this.endContainer.nodeValue : this.endContainer, this.endOffset); + } +}); +function _range(mixed) { + if (!mixed.nodeName) { + return mixed.constructor === KRange ? mixed : _toRange(mixed); + } + return new KRange(mixed); +} +K.RangeClass = KRange; +K.range = _range; +K.START_TO_START = _START_TO_START; +K.START_TO_END = _START_TO_END; +K.END_TO_END = _END_TO_END; +K.END_TO_START = _END_TO_START; + + +function _nativeCommand(doc, key, val) { + try { + doc.execCommand(key, false, val); + } catch(e) {} +} +function _nativeCommandValue(doc, key) { + var val = ''; + try { + val = doc.queryCommandValue(key); + } catch (e) {} + if (typeof val !== 'string') { + val = ''; + } + return val; +} +function _getSel(doc) { + var win = _getWin(doc); + return _IERANGE ? doc.selection : win.getSelection(); +} +function _getRng(doc) { + var sel = _getSel(doc), rng; + try { + if (sel.rangeCount > 0) { + rng = sel.getRangeAt(0); + } else { + rng = sel.createRange(); + } + } catch(e) {} + if (_IERANGE && (!rng || (!rng.item && rng.parentElement().ownerDocument !== doc))) { + return null; + } + return rng; +} +function _singleKeyMap(map) { + var newMap = {}, arr, v; + _each(map, function(key, val) { + arr = key.split(','); + for (var i = 0, len = arr.length; i < len; i++) { + v = arr[i]; + newMap[v] = val; + } + }); + return newMap; +} +function _hasAttrOrCss(knode, map) { + return _hasAttrOrCssByKey(knode, map, '*') || _hasAttrOrCssByKey(knode, map); +} +function _hasAttrOrCssByKey(knode, map, mapKey) { + mapKey = mapKey || knode.name; + if (knode.type !== 1) { + return false; + } + var newMap = _singleKeyMap(map); + if (!newMap[mapKey]) { + return false; + } + var arr = newMap[mapKey].split(','); + for (var i = 0, len = arr.length; i < len; i++) { + var key = arr[i]; + if (key === '*') { + return true; + } + var match = /^(\.?)([^=]+)(?:=([^=]*))?$/.exec(key); + var method = match[1] ? 'css' : 'attr'; + key = match[2]; + var val = match[3] || ''; + if (val === '' && knode[method](key) !== '') { + return true; + } + if (val !== '' && knode[method](key) === val) { + return true; + } + } + return false; +} +function _removeAttrOrCss(knode, map) { + if (knode.type != 1) { + return; + } + _removeAttrOrCssByKey(knode, map, '*'); + _removeAttrOrCssByKey(knode, map); +} +function _removeAttrOrCssByKey(knode, map, mapKey) { + mapKey = mapKey || knode.name; + if (knode.type !== 1) { + return; + } + var newMap = _singleKeyMap(map); + if (!newMap[mapKey]) { + return; + } + var arr = newMap[mapKey].split(','), allFlag = false; + for (var i = 0, len = arr.length; i < len; i++) { + var key = arr[i]; + if (key === '*') { + allFlag = true; + break; + } + var match = /^(\.?)([^=]+)(?:=([^=]*))?$/.exec(key); + key = match[2]; + if (match[1]) { + key = _toCamel(key); + if (knode[0].style[key]) { + knode[0].style[key] = ''; + } + } else { + knode.removeAttr(key); + } + } + if (allFlag) { + knode.remove(true); + } +} +function _getInnerNode(knode) { + var inner = knode; + while (inner.first()) { + inner = inner.first(); + } + return inner; +} +function _isEmptyNode(knode) { + if (knode.type != 1 || knode.isSingle()) { + return false; + } + return knode.html().replace(/<[^>]+>/g, '') === ''; +} +function _mergeWrapper(a, b) { + a = a.clone(true); + var lastA = _getInnerNode(a), childA = a, merged = false; + while (b) { + while (childA) { + if (childA.name === b.name) { + _mergeAttrs(childA, b.attr(), b.css()); + merged = true; + } + childA = childA.first(); + } + if (!merged) { + lastA.append(b.clone(false)); + } + merged = false; + b = b.first(); + } + return a; +} +function _wrapNode(knode, wrapper) { + wrapper = wrapper.clone(true); + if (knode.type == 3) { + _getInnerNode(wrapper).append(knode.clone(false)); + knode.replaceWith(wrapper); + return wrapper; + } + var nodeWrapper = knode, child; + while ((child = knode.first()) && child.children().length == 1) { + knode = child; + } + child = knode.first(); + var frag = knode.doc.createDocumentFragment(); + while (child) { + frag.appendChild(child[0]); + child = child.next(); + } + wrapper = _mergeWrapper(nodeWrapper, wrapper); + if (frag.firstChild) { + _getInnerNode(wrapper).append(frag); + } + nodeWrapper.replaceWith(wrapper); + return wrapper; +} +function _mergeAttrs(knode, attrs, styles) { + _each(attrs, function(key, val) { + if (key !== 'style') { + knode.attr(key, val); + } + }); + _each(styles, function(key, val) { + knode.css(key, val); + }); +} +function _inPreElement(knode) { + while (knode && knode.name != 'body') { + if (_PRE_TAG_MAP[knode.name] || knode.name == 'div' && knode.hasClass('ke-script')) { + return true; + } + knode = knode.parent(); + } + return false; +} +function KCmd(range) { + this.init(range); +} +_extend(KCmd, { + init : function(range) { + var self = this, doc = range.doc; + self.doc = doc; + self.win = _getWin(doc); + self.sel = _getSel(doc); + self.range = range; + }, + selection : function(forceReset) { + var self = this, doc = self.doc, rng = _getRng(doc); + self.sel = _getSel(doc); + if (rng) { + self.range = _range(rng); + if (K(self.range.startContainer).name == 'html') { + self.range.selectNodeContents(doc.body).collapse(false); + } + return self; + } + if (forceReset) { + self.range.selectNodeContents(doc.body).collapse(false); + } + return self; + }, + select : function(hasDummy) { + hasDummy = _undef(hasDummy, true); + var self = this, sel = self.sel, range = self.range.cloneRange().shrink(), + sc = range.startContainer, so = range.startOffset, + ec = range.endContainer, eo = range.endOffset, + doc = _getDoc(sc), win = self.win, rng, hasU200b = false; + if (hasDummy && sc.nodeType == 1 && range.collapsed) { + if (_IERANGE) { + var dummy = K(' ', doc); + range.insertNode(dummy[0]); + rng = doc.body.createTextRange(); + try { + rng.moveToElementText(dummy[0]); + } catch(ex) {} + rng.collapse(false); + rng.select(); + dummy.remove(); + win.focus(); + return self; + } + if (_WEBKIT) { + var children = sc.childNodes; + if (K(sc).isInline() || so > 0 && K(children[so - 1]).isInline() || children[so] && K(children[so]).isInline()) { + range.insertNode(doc.createTextNode('\u200B')); + hasU200b = true; + } + } + } + if (_IERANGE) { + try { + rng = range.get(true); + rng.select(); + } catch(e) {} + } else { + if (hasU200b) { + range.collapse(false); + } + rng = range.get(true); + sel.removeAllRanges(); + sel.addRange(rng); + if (doc !== document) { + var pos = K(rng.endContainer).pos(); + win.scrollTo(pos.x, pos.y); + } + } + win.focus(); + return self; + }, + wrap : function(val) { + var self = this, doc = self.doc, range = self.range, wrapper; + wrapper = K(val, doc); + if (range.collapsed) { + range.shrink(); + range.insertNode(wrapper[0]).selectNodeContents(wrapper[0]); + return self; + } + if (wrapper.isBlock()) { + var copyWrapper = wrapper.clone(true), child = copyWrapper; + while (child.first()) { + child = child.first(); + } + child.append(range.extractContents()); + range.insertNode(copyWrapper[0]).selectNode(copyWrapper[0]); + return self; + } + range.enlarge(); + var bookmark = range.createBookmark(), ancestor = range.commonAncestor(), isStart = false; + K(ancestor).scan(function(node) { + if (!isStart && node == bookmark.start) { + isStart = true; + return; + } + if (isStart) { + if (node == bookmark.end) { + return false; + } + var knode = K(node); + if (_inPreElement(knode)) { + return; + } + if (knode.type == 3 && _trim(node.nodeValue).length > 0) { + var parent; + while ((parent = knode.parent()) && parent.isStyle() && parent.children().length == 1) { + knode = parent; + } + _wrapNode(knode, wrapper); + } + } + }); + range.moveToBookmark(bookmark); + return self; + }, + split : function(isStart, map) { + var range = this.range, doc = range.doc; + var tempRange = range.cloneRange().collapse(isStart); + var node = tempRange.startContainer, pos = tempRange.startOffset, + parent = node.nodeType == 3 ? node.parentNode : node, + needSplit = false, knode; + while (parent && parent.parentNode) { + knode = K(parent); + if (map) { + if (!knode.isStyle()) { + break; + } + if (!_hasAttrOrCss(knode, map)) { + break; + } + } else { + if (_NOSPLIT_TAG_MAP[knode.name]) { + break; + } + } + needSplit = true; + parent = parent.parentNode; + } + if (needSplit) { + var dummy = doc.createElement('span'); + range.cloneRange().collapse(!isStart).insertNode(dummy); + if (isStart) { + tempRange.setStartBefore(parent.firstChild).setEnd(node, pos); + } else { + tempRange.setStart(node, pos).setEndAfter(parent.lastChild); + } + var frag = tempRange.extractContents(), + first = frag.firstChild, last = frag.lastChild; + if (isStart) { + tempRange.insertNode(frag); + range.setStartAfter(last).setEndBefore(dummy); + } else { + parent.appendChild(frag); + range.setStartBefore(dummy).setEndBefore(first); + } + var dummyParent = dummy.parentNode; + if (dummyParent == range.endContainer) { + var prev = K(dummy).prev(), next = K(dummy).next(); + if (prev && next && prev.type == 3 && next.type == 3) { + range.setEnd(prev[0], prev[0].nodeValue.length); + } else if (!isStart) { + range.setEnd(range.endContainer, range.endOffset - 1); + } + } + dummyParent.removeChild(dummy); + } + return this; + }, + remove : function(map) { + var self = this, doc = self.doc, range = self.range; + range.enlarge(); + if (range.startOffset === 0) { + var ksc = K(range.startContainer), parent; + while ((parent = ksc.parent()) && parent.isStyle() && parent.children().length == 1) { + ksc = parent; + } + range.setStart(ksc[0], 0); + ksc = K(range.startContainer); + if (ksc.isBlock()) { + _removeAttrOrCss(ksc, map); + } + var kscp = ksc.parent(); + if (kscp && kscp.isBlock()) { + _removeAttrOrCss(kscp, map); + } + } + var sc, so; + if (range.collapsed) { + self.split(true, map); + sc = range.startContainer; + so = range.startOffset; + if (so > 0) { + var sb = K(sc.childNodes[so - 1]); + if (sb && _isEmptyNode(sb)) { + sb.remove(); + range.setStart(sc, so - 1); + } + } + var sa = K(sc.childNodes[so]); + if (sa && _isEmptyNode(sa)) { + sa.remove(); + } + if (_isEmptyNode(sc)) { + range.startBefore(sc); + sc.remove(); + } + range.collapse(true); + return self; + } + self.split(true, map); + self.split(false, map); + var startDummy = doc.createElement('span'), endDummy = doc.createElement('span'); + range.cloneRange().collapse(false).insertNode(endDummy); + range.cloneRange().collapse(true).insertNode(startDummy); + var nodeList = [], cmpStart = false; + K(range.commonAncestor()).scan(function(node) { + if (!cmpStart && node == startDummy) { + cmpStart = true; + return; + } + if (node == endDummy) { + return false; + } + if (cmpStart) { + nodeList.push(node); + } + }); + K(startDummy).remove(); + K(endDummy).remove(); + sc = range.startContainer; + so = range.startOffset; + var ec = range.endContainer, eo = range.endOffset; + if (so > 0) { + var startBefore = K(sc.childNodes[so - 1]); + if (startBefore && _isEmptyNode(startBefore)) { + startBefore.remove(); + range.setStart(sc, so - 1); + if (sc == ec) { + range.setEnd(ec, eo - 1); + } + } + var startAfter = K(sc.childNodes[so]); + if (startAfter && _isEmptyNode(startAfter)) { + startAfter.remove(); + if (sc == ec) { + range.setEnd(ec, eo - 1); + } + } + } + var endAfter = K(ec.childNodes[range.endOffset]); + if (endAfter && _isEmptyNode(endAfter)) { + endAfter.remove(); + } + var bookmark = range.createBookmark(true); + _each(nodeList, function(i, node) { + _removeAttrOrCss(K(node), map); + }); + range.moveToBookmark(bookmark); + return self; + }, + commonNode : function(map) { + var range = this.range; + var ec = range.endContainer, eo = range.endOffset, + node = (ec.nodeType == 3 || eo === 0) ? ec : ec.childNodes[eo - 1]; + function find(node) { + var child = node, parent = node; + while (parent) { + if (_hasAttrOrCss(K(parent), map)) { + return K(parent); + } + parent = parent.parentNode; + } + while (child && (child = child.lastChild)) { + if (_hasAttrOrCss(K(child), map)) { + return K(child); + } + } + return null; + } + var cNode = find(node); + if (cNode) { + return cNode; + } + if (node.nodeType == 1 || (ec.nodeType == 3 && eo === 0)) { + var prev = K(node).prev(); + if (prev) { + return find(prev); + } + } + return null; + }, + commonAncestor : function(tagName) { + var range = this.range, + sc = range.startContainer, so = range.startOffset, + ec = range.endContainer, eo = range.endOffset, + startNode = (sc.nodeType == 3 || so === 0) ? sc : sc.childNodes[so - 1], + endNode = (ec.nodeType == 3 || eo === 0) ? ec : ec.childNodes[eo - 1]; + function find(node) { + while (node) { + if (node.nodeType == 1) { + if (node.tagName.toLowerCase() === tagName) { + return node; + } + } + node = node.parentNode; + } + return null; + } + var start = find(startNode), end = find(endNode); + if (start && end && start === end) { + return K(start); + } + return null; + }, + state : function(key) { + var self = this, doc = self.doc, bool = false; + try { + bool = doc.queryCommandState(key); + } catch (e) {} + return bool; + }, + val : function(key) { + var self = this, doc = self.doc, range = self.range; + function lc(val) { + return val.toLowerCase(); + } + key = lc(key); + var val = '', knode; + if (key === 'fontfamily' || key === 'fontname') { + val = _nativeCommandValue(doc, 'fontname'); + val = val.replace(/['"]/g, ''); + return lc(val); + } + if (key === 'formatblock') { + val = _nativeCommandValue(doc, key); + if (val === '') { + knode = self.commonNode({'h1,h2,h3,h4,h5,h6,p,div,pre,address' : '*'}); + if (knode) { + val = knode.name; + } + } + if (val === 'Normal') { + val = 'p'; + } + return lc(val); + } + if (key === 'fontsize') { + knode = self.commonNode({'*' : '.font-size'}); + if (knode) { + val = knode.css('font-size'); + } + return lc(val); + } + if (key === 'forecolor') { + knode = self.commonNode({'*' : '.color'}); + if (knode) { + val = knode.css('color'); + } + val = _toHex(val); + if (val === '') { + val = 'default'; + } + return lc(val); + } + if (key === 'hilitecolor') { + knode = self.commonNode({'*' : '.background-color'}); + if (knode) { + val = knode.css('background-color'); + } + val = _toHex(val); + if (val === '') { + val = 'default'; + } + return lc(val); + } + return val; + }, + toggle : function(wrapper, map) { + var self = this; + if (self.commonNode(map)) { + self.remove(map); + } else { + self.wrap(wrapper); + } + return self.select(); + }, + bold : function() { + return this.toggle('', { + span : '.font-weight=bold', + strong : '*', + b : '*' + }); + }, + italic : function() { + return this.toggle('', { + span : '.font-style=italic', + em : '*', + i : '*' + }); + }, + underline : function() { + return this.toggle('', { + span : '.text-decoration=underline', + u : '*' + }); + }, + strikethrough : function() { + return this.toggle('', { + span : '.text-decoration=line-through', + s : '*' + }); + }, + forecolor : function(val) { + return this.wrap('').select(); + }, + hilitecolor : function(val) { + return this.wrap('').select(); + }, + fontsize : function(val) { + return this.wrap('').select(); + }, + fontname : function(val) { + return this.fontfamily(val); + }, + fontfamily : function(val) { + return this.wrap('').select(); + }, + removeformat : function() { + var map = { + '*' : '.font-weight,.font-style,.text-decoration,.color,.background-color,.font-size,.font-family,.text-indent' + }, + tags = _STYLE_TAG_MAP; + _each(tags, function(key, val) { + map[key] = '*'; + }); + this.remove(map); + return this.select(); + }, + inserthtml : function(val, quickMode) { + var self = this, range = self.range; + if (val === '') { + return self; + } + function pasteHtml(range, val) { + val = '' + val; + var rng = range.get(); + if (rng.item) { + rng.item(0).outerHTML = val; + } else { + rng.pasteHTML(val); + } + var temp = range.doc.getElementById('__kindeditor_temp_tag__'); + temp.parentNode.removeChild(temp); + var newRange = _toRange(rng); + range.setEnd(newRange.endContainer, newRange.endOffset); + range.collapse(false); + self.select(false); + } + function insertHtml(range, val) { + var doc = range.doc, + frag = doc.createDocumentFragment(); + K('@' + val, doc).each(function() { + frag.appendChild(this); + }); + range.deleteContents(); + range.insertNode(frag); + range.collapse(false); + self.select(false); + } + if (_IERANGE && quickMode) { + try { + pasteHtml(range, val); + } catch(e) { + insertHtml(range, val); + } + return self; + } + insertHtml(range, val); + return self; + }, + hr : function() { + return this.inserthtml('
    '); + }, + print : function() { + this.win.print(); + return this; + }, + insertimage : function(url, title, width, height, border, align) { + title = _undef(title, ''); + border = _undef(border, 0); + var html = ''; + return self.inserthtml(html); + } + if (range.isControl()) { + var node = K(range.startContainer.childNodes[range.startOffset]); + html += '>'; + node.after(K(html, doc)); + node.next().append(node); + range.selectNode(node[0]); + return self.select(); + } + function setAttr(node, url, type) { + K(node).attr('href', url).attr('data-ke-src', url); + if (type) { + K(node).attr('target', type); + } else { + K(node).removeAttr('target'); + } + } + var sc = range.startContainer, so = range.startOffset, + ec = range.endContainer, eo = range.endOffset; + if (sc.nodeType == 1 && sc === ec && so + 1 === eo) { + var child = sc.childNodes[so]; + if (child.nodeName.toLowerCase() == 'a') { + setAttr(child, url, type); + return self; + } + } + _nativeCommand(doc, 'createlink', '__kindeditor_temp_url__'); + K('a[href="__kindeditor_temp_url__"]', doc).each(function() { + setAttr(this, url, type); + }); + return self; + }, + unlink : function() { + var self = this, doc = self.doc, range = self.range; + self.select(); + if (range.collapsed) { + var a = self.commonNode({ a : '*' }); + if (a) { + range.selectNode(a.get()); + self.select(); + } + _nativeCommand(doc, 'unlink', null); + if (_WEBKIT && K(range.startContainer).name === 'img') { + var parent = K(range.startContainer).parent(); + if (parent.name === 'a') { + parent.remove(true); + } + } + } else { + _nativeCommand(doc, 'unlink', null); + } + return self; + } +}); +_each(('formatblock,selectall,justifyleft,justifycenter,justifyright,justifyfull,insertorderedlist,' + + 'insertunorderedlist,indent,outdent,subscript,superscript').split(','), function(i, name) { + KCmd.prototype[name] = function(val) { + var self = this; + self.select(); + _nativeCommand(self.doc, name, val); + if (_IERANGE && _inArray(name, 'justifyleft,justifycenter,justifyright,justifyfull'.split(',')) >= 0) { + self.selection(); + } + if (!_IERANGE || _inArray(name, 'formatblock,selectall,insertorderedlist,insertunorderedlist'.split(',')) >= 0) { + self.selection(); + } + return self; + }; +}); +_each('cut,copy,paste'.split(','), function(i, name) { + KCmd.prototype[name] = function() { + var self = this; + if (!self.doc.queryCommandSupported(name)) { + throw 'not supported'; + } + self.select(); + _nativeCommand(self.doc, name, null); + return self; + }; +}); +function _cmd(mixed) { + if (mixed.nodeName) { + var doc = _getDoc(mixed); + mixed = _range(doc).selectNodeContents(doc.body).collapse(false); + } + return new KCmd(mixed); +} +K.CmdClass = KCmd; +K.cmd = _cmd; + + +function _drag(options) { + var moveEl = options.moveEl, + moveFn = options.moveFn, + clickEl = options.clickEl || moveEl, + beforeDrag = options.beforeDrag, + iframeFix = options.iframeFix === undefined ? true : options.iframeFix; + var docs = [document]; + if (iframeFix) { + K('iframe').each(function() { + var src = _formatUrl(this.src || '', 'absolute'); + if (/^https?:\/\//.test(src)) { + return; + } + var doc; + try { + doc = _iframeDoc(this); + } catch(e) {} + if (doc) { + var pos = K(this).pos(); + K(doc).data('pos-x', pos.x); + K(doc).data('pos-y', pos.y); + docs.push(doc); + } + }); + } + clickEl.mousedown(function(e) { + if(e.button !== 0 && e.button !== 1) { + return; + } + e.stopPropagation(); + var self = clickEl.get(), + x = _removeUnit(moveEl.css('left')), + y = _removeUnit(moveEl.css('top')), + width = moveEl.width(), + height = moveEl.height(), + pageX = e.pageX, + pageY = e.pageY; + if (beforeDrag) { + beforeDrag(); + } + function moveListener(e) { + e.preventDefault(); + var kdoc = K(_getDoc(e.target)); + var diffX = _round((kdoc.data('pos-x') || 0) + e.pageX - pageX); + var diffY = _round((kdoc.data('pos-y') || 0) + e.pageY - pageY); + moveFn.call(clickEl, x, y, width, height, diffX, diffY); + } + function selectListener(e) { + e.preventDefault(); + } + function upListener(e) { + e.preventDefault(); + K(docs).unbind('mousemove', moveListener) + .unbind('mouseup', upListener) + .unbind('selectstart', selectListener); + if (self.releaseCapture) { + self.releaseCapture(); + } + } + K(docs).mousemove(moveListener) + .mouseup(upListener) + .bind('selectstart', selectListener); + if (self.setCapture) { + self.setCapture(); + } + }); +} + +function KWidget(options) { + this.init(options); +} +_extend(KWidget, { + init : function(options) { + var self = this; + self.name = options.name || ''; + self.doc = options.doc || document; + self.win = _getWin(self.doc); + self.x = _addUnit(options.x); + self.y = _addUnit(options.y); + self.z = options.z; + self.width = _addUnit(options.width); + self.height = _addUnit(options.height); + self.div = K('
    '); + self.options = options; + self._alignEl = options.alignEl; + if (self.width) { + self.div.css('width', self.width); + } + if (self.height) { + self.div.css('height', self.height); + } + if (self.z) { + self.div.css({ + position : 'absolute', + left : self.x, + top : self.y, + 'z-index' : self.z + }); + } + if (self.z && (self.x === undefined || self.y === undefined)) { + self.autoPos(self.width, self.height); + } + if (options.cls) { + self.div.addClass(options.cls); + } + if (options.shadowMode) { + self.div.addClass('ke-shadow'); + } + if (options.css) { + self.div.css(options.css); + } + if (options.src) { + K(options.src).replaceWith(self.div); + } else { + K(self.doc.body).append(self.div); + } + if (options.html) { + self.div.html(options.html); + } + if (options.autoScroll) { + if (_IE && _V < 7 || _QUIRKS) { + var scrollPos = _getScrollPos(); + K(self.win).bind('scroll', function(e) { + var pos = _getScrollPos(), + diffX = pos.x - scrollPos.x, + diffY = pos.y - scrollPos.y; + self.pos(_removeUnit(self.x) + diffX, _removeUnit(self.y) + diffY, false); + }); + } else { + self.div.css('position', 'fixed'); + } + } + }, + pos : function(x, y, updateProp) { + var self = this; + updateProp = _undef(updateProp, true); + if (x !== null) { + x = x < 0 ? 0 : _addUnit(x); + self.div.css('left', x); + if (updateProp) { + self.x = x; + } + } + if (y !== null) { + y = y < 0 ? 0 : _addUnit(y); + self.div.css('top', y); + if (updateProp) { + self.y = y; + } + } + return self; + }, + autoPos : function(width, height) { + var x, y, self = this, + w = _removeUnit(width) || 0, + h = _removeUnit(height) || 0, + scrollPos = _getScrollPos(); + if (self._alignEl) { + var knode = K(self._alignEl), + pos = knode.pos(), + diffX = _round(knode[0].clientWidth / 2 - w / 2), + diffY = _round(knode[0].clientHeight / 2 - h / 2); + x = diffX < 0 ? pos.x : pos.x + diffX; + y = diffY < 0 ? pos.y : pos.y + diffY; + } else { + var docEl = _docElement(self.doc); + x = _round(scrollPos.x + (docEl.clientWidth - w) / 2); + y = _round(scrollPos.y + (docEl.clientHeight - h) / 2); + } + if (!(_IE && _V < 7 || _QUIRKS)) { + x -= scrollPos.x; + y -= scrollPos.y; + } + return self.pos(x, y); + }, + remove : function() { + var self = this; + if (_IE && _V < 7 || _QUIRKS) { + K(self.win).unbind('scroll'); + } + self.div.remove(); + _each(self, function(i) { + self[i] = null; + }); + return this; + }, + show : function() { + this.div.show(); + return this; + }, + hide : function() { + this.div.hide(); + return this; + }, + draggable : function(options) { + var self = this; + options = options || {}; + options.moveEl = self.div; + options.moveFn = function(x, y, width, height, diffX, diffY) { + if ((x = x + diffX) < 0) { + x = 0; + } + if ((y = y + diffY) < 0) { + y = 0; + } + self.pos(x, y); + }; + _drag(options); + return self; + } +}); +function _widget(options) { + return new KWidget(options); +} +K.WidgetClass = KWidget; +K.widget = _widget; + + +function _iframeDoc(iframe) { + iframe = _get(iframe); + return iframe.contentDocument || iframe.contentWindow.document; +} +var html, _direction = ''; +if ((html = document.getElementsByTagName('html'))) { + _direction = html[0].dir; +} +function _getInitHtml(themesPath, bodyClass, cssPath, cssData) { + var arr = [ + (_direction === '' ? '' : ''), + '', + '' + ]; + if (!_isArray(cssPath)) { + cssPath = [cssPath]; + } + _each(cssPath, function(i, path) { + if (path) { + arr.push(''); + } + }); + if (cssData) { + arr.push(''); + } + arr.push(''); + return arr.join('\n'); +} +function _elementVal(knode, val) { + if (knode.hasVal()) { + if (val === undefined) { + var html = knode.val(); + html = html.replace(/(<(?:p|p\s[^>]*)>) *(<\/p>)/ig, ''); + return html; + } + return knode.val(val); + } + return knode.html(val); +} + +function KEdit(options) { + this.init(options); +} +_extend(KEdit, KWidget, { + init : function(options) { + var self = this; + KEdit.parent.init.call(self, options); + self.srcElement = K(options.srcElement); + self.div.addClass('ke-edit'); + self.designMode = _undef(options.designMode, true); + self.beforeGetHtml = options.beforeGetHtml; + self.beforeSetHtml = options.beforeSetHtml; + self.afterSetHtml = options.afterSetHtml; + var themesPath = _undef(options.themesPath, ''), + bodyClass = options.bodyClass, + cssPath = options.cssPath, + cssData = options.cssData, + isDocumentDomain = location.protocol != 'res:' && location.host.replace(/:\d+/, '') !== document.domain, + srcScript = ('document.open();' + + (isDocumentDomain ? 'document.domain="' + document.domain + '";' : '') + + 'document.close();'), + iframeSrc = _IE ? ' src="javascript:void(function(){' + encodeURIComponent(srcScript) + '}())"' : ''; + self.iframe = K('').css('width', '100%'); + self.textarea = K('').css('width', '100%'); + self.tabIndex = isNaN(parseInt(options.tabIndex, 10)) ? self.srcElement.attr('tabindex') : parseInt(options.tabIndex, 10); + self.iframe.attr('tabindex', self.tabIndex); + self.textarea.attr('tabindex', self.tabIndex); + if (self.width) { + self.setWidth(self.width); + } + if (self.height) { + self.setHeight(self.height); + } + if (self.designMode) { + self.textarea.hide(); + } else { + self.iframe.hide(); + } + function ready() { + var doc = _iframeDoc(self.iframe); + doc.open(); + if (isDocumentDomain) { + doc.domain = document.domain; + } + doc.write(_getInitHtml(themesPath, bodyClass, cssPath, cssData)); + doc.close(); + self.win = self.iframe[0].contentWindow; + self.doc = doc; + var cmd = _cmd(doc); + self.afterChange(function(e) { + cmd.selection(); + }); + if (_WEBKIT) { + K(doc).click(function(e) { + if (K(e.target).name === 'img') { + cmd.selection(true); + cmd.range.selectNode(e.target); + cmd.select(); + } + }); + } + if (_IE) { + self._mousedownHandler = function() { + var newRange = cmd.range.cloneRange(); + newRange.shrink(); + if (newRange.isControl()) { + self.blur(); + } + }; + K(document).mousedown(self._mousedownHandler); + K(doc).keydown(function(e) { + if (e.which == 8) { + cmd.selection(); + var rng = cmd.range; + if (rng.isControl()) { + rng.collapse(true); + K(rng.startContainer.childNodes[rng.startOffset]).remove(); + e.preventDefault(); + } + } + }); + } + self.cmd = cmd; + self.html(_elementVal(self.srcElement)); + if (_IE) { + doc.body.disabled = true; + doc.body.contentEditable = true; + doc.body.removeAttribute('disabled'); + } else { + doc.designMode = 'on'; + } + if (options.afterCreate) { + options.afterCreate.call(self); + } + } + if (isDocumentDomain) { + self.iframe.bind('load', function(e) { + self.iframe.unbind('load'); + if (_IE) { + ready(); + } else { + setTimeout(ready, 0); + } + }); + } + self.div.append(self.iframe); + self.div.append(self.textarea); + self.srcElement.hide(); + !isDocumentDomain && ready(); + }, + setWidth : function(val) { + var self = this; + val = _addUnit(val); + self.width = val; + self.div.css('width', val); + return self; + }, + setHeight : function(val) { + var self = this; + val = _addUnit(val); + self.height = val; + self.div.css('height', val); + self.iframe.css('height', val); + if ((_IE && _V < 8) || _QUIRKS) { + val = _addUnit(_removeUnit(val) - 2); + } + self.textarea.css('height', val); + return self; + }, + remove : function() { + var self = this, doc = self.doc; + K(doc.body).unbind(); + K(doc).unbind(); + K(self.win).unbind(); + if (self._mousedownHandler) { + K(document).unbind('mousedown', self._mousedownHandler); + } + _elementVal(self.srcElement, self.html()); + self.srcElement.show(); + self.iframe.unbind(); + self.textarea.unbind(); + KEdit.parent.remove.call(self); + }, + html : function(val, isFull) { + var self = this, doc = self.doc; + if (self.designMode) { + var body = doc.body; + if (val === undefined) { + if (isFull) { + val = '' + body.parentNode.innerHTML + ''; + } else { + val = body.innerHTML; + } + if (self.beforeGetHtml) { + val = self.beforeGetHtml(val); + } + if (_GECKO && val == '
    ') { + val = ''; + } + return val; + } + if (self.beforeSetHtml) { + val = self.beforeSetHtml(val); + } + if (_IE && _V >= 9) { + val = val.replace(/(<.*?checked=")checked(".*>)/ig, '$1$2'); + } + K(body).html(val); + if (self.afterSetHtml) { + self.afterSetHtml(); + } + return self; + } + if (val === undefined) { + return self.textarea.val(); + } + self.textarea.val(val); + return self; + }, + design : function(bool) { + var self = this, val; + if (bool === undefined ? !self.designMode : bool) { + if (!self.designMode) { + val = self.html(); + self.designMode = true; + self.textarea.hide(); + self.html(val); + var iframe = self.iframe; + var height = _removeUnit(self.height); + iframe.height(height - 2); + iframe.show(); + setTimeout(function() { + iframe.height(height); + }, 0); + } + } else { + if (self.designMode) { + val = self.html(); + self.designMode = false; + self.html(val); + self.iframe.hide(); + self.textarea.show(); + } + } + return self.focus(); + }, + focus : function() { + var self = this; + self.designMode ? self.win.focus() : self.textarea[0].focus(); + return self; + }, + blur : function() { + var self = this; + if (_IE) { + var input = K('', self.div); + self.div.append(input); + input[0].focus(); + input.remove(); + } else { + self.designMode ? self.win.blur() : self.textarea[0].blur(); + } + return self; + }, + afterChange : function(fn) { + var self = this, doc = self.doc, body = doc.body; + K(doc).keyup(function(e) { + if (!e.ctrlKey && !e.altKey && _CHANGE_KEY_MAP[e.which]) { + fn(e); + } + }); + K(doc).mouseup(fn).contextmenu(fn); + K(self.win).blur(fn); + function timeoutHandler(e) { + setTimeout(function() { + fn(e); + }, 1); + } + K(body).bind('paste', timeoutHandler); + K(body).bind('cut', timeoutHandler); + return self; + } +}); +function _edit(options) { + return new KEdit(options); +} +K.EditClass = KEdit; +K.edit = _edit; +K.iframeDoc = _iframeDoc; + + +function _selectToolbar(name, fn) { + var self = this, + knode = self.get(name); + if (knode) { + if (knode.hasClass('ke-disabled')) { + return; + } + fn(knode); + } +} + +function KToolbar(options) { + this.init(options); +} +_extend(KToolbar, KWidget, { + init : function(options) { + var self = this; + KToolbar.parent.init.call(self, options); + self.disableMode = _undef(options.disableMode, false); + self.noDisableItemMap = _toMap(_undef(options.noDisableItems, [])); + self._itemMap = {}; + self.div.addClass('ke-toolbar').bind('contextmenu,mousedown,mousemove', function(e) { + e.preventDefault(); + }).attr('unselectable', 'on'); + function find(target) { + var knode = K(target); + if (knode.hasClass('ke-outline')) { + return knode; + } + if (knode.hasClass('ke-toolbar-icon')) { + return knode.parent(); + } + } + function hover(e, method) { + var knode = find(e.target); + if (knode) { + if (knode.hasClass('ke-disabled')) { + return; + } + if (knode.hasClass('ke-selected')) { + return; + } + knode[method]('ke-on'); + } + } + self.div.mouseover(function(e) { + hover(e, 'addClass'); + }) + .mouseout(function(e) { + hover(e, 'removeClass'); + }) + .click(function(e) { + var knode = find(e.target); + if (knode) { + if (knode.hasClass('ke-disabled')) { + return; + } + self.options.click.call(this, e, knode.attr('data-name')); + } + }); + }, + get : function(name) { + if (this._itemMap[name]) { + return this._itemMap[name]; + } + return (this._itemMap[name] = K('span.ke-icon-' + name, this.div).parent()); + }, + select : function(name) { + _selectToolbar.call(this, name, function(knode) { + knode.addClass('ke-selected'); + }); + return self; + }, + unselect : function(name) { + _selectToolbar.call(this, name, function(knode) { + knode.removeClass('ke-selected').removeClass('ke-on'); + }); + return self; + }, + enable : function(name) { + var self = this, + knode = name.get ? name : self.get(name); + if (knode) { + knode.removeClass('ke-disabled'); + knode.opacity(1); + } + return self; + }, + disable : function(name) { + var self = this, + knode = name.get ? name : self.get(name); + if (knode) { + knode.removeClass('ke-selected').addClass('ke-disabled'); + knode.opacity(0.5); + } + return self; + }, + disableAll : function(bool, noDisableItems) { + var self = this, map = self.noDisableItemMap, item; + if (noDisableItems) { + map = _toMap(noDisableItems); + } + if (bool === undefined ? !self.disableMode : bool) { + K('span.ke-outline', self.div).each(function() { + var knode = K(this), + name = knode[0].getAttribute('data-name', 2); + if (!map[name]) { + self.disable(knode); + } + }); + self.disableMode = true; + } else { + K('span.ke-outline', self.div).each(function() { + var knode = K(this), + name = knode[0].getAttribute('data-name', 2); + if (!map[name]) { + self.enable(knode); + } + }); + self.disableMode = false; + } + return self; + } +}); +function _toolbar(options) { + return new KToolbar(options); +} +K.ToolbarClass = KToolbar; +K.toolbar = _toolbar; + + +function KMenu(options) { + this.init(options); +} +_extend(KMenu, KWidget, { + init : function(options) { + var self = this; + options.z = options.z || 811213; + KMenu.parent.init.call(self, options); + self.centerLineMode = _undef(options.centerLineMode, true); + self.div.addClass('ke-menu').bind('click,mousedown', function(e){ + e.stopPropagation(); + }).attr('unselectable', 'on'); + }, + addItem : function(item) { + var self = this; + if (item.title === '-') { + self.div.append(K('
    ')); + return; + } + var itemDiv = K('
    '), + leftDiv = K('
    '), + rightDiv = K('
    '), + height = _addUnit(item.height), + iconClass = _undef(item.iconClass, ''); + self.div.append(itemDiv); + if (height) { + itemDiv.css('height', height); + rightDiv.css('line-height', height); + } + var centerDiv; + if (self.centerLineMode) { + centerDiv = K('
    '); + if (height) { + centerDiv.css('height', height); + } + } + itemDiv.mouseover(function(e) { + K(this).addClass('ke-menu-item-on'); + if (centerDiv) { + centerDiv.addClass('ke-menu-item-center-on'); + } + }) + .mouseout(function(e) { + K(this).removeClass('ke-menu-item-on'); + if (centerDiv) { + centerDiv.removeClass('ke-menu-item-center-on'); + } + }) + .click(function(e) { + item.click.call(K(this)); + e.stopPropagation(); + }) + .append(leftDiv); + if (centerDiv) { + itemDiv.append(centerDiv); + } + itemDiv.append(rightDiv); + if (item.checked) { + iconClass = 'ke-icon-checked'; + } + if (iconClass !== '') { + leftDiv.html(''); + } + rightDiv.html(item.title); + return self; + }, + remove : function() { + var self = this; + if (self.options.beforeRemove) { + self.options.beforeRemove.call(self); + } + K('.ke-menu-item', self.div[0]).unbind(); + KMenu.parent.remove.call(self); + return self; + } +}); +function _menu(options) { + return new KMenu(options); +} +K.MenuClass = KMenu; +K.menu = _menu; + + +function KColorPicker(options) { + this.init(options); +} +_extend(KColorPicker, KWidget, { + init : function(options) { + var self = this; + options.z = options.z || 811213; + KColorPicker.parent.init.call(self, options); + var colors = options.colors || [ + ['#E53333', '#E56600', '#FF9900', '#64451D', '#DFC5A4', '#FFE500'], + ['#009900', '#006600', '#99BB00', '#B8D100', '#60D978', '#00D5FF'], + ['#337FE5', '#003399', '#4C33E5', '#9933E5', '#CC33E5', '#EE33EE'], + ['#FFFFFF', '#CCCCCC', '#999999', '#666666', '#333333', '#000000'] + ]; + self.selectedColor = (options.selectedColor || '').toLowerCase(); + self._cells = []; + self.div.addClass('ke-colorpicker').bind('click,mousedown', function(e){ + e.stopPropagation(); + }).attr('unselectable', 'on'); + var table = self.doc.createElement('table'); + self.div.append(table); + table.className = 'ke-colorpicker-table'; + table.cellPadding = 0; + table.cellSpacing = 0; + table.border = 0; + var row = table.insertRow(0), cell = row.insertCell(0); + cell.colSpan = colors[0].length; + self._addAttr(cell, '', 'ke-colorpicker-cell-top'); + for (var i = 0; i < colors.length; i++) { + row = table.insertRow(i + 1); + for (var j = 0; j < colors[i].length; j++) { + cell = row.insertCell(j); + self._addAttr(cell, colors[i][j], 'ke-colorpicker-cell'); + } + } + }, + _addAttr : function(cell, color, cls) { + var self = this; + cell = K(cell).addClass(cls); + if (self.selectedColor === color.toLowerCase()) { + cell.addClass('ke-colorpicker-cell-selected'); + } + cell.attr('title', color || self.options.noColor); + cell.mouseover(function(e) { + K(this).addClass('ke-colorpicker-cell-on'); + }); + cell.mouseout(function(e) { + K(this).removeClass('ke-colorpicker-cell-on'); + }); + cell.click(function(e) { + e.stop(); + self.options.click.call(K(this), color); + }); + if (color) { + cell.append(K('
    ').css('background-color', color)); + } else { + cell.html(self.options.noColor); + } + K(cell).attr('unselectable', 'on'); + self._cells.push(cell); + }, + remove : function() { + var self = this; + _each(self._cells, function() { + this.unbind(); + }); + KColorPicker.parent.remove.call(self); + return self; + } +}); +function _colorpicker(options) { + return new KColorPicker(options); +} +K.ColorPickerClass = KColorPicker; +K.colorpicker = _colorpicker; + + +function KUploadButton(options) { + this.init(options); +} +_extend(KUploadButton, { + init : function(options) { + var self = this, + button = K(options.button), + fieldName = options.fieldName || 'file', + url = options.url || '', + title = button.val(), + extraParams = options.extraParams || {}, + cls = button[0].className || '', + target = options.target || 'kindeditor_upload_iframe_' + new Date().getTime(); + options.afterError = options.afterError || function(str) { + alert(str); + }; + var hiddenElements = []; + for(var k in extraParams){ + hiddenElements.push(''); + } + var html = [ + '
    ', + (options.target ? '' : ''), + (options.form ? '
    ' : '
    '), + '', + hiddenElements.join(''), + '', + '', + '', + (options.form ? '
    ' : ''), + '
    '].join(''); + var div = K(html, button.doc); + button.hide(); + button.before(div); + self.div = div; + self.button = button; + self.iframe = options.target ? K('iframe[name="' + target + '"]') : K('iframe', div); + self.form = options.form ? K(options.form) : K('form', div); + self.fileBox = K('.ke-upload-file', div); + var width = options.width || K('.ke-button-common', div).width(); + K('.ke-upload-area', div).width(width); + self.options = options; + }, + submit : function() { + var self = this, + iframe = self.iframe; + iframe.bind('load', function() { + iframe.unbind(); + var tempForm = document.createElement('form'); + self.fileBox.before(tempForm); + K(tempForm).append(self.fileBox); + tempForm.reset(); + K(tempForm).remove(true); + var doc = K.iframeDoc(iframe), + pre = doc.getElementsByTagName('pre')[0], + str = '', data; + if (pre) { + str = pre.innerHTML; + } else { + str = doc.body.innerHTML; + } + str = _unescape(str); + iframe[0].src = 'javascript:false'; + try { + data = K.json(str); + } catch (e) { + self.options.afterError.call(self, '' + doc.body.parentNode.innerHTML + ''); + } + if (data) { + self.options.afterUpload.call(self, data); + } + }); + self.form[0].submit(); + return self; + }, + remove : function() { + var self = this; + if (self.fileBox) { + self.fileBox.unbind(); + } + self.iframe.remove(); + self.div.remove(); + self.button.show(); + return self; + } +}); +function _uploadbutton(options) { + return new KUploadButton(options); +} +K.UploadButtonClass = KUploadButton; +K.uploadbutton = _uploadbutton; + + +function _createButton(arg) { + arg = arg || {}; + var name = arg.name || '', + span = K(''), + btn = K(''); + if (arg.click) { + btn.click(arg.click); + } + span.append(btn); + return span; +} + +function KDialog(options) { + this.init(options); +} +_extend(KDialog, KWidget, { + init : function(options) { + var self = this; + var shadowMode = _undef(options.shadowMode, true); + options.z = options.z || 811213; + options.shadowMode = false; + options.autoScroll = _undef(options.autoScroll, true); + KDialog.parent.init.call(self, options); + var title = options.title, + body = K(options.body, self.doc), + previewBtn = options.previewBtn, + yesBtn = options.yesBtn, + noBtn = options.noBtn, + closeBtn = options.closeBtn, + showMask = _undef(options.showMask, true); + self.div.addClass('ke-dialog').bind('click,mousedown', function(e){ + e.stopPropagation(); + }); + var contentDiv = K('
    ').appendTo(self.div); + if (_IE && _V < 7) { + self.iframeMask = K('').appendTo(self.div); + } else if (shadowMode) { + K('
    ').appendTo(self.div); + } + var headerDiv = K('
    '); + contentDiv.append(headerDiv); + headerDiv.html(title); + self.closeIcon = K('').click(closeBtn.click); + headerDiv.append(self.closeIcon); + self.draggable({ + clickEl : headerDiv, + beforeDrag : options.beforeDrag + }); + var bodyDiv = K('
    '); + contentDiv.append(bodyDiv); + bodyDiv.append(body); + var footerDiv = K(''); + if (previewBtn || yesBtn || noBtn) { + contentDiv.append(footerDiv); + } + _each([ + { btn : previewBtn, name : 'preview' }, + { btn : yesBtn, name : 'yes' }, + { btn : noBtn, name : 'no' } + ], function() { + if (this.btn) { + var button = _createButton(this.btn); + button.addClass('ke-dialog-' + this.name); + footerDiv.append(button); + } + }); + if (self.height) { + bodyDiv.height(_removeUnit(self.height) - headerDiv.height() - footerDiv.height()); + } + self.div.width(self.div.width()); + self.div.height(self.div.height()); + self.mask = null; + if (showMask) { + var docEl = _docElement(self.doc), + docWidth = Math.max(docEl.scrollWidth, docEl.clientWidth), + docHeight = Math.max(docEl.scrollHeight, docEl.clientHeight); + self.mask = _widget({ + x : 0, + y : 0, + z : self.z - 1, + cls : 'ke-dialog-mask', + width : docWidth, + height : docHeight + }); + } + self.autoPos(self.div.width(), self.div.height()); + self.footerDiv = footerDiv; + self.bodyDiv = bodyDiv; + self.headerDiv = headerDiv; + self.isLoading = false; + }, + setMaskIndex : function(z) { + var self = this; + self.mask.div.css('z-index', z); + }, + showLoading : function(msg) { + msg = _undef(msg, ''); + var self = this, body = self.bodyDiv; + self.loading = K('
    ' + msg + '
    ') + .width(body.width()).height(body.height()) + .css('top', self.headerDiv.height() + 'px'); + body.css('visibility', 'hidden').after(self.loading); + self.isLoading = true; + return self; + }, + hideLoading : function() { + this.loading && this.loading.remove(); + this.bodyDiv.css('visibility', 'visible'); + this.isLoading = false; + return this; + }, + remove : function() { + var self = this; + if (self.options.beforeRemove) { + self.options.beforeRemove.call(self); + } + self.mask && self.mask.remove(); + self.iframeMask && self.iframeMask.remove(); + self.closeIcon.unbind(); + K('input', self.div).unbind(); + K('button', self.div).unbind(); + self.footerDiv.unbind(); + self.bodyDiv.unbind(); + self.headerDiv.unbind(); + K('iframe', self.div).each(function() { + K(this).remove(); + }); + KDialog.parent.remove.call(self); + return self; + } +}); +function _dialog(options) { + return new KDialog(options); +} +K.DialogClass = KDialog; +K.dialog = _dialog; + + +function _tabs(options) { + var self = _widget(options), + remove = self.remove, + afterSelect = options.afterSelect, + div = self.div, + liList = []; + div.addClass('ke-tabs') + .bind('contextmenu,mousedown,mousemove', function(e) { + e.preventDefault(); + }); + var ul = K('
      '); + div.append(ul); + self.add = function(tab) { + var li = K('
    • ' + tab.title + '
    • '); + li.data('tab', tab); + liList.push(li); + ul.append(li); + }; + self.selectedIndex = 0; + self.select = function(index) { + self.selectedIndex = index; + _each(liList, function(i, li) { + li.unbind(); + if (i === index) { + li.addClass('ke-tabs-li-selected'); + K(li.data('tab').panel).show(''); + } else { + li.removeClass('ke-tabs-li-selected').removeClass('ke-tabs-li-on') + .mouseover(function() { + K(this).addClass('ke-tabs-li-on'); + }) + .mouseout(function() { + K(this).removeClass('ke-tabs-li-on'); + }) + .click(function() { + self.select(i); + }); + K(li.data('tab').panel).hide(); + } + }); + if (afterSelect) { + afterSelect.call(self, index); + } + }; + self.remove = function() { + _each(liList, function() { + this.remove(); + }); + ul.remove(); + remove.call(self); + }; + return self; +} +K.tabs = _tabs; + + +function _loadScript(url, fn) { + var head = document.getElementsByTagName('head')[0] || (_QUIRKS ? document.body : document.documentElement), + script = document.createElement('script'); + head.appendChild(script); + script.src = url; + script.charset = 'utf-8'; + script.onload = script.onreadystatechange = function() { + if (!this.readyState || this.readyState === 'loaded') { + if (fn) { + fn(); + } + script.onload = script.onreadystatechange = null; + head.removeChild(script); + } + }; +} + +function _chopQuery(url) { + var index = url.indexOf('?'); + return index > 0 ? url.substr(0, index) : url; +} +function _loadStyle(url) { + var head = document.getElementsByTagName('head')[0] || (_QUIRKS ? document.body : document.documentElement), + link = document.createElement('link'), + absoluteUrl = _chopQuery(_formatUrl(url, 'absolute')); + var links = K('link[rel="stylesheet"]', head); + for (var i = 0, len = links.length; i < len; i++) { + if (_chopQuery(_formatUrl(links[i].href, 'absolute')) === absoluteUrl) { + return; + } + } + head.appendChild(link); + link.href = url; + link.rel = 'stylesheet'; +} +function _ajax(url, fn, method, param, dataType) { + method = method || 'GET'; + dataType = dataType || 'json'; + var xhr = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP'); + xhr.open(method, url, true); + xhr.onreadystatechange = function () { + if (xhr.readyState == 4 && xhr.status == 200) { + if (fn) { + var data = _trim(xhr.responseText); + if (dataType == 'json') { + data = _json(data); + } + fn(data); + } + } + }; + if (method == 'POST') { + var params = []; + _each(param, function(key, val) { + params.push(encodeURIComponent(key) + '=' + encodeURIComponent(val)); + }); + try { + xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); + } catch (e) {} + xhr.send(params.join('&')); + } else { + xhr.send(null); + } +} +K.loadScript = _loadScript; +K.loadStyle = _loadStyle; +K.ajax = _ajax; + + +var _plugins = {}; +function _plugin(name, fn) { + if (name === undefined) { + return _plugins; + } + if (!fn) { + return _plugins[name]; + } + _plugins[name] = fn; +} +var _language = {}; +function _parseLangKey(key) { + var match, ns = 'core'; + if ((match = /^(\w+)\.(\w+)$/.exec(key))) { + ns = match[1]; + key = match[2]; + } + return { ns : ns, key : key }; +} +function _lang(mixed, langType) { + langType = langType === undefined ? K.options.langType : langType; + if (typeof mixed === 'string') { + if (!_language[langType]) { + return 'no language'; + } + var pos = mixed.length - 1; + if (mixed.substr(pos) === '.') { + return _language[langType][mixed.substr(0, pos)]; + } + var obj = _parseLangKey(mixed); + return _language[langType][obj.ns][obj.key]; + } + _each(mixed, function(key, val) { + var obj = _parseLangKey(key); + if (!_language[langType]) { + _language[langType] = {}; + } + if (!_language[langType][obj.ns]) { + _language[langType][obj.ns] = {}; + } + _language[langType][obj.ns][obj.key] = val; + }); +} + +function _getImageFromRange(range, fn) { + if (range.collapsed) { + return; + } + range = range.cloneRange().up(); + var sc = range.startContainer, so = range.startOffset; + if (!_WEBKIT && !range.isControl()) { + return; + } + var img = K(sc.childNodes[so]); + if (!img || img.name != 'img') { + return; + } + if (fn(img)) { + return img; + } +} +function _bindContextmenuEvent() { + var self = this, doc = self.edit.doc; + K(doc).contextmenu(function(e) { + if (self.menu) { + self.hideMenu(); + } + if (!self.useContextmenu) { + e.preventDefault(); + return; + } + if (self._contextmenus.length === 0) { + return; + } + var maxWidth = 0, items = []; + _each(self._contextmenus, function() { + if (this.title == '-') { + items.push(this); + return; + } + if (this.cond && this.cond()) { + items.push(this); + if (this.width && this.width > maxWidth) { + maxWidth = this.width; + } + } + }); + while (items.length > 0 && items[0].title == '-') { + items.shift(); + } + while (items.length > 0 && items[items.length - 1].title == '-') { + items.pop(); + } + var prevItem = null; + _each(items, function(i) { + if (this.title == '-' && prevItem.title == '-') { + delete items[i]; + } + prevItem = this; + }); + if (items.length > 0) { + e.preventDefault(); + var pos = K(self.edit.iframe).pos(), + menu = _menu({ + x : pos.x + e.clientX, + y : pos.y + e.clientY, + width : maxWidth, + css : { visibility: 'hidden' }, + shadowMode : self.shadowMode + }); + _each(items, function() { + if (this.title) { + menu.addItem(this); + } + }); + var docEl = _docElement(menu.doc), + menuHeight = menu.div.height(); + if (e.clientY + menuHeight >= docEl.clientHeight - 100) { + menu.pos(menu.x, _removeUnit(menu.y) - menuHeight); + } + menu.div.css('visibility', 'visible'); + self.menu = menu; + } + }); +} +function _bindNewlineEvent() { + var self = this, doc = self.edit.doc, newlineTag = self.newlineTag; + if (_IE && newlineTag !== 'br') { + return; + } + if (_GECKO && _V < 3 && newlineTag !== 'p') { + return; + } + if (_OPERA && _V < 9) { + return; + } + var brSkipTagMap = _toMap('h1,h2,h3,h4,h5,h6,pre,li'), + pSkipTagMap = _toMap('p,h1,h2,h3,h4,h5,h6,pre,li,blockquote'); + function getAncestorTagName(range) { + var ancestor = K(range.commonAncestor()); + while (ancestor) { + if (ancestor.type == 1 && !ancestor.isStyle()) { + break; + } + ancestor = ancestor.parent(); + } + return ancestor.name; + } + K(doc).keydown(function(e) { + if (e.which != 13 || e.shiftKey || e.ctrlKey || e.altKey) { + return; + } + self.cmd.selection(); + var tagName = getAncestorTagName(self.cmd.range); + if (tagName == 'marquee' || tagName == 'select') { + return; + } + if (newlineTag === 'br' && !brSkipTagMap[tagName]) { + e.preventDefault(); + self.insertHtml('
      ' + (_IE && _V < 9 ? '' : '\u200B')); + return; + } + if (!pSkipTagMap[tagName]) { + _nativeCommand(doc, 'formatblock', '

      '); + } + }); + K(doc).keyup(function(e) { + if (e.which != 13 || e.shiftKey || e.ctrlKey || e.altKey) { + return; + } + if (newlineTag == 'br') { + return; + } + if (_GECKO) { + var root = self.cmd.commonAncestor('p'); + var a = self.cmd.commonAncestor('a'); + if (a && a.text() == '') { + a.remove(true); + self.cmd.range.selectNodeContents(root[0]).collapse(true); + self.cmd.select(); + } + return; + } + self.cmd.selection(); + var tagName = getAncestorTagName(self.cmd.range); + if (tagName == 'marquee' || tagName == 'select') { + return; + } + if (!pSkipTagMap[tagName]) { + _nativeCommand(doc, 'formatblock', '

      '); + } + }); +} +function _bindTabEvent() { + var self = this, doc = self.edit.doc; + K(doc).keydown(function(e) { + if (e.which == 9) { + e.preventDefault(); + if (self.afterTab) { + self.afterTab.call(self, e); + return; + } + var cmd = self.cmd, range = cmd.range; + range.shrink(); + if (range.collapsed && range.startContainer.nodeType == 1) { + range.insertNode(K('@ ', doc)[0]); + cmd.select(); + } + self.insertHtml('    '); + } + }); +} +function _bindFocusEvent() { + var self = this; + K(self.edit.textarea[0], self.edit.win).focus(function(e) { + if (self.afterFocus) { + self.afterFocus.call(self, e); + } + }).blur(function(e) { + if (self.afterBlur) { + self.afterBlur.call(self, e); + } + }); +} +function _removeBookmarkTag(html) { + return _trim(html.replace(/]*id="?__kindeditor_bookmark_\w+_\d+__"?[^>]*><\/span>/ig, '')); +} +function _removeTempTag(html) { + return html.replace(/]+class="?__kindeditor_paste__"?[^>]*>[\s\S]*?<\/div>/ig, ''); +} +function _addBookmarkToStack(stack, bookmark) { + if (stack.length === 0) { + stack.push(bookmark); + return; + } + var prev = stack[stack.length - 1]; + if (_removeBookmarkTag(bookmark.html) !== _removeBookmarkTag(prev.html)) { + stack.push(bookmark); + } +} + +function _undoToRedo(fromStack, toStack) { + var self = this, edit = self.edit, + body = edit.doc.body, + range, bookmark; + if (fromStack.length === 0) { + return self; + } + if (edit.designMode) { + range = self.cmd.range; + bookmark = range.createBookmark(true); + bookmark.html = body.innerHTML; + } else { + bookmark = { + html : body.innerHTML + }; + } + _addBookmarkToStack(toStack, bookmark); + var prev = fromStack.pop(); + if (_removeBookmarkTag(bookmark.html) === _removeBookmarkTag(prev.html) && fromStack.length > 0) { + prev = fromStack.pop(); + } + if (edit.designMode) { + edit.html(prev.html); + if (prev.start) { + range.moveToBookmark(prev); + self.select(); + } + } else { + K(body).html(_removeBookmarkTag(prev.html)); + } + return self; +} +function KEditor(options) { + var self = this; + self.options = {}; + function setOption(key, val) { + if (KEditor.prototype[key] === undefined) { + self[key] = val; + } + self.options[key] = val; + } + _each(options, function(key, val) { + setOption(key, options[key]); + }); + _each(K.options, function(key, val) { + if (self[key] === undefined) { + setOption(key, val); + } + }); + var se = K(self.srcElement || '', + ''].join(''), + dialog = self.createDialog({ + name : name, + width : 450, + title : self.lang(name), + body : html, + yesBtn : { + name : self.lang('yes'), + click : function(e) { + var type = K('.ke-code-type', dialog.div).val(), + code = textarea.val(), + cls = type === '' ? '' : ' lang-' + type, + html = '

      \n' + K.escape(code) + '
      '; + if (K.trim(code) === '') { + alert(lang.pleaseInput); + textarea[0].focus(); + return; + } + self.insertHtml(html).hideDialog().focus(); + } + } + }), + textarea = K('textarea', dialog.div); + textarea[0].focus(); + }); +}); + +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ +KindEditor.plugin('emoticons', function(K) { + var self = this, name = 'emoticons', + path = (self.emoticonsPath || self.pluginsPath + 'emoticons/images/'), + allowPreview = self.allowPreviewEmoticons === undefined ? true : self.allowPreviewEmoticons, + currentPageNum = 1; + self.clickToolbar(name, function() { + var rows = 5, cols = 9, total = 135, startNum = 0, + cells = rows * cols, pages = Math.ceil(total / cells), + colsHalf = Math.floor(cols / 2), + wrapperDiv = K('
      '), + elements = [], + menu = self.createMenu({ + name : name, + beforeRemove : function() { + removeEvent(); + } + }); + menu.div.append(wrapperDiv); + var previewDiv, previewImg; + if (allowPreview) { + previewDiv = K('
      ').css('right', 0); + previewImg = K(''); + wrapperDiv.append(previewDiv); + previewDiv.append(previewImg); + } + function bindCellEvent(cell, j, num) { + if (previewDiv) { + cell.mouseover(function() { + if (j > colsHalf) { + previewDiv.css('left', 0); + previewDiv.css('right', ''); + } else { + previewDiv.css('left', ''); + previewDiv.css('right', 0); + } + previewImg.attr('src', path + num + '.gif'); + K(this).addClass('ke-on'); + }); + } else { + cell.mouseover(function() { + K(this).addClass('ke-on'); + }); + } + cell.mouseout(function() { + K(this).removeClass('ke-on'); + }); + cell.click(function(e) { + self.insertHtml('').hideMenu().focus(); + e.stop(); + }); + } + function createEmoticonsTable(pageNum, parentDiv) { + var table = document.createElement('table'); + parentDiv.append(table); + if (previewDiv) { + K(table).mouseover(function() { + previewDiv.show('block'); + }); + K(table).mouseout(function() { + previewDiv.hide(); + }); + elements.push(K(table)); + } + table.className = 'ke-table'; + table.cellPadding = 0; + table.cellSpacing = 0; + table.border = 0; + var num = (pageNum - 1) * cells + startNum; + for (var i = 0; i < rows; i++) { + var row = table.insertRow(i); + for (var j = 0; j < cols; j++) { + var cell = K(row.insertCell(j)); + cell.addClass('ke-cell'); + bindCellEvent(cell, j, num); + var span = K('') + .css('background-position', '-' + (24 * num) + 'px 0px') + .css('background-image', 'url(' + path + 'static.gif)'); + cell.append(span); + elements.push(cell); + num++; + } + } + return table; + } + var table = createEmoticonsTable(currentPageNum, wrapperDiv); + function removeEvent() { + K.each(elements, function() { + this.unbind(); + }); + } + var pageDiv; + function bindPageEvent(el, pageNum) { + el.click(function(e) { + removeEvent(); + table.parentNode.removeChild(table); + pageDiv.remove(); + table = createEmoticonsTable(pageNum, wrapperDiv); + createPageTable(pageNum); + currentPageNum = pageNum; + e.stop(); + }); + } + function createPageTable(currentPageNum) { + pageDiv = K('
      '); + wrapperDiv.append(pageDiv); + for (var pageNum = 1; pageNum <= pages; pageNum++) { + if (currentPageNum !== pageNum) { + var a = K('[' + pageNum + ']'); + bindPageEvent(a, pageNum); + pageDiv.append(a); + elements.push(a); + } else { + pageDiv.append(K('@[' + pageNum + ']')); + } + pageDiv.append(K('@ ')); + } + } + createPageTable(currentPageNum); + }); +}); + +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ +KindEditor.plugin('filemanager', function(K) { + var self = this, name = 'filemanager', + fileManagerJson = K.undef(self.fileManagerJson, self.basePath + 'php/file_manager_json.php'), + imgPath = self.pluginsPath + name + '/images/', + lang = self.lang(name + '.'); + function makeFileTitle(filename, filesize, datetime) { + return filename + ' (' + Math.ceil(filesize / 1024) + 'KB, ' + datetime + ')'; + } + function bindTitle(el, data) { + if (data.is_dir) { + el.attr('title', data.filename); + } else { + el.attr('title', makeFileTitle(data.filename, data.filesize, data.datetime)); + } + } + self.plugin.filemanagerDialog = function(options) { + var width = K.undef(options.width, 650), + height = K.undef(options.height, 510), + dirName = K.undef(options.dirName, ''), + viewType = K.undef(options.viewType, 'VIEW').toUpperCase(), + clickFn = options.clickFn; + var html = [ + '
      ', + '
      ', + '
      ', + ' ', + '' + lang.moveup + '', + '
      ', + '
      ', + lang.viewType + ' ', + lang.orderType + ' ', + '
      ', + '
      ', + '
      ', + '
      ', + '
      ' + ].join(''); + var dialog = self.createDialog({ + name : name, + width : width, + height : height, + title : self.lang(name), + body : html + }), + div = dialog.div, + bodyDiv = K('.ke-plugin-filemanager-body', div), + moveupImg = K('[name="moveupImg"]', div), + moveupLink = K('[name="moveupLink"]', div), + viewServerBtn = K('[name="viewServer"]', div), + viewTypeBox = K('[name="viewType"]', div), + orderTypeBox = K('[name="orderType"]', div); + function reloadPage(path, order, func) { + var param = 'path=' + path + '&order=' + order + '&dir=' + dirName; + dialog.showLoading(self.lang('ajaxLoading')); + K.ajax(K.addParam(fileManagerJson, param + '&' + new Date().getTime()), function(data) { + dialog.hideLoading(); + func(data); + }); + } + var elList = []; + function bindEvent(el, result, data, createFunc) { + var fileUrl = K.formatUrl(result.current_url + data.filename, 'absolute'), + dirPath = encodeURIComponent(result.current_dir_path + data.filename + '/'); + if (data.is_dir) { + el.click(function(e) { + reloadPage(dirPath, orderTypeBox.val(), createFunc); + }); + } else if (data.is_photo) { + el.click(function(e) { + clickFn.call(this, fileUrl, data.filename); + }); + } else { + el.click(function(e) { + clickFn.call(this, fileUrl, data.filename); + }); + } + elList.push(el); + } + function createCommon(result, createFunc) { + K.each(elList, function() { + this.unbind(); + }); + moveupLink.unbind(); + viewTypeBox.unbind(); + orderTypeBox.unbind(); + if (result.current_dir_path) { + moveupLink.click(function(e) { + reloadPage(result.moveup_dir_path, orderTypeBox.val(), createFunc); + }); + } + function changeFunc() { + if (viewTypeBox.val() == 'VIEW') { + reloadPage(result.current_dir_path, orderTypeBox.val(), createView); + } else { + reloadPage(result.current_dir_path, orderTypeBox.val(), createList); + } + } + viewTypeBox.change(changeFunc); + orderTypeBox.change(changeFunc); + bodyDiv.html(''); + } + function createList(result) { + createCommon(result, createList); + var table = document.createElement('table'); + table.className = 'ke-table'; + table.cellPadding = 0; + table.cellSpacing = 0; + table.border = 0; + bodyDiv.append(table); + var fileList = result.file_list; + for (var i = 0, len = fileList.length; i < len; i++) { + var data = fileList[i], row = K(table.insertRow(i)); + row.mouseover(function(e) { + K(this).addClass('ke-on'); + }) + .mouseout(function(e) { + K(this).removeClass('ke-on'); + }); + var iconUrl = imgPath + (data.is_dir ? 'folder-16.gif' : 'file-16.gif'), + img = K('' + data.filename + ''), + cell0 = K(row[0].insertCell(0)).addClass('ke-cell ke-name').append(img).append(document.createTextNode(' ' + data.filename)); + if (!data.is_dir || data.has_file) { + row.css('cursor', 'pointer'); + cell0.attr('title', data.filename); + bindEvent(cell0, result, data, createList); + } else { + cell0.attr('title', lang.emptyFolder); + } + K(row[0].insertCell(1)).addClass('ke-cell ke-size').html(data.is_dir ? '-' : Math.ceil(data.filesize / 1024) + 'KB'); + K(row[0].insertCell(2)).addClass('ke-cell ke-datetime').html(data.datetime); + } + } + function createView(result) { + createCommon(result, createView); + var fileList = result.file_list; + for (var i = 0, len = fileList.length; i < len; i++) { + var data = fileList[i], + div = K('
      '); + bodyDiv.append(div); + var photoDiv = K('
      ') + .mouseover(function(e) { + K(this).addClass('ke-on'); + }) + .mouseout(function(e) { + K(this).removeClass('ke-on'); + }); + div.append(photoDiv); + var fileUrl = result.current_url + data.filename, + iconUrl = data.is_dir ? imgPath + 'folder-64.gif' : (data.is_photo ? fileUrl : imgPath + 'file-64.gif'); + var img = K('' + data.filename + ''); + if (!data.is_dir || data.has_file) { + photoDiv.css('cursor', 'pointer'); + bindTitle(photoDiv, data); + bindEvent(photoDiv, result, data, createView); + } else { + photoDiv.attr('title', lang.emptyFolder); + } + photoDiv.append(img); + div.append('
      ' + data.filename + '
      '); + } + } + viewTypeBox.val(viewType); + reloadPage('', orderTypeBox.val(), viewType == 'VIEW' ? createView : createList); + return dialog; + } +}); + +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ +KindEditor.plugin('image', function(K) { + var self = this, name = 'image', + allowImageUpload = K.undef(self.allowImageUpload, true), + allowImageRemote = K.undef(self.allowImageRemote, true), + formatUploadUrl = K.undef(self.formatUploadUrl, true), + allowFileManager = K.undef(self.allowFileManager, false), + uploadJson = K.undef(self.uploadJson, self.basePath + 'php/upload_json.php'), + imageTabIndex = K.undef(self.imageTabIndex, 0), + imgPath = self.pluginsPath + 'image/images/', + extraParams = K.undef(self.extraFileUploadParams, {}), + filePostName = K.undef(self.filePostName, 'imgFile'), + fillDescAfterUploadImage = K.undef(self.fillDescAfterUploadImage, false), + lang = self.lang(name + '.'); + self.plugin.imageDialog = function(options) { + var imageUrl = options.imageUrl, + imageWidth = K.undef(options.imageWidth, ''), + imageHeight = K.undef(options.imageHeight, ''), + imageTitle = K.undef(options.imageTitle, ''), + imageAlign = K.undef(options.imageAlign, ''), + showRemote = K.undef(options.showRemote, true), + showLocal = K.undef(options.showLocal, true), + tabIndex = K.undef(options.tabIndex, 0), + clickFn = options.clickFn; + var target = 'kindeditor_upload_iframe_' + new Date().getTime(); + var hiddenElements = []; + for(var k in extraParams){ + hiddenElements.push(''); + } + var html = [ + '
      ', + '
      ', + '', + '', + '
      ' + ].join(''); + var dialogWidth = showLocal || allowFileManager ? 450 : 400, + dialogHeight = showLocal && showRemote ? 300 : 250; + var dialog = self.createDialog({ + name : name, + width : dialogWidth, + height : dialogHeight, + title : self.lang(name), + body : html, + yesBtn : { + name : self.lang('yes'), + click : function(e) { + if (dialog.isLoading) { + return; + } + if (showLocal && showRemote && tabs && tabs.selectedIndex === 1 || !showRemote) { + if (uploadbutton.fileBox.val() == '') { + alert(self.lang('pleaseSelectFile')); + return; + } + dialog.showLoading(self.lang('uploadLoading')); + uploadbutton.submit(); + localUrlBox.val(''); + return; + } + var url = K.trim(urlBox.val()), + width = widthBox.val(), + height = heightBox.val(), + title = titleBox.val(), + align = ''; + alignBox.each(function() { + if (this.checked) { + align = this.value; + return false; + } + }); + if (url == 'http://' || K.invalidUrl(url)) { + alert(self.lang('invalidUrl')); + urlBox[0].focus(); + return; + } + if (!/^\d*$/.test(width)) { + alert(self.lang('invalidWidth')); + widthBox[0].focus(); + return; + } + if (!/^\d*$/.test(height)) { + alert(self.lang('invalidHeight')); + heightBox[0].focus(); + return; + } + clickFn.call(self, url, title, width, height, 0, align); + } + }, + beforeRemove : function() { + viewServerBtn.unbind(); + widthBox.unbind(); + heightBox.unbind(); + refreshBtn.unbind(); + } + }), + div = dialog.div; + var urlBox = K('[name="url"]', div), + localUrlBox = K('[name="localUrl"]', div), + viewServerBtn = K('[name="viewServer"]', div), + widthBox = K('.tab1 [name="width"]', div), + heightBox = K('.tab1 [name="height"]', div), + refreshBtn = K('.ke-refresh-btn', div), + titleBox = K('.tab1 [name="title"]', div), + alignBox = K('.tab1 [name="align"]', div); + var tabs; + if (showRemote && showLocal) { + tabs = K.tabs({ + src : K('.tabs', div), + afterSelect : function(i) {} + }); + tabs.add({ + title : lang.remoteImage, + panel : K('.tab1', div) + }); + tabs.select(tabIndex); + } else if (showRemote) { + K('.tab1', div).show(); + } else if (showLocal) { + K('.tab2', div).show(); + } + var uploadbutton = K.uploadbutton({ + button : K('.ke-upload-button', div)[0], + fieldName : filePostName, + form : K('.ke-form', div), + target : target, + width: 60, + afterUpload : function(data) { + dialog.hideLoading(); + if (data.error === 0) { + var url = data.url; + if (formatUploadUrl) { + url = K.formatUrl(url, 'absolute'); + } + if (self.afterUpload) { + self.afterUpload.call(self, url, data, name); + } + if (!fillDescAfterUploadImage) { + clickFn.call(self, url, data.title, data.width, data.height, data.border, data.align); + } else { + K(".ke-dialog-row #remoteUrl", div).val(url); + K(".ke-tabs-li", div)[0].click(); + K(".ke-refresh-btn", div).click(); + } + } else { + alert(data.message); + } + }, + afterError : function(html) { + dialog.hideLoading(); + self.errorDialog(html); + } + }); + uploadbutton.fileBox.change(function(e) { + localUrlBox.val(uploadbutton.fileBox.val()); + }); + if (allowFileManager) { + viewServerBtn.click(function(e) { + self.loadPlugin('filemanager', function() { + self.plugin.filemanagerDialog({ + viewType : 'VIEW', + dirName : 'image', + clickFn : function(url, title) { + if (self.dialogs.length > 1) { + K('[name="url"]', div).val(url); + if (self.afterSelectFile) { + self.afterSelectFile.call(self, url); + } + self.hideDialog(); + } + } + }); + }); + }); + } else { + viewServerBtn.hide(); + } + var originalWidth = 0, originalHeight = 0; + function setSize(width, height) { + widthBox.val(width); + heightBox.val(height); + originalWidth = width; + originalHeight = height; + } + refreshBtn.click(function(e) { + var tempImg = K('', document).css({ + position : 'absolute', + visibility : 'hidden', + top : 0, + left : '-1000px' + }); + tempImg.bind('load', function() { + setSize(tempImg.width(), tempImg.height()); + tempImg.remove(); + }); + K(document.body).append(tempImg); + }); + widthBox.change(function(e) { + if (originalWidth > 0) { + heightBox.val(Math.round(originalHeight / originalWidth * parseInt(this.value, 10))); + } + }); + heightBox.change(function(e) { + if (originalHeight > 0) { + widthBox.val(Math.round(originalWidth / originalHeight * parseInt(this.value, 10))); + } + }); + urlBox.val(options.imageUrl); + setSize(options.imageWidth, options.imageHeight); + titleBox.val(options.imageTitle); + alignBox.each(function() { + if (this.value === options.imageAlign) { + this.checked = true; + return false; + } + }); + if (showRemote && tabIndex === 0) { + urlBox[0].focus(); + urlBox[0].select(); + } + return dialog; + }; + self.plugin.image = { + edit : function() { + var img = self.plugin.getSelectedImage(); + self.plugin.imageDialog({ + imageUrl : img ? img.attr('data-ke-src') : 'http://', + imageWidth : img ? img.width() : '', + imageHeight : img ? img.height() : '', + imageTitle : img ? img.attr('title') : '', + imageAlign : img ? img.attr('align') : '', + showRemote : allowImageRemote, + showLocal : allowImageUpload, + tabIndex: img ? 0 : imageTabIndex, + clickFn : function(url, title, width, height, border, align) { + if (img) { + img.attr('src', url); + img.attr('data-ke-src', url); + img.attr('width', width); + img.attr('height', height); + img.attr('title', title); + img.attr('align', align); + img.attr('alt', title); + } else { + self.exec('insertimage', url, title, width, height, border, align); + } + setTimeout(function() { + self.hideDialog().focus(); + }, 0); + } + }); + }, + 'delete' : function() { + var target = self.plugin.getSelectedImage(); + if (target.parent().name == 'a') { + target = target.parent(); + } + target.remove(); + self.addBookmark(); + } + }; + self.clickToolbar(name, self.plugin.image.edit); +}); + +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ +KindEditor.plugin('insertfile', function(K) { + var self = this, name = 'insertfile', + allowFileUpload = K.undef(self.allowFileUpload, true), + allowFileManager = K.undef(self.allowFileManager, false), + formatUploadUrl = K.undef(self.formatUploadUrl, true), + uploadJson = K.undef(self.uploadJson, self.basePath + 'php/upload_json.php'), + extraParams = K.undef(self.extraFileUploadParams, {}), + filePostName = K.undef(self.filePostName, 'imgFile'), + lang = self.lang(name + '.'); + self.plugin.fileDialog = function(options) { + var fileUrl = K.undef(options.fileUrl, 'http://'), + fileTitle = K.undef(options.fileTitle, ''), + clickFn = options.clickFn; + var html = [ + '
      ', + '
      ', + '', + '  ', + '  ', + '', + '', + '', + '
      ', + '
      ', + '', + '
      ', + '
      ', + '', + '' + ].join(''); + var dialog = self.createDialog({ + name : name, + width : 450, + title : self.lang(name), + body : html, + yesBtn : { + name : self.lang('yes'), + click : function(e) { + var url = K.trim(urlBox.val()), + title = titleBox.val(); + if (url == 'http://' || K.invalidUrl(url)) { + alert(self.lang('invalidUrl')); + urlBox[0].focus(); + return; + } + if (K.trim(title) === '') { + title = url; + } + clickFn.call(self, url, title); + } + } + }), + div = dialog.div; + var urlBox = K('[name="url"]', div), + viewServerBtn = K('[name="viewServer"]', div), + titleBox = K('[name="title"]', div); + if (allowFileUpload) { + var uploadbutton = K.uploadbutton({ + button : K('.ke-upload-button', div)[0], + fieldName : filePostName, + url : K.addParam(uploadJson, 'dir=file'), + extraParams : extraParams, + afterUpload : function(data) { + dialog.hideLoading(); + if (data.error === 0) { + var url = data.url; + if (formatUploadUrl) { + url = K.formatUrl(url, 'absolute'); + } + urlBox.val(url); + if (self.afterUpload) { + self.afterUpload.call(self, url, data, name); + } + alert(self.lang('uploadSuccess')); + } else { + alert(data.message); + } + }, + afterError : function(html) { + dialog.hideLoading(); + self.errorDialog(html); + } + }); + uploadbutton.fileBox.change(function(e) { + dialog.showLoading(self.lang('uploadLoading')); + uploadbutton.submit(); + }); + } else { + K('.ke-upload-button', div).hide(); + } + if (allowFileManager) { + viewServerBtn.click(function(e) { + self.loadPlugin('filemanager', function() { + self.plugin.filemanagerDialog({ + viewType : 'LIST', + dirName : 'file', + clickFn : function(url, title) { + if (self.dialogs.length > 1) { + K('[name="url"]', div).val(url); + if (self.afterSelectFile) { + self.afterSelectFile.call(self, url); + } + self.hideDialog(); + } + } + }); + }); + }); + } else { + viewServerBtn.hide(); + } + urlBox.val(fileUrl); + titleBox.val(fileTitle); + urlBox[0].focus(); + urlBox[0].select(); + }; + self.clickToolbar(name, function() { + self.plugin.fileDialog({ + clickFn : function(url, title) { + var html = '' + title + ''; + self.insertHtml(html).hideDialog().focus(); + } + }); + }); +}); + +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ +KindEditor.plugin('lineheight', function(K) { + var self = this, name = 'lineheight', lang = self.lang(name + '.'); + self.clickToolbar(name, function() { + var curVal = '', commonNode = self.cmd.commonNode({'*' : '.line-height'}); + if (commonNode) { + curVal = commonNode.css('line-height'); + } + var menu = self.createMenu({ + name : name, + width : 150 + }); + K.each(lang.lineHeight, function(i, row) { + K.each(row, function(key, val) { + menu.addItem({ + title : val, + checked : curVal === key, + click : function() { + self.cmd.toggle('', { + span : '.line-height=' + key + }); + self.updateState(); + self.addBookmark(); + self.hideMenu(); + } + }); + }); + }); + }); +}); + +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ +KindEditor.plugin('link', function(K) { + var self = this, name = 'link'; + self.plugin.link = { + edit : function() { + var lang = self.lang(name + '.'), + html = '
      ' + + '
      ' + + '' + + '
      ' + + '
      ' + + '' + + '' + + '
      ' + + '
      ', + dialog = self.createDialog({ + name : name, + width : 450, + title : self.lang(name), + body : html, + yesBtn : { + name : self.lang('yes'), + click : function(e) { + var url = K.trim(urlBox.val()); + if (url == 'http://' || K.invalidUrl(url)) { + alert(self.lang('invalidUrl')); + urlBox[0].focus(); + return; + } + self.exec('createlink', url, typeBox.val()).hideDialog().focus(); + } + } + }), + div = dialog.div, + urlBox = K('input[name="url"]', div), + typeBox = K('select[name="type"]', div); + urlBox.val('http://'); + typeBox[0].options[0] = new Option(lang.newWindow, '_blank'); + typeBox[0].options[1] = new Option(lang.selfWindow, ''); + self.cmd.selection(); + var a = self.plugin.getSelectedLink(); + if (a) { + self.cmd.range.selectNode(a[0]); + self.cmd.select(); + urlBox.val(a.attr('data-ke-src')); + typeBox.val(a.attr('target')); + } + urlBox[0].focus(); + urlBox[0].select(); + }, + 'delete' : function() { + self.exec('unlink', null); + } + }; + self.clickToolbar(name, self.plugin.link.edit); +}); + +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ +KindEditor.plugin('pagebreak', function(K) { + var self = this; + var name = 'pagebreak'; + var pagebreakHtml = K.undef(self.pagebreakHtml, '
      '); + self.clickToolbar(name, function() { + var cmd = self.cmd, range = cmd.range; + self.focus(); + var tail = self.newlineTag == 'br' || K.WEBKIT ? '' : ''; + self.insertHtml(pagebreakHtml + tail); + if (tail !== '') { + var p = K('#__kindeditor_tail_tag__', self.edit.doc); + range.selectNodeContents(p[0]); + p.removeAttr('id'); + cmd.select(); + } + }); +}); + +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ +KindEditor.plugin('plainpaste', function(K) { + var self = this, name = 'plainpaste'; + self.clickToolbar(name, function() { + var lang = self.lang(name + '.'), + html = '
      ' + + '
      ' + lang.comment + '
      ' + + '' + + '
      ', + dialog = self.createDialog({ + name : name, + width : 450, + title : self.lang(name), + body : html, + yesBtn : { + name : self.lang('yes'), + click : function(e) { + var html = textarea.val(); + html = K.escape(html); + html = html.replace(/ {2}/g, '  '); + if (self.newlineTag == 'p') { + html = html.replace(/^/, '

      ').replace(/$/, '

      ').replace(/\n/g, '

      '); + } else { + html = html.replace(/\n/g, '
      $&'); + } + self.insertHtml(html).hideDialog().focus(); + } + } + }), + textarea = K('textarea', dialog.div); + textarea[0].focus(); + }); +}); + +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ +KindEditor.plugin('preview', function(K) { + var self = this, name = 'preview', undefined; + self.clickToolbar(name, function() { + var lang = self.lang(name + '.'), + html = '

      ' + + '' + + '
      ', + dialog = self.createDialog({ + name : name, + width : 750, + title : self.lang(name), + body : html + }), + iframe = K('iframe', dialog.div), + doc = K.iframeDoc(iframe); + doc.open(); + doc.write(self.fullHtml()); + doc.close(); + K(doc.body).css('background-color', '#FFF'); + iframe[0].contentWindow.focus(); + }); +}); + +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ +KindEditor.plugin('quickformat', function(K) { + var self = this, name = 'quickformat', + blockMap = K.toMap('blockquote,center,div,h1,h2,h3,h4,h5,h6,p'); + function getFirstChild(knode) { + var child = knode.first(); + while (child && child.first()) { + child = child.first(); + } + return child; + } + self.clickToolbar(name, function() { + self.focus(); + var doc = self.edit.doc, + range = self.cmd.range, + child = K(doc.body).first(), next, + nodeList = [], subList = [], + bookmark = range.createBookmark(true); + while(child) { + next = child.next(); + var firstChild = getFirstChild(child); + if (!firstChild || firstChild.name != 'img') { + if (blockMap[child.name]) { + child.html(child.html().replace(/^(\s| | )+/ig, '')); + child.css('text-indent', '2em'); + } else { + subList.push(child); + } + if (!next || (blockMap[next.name] || blockMap[child.name] && !blockMap[next.name])) { + if (subList.length > 0) { + nodeList.push(subList); + } + subList = []; + } + } + child = next; + } + K.each(nodeList, function(i, subList) { + var wrapper = K('

      ', doc); + subList[0].before(wrapper); + K.each(subList, function(i, knode) { + wrapper.append(knode); + }); + }); + range.moveToBookmark(bookmark); + self.addBookmark(); + }); +}); + +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ +KindEditor.plugin('table', function(K) { + var self = this, name = 'table', lang = self.lang(name + '.'), zeroborder = 'ke-zeroborder'; + function _setColor(box, color) { + color = color.toUpperCase(); + box.css('background-color', color); + box.css('color', color === '#000000' ? '#FFFFFF' : '#000000'); + box.html(color); + } + var pickerList = []; + function _initColorPicker(dialogDiv, colorBox) { + colorBox.bind('click,mousedown', function(e){ + e.stopPropagation(); + }); + function removePicker() { + K.each(pickerList, function() { + this.remove(); + }); + pickerList = []; + K(document).unbind('click,mousedown', removePicker); + dialogDiv.unbind('click,mousedown', removePicker); + } + colorBox.click(function(e) { + removePicker(); + var box = K(this), + pos = box.pos(); + var picker = K.colorpicker({ + x : pos.x, + y : pos.y + box.height(), + z : 811214, + selectedColor : K(this).html(), + colors : self.colorTable, + noColor : self.lang('noColor'), + shadowMode : self.shadowMode, + click : function(color) { + _setColor(box, color); + removePicker(); + } + }); + pickerList.push(picker); + K(document).bind('click,mousedown', removePicker); + dialogDiv.bind('click,mousedown', removePicker); + }); + } + function _getCellIndex(table, row, cell) { + var rowSpanCount = 0; + for (var i = 0, len = row.cells.length; i < len; i++) { + if (row.cells[i] == cell) { + break; + } + rowSpanCount += row.cells[i].rowSpan - 1; + } + return cell.cellIndex - rowSpanCount; + } + self.plugin.table = { + prop : function(isInsert) { + var html = [ + '
      ', + '
      ', + '', + lang.rows + '   ', + lang.cols + ' ', + '
      ', + '
      ', + '', + lang.width + '   ', + '   ', + lang.height + '   ', + '', + '
      ', + '
      ', + '', + lang.padding + '   ', + lang.spacing + ' ', + '
      ', + '
      ', + '', + '', + '
      ', + '
      ', + '', + lang.borderWidth + '   ', + lang.borderColor + ' ', + '
      ', + '
      ', + '', + '', + '
      ', + '
      ' + ].join(''); + var bookmark = self.cmd.range.createBookmark(); + var dialog = self.createDialog({ + name : name, + width : 500, + title : self.lang(name), + body : html, + beforeRemove : function() { + colorBox.unbind(); + }, + yesBtn : { + name : self.lang('yes'), + click : function(e) { + var rows = rowsBox.val(), + cols = colsBox.val(), + width = widthBox.val(), + height = heightBox.val(), + widthType = widthTypeBox.val(), + heightType = heightTypeBox.val(), + padding = paddingBox.val(), + spacing = spacingBox.val(), + align = alignBox.val(), + border = borderBox.val(), + borderColor = K(colorBox[0]).html() || '', + bgColor = K(colorBox[1]).html() || ''; + if (rows == 0 || !/^\d+$/.test(rows)) { + alert(self.lang('invalidRows')); + rowsBox[0].focus(); + return; + } + if (cols == 0 || !/^\d+$/.test(cols)) { + alert(self.lang('invalidRows')); + colsBox[0].focus(); + return; + } + if (!/^\d*$/.test(width)) { + alert(self.lang('invalidWidth')); + widthBox[0].focus(); + return; + } + if (!/^\d*$/.test(height)) { + alert(self.lang('invalidHeight')); + heightBox[0].focus(); + return; + } + if (!/^\d*$/.test(padding)) { + alert(self.lang('invalidPadding')); + paddingBox[0].focus(); + return; + } + if (!/^\d*$/.test(spacing)) { + alert(self.lang('invalidSpacing')); + spacingBox[0].focus(); + return; + } + if (!/^\d*$/.test(border)) { + alert(self.lang('invalidBorder')); + borderBox[0].focus(); + return; + } + if (table) { + if (width !== '') { + table.width(width + widthType); + } else { + table.css('width', ''); + } + if (table[0].width !== undefined) { + table.removeAttr('width'); + } + if (height !== '') { + table.height(height + heightType); + } else { + table.css('height', ''); + } + if (table[0].height !== undefined) { + table.removeAttr('height'); + } + table.css('background-color', bgColor); + if (table[0].bgColor !== undefined) { + table.removeAttr('bgColor'); + } + if (padding !== '') { + table[0].cellPadding = padding; + } else { + table.removeAttr('cellPadding'); + } + if (spacing !== '') { + table[0].cellSpacing = spacing; + } else { + table.removeAttr('cellSpacing'); + } + if (align !== '') { + table[0].align = align; + } else { + table.removeAttr('align'); + } + if (border !== '') { + table.attr('border', border); + } else { + table.removeAttr('border'); + } + if (border === '' || border === '0') { + table.addClass(zeroborder); + } else { + table.removeClass(zeroborder); + } + if (borderColor !== '') { + table.attr('borderColor', borderColor); + } else { + table.removeAttr('borderColor'); + } + self.hideDialog().focus(); + self.cmd.range.moveToBookmark(bookmark); + self.cmd.select(); + self.addBookmark(); + return; + } + var style = ''; + if (width !== '') { + style += 'width:' + width + widthType + ';'; + } + if (height !== '') { + style += 'height:' + height + heightType + ';'; + } + if (bgColor !== '') { + style += 'background-color:' + bgColor + ';'; + } + var html = '') + ''; + } + html += ''; + } + html += ''; + if (!K.IE) { + html += '
      '; + } + self.insertHtml(html); + self.select().hideDialog().focus(); + self.addBookmark(); + } + } + }), + div = dialog.div, + rowsBox = K('[name="rows"]', div).val(3), + colsBox = K('[name="cols"]', div).val(2), + widthBox = K('[name="width"]', div).val(100), + heightBox = K('[name="height"]', div), + widthTypeBox = K('[name="widthType"]', div), + heightTypeBox = K('[name="heightType"]', div), + paddingBox = K('[name="padding"]', div).val(2), + spacingBox = K('[name="spacing"]', div).val(0), + alignBox = K('[name="align"]', div), + borderBox = K('[name="border"]', div).val(1), + colorBox = K('.ke-input-color', div); + _initColorPicker(div, colorBox.eq(0)); + _initColorPicker(div, colorBox.eq(1)); + _setColor(colorBox.eq(0), '#000000'); + _setColor(colorBox.eq(1), ''); + rowsBox[0].focus(); + rowsBox[0].select(); + var table; + if (isInsert) { + return; + } + table = self.plugin.getSelectedTable(); + if (table) { + rowsBox.val(table[0].rows.length); + colsBox.val(table[0].rows.length > 0 ? table[0].rows[0].cells.length : 0); + rowsBox.attr('disabled', true); + colsBox.attr('disabled', true); + var match, + tableWidth = table[0].style.width || table[0].width, + tableHeight = table[0].style.height || table[0].height; + if (tableWidth !== undefined && (match = /^(\d+)((?:px|%)*)$/.exec(tableWidth))) { + widthBox.val(match[1]); + widthTypeBox.val(match[2]); + } else { + widthBox.val(''); + } + if (tableHeight !== undefined && (match = /^(\d+)((?:px|%)*)$/.exec(tableHeight))) { + heightBox.val(match[1]); + heightTypeBox.val(match[2]); + } + paddingBox.val(table[0].cellPadding || ''); + spacingBox.val(table[0].cellSpacing || ''); + alignBox.val(table[0].align || ''); + borderBox.val(table[0].border === undefined ? '' : table[0].border); + _setColor(colorBox.eq(0), K.toHex(table.attr('borderColor') || '')); + _setColor(colorBox.eq(1), K.toHex(table[0].style.backgroundColor || table[0].bgColor || '')); + widthBox[0].focus(); + widthBox[0].select(); + } + }, + cellprop : function() { + var html = [ + '
      ', + '
      ', + '', + lang.width + '   ', + '   ', + lang.height + '   ', + '', + '
      ', + '
      ', + '', + lang.textAlign + ' ', + lang.verticalAlign + ' ', + '
      ', + '
      ', + '', + lang.borderWidth + '   ', + lang.borderColor + ' ', + '
      ', + '
      ', + '', + '', + '
      ', + '
      ' + ].join(''); + var bookmark = self.cmd.range.createBookmark(); + var dialog = self.createDialog({ + name : name, + width : 500, + title : self.lang('tablecell'), + body : html, + beforeRemove : function() { + colorBox.unbind(); + }, + yesBtn : { + name : self.lang('yes'), + click : function(e) { + var width = widthBox.val(), + height = heightBox.val(), + widthType = widthTypeBox.val(), + heightType = heightTypeBox.val(), + padding = paddingBox.val(), + spacing = spacingBox.val(), + textAlign = textAlignBox.val(), + verticalAlign = verticalAlignBox.val(), + border = borderBox.val(), + borderColor = K(colorBox[0]).html() || '', + bgColor = K(colorBox[1]).html() || ''; + if (!/^\d*$/.test(width)) { + alert(self.lang('invalidWidth')); + widthBox[0].focus(); + return; + } + if (!/^\d*$/.test(height)) { + alert(self.lang('invalidHeight')); + heightBox[0].focus(); + return; + } + if (!/^\d*$/.test(border)) { + alert(self.lang('invalidBorder')); + borderBox[0].focus(); + return; + } + cell.css({ + width : width !== '' ? (width + widthType) : '', + height : height !== '' ? (height + heightType) : '', + 'background-color' : bgColor, + 'text-align' : textAlign, + 'vertical-align' : verticalAlign, + 'border-width' : border, + 'border-style' : border !== '' ? 'solid' : '', + 'border-color' : borderColor + }); + self.hideDialog().focus(); + self.cmd.range.moveToBookmark(bookmark); + self.cmd.select(); + self.addBookmark(); + } + } + }), + div = dialog.div, + widthBox = K('[name="width"]', div).val(100), + heightBox = K('[name="height"]', div), + widthTypeBox = K('[name="widthType"]', div), + heightTypeBox = K('[name="heightType"]', div), + paddingBox = K('[name="padding"]', div).val(2), + spacingBox = K('[name="spacing"]', div).val(0), + textAlignBox = K('[name="textAlign"]', div), + verticalAlignBox = K('[name="verticalAlign"]', div), + borderBox = K('[name="border"]', div).val(1), + colorBox = K('.ke-input-color', div); + _initColorPicker(div, colorBox.eq(0)); + _initColorPicker(div, colorBox.eq(1)); + _setColor(colorBox.eq(0), '#000000'); + _setColor(colorBox.eq(1), ''); + widthBox[0].focus(); + widthBox[0].select(); + var cell = self.plugin.getSelectedCell(); + var match, + cellWidth = cell[0].style.width || cell[0].width || '', + cellHeight = cell[0].style.height || cell[0].height || ''; + if ((match = /^(\d+)((?:px|%)*)$/.exec(cellWidth))) { + widthBox.val(match[1]); + widthTypeBox.val(match[2]); + } else { + widthBox.val(''); + } + if ((match = /^(\d+)((?:px|%)*)$/.exec(cellHeight))) { + heightBox.val(match[1]); + heightTypeBox.val(match[2]); + } + textAlignBox.val(cell[0].style.textAlign || ''); + verticalAlignBox.val(cell[0].style.verticalAlign || ''); + var border = cell[0].style.borderWidth || ''; + if (border) { + border = parseInt(border); + } + borderBox.val(border); + _setColor(colorBox.eq(0), K.toHex(cell[0].style.borderColor || '')); + _setColor(colorBox.eq(1), K.toHex(cell[0].style.backgroundColor || '')); + widthBox[0].focus(); + widthBox[0].select(); + }, + insert : function() { + this.prop(true); + }, + 'delete' : function() { + var table = self.plugin.getSelectedTable(); + self.cmd.range.setStartBefore(table[0]).collapse(true); + self.cmd.select(); + table.remove(); + self.addBookmark(); + }, + colinsert : function(offset) { + var table = self.plugin.getSelectedTable()[0], + row = self.plugin.getSelectedRow()[0], + cell = self.plugin.getSelectedCell()[0], + index = cell.cellIndex + offset; + index += table.rows[0].cells.length - row.cells.length; + for (var i = 0, len = table.rows.length; i < len; i++) { + var newRow = table.rows[i], + newCell = newRow.insertCell(index); + newCell.innerHTML = K.IE ? '' : '
      '; + index = _getCellIndex(table, newRow, newCell); + } + self.cmd.range.selectNodeContents(cell).collapse(true); + self.cmd.select(); + self.addBookmark(); + }, + colinsertleft : function() { + this.colinsert(0); + }, + colinsertright : function() { + this.colinsert(1); + }, + rowinsert : function(offset) { + var table = self.plugin.getSelectedTable()[0], + row = self.plugin.getSelectedRow()[0], + cell = self.plugin.getSelectedCell()[0]; + var rowIndex = row.rowIndex; + if (offset === 1) { + rowIndex = row.rowIndex + (cell.rowSpan - 1) + offset; + } + var newRow = table.insertRow(rowIndex); + for (var i = 0, len = row.cells.length; i < len; i++) { + if (row.cells[i].rowSpan > 1) { + len -= row.cells[i].rowSpan - 1; + } + var newCell = newRow.insertCell(i); + if (offset === 1 && row.cells[i].colSpan > 1) { + newCell.colSpan = row.cells[i].colSpan; + } + newCell.innerHTML = K.IE ? '' : '
      '; + } + for (var j = rowIndex; j >= 0; j--) { + var cells = table.rows[j].cells; + if (cells.length > i) { + for (var k = cell.cellIndex; k >= 0; k--) { + if (cells[k].rowSpan > 1) { + cells[k].rowSpan += 1; + } + } + break; + } + } + self.cmd.range.selectNodeContents(cell).collapse(true); + self.cmd.select(); + self.addBookmark(); + }, + rowinsertabove : function() { + this.rowinsert(0); + }, + rowinsertbelow : function() { + this.rowinsert(1); + }, + rowmerge : function() { + var table = self.plugin.getSelectedTable()[0], + row = self.plugin.getSelectedRow()[0], + cell = self.plugin.getSelectedCell()[0], + rowIndex = row.rowIndex, + nextRowIndex = rowIndex + cell.rowSpan, + nextRow = table.rows[nextRowIndex]; + if (table.rows.length <= nextRowIndex) { + return; + } + var cellIndex = cell.cellIndex; + if (nextRow.cells.length <= cellIndex) { + return; + } + var nextCell = nextRow.cells[cellIndex]; + if (cell.colSpan !== nextCell.colSpan) { + return; + } + cell.rowSpan += nextCell.rowSpan; + nextRow.deleteCell(cellIndex); + self.cmd.range.selectNodeContents(cell).collapse(true); + self.cmd.select(); + self.addBookmark(); + }, + colmerge : function() { + var table = self.plugin.getSelectedTable()[0], + row = self.plugin.getSelectedRow()[0], + cell = self.plugin.getSelectedCell()[0], + rowIndex = row.rowIndex, + cellIndex = cell.cellIndex, + nextCellIndex = cellIndex + 1; + if (row.cells.length <= nextCellIndex) { + return; + } + var nextCell = row.cells[nextCellIndex]; + if (cell.rowSpan !== nextCell.rowSpan) { + return; + } + cell.colSpan += nextCell.colSpan; + row.deleteCell(nextCellIndex); + self.cmd.range.selectNodeContents(cell).collapse(true); + self.cmd.select(); + self.addBookmark(); + }, + rowsplit : function() { + var table = self.plugin.getSelectedTable()[0], + row = self.plugin.getSelectedRow()[0], + cell = self.plugin.getSelectedCell()[0], + rowIndex = row.rowIndex; + if (cell.rowSpan === 1) { + return; + } + var cellIndex = _getCellIndex(table, row, cell); + for (var i = 1, len = cell.rowSpan; i < len; i++) { + var newRow = table.rows[rowIndex + i], + newCell = newRow.insertCell(cellIndex); + if (cell.colSpan > 1) { + newCell.colSpan = cell.colSpan; + } + newCell.innerHTML = K.IE ? '' : '
      '; + cellIndex = _getCellIndex(table, newRow, newCell); + } + K(cell).removeAttr('rowSpan'); + self.cmd.range.selectNodeContents(cell).collapse(true); + self.cmd.select(); + self.addBookmark(); + }, + colsplit : function() { + var table = self.plugin.getSelectedTable()[0], + row = self.plugin.getSelectedRow()[0], + cell = self.plugin.getSelectedCell()[0], + cellIndex = cell.cellIndex; + if (cell.colSpan === 1) { + return; + } + for (var i = 1, len = cell.colSpan; i < len; i++) { + var newCell = row.insertCell(cellIndex + i); + if (cell.rowSpan > 1) { + newCell.rowSpan = cell.rowSpan; + } + newCell.innerHTML = K.IE ? '' : '
      '; + } + K(cell).removeAttr('colSpan'); + self.cmd.range.selectNodeContents(cell).collapse(true); + self.cmd.select(); + self.addBookmark(); + }, + coldelete : function() { + var table = self.plugin.getSelectedTable()[0], + row = self.plugin.getSelectedRow()[0], + cell = self.plugin.getSelectedCell()[0], + index = cell.cellIndex; + for (var i = 0, len = table.rows.length; i < len; i++) { + var newRow = table.rows[i], + newCell = newRow.cells[index]; + if (newCell.colSpan > 1) { + newCell.colSpan -= 1; + if (newCell.colSpan === 1) { + K(newCell).removeAttr('colSpan'); + } + } else { + newRow.deleteCell(index); + } + if (newCell.rowSpan > 1) { + i += newCell.rowSpan - 1; + } + } + if (row.cells.length === 0) { + self.cmd.range.setStartBefore(table).collapse(true); + self.cmd.select(); + K(table).remove(); + } else { + self.cmd.selection(true); + } + self.addBookmark(); + }, + rowdelete : function() { + var table = self.plugin.getSelectedTable()[0], + row = self.plugin.getSelectedRow()[0], + cell = self.plugin.getSelectedCell()[0], + rowIndex = row.rowIndex; + for (var i = cell.rowSpan - 1; i >= 0; i--) { + table.deleteRow(rowIndex + i); + } + if (table.rows.length === 0) { + self.cmd.range.setStartBefore(table).collapse(true); + self.cmd.select(); + K(table).remove(); + } else { + self.cmd.selection(true); + } + self.addBookmark(); + } + }; + self.clickToolbar(name, self.plugin.table.prop); +}); + +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ +KindEditor.plugin('template', function(K) { + var self = this, name = 'template', lang = self.lang(name + '.'), + htmlPath = self.pluginsPath + name + '/html/'; + function getFilePath(fileName) { + return htmlPath + fileName + '?ver=' + encodeURIComponent(K.DEBUG ? K.TIME : K.VERSION); + } + self.clickToolbar(name, function() { + var lang = self.lang(name + '.'), + arr = ['
      ', + '
      ', + '
      ', + lang. selectTemplate + '
      ', + '
      ', + ' ', + '
      ', + '
      ', + '
      ', + '', + '
      '].join(''); + var dialog = self.createDialog({ + name : name, + width : 500, + title : self.lang(name), + body : html, + yesBtn : { + name : self.lang('yes'), + click : function(e) { + var doc = K.iframeDoc(iframe); + self[checkbox[0].checked ? 'html' : 'insertHtml'](doc.body.innerHTML).hideDialog().focus(); + } + } + }); + var selectBox = K('select', dialog.div), + checkbox = K('[name="replaceFlag"]', dialog.div), + iframe = K('iframe', dialog.div); + checkbox[0].checked = true; + iframe.attr('src', getFilePath(selectBox.val())); + selectBox.change(function() { + iframe.attr('src', getFilePath(this.value)); + }); + }); +}); + +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ +KindEditor.plugin('wordpaste', function(K) { + var self = this, name = 'wordpaste'; + self.clickToolbar(name, function() { + var lang = self.lang(name + '.'), + html = '
      ' + + '
      ' + lang.comment + '
      ' + + '' + + '
      ', + dialog = self.createDialog({ + name : name, + width : 450, + title : self.lang(name), + body : html, + yesBtn : { + name : self.lang('yes'), + click : function(e) { + var str = doc.body.innerHTML; + str = K.clearMsWord(str, self.filterMode ? self.htmlTags : K.options.htmlTags); + self.insertHtml(str).hideDialog().focus(); + } + } + }), + div = dialog.div, + iframe = K('iframe', div), + doc = K.iframeDoc(iframe); + if (!K.IE) { + doc.designMode = 'on'; + } + doc.open(); + doc.write('WordPaste'); + doc.write(''); + if (!K.IE) { + doc.write('
      '); + } + doc.write(''); + doc.close(); + if (K.IE) { + doc.body.contentEditable = 'true'; + } + iframe[0].contentWindow.focus(); + }); +}); + + +KindEditor.plugin('fixtoolbar', function (K) { + var self = this; + if (!self.fixToolBar) { + return; + } + function init() { + var toolbar = K('.ke-toolbar'); + var originY = toolbar.pos().y; + K(window).bind('scroll', function () { + if (toolbar.css('position') == 'fixed') { + if(document.body.scrollTop - originY < 0){ + toolbar.css('position', 'static'); + toolbar.css('top', 'auto'); + } + } else { + if (toolbar.pos().y - document.body.scrollTop < 0) { + toolbar.css('position', 'fixed'); + toolbar.css('top', 0); + } + } + }); + } + if (self.isCreated) { + init(); + } else { + self.afterCreate(init); + } +}); diff --git a/static/kindeditor/kindeditor.js b/static/kindeditor/kindeditor.js new file mode 100644 index 0000000..0741ff0 --- /dev/null +++ b/static/kindeditor/kindeditor.js @@ -0,0 +1,8 @@ +import KindEditor from '../components/KindEditor' +const install = function (Vue) { + if (install.installed) return + install.installed = true + Vue.component('editor', KindEditor) +} + +export default install \ No newline at end of file diff --git a/static/kindeditor/lang/ar.js b/static/kindeditor/lang/ar.js new file mode 100644 index 0000000..6eb4b7e --- /dev/null +++ b/static/kindeditor/lang/ar.js @@ -0,0 +1,242 @@ +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +* Arabic Translation By daif alotaibi (http://daif.net/) +*******************************************************************************/ + +KindEditor.lang({ + source : 'عرض المصدر', + preview : 'معاينة الصفحة', + undo : 'تراجع(Ctrl+Z)', + redo : 'إعادة التراجع(Ctrl+Y)', + cut : 'قص(Ctrl+X)', + copy : 'نسخ(Ctrl+C)', + paste : 'لصق(Ctrl+V)', + plainpaste : 'لصق كنص عادي', + wordpaste : 'لصق من مايكروسفت ورد', + selectall : 'تحديد الكل', + justifyleft : 'محاذاه لليسار', + justifycenter : 'محاذاه للوسط', + justifyright : 'محاذاه لليمين', + justifyfull : 'محاذاه تلقائية', + insertorderedlist : 'قائمة مرقمه', + insertunorderedlist : 'قائمة نقطية', + indent : 'إزاحه النص', + outdent : 'إلغاء الازاحة', + subscript : 'أسفل النص', + superscript : 'أعلى النص', + formatblock : 'Paragraph format', + fontname : 'نوع الخط', + fontsize : 'حجم الخط', + forecolor : 'لون النص', + hilitecolor : 'لون خلفية النص', + bold : 'عريض(Ctrl+B)', + italic : 'مائل(Ctrl+I)', + underline : 'خط تحت النص(Ctrl+U)', + strikethrough : 'خط على النص', + removeformat : 'إزالة التنسيق', + image : 'إدراج صورة', + multiimage : 'Multi image', + flash : 'إدراج فلاش', + media : 'إدراج وسائط متعددة', + table : 'إدراج جدول', + tablecell : 'خلية', + hr : 'إدراج خط أفقي', + emoticons : 'إدراج وجه ضاحك', + link : 'رابط', + unlink : 'إزالة الرابط', + fullscreen : 'محرر ملئ الشاشة', + about : 'حول', + print : 'طباعة', + filemanager : 'مدير الملفات', + code : 'إدراج نص برمجي', + map : 'خرائط قووقل', + baidumap : 'خرائط قووقل', + lineheight : 'إرتفاع السطر', + clearhtml : 'مسح كود HTML', + pagebreak : 'إدراج فاصل صفحات', + quickformat : 'تنسيق سريع', + insertfile : 'إدراج ملف', + template : 'إدراج قالب', + anchor : 'رابط', + yes : 'موافق', + no : 'إلغاء', + close : 'إغلاق', + editImage : 'خصائص الصورة', + deleteImage : 'حذفالصورة', + editFlash : 'خصائص الفلاش', + deleteFlash : 'حذف الفلاش', + editMedia : 'خصائص الوسائط', + deleteMedia : 'حذف الوسائط', + editLink : 'خصائص الرابط', + deleteLink : 'إزالة الرابط', + editAnchor : 'Anchor properties', + deleteAnchor : 'Delete Anchor', + tableprop : 'خصائص الجدول', + tablecellprop : 'خصائص الخلية', + tableinsert : 'إدراج جدول', + tabledelete : 'حذف جدول', + tablecolinsertleft : 'إدراج عمود لليسار', + tablecolinsertright : 'إدراج عمود لليسار', + tablerowinsertabove : 'إدراج صف للأعلى', + tablerowinsertbelow : 'إدراج صف للأسفل', + tablerowmerge : 'دمج للأسفل', + tablecolmerge : 'دمج لليمين', + tablerowsplit : 'تقسم الصف', + tablecolsplit : 'تقسيم العمود', + tablecoldelete : 'حذف العمود', + tablerowdelete : 'حذف الصف', + noColor : 'إفتراضي', + pleaseSelectFile : 'Please select file.', + invalidImg : "الرجاء إدخال رابط صحيح.\nالملفات المسموح بها: jpg,gif,bmp,png", + invalidMedia : "الرجاء إدخال رابط صحيح.\nالملفات المسموح بها: swf,flv,mp3,wav,wma,wmv,mid,avi,mpg,asf,rm,rmvb", + invalidWidth : "العرض يجب أن يكون رقم.", + invalidHeight : "الإرتفاع يجب أن يكون رقم.", + invalidBorder : "عرض الحد يجب أن يكون رقم.", + invalidUrl : "الرجاء إدخال رابط حيح.", + invalidRows : 'صفوف غير صحيح.', + invalidCols : 'أعمدة غير صحيحة.', + invalidPadding : 'The padding must be number.', + invalidSpacing : 'The spacing must be number.', + invalidJson : 'Invalid JSON string.', + uploadSuccess : 'تم رفع الملف بنجاح.', + cutError : 'حاليا غير مدعومة من المتصفح, إستخدم إختصار لوحة المفاتيح (Ctrl+X).', + copyError : 'حاليا غير مدعومة من المتصفح, إستخدم إختصار لوحة المفاتيح (Ctrl+C).', + pasteError : 'حاليا غير مدعومة من المتصفح, إستخدم إختصار لوحة المفاتيح (Ctrl+V).', + ajaxLoading : 'Loading ...', + uploadLoading : 'Uploading ...', + uploadError : 'Upload Error', + 'plainpaste.comment' : 'إستخدم إختصار لوحة المفاتيح (Ctrl+V) للصق داخل النافذة.', + 'wordpaste.comment' : 'إستخدم إختصار لوحة المفاتيح (Ctrl+V) للصق داخل النافذة.', + 'code.pleaseInput' : 'Please input code.', + 'link.url' : 'الرابط', + 'link.linkType' : 'الهدف', + 'link.newWindow' : 'نافذة جديدة', + 'link.selfWindow' : 'نفس النافذة', + 'flash.url' : 'الرابط', + 'flash.width' : 'العرض', + 'flash.height' : 'الإرتفاع', + 'flash.upload' : 'رفع', + 'flash.viewServer' : 'أستعراض', + 'media.url' : 'الرابط', + 'media.width' : 'العرض', + 'media.height' : 'الإرتفاع', + 'media.autostart' : 'تشغيل تلقائي', + 'media.upload' : 'رفع', + 'media.viewServer' : 'أستعراض', + 'image.remoteImage' : 'إدراج الرابط', + 'image.localImage' : 'رفع', + 'image.remoteUrl' : 'الرابط', + 'image.localUrl' : 'الملف', + 'image.size' : 'الحجم', + 'image.width' : 'العرض', + 'image.height' : 'الإرتفاع', + 'image.resetSize' : 'إستعادة الأبعاد', + 'image.align' : 'محاذاة', + 'image.defaultAlign' : 'الإفتراضي', + 'image.leftAlign' : 'اليسار', + 'image.rightAlign' : 'اليمين', + 'image.imgTitle' : 'العنوان', + 'image.upload' : 'أستعراض', + 'image.viewServer' : 'أستعراض', + 'multiimage.uploadDesc' : 'Allows users to upload <%=uploadLimit%> images, single image size not exceeding <%=sizeLimit%>', + 'multiimage.startUpload' : 'Start upload', + 'multiimage.clearAll' : 'Clear all', + 'multiimage.insertAll' : 'Insert all', + 'multiimage.queueLimitExceeded' : 'Queue limit exceeded.', + 'multiimage.fileExceedsSizeLimit' : 'File exceeds size limit.', + 'multiimage.zeroByteFile' : 'Zero byte file.', + 'multiimage.invalidFiletype' : 'Invalid file type.', + 'multiimage.unknownError' : 'Unknown upload error.', + 'multiimage.pending' : 'Pending ...', + 'multiimage.uploadError' : 'Upload error', + 'filemanager.emptyFolder' : 'فارغ', + 'filemanager.moveup' : 'المجلد الأب', + 'filemanager.viewType' : 'العرض: ', + 'filemanager.viewImage' : 'مصغرات', + 'filemanager.listImage' : 'قائمة', + 'filemanager.orderType' : 'الترتيب: ', + 'filemanager.fileName' : 'بالإسم', + 'filemanager.fileSize' : 'بالحجم', + 'filemanager.fileType' : 'بالنوع', + 'insertfile.url' : 'الرابط', + 'insertfile.title' : 'العنوان', + 'insertfile.upload' : 'رفع', + 'insertfile.viewServer' : 'أستعراض', + 'table.cells' : 'خلايا', + 'table.rows' : 'صفوف', + 'table.cols' : 'أعمدة', + 'table.size' : 'الأبعاد', + 'table.width' : 'العرض', + 'table.height' : 'الإرتفاع', + 'table.percent' : '%', + 'table.px' : 'px', + 'table.space' : 'الخارج', + 'table.padding' : 'الداخل', + 'table.spacing' : 'الفراغات', + 'table.align' : 'محاذاه', + 'table.textAlign' : 'افقى', + 'table.verticalAlign' : 'رأسي', + 'table.alignDefault' : 'إفتراضي', + 'table.alignLeft' : 'يسار', + 'table.alignCenter' : 'وسط', + 'table.alignRight' : 'يمين', + 'table.alignTop' : 'أعلى', + 'table.alignMiddle' : 'منتصف', + 'table.alignBottom' : 'أسفل', + 'table.alignBaseline' : 'Baseline', + 'table.border' : 'الحدود', + 'table.borderWidth' : 'العرض', + 'table.borderColor' : 'اللون', + 'table.backgroundColor' : 'الخلفية', + 'map.address' : 'العنوان: ', + 'map.search' : 'بحث', + 'baidumap.address' : 'العنوان: ', + 'baidumap.search' : 'بحث', + 'baidumap.insertDynamicMap' : 'Dynamic Map', + 'anchor.name' : 'إسم الرابط', + 'formatblock.formatBlock' : { + h1 : 'عنوان 1', + h2 : 'عنوان 2', + h3 : 'عنوان 3', + h4 : 'عنوان 4', + p : 'عادي' + }, + 'fontname.fontName' : { + 'Arial' : 'Arial', + 'Arial Black' : 'Arial Black', + 'Comic Sans MS' : 'Comic Sans MS', + 'Courier New' : 'Courier New', + 'Garamond' : 'Garamond', + 'Georgia' : 'Georgia', + 'Tahoma' : 'Tahoma', + 'Times New Roman' : 'Times New Roman', + 'Trebuchet MS' : 'Trebuchet MS', + 'Verdana' : 'Verdana' + }, + 'lineheight.lineHeight' : [ + {'1' : 'إرتفاع السطر 1'}, + {'1.5' : 'إرتفاع السطر 1.5'}, + {'2' : 'إرتفاع السطر 2'}, + {'2.5' : 'إرتفاع السطر 2.5'}, + {'3' : 'إرتفاع السطر 3'} + ], + 'template.selectTemplate' : 'قالب', + 'template.replaceContent' : 'إستبدال المحتوى الحالي', + 'template.fileList' : { + '1.html' : 'صورة ونص', + '2.html' : 'جدول', + '3.html' : 'قائمة' + } +}, 'ar'); + +KindEditor.each(KindEditor.options.items, function(i, name) { + if (name == 'baidumap') { + KindEditor.options.items[i] = 'map'; + } +}); +KindEditor.options.langType = 'ar'; \ No newline at end of file diff --git a/static/kindeditor/lang/en.js b/static/kindeditor/lang/en.js new file mode 100644 index 0000000..86639d2 --- /dev/null +++ b/static/kindeditor/lang/en.js @@ -0,0 +1,241 @@ +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ + +KindEditor.lang({ + source : 'Source', + preview : 'Preview', + undo : 'Undo(Ctrl+Z)', + redo : 'Redo(Ctrl+Y)', + cut : 'Cut(Ctrl+X)', + copy : 'Copy(Ctrl+C)', + paste : 'Paste(Ctrl+V)', + plainpaste : 'Paste as plain text', + wordpaste : 'Paste from Word', + selectall : 'Select all', + justifyleft : 'Align left', + justifycenter : 'Align center', + justifyright : 'Align right', + justifyfull : 'Align full', + insertorderedlist : 'Ordered list', + insertunorderedlist : 'Unordered list', + indent : 'Increase indent', + outdent : 'Decrease indent', + subscript : 'Subscript', + superscript : 'Superscript', + formatblock : 'Paragraph format', + fontname : 'Font family', + fontsize : 'Font size', + forecolor : 'Text color', + hilitecolor : 'Highlight color', + bold : 'Bold(Ctrl+B)', + italic : 'Italic(Ctrl+I)', + underline : 'Underline(Ctrl+U)', + strikethrough : 'Strikethrough', + removeformat : 'Remove format', + image : 'Image', + multiimage : 'Multi image', + flash : 'Flash', + media : 'Embeded media', + table : 'Table', + tablecell : 'Cell', + hr : 'Insert horizontal line', + emoticons : 'Insert emoticon', + link : 'Link', + unlink : 'Unlink', + fullscreen : 'Toggle fullscreen mode', + about : 'About', + print : 'Print', + filemanager : 'File Manager', + code : 'Insert code', + map : 'Google Maps', + baidumap : 'Baidu Maps', + lineheight : 'Line height', + clearhtml : 'Clear HTML code', + pagebreak : 'Insert Page Break', + quickformat : 'Quick Format', + insertfile : 'Insert file', + template : 'Insert Template', + anchor : 'Anchor', + yes : 'OK', + no : 'Cancel', + close : 'Close', + editImage : 'Image properties', + deleteImage : 'Delete image', + editFlash : 'Flash properties', + deleteFlash : 'Delete flash', + editMedia : 'Media properties', + deleteMedia : 'Delete media', + editLink : 'Link properties', + deleteLink : 'Unlink', + editAnchor : 'Anchor properties', + deleteAnchor : 'Delete Anchor', + tableprop : 'Table properties', + tablecellprop : 'Cell properties', + tableinsert : 'Insert table', + tabledelete : 'Delete table', + tablecolinsertleft : 'Insert column left', + tablecolinsertright : 'Insert column right', + tablerowinsertabove : 'Insert row above', + tablerowinsertbelow : 'Insert row below', + tablerowmerge : 'Merge down', + tablecolmerge : 'Merge right', + tablerowsplit : 'Split row', + tablecolsplit : 'Split column', + tablecoldelete : 'Delete column', + tablerowdelete : 'Delete row', + noColor : 'Default', + pleaseSelectFile : 'Please select file.', + invalidImg : "Please type valid URL.\nAllowed file extension: jpg,gif,bmp,png", + invalidMedia : "Please type valid URL.\nAllowed file extension: swf,flv,mp3,wav,wma,wmv,mid,avi,mpg,asf,rm,rmvb", + invalidWidth : "The width must be number.", + invalidHeight : "The height must be number.", + invalidBorder : "The border must be number.", + invalidUrl : "Please type valid URL.", + invalidRows : 'Invalid rows.', + invalidCols : 'Invalid columns.', + invalidPadding : 'The padding must be number.', + invalidSpacing : 'The spacing must be number.', + invalidJson : 'Invalid JSON string.', + uploadSuccess : 'Upload success.', + cutError : 'Currently not supported by your browser, use keyboard shortcut(Ctrl+X) instead.', + copyError : 'Currently not supported by your browser, use keyboard shortcut(Ctrl+C) instead.', + pasteError : 'Currently not supported by your browser, use keyboard shortcut(Ctrl+V) instead.', + ajaxLoading : 'Loading ...', + uploadLoading : 'Uploading ...', + uploadError : 'Upload Error', + 'plainpaste.comment' : 'Use keyboard shortcut(Ctrl+V) to paste the text into the window.', + 'wordpaste.comment' : 'Use keyboard shortcut(Ctrl+V) to paste the text into the window.', + 'code.pleaseInput' : 'Please input code.', + 'link.url' : 'URL', + 'link.linkType' : 'Target', + 'link.newWindow' : 'New window', + 'link.selfWindow' : 'Same window', + 'flash.url' : 'URL', + 'flash.width' : 'Width', + 'flash.height' : 'Height', + 'flash.upload' : 'Upload', + 'flash.viewServer' : 'Browse', + 'media.url' : 'URL', + 'media.width' : 'Width', + 'media.height' : 'Height', + 'media.autostart' : 'Auto start', + 'media.upload' : 'Upload', + 'media.viewServer' : 'Browse', + 'image.remoteImage' : 'Insert URL', + 'image.localImage' : 'Upload', + 'image.remoteUrl' : 'URL', + 'image.localUrl' : 'File', + 'image.size' : 'Size', + 'image.width' : 'Width', + 'image.height' : 'Height', + 'image.resetSize' : 'Reset dimensions', + 'image.align' : 'Align', + 'image.defaultAlign' : 'Default', + 'image.leftAlign' : 'Left', + 'image.rightAlign' : 'Right', + 'image.imgTitle' : 'Title', + 'image.upload' : 'Browse', + 'image.viewServer' : 'Browse', + 'multiimage.uploadDesc' : 'Allows users to upload <%=uploadLimit%> images, single image size not exceeding <%=sizeLimit%>', + 'multiimage.startUpload' : 'Start upload', + 'multiimage.clearAll' : 'Clear all', + 'multiimage.insertAll' : 'Insert all', + 'multiimage.queueLimitExceeded' : 'Queue limit exceeded.', + 'multiimage.fileExceedsSizeLimit' : 'File exceeds size limit.', + 'multiimage.zeroByteFile' : 'Zero byte file.', + 'multiimage.invalidFiletype' : 'Invalid file type.', + 'multiimage.unknownError' : 'Unknown upload error.', + 'multiimage.pending' : 'Pending ...', + 'multiimage.uploadError' : 'Upload error', + 'filemanager.emptyFolder' : 'Blank', + 'filemanager.moveup' : 'Parent folder', + 'filemanager.viewType' : 'Display: ', + 'filemanager.viewImage' : 'Thumbnails', + 'filemanager.listImage' : 'List', + 'filemanager.orderType' : 'Sorting: ', + 'filemanager.fileName' : 'By name', + 'filemanager.fileSize' : 'By size', + 'filemanager.fileType' : 'By type', + 'insertfile.url' : 'URL', + 'insertfile.title' : 'Title', + 'insertfile.upload' : 'Upload', + 'insertfile.viewServer' : 'Browse', + 'table.cells' : 'Cells', + 'table.rows' : 'Rows', + 'table.cols' : 'Columns', + 'table.size' : 'Dimensions', + 'table.width' : 'Width', + 'table.height' : 'Height', + 'table.percent' : '%', + 'table.px' : 'px', + 'table.space' : 'Space', + 'table.padding' : 'Padding', + 'table.spacing' : 'Spacing', + 'table.align' : 'Align', + 'table.textAlign' : 'Horizontal', + 'table.verticalAlign' : 'Vertical', + 'table.alignDefault' : 'Default', + 'table.alignLeft' : 'Left', + 'table.alignCenter' : 'Center', + 'table.alignRight' : 'Right', + 'table.alignTop' : 'Top', + 'table.alignMiddle' : 'Middle', + 'table.alignBottom' : 'Bottom', + 'table.alignBaseline' : 'Baseline', + 'table.border' : 'Border', + 'table.borderWidth' : 'Width', + 'table.borderColor' : 'Color', + 'table.backgroundColor' : 'Background', + 'map.address' : 'Address: ', + 'map.search' : 'Search', + 'baidumap.address' : 'Address: ', + 'baidumap.search' : 'Search', + 'baidumap.insertDynamicMap' : 'Dynamic Map', + 'anchor.name' : 'Anchor name', + 'formatblock.formatBlock' : { + h1 : 'Heading 1', + h2 : 'Heading 2', + h3 : 'Heading 3', + h4 : 'Heading 4', + p : 'Normal' + }, + 'fontname.fontName' : { + 'Arial' : 'Arial', + 'Arial Black' : 'Arial Black', + 'Comic Sans MS' : 'Comic Sans MS', + 'Courier New' : 'Courier New', + 'Garamond' : 'Garamond', + 'Georgia' : 'Georgia', + 'Tahoma' : 'Tahoma', + 'Times New Roman' : 'Times New Roman', + 'Trebuchet MS' : 'Trebuchet MS', + 'Verdana' : 'Verdana' + }, + 'lineheight.lineHeight' : [ + {'1' : 'Line height 1'}, + {'1.5' : 'Line height 1.5'}, + {'2' : 'Line height 2'}, + {'2.5' : 'Line height 2.5'}, + {'3' : 'Line height 3'} + ], + 'template.selectTemplate' : 'Template', + 'template.replaceContent' : 'Replace current content', + 'template.fileList' : { + '1.html' : 'Image and Text', + '2.html' : 'Table', + '3.html' : 'List' + } +}, 'en'); + +KindEditor.each(KindEditor.options.items, function(i, name) { + if (name == 'baidumap') { + KindEditor.options.items[i] = 'map'; + } +}); +KindEditor.options.langType = 'en'; diff --git a/static/kindeditor/lang/ko.js b/static/kindeditor/lang/ko.js new file mode 100644 index 0000000..bf5eb22 --- /dev/null +++ b/static/kindeditor/lang/ko.js @@ -0,0 +1,246 @@ +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Composite +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ + +KindEditor.lang({ + source : '소스', + preview : '미리보기', + undo : '작업취소(Ctrl+Z)', + redo : '작업재개(Ctrl+Y)', + cut : '잘라내기(Ctrl+X)', + copy : '복사(Ctrl+C)', + paste : '붙여넣기(Ctrl+V)', + plainpaste : '일반 텍스트로 붙여넣기', + wordpaste : '워드 문서로 붙여넣기', + selectall : '전체 선택', + justifyleft : '왼쪽 정렬', + justifycenter : '가운데 정렬', + justifyright : '오른쪽 정렬', + justifyfull : '양쪽 정렬', + insertorderedlist : '순서 목록', + insertunorderedlist : '비순서 목록', + indent : '들여쓰기', + outdent : '내어쓰기', + subscript : '아랫첨자', + superscript : '윗첨자', + formatblock : '문단 형식', + fontname : '글꼴', + fontsize : '글자 크기', + forecolor : '글자색', + hilitecolor : '강조색', + bold : '굵게(Ctrl+B)', + italic : '이텔릭(Ctrl+I)', + underline : '빝줄(Ctrl+U)', + strikethrough : '취소선', + removeformat : '형식 제거', + image : '이미지 추가', + multiimage : '여러 이미지 추가', + flash : '플래시 추가', + media : '미디어 추가', + table : '표', + tablecell : '열', + hr : '구분선 추가', + emoticons : '이모티콘 추가', + link : '링크', + unlink : '링크 제거', + fullscreen : '전체 화면 모드', + about : '이 에디터는...', + print : '인쇄', + filemanager : '파일 관리자', + code : '코드 추가', + map : '구글 맵 추가', + baidumap : '바이두 맵 추가', + lineheight : '행 간격', + clearhtml : 'HTML 코드 정리', + pagebreak : '페이지 구분 추가', + quickformat : '빠른 형식', + insertfile : '파일 추가', + template : '템플릿 추가', + anchor : '책갈피', + yes : '확인', + no : '취소', + close : '닫기', + editImage : '이미지 속성', + deleteImage : '이미지 삭제', + editFlash : '플래시 속성', + deleteFlash : '플래시 삭제', + editMedia : '미디어 속성', + deleteMedia : '미디어 삭제', + editLink : '링크 속성', + deleteLink : '링크 삭제', + editAnchor : 'Anchor properties', + deleteAnchor : 'Delete Anchor', + tableprop : '표 속성', + tablecellprop : '열 속성', + tableinsert : '표 추가', + tabledelete : '표 삭제', + tablecolinsertleft : '왼쪽으로 열 추가', + tablecolinsertright : '오른쪽으로 열 추가', + tablerowinsertabove : '위쪽으로 열 추가', + tablerowinsertbelow : '아래쪽으로 열 추가', + tablerowmerge : '아래로 병합', + tablecolmerge : '오른쪽으로 병합', + tablerowsplit : '행 나누기', + tablecolsplit : '열 나누기', + tablecoldelete : '열 삭제', + tablerowdelete : '행 삭제', + noColor : '기본색', + pleaseSelectFile : '파일 선택', + invalidImg : "올바른 주소를 입력하세요.\njpg,gif,bmp,png 형식이 가능합니다.", + invalidMedia : "올바른 주소를 입력하세요.\nswf,flv,mp3,wav,wma,wmv,mid,avi,mpg,asf,rm,rmvb 형식이 가능합니다.", + invalidWidth : "넓이 값은 숫자여야 합니다.", + invalidHeight : "높이 값은 숫자여야 합니다.", + invalidBorder : "굵기 값은 숫자여야 합니다.", + invalidUrl : "올바른 주소를 입력하세요.", + invalidRows : '올바른 행이 아닙니다.', + invalidCols : '올바른 열이 아닙니다.', + invalidPadding : '안쪽 여백 값은 숫자여야 합니다.', + invalidSpacing : '간격 길이 값은 숫자여야 합니다.', + invalidJson : '올바른 JSON 형식이 아닙니다.', + uploadSuccess : '업로드가 완료되었습니다.', + cutError : '브라우저가 잘라내기 기능을 지원하지 않습니다, 단축키로 대신 사용하세요. (Ctrl+X)', + copyError : '브라우저가 복사 기능을 지원하지 않습니다, 단축키로 대신 사용하세요. (Ctrl+X)', + pasteError : '브라우저가 붙여넣기 기능을 지원하지 않습니다, 단축키로 대신 사용하세요. (Ctrl+X)', + ajaxLoading : '불러오는 중 ...', + uploadLoading : '업로드 중 ...', + uploadError : '업로드 오류', + 'plainpaste.comment' : '단축키(Ctrl+V)를 통하여 여기에 텍스트를 붙여넣으세요.', + 'wordpaste.comment' : '단축키(Ctrl+V)를 통하여 여기에 워드 텍스트를 붙여넣으세요.', + 'code.pleaseInput' : 'Please input code.', + 'link.url' : '주소', + 'link.linkType' : '창', + 'link.newWindow' : '새 창', + 'link.selfWindow' : '현재 창', + 'flash.url' : '주소', + 'flash.width' : '넓이', + 'flash.height' : '높이', + 'flash.upload' : '업로드', + 'flash.viewServer' : '찾아보기', + 'media.url' : '주소', + 'media.width' : '넓이', + 'media.height' : '높이', + 'media.autostart' : '자동 시작', + 'media.upload' : '업로드', + 'media.viewServer' : '찾아보기', + 'image.remoteImage' : '외부 이미지', + 'image.localImage' : '내부 이미지', + 'image.remoteUrl' : '주소', + 'image.localUrl' : '파일', + 'image.size' : '크기', + 'image.width' : '넓이', + 'image.height' : '높이', + 'image.resetSize' : '기본 크기로', + 'image.align' : '정렬', + 'image.defaultAlign' : '기본', + 'image.leftAlign' : '왼쪽', + 'image.rightAlign' : '오른쪽', + 'image.imgTitle' : '제목', + 'image.upload' : '찾아보기', + 'image.viewServer' : '찾아보기', + 'multiimage.uploadDesc' : '최대 이미지 개수: <%=uploadLimit%>개, 개당 이미지 크기: <%=sizeLimit%>', + 'multiimage.startUpload' : '업로드 시작', + 'multiimage.clearAll' : '모두 삭제', + 'multiimage.insertAll' : '모두 삽입', + 'multiimage.queueLimitExceeded' : '업로드 개수가 초과되었습니다.', + 'multiimage.fileExceedsSizeLimit' : '업로드 크기가 초과되었습니다.', + 'multiimage.zeroByteFile' : '파일 크기가 없습니다.', + 'multiimage.invalidFiletype' : '올바른 이미지가 아닙니다.', + 'multiimage.unknownError' : '알 수 없는 업로드 오류가 발생하였습니다.', + 'multiimage.pending' : '처리 중 ...', + 'multiimage.uploadError' : '업로드 오류', + 'filemanager.emptyFolder' : '빈 폴더', + 'filemanager.moveup' : '위로', + 'filemanager.viewType' : '보기 방식: ', + 'filemanager.viewImage' : '미리 보기', + 'filemanager.listImage' : '목록', + 'filemanager.orderType' : '정렬 방식: ', + 'filemanager.fileName' : '이름별', + 'filemanager.fileSize' : '크기별', + 'filemanager.fileType' : '종류별', + 'insertfile.url' : '주소', + 'insertfile.title' : '제목', + 'insertfile.upload' : '업로드', + 'insertfile.viewServer' : '찾아보기', + 'table.cells' : '열', + 'table.rows' : '행', + 'table.cols' : '열', + 'table.size' : '표 크기', + 'table.width' : '넓이', + 'table.height' : '높이', + 'table.percent' : '%', + 'table.px' : 'px', + 'table.space' : '간격', + 'table.padding' : '안쪽여백', + 'table.spacing' : '간격', + 'table.align' : '정렬', + 'table.textAlign' : '수직', + 'table.verticalAlign' : '수평', + 'table.alignDefault' : '기본', + 'table.alignLeft' : '왼쪽', + 'table.alignCenter' : '가운데', + 'table.alignRight' : '오른쪽', + 'table.alignTop' : '위쪽', + 'table.alignMiddle' : '중간', + 'table.alignBottom' : '아래쪽', + 'table.alignBaseline' : '글자기준', + 'table.border' : '테두리', + 'table.borderWidth' : '크기', + 'table.borderColor' : '색상', + 'table.backgroundColor' : '배경', + 'map.address' : '주소: ', + 'map.search' : '검색', + 'baidumap.address' : '주소: ', + 'baidumap.search' : '검색', + 'baidumap.insertDynamicMap' : '동적 지도', + 'anchor.name' : '책갈피명', + 'formatblock.formatBlock' : { + h1 : '제목 1', + h2 : '제목 2', + h3 : '제목 3', + h4 : '제목 4', + p : '본문' + }, + 'fontname.fontName' : { + 'Gulim' : '굴림', + 'Dotum' : '돋움', + 'Batang' : '바탕', + 'Gungsuh' : '궁서', + 'Malgun Gothic' : '맑은 고딕', + 'Arial' : 'Arial', + 'Arial Black' : 'Arial Black', + 'Comic Sans MS' : 'Comic Sans MS', + 'Courier New' : 'Courier New', + 'Garamond' : 'Garamond', + 'Georgia' : 'Georgia', + 'Tahoma' : 'Tahoma', + 'Times New Roman' : 'Times New Roman', + 'Trebuchet MS' : 'Trebuchet MS', + 'Verdana' : 'Verdana' + }, + 'lineheight.lineHeight' : [ + {'1' : '행간 1'}, + {'1.5' : '행간 1.5'}, + {'2' : '행간 2'}, + {'2.5' : '행간 2.5'}, + {'3' : '행간 3'} + ], + 'template.selectTemplate' : '템플릿', + 'template.replaceContent' : '내용 바꾸기', + 'template.fileList' : { + '1.html' : '이미지와 텍스트', + '2.html' : '표', + '3.html' : '목록' + } +}, 'ko'); + +KindEditor.each(KindEditor.options.items, function(i, name) { + if (name == 'baidumap') { + KindEditor.options.items[i] = 'map'; + } +}); +KindEditor.options.langType = 'ko'; diff --git a/static/kindeditor/lang/ru.js b/static/kindeditor/lang/ru.js new file mode 100644 index 0000000..dda10bf --- /dev/null +++ b/static/kindeditor/lang/ru.js @@ -0,0 +1,242 @@ +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +* Translated to Russian by Valery Votintsev (http://codersclub.org/) +*******************************************************************************/ + +KindEditor.lang({ + source : 'Source', + preview : 'Preview', + undo : 'Отмена(Ctrl+Z)', + redo : 'Повтор(Ctrl+Y)', + cut : 'Вырезать(Ctrl+X)', + copy : 'Копировать(Ctrl+C)', + paste : 'Вставить(Ctrl+V)', + plainpaste : 'Вставить как простой текст', + wordpaste : 'Вставить из Word', + selectall : 'Выбрать все', + justifyleft : 'Выравнивание влево', + justifycenter : 'Выравнивание по центру', + justifyright : 'Выравнивание вправо', + justifyfull : 'Выравнивание по обеим сторонам', + insertorderedlist : 'Нумерованый список', + insertunorderedlist : 'Ненумерованый список', + indent : 'Добавить отступ', + outdent : 'Убрать отступ', + subscript : 'Надстрочный', + superscript : 'Подстрочный', + formatblock : 'Формат параграфа', + fontname : 'Шрифт', + fontsize : 'Размер', + forecolor : 'Цвет текста', + hilitecolor : 'Цвет фона', + bold : 'Жирный(Ctrl+B)', + italic : 'Наклонный(Ctrl+I)', + underline : 'Подчёркнутый(Ctrl+U)', + strikethrough : 'Перечёркнутый', + removeformat : 'Удалить формат', + image : 'Изображение', + multiimage : 'Мульти-загрузка', + flash : 'Flash', + media : 'Встроенные данные', + table : 'Таблица', + tablecell : 'Ячейка', + hr : 'Горизонтальный разделитель', + emoticons : 'Смайл', + link : 'Ссылка', + unlink : 'Убрать ссылку', + fullscreen : 'На весь экран', + about : 'О программе', + print : 'Печать', + filemanager : 'Файлы', + code : 'Код', + map : 'Карта Google', + baidumap : 'Карта Baidu', + lineheight : 'Межстрочный интервал', + clearhtml : 'Очистить HTML код', + pagebreak : 'Разрыв страницы', + quickformat : 'Быстрый формат', + insertfile : 'Вставить файл', + template : 'Вставить шаблон', + anchor : 'Якорь', + yes : 'OK', + no : 'Отмена', + close : 'Закрыть', + editImage : 'Свойства изображения', + deleteImage : 'Удалить изображение', + editFlash : 'Свойства Flash', + deleteFlash : 'Удалить Flash', + editMedia : 'Свойства Media', + deleteMedia : 'Удалить Media', + editLink : 'Свойства ссылки', + deleteLink : 'Удалить ссылку', + editAnchor : 'Anchor properties', + deleteAnchor : 'Delete Anchor', + tableprop : 'Свойства таблицы', + tablecellprop : 'Свойства ячейки', + tableinsert : 'Вставить таблицу', + tabledelete : 'Удалить таблицу', + tablecolinsertleft : 'Добавить столбец слева', + tablecolinsertright : 'Добавить столбец справа', + tablerowinsertabove : 'Добавить строку выше', + tablerowinsertbelow : 'Добавить строку ниже', + tablerowmerge : 'Объединить вниз', + tablecolmerge : 'Объединить вправо', + tablerowsplit : 'Разделить строку', + tablecolsplit : 'Разделить столбец', + tablecoldelete : 'Удалить столбец', + tablerowdelete : 'Удалить строку', + noColor : 'По умолчанию', + pleaseSelectFile : 'Выберите файл.', + invalidImg : "Укажите корректный URL изображения.\nРазрешённые форматы: jpg,gif,bmp,png", + invalidMedia : "Укажите корректный тип медиа-объекта.\nРазрешённые типы: swf,flv,mp3,wav,wma,wmv,mid,avi,mpg,asf,rm,rmvb", + invalidWidth : "Ширина должна быть числом.", + invalidHeight : "Высота должна быть числом.", + invalidBorder : "Ширина рамки должна быть числом.", + invalidUrl : "Укажите корректный URL.", + invalidRows : 'Неверные строки.', + invalidCols : 'Неверные столбцы.', + invalidPadding : 'padding должен быть числом.', + invalidSpacing : 'spacing должен быть числом.', + invalidJson : 'Неверная JSON строка.', + uploadSuccess : 'Загрузка завершена.', + cutError : 'Данная опция не поддерживается вашим браузером, воспользуйтесь комбинацией клавиш (Ctrl+X).', + copyError : 'Данная опция не поддерживается вашим браузером, воспользуйтесь комбинацией клавиш (Ctrl+C).', + pasteError : 'Данная опция не поддерживается вашим браузером, воспользуйтесь комбинацией клавиш (Ctrl+V).', + ajaxLoading : 'Загрузка ...', + uploadLoading : 'Загрузка ...', + uploadError : 'Сбой загрузки', + 'plainpaste.comment' : 'Для вставки скопированного текста воспользуйтесь комбинацией клавиш (Ctrl+V).', + 'wordpaste.comment' : 'Для вставки скопированного текста воспользуйтесь комбинацией клавиш (Ctrl+V).', + 'code.pleaseInput' : 'Введите код.', + 'link.url' : 'URL', + 'link.linkType' : 'Открывать ссылку', + 'link.newWindow' : 'в новом окне', + 'link.selfWindow' : 'в том же окне', + 'flash.url' : 'URL', + 'flash.width' : 'Ширина', + 'flash.height' : 'Высота', + 'flash.upload' : 'Загрузить', + 'flash.viewServer' : 'Выбрать', + 'media.url' : 'URL', + 'media.width' : 'Ширина', + 'media.height' : 'Высота', + 'media.autostart' : 'Автостарт', + 'media.upload' : 'Загрузить', + 'media.viewServer' : 'Выбрать', + 'image.remoteImage' : 'Вставить URL изображения', + 'image.localImage' : 'Загрузить', + 'image.remoteUrl' : 'URL', + 'image.localUrl' : 'Файл', + 'image.size' : 'Размер', + 'image.width' : 'Ширина', + 'image.height' : 'Высота', + 'image.resetSize' : 'Сбросить размеры', + 'image.align' : 'Выравнивание', + 'image.defaultAlign' : 'По умолчанию', + 'image.leftAlign' : 'Влево', + 'image.rightAlign' : 'Вправо', + 'image.imgTitle' : 'Название', + 'image.upload' : 'Загрузить', + 'image.viewServer' : 'Выбрать', + 'multiimage.uploadDesc' : 'Максимальное кол-во изображений: <%=uploadLimit%>, Максимальный размер одного изображения: <%=sizeLimit%>', + 'multiimage.startUpload' : 'Начать загрузку', + 'multiimage.clearAll' : 'Очистить все', + 'multiimage.insertAll' : 'Вставить все', + 'multiimage.queueLimitExceeded' : 'Превышен лимит очереди.', + 'multiimage.fileExceedsSizeLimit' : 'Превышен максимальный размер файла.', + 'multiimage.zeroByteFile' : 'Файл нулевой длины.', + 'multiimage.invalidFiletype' : 'Недопустимый тип файла.', + 'multiimage.unknownError' : 'Непредвиденная ошибка загрузки.', + 'multiimage.pending' : 'Ожидает ...', + 'multiimage.uploadError' : 'Ошибка загрузки', + 'filemanager.emptyFolder' : 'Папка пуста', + 'filemanager.moveup' : 'Наверх', + 'filemanager.viewType' : 'Тип показа: ', + 'filemanager.viewImage' : 'Превьюшки', + 'filemanager.listImage' : 'Список', + 'filemanager.orderType' : 'Сортировка: ', + 'filemanager.fileName' : 'По имени', + 'filemanager.fileSize' : 'По размеру', + 'filemanager.fileType' : 'По типу', + 'insertfile.url' : 'URL', + 'insertfile.title' : 'Название', + 'insertfile.upload' : 'Загрузить', + 'insertfile.viewServer' : 'Выбрать', + 'table.cells' : 'Ячейки', + 'table.rows' : 'Строки', + 'table.cols' : 'Столбцы', + 'table.size' : 'Размеры', + 'table.width' : 'Ширина', + 'table.height' : 'Высота', + 'table.percent' : '%', + 'table.px' : 'px', + 'table.space' : 'Space', + 'table.padding' : 'Padding', + 'table.spacing' : 'Spacing', + 'table.align' : 'Выравнивание', + 'table.textAlign' : 'По горизонтали', + 'table.verticalAlign' : 'По вертикали', + 'table.alignDefault' : 'По умолчанию', + 'table.alignLeft' : 'Влево', + 'table.alignCenter' : 'По центру', + 'table.alignRight' : 'Вправо', + 'table.alignTop' : 'Вверх', + 'table.alignMiddle' : 'Посередине', + 'table.alignBottom' : 'Вниз', + 'table.alignBaseline' : 'По базовой линии', + 'table.border' : 'Рамка', + 'table.borderWidth' : 'Ширина', + 'table.borderColor' : 'Цвет', + 'table.backgroundColor' : 'Цвет фона', + 'map.address' : 'Адрес: ', + 'map.search' : 'Поиск', + 'baidumap.address' : 'Адрес: ', + 'baidumap.search' : 'Поиск', + 'baidumap.insertDynamicMap' : 'Динамическая карта', + 'anchor.name' : 'Имя якоря', + 'formatblock.formatBlock' : { + h1 : 'Заголовок 1', + h2 : 'Заголовок 2', + h3 : 'Заголовок 3', + h4 : 'Заголовок 4', + p : 'Обычный текст' + }, + 'fontname.fontName' : { + 'Arial' : 'Arial', + 'Arial Black' : 'Arial Black', + 'Comic Sans MS' : 'Comic Sans MS', + 'Courier New' : 'Courier New', + 'Garamond' : 'Garamond', + 'Georgia' : 'Georgia', + 'Tahoma' : 'Tahoma', + 'Times New Roman' : 'Times New Roman', + 'Trebuchet MS' : 'Trebuchet MS', + 'Verdana' : 'Verdana' + }, + 'lineheight.lineHeight' : [ + {'1' : '1'}, + {'1.5' : '1.5'}, + {'2' : '2'}, + {'2.5' : '2.5'}, + {'3' : '3'} + ], + 'template.selectTemplate' : 'Шаблон', + 'template.replaceContent' : 'Заменить текущий шаблон', + 'template.fileList' : { + '1.html' : 'Текст и изображения', + '2.html' : 'Таблица', + '3.html' : 'Список' + } +}, 'en'); + +KindEditor.each(KindEditor.options.items, function(i, name) { + if (name == 'baidumap') { + KindEditor.options.items[i] = 'map'; + } +}); +KindEditor.options.langType = 'ru'; diff --git a/static/kindeditor/lang/zh-CN.js b/static/kindeditor/lang/zh-CN.js new file mode 100644 index 0000000..be6527c --- /dev/null +++ b/static/kindeditor/lang/zh-CN.js @@ -0,0 +1,238 @@ +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ + +KindEditor.lang({ + source : 'HTML代码', + preview : '预览', + undo : '后退(Ctrl+Z)', + redo : '前进(Ctrl+Y)', + cut : '剪切(Ctrl+X)', + copy : '复制(Ctrl+C)', + paste : '粘贴(Ctrl+V)', + plainpaste : '粘贴为无格式文本', + wordpaste : '从Word粘贴', + selectall : '全选(Ctrl+A)', + justifyleft : '左对齐', + justifycenter : '居中', + justifyright : '右对齐', + justifyfull : '两端对齐', + insertorderedlist : '编号', + insertunorderedlist : '项目符号', + indent : '增加缩进', + outdent : '减少缩进', + subscript : '下标', + superscript : '上标', + formatblock : '段落', + fontname : '字体', + fontsize : '文字大小', + forecolor : '文字颜色', + hilitecolor : '文字背景', + bold : '粗体(Ctrl+B)', + italic : '斜体(Ctrl+I)', + underline : '下划线(Ctrl+U)', + strikethrough : '删除线', + removeformat : '删除格式', + image : '图片', + multiimage : '批量图片上传', + flash : 'Flash', + media : '视音频', + table : '表格', + tablecell : '单元格', + hr : '插入横线', + emoticons : '插入表情', + link : '超级链接', + unlink : '取消超级链接', + fullscreen : '全屏显示', + about : '关于', + print : '打印(Ctrl+P)', + filemanager : '文件空间', + code : '插入程序代码', + map : 'Google地图', + baidumap : '百度地图', + lineheight : '行距', + clearhtml : '清理HTML代码', + pagebreak : '插入分页符', + quickformat : '一键排版', + insertfile : '插入文件', + template : '插入模板', + anchor : '锚点', + yes : '确定', + no : '取消', + close : '关闭', + editImage : '图片属性', + deleteImage : '删除图片', + editFlash : 'Flash属性', + deleteFlash : '删除Flash', + editMedia : '视音频属性', + deleteMedia : '删除视音频', + editLink : '超级链接属性', + deleteLink : '取消超级链接', + editAnchor : '锚点属性', + deleteAnchor : '删除锚点', + tableprop : '表格属性', + tablecellprop : '单元格属性', + tableinsert : '插入表格', + tabledelete : '删除表格', + tablecolinsertleft : '左侧插入列', + tablecolinsertright : '右侧插入列', + tablerowinsertabove : '上方插入行', + tablerowinsertbelow : '下方插入行', + tablerowmerge : '向下合并单元格', + tablecolmerge : '向右合并单元格', + tablerowsplit : '拆分行', + tablecolsplit : '拆分列', + tablecoldelete : '删除列', + tablerowdelete : '删除行', + noColor : '无颜色', + pleaseSelectFile : '请选择文件。', + invalidImg : "请输入有效的URL地址。\n只允许jpg,gif,bmp,png格式。", + invalidMedia : "请输入有效的URL地址。\n只允许swf,flv,mp3,wav,wma,wmv,mid,avi,mpg,asf,rm,rmvb格式。", + invalidWidth : "宽度必须为数字。", + invalidHeight : "高度必须为数字。", + invalidBorder : "边框必须为数字。", + invalidUrl : "请输入有效的URL地址。", + invalidRows : '行数为必选项,只允许输入大于0的数字。', + invalidCols : '列数为必选项,只允许输入大于0的数字。', + invalidPadding : '边距必须为数字。', + invalidSpacing : '间距必须为数字。', + invalidJson : '服务器发生故障。', + uploadSuccess : '上传成功。', + cutError : '您的浏览器安全设置不允许使用剪切操作,请使用快捷键(Ctrl+X)来完成。', + copyError : '您的浏览器安全设置不允许使用复制操作,请使用快捷键(Ctrl+C)来完成。', + pasteError : '您的浏览器安全设置不允许使用粘贴操作,请使用快捷键(Ctrl+V)来完成。', + ajaxLoading : '加载中,请稍候 ...', + uploadLoading : '上传中,请稍候 ...', + uploadError : '上传错误', + 'plainpaste.comment' : '请使用快捷键(Ctrl+V)把内容粘贴到下面的方框里。', + 'wordpaste.comment' : '请使用快捷键(Ctrl+V)把内容粘贴到下面的方框里。', + 'code.pleaseInput' : '请输入程序代码。', + 'link.url' : 'URL', + 'link.linkType' : '打开类型', + 'link.newWindow' : '新窗口', + 'link.selfWindow' : '当前窗口', + 'flash.url' : 'URL', + 'flash.width' : '宽度', + 'flash.height' : '高度', + 'flash.upload' : '上传', + 'flash.viewServer' : '文件空间', + 'media.url' : 'URL', + 'media.width' : '宽度', + 'media.height' : '高度', + 'media.autostart' : '自动播放', + 'media.upload' : '上传', + 'media.viewServer' : '文件空间', + 'image.remoteImage' : '网络图片', + 'image.localImage' : '本地上传', + 'image.remoteUrl' : '图片地址', + 'image.localUrl' : '上传文件', + 'image.size' : '图片大小', + 'image.width' : '宽', + 'image.height' : '高', + 'image.resetSize' : '重置大小', + 'image.align' : '对齐方式', + 'image.defaultAlign' : '默认方式', + 'image.leftAlign' : '左对齐', + 'image.rightAlign' : '右对齐', + 'image.imgTitle' : '图片说明', + 'image.upload' : '浏览...', + 'image.viewServer' : '图片空间', + 'multiimage.uploadDesc' : '允许用户同时上传<%=uploadLimit%>张图片,单张图片容量不超过<%=sizeLimit%>', + 'multiimage.startUpload' : '开始上传', + 'multiimage.clearAll' : '全部清空', + 'multiimage.insertAll' : '全部插入', + 'multiimage.queueLimitExceeded' : '文件数量超过限制。', + 'multiimage.fileExceedsSizeLimit' : '文件大小超过限制。', + 'multiimage.zeroByteFile' : '无法上传空文件。', + 'multiimage.invalidFiletype' : '文件类型不正确。', + 'multiimage.unknownError' : '发生异常,无法上传。', + 'multiimage.pending' : '等待上传', + 'multiimage.uploadError' : '上传失败', + 'filemanager.emptyFolder' : '空文件夹', + 'filemanager.moveup' : '移到上一级文件夹', + 'filemanager.viewType' : '显示方式:', + 'filemanager.viewImage' : '缩略图', + 'filemanager.listImage' : '详细信息', + 'filemanager.orderType' : '排序方式:', + 'filemanager.fileName' : '名称', + 'filemanager.fileSize' : '大小', + 'filemanager.fileType' : '类型', + 'insertfile.url' : 'URL', + 'insertfile.title' : '文件说明', + 'insertfile.upload' : '上传', + 'insertfile.viewServer' : '文件空间', + 'table.cells' : '单元格数', + 'table.rows' : '行数', + 'table.cols' : '列数', + 'table.size' : '大小', + 'table.width' : '宽度', + 'table.height' : '高度', + 'table.percent' : '%', + 'table.px' : 'px', + 'table.space' : '边距间距', + 'table.padding' : '边距', + 'table.spacing' : '间距', + 'table.align' : '对齐方式', + 'table.textAlign' : '水平对齐', + 'table.verticalAlign' : '垂直对齐', + 'table.alignDefault' : '默认', + 'table.alignLeft' : '左对齐', + 'table.alignCenter' : '居中', + 'table.alignRight' : '右对齐', + 'table.alignTop' : '顶部', + 'table.alignMiddle' : '中部', + 'table.alignBottom' : '底部', + 'table.alignBaseline' : '基线', + 'table.border' : '边框', + 'table.borderWidth' : '边框', + 'table.borderColor' : '颜色', + 'table.backgroundColor' : '背景颜色', + 'map.address' : '地址: ', + 'map.search' : '搜索', + 'baidumap.address' : '地址: ', + 'baidumap.search' : '搜索', + 'baidumap.insertDynamicMap' : '插入动态地图', + 'anchor.name' : '锚点名称', + 'formatblock.formatBlock' : { + h1 : '标题 1', + h2 : '标题 2', + h3 : '标题 3', + h4 : '标题 4', + p : '正 文' + }, + 'fontname.fontName' : { + 'SimSun' : '宋体', + 'NSimSun' : '新宋体', + 'FangSong_GB2312' : '仿宋_GB2312', + 'KaiTi_GB2312' : '楷体_GB2312', + 'SimHei' : '黑体', + 'Microsoft YaHei' : '微软雅黑', + 'Arial' : 'Arial', + 'Arial Black' : 'Arial Black', + 'Times New Roman' : 'Times New Roman', + 'Courier New' : 'Courier New', + 'Tahoma' : 'Tahoma', + 'Verdana' : 'Verdana' + }, + 'lineheight.lineHeight' : [ + {'1' : '单倍行距'}, + {'1.5' : '1.5倍行距'}, + {'2' : '2倍行距'}, + {'2.5' : '2.5倍行距'}, + {'3' : '3倍行距'} + ], + 'template.selectTemplate' : '可选模板', + 'template.replaceContent' : '替换当前内容', + 'template.fileList' : { + '1.html' : '图片和文字', + '2.html' : '表格', + '3.html' : '项目编号' + } +}, 'zh-CN'); + +KindEditor.options.langType = 'zh-CN'; \ No newline at end of file diff --git a/static/kindeditor/lang/zh-TW.js b/static/kindeditor/lang/zh-TW.js new file mode 100644 index 0000000..4946898 --- /dev/null +++ b/static/kindeditor/lang/zh-TW.js @@ -0,0 +1,243 @@ +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ + +KindEditor.lang({ + source : '原始碼', + preview : '預覽', + undo : '復原(Ctrl+Z)', + redo : '重複(Ctrl+Y)', + cut : '剪下(Ctrl+X)', + copy : '複製(Ctrl+C)', + paste : '貼上(Ctrl+V)', + plainpaste : '貼為純文字格式', + wordpaste : '自Word貼上', + selectall : '全選(Ctrl+A)', + justifyleft : '靠左對齊', + justifycenter : '置中', + justifyright : '靠右對齊', + justifyfull : '左右對齊', + insertorderedlist : '編號清單', + insertunorderedlist : '項目清單', + indent : '增加縮排', + outdent : '減少縮排', + subscript : '下標', + superscript : '上標', + formatblock : '標題', + fontname : '字體', + fontsize : '文字大小', + forecolor : '文字顏色', + hilitecolor : '背景顏色', + bold : '粗體(Ctrl+B)', + italic : '斜體(Ctrl+I)', + underline : '底線(Ctrl+U)', + strikethrough : '刪除線', + removeformat : '清除格式', + image : '影像', + multiimage : '批量影像上傳', + flash : 'Flash', + media : '多媒體', + table : '表格', + tablecell : '儲存格', + hr : '插入水平線', + emoticons : '插入表情', + link : '超連結', + unlink : '移除超連結', + fullscreen : '最大化', + about : '關於', + print : '列印(Ctrl+P)', + filemanager : '瀏覽伺服器', + code : '插入程式代碼', + map : 'Google地圖', + baidumap : 'Baidu地圖', + lineheight : '行距', + clearhtml : '清理HTML代碼', + pagebreak : '插入分頁符號', + quickformat : '快速排版', + insertfile : '插入文件', + template : '插入樣板', + anchor : '錨點', + yes : '確定', + no : '取消', + close : '關閉', + editImage : '影像屬性', + deleteImage : '刪除影像', + editFlash : 'Flash屬性', + deleteFlash : '删除Flash', + editMedia : '多媒體屬性', + deleteMedia : '删除多媒體', + editLink : '超連結屬性', + deleteLink : '移除超連結', + editAnchor : '锚点属性', + deleteAnchor : '删除锚点', + tableprop : '表格屬性', + tablecellprop : '儲存格屬性', + tableinsert : '插入表格', + tabledelete : '刪除表格', + tablecolinsertleft : '向左插入列', + tablecolinsertright : '向右插入列', + tablerowinsertabove : '向上插入欄', + tablerowinsertbelow : '下方插入欄', + tablerowmerge : '向下合併單元格', + tablecolmerge : '向右合併單元格', + tablerowsplit : '分割欄', + tablecolsplit : '分割列', + tablecoldelete : '删除列', + tablerowdelete : '删除欄', + noColor : '自動', + pleaseSelectFile : '請選擇文件。', + invalidImg : "請輸入有效的URL。\n只允許jpg,gif,bmp,png格式。", + invalidMedia : "請輸入有效的URL。\n只允許swf,flv,mp3,wav,wma,wmv,mid,avi,mpg,asf,rm,rmvb格式。", + invalidWidth : "寬度必須是數字。", + invalidHeight : "高度必須是數字。", + invalidBorder : "邊框必須是數字。", + invalidUrl : "請輸入有效的URL。", + invalidRows : '欄數是必須輸入項目,只允許輸入大於0的數字。', + invalidCols : '列數是必須輸入項目,只允許輸入大於0的數字。', + invalidPadding : '內距必須是數字。', + invalidSpacing : '間距必須是數字。', + invalidJson : '伺服器發生故障。', + uploadSuccess : '上傳成功。', + cutError : '您的瀏覽器安全設置不允許使用剪下操作,請使用快捷鍵(Ctrl+X)完成。', + copyError : '您的瀏覽器安全設置不允許使用剪下操作,請使用快捷鍵(Ctrl+C)完成。', + pasteError : '您的瀏覽器安全設置不允許使用剪下操作,請使用快捷鍵(Ctrl+V)完成。', + ajaxLoading : '加載中,請稍候 ...', + uploadLoading : '上傳中,請稍候 ...', + uploadError : '上傳錯誤', + 'plainpaste.comment' : '請使用快捷鍵(Ctrl+V)把內容貼到下方區域裡。', + 'wordpaste.comment' : '請使用快捷鍵(Ctrl+V)把內容貼到下方區域裡。', + 'code.pleaseInput' : 'Please input code.', + 'link.url' : 'URL', + 'link.linkType' : '打開類型', + 'link.newWindow' : '新窗口', + 'link.selfWindow' : '本頁窗口', + 'flash.url' : 'URL', + 'flash.width' : '寬度', + 'flash.height' : '高度', + 'flash.upload' : '上傳', + 'flash.viewServer' : '瀏覽', + 'media.url' : 'URL', + 'media.width' : '寬度', + 'media.height' : '高度', + 'media.autostart' : '自動播放', + 'media.upload' : '上傳', + 'media.viewServer' : '瀏覽', + 'image.remoteImage' : '網絡影像', + 'image.localImage' : '上傳影像', + 'image.remoteUrl' : '影像URL', + 'image.localUrl' : '影像URL', + 'image.size' : '影像大小', + 'image.width' : '寬度', + 'image.height' : '高度', + 'image.resetSize' : '原始大小', + 'image.align' : '對齊方式', + 'image.defaultAlign' : '未設定', + 'image.leftAlign' : '向左對齊', + 'image.rightAlign' : '向右對齊', + 'image.imgTitle' : '影像說明', + 'image.upload' : '瀏覽...', + 'image.viewServer' : '瀏覽...', + 'multiimage.uploadDesc' : 'Allows users to upload <%=uploadLimit%> images, single image size not exceeding <%=sizeLimit%>', + 'multiimage.startUpload' : 'Start upload', + 'multiimage.clearAll' : 'Clear all', + 'multiimage.insertAll' : 'Insert all', + 'multiimage.queueLimitExceeded' : 'Queue limit exceeded.', + 'multiimage.fileExceedsSizeLimit' : 'File exceeds size limit.', + 'multiimage.zeroByteFile' : 'Zero byte file.', + 'multiimage.invalidFiletype' : 'Invalid file type.', + 'multiimage.unknownError' : 'Unknown upload error.', + 'multiimage.pending' : 'Pending ...', + 'multiimage.uploadError' : 'Upload error', + 'filemanager.emptyFolder' : '空文件夾', + 'filemanager.moveup' : '至上一級文件夾', + 'filemanager.viewType' : '顯示方式:', + 'filemanager.viewImage' : '縮略圖', + 'filemanager.listImage' : '詳細信息', + 'filemanager.orderType' : '排序方式:', + 'filemanager.fileName' : '名稱', + 'filemanager.fileSize' : '大小', + 'filemanager.fileType' : '類型', + 'insertfile.url' : 'URL', + 'insertfile.title' : '文件說明', + 'insertfile.upload' : '上傳', + 'insertfile.viewServer' : '瀏覽', + 'table.cells' : '儲存格數', + 'table.rows' : '欄數', + 'table.cols' : '列數', + 'table.size' : '表格大小', + 'table.width' : '寬度', + 'table.height' : '高度', + 'table.percent' : '%', + 'table.px' : 'px', + 'table.space' : '內距間距', + 'table.padding' : '內距', + 'table.spacing' : '間距', + 'table.align' : '對齊方式', + 'table.textAlign' : '水平對齊', + 'table.verticalAlign' : '垂直對齊', + 'table.alignDefault' : '未設定', + 'table.alignLeft' : '向左對齊', + 'table.alignCenter' : '置中', + 'table.alignRight' : '向右對齊', + 'table.alignTop' : '靠上', + 'table.alignMiddle' : '置中', + 'table.alignBottom' : '靠下', + 'table.alignBaseline' : '基線', + 'table.border' : '表格邊框', + 'table.borderWidth' : '邊框', + 'table.borderColor' : '顏色', + 'table.backgroundColor' : '背景顏色', + 'map.address' : '住所: ', + 'map.search' : '尋找', + 'baidumap.address' : '住所: ', + 'baidumap.search' : '尋找', + 'baidumap.insertDynamicMap' : '插入動態地圖', + 'anchor.name' : '錨點名稱', + 'formatblock.formatBlock' : { + h1 : '標題 1', + h2 : '標題 2', + h3 : '標題 3', + h4 : '標題 4', + p : '一般' + }, + 'fontname.fontName' : { + 'MingLiU' : '細明體', + 'PMingLiU' : '新細明體', + 'DFKai-SB' : '標楷體', + 'SimSun' : '宋體', + 'NSimSun' : '新宋體', + 'FangSong' : '仿宋體', + 'Arial' : 'Arial', + 'Arial Black' : 'Arial Black', + 'Times New Roman' : 'Times New Roman', + 'Courier New' : 'Courier New', + 'Tahoma' : 'Tahoma', + 'Verdana' : 'Verdana' + }, + 'lineheight.lineHeight' : [ + {'1' : '单倍行距'}, + {'1.5' : '1.5倍行距'}, + {'2' : '2倍行距'}, + {'2.5' : '2.5倍行距'}, + {'3' : '3倍行距'} + ], + 'template.selectTemplate' : '可選樣板', + 'template.replaceContent' : '取代當前內容', + 'template.fileList' : { + '1.html' : '影像和文字', + '2.html' : '表格', + '3.html' : '项目清單' + } +}, 'zh-TW'); + +KindEditor.each(KindEditor.options.items, function(i, name) { + if (name == 'baidumap') { + KindEditor.options.items[i] = 'map'; + } +}); +KindEditor.options.langType = 'zh-TW'; \ No newline at end of file diff --git a/static/kindeditor/license.txt b/static/kindeditor/license.txt new file mode 100644 index 0000000..4362b49 --- /dev/null +++ b/static/kindeditor/license.txt @@ -0,0 +1,502 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/static/kindeditor/plugins/anchor/anchor.js b/static/kindeditor/plugins/anchor/anchor.js new file mode 100644 index 0000000..55ab894 --- /dev/null +++ b/static/kindeditor/plugins/anchor/anchor.js @@ -0,0 +1,46 @@ +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ + +KindEditor.plugin('anchor', function(K) { + var self = this, name = 'anchor', lang = self.lang(name + '.'); + self.plugin.anchor = { + edit : function() { + var html = ['
      ', + '
      ', + '', + '', + '
      ', + '
      '].join(''); + var dialog = self.createDialog({ + name : name, + width : 300, + title : self.lang(name), + body : html, + yesBtn : { + name : self.lang('yes'), + click : function(e) { + self.insertHtml('').hideDialog().focus(); + } + } + }); + var div = dialog.div, + nameBox = K('input[name="name"]', div); + var img = self.plugin.getSelectedAnchor(); + if (img) { + nameBox.val(unescape(img.attr('data-ke-name'))); + } + nameBox[0].focus(); + nameBox[0].select(); + }, + 'delete' : function() { + self.plugin.getSelectedAnchor().remove(); + } + }; + self.clickToolbar(name, self.plugin.anchor.edit); +}); diff --git a/static/kindeditor/plugins/autoheight/autoheight.js b/static/kindeditor/plugins/autoheight/autoheight.js new file mode 100644 index 0000000..6123cfa --- /dev/null +++ b/static/kindeditor/plugins/autoheight/autoheight.js @@ -0,0 +1,59 @@ +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ + +KindEditor.plugin('autoheight', function(K) { + var self = this; + + if (!self.autoHeightMode) { + return; + } + + var minHeight; + + function hideScroll() { + var edit = self.edit; + var body = edit.doc.body; + edit.iframe[0].scroll = 'no'; + body.style.overflowY = 'hidden'; + } + + function resetHeight() { + if(self.fullscreenMode){ + return; + } + var edit = self.edit; + var body = edit.doc.body; + edit.iframe.height(minHeight); + self.resize(null, Math.max((K.IE ? body.scrollHeight : body.offsetHeight) + 76, minHeight)); + } + + function init() { + minHeight = K.removeUnit(self.height); + + self.edit.afterChange(resetHeight); + if(!self.fullscreenMode){ + hideScroll(); + } + resetHeight(); + } + + if (self.isCreated) { + init(); + } else { + self.afterCreate(init); + } +}); + +/* +* 如何实现真正的自动高度? +* 修改编辑器高度之后,再次获取body内容高度时,最小值只会是当前iframe的设置高度,这样就导致高度只增不减。 +* 所以每次获取body内容高度之前,先将iframe的高度重置为最小高度,这样就能获取body的实际高度。 +* 由此就实现了真正的自动高度 +* 测试:chrome、firefox、IE9、IE8 +* */ diff --git a/static/kindeditor/plugins/baidumap/baidumap.js b/static/kindeditor/plugins/baidumap/baidumap.js new file mode 100644 index 0000000..fed11d2 --- /dev/null +++ b/static/kindeditor/plugins/baidumap/baidumap.js @@ -0,0 +1,93 @@ +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ + +// Baidu Maps: http://dev.baidu.com/wiki/map/index.php?title=%E9%A6%96%E9%A1%B5 + +KindEditor.plugin('baidumap', function(K) { + var self = this, name = 'baidumap', lang = self.lang(name + '.'); + var mapWidth = K.undef(self.mapWidth, 558); + var mapHeight = K.undef(self.mapHeight, 360); + self.clickToolbar(name, function() { + var html = ['
      ', + '
      ', + // left start + '
      ', + lang.address + ' ', + '', + '', + '', + '
      ', + // right start + '
      ', + ' ', + '
      ', + '
      ', + '
      ', + '
      ', + '
      '].join(''); + var dialog = self.createDialog({ + name : name, + width : mapWidth + 42, + title : self.lang(name), + body : html, + yesBtn : { + name : self.lang('yes'), + click : function(e) { + var map = win.map; + var centerObj = map.getCenter(); + var center = centerObj.lng + ',' + centerObj.lat; + var zoom = map.getZoom(); + var url = [checkbox[0].checked ? self.pluginsPath + 'baidumap/index.html' : '//api.map.baidu.com/staticimage', + '?center=' + encodeURIComponent(center), + '&zoom=' + encodeURIComponent(zoom), + '&width=' + mapWidth, + '&height=' + mapHeight, + '&markers=' + encodeURIComponent(center), + '&markerStyles=' + encodeURIComponent('l,A')].join(''); + if (checkbox[0].checked) { + self.insertHtml(''); + } else { + self.exec('insertimage', url); + } + self.hideDialog().focus(); + } + }, + beforeRemove : function() { + searchBtn.remove(); + if (doc) { + doc.write(''); + } + iframe.remove(); + } + }); + var div = dialog.div, + addressBox = K('[name="address"]', div), + searchBtn = K('[name="searchBtn"]', div), + checkbox = K('[name="insertDynamicMap"]', dialog.div), + win, doc; + var iframe = K(''); + function ready() { + win = iframe[0].contentWindow; + doc = K.iframeDoc(iframe); + } + iframe.bind('load', function() { + iframe.unbind('load'); + if (K.IE) { + ready(); + } else { + setTimeout(ready, 0); + } + }); + K('.ke-map', div).replaceWith(iframe); + // search map + searchBtn.click(function() { + win.search(addressBox.val()); + }); + }); +}); diff --git a/static/kindeditor/plugins/baidumap/index.html b/static/kindeditor/plugins/baidumap/index.html new file mode 100644 index 0000000..63d9d8f --- /dev/null +++ b/static/kindeditor/plugins/baidumap/index.html @@ -0,0 +1,87 @@ + + + + + + +百度地图API自定义地图 + + + + + + + +
      + + + \ No newline at end of file diff --git a/static/kindeditor/plugins/baidumap/map.html b/static/kindeditor/plugins/baidumap/map.html new file mode 100644 index 0000000..ca6482b --- /dev/null +++ b/static/kindeditor/plugins/baidumap/map.html @@ -0,0 +1,43 @@ + + + + + Baidu Maps + + + + + +
      + + diff --git a/static/kindeditor/plugins/clearhtml/clearhtml.js b/static/kindeditor/plugins/clearhtml/clearhtml.js new file mode 100644 index 0000000..1bf0e5d --- /dev/null +++ b/static/kindeditor/plugins/clearhtml/clearhtml.js @@ -0,0 +1,29 @@ +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ + +KindEditor.plugin('clearhtml', function(K) { + var self = this, name = 'clearhtml'; + self.clickToolbar(name, function() { + self.focus(); + var html = self.html(); + html = html.replace(/(]*>)([\s\S]*?)(<\/script>)/ig, ''); + html = html.replace(/(]*>)([\s\S]*?)(<\/style>)/ig, ''); + html = K.formatHtml(html, { + a : ['href', 'target'], + embed : ['src', 'width', 'height', 'type', 'loop', 'autostart', 'quality', '.width', '.height', 'align', 'allowscriptaccess'], + img : ['src', 'width', 'height', 'border', 'alt', 'title', '.width', '.height'], + table : ['border'], + 'td,th' : ['rowspan', 'colspan'], + 'div,hr,br,tbody,tr,p,ol,ul,li,blockquote,h1,h2,h3,h4,h5,h6' : [] + }); + self.html(html); + self.cmd.selection(true); + self.addBookmark(); + }); +}); diff --git a/static/kindeditor/plugins/code/code.js b/static/kindeditor/plugins/code/code.js new file mode 100644 index 0000000..85e4225 --- /dev/null +++ b/static/kindeditor/plugins/code/code.js @@ -0,0 +1,62 @@ +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ + +// google code prettify: http://google-code-prettify.googlecode.com/ +// http://google-code-prettify.googlecode.com/ + +KindEditor.plugin('code', function(K) { + var self = this, name = 'code'; + self.clickToolbar(name, function() { + var lang = self.lang(name + '.'), + html = ['
      ', + '
      ', + '', + '
      ', + '', + '
      '].join(''), + dialog = self.createDialog({ + name : name, + width : 450, + title : self.lang(name), + body : html, + yesBtn : { + name : self.lang('yes'), + click : function(e) { + var type = K('.ke-code-type', dialog.div).val(), + code = textarea.val(), + cls = type === '' ? '' : ' lang-' + type, + html = '
      \n' + K.escape(code) + '
      '; + if (K.trim(code) === '') { + alert(lang.pleaseInput); + textarea[0].focus(); + return; + } + self.insertHtml(html).hideDialog().focus(); + } + } + }), + textarea = K('textarea', dialog.div); + textarea[0].focus(); + }); +}); diff --git a/static/kindeditor/plugins/code/prettify.css b/static/kindeditor/plugins/code/prettify.css new file mode 100644 index 0000000..b8287e5 --- /dev/null +++ b/static/kindeditor/plugins/code/prettify.css @@ -0,0 +1,13 @@ +.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} + +pre.prettyprint { + border: 0; + border-left: 3px solid rgb(204, 204, 204); + margin-left: 2em; + padding: 0.5em; + font-size: 110%; + display: block; + font-family: "Consolas", "Monaco", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace; + margin: 1em 0px; + white-space: pre; +} diff --git a/static/kindeditor/plugins/code/prettify.js b/static/kindeditor/plugins/code/prettify.js new file mode 100644 index 0000000..eef5ad7 --- /dev/null +++ b/static/kindeditor/plugins/code/prettify.js @@ -0,0 +1,28 @@ +var q=null;window.PR_SHOULD_USE_CONTINUATION=!0; +(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\x0":"\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\"||a==="-"||a==="["||a==="]")a="\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),a= +[],b=[],o=f[0]==="^",c=o?1:0,i=f.length;c122||(d<65||j>90||b.push([Math.max(65,j)|32,Math.min(d,90)|32]),d<97||j>122||b.push([Math.max(97,j)&-33,Math.min(d,122)&-33]))}}b.sort(function(a,f){return a[0]-f[0]||f[1]-a[1]});f=[];j=[NaN,NaN];for(c=0;ci[0]&&(i[1]+1>i[0]&&b.push("-"),b.push(e(i[1])));b.push("]");return b.join("")}function y(a){for(var f=a.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),b=f.length,d=[],c=0,i=0;c=2&&a==="["?f[c]=h(j):a!=="\\"&&(f[c]=j.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return f.join("")}for(var t=0,s=!1,l=!1,p=0,d=a.length;p=5&&"lang-"===b.substring(0,5))&&!(o&&typeof o[1]==="string"))c=!1,b="src";c||(r[f]=b)}i=d;d+=f.length;if(c){c=o[1];var j=f.indexOf(c),k=j+c.length;o[2]&&(k=f.length-o[2].length,j=k-c.length);b=b.substring(5);B(l+i,f.substring(0,j),e,p);B(l+i+j,c,C(b,c),p);B(l+i+k,f.substring(k),e,p)}else p.push(l+i,b)}a.e=p}var h={},y;(function(){for(var e=a.concat(m), +l=[],p={},d=0,g=e.length;d=0;)h[n.charAt(k)]=r;r=r[1];n=""+r;p.hasOwnProperty(n)||(l.push(r),p[n]=q)}l.push(/[\S\s]/);y=L(l)})();var t=m.length;return e}function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?m.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/, +q,"'\"`"]):m.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&e.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var h=a.hashComments;h&&(a.cStyleComments?(h>1?m.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):m.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),e.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):m.push(["com",/^#[^\n\r]*/, +q,"#"]));a.cStyleComments&&(e.push(["com",/^\/\/[^\n\r]*/,q]),e.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));a.regexLiterals&&e.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(h=a.types)&&e.push(["typ",h]);a=(""+a.keywords).replace(/^ | $/g, +"");a.length&&e.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),q]);m.push(["pln",/^\s+/,q," \r\n\t\xa0"]);e.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return x(m,e)}function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.className))break;if("BR"===a.nodeName)h(a), +a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)e(a);break;case 3:case 4:if(p){var b=a.nodeValue,d=b.match(t);if(d){var c=b.substring(0,d.index);a.nodeValue=c;(b=b.substring(d.index+d[0].length))&&a.parentNode.insertBefore(s.createTextNode(b),a.nextSibling);h(a);c||a.parentNode.removeChild(a)}}}}function h(a){function b(a,d){var e=d?a.cloneNode(!1):a,f=a.parentNode;if(f){var f=b(f,1),g=a.nextSibling;f.appendChild(e);for(var h=g;h;h=g)g=h.nextSibling,f.appendChild(h)}return e} +for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),e;(e=a.parentNode)&&e.nodeType===1;)a=e;d.push(a)}var k=/(?:^|\s)nocode(?:\s|$)/,t=/\r\n?|\n/,s=a.ownerDocument,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=s.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);for(l=s.createElement("LI");a.firstChild;)l.appendChild(a.firstChild);for(var d=[l],g=0;g=0;){var h=m[e];A.hasOwnProperty(h)?window.console&&console.warn("cannot override language handler %s",h):A[h]=a}}function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*=o&&(h+=2);e>=c&&(a+=2)}}catch(w){"console"in window&&console.log(w&&w.stack?w.stack:w)}}var v=["break,continue,do,else,for,if,return,while"],w=[[v,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"], +"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],F=[w,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],G=[w,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"], +H=[G,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],w=[w,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],I=[v,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"], +J=[v,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],v=[v,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],K=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,N=/\S/,O=u({keywords:[F,H,w,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+ +I,J,v],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};k(O,["default-code"]);k(x([],[["pln",/^[^]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]), +["default-markup","htm","html","mxml","xhtml","xml","xsl"]);k(x([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css", +/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);k(x([],[["atv",/^[\S\s]+/]]),["uq.val"]);k(u({keywords:F,hashComments:!0,cStyleComments:!0,types:K}),["c","cc","cpp","cxx","cyc","m"]);k(u({keywords:"null,true,false"}),["json"]);k(u({keywords:H,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:K}),["cs"]);k(u({keywords:G,cStyleComments:!0}),["java"]);k(u({keywords:v,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);k(u({keywords:I,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}), +["cv","py"]);k(u({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);k(u({keywords:J,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);k(u({keywords:w,cStyleComments:!0,regexLiterals:!0}),["js"]);k(u({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes", +hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);k(x([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(a,m,e){var h=document.createElement("PRE");h.innerHTML=a;e&&D(h,e);E({g:m,i:e,h:h});return h.innerHTML};window.prettyPrint=function(a){function m(){for(var e=window.PR_SHOULD_USE_CONTINUATION?l.now()+250:Infinity;p=0){var k=k.match(g),f,b;if(b= +!k){b=n;for(var o=void 0,c=b.firstChild;c;c=c.nextSibling)var i=c.nodeType,o=i===1?o?b:c:i===3?N.test(c.nodeValue)?b:o:o;b=(f=o===b?void 0:o)&&"CODE"===f.tagName}b&&(k=f.className.match(g));k&&(k=k[1]);b=!1;for(o=n.parentNode;o;o=o.parentNode)if((o.tagName==="pre"||o.tagName==="code"||o.tagName==="xmp")&&o.className&&o.className.indexOf("prettyprint")>=0){b=!0;break}b||((b=(b=n.className.match(/\blinenums\b(?::(\d+))?/))?b[1]&&b[1].length?+b[1]:!0:!1)&&D(n,b),d={g:k,h:n,i:b},E(d))}}p +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ + +KindEditor.plugin('emoticons', function(K) { + var self = this, name = 'emoticons', + path = (self.emoticonsPath || self.pluginsPath + 'emoticons/images/'), + allowPreview = self.allowPreviewEmoticons === undefined ? true : self.allowPreviewEmoticons, + currentPageNum = 1; + self.clickToolbar(name, function() { + var rows = 5, cols = 9, total = 135, startNum = 0, + cells = rows * cols, pages = Math.ceil(total / cells), + colsHalf = Math.floor(cols / 2), + wrapperDiv = K('
      '), + elements = [], + menu = self.createMenu({ + name : name, + beforeRemove : function() { + removeEvent(); + } + }); + menu.div.append(wrapperDiv); + var previewDiv, previewImg; + if (allowPreview) { + previewDiv = K('
      ').css('right', 0); + previewImg = K(''); + wrapperDiv.append(previewDiv); + previewDiv.append(previewImg); + } + function bindCellEvent(cell, j, num) { + if (previewDiv) { + cell.mouseover(function() { + if (j > colsHalf) { + previewDiv.css('left', 0); + previewDiv.css('right', ''); + } else { + previewDiv.css('left', ''); + previewDiv.css('right', 0); + } + previewImg.attr('src', path + num + '.gif'); + K(this).addClass('ke-on'); + }); + } else { + cell.mouseover(function() { + K(this).addClass('ke-on'); + }); + } + cell.mouseout(function() { + K(this).removeClass('ke-on'); + }); + cell.click(function(e) { + self.insertHtml('').hideMenu().focus(); + e.stop(); + }); + } + function createEmoticonsTable(pageNum, parentDiv) { + var table = document.createElement('table'); + parentDiv.append(table); + if (previewDiv) { + K(table).mouseover(function() { + previewDiv.show('block'); + }); + K(table).mouseout(function() { + previewDiv.hide(); + }); + elements.push(K(table)); + } + table.className = 'ke-table'; + table.cellPadding = 0; + table.cellSpacing = 0; + table.border = 0; + var num = (pageNum - 1) * cells + startNum; + for (var i = 0; i < rows; i++) { + var row = table.insertRow(i); + for (var j = 0; j < cols; j++) { + var cell = K(row.insertCell(j)); + cell.addClass('ke-cell'); + bindCellEvent(cell, j, num); + var span = K('') + .css('background-position', '-' + (24 * num) + 'px 0px') + .css('background-image', 'url(' + path + 'static.gif)'); + cell.append(span); + elements.push(cell); + num++; + } + } + return table; + } + var table = createEmoticonsTable(currentPageNum, wrapperDiv); + function removeEvent() { + K.each(elements, function() { + this.unbind(); + }); + } + var pageDiv; + function bindPageEvent(el, pageNum) { + el.click(function(e) { + removeEvent(); + table.parentNode.removeChild(table); + pageDiv.remove(); + table = createEmoticonsTable(pageNum, wrapperDiv); + createPageTable(pageNum); + currentPageNum = pageNum; + e.stop(); + }); + } + function createPageTable(currentPageNum) { + pageDiv = K('
      '); + wrapperDiv.append(pageDiv); + for (var pageNum = 1; pageNum <= pages; pageNum++) { + if (currentPageNum !== pageNum) { + var a = K('
      [' + pageNum + ']'); + bindPageEvent(a, pageNum); + pageDiv.append(a); + elements.push(a); + } else { + pageDiv.append(K('@[' + pageNum + ']')); + } + pageDiv.append(K('@ ')); + } + } + createPageTable(currentPageNum); + }); +}); diff --git a/static/kindeditor/plugins/emoticons/images/0.gif b/static/kindeditor/plugins/emoticons/images/0.gif new file mode 100644 index 0000000..5be27cb Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/0.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/1.gif b/static/kindeditor/plugins/emoticons/images/1.gif new file mode 100644 index 0000000..a2644a9 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/1.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/10.gif b/static/kindeditor/plugins/emoticons/images/10.gif new file mode 100644 index 0000000..905c15b Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/10.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/100.gif b/static/kindeditor/plugins/emoticons/images/100.gif new file mode 100644 index 0000000..92ad35d Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/100.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/101.gif b/static/kindeditor/plugins/emoticons/images/101.gif new file mode 100644 index 0000000..1f27663 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/101.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/102.gif b/static/kindeditor/plugins/emoticons/images/102.gif new file mode 100644 index 0000000..748ded1 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/102.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/103.gif b/static/kindeditor/plugins/emoticons/images/103.gif new file mode 100644 index 0000000..be9eaa0 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/103.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/104.gif b/static/kindeditor/plugins/emoticons/images/104.gif new file mode 100644 index 0000000..d7c2066 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/104.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/105.gif b/static/kindeditor/plugins/emoticons/images/105.gif new file mode 100644 index 0000000..2f353ca Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/105.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/106.gif b/static/kindeditor/plugins/emoticons/images/106.gif new file mode 100644 index 0000000..5193534 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/106.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/107.gif b/static/kindeditor/plugins/emoticons/images/107.gif new file mode 100644 index 0000000..70d38d3 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/107.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/108.gif b/static/kindeditor/plugins/emoticons/images/108.gif new file mode 100644 index 0000000..749d500 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/108.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/109.gif b/static/kindeditor/plugins/emoticons/images/109.gif new file mode 100644 index 0000000..6f57d56 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/109.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/11.gif b/static/kindeditor/plugins/emoticons/images/11.gif new file mode 100644 index 0000000..b512dd5 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/11.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/110.gif b/static/kindeditor/plugins/emoticons/images/110.gif new file mode 100644 index 0000000..e253abc Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/110.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/111.gif b/static/kindeditor/plugins/emoticons/images/111.gif new file mode 100644 index 0000000..0c56723 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/111.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/112.gif b/static/kindeditor/plugins/emoticons/images/112.gif new file mode 100644 index 0000000..c8ddce8 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/112.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/113.gif b/static/kindeditor/plugins/emoticons/images/113.gif new file mode 100644 index 0000000..2727104 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/113.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/114.gif b/static/kindeditor/plugins/emoticons/images/114.gif new file mode 100644 index 0000000..53918e2 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/114.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/115.gif b/static/kindeditor/plugins/emoticons/images/115.gif new file mode 100644 index 0000000..4db3369 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/115.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/116.gif b/static/kindeditor/plugins/emoticons/images/116.gif new file mode 100644 index 0000000..57326bd Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/116.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/117.gif b/static/kindeditor/plugins/emoticons/images/117.gif new file mode 100644 index 0000000..14611b6 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/117.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/118.gif b/static/kindeditor/plugins/emoticons/images/118.gif new file mode 100644 index 0000000..8c25500 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/118.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/119.gif b/static/kindeditor/plugins/emoticons/images/119.gif new file mode 100644 index 0000000..65bb468 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/119.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/12.gif b/static/kindeditor/plugins/emoticons/images/12.gif new file mode 100644 index 0000000..547529c Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/12.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/120.gif b/static/kindeditor/plugins/emoticons/images/120.gif new file mode 100644 index 0000000..5ce77c0 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/120.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/121.gif b/static/kindeditor/plugins/emoticons/images/121.gif new file mode 100644 index 0000000..a021aba Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/121.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/122.gif b/static/kindeditor/plugins/emoticons/images/122.gif new file mode 100644 index 0000000..9a79e11 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/122.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/123.gif b/static/kindeditor/plugins/emoticons/images/123.gif new file mode 100644 index 0000000..b9480be Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/123.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/124.gif b/static/kindeditor/plugins/emoticons/images/124.gif new file mode 100644 index 0000000..7fed477 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/124.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/125.gif b/static/kindeditor/plugins/emoticons/images/125.gif new file mode 100644 index 0000000..e2c3c11 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/125.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/126.gif b/static/kindeditor/plugins/emoticons/images/126.gif new file mode 100644 index 0000000..24105c9 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/126.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/127.gif b/static/kindeditor/plugins/emoticons/images/127.gif new file mode 100644 index 0000000..0cead36 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/127.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/128.gif b/static/kindeditor/plugins/emoticons/images/128.gif new file mode 100644 index 0000000..3185861 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/128.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/129.gif b/static/kindeditor/plugins/emoticons/images/129.gif new file mode 100644 index 0000000..ffd7c6b Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/129.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/13.gif b/static/kindeditor/plugins/emoticons/images/13.gif new file mode 100644 index 0000000..3475300 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/13.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/130.gif b/static/kindeditor/plugins/emoticons/images/130.gif new file mode 100644 index 0000000..d828e3d Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/130.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/131.gif b/static/kindeditor/plugins/emoticons/images/131.gif new file mode 100644 index 0000000..dcb096f Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/131.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/132.gif b/static/kindeditor/plugins/emoticons/images/132.gif new file mode 100644 index 0000000..1b272a6 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/132.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/133.gif b/static/kindeditor/plugins/emoticons/images/133.gif new file mode 100644 index 0000000..0d0e864 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/133.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/134.gif b/static/kindeditor/plugins/emoticons/images/134.gif new file mode 100644 index 0000000..cf48356 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/134.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/14.gif b/static/kindeditor/plugins/emoticons/images/14.gif new file mode 100644 index 0000000..6a788f8 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/14.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/15.gif b/static/kindeditor/plugins/emoticons/images/15.gif new file mode 100644 index 0000000..debab8e Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/15.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/16.gif b/static/kindeditor/plugins/emoticons/images/16.gif new file mode 100644 index 0000000..ed5d29f Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/16.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/17.gif b/static/kindeditor/plugins/emoticons/images/17.gif new file mode 100644 index 0000000..85886fe Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/17.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/18.gif b/static/kindeditor/plugins/emoticons/images/18.gif new file mode 100644 index 0000000..b6af218 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/18.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/19.gif b/static/kindeditor/plugins/emoticons/images/19.gif new file mode 100644 index 0000000..e045ff2 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/19.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/2.gif b/static/kindeditor/plugins/emoticons/images/2.gif new file mode 100644 index 0000000..40cfda4 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/2.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/20.gif b/static/kindeditor/plugins/emoticons/images/20.gif new file mode 100644 index 0000000..efd650f Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/20.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/21.gif b/static/kindeditor/plugins/emoticons/images/21.gif new file mode 100644 index 0000000..cb8cf6d Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/21.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/22.gif b/static/kindeditor/plugins/emoticons/images/22.gif new file mode 100644 index 0000000..96b04df Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/22.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/23.gif b/static/kindeditor/plugins/emoticons/images/23.gif new file mode 100644 index 0000000..96516b8 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/23.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/24.gif b/static/kindeditor/plugins/emoticons/images/24.gif new file mode 100644 index 0000000..5f925c7 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/24.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/25.gif b/static/kindeditor/plugins/emoticons/images/25.gif new file mode 100644 index 0000000..97f8b1a Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/25.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/26.gif b/static/kindeditor/plugins/emoticons/images/26.gif new file mode 100644 index 0000000..a7cded7 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/26.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/27.gif b/static/kindeditor/plugins/emoticons/images/27.gif new file mode 100644 index 0000000..bb46890 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/27.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/28.gif b/static/kindeditor/plugins/emoticons/images/28.gif new file mode 100644 index 0000000..f59dd58 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/28.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/29.gif b/static/kindeditor/plugins/emoticons/images/29.gif new file mode 100644 index 0000000..3c5227e Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/29.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/3.gif b/static/kindeditor/plugins/emoticons/images/3.gif new file mode 100644 index 0000000..6d6f762 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/3.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/30.gif b/static/kindeditor/plugins/emoticons/images/30.gif new file mode 100644 index 0000000..e24a180 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/30.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/31.gif b/static/kindeditor/plugins/emoticons/images/31.gif new file mode 100644 index 0000000..073e743 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/31.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/32.gif b/static/kindeditor/plugins/emoticons/images/32.gif new file mode 100644 index 0000000..772eff2 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/32.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/33.gif b/static/kindeditor/plugins/emoticons/images/33.gif new file mode 100644 index 0000000..217c1c5 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/33.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/34.gif b/static/kindeditor/plugins/emoticons/images/34.gif new file mode 100644 index 0000000..e9d4213 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/34.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/35.gif b/static/kindeditor/plugins/emoticons/images/35.gif new file mode 100644 index 0000000..d6da2c3 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/35.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/36.gif b/static/kindeditor/plugins/emoticons/images/36.gif new file mode 100644 index 0000000..c1e6ac9 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/36.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/37.gif b/static/kindeditor/plugins/emoticons/images/37.gif new file mode 100644 index 0000000..92efec6 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/37.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/38.gif b/static/kindeditor/plugins/emoticons/images/38.gif new file mode 100644 index 0000000..489f0f9 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/38.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/39.gif b/static/kindeditor/plugins/emoticons/images/39.gif new file mode 100644 index 0000000..734f6d8 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/39.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/4.gif b/static/kindeditor/plugins/emoticons/images/4.gif new file mode 100644 index 0000000..6ccdaa2 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/4.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/40.gif b/static/kindeditor/plugins/emoticons/images/40.gif new file mode 100644 index 0000000..24a8eb6 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/40.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/41.gif b/static/kindeditor/plugins/emoticons/images/41.gif new file mode 100644 index 0000000..99139e1 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/41.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/42.gif b/static/kindeditor/plugins/emoticons/images/42.gif new file mode 100644 index 0000000..f60897e Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/42.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/43.gif b/static/kindeditor/plugins/emoticons/images/43.gif new file mode 100644 index 0000000..4350491 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/43.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/44.gif b/static/kindeditor/plugins/emoticons/images/44.gif new file mode 100644 index 0000000..650d3dd Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/44.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/45.gif b/static/kindeditor/plugins/emoticons/images/45.gif new file mode 100644 index 0000000..5c8e071 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/45.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/46.gif b/static/kindeditor/plugins/emoticons/images/46.gif new file mode 100644 index 0000000..f3cb074 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/46.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/47.gif b/static/kindeditor/plugins/emoticons/images/47.gif new file mode 100644 index 0000000..5b3057a Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/47.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/48.gif b/static/kindeditor/plugins/emoticons/images/48.gif new file mode 100644 index 0000000..27a30c1 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/48.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/49.gif b/static/kindeditor/plugins/emoticons/images/49.gif new file mode 100644 index 0000000..dcfa48a Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/49.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/5.gif b/static/kindeditor/plugins/emoticons/images/5.gif new file mode 100644 index 0000000..ab0b81b Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/5.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/50.gif b/static/kindeditor/plugins/emoticons/images/50.gif new file mode 100644 index 0000000..029cf0f Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/50.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/51.gif b/static/kindeditor/plugins/emoticons/images/51.gif new file mode 100644 index 0000000..69f183f Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/51.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/52.gif b/static/kindeditor/plugins/emoticons/images/52.gif new file mode 100644 index 0000000..d41e8aa Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/52.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/53.gif b/static/kindeditor/plugins/emoticons/images/53.gif new file mode 100644 index 0000000..56352dd Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/53.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/54.gif b/static/kindeditor/plugins/emoticons/images/54.gif new file mode 100644 index 0000000..b28d848 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/54.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/55.gif b/static/kindeditor/plugins/emoticons/images/55.gif new file mode 100644 index 0000000..e18da84 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/55.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/56.gif b/static/kindeditor/plugins/emoticons/images/56.gif new file mode 100644 index 0000000..edf96f0 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/56.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/57.gif b/static/kindeditor/plugins/emoticons/images/57.gif new file mode 100644 index 0000000..3f0e2b9 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/57.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/58.gif b/static/kindeditor/plugins/emoticons/images/58.gif new file mode 100644 index 0000000..47b1aaa Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/58.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/59.gif b/static/kindeditor/plugins/emoticons/images/59.gif new file mode 100644 index 0000000..918288b Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/59.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/6.gif b/static/kindeditor/plugins/emoticons/images/6.gif new file mode 100644 index 0000000..ceab122 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/6.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/60.gif b/static/kindeditor/plugins/emoticons/images/60.gif new file mode 100644 index 0000000..66d2113 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/60.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/61.gif b/static/kindeditor/plugins/emoticons/images/61.gif new file mode 100644 index 0000000..034933e Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/61.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/62.gif b/static/kindeditor/plugins/emoticons/images/62.gif new file mode 100644 index 0000000..8d5c4fd Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/62.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/63.gif b/static/kindeditor/plugins/emoticons/images/63.gif new file mode 100644 index 0000000..d58fcf6 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/63.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/64.gif b/static/kindeditor/plugins/emoticons/images/64.gif new file mode 100644 index 0000000..c4e00bd Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/64.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/65.gif b/static/kindeditor/plugins/emoticons/images/65.gif new file mode 100644 index 0000000..da23bfa Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/65.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/66.gif b/static/kindeditor/plugins/emoticons/images/66.gif new file mode 100644 index 0000000..310ec65 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/66.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/67.gif b/static/kindeditor/plugins/emoticons/images/67.gif new file mode 100644 index 0000000..51761ba Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/67.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/68.gif b/static/kindeditor/plugins/emoticons/images/68.gif new file mode 100644 index 0000000..345cb43 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/68.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/69.gif b/static/kindeditor/plugins/emoticons/images/69.gif new file mode 100644 index 0000000..e0f28a0 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/69.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/7.gif b/static/kindeditor/plugins/emoticons/images/7.gif new file mode 100644 index 0000000..2f45399 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/7.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/70.gif b/static/kindeditor/plugins/emoticons/images/70.gif new file mode 100644 index 0000000..24284cf Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/70.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/71.gif b/static/kindeditor/plugins/emoticons/images/71.gif new file mode 100644 index 0000000..a0ccf2e Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/71.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/72.gif b/static/kindeditor/plugins/emoticons/images/72.gif new file mode 100644 index 0000000..7e113ee Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/72.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/73.gif b/static/kindeditor/plugins/emoticons/images/73.gif new file mode 100644 index 0000000..c0293c3 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/73.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/74.gif b/static/kindeditor/plugins/emoticons/images/74.gif new file mode 100644 index 0000000..1c52bde Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/74.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/75.gif b/static/kindeditor/plugins/emoticons/images/75.gif new file mode 100644 index 0000000..9cb9aa7 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/75.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/76.gif b/static/kindeditor/plugins/emoticons/images/76.gif new file mode 100644 index 0000000..27019f8 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/76.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/77.gif b/static/kindeditor/plugins/emoticons/images/77.gif new file mode 100644 index 0000000..8f882f5 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/77.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/78.gif b/static/kindeditor/plugins/emoticons/images/78.gif new file mode 100644 index 0000000..d0d0856 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/78.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/79.gif b/static/kindeditor/plugins/emoticons/images/79.gif new file mode 100644 index 0000000..61652a7 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/79.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/8.gif b/static/kindeditor/plugins/emoticons/images/8.gif new file mode 100644 index 0000000..f6c8834 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/8.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/80.gif b/static/kindeditor/plugins/emoticons/images/80.gif new file mode 100644 index 0000000..9a77936 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/80.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/81.gif b/static/kindeditor/plugins/emoticons/images/81.gif new file mode 100644 index 0000000..2329101 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/81.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/82.gif b/static/kindeditor/plugins/emoticons/images/82.gif new file mode 100644 index 0000000..644748a Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/82.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/83.gif b/static/kindeditor/plugins/emoticons/images/83.gif new file mode 100644 index 0000000..fbf275b Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/83.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/84.gif b/static/kindeditor/plugins/emoticons/images/84.gif new file mode 100644 index 0000000..076f0c6 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/84.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/85.gif b/static/kindeditor/plugins/emoticons/images/85.gif new file mode 100644 index 0000000..d254af4 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/85.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/86.gif b/static/kindeditor/plugins/emoticons/images/86.gif new file mode 100644 index 0000000..8f09d33 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/86.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/87.gif b/static/kindeditor/plugins/emoticons/images/87.gif new file mode 100644 index 0000000..df70756 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/87.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/88.gif b/static/kindeditor/plugins/emoticons/images/88.gif new file mode 100644 index 0000000..4d8b15e Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/88.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/89.gif b/static/kindeditor/plugins/emoticons/images/89.gif new file mode 100644 index 0000000..05726dc Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/89.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/9.gif b/static/kindeditor/plugins/emoticons/images/9.gif new file mode 100644 index 0000000..c2d8450 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/9.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/90.gif b/static/kindeditor/plugins/emoticons/images/90.gif new file mode 100644 index 0000000..adaf20e Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/90.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/91.gif b/static/kindeditor/plugins/emoticons/images/91.gif new file mode 100644 index 0000000..608d0ad Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/91.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/92.gif b/static/kindeditor/plugins/emoticons/images/92.gif new file mode 100644 index 0000000..b909e16 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/92.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/93.gif b/static/kindeditor/plugins/emoticons/images/93.gif new file mode 100644 index 0000000..7f71a8c Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/93.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/94.gif b/static/kindeditor/plugins/emoticons/images/94.gif new file mode 100644 index 0000000..4f26d7d Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/94.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/95.gif b/static/kindeditor/plugins/emoticons/images/95.gif new file mode 100644 index 0000000..5ef6d38 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/95.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/96.gif b/static/kindeditor/plugins/emoticons/images/96.gif new file mode 100644 index 0000000..2b709e1 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/96.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/97.gif b/static/kindeditor/plugins/emoticons/images/97.gif new file mode 100644 index 0000000..cf29be8 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/97.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/98.gif b/static/kindeditor/plugins/emoticons/images/98.gif new file mode 100644 index 0000000..c70e7d3 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/98.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/99.gif b/static/kindeditor/plugins/emoticons/images/99.gif new file mode 100644 index 0000000..05c1863 Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/99.gif differ diff --git a/static/kindeditor/plugins/emoticons/images/static.gif b/static/kindeditor/plugins/emoticons/images/static.gif new file mode 100644 index 0000000..b8c444b Binary files /dev/null and b/static/kindeditor/plugins/emoticons/images/static.gif differ diff --git a/static/kindeditor/plugins/filemanager/filemanager.js b/static/kindeditor/plugins/filemanager/filemanager.js new file mode 100644 index 0000000..fd899af --- /dev/null +++ b/static/kindeditor/plugins/filemanager/filemanager.js @@ -0,0 +1,189 @@ +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ + +KindEditor.plugin('filemanager', function(K) { + var self = this, name = 'filemanager', + fileManagerJson = K.undef(self.fileManagerJson, self.basePath + 'php/file_manager_json.php'), + imgPath = self.pluginsPath + name + '/images/', + lang = self.lang(name + '.'); + function makeFileTitle(filename, filesize, datetime) { + return filename + ' (' + Math.ceil(filesize / 1024) + 'KB, ' + datetime + ')'; + } + function bindTitle(el, data) { + if (data.is_dir) { + el.attr('title', data.filename); + } else { + el.attr('title', makeFileTitle(data.filename, data.filesize, data.datetime)); + } + } + self.plugin.filemanagerDialog = function(options) { + var width = K.undef(options.width, 650), + height = K.undef(options.height, 510), + dirName = K.undef(options.dirName, ''), + viewType = K.undef(options.viewType, 'VIEW').toUpperCase(), // "LIST" or "VIEW" + clickFn = options.clickFn; + var html = [ + '
      ', + // header start + '
      ', + // left start + '
      ', + ' ', + '' + lang.moveup + '', + '
      ', + // right start + '
      ', + lang.viewType + ' ', + lang.orderType + ' ', + '
      ', + '
      ', + '
      ', + // body start + '
      ', + '
      ' + ].join(''); + var dialog = self.createDialog({ + name : name, + width : width, + height : height, + title : self.lang(name), + body : html + }), + div = dialog.div, + bodyDiv = K('.ke-plugin-filemanager-body', div), + moveupImg = K('[name="moveupImg"]', div), + moveupLink = K('[name="moveupLink"]', div), + viewServerBtn = K('[name="viewServer"]', div), + viewTypeBox = K('[name="viewType"]', div), + orderTypeBox = K('[name="orderType"]', div); + function reloadPage(path, order, func) { + var param = 'path=' + path + '&order=' + order + '&dir=' + dirName; + dialog.showLoading(self.lang('ajaxLoading')); + K.ajax(K.addParam(fileManagerJson, param + '&' + new Date().getTime()), function(data) { + dialog.hideLoading(); + func(data); + }); + } + var elList = []; + function bindEvent(el, result, data, createFunc) { + var fileUrl = K.formatUrl(result.current_url + data.filename, 'absolute'), + dirPath = encodeURIComponent(result.current_dir_path + data.filename + '/'); + if (data.is_dir) { + el.click(function(e) { + reloadPage(dirPath, orderTypeBox.val(), createFunc); + }); + } else if (data.is_photo) { + el.click(function(e) { + clickFn.call(this, fileUrl, data.filename); + }); + } else { + el.click(function(e) { + clickFn.call(this, fileUrl, data.filename); + }); + } + elList.push(el); + } + function createCommon(result, createFunc) { + // remove events + K.each(elList, function() { + this.unbind(); + }); + moveupLink.unbind(); + viewTypeBox.unbind(); + orderTypeBox.unbind(); + // add events + if (result.current_dir_path) { + moveupLink.click(function(e) { + reloadPage(result.moveup_dir_path, orderTypeBox.val(), createFunc); + }); + } + function changeFunc() { + if (viewTypeBox.val() == 'VIEW') { + reloadPage(result.current_dir_path, orderTypeBox.val(), createView); + } else { + reloadPage(result.current_dir_path, orderTypeBox.val(), createList); + } + } + viewTypeBox.change(changeFunc); + orderTypeBox.change(changeFunc); + bodyDiv.html(''); + } + function createList(result) { + createCommon(result, createList); + var table = document.createElement('table'); + table.className = 'ke-table'; + table.cellPadding = 0; + table.cellSpacing = 0; + table.border = 0; + bodyDiv.append(table); + var fileList = result.file_list; + for (var i = 0, len = fileList.length; i < len; i++) { + var data = fileList[i], row = K(table.insertRow(i)); + row.mouseover(function(e) { + K(this).addClass('ke-on'); + }) + .mouseout(function(e) { + K(this).removeClass('ke-on'); + }); + var iconUrl = imgPath + (data.is_dir ? 'folder-16.gif' : 'file-16.gif'), + img = K('' + data.filename + ''), + cell0 = K(row[0].insertCell(0)).addClass('ke-cell ke-name').append(img).append(document.createTextNode(' ' + data.filename)); + if (!data.is_dir || data.has_file) { + row.css('cursor', 'pointer'); + cell0.attr('title', data.filename); + bindEvent(cell0, result, data, createList); + } else { + cell0.attr('title', lang.emptyFolder); + } + K(row[0].insertCell(1)).addClass('ke-cell ke-size').html(data.is_dir ? '-' : Math.ceil(data.filesize / 1024) + 'KB'); + K(row[0].insertCell(2)).addClass('ke-cell ke-datetime').html(data.datetime); + } + } + function createView(result) { + createCommon(result, createView); + var fileList = result.file_list; + for (var i = 0, len = fileList.length; i < len; i++) { + var data = fileList[i], + div = K('
      '); + bodyDiv.append(div); + var photoDiv = K('
      ') + .mouseover(function(e) { + K(this).addClass('ke-on'); + }) + .mouseout(function(e) { + K(this).removeClass('ke-on'); + }); + div.append(photoDiv); + var fileUrl = result.current_url + data.filename, + iconUrl = data.is_dir ? imgPath + 'folder-64.gif' : (data.is_photo ? fileUrl : imgPath + 'file-64.gif'); + var img = K('' + data.filename + ''); + if (!data.is_dir || data.has_file) { + photoDiv.css('cursor', 'pointer'); + bindTitle(photoDiv, data); + bindEvent(photoDiv, result, data, createView); + } else { + photoDiv.attr('title', lang.emptyFolder); + } + photoDiv.append(img); + div.append('
      ' + data.filename + '
      '); + } + } + viewTypeBox.val(viewType); + reloadPage('', orderTypeBox.val(), viewType == 'VIEW' ? createView : createList); + return dialog; + } + +}); diff --git a/static/kindeditor/plugins/filemanager/images/file-16.gif b/static/kindeditor/plugins/filemanager/images/file-16.gif new file mode 100644 index 0000000..2cf6e47 Binary files /dev/null and b/static/kindeditor/plugins/filemanager/images/file-16.gif differ diff --git a/static/kindeditor/plugins/filemanager/images/file-64.gif b/static/kindeditor/plugins/filemanager/images/file-64.gif new file mode 100644 index 0000000..2e211da Binary files /dev/null and b/static/kindeditor/plugins/filemanager/images/file-64.gif differ diff --git a/static/kindeditor/plugins/filemanager/images/folder-16.gif b/static/kindeditor/plugins/filemanager/images/folder-16.gif new file mode 100644 index 0000000..850b5a3 Binary files /dev/null and b/static/kindeditor/plugins/filemanager/images/folder-16.gif differ diff --git a/static/kindeditor/plugins/filemanager/images/folder-64.gif b/static/kindeditor/plugins/filemanager/images/folder-64.gif new file mode 100644 index 0000000..e8a1b09 Binary files /dev/null and b/static/kindeditor/plugins/filemanager/images/folder-64.gif differ diff --git a/static/kindeditor/plugins/filemanager/images/go-up.gif b/static/kindeditor/plugins/filemanager/images/go-up.gif new file mode 100644 index 0000000..92ae23d Binary files /dev/null and b/static/kindeditor/plugins/filemanager/images/go-up.gif differ diff --git a/static/kindeditor/plugins/fixtoolbar/fixtoolbar.js b/static/kindeditor/plugins/fixtoolbar/fixtoolbar.js new file mode 100644 index 0000000..7a16fca --- /dev/null +++ b/static/kindeditor/plugins/fixtoolbar/fixtoolbar.js @@ -0,0 +1,35 @@ +/** + * Created by chenyihong on 14/12/4. + */ + +KindEditor.plugin('fixtoolbar', function (K) { + var self = this; + if (!self.fixToolBar) { + return; + } + + function init() { + var toolbar = K('.ke-toolbar'); + var originY = toolbar.pos().y; + K(window).bind('scroll', function () { + if (toolbar.css('position') == 'fixed') { + if(document.body.scrollTop - originY < 0){ + toolbar.css('position', 'static'); + toolbar.css('top', 'auto'); + } + } else { + if (toolbar.pos().y - document.body.scrollTop < 0) { + toolbar.css('position', 'fixed'); + toolbar.css('top', 0); + } + } + }); + } + + if (self.isCreated) { + init(); + } else { + self.afterCreate(init); + } + +}); diff --git a/static/kindeditor/plugins/flash/flash.js b/static/kindeditor/plugins/flash/flash.js new file mode 100644 index 0000000..d5d465e --- /dev/null +++ b/static/kindeditor/plugins/flash/flash.js @@ -0,0 +1,161 @@ +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ + +KindEditor.plugin('flash', function(K) { + var self = this, name = 'flash', lang = self.lang(name + '.'), + allowFlashUpload = K.undef(self.allowFlashUpload, true), + allowFileManager = K.undef(self.allowFileManager, false), + formatUploadUrl = K.undef(self.formatUploadUrl, true), + extraParams = K.undef(self.extraFileUploadParams, {}), + filePostName = K.undef(self.filePostName, 'imgFile'), + uploadJson = K.undef(self.uploadJson, self.basePath + 'php/upload_json.php'); + self.plugin.flash = { + edit : function() { + var html = [ + '
      ', + //url + '
      ', + '', + '  ', + '  ', + '', + '', + '', + '
      ', + //width + '
      ', + '', + ' ', + '
      ', + //height + '
      ', + '', + ' ', + '
      ', + '
      ' + ].join(''); + var dialog = self.createDialog({ + name : name, + width : 450, + title : self.lang(name), + body : html, + yesBtn : { + name : self.lang('yes'), + click : function(e) { + var url = K.trim(urlBox.val()), + width = widthBox.val(), + height = heightBox.val(); + if (url == 'http://' || K.invalidUrl(url)) { + alert(self.lang('invalidUrl')); + urlBox[0].focus(); + return; + } + if (!/^\d*$/.test(width)) { + alert(self.lang('invalidWidth')); + widthBox[0].focus(); + return; + } + if (!/^\d*$/.test(height)) { + alert(self.lang('invalidHeight')); + heightBox[0].focus(); + return; + } + var html = K.mediaImg(self.themesPath + 'common/blank.gif', { + src : url, + type : K.mediaType('.swf'), + width : width, + height : height, + quality : 'high' + }); + self.insertHtml(html).hideDialog().focus(); + } + } + }), + div = dialog.div, + urlBox = K('[name="url"]', div), + viewServerBtn = K('[name="viewServer"]', div), + widthBox = K('[name="width"]', div), + heightBox = K('[name="height"]', div); + urlBox.val('http://'); + + if (allowFlashUpload) { + var uploadbutton = K.uploadbutton({ + button : K('.ke-upload-button', div)[0], + fieldName : filePostName, + extraParams : extraParams, + url : K.addParam(uploadJson, 'dir=flash'), + afterUpload : function(data) { + dialog.hideLoading(); + if (data.error === 0) { + var url = data.url; + if (formatUploadUrl) { + url = K.formatUrl(url, 'absolute'); + } + urlBox.val(url); + if (self.afterUpload) { + self.afterUpload.call(self, url, data, name); + } + alert(self.lang('uploadSuccess')); + } else { + alert(data.message); + } + }, + afterError : function(html) { + dialog.hideLoading(); + self.errorDialog(html); + } + }); + uploadbutton.fileBox.change(function(e) { + dialog.showLoading(self.lang('uploadLoading')); + uploadbutton.submit(); + }); + } else { + K('.ke-upload-button', div).hide(); + } + + if (allowFileManager) { + viewServerBtn.click(function(e) { + self.loadPlugin('filemanager', function() { + self.plugin.filemanagerDialog({ + viewType : 'LIST', + dirName : 'flash', + clickFn : function(url, title) { + if (self.dialogs.length > 1) { + K('[name="url"]', div).val(url); + if (self.afterSelectFile) { + self.afterSelectFile.call(self, url); + } + self.hideDialog(); + } + } + }); + }); + }); + } else { + viewServerBtn.hide(); + } + + var img = self.plugin.getSelectedFlash(); + if (img) { + var attrs = K.mediaAttrs(img.attr('data-ke-tag')); + urlBox.val(attrs.src); + widthBox.val(K.removeUnit(img.css('width')) || attrs.width || 0); + heightBox.val(K.removeUnit(img.css('height')) || attrs.height || 0); + } + urlBox[0].focus(); + urlBox[0].select(); + }, + 'delete' : function() { + self.plugin.getSelectedFlash().remove(); + // [IE] 删除图片后立即点击图片按钮出错 + self.addBookmark(); + } + }; + self.clickToolbar(name, self.plugin.flash.edit); +}); diff --git a/static/kindeditor/plugins/image/image.js b/static/kindeditor/plugins/image/image.js new file mode 100644 index 0000000..9f29b07 --- /dev/null +++ b/static/kindeditor/plugins/image/image.js @@ -0,0 +1,328 @@ +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ + +KindEditor.plugin('image', function(K) { + var self = this, name = 'image', + allowImageUpload = K.undef(self.allowImageUpload, true), + allowImageRemote = K.undef(self.allowImageRemote, true), + formatUploadUrl = K.undef(self.formatUploadUrl, true), + allowFileManager = K.undef(self.allowFileManager, false), + uploadJson = K.undef(self.uploadJson, self.basePath + 'php/upload_json.php'), + imageTabIndex = K.undef(self.imageTabIndex, 0), + imgPath = self.pluginsPath + 'image/images/', + extraParams = K.undef(self.extraFileUploadParams, {}), + filePostName = K.undef(self.filePostName, 'imgFile'), + fillDescAfterUploadImage = K.undef(self.fillDescAfterUploadImage, false), + lang = self.lang(name + '.'); + + self.plugin.imageDialog = function(options) { + var imageUrl = options.imageUrl, + imageWidth = K.undef(options.imageWidth, ''), + imageHeight = K.undef(options.imageHeight, ''), + imageTitle = K.undef(options.imageTitle, ''), + imageAlign = K.undef(options.imageAlign, ''), + showRemote = K.undef(options.showRemote, true), + showLocal = K.undef(options.showLocal, true), + tabIndex = K.undef(options.tabIndex, 0), + clickFn = options.clickFn; + var target = 'kindeditor_upload_iframe_' + new Date().getTime(); + var hiddenElements = []; + for(var k in extraParams){ + hiddenElements.push(''); + } + var html = [ + '
      ', + //tabs + '
      ', + //remote image - start + '', + //remote image - end + //local upload - start + '', + //local upload - end + '
      ' + ].join(''); + var dialogWidth = showLocal || allowFileManager ? 450 : 400, + dialogHeight = showLocal && showRemote ? 300 : 250; + var dialog = self.createDialog({ + name : name, + width : dialogWidth, + height : dialogHeight, + title : self.lang(name), + body : html, + yesBtn : { + name : self.lang('yes'), + click : function(e) { + // Bugfix: http://code.google.com/p/kindeditor/issues/detail?id=319 + if (dialog.isLoading) { + return; + } + // insert local image + if (showLocal && showRemote && tabs && tabs.selectedIndex === 1 || !showRemote) { + if (uploadbutton.fileBox.val() == '') { + alert(self.lang('pleaseSelectFile')); + return; + } + dialog.showLoading(self.lang('uploadLoading')); + uploadbutton.submit(); + localUrlBox.val(''); + return; + } + // insert remote image + var url = K.trim(urlBox.val()), + width = widthBox.val(), + height = heightBox.val(), + title = titleBox.val(), + align = ''; + alignBox.each(function() { + if (this.checked) { + align = this.value; + return false; + } + }); + if (url == 'http://' || K.invalidUrl(url)) { + alert(self.lang('invalidUrl')); + urlBox[0].focus(); + return; + } + if (!/^\d*$/.test(width)) { + alert(self.lang('invalidWidth')); + widthBox[0].focus(); + return; + } + if (!/^\d*$/.test(height)) { + alert(self.lang('invalidHeight')); + heightBox[0].focus(); + return; + } + clickFn.call(self, url, title, width, height, 0, align); + } + }, + beforeRemove : function() { + viewServerBtn.unbind(); + widthBox.unbind(); + heightBox.unbind(); + refreshBtn.unbind(); + } + }), + div = dialog.div; + + var urlBox = K('[name="url"]', div), + localUrlBox = K('[name="localUrl"]', div), + viewServerBtn = K('[name="viewServer"]', div), + widthBox = K('.tab1 [name="width"]', div), + heightBox = K('.tab1 [name="height"]', div), + refreshBtn = K('.ke-refresh-btn', div), + titleBox = K('.tab1 [name="title"]', div), + alignBox = K('.tab1 [name="align"]', div); + + var tabs; + if (showRemote && showLocal) { + tabs = K.tabs({ + src : K('.tabs', div), + afterSelect : function(i) {} + }); + tabs.add({ + title : lang.remoteImage, + panel : K('.tab1', div) + }); + // tabs.add({ + // title : lang.localImage, + // panel : K('.tab2', div) + // }); + tabs.select(tabIndex); + } else if (showRemote) { + K('.tab1', div).show(); + } else if (showLocal) { + K('.tab2', div).show(); + } + + var uploadbutton = K.uploadbutton({ + button : K('.ke-upload-button', div)[0], + fieldName : filePostName, + form : K('.ke-form', div), + target : target, + width: 60, + afterUpload : function(data) { + dialog.hideLoading(); + if (data.error === 0) { + var url = data.url; + if (formatUploadUrl) { + url = K.formatUrl(url, 'absolute'); + } + if (self.afterUpload) { + self.afterUpload.call(self, url, data, name); + } + if (!fillDescAfterUploadImage) { + clickFn.call(self, url, data.title, data.width, data.height, data.border, data.align); + } else { + K(".ke-dialog-row #remoteUrl", div).val(url); + K(".ke-tabs-li", div)[0].click(); + K(".ke-refresh-btn", div).click(); + } + } else { + alert(data.message); + } + }, + afterError : function(html) { + dialog.hideLoading(); + self.errorDialog(html); + } + }); + uploadbutton.fileBox.change(function(e) { + localUrlBox.val(uploadbutton.fileBox.val()); + }); + if (allowFileManager) { + viewServerBtn.click(function(e) { + self.loadPlugin('filemanager', function() { + self.plugin.filemanagerDialog({ + viewType : 'VIEW', + dirName : 'image', + clickFn : function(url, title) { + if (self.dialogs.length > 1) { + K('[name="url"]', div).val(url); + if (self.afterSelectFile) { + self.afterSelectFile.call(self, url); + } + self.hideDialog(); + } + } + }); + }); + }); + } else { + viewServerBtn.hide(); + } + var originalWidth = 0, originalHeight = 0; + function setSize(width, height) { + widthBox.val(width); + heightBox.val(height); + originalWidth = width; + originalHeight = height; + } + refreshBtn.click(function(e) { + var tempImg = K('', document).css({ + position : 'absolute', + visibility : 'hidden', + top : 0, + left : '-1000px' + }); + tempImg.bind('load', function() { + setSize(tempImg.width(), tempImg.height()); + tempImg.remove(); + }); + K(document.body).append(tempImg); + }); + widthBox.change(function(e) { + if (originalWidth > 0) { + heightBox.val(Math.round(originalHeight / originalWidth * parseInt(this.value, 10))); + } + }); + heightBox.change(function(e) { + if (originalHeight > 0) { + widthBox.val(Math.round(originalWidth / originalHeight * parseInt(this.value, 10))); + } + }); + urlBox.val(options.imageUrl); + setSize(options.imageWidth, options.imageHeight); + titleBox.val(options.imageTitle); + alignBox.each(function() { + if (this.value === options.imageAlign) { + this.checked = true; + return false; + } + }); + if (showRemote && tabIndex === 0) { + urlBox[0].focus(); + urlBox[0].select(); + } + return dialog; + }; + self.plugin.image = { + edit : function() { + var img = self.plugin.getSelectedImage(); + self.plugin.imageDialog({ + imageUrl : img ? img.attr('data-ke-src') : 'http://', + imageWidth : img ? img.width() : '', + imageHeight : img ? img.height() : '', + imageTitle : img ? img.attr('title') : '', + imageAlign : img ? img.attr('align') : '', + showRemote : allowImageRemote, + showLocal : allowImageUpload, + tabIndex: img ? 0 : imageTabIndex, + clickFn : function(url, title, width, height, border, align) { + if (img) { + img.attr('src', url); + img.attr('data-ke-src', url); + img.attr('width', width); + img.attr('height', height); + img.attr('title', title); + img.attr('align', align); + img.attr('alt', title); + } else { + self.exec('insertimage', url, title, width, height, border, align); + } + // Bugfix: [Firefox] 上传图片后,总是出现正在加载的样式,需要延迟执行hideDialog + setTimeout(function() { + self.hideDialog().focus(); + }, 0); + } + }); + }, + 'delete' : function() { + var target = self.plugin.getSelectedImage(); + if (target.parent().name == 'a') { + target = target.parent(); + } + target.remove(); + // [IE] 删除图片后立即点击图片按钮出错 + self.addBookmark(); + } + }; + self.clickToolbar(name, self.plugin.image.edit); +}); diff --git a/static/kindeditor/plugins/image/images/align_left.gif b/static/kindeditor/plugins/image/images/align_left.gif new file mode 100644 index 0000000..ab17f56 Binary files /dev/null and b/static/kindeditor/plugins/image/images/align_left.gif differ diff --git a/static/kindeditor/plugins/image/images/align_right.gif b/static/kindeditor/plugins/image/images/align_right.gif new file mode 100644 index 0000000..e8ebe6a Binary files /dev/null and b/static/kindeditor/plugins/image/images/align_right.gif differ diff --git a/static/kindeditor/plugins/image/images/align_top.gif b/static/kindeditor/plugins/image/images/align_top.gif new file mode 100644 index 0000000..d8826a5 Binary files /dev/null and b/static/kindeditor/plugins/image/images/align_top.gif differ diff --git a/static/kindeditor/plugins/image/images/refresh.png b/static/kindeditor/plugins/image/images/refresh.png new file mode 100644 index 0000000..77e12d1 Binary files /dev/null and b/static/kindeditor/plugins/image/images/refresh.png differ diff --git a/static/kindeditor/plugins/insertfile/insertfile.js b/static/kindeditor/plugins/insertfile/insertfile.js new file mode 100644 index 0000000..b8c523e --- /dev/null +++ b/static/kindeditor/plugins/insertfile/insertfile.js @@ -0,0 +1,138 @@ +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ + +KindEditor.plugin('insertfile', function(K) { + var self = this, name = 'insertfile', + allowFileUpload = K.undef(self.allowFileUpload, true), + allowFileManager = K.undef(self.allowFileManager, false), + formatUploadUrl = K.undef(self.formatUploadUrl, true), + uploadJson = K.undef(self.uploadJson, self.basePath + 'php/upload_json.php'), + extraParams = K.undef(self.extraFileUploadParams, {}), + filePostName = K.undef(self.filePostName, 'imgFile'), + lang = self.lang(name + '.'); + self.plugin.fileDialog = function(options) { + var fileUrl = K.undef(options.fileUrl, 'http://'), + fileTitle = K.undef(options.fileTitle, ''), + clickFn = options.clickFn; + var html = [ + '
      ', + '
      ', + '', + '  ', + '  ', + '', + '', + '', + '
      ', + //title + '
      ', + '', + '
      ', + '
      ', + //form end + '', + '' + ].join(''); + var dialog = self.createDialog({ + name : name, + width : 450, + title : self.lang(name), + body : html, + yesBtn : { + name : self.lang('yes'), + click : function(e) { + var url = K.trim(urlBox.val()), + title = titleBox.val(); + if (url == 'http://' || K.invalidUrl(url)) { + alert(self.lang('invalidUrl')); + urlBox[0].focus(); + return; + } + if (K.trim(title) === '') { + title = url; + } + clickFn.call(self, url, title); + } + } + }), + div = dialog.div; + + var urlBox = K('[name="url"]', div), + viewServerBtn = K('[name="viewServer"]', div), + titleBox = K('[name="title"]', div); + + if (allowFileUpload) { + var uploadbutton = K.uploadbutton({ + button : K('.ke-upload-button', div)[0], + fieldName : filePostName, + url : K.addParam(uploadJson, 'dir=file'), + extraParams : extraParams, + afterUpload : function(data) { + dialog.hideLoading(); + if (data.error === 0) { + var url = data.url; + if (formatUploadUrl) { + url = K.formatUrl(url, 'absolute'); + } + urlBox.val(url); + if (self.afterUpload) { + self.afterUpload.call(self, url, data, name); + } + alert(self.lang('uploadSuccess')); + } else { + alert(data.message); + } + }, + afterError : function(html) { + dialog.hideLoading(); + self.errorDialog(html); + } + }); + uploadbutton.fileBox.change(function(e) { + dialog.showLoading(self.lang('uploadLoading')); + uploadbutton.submit(); + }); + } else { + K('.ke-upload-button', div).hide(); + } + if (allowFileManager) { + viewServerBtn.click(function(e) { + self.loadPlugin('filemanager', function() { + self.plugin.filemanagerDialog({ + viewType : 'LIST', + dirName : 'file', + clickFn : function(url, title) { + if (self.dialogs.length > 1) { + K('[name="url"]', div).val(url); + if (self.afterSelectFile) { + self.afterSelectFile.call(self, url); + } + self.hideDialog(); + } + } + }); + }); + }); + } else { + viewServerBtn.hide(); + } + urlBox.val(fileUrl); + titleBox.val(fileTitle); + urlBox[0].focus(); + urlBox[0].select(); + }; + self.clickToolbar(name, function() { + self.plugin.fileDialog({ + clickFn : function(url, title) { + var html = '' + title + ''; + self.insertHtml(html).hideDialog().focus(); + } + }); + }); +}); diff --git a/static/kindeditor/plugins/lineheight/lineheight.js b/static/kindeditor/plugins/lineheight/lineheight.js new file mode 100644 index 0000000..ae679d7 --- /dev/null +++ b/static/kindeditor/plugins/lineheight/lineheight.js @@ -0,0 +1,38 @@ +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ + +KindEditor.plugin('lineheight', function(K) { + var self = this, name = 'lineheight', lang = self.lang(name + '.'); + self.clickToolbar(name, function() { + var curVal = '', commonNode = self.cmd.commonNode({'*' : '.line-height'}); + if (commonNode) { + curVal = commonNode.css('line-height'); + } + var menu = self.createMenu({ + name : name, + width : 150 + }); + K.each(lang.lineHeight, function(i, row) { + K.each(row, function(key, val) { + menu.addItem({ + title : val, + checked : curVal === key, + click : function() { + self.cmd.toggle('', { + span : '.line-height=' + key + }); + self.updateState(); + self.addBookmark(); + self.hideMenu(); + } + }); + }); + }); + }); +}); diff --git a/static/kindeditor/plugins/link/link.js b/static/kindeditor/plugins/link/link.js new file mode 100644 index 0000000..352fa3c --- /dev/null +++ b/static/kindeditor/plugins/link/link.js @@ -0,0 +1,66 @@ +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ + +KindEditor.plugin('link', function(K) { + var self = this, name = 'link'; + self.plugin.link = { + edit : function() { + var lang = self.lang(name + '.'), + html = '
      ' + + //url + '
      ' + + '' + + '
      ' + + //type + '
      ' + + '' + + '' + + '
      ' + + '
      ', + dialog = self.createDialog({ + name : name, + width : 450, + title : self.lang(name), + body : html, + yesBtn : { + name : self.lang('yes'), + click : function(e) { + var url = K.trim(urlBox.val()); + if (url == 'http://' || K.invalidUrl(url)) { + alert(self.lang('invalidUrl')); + urlBox[0].focus(); + return; + } + self.exec('createlink', url, typeBox.val()).hideDialog().focus(); + } + } + }), + div = dialog.div, + urlBox = K('input[name="url"]', div), + typeBox = K('select[name="type"]', div); + urlBox.val('http://'); + typeBox[0].options[0] = new Option(lang.newWindow, '_blank'); + typeBox[0].options[1] = new Option(lang.selfWindow, ''); + self.cmd.selection(); + var a = self.plugin.getSelectedLink(); + if (a) { + self.cmd.range.selectNode(a[0]); + self.cmd.select(); + urlBox.val(a.attr('data-ke-src')); + typeBox.val(a.attr('target')); + } + urlBox[0].focus(); + urlBox[0].select(); + }, + 'delete' : function() { + self.exec('unlink', null); + } + }; + self.clickToolbar(name, self.plugin.link.edit); +}); diff --git a/static/kindeditor/plugins/map/map.html b/static/kindeditor/plugins/map/map.html new file mode 100644 index 0000000..fb27555 --- /dev/null +++ b/static/kindeditor/plugins/map/map.html @@ -0,0 +1,57 @@ + + + + + + + + + +
      + + \ No newline at end of file diff --git a/static/kindeditor/plugins/map/map.js b/static/kindeditor/plugins/map/map.js new file mode 100644 index 0000000..5290875 --- /dev/null +++ b/static/kindeditor/plugins/map/map.js @@ -0,0 +1,137 @@ +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ + +// Google Maps: http://code.google.com/apis/maps/index.html + +KindEditor.plugin('map', function(K) { + var self = this, name = 'map', lang = self.lang(name + '.'); + self.clickToolbar(name, function() { + var html = ['
      ', + '
      ', + lang.address + ' ', + '', + '', + '', + '
      ', + '
      ', + '
      '].join(''); + var dialog = self.createDialog({ + name : name, + width : 600, + title : self.lang(name), + body : html, + yesBtn : { + name : self.lang('yes'), + click : function(e) { + var geocoder = win.geocoder, + map = win.map, + center = map.getCenter().lat() + ',' + map.getCenter().lng(), + zoom = map.getZoom(), + maptype = map.getMapTypeId(), + url = 'http://maps.googleapis.com/maps/api/staticmap'; + url += '?center=' + encodeURIComponent(center); + url += '&zoom=' + encodeURIComponent(zoom); + url += '&size=558x360'; + url += '&maptype=' + encodeURIComponent(maptype); + url += '&markers=' + encodeURIComponent(center); + url += '&language=' + self.langType; + url += '&sensor=false'; + self.exec('insertimage', url).hideDialog().focus(); + } + }, + beforeRemove : function() { + searchBtn.remove(); + if (doc) { + doc.write(''); + } + iframe.remove(); + } + }); + var div = dialog.div, + addressBox = K('[name="address"]', div), + searchBtn = K('[name="searchBtn"]', div), + win, doc; + var iframeHtml = ['', + '', + '', + '', + '', + '', + '', + '
      ', + ''].join('\n'); + // TODO:用doc.write(iframeHtml)方式加载时,在IE6上第一次加载报错,暂时使用src方式 + var iframe = K(''); + function ready() { + win = iframe[0].contentWindow; + doc = K.iframeDoc(iframe); + //doc.open(); + //doc.write(iframeHtml); + //doc.close(); + } + iframe.bind('load', function() { + iframe.unbind('load'); + if (K.IE) { + ready(); + } else { + setTimeout(ready, 0); + } + }); + K('.ke-map', div).replaceWith(iframe); + // search map + searchBtn.click(function() { + win.search(addressBox.val()); + }); + }); +}); diff --git a/static/kindeditor/plugins/media/media.js b/static/kindeditor/plugins/media/media.js new file mode 100644 index 0000000..5803466 --- /dev/null +++ b/static/kindeditor/plugins/media/media.js @@ -0,0 +1,170 @@ +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ + +KindEditor.plugin('media', function(K) { + var self = this, name = 'media', lang = self.lang(name + '.'), + allowMediaUpload = K.undef(self.allowMediaUpload, true), + allowFileManager = K.undef(self.allowFileManager, false), + formatUploadUrl = K.undef(self.formatUploadUrl, true), + extraParams = K.undef(self.extraFileUploadParams, {}), + filePostName = K.undef(self.filePostName, 'imgFile'), + uploadJson = K.undef(self.uploadJson, self.basePath + 'php/upload_json.php'); + self.plugin.media = { + edit : function() { + var html = [ + '
      ', + //url + '
      ', + '', + '  ', + '  ', + '', + '', + '', + '
      ', + //width + '
      ', + '', + '', + '
      ', + //height + '
      ', + '', + '', + '
      ', + //autostart + '
      ', + '', + ' ', + '
      ', + '
      ' + ].join(''); + var dialog = self.createDialog({ + name : name, + width : 450, + height : 230, + title : self.lang(name), + body : html, + yesBtn : { + name : self.lang('yes'), + click : function(e) { + var url = K.trim(urlBox.val()), + width = widthBox.val(), + height = heightBox.val(); + if (url == 'http://' || K.invalidUrl(url)) { + alert(self.lang('invalidUrl')); + urlBox[0].focus(); + return; + } + if (!/^\d*$/.test(width)) { + alert(self.lang('invalidWidth')); + widthBox[0].focus(); + return; + } + if (!/^\d*$/.test(height)) { + alert(self.lang('invalidHeight')); + heightBox[0].focus(); + return; + } + var html = K.mediaImg(self.themesPath + 'common/blank.gif', { + src : url, + type : K.mediaType(url), + width : width, + height : height, + autostart : autostartBox[0].checked ? 'true' : 'false', + loop : 'true' + }); + self.insertHtml(html).hideDialog().focus(); + } + } + }), + div = dialog.div, + urlBox = K('[name="url"]', div), + viewServerBtn = K('[name="viewServer"]', div), + widthBox = K('[name="width"]', div), + heightBox = K('[name="height"]', div), + autostartBox = K('[name="autostart"]', div); + urlBox.val('http://'); + + if (allowMediaUpload) { + var uploadbutton = K.uploadbutton({ + button : K('.ke-upload-button', div)[0], + fieldName : filePostName, + extraParams : extraParams, + url : K.addParam(uploadJson, 'dir=media'), + afterUpload : function(data) { + dialog.hideLoading(); + if (data.error === 0) { + var url = data.url; + if (formatUploadUrl) { + url = K.formatUrl(url, 'absolute'); + } + urlBox.val(url); + if (self.afterUpload) { + self.afterUpload.call(self, url, data, name); + } + alert(self.lang('uploadSuccess')); + } else { + alert(data.message); + } + }, + afterError : function(html) { + dialog.hideLoading(); + self.errorDialog(html); + } + }); + uploadbutton.fileBox.change(function(e) { + dialog.showLoading(self.lang('uploadLoading')); + uploadbutton.submit(); + }); + } else { + K('.ke-upload-button', div).hide(); + } + + if (allowFileManager) { + viewServerBtn.click(function(e) { + self.loadPlugin('filemanager', function() { + self.plugin.filemanagerDialog({ + viewType : 'LIST', + dirName : 'media', + clickFn : function(url, title) { + if (self.dialogs.length > 1) { + K('[name="url"]', div).val(url); + if (self.afterSelectFile) { + self.afterSelectFile.call(self, url); + } + self.hideDialog(); + } + } + }); + }); + }); + } else { + viewServerBtn.hide(); + } + + var img = self.plugin.getSelectedMedia(); + if (img) { + var attrs = K.mediaAttrs(img.attr('data-ke-tag')); + urlBox.val(attrs.src); + widthBox.val(K.removeUnit(img.css('width')) || attrs.width || 0); + heightBox.val(K.removeUnit(img.css('height')) || attrs.height || 0); + autostartBox[0].checked = (attrs.autostart === 'true'); + } + urlBox[0].focus(); + urlBox[0].select(); + }, + 'delete' : function() { + self.plugin.getSelectedMedia().remove(); + // [IE] 删除图片后立即点击图片按钮出错 + self.addBookmark(); + } + }; + self.clickToolbar(name, self.plugin.media.edit); +}); diff --git a/static/kindeditor/plugins/multiimage/images/image.png b/static/kindeditor/plugins/multiimage/images/image.png new file mode 100644 index 0000000..fe79cf0 Binary files /dev/null and b/static/kindeditor/plugins/multiimage/images/image.png differ diff --git a/static/kindeditor/plugins/multiimage/images/select-files-en.png b/static/kindeditor/plugins/multiimage/images/select-files-en.png new file mode 100644 index 0000000..a926a6e Binary files /dev/null and b/static/kindeditor/plugins/multiimage/images/select-files-en.png differ diff --git a/static/kindeditor/plugins/multiimage/images/select-files-zh-CN.png b/static/kindeditor/plugins/multiimage/images/select-files-zh-CN.png new file mode 100644 index 0000000..5a31d36 Binary files /dev/null and b/static/kindeditor/plugins/multiimage/images/select-files-zh-CN.png differ diff --git a/static/kindeditor/plugins/multiimage/images/swfupload.swf b/static/kindeditor/plugins/multiimage/images/swfupload.swf new file mode 100644 index 0000000..e3f7670 Binary files /dev/null and b/static/kindeditor/plugins/multiimage/images/swfupload.swf differ diff --git a/static/kindeditor/plugins/multiimage/multiimage.js b/static/kindeditor/plugins/multiimage/multiimage.js new file mode 100644 index 0000000..ac5576c --- /dev/null +++ b/static/kindeditor/plugins/multiimage/multiimage.js @@ -0,0 +1,1385 @@ +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ + + +(function(K) { + +function KSWFUpload(options) { + this.init(options); +} +K.extend(KSWFUpload, { + init : function(options) { + var self = this; + options.afterError = options.afterError || function(str) { + alert(str); + }; + self.options = options; + self.progressbars = {}; + // template + self.div = K(options.container).html([ + '
      ', + '
      ', + '
      ', + '', + '
      ', + '
      ' + options.uploadDesc + '
      ', + '', + '', + '', + '
      ', + '
      ', + '
      ' + ].join('')); + self.bodyDiv = K('.ke-swfupload-body', self.div); + + function showError(itemDiv, msg) { + K('.ke-status > div', itemDiv).hide(); + K('.ke-message', itemDiv).addClass('ke-error').show().html(K.escape(msg)); + } + + var settings = { + debug : false, + upload_url : options.uploadUrl, + flash_url : options.flashUrl, + file_post_name : options.filePostName, + button_placeholder : K('.ke-swfupload-button > input', self.div)[0], + button_image_url: options.buttonImageUrl, + button_width: options.buttonWidth, + button_height: options.buttonHeight, + button_cursor : SWFUpload.CURSOR.HAND, + file_types : options.fileTypes, + file_types_description : options.fileTypesDesc, + file_upload_limit : options.fileUploadLimit, + file_size_limit : options.fileSizeLimit, + post_params : options.postParams, + file_queued_handler : function(file) { + file.url = self.options.fileIconUrl; + self.appendFile(file); + }, + file_queue_error_handler : function(file, errorCode, message) { + var errorName = ''; + switch (errorCode) { + case SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED: + errorName = options.queueLimitExceeded; + break; + case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT: + errorName = options.fileExceedsSizeLimit; + break; + case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE: + errorName = options.zeroByteFile; + break; + case SWFUpload.QUEUE_ERROR.INVALID_FILETYPE: + errorName = options.invalidFiletype; + break; + default: + errorName = options.unknownError; + break; + } + K.DEBUG && alert(errorName); + }, + upload_start_handler : function(file) { + var self = this; + var itemDiv = K('div[data-id="' + file.id + '"]', self.bodyDiv); + K('.ke-status > div', itemDiv).hide(); + K('.ke-progressbar', itemDiv).show(); + }, + upload_progress_handler : function(file, bytesLoaded, bytesTotal) { + var percent = Math.round(bytesLoaded * 100 / bytesTotal); + var progressbar = self.progressbars[file.id]; + progressbar.bar.css('width', Math.round(percent * 80 / 100) + 'px'); + progressbar.percent.html(percent + '%'); + }, + upload_error_handler : function(file, errorCode, message) { + if (file && file.filestatus == SWFUpload.FILE_STATUS.ERROR) { + var itemDiv = K('div[data-id="' + file.id + '"]', self.bodyDiv).eq(0); + showError(itemDiv, self.options.errorMessage); + } + }, + upload_success_handler : function(file, serverData) { + var itemDiv = K('div[data-id="' + file.id + '"]', self.bodyDiv).eq(0); + var data = {}; + try { + data = K.json(serverData); + } catch (e) { + self.options.afterError.call(this, '' + serverData + ''); + } + if (data.error !== 0) { + showError(itemDiv, K.DEBUG ? data.message : self.options.errorMessage); + return; + } + file.url = data.url; + K('.ke-img', itemDiv).attr('src', file.url).attr('data-status', file.filestatus).data('data', data); + K('.ke-status > div', itemDiv).hide(); + } + }; + self.swfu = new SWFUpload(settings); + + K('.ke-swfupload-startupload input', self.div).click(function() { + self.swfu.startUpload(); + }); + }, + getUrlList : function() { + var list = []; + K('.ke-img', self.bodyDiv).each(function() { + var img = K(this); + var status = img.attr('data-status'); + if (status == SWFUpload.FILE_STATUS.COMPLETE) { + list.push(img.data('data')); + } + }); + return list; + }, + removeFile : function(fileId) { + var self = this; + self.swfu.cancelUpload(fileId); + var itemDiv = K('div[data-id="' + fileId + '"]', self.bodyDiv); + K('.ke-photo', itemDiv).unbind(); + K('.ke-delete', itemDiv).unbind(); + itemDiv.remove(); + }, + removeFiles : function() { + var self = this; + K('.ke-item', self.bodyDiv).each(function() { + self.removeFile(K(this).attr('data-id')); + }); + }, + appendFile : function(file) { + var self = this; + var itemDiv = K('
      '); + self.bodyDiv.append(itemDiv); + var photoDiv = K('
      ') + .mouseover(function(e) { + K(this).addClass('ke-on'); + }) + .mouseout(function(e) { + K(this).removeClass('ke-on'); + }); + itemDiv.append(photoDiv); + + var img = K('' + file.name + ''); + photoDiv.append(img); + K('').appendTo(photoDiv).click(function() { + self.removeFile(file.id); + }); + var statusDiv = K('
      ').appendTo(photoDiv); + // progressbar + K(['
      ', + '
      ', + '
      0%
      '].join('')).hide().appendTo(statusDiv); + // message + K('
      ' + self.options.pendingMessage + '
      ').appendTo(statusDiv); + + itemDiv.append('
      ' + file.name + '
      '); + + self.progressbars[file.id] = { + bar : K('.ke-progressbar-bar-inner', photoDiv), + percent : K('.ke-progressbar-percent', photoDiv) + }; + }, + remove : function() { + this.removeFiles(); + this.swfu.destroy(); + this.div.html(''); + } +}); + +K.swfupload = function(element, options) { + return new KSWFUpload(element, options); +}; + +})(KindEditor); + +KindEditor.plugin('multiimage', function(K) { + var self = this, name = 'multiimage', + formatUploadUrl = K.undef(self.formatUploadUrl, true), + uploadJson = K.undef(self.uploadJson, self.basePath + 'php/upload_json.php'), + imgPath = self.pluginsPath + 'multiimage/images/', + imageSizeLimit = K.undef(self.imageSizeLimit, '1MB'), + imageFileTypes = K.undef(self.imageFileTypes, '*.jpg;*.gif;*.png'), + imageUploadLimit = K.undef(self.imageUploadLimit, 20), + filePostName = K.undef(self.filePostName, 'imgFile'), + lang = self.lang(name + '.'); + + self.plugin.multiImageDialog = function(options) { + var clickFn = options.clickFn, + uploadDesc = K.tmpl(lang.uploadDesc, {uploadLimit : imageUploadLimit, sizeLimit : imageSizeLimit}); + var html = [ + '
      ', + '
      ', + '
      ', + '
      ' + ].join(''); + var dialog = self.createDialog({ + name : name, + width : 650, + height : 510, + title : self.lang(name), + body : html, + previewBtn : { + name : lang.insertAll, + click : function(e) { + clickFn.call(self, swfupload.getUrlList()); + } + }, + yesBtn : { + name : lang.clearAll, + click : function(e) { + swfupload.removeFiles(); + } + }, + beforeRemove : function() { + // IE9 bugfix: https://github.com/kindsoft/kindeditor/issues/72 + if (!K.IE || K.V <= 8) { + swfupload.remove(); + } + } + }), + div = dialog.div; + + var swfupload = K.swfupload({ + container : K('.swfupload', div), + buttonImageUrl : imgPath + (self.langType == 'zh-CN' ? 'select-files-zh-CN.png' : 'select-files-en.png'), + buttonWidth : self.langType == 'zh-CN' ? 72 : 88, + buttonHeight : 23, + fileIconUrl : imgPath + 'image.png', + uploadDesc : uploadDesc, + startButtonValue : lang.startUpload, + uploadUrl : K.addParam(uploadJson, 'dir=image'), + flashUrl : imgPath + 'swfupload.swf', + filePostName : filePostName, + fileTypes : '*.jpg;*.jpeg;*.gif;*.png;*.bmp', + fileTypesDesc : 'Image Files', + fileUploadLimit : imageUploadLimit, + fileSizeLimit : imageSizeLimit, + postParams : K.undef(self.extraFileUploadParams, {}), + queueLimitExceeded : lang.queueLimitExceeded, + fileExceedsSizeLimit : lang.fileExceedsSizeLimit, + zeroByteFile : lang.zeroByteFile, + invalidFiletype : lang.invalidFiletype, + unknownError : lang.unknownError, + pendingMessage : lang.pending, + errorMessage : lang.uploadError, + afterError : function(html) { + self.errorDialog(html); + } + }); + + return dialog; + }; + self.clickToolbar(name, function() { + self.plugin.multiImageDialog({ + clickFn : function (urlList) { + if (urlList.length === 0) { + return; + } + K.each(urlList, function(i, data) { + if (self.afterUpload) { + self.afterUpload.call(self, data.url, data, 'multiimage'); + } + self.exec('insertimage', data.url, data.title, data.width, data.height, data.border, data.align); + }); + // Bugfix: [Firefox] 上传图片后,总是出现正在加载的样式,需要延迟执行hideDialog + setTimeout(function() { + self.hideDialog().focus(); + }, 0); + } + }); + }); +}); + + +/** + * SWFUpload: http://www.swfupload.org, http://swfupload.googlecode.com + * + * mmSWFUpload 1.0: Flash upload dialog - http://profandesign.se/swfupload/, http://www.vinterwebb.se/ + * + * SWFUpload is (c) 2006-2007 Lars Huring, Olov Nilz閚 and Mammon Media and is released under the MIT License: + * http://www.opensource.org/licenses/mit-license.php + * + * SWFUpload 2 is (c) 2007-2008 Jake Roberts and is released under the MIT License: + * http://www.opensource.org/licenses/mit-license.php + * + */ + + +/* ******************* */ +/* Constructor & Init */ +/* ******************* */ + +(function() { + +window.SWFUpload = function (settings) { + this.initSWFUpload(settings); +}; + +SWFUpload.prototype.initSWFUpload = function (settings) { + try { + this.customSettings = {}; // A container where developers can place their own settings associated with this instance. + this.settings = settings; + this.eventQueue = []; + this.movieName = "KindEditor_SWFUpload_" + SWFUpload.movieCount++; + this.movieElement = null; + + + // Setup global control tracking + SWFUpload.instances[this.movieName] = this; + + // Load the settings. Load the Flash movie. + this.initSettings(); + this.loadFlash(); + this.displayDebugInfo(); + } catch (ex) { + delete SWFUpload.instances[this.movieName]; + throw ex; + } +}; + +/* *************** */ +/* Static Members */ +/* *************** */ +SWFUpload.instances = {}; +SWFUpload.movieCount = 0; +SWFUpload.version = "2.2.0 2009-03-25"; +SWFUpload.QUEUE_ERROR = { + QUEUE_LIMIT_EXCEEDED : -100, + FILE_EXCEEDS_SIZE_LIMIT : -110, + ZERO_BYTE_FILE : -120, + INVALID_FILETYPE : -130 +}; +SWFUpload.UPLOAD_ERROR = { + HTTP_ERROR : -200, + MISSING_UPLOAD_URL : -210, + IO_ERROR : -220, + SECURITY_ERROR : -230, + UPLOAD_LIMIT_EXCEEDED : -240, + UPLOAD_FAILED : -250, + SPECIFIED_FILE_ID_NOT_FOUND : -260, + FILE_VALIDATION_FAILED : -270, + FILE_CANCELLED : -280, + UPLOAD_STOPPED : -290 +}; +SWFUpload.FILE_STATUS = { + QUEUED : -1, + IN_PROGRESS : -2, + ERROR : -3, + COMPLETE : -4, + CANCELLED : -5 +}; +SWFUpload.BUTTON_ACTION = { + SELECT_FILE : -100, + SELECT_FILES : -110, + START_UPLOAD : -120 +}; +SWFUpload.CURSOR = { + ARROW : -1, + HAND : -2 +}; +SWFUpload.WINDOW_MODE = { + WINDOW : "window", + TRANSPARENT : "transparent", + OPAQUE : "opaque" +}; + +// Private: takes a URL, determines if it is relative and converts to an absolute URL +// using the current site. Only processes the URL if it can, otherwise returns the URL untouched +SWFUpload.completeURL = function(url) { + if (typeof(url) !== "string" || url.match(/^https?:\/\//i) || url.match(/^\//)) { + return url; + } + + var currentURL = window.location.protocol + "//" + window.location.hostname + (window.location.port ? ":" + window.location.port : ""); + + var indexSlash = window.location.pathname.lastIndexOf("/"); + var path; + if (indexSlash <= 0) { + path = "/"; + } else { + path = window.location.pathname.substr(0, indexSlash) + "/"; + } + + return /*currentURL +*/ path + url; + +}; + + +/* ******************** */ +/* Instance Members */ +/* ******************** */ + +// Private: initSettings ensures that all the +// settings are set, getting a default value if one was not assigned. +SWFUpload.prototype.initSettings = function () { + this.ensureDefault = function (settingName, defaultValue) { + this.settings[settingName] = (this.settings[settingName] == undefined) ? defaultValue : this.settings[settingName]; + }; + + // Upload backend settings + this.ensureDefault("upload_url", ""); + this.ensureDefault("preserve_relative_urls", false); + this.ensureDefault("file_post_name", "Filedata"); + this.ensureDefault("post_params", {}); + this.ensureDefault("use_query_string", false); + this.ensureDefault("requeue_on_error", false); + this.ensureDefault("http_success", []); + this.ensureDefault("assume_success_timeout", 0); + + // File Settings + this.ensureDefault("file_types", "*.*"); + this.ensureDefault("file_types_description", "All Files"); + this.ensureDefault("file_size_limit", 0); // Default zero means "unlimited" + this.ensureDefault("file_upload_limit", 0); + this.ensureDefault("file_queue_limit", 0); + + // Flash Settings + this.ensureDefault("flash_url", "swfupload.swf"); + this.ensureDefault("prevent_swf_caching", true); + + // Button Settings + this.ensureDefault("button_image_url", ""); + this.ensureDefault("button_width", 1); + this.ensureDefault("button_height", 1); + this.ensureDefault("button_text", ""); + this.ensureDefault("button_text_style", "color: #000000; font-size: 16pt;"); + this.ensureDefault("button_text_top_padding", 0); + this.ensureDefault("button_text_left_padding", 0); + this.ensureDefault("button_action", SWFUpload.BUTTON_ACTION.SELECT_FILES); + this.ensureDefault("button_disabled", false); + this.ensureDefault("button_placeholder_id", ""); + this.ensureDefault("button_placeholder", null); + this.ensureDefault("button_cursor", SWFUpload.CURSOR.ARROW); + this.ensureDefault("button_window_mode", SWFUpload.WINDOW_MODE.WINDOW); + + // Debug Settings + this.ensureDefault("debug", false); + this.settings.debug_enabled = this.settings.debug; // Here to maintain v2 API + + // Event Handlers + this.settings.return_upload_start_handler = this.returnUploadStart; + this.ensureDefault("swfupload_loaded_handler", null); + this.ensureDefault("file_dialog_start_handler", null); + this.ensureDefault("file_queued_handler", null); + this.ensureDefault("file_queue_error_handler", null); + this.ensureDefault("file_dialog_complete_handler", null); + + this.ensureDefault("upload_start_handler", null); + this.ensureDefault("upload_progress_handler", null); + this.ensureDefault("upload_error_handler", null); + this.ensureDefault("upload_success_handler", null); + this.ensureDefault("upload_complete_handler", null); + + this.ensureDefault("debug_handler", this.debugMessage); + + this.ensureDefault("custom_settings", {}); + + // Other settings + this.customSettings = this.settings.custom_settings; + + // Update the flash url if needed + if (!!this.settings.prevent_swf_caching) { + this.settings.flash_url = this.settings.flash_url + (this.settings.flash_url.indexOf("?") < 0 ? "?" : "&") + "preventswfcaching=" + new Date().getTime(); + } + + if (!this.settings.preserve_relative_urls) { + //this.settings.flash_url = SWFUpload.completeURL(this.settings.flash_url); // Don't need to do this one since flash doesn't look at it + this.settings.upload_url = SWFUpload.completeURL(this.settings.upload_url); + this.settings.button_image_url = SWFUpload.completeURL(this.settings.button_image_url); + } + + delete this.ensureDefault; +}; + +// Private: loadFlash replaces the button_placeholder element with the flash movie. +SWFUpload.prototype.loadFlash = function () { + var targetElement, tempParent; + + // Make sure an element with the ID we are going to use doesn't already exist + if (document.getElementById(this.movieName) !== null) { + throw "ID " + this.movieName + " is already in use. The Flash Object could not be added"; + } + + // Get the element where we will be placing the flash movie + targetElement = document.getElementById(this.settings.button_placeholder_id) || this.settings.button_placeholder; + + if (targetElement == undefined) { + throw "Could not find the placeholder element: " + this.settings.button_placeholder_id; + } + + // Append the container and load the flash + tempParent = document.createElement("div"); + tempParent.innerHTML = this.getFlashHTML(); // Using innerHTML is non-standard but the only sensible way to dynamically add Flash in IE (and maybe other browsers) + targetElement.parentNode.replaceChild(tempParent.firstChild, targetElement); + + // Fix IE Flash/Form bug + if (window[this.movieName] == undefined) { + window[this.movieName] = this.getMovieElement(); + } + +}; + +// Private: getFlashHTML generates the object tag needed to embed the flash in to the document +SWFUpload.prototype.getFlashHTML = function () { + // Flash Satay object syntax: http://www.alistapart.com/articles/flashsatay + // Fix bug for IE9 + // http://www.kindsoft.net/view.php?bbsid=7&postid=5825&pagenum=1 + var classid = ''; + if (KindEditor.IE && KindEditor.V > 8) { + classid = ' classid = "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"'; + } + return ['', + '', + '', + '', + '', + '', + '', + ''].join(""); +}; + +// Private: getFlashVars builds the parameter string that will be passed +// to flash in the flashvars param. +SWFUpload.prototype.getFlashVars = function () { + // Build a string from the post param object + var paramString = this.buildParamString(); + var httpSuccessString = this.settings.http_success.join(","); + + // Build the parameter string + return ["movieName=", encodeURIComponent(this.movieName), + "&uploadURL=", encodeURIComponent(this.settings.upload_url), + "&useQueryString=", encodeURIComponent(this.settings.use_query_string), + "&requeueOnError=", encodeURIComponent(this.settings.requeue_on_error), + "&httpSuccess=", encodeURIComponent(httpSuccessString), + "&assumeSuccessTimeout=", encodeURIComponent(this.settings.assume_success_timeout), + "&params=", encodeURIComponent(paramString), + "&filePostName=", encodeURIComponent(this.settings.file_post_name), + "&fileTypes=", encodeURIComponent(this.settings.file_types), + "&fileTypesDescription=", encodeURIComponent(this.settings.file_types_description), + "&fileSizeLimit=", encodeURIComponent(this.settings.file_size_limit), + "&fileUploadLimit=", encodeURIComponent(this.settings.file_upload_limit), + "&fileQueueLimit=", encodeURIComponent(this.settings.file_queue_limit), + "&debugEnabled=", encodeURIComponent(this.settings.debug_enabled), + "&buttonImageURL=", encodeURIComponent(this.settings.button_image_url), + "&buttonWidth=", encodeURIComponent(this.settings.button_width), + "&buttonHeight=", encodeURIComponent(this.settings.button_height), + "&buttonText=", encodeURIComponent(this.settings.button_text), + "&buttonTextTopPadding=", encodeURIComponent(this.settings.button_text_top_padding), + "&buttonTextLeftPadding=", encodeURIComponent(this.settings.button_text_left_padding), + "&buttonTextStyle=", encodeURIComponent(this.settings.button_text_style), + "&buttonAction=", encodeURIComponent(this.settings.button_action), + "&buttonDisabled=", encodeURIComponent(this.settings.button_disabled), + "&buttonCursor=", encodeURIComponent(this.settings.button_cursor) + ].join(""); +}; + +// Public: getMovieElement retrieves the DOM reference to the Flash element added by SWFUpload +// The element is cached after the first lookup +SWFUpload.prototype.getMovieElement = function () { + if (this.movieElement == undefined) { + this.movieElement = document.getElementById(this.movieName); + } + + if (this.movieElement === null) { + throw "Could not find Flash element"; + } + + return this.movieElement; +}; + +// Private: buildParamString takes the name/value pairs in the post_params setting object +// and joins them up in to a string formatted "name=value&name=value" +SWFUpload.prototype.buildParamString = function () { + var postParams = this.settings.post_params; + var paramStringPairs = []; + + if (typeof(postParams) === "object") { + for (var name in postParams) { + if (postParams.hasOwnProperty(name)) { + paramStringPairs.push(encodeURIComponent(name.toString()) + "=" + encodeURIComponent(postParams[name].toString())); + } + } + } + + return paramStringPairs.join("&"); +}; + +// Public: Used to remove a SWFUpload instance from the page. This method strives to remove +// all references to the SWF, and other objects so memory is properly freed. +// Returns true if everything was destroyed. Returns a false if a failure occurs leaving SWFUpload in an inconsistant state. +// Credits: Major improvements provided by steffen +SWFUpload.prototype.destroy = function () { + try { + // Make sure Flash is done before we try to remove it + this.cancelUpload(null, false); + + + // Remove the SWFUpload DOM nodes + var movieElement = null; + movieElement = this.getMovieElement(); + + if (movieElement && typeof(movieElement.CallFunction) === "unknown") { // We only want to do this in IE + // Loop through all the movie's properties and remove all function references (DOM/JS IE 6/7 memory leak workaround) + for (var i in movieElement) { + try { + if (typeof(movieElement[i]) === "function") { + movieElement[i] = null; + } + } catch (ex1) {} + } + + // Remove the Movie Element from the page + try { + movieElement.parentNode.removeChild(movieElement); + } catch (ex) {} + } + + // Remove IE form fix reference + window[this.movieName] = null; + + // Destroy other references + SWFUpload.instances[this.movieName] = null; + delete SWFUpload.instances[this.movieName]; + + this.movieElement = null; + this.settings = null; + this.customSettings = null; + this.eventQueue = null; + this.movieName = null; + + + return true; + } catch (ex2) { + return false; + } +}; + + +// Public: displayDebugInfo prints out settings and configuration +// information about this SWFUpload instance. +// This function (and any references to it) can be deleted when placing +// SWFUpload in production. +SWFUpload.prototype.displayDebugInfo = function () { + this.debug( + [ + "---SWFUpload Instance Info---\n", + "Version: ", SWFUpload.version, "\n", + "Movie Name: ", this.movieName, "\n", + "Settings:\n", + "\t", "upload_url: ", this.settings.upload_url, "\n", + "\t", "flash_url: ", this.settings.flash_url, "\n", + "\t", "use_query_string: ", this.settings.use_query_string.toString(), "\n", + "\t", "requeue_on_error: ", this.settings.requeue_on_error.toString(), "\n", + "\t", "http_success: ", this.settings.http_success.join(", "), "\n", + "\t", "assume_success_timeout: ", this.settings.assume_success_timeout, "\n", + "\t", "file_post_name: ", this.settings.file_post_name, "\n", + "\t", "post_params: ", this.settings.post_params.toString(), "\n", + "\t", "file_types: ", this.settings.file_types, "\n", + "\t", "file_types_description: ", this.settings.file_types_description, "\n", + "\t", "file_size_limit: ", this.settings.file_size_limit, "\n", + "\t", "file_upload_limit: ", this.settings.file_upload_limit, "\n", + "\t", "file_queue_limit: ", this.settings.file_queue_limit, "\n", + "\t", "debug: ", this.settings.debug.toString(), "\n", + + "\t", "prevent_swf_caching: ", this.settings.prevent_swf_caching.toString(), "\n", + + "\t", "button_placeholder_id: ", this.settings.button_placeholder_id.toString(), "\n", + "\t", "button_placeholder: ", (this.settings.button_placeholder ? "Set" : "Not Set"), "\n", + "\t", "button_image_url: ", this.settings.button_image_url.toString(), "\n", + "\t", "button_width: ", this.settings.button_width.toString(), "\n", + "\t", "button_height: ", this.settings.button_height.toString(), "\n", + "\t", "button_text: ", this.settings.button_text.toString(), "\n", + "\t", "button_text_style: ", this.settings.button_text_style.toString(), "\n", + "\t", "button_text_top_padding: ", this.settings.button_text_top_padding.toString(), "\n", + "\t", "button_text_left_padding: ", this.settings.button_text_left_padding.toString(), "\n", + "\t", "button_action: ", this.settings.button_action.toString(), "\n", + "\t", "button_disabled: ", this.settings.button_disabled.toString(), "\n", + + "\t", "custom_settings: ", this.settings.custom_settings.toString(), "\n", + "Event Handlers:\n", + "\t", "swfupload_loaded_handler assigned: ", (typeof this.settings.swfupload_loaded_handler === "function").toString(), "\n", + "\t", "file_dialog_start_handler assigned: ", (typeof this.settings.file_dialog_start_handler === "function").toString(), "\n", + "\t", "file_queued_handler assigned: ", (typeof this.settings.file_queued_handler === "function").toString(), "\n", + "\t", "file_queue_error_handler assigned: ", (typeof this.settings.file_queue_error_handler === "function").toString(), "\n", + "\t", "upload_start_handler assigned: ", (typeof this.settings.upload_start_handler === "function").toString(), "\n", + "\t", "upload_progress_handler assigned: ", (typeof this.settings.upload_progress_handler === "function").toString(), "\n", + "\t", "upload_error_handler assigned: ", (typeof this.settings.upload_error_handler === "function").toString(), "\n", + "\t", "upload_success_handler assigned: ", (typeof this.settings.upload_success_handler === "function").toString(), "\n", + "\t", "upload_complete_handler assigned: ", (typeof this.settings.upload_complete_handler === "function").toString(), "\n", + "\t", "debug_handler assigned: ", (typeof this.settings.debug_handler === "function").toString(), "\n" + ].join("") + ); +}; + +/* Note: addSetting and getSetting are no longer used by SWFUpload but are included + the maintain v2 API compatibility +*/ +// Public: (Deprecated) addSetting adds a setting value. If the value given is undefined or null then the default_value is used. +SWFUpload.prototype.addSetting = function (name, value, default_value) { + if (value == undefined) { + return (this.settings[name] = default_value); + } else { + return (this.settings[name] = value); + } +}; + +// Public: (Deprecated) getSetting gets a setting. Returns an empty string if the setting was not found. +SWFUpload.prototype.getSetting = function (name) { + if (this.settings[name] != undefined) { + return this.settings[name]; + } + + return ""; +}; + + + +// Private: callFlash handles function calls made to the Flash element. +// Calls are made with a setTimeout for some functions to work around +// bugs in the ExternalInterface library. +SWFUpload.prototype.callFlash = function (functionName, argumentArray) { + argumentArray = argumentArray || []; + + var movieElement = this.getMovieElement(); + var returnValue, returnString; + + // Flash's method if calling ExternalInterface methods (code adapted from MooTools). + try { + returnString = movieElement.CallFunction('' + __flash__argumentsToXML(argumentArray, 0) + ''); + returnValue = eval(returnString); + } catch (ex) { + throw "Call to " + functionName + " failed"; + } + + // Unescape file post param values + if (returnValue != undefined && typeof returnValue.post === "object") { + returnValue = this.unescapeFilePostParams(returnValue); + } + + return returnValue; +}; + +/* ***************************** + -- Flash control methods -- + Your UI should use these + to operate SWFUpload + ***************************** */ + +// WARNING: this function does not work in Flash Player 10 +// Public: selectFile causes a File Selection Dialog window to appear. This +// dialog only allows 1 file to be selected. +SWFUpload.prototype.selectFile = function () { + this.callFlash("SelectFile"); +}; + +// WARNING: this function does not work in Flash Player 10 +// Public: selectFiles causes a File Selection Dialog window to appear/ This +// dialog allows the user to select any number of files +// Flash Bug Warning: Flash limits the number of selectable files based on the combined length of the file names. +// If the selection name length is too long the dialog will fail in an unpredictable manner. There is no work-around +// for this bug. +SWFUpload.prototype.selectFiles = function () { + this.callFlash("SelectFiles"); +}; + + +// Public: startUpload starts uploading the first file in the queue unless +// the optional parameter 'fileID' specifies the ID +SWFUpload.prototype.startUpload = function (fileID) { + this.callFlash("StartUpload", [fileID]); +}; + +// Public: cancelUpload cancels any queued file. The fileID parameter may be the file ID or index. +// If you do not specify a fileID the current uploading file or first file in the queue is cancelled. +// If you do not want the uploadError event to trigger you can specify false for the triggerErrorEvent parameter. +SWFUpload.prototype.cancelUpload = function (fileID, triggerErrorEvent) { + if (triggerErrorEvent !== false) { + triggerErrorEvent = true; + } + this.callFlash("CancelUpload", [fileID, triggerErrorEvent]); +}; + +// Public: stopUpload stops the current upload and requeues the file at the beginning of the queue. +// If nothing is currently uploading then nothing happens. +SWFUpload.prototype.stopUpload = function () { + this.callFlash("StopUpload"); +}; + +/* ************************ + * Settings methods + * These methods change the SWFUpload settings. + * SWFUpload settings should not be changed directly on the settings object + * since many of the settings need to be passed to Flash in order to take + * effect. + * *********************** */ + +// Public: getStats gets the file statistics object. +SWFUpload.prototype.getStats = function () { + return this.callFlash("GetStats"); +}; + +// Public: setStats changes the SWFUpload statistics. You shouldn't need to +// change the statistics but you can. Changing the statistics does not +// affect SWFUpload accept for the successful_uploads count which is used +// by the upload_limit setting to determine how many files the user may upload. +SWFUpload.prototype.setStats = function (statsObject) { + this.callFlash("SetStats", [statsObject]); +}; + +// Public: getFile retrieves a File object by ID or Index. If the file is +// not found then 'null' is returned. +SWFUpload.prototype.getFile = function (fileID) { + if (typeof(fileID) === "number") { + return this.callFlash("GetFileByIndex", [fileID]); + } else { + return this.callFlash("GetFile", [fileID]); + } +}; + +// Public: addFileParam sets a name/value pair that will be posted with the +// file specified by the Files ID. If the name already exists then the +// exiting value will be overwritten. +SWFUpload.prototype.addFileParam = function (fileID, name, value) { + return this.callFlash("AddFileParam", [fileID, name, value]); +}; + +// Public: removeFileParam removes a previously set (by addFileParam) name/value +// pair from the specified file. +SWFUpload.prototype.removeFileParam = function (fileID, name) { + this.callFlash("RemoveFileParam", [fileID, name]); +}; + +// Public: setUploadUrl changes the upload_url setting. +SWFUpload.prototype.setUploadURL = function (url) { + this.settings.upload_url = url.toString(); + this.callFlash("SetUploadURL", [url]); +}; + +// Public: setPostParams changes the post_params setting +SWFUpload.prototype.setPostParams = function (paramsObject) { + this.settings.post_params = paramsObject; + this.callFlash("SetPostParams", [paramsObject]); +}; + +// Public: addPostParam adds post name/value pair. Each name can have only one value. +SWFUpload.prototype.addPostParam = function (name, value) { + this.settings.post_params[name] = value; + this.callFlash("SetPostParams", [this.settings.post_params]); +}; + +// Public: removePostParam deletes post name/value pair. +SWFUpload.prototype.removePostParam = function (name) { + delete this.settings.post_params[name]; + this.callFlash("SetPostParams", [this.settings.post_params]); +}; + +// Public: setFileTypes changes the file_types setting and the file_types_description setting +SWFUpload.prototype.setFileTypes = function (types, description) { + this.settings.file_types = types; + this.settings.file_types_description = description; + this.callFlash("SetFileTypes", [types, description]); +}; + +// Public: setFileSizeLimit changes the file_size_limit setting +SWFUpload.prototype.setFileSizeLimit = function (fileSizeLimit) { + this.settings.file_size_limit = fileSizeLimit; + this.callFlash("SetFileSizeLimit", [fileSizeLimit]); +}; + +// Public: setFileUploadLimit changes the file_upload_limit setting +SWFUpload.prototype.setFileUploadLimit = function (fileUploadLimit) { + this.settings.file_upload_limit = fileUploadLimit; + this.callFlash("SetFileUploadLimit", [fileUploadLimit]); +}; + +// Public: setFileQueueLimit changes the file_queue_limit setting +SWFUpload.prototype.setFileQueueLimit = function (fileQueueLimit) { + this.settings.file_queue_limit = fileQueueLimit; + this.callFlash("SetFileQueueLimit", [fileQueueLimit]); +}; + +// Public: setFilePostName changes the file_post_name setting +SWFUpload.prototype.setFilePostName = function (filePostName) { + this.settings.file_post_name = filePostName; + this.callFlash("SetFilePostName", [filePostName]); +}; + +// Public: setUseQueryString changes the use_query_string setting +SWFUpload.prototype.setUseQueryString = function (useQueryString) { + this.settings.use_query_string = useQueryString; + this.callFlash("SetUseQueryString", [useQueryString]); +}; + +// Public: setRequeueOnError changes the requeue_on_error setting +SWFUpload.prototype.setRequeueOnError = function (requeueOnError) { + this.settings.requeue_on_error = requeueOnError; + this.callFlash("SetRequeueOnError", [requeueOnError]); +}; + +// Public: setHTTPSuccess changes the http_success setting +SWFUpload.prototype.setHTTPSuccess = function (http_status_codes) { + if (typeof http_status_codes === "string") { + http_status_codes = http_status_codes.replace(" ", "").split(","); + } + + this.settings.http_success = http_status_codes; + this.callFlash("SetHTTPSuccess", [http_status_codes]); +}; + +// Public: setHTTPSuccess changes the http_success setting +SWFUpload.prototype.setAssumeSuccessTimeout = function (timeout_seconds) { + this.settings.assume_success_timeout = timeout_seconds; + this.callFlash("SetAssumeSuccessTimeout", [timeout_seconds]); +}; + +// Public: setDebugEnabled changes the debug_enabled setting +SWFUpload.prototype.setDebugEnabled = function (debugEnabled) { + this.settings.debug_enabled = debugEnabled; + this.callFlash("SetDebugEnabled", [debugEnabled]); +}; + +// Public: setButtonImageURL loads a button image sprite +SWFUpload.prototype.setButtonImageURL = function (buttonImageURL) { + if (buttonImageURL == undefined) { + buttonImageURL = ""; + } + + this.settings.button_image_url = buttonImageURL; + this.callFlash("SetButtonImageURL", [buttonImageURL]); +}; + +// Public: setButtonDimensions resizes the Flash Movie and button +SWFUpload.prototype.setButtonDimensions = function (width, height) { + this.settings.button_width = width; + this.settings.button_height = height; + + var movie = this.getMovieElement(); + if (movie != undefined) { + movie.style.width = width + "px"; + movie.style.height = height + "px"; + } + + this.callFlash("SetButtonDimensions", [width, height]); +}; +// Public: setButtonText Changes the text overlaid on the button +SWFUpload.prototype.setButtonText = function (html) { + this.settings.button_text = html; + this.callFlash("SetButtonText", [html]); +}; +// Public: setButtonTextPadding changes the top and left padding of the text overlay +SWFUpload.prototype.setButtonTextPadding = function (left, top) { + this.settings.button_text_top_padding = top; + this.settings.button_text_left_padding = left; + this.callFlash("SetButtonTextPadding", [left, top]); +}; + +// Public: setButtonTextStyle changes the CSS used to style the HTML/Text overlaid on the button +SWFUpload.prototype.setButtonTextStyle = function (css) { + this.settings.button_text_style = css; + this.callFlash("SetButtonTextStyle", [css]); +}; +// Public: setButtonDisabled disables/enables the button +SWFUpload.prototype.setButtonDisabled = function (isDisabled) { + this.settings.button_disabled = isDisabled; + this.callFlash("SetButtonDisabled", [isDisabled]); +}; +// Public: setButtonAction sets the action that occurs when the button is clicked +SWFUpload.prototype.setButtonAction = function (buttonAction) { + this.settings.button_action = buttonAction; + this.callFlash("SetButtonAction", [buttonAction]); +}; + +// Public: setButtonCursor changes the mouse cursor displayed when hovering over the button +SWFUpload.prototype.setButtonCursor = function (cursor) { + this.settings.button_cursor = cursor; + this.callFlash("SetButtonCursor", [cursor]); +}; + +/* ******************************* + Flash Event Interfaces + These functions are used by Flash to trigger the various + events. + + All these functions a Private. + + Because the ExternalInterface library is buggy the event calls + are added to a queue and the queue then executed by a setTimeout. + This ensures that events are executed in a determinate order and that + the ExternalInterface bugs are avoided. +******************************* */ + +SWFUpload.prototype.queueEvent = function (handlerName, argumentArray) { + // Warning: Don't call this.debug inside here or you'll create an infinite loop + + if (argumentArray == undefined) { + argumentArray = []; + } else if (!(argumentArray instanceof Array)) { + argumentArray = [argumentArray]; + } + + var self = this; + if (typeof this.settings[handlerName] === "function") { + // Queue the event + this.eventQueue.push(function () { + this.settings[handlerName].apply(this, argumentArray); + }); + + // Execute the next queued event + setTimeout(function () { + self.executeNextEvent(); + }, 0); + + } else if (this.settings[handlerName] !== null) { + throw "Event handler " + handlerName + " is unknown or is not a function"; + } +}; + +// Private: Causes the next event in the queue to be executed. Since events are queued using a setTimeout +// we must queue them in order to garentee that they are executed in order. +SWFUpload.prototype.executeNextEvent = function () { + // Warning: Don't call this.debug inside here or you'll create an infinite loop + + var f = this.eventQueue ? this.eventQueue.shift() : null; + if (typeof(f) === "function") { + f.apply(this); + } +}; + +// Private: unescapeFileParams is part of a workaround for a flash bug where objects passed through ExternalInterface cannot have +// properties that contain characters that are not valid for JavaScript identifiers. To work around this +// the Flash Component escapes the parameter names and we must unescape again before passing them along. +SWFUpload.prototype.unescapeFilePostParams = function (file) { + var reg = /[$]([0-9a-f]{4})/i; + var unescapedPost = {}; + var uk; + + if (file != undefined) { + for (var k in file.post) { + if (file.post.hasOwnProperty(k)) { + uk = k; + var match; + while ((match = reg.exec(uk)) !== null) { + uk = uk.replace(match[0], String.fromCharCode(parseInt("0x" + match[1], 16))); + } + unescapedPost[uk] = file.post[k]; + } + } + + file.post = unescapedPost; + } + + return file; +}; + +// Private: Called by Flash to see if JS can call in to Flash (test if External Interface is working) +SWFUpload.prototype.testExternalInterface = function () { + try { + return this.callFlash("TestExternalInterface"); + } catch (ex) { + return false; + } +}; + +// Private: This event is called by Flash when it has finished loading. Don't modify this. +// Use the swfupload_loaded_handler event setting to execute custom code when SWFUpload has loaded. +SWFUpload.prototype.flashReady = function () { + // Check that the movie element is loaded correctly with its ExternalInterface methods defined + var movieElement = this.getMovieElement(); + + if (!movieElement) { + this.debug("Flash called back ready but the flash movie can't be found."); + return; + } + + this.cleanUp(movieElement); + + this.queueEvent("swfupload_loaded_handler"); +}; + +// Private: removes Flash added fuctions to the DOM node to prevent memory leaks in IE. +// This function is called by Flash each time the ExternalInterface functions are created. +SWFUpload.prototype.cleanUp = function (movieElement) { + // Pro-actively unhook all the Flash functions + try { + if (this.movieElement && typeof(movieElement.CallFunction) === "unknown") { // We only want to do this in IE + this.debug("Removing Flash functions hooks (this should only run in IE and should prevent memory leaks)"); + for (var key in movieElement) { + try { + if (typeof(movieElement[key]) === "function") { + movieElement[key] = null; + } + } catch (ex) { + } + } + } + } catch (ex1) { + + } + + // Fix Flashes own cleanup code so if the SWFMovie was removed from the page + // it doesn't display errors. + window["__flash__removeCallback"] = function (instance, name) { + try { + if (instance) { + instance[name] = null; + } + } catch (flashEx) { + + } + }; + +}; + + +/* This is a chance to do something before the browse window opens */ +SWFUpload.prototype.fileDialogStart = function () { + this.queueEvent("file_dialog_start_handler"); +}; + + +/* Called when a file is successfully added to the queue. */ +SWFUpload.prototype.fileQueued = function (file) { + file = this.unescapeFilePostParams(file); + this.queueEvent("file_queued_handler", file); +}; + + +/* Handle errors that occur when an attempt to queue a file fails. */ +SWFUpload.prototype.fileQueueError = function (file, errorCode, message) { + file = this.unescapeFilePostParams(file); + this.queueEvent("file_queue_error_handler", [file, errorCode, message]); +}; + +/* Called after the file dialog has closed and the selected files have been queued. + You could call startUpload here if you want the queued files to begin uploading immediately. */ +SWFUpload.prototype.fileDialogComplete = function (numFilesSelected, numFilesQueued, numFilesInQueue) { + this.queueEvent("file_dialog_complete_handler", [numFilesSelected, numFilesQueued, numFilesInQueue]); +}; + +SWFUpload.prototype.uploadStart = function (file) { + file = this.unescapeFilePostParams(file); + this.queueEvent("return_upload_start_handler", file); +}; + +SWFUpload.prototype.returnUploadStart = function (file) { + var returnValue; + if (typeof this.settings.upload_start_handler === "function") { + file = this.unescapeFilePostParams(file); + returnValue = this.settings.upload_start_handler.call(this, file); + } else if (this.settings.upload_start_handler != undefined) { + throw "upload_start_handler must be a function"; + } + + // Convert undefined to true so if nothing is returned from the upload_start_handler it is + // interpretted as 'true'. + if (returnValue === undefined) { + returnValue = true; + } + + returnValue = !!returnValue; + + this.callFlash("ReturnUploadStart", [returnValue]); +}; + + + +SWFUpload.prototype.uploadProgress = function (file, bytesComplete, bytesTotal) { + file = this.unescapeFilePostParams(file); + this.queueEvent("upload_progress_handler", [file, bytesComplete, bytesTotal]); +}; + +SWFUpload.prototype.uploadError = function (file, errorCode, message) { + file = this.unescapeFilePostParams(file); + this.queueEvent("upload_error_handler", [file, errorCode, message]); +}; + +SWFUpload.prototype.uploadSuccess = function (file, serverData, responseReceived) { + file = this.unescapeFilePostParams(file); + this.queueEvent("upload_success_handler", [file, serverData, responseReceived]); +}; + +SWFUpload.prototype.uploadComplete = function (file) { + file = this.unescapeFilePostParams(file); + this.queueEvent("upload_complete_handler", file); +}; + +/* Called by SWFUpload JavaScript and Flash functions when debug is enabled. By default it writes messages to the + internal debug console. You can override this event and have messages written where you want. */ +SWFUpload.prototype.debug = function (message) { + this.queueEvent("debug_handler", message); +}; + + +/* ********************************** + Debug Console + The debug console is a self contained, in page location + for debug message to be sent. The Debug Console adds + itself to the body if necessary. + + The console is automatically scrolled as messages appear. + + If you are using your own debug handler or when you deploy to production and + have debug disabled you can remove these functions to reduce the file size + and complexity. +********************************** */ + +// Private: debugMessage is the default debug_handler. If you want to print debug messages +// call the debug() function. When overriding the function your own function should +// check to see if the debug setting is true before outputting debug information. +SWFUpload.prototype.debugMessage = function (message) { + if (this.settings.debug) { + var exceptionMessage, exceptionValues = []; + + // Check for an exception object and print it nicely + if (typeof message === "object" && typeof message.name === "string" && typeof message.message === "string") { + for (var key in message) { + if (message.hasOwnProperty(key)) { + exceptionValues.push(key + ": " + message[key]); + } + } + exceptionMessage = exceptionValues.join("\n") || ""; + exceptionValues = exceptionMessage.split("\n"); + exceptionMessage = "EXCEPTION: " + exceptionValues.join("\nEXCEPTION: "); + SWFUpload.Console.writeLine(exceptionMessage); + } else { + SWFUpload.Console.writeLine(message); + } + } +}; + +SWFUpload.Console = {}; +SWFUpload.Console.writeLine = function (message) { + var console, documentForm; + + try { + console = document.getElementById("SWFUpload_Console"); + + if (!console) { + documentForm = document.createElement("form"); + document.getElementsByTagName("body")[0].appendChild(documentForm); + + console = document.createElement("textarea"); + console.id = "SWFUpload_Console"; + console.style.fontFamily = "monospace"; + console.setAttribute("wrap", "off"); + console.wrap = "off"; + console.style.overflow = "auto"; + console.style.width = "700px"; + console.style.height = "350px"; + console.style.margin = "5px"; + documentForm.appendChild(console); + } + + console.value += message + "\n"; + + console.scrollTop = console.scrollHeight - console.clientHeight; + } catch (ex) { + alert("Exception: " + ex.name + " Message: " + ex.message); + } +}; + +})(); + +(function() { +/* + Queue Plug-in + + Features: + *Adds a cancelQueue() method for cancelling the entire queue. + *All queued files are uploaded when startUpload() is called. + *If false is returned from uploadComplete then the queue upload is stopped. + If false is not returned (strict comparison) then the queue upload is continued. + *Adds a QueueComplete event that is fired when all the queued files have finished uploading. + Set the event handler with the queue_complete_handler setting. + + */ + +if (typeof(SWFUpload) === "function") { + SWFUpload.queue = {}; + + SWFUpload.prototype.initSettings = (function (oldInitSettings) { + return function () { + if (typeof(oldInitSettings) === "function") { + oldInitSettings.call(this); + } + + this.queueSettings = {}; + + this.queueSettings.queue_cancelled_flag = false; + this.queueSettings.queue_upload_count = 0; + + this.queueSettings.user_upload_complete_handler = this.settings.upload_complete_handler; + this.queueSettings.user_upload_start_handler = this.settings.upload_start_handler; + this.settings.upload_complete_handler = SWFUpload.queue.uploadCompleteHandler; + this.settings.upload_start_handler = SWFUpload.queue.uploadStartHandler; + + this.settings.queue_complete_handler = this.settings.queue_complete_handler || null; + }; + })(SWFUpload.prototype.initSettings); + + SWFUpload.prototype.startUpload = function (fileID) { + this.queueSettings.queue_cancelled_flag = false; + this.callFlash("StartUpload", [fileID]); + }; + + SWFUpload.prototype.cancelQueue = function () { + this.queueSettings.queue_cancelled_flag = true; + this.stopUpload(); + + var stats = this.getStats(); + while (stats.files_queued > 0) { + this.cancelUpload(); + stats = this.getStats(); + } + }; + + SWFUpload.queue.uploadStartHandler = function (file) { + var returnValue; + if (typeof(this.queueSettings.user_upload_start_handler) === "function") { + returnValue = this.queueSettings.user_upload_start_handler.call(this, file); + } + + // To prevent upload a real "FALSE" value must be returned, otherwise default to a real "TRUE" value. + returnValue = (returnValue === false) ? false : true; + + this.queueSettings.queue_cancelled_flag = !returnValue; + + return returnValue; + }; + + SWFUpload.queue.uploadCompleteHandler = function (file) { + var user_upload_complete_handler = this.queueSettings.user_upload_complete_handler; + var continueUpload; + + if (file.filestatus === SWFUpload.FILE_STATUS.COMPLETE) { + this.queueSettings.queue_upload_count++; + } + + if (typeof(user_upload_complete_handler) === "function") { + continueUpload = (user_upload_complete_handler.call(this, file) === false) ? false : true; + } else if (file.filestatus === SWFUpload.FILE_STATUS.QUEUED) { + // If the file was stopped and re-queued don't restart the upload + continueUpload = false; + } else { + continueUpload = true; + } + + if (continueUpload) { + var stats = this.getStats(); + if (stats.files_queued > 0 && this.queueSettings.queue_cancelled_flag === false) { + this.startUpload(); + } else if (this.queueSettings.queue_cancelled_flag === false) { + this.queueEvent("queue_complete_handler", [this.queueSettings.queue_upload_count]); + this.queueSettings.queue_upload_count = 0; + } else { + this.queueSettings.queue_cancelled_flag = false; + this.queueSettings.queue_upload_count = 0; + } + } + }; +} + +})(); diff --git a/static/kindeditor/plugins/pagebreak/pagebreak.js b/static/kindeditor/plugins/pagebreak/pagebreak.js new file mode 100644 index 0000000..dfa883a --- /dev/null +++ b/static/kindeditor/plugins/pagebreak/pagebreak.js @@ -0,0 +1,27 @@ +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ + +KindEditor.plugin('pagebreak', function(K) { + var self = this; + var name = 'pagebreak'; + var pagebreakHtml = K.undef(self.pagebreakHtml, '
      '); + + self.clickToolbar(name, function() { + var cmd = self.cmd, range = cmd.range; + self.focus(); + var tail = self.newlineTag == 'br' || K.WEBKIT ? '' : ''; + self.insertHtml(pagebreakHtml + tail); + if (tail !== '') { + var p = K('#__kindeditor_tail_tag__', self.edit.doc); + range.selectNodeContents(p[0]); + p.removeAttr('id'); + cmd.select(); + } + }); +}); diff --git a/static/kindeditor/plugins/plainpaste/plainpaste.js b/static/kindeditor/plugins/plainpaste/plainpaste.js new file mode 100644 index 0000000..8f7bed8 --- /dev/null +++ b/static/kindeditor/plugins/plainpaste/plainpaste.js @@ -0,0 +1,41 @@ +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ + +KindEditor.plugin('plainpaste', function(K) { + var self = this, name = 'plainpaste'; + self.clickToolbar(name, function() { + var lang = self.lang(name + '.'), + html = '
      ' + + '
      ' + lang.comment + '
      ' + + '' + + '
      ', + dialog = self.createDialog({ + name : name, + width : 450, + title : self.lang(name), + body : html, + yesBtn : { + name : self.lang('yes'), + click : function(e) { + var html = textarea.val(); + html = K.escape(html); + html = html.replace(/ {2}/g, '  '); + if (self.newlineTag == 'p') { + html = html.replace(/^/, '

      ').replace(/$/, '

      ').replace(/\n/g, '

      '); + } else { + html = html.replace(/\n/g, '
      $&'); + } + self.insertHtml(html).hideDialog().focus(); + } + } + }), + textarea = K('textarea', dialog.div); + textarea[0].focus(); + }); +}); diff --git a/static/kindeditor/plugins/preview/preview.js b/static/kindeditor/plugins/preview/preview.js new file mode 100644 index 0000000..ef6e2cf --- /dev/null +++ b/static/kindeditor/plugins/preview/preview.js @@ -0,0 +1,31 @@ +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ + +KindEditor.plugin('preview', function(K) { + var self = this, name = 'preview', undefined; + self.clickToolbar(name, function() { + var lang = self.lang(name + '.'), + html = '

      ' + + '' + + '
      ', + dialog = self.createDialog({ + name : name, + width : 750, + title : self.lang(name), + body : html + }), + iframe = K('iframe', dialog.div), + doc = K.iframeDoc(iframe); + doc.open(); + doc.write(self.fullHtml()); + doc.close(); + K(doc.body).css('background-color', '#FFF'); + iframe[0].contentWindow.focus(); + }); +}); diff --git a/static/kindeditor/plugins/quickformat/quickformat.js b/static/kindeditor/plugins/quickformat/quickformat.js new file mode 100644 index 0000000..5b98c72 --- /dev/null +++ b/static/kindeditor/plugins/quickformat/quickformat.js @@ -0,0 +1,81 @@ +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ + +KindEditor.plugin('quickformat', function(K) { + var self = this, name = 'quickformat', + blockMap = K.toMap('blockquote,center,div,h1,h2,h3,h4,h5,h6,p'); + function getFirstChild(knode) { + var child = knode.first(); + while (child && child.first()) { + child = child.first(); + } + return child; + } + self.clickToolbar(name, function() { + self.focus(); + var doc = self.edit.doc, + range = self.cmd.range, + child = K(doc.body).first(), next, + nodeList = [], subList = [], + bookmark = range.createBookmark(true); + while(child) { + next = child.next(); + var firstChild = getFirstChild(child); + if (!firstChild || firstChild.name != 'img') { + if (blockMap[child.name]) { + child.html(child.html().replace(/^(\s| | )+/ig, '')); + child.css('text-indent', '2em'); + } else { + subList.push(child); + } + if (!next || (blockMap[next.name] || blockMap[child.name] && !blockMap[next.name])) { + if (subList.length > 0) { + nodeList.push(subList); + } + subList = []; + } + } + child = next; + } + K.each(nodeList, function(i, subList) { + var wrapper = K('

      ', doc); + subList[0].before(wrapper); + K.each(subList, function(i, knode) { + wrapper.append(knode); + }); + }); + range.moveToBookmark(bookmark); + self.addBookmark(); + }); +}); + +/** +-------------------------- +abcd
      +1234
      + +to + +

      + abcd
      + 1234
      +

      + +-------------------------- + +  abcd1233 +

      1234

      + +to + +

      abcd1233

      +

      1234

      + +-------------------------- +*/ \ No newline at end of file diff --git a/static/kindeditor/plugins/table/table.js b/static/kindeditor/plugins/table/table.js new file mode 100644 index 0000000..4033b6a --- /dev/null +++ b/static/kindeditor/plugins/table/table.js @@ -0,0 +1,712 @@ +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ + +KindEditor.plugin('table', function(K) { + var self = this, name = 'table', lang = self.lang(name + '.'), zeroborder = 'ke-zeroborder'; + // 设置颜色 + function _setColor(box, color) { + color = color.toUpperCase(); + box.css('background-color', color); + box.css('color', color === '#000000' ? '#FFFFFF' : '#000000'); + box.html(color); + } + // 初始化取色器 + var pickerList = []; + function _initColorPicker(dialogDiv, colorBox) { + colorBox.bind('click,mousedown', function(e){ + e.stopPropagation(); + }); + function removePicker() { + K.each(pickerList, function() { + this.remove(); + }); + pickerList = []; + K(document).unbind('click,mousedown', removePicker); + dialogDiv.unbind('click,mousedown', removePicker); + } + colorBox.click(function(e) { + removePicker(); + var box = K(this), + pos = box.pos(); + var picker = K.colorpicker({ + x : pos.x, + y : pos.y + box.height(), + z : 811214, + selectedColor : K(this).html(), + colors : self.colorTable, + noColor : self.lang('noColor'), + shadowMode : self.shadowMode, + click : function(color) { + _setColor(box, color); + removePicker(); + } + }); + pickerList.push(picker); + K(document).bind('click,mousedown', removePicker); + dialogDiv.bind('click,mousedown', removePicker); + }); + } + // 取得下一行cell的index + function _getCellIndex(table, row, cell) { + var rowSpanCount = 0; + for (var i = 0, len = row.cells.length; i < len; i++) { + if (row.cells[i] == cell) { + break; + } + rowSpanCount += row.cells[i].rowSpan - 1; + } + return cell.cellIndex - rowSpanCount; + } + self.plugin.table = { + //insert or modify table + prop : function(isInsert) { + var html = [ + '
      ', + //rows, cols + '
      ', + '', + lang.rows + '   ', + lang.cols + ' ', + '
      ', + //width, height + '
      ', + '', + lang.width + '   ', + '   ', + lang.height + '   ', + '', + '
      ', + //space, padding + '
      ', + '', + lang.padding + '   ', + lang.spacing + ' ', + '
      ', + //align + '
      ', + '', + '', + '
      ', + //border + '
      ', + '', + lang.borderWidth + '   ', + lang.borderColor + ' ', + '
      ', + //background color + '
      ', + '', + '', + '
      ', + '
      ' + ].join(''); + var bookmark = self.cmd.range.createBookmark(); + var dialog = self.createDialog({ + name : name, + width : 500, + title : self.lang(name), + body : html, + beforeRemove : function() { + colorBox.unbind(); + }, + yesBtn : { + name : self.lang('yes'), + click : function(e) { + var rows = rowsBox.val(), + cols = colsBox.val(), + width = widthBox.val(), + height = heightBox.val(), + widthType = widthTypeBox.val(), + heightType = heightTypeBox.val(), + padding = paddingBox.val(), + spacing = spacingBox.val(), + align = alignBox.val(), + border = borderBox.val(), + borderColor = K(colorBox[0]).html() || '', + bgColor = K(colorBox[1]).html() || ''; + if (rows == 0 || !/^\d+$/.test(rows)) { + alert(self.lang('invalidRows')); + rowsBox[0].focus(); + return; + } + if (cols == 0 || !/^\d+$/.test(cols)) { + alert(self.lang('invalidRows')); + colsBox[0].focus(); + return; + } + if (!/^\d*$/.test(width)) { + alert(self.lang('invalidWidth')); + widthBox[0].focus(); + return; + } + if (!/^\d*$/.test(height)) { + alert(self.lang('invalidHeight')); + heightBox[0].focus(); + return; + } + if (!/^\d*$/.test(padding)) { + alert(self.lang('invalidPadding')); + paddingBox[0].focus(); + return; + } + if (!/^\d*$/.test(spacing)) { + alert(self.lang('invalidSpacing')); + spacingBox[0].focus(); + return; + } + if (!/^\d*$/.test(border)) { + alert(self.lang('invalidBorder')); + borderBox[0].focus(); + return; + } + //modify table + if (table) { + if (width !== '') { + table.width(width + widthType); + } else { + table.css('width', ''); + } + if (table[0].width !== undefined) { + table.removeAttr('width'); + } + if (height !== '') { + table.height(height + heightType); + } else { + table.css('height', ''); + } + if (table[0].height !== undefined) { + table.removeAttr('height'); + } + table.css('background-color', bgColor); + if (table[0].bgColor !== undefined) { + table.removeAttr('bgColor'); + } + if (padding !== '') { + table[0].cellPadding = padding; + } else { + table.removeAttr('cellPadding'); + } + if (spacing !== '') { + table[0].cellSpacing = spacing; + } else { + table.removeAttr('cellSpacing'); + } + if (align !== '') { + table[0].align = align; + } else { + table.removeAttr('align'); + } + if (border !== '') { + table.attr('border', border); + } else { + table.removeAttr('border'); + } + if (border === '' || border === '0') { + table.addClass(zeroborder); + } else { + table.removeClass(zeroborder); + } + if (borderColor !== '') { + table.attr('borderColor', borderColor); + } else { + table.removeAttr('borderColor'); + } + self.hideDialog().focus(); + self.cmd.range.moveToBookmark(bookmark); + self.cmd.select(); + self.addBookmark(); + return; + } + //insert new table + var style = ''; + if (width !== '') { + style += 'width:' + width + widthType + ';'; + } + if (height !== '') { + style += 'height:' + height + heightType + ';'; + } + if (bgColor !== '') { + style += 'background-color:' + bgColor + ';'; + } + var html = '') + ''; + } + html += ''; + } + html += ''; + if (!K.IE) { + html += '
      '; + } + self.insertHtml(html); + self.select().hideDialog().focus(); + self.addBookmark(); + } + } + }), + div = dialog.div, + rowsBox = K('[name="rows"]', div).val(3), + colsBox = K('[name="cols"]', div).val(2), + widthBox = K('[name="width"]', div).val(100), + heightBox = K('[name="height"]', div), + widthTypeBox = K('[name="widthType"]', div), + heightTypeBox = K('[name="heightType"]', div), + paddingBox = K('[name="padding"]', div).val(2), + spacingBox = K('[name="spacing"]', div).val(0), + alignBox = K('[name="align"]', div), + borderBox = K('[name="border"]', div).val(1), + colorBox = K('.ke-input-color', div); + _initColorPicker(div, colorBox.eq(0)); + _initColorPicker(div, colorBox.eq(1)); + _setColor(colorBox.eq(0), '#000000'); + _setColor(colorBox.eq(1), ''); + // foucs and select + rowsBox[0].focus(); + rowsBox[0].select(); + var table; + if (isInsert) { + return; + } + //get selected table node + table = self.plugin.getSelectedTable(); + if (table) { + rowsBox.val(table[0].rows.length); + colsBox.val(table[0].rows.length > 0 ? table[0].rows[0].cells.length : 0); + rowsBox.attr('disabled', true); + colsBox.attr('disabled', true); + var match, + tableWidth = table[0].style.width || table[0].width, + tableHeight = table[0].style.height || table[0].height; + if (tableWidth !== undefined && (match = /^(\d+)((?:px|%)*)$/.exec(tableWidth))) { + widthBox.val(match[1]); + widthTypeBox.val(match[2]); + } else { + widthBox.val(''); + } + if (tableHeight !== undefined && (match = /^(\d+)((?:px|%)*)$/.exec(tableHeight))) { + heightBox.val(match[1]); + heightTypeBox.val(match[2]); + } + paddingBox.val(table[0].cellPadding || ''); + spacingBox.val(table[0].cellSpacing || ''); + alignBox.val(table[0].align || ''); + borderBox.val(table[0].border === undefined ? '' : table[0].border); + _setColor(colorBox.eq(0), K.toHex(table.attr('borderColor') || '')); + _setColor(colorBox.eq(1), K.toHex(table[0].style.backgroundColor || table[0].bgColor || '')); + widthBox[0].focus(); + widthBox[0].select(); + } + }, + //modify cell + cellprop : function() { + var html = [ + '
      ', + //width, height + '
      ', + '', + lang.width + '   ', + '   ', + lang.height + '   ', + '', + '
      ', + //align + '
      ', + '', + lang.textAlign + ' ', + lang.verticalAlign + ' ', + '
      ', + //border + '
      ', + '', + lang.borderWidth + '   ', + lang.borderColor + ' ', + '
      ', + //background color + '
      ', + '', + '', + '
      ', + '
      ' + ].join(''); + var bookmark = self.cmd.range.createBookmark(); + var dialog = self.createDialog({ + name : name, + width : 500, + title : self.lang('tablecell'), + body : html, + beforeRemove : function() { + colorBox.unbind(); + }, + yesBtn : { + name : self.lang('yes'), + click : function(e) { + var width = widthBox.val(), + height = heightBox.val(), + widthType = widthTypeBox.val(), + heightType = heightTypeBox.val(), + padding = paddingBox.val(), + spacing = spacingBox.val(), + textAlign = textAlignBox.val(), + verticalAlign = verticalAlignBox.val(), + border = borderBox.val(), + borderColor = K(colorBox[0]).html() || '', + bgColor = K(colorBox[1]).html() || ''; + if (!/^\d*$/.test(width)) { + alert(self.lang('invalidWidth')); + widthBox[0].focus(); + return; + } + if (!/^\d*$/.test(height)) { + alert(self.lang('invalidHeight')); + heightBox[0].focus(); + return; + } + if (!/^\d*$/.test(border)) { + alert(self.lang('invalidBorder')); + borderBox[0].focus(); + return; + } + cell.css({ + width : width !== '' ? (width + widthType) : '', + height : height !== '' ? (height + heightType) : '', + 'background-color' : bgColor, + 'text-align' : textAlign, + 'vertical-align' : verticalAlign, + 'border-width' : border, + 'border-style' : border !== '' ? 'solid' : '', + 'border-color' : borderColor + }); + self.hideDialog().focus(); + self.cmd.range.moveToBookmark(bookmark); + self.cmd.select(); + self.addBookmark(); + } + } + }), + div = dialog.div, + widthBox = K('[name="width"]', div).val(100), + heightBox = K('[name="height"]', div), + widthTypeBox = K('[name="widthType"]', div), + heightTypeBox = K('[name="heightType"]', div), + paddingBox = K('[name="padding"]', div).val(2), + spacingBox = K('[name="spacing"]', div).val(0), + textAlignBox = K('[name="textAlign"]', div), + verticalAlignBox = K('[name="verticalAlign"]', div), + borderBox = K('[name="border"]', div).val(1), + colorBox = K('.ke-input-color', div); + _initColorPicker(div, colorBox.eq(0)); + _initColorPicker(div, colorBox.eq(1)); + _setColor(colorBox.eq(0), '#000000'); + _setColor(colorBox.eq(1), ''); + // foucs and select + widthBox[0].focus(); + widthBox[0].select(); + // get selected cell + var cell = self.plugin.getSelectedCell(); + var match, + cellWidth = cell[0].style.width || cell[0].width || '', + cellHeight = cell[0].style.height || cell[0].height || ''; + if ((match = /^(\d+)((?:px|%)*)$/.exec(cellWidth))) { + widthBox.val(match[1]); + widthTypeBox.val(match[2]); + } else { + widthBox.val(''); + } + if ((match = /^(\d+)((?:px|%)*)$/.exec(cellHeight))) { + heightBox.val(match[1]); + heightTypeBox.val(match[2]); + } + textAlignBox.val(cell[0].style.textAlign || ''); + verticalAlignBox.val(cell[0].style.verticalAlign || ''); + var border = cell[0].style.borderWidth || ''; + if (border) { + border = parseInt(border); + } + borderBox.val(border); + _setColor(colorBox.eq(0), K.toHex(cell[0].style.borderColor || '')); + _setColor(colorBox.eq(1), K.toHex(cell[0].style.backgroundColor || '')); + widthBox[0].focus(); + widthBox[0].select(); + }, + insert : function() { + this.prop(true); + }, + 'delete' : function() { + var table = self.plugin.getSelectedTable(); + self.cmd.range.setStartBefore(table[0]).collapse(true); + self.cmd.select(); + table.remove(); + self.addBookmark(); + }, + colinsert : function(offset) { + var table = self.plugin.getSelectedTable()[0], + row = self.plugin.getSelectedRow()[0], + cell = self.plugin.getSelectedCell()[0], + index = cell.cellIndex + offset; + // 取得第一行的index + index += table.rows[0].cells.length - row.cells.length; + + for (var i = 0, len = table.rows.length; i < len; i++) { + var newRow = table.rows[i], + newCell = newRow.insertCell(index); + newCell.innerHTML = K.IE ? '' : '
      '; + // 调整下一行的单元格index + index = _getCellIndex(table, newRow, newCell); + } + self.cmd.range.selectNodeContents(cell).collapse(true); + self.cmd.select(); + self.addBookmark(); + }, + colinsertleft : function() { + this.colinsert(0); + }, + colinsertright : function() { + this.colinsert(1); + }, + rowinsert : function(offset) { + var table = self.plugin.getSelectedTable()[0], + row = self.plugin.getSelectedRow()[0], + cell = self.plugin.getSelectedCell()[0]; + var rowIndex = row.rowIndex; + if (offset === 1) { + rowIndex = row.rowIndex + (cell.rowSpan - 1) + offset; + } + var newRow = table.insertRow(rowIndex); + + for (var i = 0, len = row.cells.length; i < len; i++) { + // 调整cell个数 + if (row.cells[i].rowSpan > 1) { + len -= row.cells[i].rowSpan - 1; + } + var newCell = newRow.insertCell(i); + // copy colspan + if (offset === 1 && row.cells[i].colSpan > 1) { + newCell.colSpan = row.cells[i].colSpan; + } + newCell.innerHTML = K.IE ? '' : '
      '; + } + // 调整rowspan + for (var j = rowIndex; j >= 0; j--) { + var cells = table.rows[j].cells; + if (cells.length > i) { + for (var k = cell.cellIndex; k >= 0; k--) { + if (cells[k].rowSpan > 1) { + cells[k].rowSpan += 1; + } + } + break; + } + } + self.cmd.range.selectNodeContents(cell).collapse(true); + self.cmd.select(); + self.addBookmark(); + }, + rowinsertabove : function() { + this.rowinsert(0); + }, + rowinsertbelow : function() { + this.rowinsert(1); + }, + rowmerge : function() { + var table = self.plugin.getSelectedTable()[0], + row = self.plugin.getSelectedRow()[0], + cell = self.plugin.getSelectedCell()[0], + rowIndex = row.rowIndex, // 当前行的index + nextRowIndex = rowIndex + cell.rowSpan, // 下一行的index + nextRow = table.rows[nextRowIndex]; // 下一行 + // 最后一行不能合并 + if (table.rows.length <= nextRowIndex) { + return; + } + var cellIndex = cell.cellIndex; // 下一行单元格的index + if (nextRow.cells.length <= cellIndex) { + return; + } + var nextCell = nextRow.cells[cellIndex]; // 下一行单元格 + // 上下行的colspan不一致时不能合并 + if (cell.colSpan !== nextCell.colSpan) { + return; + } + cell.rowSpan += nextCell.rowSpan; + nextRow.deleteCell(cellIndex); + self.cmd.range.selectNodeContents(cell).collapse(true); + self.cmd.select(); + self.addBookmark(); + }, + colmerge : function() { + var table = self.plugin.getSelectedTable()[0], + row = self.plugin.getSelectedRow()[0], + cell = self.plugin.getSelectedCell()[0], + rowIndex = row.rowIndex, // 当前行的index + cellIndex = cell.cellIndex, + nextCellIndex = cellIndex + 1; + // 最后一列不能合并 + if (row.cells.length <= nextCellIndex) { + return; + } + var nextCell = row.cells[nextCellIndex]; + // 左右列的rowspan不一致时不能合并 + if (cell.rowSpan !== nextCell.rowSpan) { + return; + } + cell.colSpan += nextCell.colSpan; + row.deleteCell(nextCellIndex); + self.cmd.range.selectNodeContents(cell).collapse(true); + self.cmd.select(); + self.addBookmark(); + }, + rowsplit : function() { + var table = self.plugin.getSelectedTable()[0], + row = self.plugin.getSelectedRow()[0], + cell = self.plugin.getSelectedCell()[0], + rowIndex = row.rowIndex; + // 不是可分割单元格 + if (cell.rowSpan === 1) { + return; + } + var cellIndex = _getCellIndex(table, row, cell); + for (var i = 1, len = cell.rowSpan; i < len; i++) { + var newRow = table.rows[rowIndex + i], + newCell = newRow.insertCell(cellIndex); + if (cell.colSpan > 1) { + newCell.colSpan = cell.colSpan; + } + newCell.innerHTML = K.IE ? '' : '
      '; + // 调整下一行的单元格index + cellIndex = _getCellIndex(table, newRow, newCell); + } + K(cell).removeAttr('rowSpan'); + self.cmd.range.selectNodeContents(cell).collapse(true); + self.cmd.select(); + self.addBookmark(); + }, + colsplit : function() { + var table = self.plugin.getSelectedTable()[0], + row = self.plugin.getSelectedRow()[0], + cell = self.plugin.getSelectedCell()[0], + cellIndex = cell.cellIndex; + // 不是可分割单元格 + if (cell.colSpan === 1) { + return; + } + for (var i = 1, len = cell.colSpan; i < len; i++) { + var newCell = row.insertCell(cellIndex + i); + if (cell.rowSpan > 1) { + newCell.rowSpan = cell.rowSpan; + } + newCell.innerHTML = K.IE ? '' : '
      '; + } + K(cell).removeAttr('colSpan'); + self.cmd.range.selectNodeContents(cell).collapse(true); + self.cmd.select(); + self.addBookmark(); + }, + coldelete : function() { + var table = self.plugin.getSelectedTable()[0], + row = self.plugin.getSelectedRow()[0], + cell = self.plugin.getSelectedCell()[0], + index = cell.cellIndex; + for (var i = 0, len = table.rows.length; i < len; i++) { + var newRow = table.rows[i], + newCell = newRow.cells[index]; + if (newCell.colSpan > 1) { + newCell.colSpan -= 1; + if (newCell.colSpan === 1) { + K(newCell).removeAttr('colSpan'); + } + } else { + newRow.deleteCell(index); + } + // 跳过不需要删除的行 + if (newCell.rowSpan > 1) { + i += newCell.rowSpan - 1; + } + } + if (row.cells.length === 0) { + self.cmd.range.setStartBefore(table).collapse(true); + self.cmd.select(); + K(table).remove(); + } else { + self.cmd.selection(true); + } + self.addBookmark(); + }, + rowdelete : function() { + var table = self.plugin.getSelectedTable()[0], + row = self.plugin.getSelectedRow()[0], + cell = self.plugin.getSelectedCell()[0], + rowIndex = row.rowIndex; + // 从下到上删除 + for (var i = cell.rowSpan - 1; i >= 0; i--) { + table.deleteRow(rowIndex + i); + } + if (table.rows.length === 0) { + self.cmd.range.setStartBefore(table).collapse(true); + self.cmd.select(); + K(table).remove(); + } else { + self.cmd.selection(true); + } + self.addBookmark(); + } + }; + self.clickToolbar(name, self.plugin.table.prop); +}); diff --git a/static/kindeditor/plugins/template/html/1.html b/static/kindeditor/plugins/template/html/1.html new file mode 100644 index 0000000..034126b --- /dev/null +++ b/static/kindeditor/plugins/template/html/1.html @@ -0,0 +1,14 @@ + + + + + + +

      + 在此处输入标题 +

      +

      + 在此处输入内容 +

      + + \ No newline at end of file diff --git a/static/kindeditor/plugins/template/html/2.html b/static/kindeditor/plugins/template/html/2.html new file mode 100644 index 0000000..dc2584a --- /dev/null +++ b/static/kindeditor/plugins/template/html/2.html @@ -0,0 +1,42 @@ + + + + + + +

      + 标题 +

      + + + + + + + + + + + + + + + +
      +

      标题1

      +
      +

      标题1

      +
      + 内容1 + + 内容2 +
      + 内容3 + + 内容4 +
      +

      + 表格说明 +

      + + \ No newline at end of file diff --git a/static/kindeditor/plugins/template/html/3.html b/static/kindeditor/plugins/template/html/3.html new file mode 100644 index 0000000..873f0c6 --- /dev/null +++ b/static/kindeditor/plugins/template/html/3.html @@ -0,0 +1,36 @@ + + + + + + +

      + 在此处输入内容 +

      +
        +
      1. + 描述1 +
      2. +
      3. + 描述2 +
      4. +
      5. + 描述3 +
      6. +
      +

      + 在此处输入内容 +

      +
        +
      • + 描述1 +
      • +
      • + 描述2 +
      • +
      • + 描述3 +
      • +
      + + \ No newline at end of file diff --git a/static/kindeditor/plugins/template/template.js b/static/kindeditor/plugins/template/template.js new file mode 100644 index 0000000..4029e87 --- /dev/null +++ b/static/kindeditor/plugins/template/template.js @@ -0,0 +1,58 @@ +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ + +KindEditor.plugin('template', function(K) { + var self = this, name = 'template', lang = self.lang(name + '.'), + htmlPath = self.pluginsPath + name + '/html/'; + function getFilePath(fileName) { + return htmlPath + fileName + '?ver=' + encodeURIComponent(K.DEBUG ? K.TIME : K.VERSION); + } + self.clickToolbar(name, function() { + var lang = self.lang(name + '.'), + arr = ['
      ', + '
      ', + // left start + '
      ', + lang. selectTemplate + '
      ', + // right start + '
      ', + ' ', + '
      ', + '
      ', + '
      ', + '', + '
      '].join(''); + var dialog = self.createDialog({ + name : name, + width : 500, + title : self.lang(name), + body : html, + yesBtn : { + name : self.lang('yes'), + click : function(e) { + var doc = K.iframeDoc(iframe); + self[checkbox[0].checked ? 'html' : 'insertHtml'](doc.body.innerHTML).hideDialog().focus(); + } + } + }); + var selectBox = K('select', dialog.div), + checkbox = K('[name="replaceFlag"]', dialog.div), + iframe = K('iframe', dialog.div); + checkbox[0].checked = true; + iframe.attr('src', getFilePath(selectBox.val())); + selectBox.change(function() { + iframe.attr('src', getFilePath(this.value)); + }); + }); +}); diff --git a/static/kindeditor/plugins/wordpaste/wordpaste.js b/static/kindeditor/plugins/wordpaste/wordpaste.js new file mode 100644 index 0000000..22061e1 --- /dev/null +++ b/static/kindeditor/plugins/wordpaste/wordpaste.js @@ -0,0 +1,51 @@ +/******************************************************************************* +* KindEditor - WYSIWYG HTML Editor for Internet +* Copyright (C) 2006-2011 kindsoft.net +* +* @author Roddy +* @site http://www.kindsoft.net/ +* @licence http://www.kindsoft.net/license.php +*******************************************************************************/ + +KindEditor.plugin('wordpaste', function(K) { + var self = this, name = 'wordpaste'; + self.clickToolbar(name, function() { + var lang = self.lang(name + '.'), + html = '
      ' + + '
      ' + lang.comment + '
      ' + + '' + + '
      ', + dialog = self.createDialog({ + name : name, + width : 450, + title : self.lang(name), + body : html, + yesBtn : { + name : self.lang('yes'), + click : function(e) { + var str = doc.body.innerHTML; + str = K.clearMsWord(str, self.filterMode ? self.htmlTags : K.options.htmlTags); + self.insertHtml(str).hideDialog().focus(); + } + } + }), + div = dialog.div, + iframe = K('iframe', div), + doc = K.iframeDoc(iframe); + if (!K.IE) { + doc.designMode = 'on'; + } + doc.open(); + doc.write('WordPaste'); + doc.write(''); + if (!K.IE) { + doc.write('
      '); + } + doc.write(''); + doc.close(); + if (K.IE) { + doc.body.contentEditable = 'true'; + } + iframe[0].contentWindow.focus(); + }); +}); diff --git a/static/kindeditor/themes/common/anchor.gif b/static/kindeditor/themes/common/anchor.gif new file mode 100644 index 0000000..61145ea Binary files /dev/null and b/static/kindeditor/themes/common/anchor.gif differ diff --git a/static/kindeditor/themes/common/blank.gif b/static/kindeditor/themes/common/blank.gif new file mode 100644 index 0000000..5bfd67a Binary files /dev/null and b/static/kindeditor/themes/common/blank.gif differ diff --git a/static/kindeditor/themes/common/flash.gif b/static/kindeditor/themes/common/flash.gif new file mode 100644 index 0000000..2cb12b2 Binary files /dev/null and b/static/kindeditor/themes/common/flash.gif differ diff --git a/static/kindeditor/themes/common/loading.gif b/static/kindeditor/themes/common/loading.gif new file mode 100644 index 0000000..c69e937 Binary files /dev/null and b/static/kindeditor/themes/common/loading.gif differ diff --git a/static/kindeditor/themes/common/media.gif b/static/kindeditor/themes/common/media.gif new file mode 100644 index 0000000..e1c0e30 Binary files /dev/null and b/static/kindeditor/themes/common/media.gif differ diff --git a/static/kindeditor/themes/common/rm.gif b/static/kindeditor/themes/common/rm.gif new file mode 100644 index 0000000..d013d55 Binary files /dev/null and b/static/kindeditor/themes/common/rm.gif differ diff --git a/static/kindeditor/themes/default/background.png b/static/kindeditor/themes/default/background.png new file mode 100644 index 0000000..e59bd68 Binary files /dev/null and b/static/kindeditor/themes/default/background.png differ diff --git a/static/kindeditor/themes/default/default.css b/static/kindeditor/themes/default/default.css new file mode 100644 index 0000000..3f72660 --- /dev/null +++ b/static/kindeditor/themes/default/default.css @@ -0,0 +1,1147 @@ +/* common */ +.ke-inline-block { + display: -moz-inline-stack; + display: inline-block; + vertical-align: middle; + zoom: 1; + *display: inline; +} +.ke-clearfix { + zoom: 1; +} +.ke-clearfix:after { + content: "."; + display: block; + clear: both; + font-size: 0; + height: 0; + line-height: 0; + visibility: hidden; +} +.ke-shadow { + box-shadow: 1px 1px 3px #A0A0A0; + -moz-box-shadow: 1px 1px 3px #A0A0A0; + -webkit-box-shadow: 1px 1px 3px #A0A0A0; + filter: progid:DXImageTransform.Microsoft.Shadow(color='#A0A0A0', Direction=135, Strength=3); + background-color: #F0F0EE; +} +.ke-menu a, +.ke-menu a:hover, +.ke-dialog a, +.ke-dialog a:hover { + color: #337FE5; + text-decoration: none; +} +/* icons */ +.ke-icon-source { + background-position: 0px 0px; + width: 16px; + height: 16px; +} +.ke-icon-preview { + background-position: 0px -16px; + width: 16px; + height: 16px; +} +.ke-icon-print { + background-position: 0px -32px; + width: 16px; + height: 16px; +} +.ke-icon-undo { + background-position: 0px -48px; + width: 16px; + height: 16px; +} +.ke-icon-redo { + background-position: 0px -64px; + width: 16px; + height: 16px; +} +.ke-icon-cut { + background-position: 0px -80px; + width: 16px; + height: 16px; +} +.ke-icon-copy { + background-position: 0px -96px; + width: 16px; + height: 16px; +} +.ke-icon-paste { + background-position: 0px -112px; + width: 16px; + height: 16px; +} +.ke-icon-selectall { + background-position: 0px -128px; + width: 16px; + height: 16px; +} +.ke-icon-justifyleft { + background-position: 0px -144px; + width: 16px; + height: 16px; +} +.ke-icon-justifycenter { + background-position: 0px -160px; + width: 16px; + height: 16px; +} +.ke-icon-justifyright { + background-position: 0px -176px; + width: 16px; + height: 16px; +} +.ke-icon-justifyfull { + background-position: 0px -192px; + width: 16px; + height: 16px; +} +.ke-icon-insertorderedlist { + background-position: 0px -208px; + width: 16px; + height: 16px; +} +.ke-icon-insertunorderedlist { + background-position: 0px -224px; + width: 16px; + height: 16px; +} +.ke-icon-indent { + background-position: 0px -240px; + width: 16px; + height: 16px; +} +.ke-icon-outdent { + background-position: 0px -256px; + width: 16px; + height: 16px; +} +.ke-icon-subscript { + background-position: 0px -272px; + width: 16px; + height: 16px; +} +.ke-icon-superscript { + background-position: 0px -288px; + width: 16px; + height: 16px; +} +.ke-icon-date { + background-position: 0px -304px; + width: 25px; + height: 16px; +} +.ke-icon-time { + background-position: 0px -320px; + width: 25px; + height: 16px; +} +.ke-icon-formatblock { + background-position: 0px -336px; + width: 25px; + height: 16px; +} +.ke-icon-fontname { + background-position: 0px -352px; + width: 21px; + height: 16px; +} +.ke-icon-fontsize { + background-position: 0px -368px; + width: 23px; + height: 16px; +} +.ke-icon-forecolor { + background-position: 0px -384px; + width: 20px; + height: 16px; +} +.ke-icon-hilitecolor { + background-position: 0px -400px; + width: 23px; + height: 16px; +} +.ke-icon-bold { + background-position: 0px -416px; + width: 16px; + height: 16px; +} +.ke-icon-italic { + background-position: 0px -432px; + width: 16px; + height: 16px; +} +.ke-icon-underline { + background-position: 0px -448px; + width: 16px; + height: 16px; +} +.ke-icon-strikethrough { + background-position: 0px -464px; + width: 16px; + height: 16px; +} +.ke-icon-removeformat { + background-position: 0px -480px; + width: 16px; + height: 16px; +} +.ke-icon-image { + background-position: 0px -496px; + width: 16px; + height: 16px; +} +.ke-icon-flash { + background-position: 0px -512px; + width: 16px; + height: 16px; +} +.ke-icon-media { + background-position: 0px -528px; + width: 16px; + height: 16px; +} +.ke-icon-div { + background-position: 0px -544px; + width: 16px; + height: 16px; +} +.ke-icon-formula { + background-position: 0px -576px; + width: 16px; + height: 16px; +} +.ke-icon-hr { + background-position: 0px -592px; + width: 16px; + height: 16px; +} +.ke-icon-emoticons { + background-position: 0px -608px; + width: 16px; + height: 16px; +} +.ke-icon-link { + background-position: 0px -624px; + width: 16px; + height: 16px; +} +.ke-icon-unlink { + background-position: 0px -640px; + width: 16px; + height: 16px; +} +.ke-icon-fullscreen { + background-position: 0px -656px; + width: 16px; + height: 16px; +} +.ke-icon-about { + background-position: 0px -672px; + width: 16px; + height: 16px; +} +.ke-icon-plainpaste { + background-position: 0px -704px; + width: 16px; + height: 16px; +} +.ke-icon-wordpaste { + background-position: 0px -720px; + width: 16px; + height: 16px; +} +.ke-icon-table { + background-position: 0px -784px; + width: 16px; + height: 16px; +} +.ke-icon-tablemenu { + background-position: 0px -768px; + width: 16px; + height: 16px; +} +.ke-icon-tableinsert { + background-position: 0px -784px; + width: 16px; + height: 16px; +} +.ke-icon-tabledelete { + background-position: 0px -800px; + width: 16px; + height: 16px; +} +.ke-icon-tablecolinsertleft { + background-position: 0px -816px; + width: 16px; + height: 16px; +} +.ke-icon-tablecolinsertright { + background-position: 0px -832px; + width: 16px; + height: 16px; +} +.ke-icon-tablerowinsertabove { + background-position: 0px -848px; + width: 16px; + height: 16px; +} +.ke-icon-tablerowinsertbelow { + background-position: 0px -864px; + width: 16px; + height: 16px; +} +.ke-icon-tablecoldelete { + background-position: 0px -880px; + width: 16px; + height: 16px; +} +.ke-icon-tablerowdelete { + background-position: 0px -896px; + width: 16px; + height: 16px; +} +.ke-icon-tablecellprop { + background-position: 0px -912px; + width: 16px; + height: 16px; +} +.ke-icon-tableprop { + background-position: 0px -928px; + width: 16px; + height: 16px; +} +.ke-icon-checked { + background-position: 0px -944px; + width: 16px; + height: 16px; +} +.ke-icon-code { + background-position: 0px -960px; + width: 16px; + height: 16px; +} +.ke-icon-map { + background-position: 0px -976px; + width: 16px; + height: 16px; +} +.ke-icon-baidumap { + background-position: 0px -976px; + width: 16px; + height: 16px; +} +.ke-icon-lineheight { + background-position: 0px -992px; + width: 16px; + height: 16px; +} +.ke-icon-clearhtml { + background-position: 0px -1008px; + width: 16px; + height: 16px; +} +.ke-icon-pagebreak { + background-position: 0px -1024px; + width: 16px; + height: 16px; +} +.ke-icon-insertfile { + background-position: 0px -1040px; + width: 16px; + height: 16px; +} +.ke-icon-quickformat { + background-position: 0px -1056px; + width: 16px; + height: 16px; +} +.ke-icon-template { + background-position: 0px -1072px; + width: 16px; + height: 16px; +} +.ke-icon-tablecellsplit { + background-position: 0px -1088px; + width: 16px; + height: 16px; +} +.ke-icon-tablerowmerge { + background-position: 0px -1104px; + width: 16px; + height: 16px; +} +.ke-icon-tablerowsplit { + background-position: 0px -1120px; + width: 16px; + height: 16px; +} +.ke-icon-tablecolmerge { + background-position: 0px -1136px; + width: 16px; + height: 16px; +} +.ke-icon-tablecolsplit { + background-position: 0px -1152px; + width: 16px; + height: 16px; +} +.ke-icon-anchor { + background-position: 0px -1168px; + width: 16px; + height: 16px; +} +.ke-icon-search { + background-position: 0px -1184px; + width: 16px; + height: 16px; +} +.ke-icon-new { + background-position: 0px -1200px; + width: 16px; + height: 16px; +} +.ke-icon-specialchar { + background-position: 0px -1216px; + width: 16px; + height: 16px; +} +.ke-icon-multiimage { + background-position: 0px -1232px; + width: 16px; + height: 16px; +} +/* container */ +.ke-container { + display: block; + border: 1px solid #CCCCCC; + background-color: #FFF; + overflow: hidden; + margin: 0; + padding: 0; +} +/* toolbar */ +.ke-toolbar { + border-bottom: 1px solid #CCC; + background-color: #F0F0EE; + padding: 2px 5px; + text-align: left; + overflow: hidden; + zoom: 1; +} +.ke-toolbar-icon { + background-repeat: no-repeat; + font-size: 0; + line-height: 0; + overflow: hidden; + display: block; +} +.ke-toolbar-icon-url { + background-image: url(default.png); +} +.ke-toolbar .ke-outline { + border: 1px solid #F0F0EE; + margin: 1px; + padding: 1px 2px; + font-size: 0; + line-height: 0; + overflow: hidden; + cursor: pointer; + display: block; + float: left; +} +.ke-toolbar .ke-on { + border: 1px solid #5690D2; +} +.ke-toolbar .ke-selected { + border: 1px solid #5690D2; + background-color: #E9EFF6; +} +.ke-toolbar .ke-disabled { + cursor: default; +} +.ke-toolbar .ke-separator { + height: 16px; + margin: 2px 3px; + border-left: 1px solid #A0A0A0; + border-right: 1px solid #FFFFFF; + border-top:0; + border-bottom:0; + width: 0; + font-size: 0; + line-height: 0; + overflow: hidden; + display: block; + float: left; +} +.ke-toolbar .ke-hr { + overflow: hidden; + height: 1px; + clear: both; +} +/* edit */ +.ke-edit { + padding: 0; +} +.ke-edit-iframe, +.ke-edit-textarea { + border: 0; + margin: 0; + padding: 0; + overflow: auto; +} +.ke-edit-textarea { + font: 12px/1.5 "Consolas", "Monaco", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace; + color: #000; + overflow: auto; + resize: none; +} +.ke-edit-textarea:focus { + outline: none; +} +/* statusbar */ +.ke-statusbar { + position: relative; + background-color: #F0F0EE; + border-top: 1px solid #CCCCCC; + font-size: 0; + line-height: 0; + *height: 12px; + overflow: hidden; + text-align: center; + cursor: s-resize; +} +.ke-statusbar-center-icon { + background-position: -0px -754px; + width: 15px; + height: 11px; + background-image: url(default.png); +} +.ke-statusbar-right-icon { + position: absolute; + right: 0; + bottom: 0; + cursor: se-resize; + background-position: -5px -741px; + width: 11px; + height: 11px; + background-image: url(default.png); +} +/* menu */ +.ke-menu { + border: 1px solid #A0A0A0; + background-color: #F1F1F1; + color: #222222; + padding: 2px; + font-family: "sans serif",tahoma,verdana,helvetica; + font-size: 12px; + text-align: left; + overflow: hidden; +} +.ke-menu-item { + border: 1px solid #F1F1F1; + background-color: #F1F1F1; + color: #222222; + height: 24px; + overflow: hidden; + cursor: pointer; +} +.ke-menu-item-on { + border: 1px solid #5690D2; + background-color: #E9EFF6; +} +.ke-menu-item-left { + width: 27px; + text-align: center; + overflow: hidden; +} +.ke-menu-item-center { + width: 0; + height: 24px; + border-left: 1px solid #E3E3E3; + border-right: 1px solid #FFFFFF; + border-top: 0; + border-bottom: 0; +} +.ke-menu-item-center-on { + border-left: 1px solid #E9EFF6; + border-right: 1px solid #E9EFF6; +} +.ke-menu-item-right { + border: 0; + padding: 0 0 0 5px; + line-height: 24px; + text-align: left; + overflow: hidden; +} +.ke-menu-separator { + margin: 2px 0; + height: 0; + overflow: hidden; + border-top: 1px solid #CCCCCC; + border-bottom: 1px solid #FFFFFF; + border-left: 0; + border-right: 0; +} +/* colorpicker */ +.ke-colorpicker { + border: 1px solid #A0A0A0; + background-color: #F1F1F1; + color: #222222; + padding: 2px; +} +.ke-colorpicker-table { + border:0; + margin:0; + padding:0; + border-collapse: separate; +} +.ke-colorpicker-cell { + font-size: 0; + line-height: 0; + border: 1px solid #F0F0EE; + cursor: pointer; + margin:3px; + padding:0; +} +.ke-colorpicker-cell-top { + font-family: "sans serif",tahoma,verdana,helvetica; + font-size: 12px; + line-height: 24px; + border: 1px solid #F0F0EE; + cursor: pointer; + margin:0; + padding:0; + text-align: center; +} +.ke-colorpicker-cell-on { + border: 1px solid #5690D2; +} +.ke-colorpicker-cell-selected { + border: 1px solid #2446AB; +} +.ke-colorpicker-cell-color { + width: 14px; + height: 14px; + margin: 3px; + padding: 0; + border: 0; +} +/* dialog */ +.ke-dialog { + position: absolute; + margin: 0; + padding: 0; +} +.ke-dialog .ke-header { + width: 100%; + margin-bottom: 10px; +} +.ke-dialog .ke-header .ke-left { + float: left; +} +.ke-dialog .ke-header .ke-right { + float: right; +} +.ke-dialog .ke-header label { + margin-right: 0; + cursor: pointer; + font-weight: normal; + display: inline; + vertical-align: top; +} +.ke-dialog-content { + background-color: #FFF; + width: 100%; + height: 100%; + color: #333; + border: 1px solid #A0A0A0; +} +.ke-dialog-shadow { + position: absolute; + z-index: -1; + top: 0; + left: 0; + width: 100%; + height: 100%; + box-shadow: 3px 3px 7px #999; + -moz-box-shadow: 3px 3px 7px #999; + -webkit-box-shadow: 3px 3px 7px #999; + filter: progid:DXImageTransform.Microsoft.Blur(PixelRadius='3', MakeShadow='true', ShadowOpacity='0.4'); + background-color: #F0F0EE; +} +.ke-dialog-header { + border:0; + margin:0; + padding: 0 10px; + background: url(background.png) repeat scroll 0 0 #F0F0EE; + border-bottom: 1px solid #CFCFCF; + height: 24px; + font: 12px/24px "sans serif",tahoma,verdana,helvetica; + text-align: left; + color: #222; + cursor: move; +} +.ke-dialog-icon-close { + display: block; + background: url(default.png) no-repeat scroll 0px -688px; + width: 16px; + height: 16px; + position: absolute; + right: 6px; + top: 6px; + cursor: pointer; +} +.ke-dialog-body { + font: 12px/1.5 "sans serif",tahoma,verdana,helvetica; + text-align: left; + overflow: hidden; + width: 100%; +} +.ke-dialog-body textarea { + display: block; + overflow: auto; + padding: 0; + resize: none; +} +.ke-dialog-body textarea:focus, +.ke-dialog-body input:focus, +.ke-dialog-body select:focus { + outline: none; +} +.ke-dialog-body label { + margin-right: 10px; + cursor: pointer; + display: -moz-inline-stack; + display: inline-block; + vertical-align: middle; + zoom: 1; + *display: inline; +} +.ke-dialog-body img { + display: -moz-inline-stack; + display: inline-block; + vertical-align: middle; + zoom: 1; + *display: inline; +} +.ke-dialog-body select { + display: -moz-inline-stack; + display: inline-block; + vertical-align: middle; + zoom: 1; + *display: inline; + width: auto; +} +.ke-dialog-body .ke-textarea { + display: block; + width: 408px; + height: 260px; + font-family: "sans serif",tahoma,verdana,helvetica; + font-size: 12px; + border-color: #848484 #E0E0E0 #E0E0E0 #848484; + border-style: solid; + border-width: 1px; +} +.ke-dialog-body .ke-form { + margin: 0; + padding: 0; +} +.ke-dialog-loading { + position: absolute; + top: 0; + left: 1px; + z-index: 1; + text-align: center; +} +.ke-dialog-loading-content { + background: url("../common/loading.gif") no-repeat; + color: #666; + font-size: 14px; + font-weight: bold; + height: 31px; + line-height: 31px; + padding-left: 36px; +} +.ke-dialog-row { + margin-bottom: 10px; +} +.ke-dialog-footer { + font: 12px/1 "sans serif",tahoma,verdana,helvetica; + text-align: right; + padding:0 0 5px 0; + background-color: #FFF; + width: 100%; +} +.ke-dialog-preview, +.ke-dialog-yes { + margin: 5px; +} +.ke-dialog-no { + margin: 5px 10px 5px 5px; +} +.ke-dialog-mask { + background-color:#FFF; + filter:alpha(opacity=50); + opacity:0.5; +} +.ke-button-common { + background: url(background.png) no-repeat; + cursor: pointer; + height: 23px; + line-height: 23px; + overflow: visible; + display: inline-block; + vertical-align: top; + cursor: pointer; +} +.ke-button-outer { + background-position: 0 -25px; + padding: 0; + display: -moz-inline-stack; + display: inline-block; + vertical-align: middle; + zoom: 1; + *display: inline; +} +.ke-button { + background-position: right -25px; + padding: 0 14px 0 12px; + margin: 0 0 0 2px; + font-family: "sans serif",tahoma,verdana,helvetica; + border: 0 none; + color: #333; + font-size: 12px; + text-decoration: none; +} +/* inputbox */ +.ke-input-text { + background-color:#FFFFFF; + font-family: "sans serif",tahoma,verdana,helvetica; + font-size: 12px; + line-height: 17px; + height: 17px; + padding: 2px 4px; + border-color: #848484 #E0E0E0 #E0E0E0 #848484; + border-style: solid; + border-width: 1px; + display: -moz-inline-stack; + display: inline-block; + vertical-align: middle; + zoom: 1; + *display: inline; +} +.ke-input-number { + width: 50px; +} +.ke-input-color { + border: 1px solid #A0A0A0; + background-color: #FFFFFF; + font-size: 12px; + width: 60px; + height: 20px; + line-height: 20px; + padding-left: 5px; + overflow: hidden; + cursor: pointer; + display: -moz-inline-stack; + display: inline-block; + vertical-align: middle; + zoom: 1; + *display: inline; +} +.ke-upload-button { + position: relative; +} +.ke-upload-area { + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + *height: 25px; +} +.ke-upload-area .ke-upload-file { + position: absolute; + font-size: 60px; + top: 0; + right: 0; + padding: 0; + margin: 0; + z-index: 811212; + border: 0 none; + opacity: 0; + filter: alpha(opacity=0); +} +/* tabs */ +.ke-tabs { + font: 12px/1 "sans serif",tahoma,verdana,helvetica; + border-bottom:1px solid #A0A0A0; + padding-left:5px; + margin-bottom:20px; +} +.ke-tabs-ul { + list-style-image:none; + list-style-position:outside; + list-style-type:none; + margin:0; + padding:0; +} +.ke-tabs-li { + position: relative; + border: 1px solid #A0A0A0; + background-color: #F0F0EE; + margin: 0 2px -1px 0; + padding: 0 20px; + float: left; + line-height: 25px; + text-align: center; + color: #555555; + cursor: pointer; +} +.ke-tabs-li-selected { + background-color: #FFF; + border-bottom: 1px solid #FFF; + color: #000; + cursor: default; +} +.ke-tabs-li-on { + background-color: #FFF; + color: #000; +} +/* progressbar */ +.ke-progressbar { + position: relative; + margin: 0; + padding: 0; +} +.ke-progressbar-bar { + border: 1px solid #6FA5DB; + width: 80px; + height: 5px; + margin: 10px 10px 0 10px; + padding: 0; +} +.ke-progressbar-bar-inner { + width: 0; + height: 5px; + background-color: #6FA5DB; + overflow: hidden; + margin: 0; + padding: 0; +} +.ke-progressbar-percent { + position: absolute; + top: 0; + left: 40%; + display: none; +} +/* swfupload */ +.ke-swfupload-top { + position: relative; + margin-bottom: 10px; + _width: 608px; +} +.ke-swfupload-button { + height: 23px; + line-height: 23px; +} +.ke-swfupload-desc { + padding: 0 10px; + height: 23px; + line-height: 23px; +} +.ke-swfupload-startupload { + position: absolute; + top: 0; + right: 0; +} +.ke-swfupload-body { + overflow: scroll; + background-color:#FFFFFF; + border-color: #848484 #E0E0E0 #E0E0E0 #848484; + border-style: solid; + border-width: 1px; + width: auto; + height: 370px; + padding: 5px; +} +.ke-swfupload-body .ke-item { + width: 100px; + margin: 5px; +} +.ke-swfupload-body .ke-photo { + position: relative; + border: 1px solid #DDDDDD; + background-color:#FFFFFF; + padding: 10px; +} +.ke-swfupload-body .ke-delete { + display: block; + background: url(default.png) no-repeat scroll 0px -688px; + width: 16px; + height: 16px; + position: absolute; + right: 0; + top: 0; + cursor: pointer; +} +.ke-swfupload-body .ke-status { + position: absolute; + left: 0; + bottom: 5px; + width: 100px; + height: 17px; +} +.ke-swfupload-body .ke-message { + width: 100px; + text-align: center; + overflow: hidden; + height:17px; +} +.ke-swfupload-body .ke-error { + color: red; +} +.ke-swfupload-body .ke-name { + width: 100px; + text-align: center; + overflow: hidden; + height:16px; +} +.ke-swfupload-body .ke-on { + border: 1px solid #5690D2; + background-color: #E9EFF6; +} + +/* emoticons */ +.ke-plugin-emoticons { + position: relative; +} +.ke-plugin-emoticons .ke-preview { + position: absolute; + text-align: center; + margin: 2px; + padding: 10px; + top: 0; + border: 1px solid #A0A0A0; + background-color: #FFFFFF; + display: none; +} +.ke-plugin-emoticons .ke-preview-img { + border:0; + margin:0; + padding:0; +} +.ke-plugin-emoticons .ke-table { + border:0; + margin:0; + padding:0; + border-collapse:separate; +} +.ke-plugin-emoticons .ke-cell { + margin:0; + padding:1px; + border:1px solid #F0F0EE; + cursor:pointer; +} +.ke-plugin-emoticons .ke-on { + border: 1px solid #5690D2; + background-color: #E9EFF6; +} +.ke-plugin-emoticons .ke-img { + display:block; + background-repeat:no-repeat; + overflow:hidden; + margin:2px; + width:24px; + height:24px; + margin: 0; + padding: 0; + border: 0; +} +.ke-plugin-emoticons .ke-page { + text-align: right; + margin: 5px; + padding: 0; + border: 0; + font: 12px/1 "sans serif",tahoma,verdana,helvetica; + color: #333; + text-decoration: none; +} +.ke-plugin-plainpaste-textarea, +.ke-plugin-wordpaste-iframe { + display: block; + width: 408px; + height: 260px; + font-family: "sans serif",tahoma,verdana,helvetica; + font-size: 12px; + border-color: #848484 #E0E0E0 #E0E0E0 #848484; + border-style: solid; + border-width: 1px; +} +/* filemanager */ +.ke-plugin-filemanager-header { + width: 100%; + margin-bottom: 10px; +} +.ke-plugin-filemanager-header .ke-left { + float: left; +} +.ke-plugin-filemanager-header .ke-right { + float: right; +} +.ke-plugin-filemanager-body { + overflow: scroll; + background-color:#FFFFFF; + border-color: #848484 #E0E0E0 #E0E0E0 #848484; + border-style: solid; + border-width: 1px; + width: auto; + height: 370px; + padding: 5px; +} +.ke-plugin-filemanager-body .ke-item { + width: 100px; + margin: 5px; +} +.ke-plugin-filemanager-body .ke-photo { + border: 1px solid #DDDDDD; + background-color:#FFFFFF; + padding: 10px; +} +.ke-plugin-filemanager-body .ke-name { + width: 100px; + text-align: center; + overflow: hidden; + height:16px; +} +.ke-plugin-filemanager-body .ke-on { + border: 1px solid #5690D2; + background-color: #E9EFF6; +} +.ke-plugin-filemanager-body .ke-table { + width: 95%; + border: 0; + margin: 0; + padding: 0; + border-collapse: separate; +} +.ke-plugin-filemanager-body .ke-table .ke-cell { + margin: 0; + padding: 0; + border: 0; +} +.ke-plugin-filemanager-body .ke-table .ke-name { + width: 55%; + text-align: left; +} +.ke-plugin-filemanager-body .ke-table .ke-size { + width: 15%; + text-align: left; +} +.ke-plugin-filemanager-body .ke-table .ke-datetime { + width: 30%; + text-align: center; +} + diff --git a/static/kindeditor/themes/default/default.png b/static/kindeditor/themes/default/default.png new file mode 100644 index 0000000..cc9e72d Binary files /dev/null and b/static/kindeditor/themes/default/default.png differ diff --git a/static/kindeditor/themes/qq/editor.gif b/static/kindeditor/themes/qq/editor.gif new file mode 100644 index 0000000..b256841 Binary files /dev/null and b/static/kindeditor/themes/qq/editor.gif differ diff --git a/static/kindeditor/themes/qq/qq.css b/static/kindeditor/themes/qq/qq.css new file mode 100644 index 0000000..a45e08c --- /dev/null +++ b/static/kindeditor/themes/qq/qq.css @@ -0,0 +1,143 @@ +/* container */ +.ke-container-qq { + display: block; + border: 1px solid #c3c3c3; + background-color: #FFF; + overflow: hidden; + margin: 0; + padding: 0; +} +/* toolbar */ +.ke-container-qq .ke-toolbar { + border-bottom: 1px solid #c3c3c3; + background-color: #FFFFFF; + padding: 2px 5px; + text-align: left; + overflow: hidden; + zoom: 1; +} +.ke-toolbar-icon-url { + background-image: url(editor.gif); + width:18px; + *xwidth:20px; + height:18px; + *xheight:20px; +} +.ke-icon-checked{ + background-image: url(../default/default.png); + width:16px; + height:16px; +} +.ke-container-qq .ke-icon-bold{ + background-position: 4px 1px; +} +.ke-container-qq .ke-icon-italic{ + background-position: -27px 1px; +} +.ke-container-qq .ke-icon-italic{ + background-position: -28px 1px; +} +.ke-container-qq .ke-icon-underline{ + background-position: -60px 1px; +} +.ke-container-qq .ke-icon-fontname{ + background-position: -95px 1px; +} +.ke-container-qq .ke-icon-fontsize{ + background-position: -128px 1px; +} +.ke-container-qq .ke-icon-forecolor{ + background-position: -159px 1px; +} +.ke-container-qq .ke-icon-hilitecolor{ + background-position: -190px 1px; +} +.ke-container-qq .ke-icon-plug-align{ + background-position: -223px 1px; +} +.plug-align-justifyleft{ + background-position: -350px 1px; +} +.plug-align-justifycenter{ + background-position: -382px 1px; +} +.plug-align-justifyright{ + background-position: -414px 1px; +} +.plug-order-insertorderedlist{ + background-position: -446px 1px; +} +.plug-order-insertunorderedlist{ + background-position: -477px 1px; +} +.plug-indent-indent{ + background-position: -513px 1px; +} +.plug-indent-outdent{ + background-position: -545px 1px; +} +.ke-container-qq .ke-icon-plug-order{ + background-position: -255px 1px; +} +.ke-container-qq .ke-icon-plug-indent{ + background-position: -287px 1px; +} +.ke-container-qq .ke-icon-link{ + background-position: -319px 1px; +} + +.ke-container-qq .ke-toolbar .ke-outline { + cursor: default; + padding:0px; + border:1px solid #fff; +} +.ke-container-qq .ke-toolbar .ke-on { + border-left:1px solid white; + border-top:1px solid white; + border-right:1px solid gray; + border-bottom:1px solid gray; + background-color: #FFFFFF; +} +.ke-container-qq .ke-toolbar .ke-selected { + border-left:1px solid gray; + border-top:1px solid gray; + border-right:1px solid white; + border-bottom:1px solid white; + background-color: #FFFFFF; +} +.ke-container-qq .ke-toolbar .ke-disabled { + cursor: default; +} + +.ke-colorpicker-qq{ + background:#fff; +} +/* statusbar */ +.ke-container-qq .ke-statusbar { + display:none; +} +/* menu */ +.ke-menu-qq { + border:1px solid #a6a6a6; + position:absolute; + background:#fff; + -moz-box-shadow:2px 2px 4px #DDDDDD; + z-index:999; + left:-400px; + top:-386px; + right:218px; + width:130px; +} +.ke-menu-qq .ke-menu-item { + padding:0px; + background:#fff; +} +.ke-menu-qq .ke-menu-item-on { + border:1px solid #000080;background:#FFEEC2;color:#036; +} +.ke-menu-qq .ke-toolbar .ke-selected { + border:1px solid #9a9afb; +} +.ke-menu-qq .ke-menu-item-left{ + width:auto; +} diff --git a/static/kindeditor/themes/simple/simple.css b/static/kindeditor/themes/simple/simple.css new file mode 100644 index 0000000..4c76cf9 --- /dev/null +++ b/static/kindeditor/themes/simple/simple.css @@ -0,0 +1,100 @@ +/* container */ +.ke-container-simple { + display: block; + border: 1px solid #CCC; + background-color: #FFF; + overflow: hidden; +} +/* toolbar */ +.ke-container-simple .ke-toolbar { + border-bottom: 1px solid #CCC; + background-color: #FFF; + padding: 2px 5px; + overflow: hidden; +} +.ke-container-simple .ke-toolbar .ke-outline { + border: 1px solid #FFF; + background-color: transparent; + margin: 1px; + padding: 1px 2px; + font-size: 0; + line-height: 0; + overflow: hidden; + cursor: pointer; +} +.ke-container-simple .ke-toolbar .ke-on { + border: 1px solid #5690D2; +} +.ke-container-simple .ke-toolbar .ke-selected { + border: 1px solid #5690D2; + background-color: #E9EFF6; +} +.ke-container-simple .ke-toolbar .ke-disabled { + cursor: default; +} +/* statusbar */ +.ke-container-simple .ke-statusbar { + position: relative; + background-color: #FFF; + border-top: 1px solid #CCCCCC; + font-size: 0; + line-height: 0; + *height: 12px; + overflow: hidden; + text-align: center; + cursor: s-resize; +} +/* menu */ +.ke-menu-simple { + border: 1px solid #A0A0A0; + background-color: #FFF; + color: #222222; + padding: 2px; + font-family: "sans serif",tahoma,verdana,helvetica; + font-size: 12px; + text-align: left; + overflow: hidden; +} +.ke-menu-simple .ke-menu-item { + border: 1px solid #FFF; + background-color: #FFF; + color: #222222; + height: 24px; + overflow: hidden; + cursor: pointer; +} +.ke-menu-simple .ke-menu-item-on { + border: 1px solid #5690D2; + background-color: #FFF; +} +/* colorpicker */ +.ke-colorpicker-simple { + border: 1px solid #A0A0A0; + background-color: #FEFEFE; + color: #222222; + padding: 2px; +} +.ke-colorpicker-simple .ke-colorpicker-cell { + font-size: 0; + line-height: 0; + border: 1px solid #FEFEFE; + cursor: pointer; + margin:3px; + padding:0; +} +.ke-colorpicker-simple .ke-colorpicker-cell-top { + font-family: "sans serif",tahoma,verdana,helvetica; + font-size: 12px; + line-height: 24px; + border: 1px solid #FEFEFE; + cursor: pointer; + margin:0; + padding:0; + text-align: center; +} +.ke-colorpicker-simple .ke-colorpicker-cell-on { + border: 1px solid #5690D2; +} +.ke-colorpicker-simple .ke-colorpicker-cell-selected { + border: 1px solid #2446AB; +}