├── README.md ├── dialogs ├── anchor │ └── anchor.html ├── attachment │ ├── attachment.css │ ├── attachment.html │ ├── attachment.js │ ├── fileTypeImages │ │ ├── icon_chm.gif │ │ ├── icon_default.png │ │ ├── icon_doc.gif │ │ ├── icon_exe.gif │ │ ├── icon_jpg.gif │ │ ├── icon_mp3.gif │ │ ├── icon_mv.gif │ │ ├── icon_pdf.gif │ │ ├── icon_ppt.gif │ │ ├── icon_psd.gif │ │ ├── icon_rar.gif │ │ ├── icon_txt.gif │ │ └── icon_xls.gif │ └── images │ │ ├── alignicon.gif │ │ ├── alignicon.png │ │ ├── bg.png │ │ ├── file-icons.gif │ │ ├── file-icons.png │ │ ├── icons.gif │ │ ├── icons.png │ │ ├── image.png │ │ ├── progress.png │ │ ├── success.gif │ │ └── success.png ├── background │ ├── background.css │ ├── background.html │ ├── background.js │ └── images │ │ ├── bg.png │ │ └── success.png ├── charts │ ├── chart.config.js │ ├── charts.css │ ├── charts.html │ ├── charts.js │ └── images │ │ ├── charts0.png │ │ ├── charts1.png │ │ ├── charts2.png │ │ ├── charts3.png │ │ ├── charts4.png │ │ └── charts5.png ├── emotion │ ├── emotion.css │ ├── emotion.html │ ├── emotion.js │ └── images │ │ ├── 0.gif │ │ ├── bface.gif │ │ ├── cface.gif │ │ ├── fface.gif │ │ ├── jxface2.gif │ │ ├── neweditor-tab-bg.png │ │ ├── tface.gif │ │ ├── wface.gif │ │ └── yface.gif ├── gmap │ └── gmap.html ├── help │ ├── help.css │ ├── help.html │ └── help.js ├── image │ ├── image.css │ ├── image.html │ ├── image.js │ └── images │ │ ├── alignicon.jpg │ │ ├── bg.png │ │ ├── icons.gif │ │ ├── icons.png │ │ ├── image.png │ │ ├── progress.png │ │ ├── success.gif │ │ └── success.png ├── insertframe │ └── insertframe.html ├── internal.js ├── link │ └── link.html ├── map │ ├── map.html │ └── show.html ├── music │ ├── music.css │ ├── music.html │ └── music.js ├── preview │ └── preview.html ├── scrawl │ ├── images │ │ ├── addimg.png │ │ ├── brush.png │ │ ├── delimg.png │ │ ├── delimgH.png │ │ ├── empty.png │ │ ├── emptyH.png │ │ ├── eraser.png │ │ ├── redo.png │ │ ├── redoH.png │ │ ├── scale.png │ │ ├── scaleH.png │ │ ├── size.png │ │ ├── undo.png │ │ └── undoH.png │ ├── scrawl.css │ ├── scrawl.html │ └── scrawl.js ├── searchreplace │ ├── searchreplace.html │ └── searchreplace.js ├── snapscreen │ └── snapscreen.html ├── spechars │ ├── spechars.html │ └── spechars.js ├── table │ ├── dragicon.png │ ├── edittable.css │ ├── edittable.html │ ├── edittable.js │ ├── edittd.html │ └── edittip.html ├── template │ ├── config.js │ ├── images │ │ ├── bg.gif │ │ ├── pre0.png │ │ ├── pre1.png │ │ ├── pre2.png │ │ ├── pre3.png │ │ └── pre4.png │ ├── template.css │ ├── template.html │ └── template.js ├── video │ ├── images │ │ ├── bg.png │ │ ├── center_focus.jpg │ │ ├── file-icons.gif │ │ ├── file-icons.png │ │ ├── icons.gif │ │ ├── icons.png │ │ ├── image.png │ │ ├── left_focus.jpg │ │ ├── none_focus.jpg │ │ ├── progress.png │ │ ├── right_focus.jpg │ │ ├── success.gif │ │ └── success.png │ ├── video.css │ ├── video.html │ └── video.js ├── webapp │ └── webapp.html └── wordimage │ ├── fClipboard_ueditor.swf │ ├── imageUploader.swf │ ├── tangram.js │ ├── wordimage.html │ └── wordimage.js ├── index.html ├── lang ├── en │ ├── en.js │ └── images │ │ ├── addimage.png │ │ ├── alldeletebtnhoverskin.png │ │ ├── alldeletebtnupskin.png │ │ ├── background.png │ │ ├── button.png │ │ ├── copy.png │ │ ├── deletedisable.png │ │ ├── deleteenable.png │ │ ├── listbackground.png │ │ ├── localimage.png │ │ ├── music.png │ │ ├── rotateleftdisable.png │ │ ├── rotateleftenable.png │ │ ├── rotaterightdisable.png │ │ ├── rotaterightenable.png │ │ └── upload.png └── zh-cn │ ├── images │ ├── copy.png │ ├── localimage.png │ ├── music.png │ └── upload.png │ └── zh-cn.js ├── php ├── Uploader.class.php ├── action_crawler.php ├── action_list.php ├── action_upload.php ├── config.sample.json ├── controller.php ├── upyun.class.php └── upyun.config.sample.php ├── themes ├── default │ ├── css │ │ ├── ueditor.css │ │ └── ueditor.min.css │ ├── dialogbase.css │ └── images │ │ ├── anchor.gif │ │ ├── arrow.png │ │ ├── arrow_down.png │ │ ├── arrow_up.png │ │ ├── button-bg.gif │ │ ├── cancelbutton.gif │ │ ├── charts.png │ │ ├── cursor_h.gif │ │ ├── cursor_h.png │ │ ├── cursor_v.gif │ │ ├── cursor_v.png │ │ ├── dialog-title-bg.png │ │ ├── filescan.png │ │ ├── highlighted.gif │ │ ├── icons-all.gif │ │ ├── icons.gif │ │ ├── icons.png │ │ ├── loaderror.png │ │ ├── loading.gif │ │ ├── lock.gif │ │ ├── neweditor-tab-bg.png │ │ ├── pagebreak.gif │ │ ├── scale.png │ │ ├── sortable.png │ │ ├── spacer.gif │ │ ├── sparator_v.png │ │ ├── table-cell-align.png │ │ ├── tangram-colorpicker.png │ │ ├── toolbar_bg.png │ │ ├── unhighlighted.gif │ │ ├── upload.png │ │ ├── videologo.gif │ │ ├── word.gif │ │ └── wordpaste.png └── iframe.css ├── third-party ├── SyntaxHighlighter │ ├── shCore.js │ └── shCoreDefault.css ├── codemirror │ ├── codemirror.css │ └── codemirror.js ├── highcharts │ ├── adapters │ │ ├── mootools-adapter.js │ │ ├── mootools-adapter.src.js │ │ ├── prototype-adapter.js │ │ ├── prototype-adapter.src.js │ │ ├── standalone-framework.js │ │ └── standalone-framework.src.js │ ├── highcharts-more.js │ ├── highcharts-more.src.js │ ├── highcharts.js │ ├── highcharts.src.js │ ├── modules │ │ ├── annotations.js │ │ ├── annotations.src.js │ │ ├── canvas-tools.js │ │ ├── canvas-tools.src.js │ │ ├── data.js │ │ ├── data.src.js │ │ ├── drilldown.js │ │ ├── drilldown.src.js │ │ ├── exporting.js │ │ ├── exporting.src.js │ │ ├── funnel.js │ │ ├── funnel.src.js │ │ ├── heatmap.js │ │ ├── heatmap.src.js │ │ ├── map.js │ │ ├── map.src.js │ │ ├── no-data-to-display.js │ │ └── no-data-to-display.src.js │ └── themes │ │ ├── dark-blue.js │ │ ├── dark-green.js │ │ ├── gray.js │ │ ├── grid.js │ │ └── skies.js ├── jquery-1.10.2.js ├── jquery-1.10.2.min.js ├── jquery-1.10.2.min.map ├── snapscreen │ └── UEditorSnapscreen.exe ├── video-js │ ├── font │ │ ├── vjs.eot │ │ ├── vjs.svg │ │ ├── vjs.ttf │ │ └── vjs.woff │ ├── video-js.css │ ├── video-js.min.css │ ├── video-js.swf │ ├── video.dev.js │ └── video.js ├── webuploader │ ├── Uploader.swf │ ├── webuploader.css │ ├── webuploader.custom.js │ ├── webuploader.custom.min.js │ ├── webuploader.flashonly.js │ ├── webuploader.flashonly.min.js │ ├── webuploader.html5only.js │ ├── webuploader.html5only.min.js │ ├── webuploader.js │ ├── webuploader.min.js │ ├── webuploader.withoutimage.js │ └── webuploader.withoutimage.min.js ├── xss.min.js └── zeroclipboard │ ├── ZeroClipboard.js │ ├── ZeroClipboard.min.js │ └── ZeroClipboard.swf ├── ueditor.all.js ├── ueditor.all.min.js ├── ueditor.config.js ├── ueditor.parse.js └── ueditor.parse.min.js /README.md: -------------------------------------------------------------------------------- 1 | ### UEditor 集成又拍云标准 API 2 | 3 | 基于 [UEditor 1.4.3.3 PHP 版](http://ueditor.baidu.com)和 [又拍云 PHP 标准 SDK](https://github.com/upyun/php-sdk) 开发。 4 | 5 | #### 功能 6 | 7 | 1. 单图和多图同时上传到又拍云 8 | 2. 附件同时上传到又拍云 9 | 3. 支持 log 记录 10 | 11 | #### 使用 12 | 13 | 下载后解压为 `ueditor`(不支持其它的项目名称) 14 | 15 | 修改文件 `php/upyun.config.sample.php` 为 `php/upyun.config.php`,并配置: 16 | 17 | ``` 18 | 3 | 4 | 5 | 6 | 7 | 13 | 14 | 15 |
16 | 17 |
18 | 19 | 39 | 40 | -------------------------------------------------------------------------------- /dialogs/attachment/attachment.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ueditor图片对话框 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 |
22 | 23 | 24 |
25 |
26 | 27 |
28 |
29 |
30 |
31 | 0% 32 | 33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
    45 |
  • 46 |
47 |
48 |
49 | 50 | 51 |
52 |
53 |
54 | 55 |
56 |
57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /dialogs/attachment/fileTypeImages/icon_chm.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/attachment/fileTypeImages/icon_chm.gif -------------------------------------------------------------------------------- /dialogs/attachment/fileTypeImages/icon_default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/attachment/fileTypeImages/icon_default.png -------------------------------------------------------------------------------- /dialogs/attachment/fileTypeImages/icon_doc.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/attachment/fileTypeImages/icon_doc.gif -------------------------------------------------------------------------------- /dialogs/attachment/fileTypeImages/icon_exe.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/attachment/fileTypeImages/icon_exe.gif -------------------------------------------------------------------------------- /dialogs/attachment/fileTypeImages/icon_jpg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/attachment/fileTypeImages/icon_jpg.gif -------------------------------------------------------------------------------- /dialogs/attachment/fileTypeImages/icon_mp3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/attachment/fileTypeImages/icon_mp3.gif -------------------------------------------------------------------------------- /dialogs/attachment/fileTypeImages/icon_mv.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/attachment/fileTypeImages/icon_mv.gif -------------------------------------------------------------------------------- /dialogs/attachment/fileTypeImages/icon_pdf.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/attachment/fileTypeImages/icon_pdf.gif -------------------------------------------------------------------------------- /dialogs/attachment/fileTypeImages/icon_ppt.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/attachment/fileTypeImages/icon_ppt.gif -------------------------------------------------------------------------------- /dialogs/attachment/fileTypeImages/icon_psd.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/attachment/fileTypeImages/icon_psd.gif -------------------------------------------------------------------------------- /dialogs/attachment/fileTypeImages/icon_rar.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/attachment/fileTypeImages/icon_rar.gif -------------------------------------------------------------------------------- /dialogs/attachment/fileTypeImages/icon_txt.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/attachment/fileTypeImages/icon_txt.gif -------------------------------------------------------------------------------- /dialogs/attachment/fileTypeImages/icon_xls.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/attachment/fileTypeImages/icon_xls.gif -------------------------------------------------------------------------------- /dialogs/attachment/images/alignicon.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/attachment/images/alignicon.gif -------------------------------------------------------------------------------- /dialogs/attachment/images/alignicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/attachment/images/alignicon.png -------------------------------------------------------------------------------- /dialogs/attachment/images/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/attachment/images/bg.png -------------------------------------------------------------------------------- /dialogs/attachment/images/file-icons.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/attachment/images/file-icons.gif -------------------------------------------------------------------------------- /dialogs/attachment/images/file-icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/attachment/images/file-icons.png -------------------------------------------------------------------------------- /dialogs/attachment/images/icons.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/attachment/images/icons.gif -------------------------------------------------------------------------------- /dialogs/attachment/images/icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/attachment/images/icons.png -------------------------------------------------------------------------------- /dialogs/attachment/images/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/attachment/images/image.png -------------------------------------------------------------------------------- /dialogs/attachment/images/progress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/attachment/images/progress.png -------------------------------------------------------------------------------- /dialogs/attachment/images/success.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/attachment/images/success.gif -------------------------------------------------------------------------------- /dialogs/attachment/images/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/attachment/images/success.png -------------------------------------------------------------------------------- /dialogs/background/background.css: -------------------------------------------------------------------------------- 1 | .wrapper{ width: 424px;margin: 10px auto; zoom:1;position: relative} 2 | .tabbody{height:225px;} 3 | .tabbody .panel { position: absolute;width:100%; height:100%;background: #fff; display: none;} 4 | .tabbody .focus { display: block;} 5 | 6 | body{font-size: 12px;color: #888;overflow: hidden;} 7 | input,label{vertical-align:middle} 8 | .clear{clear: both;} 9 | .pl{padding-left: 18px;padding-left: 23px\9;} 10 | 11 | #imageList {width: 420px;height: 215px;margin-top: 10px;overflow: hidden;overflow-y: auto;} 12 | #imageList div {float: left;width: 100px;height: 95px;margin: 5px 10px;} 13 | #imageList img {cursor: pointer;border: 2px solid white;} 14 | 15 | .bgarea{margin: 10px;padding: 5px;height: 84%;border: 1px solid #A8A297;} 16 | .content div{margin: 10px 0 10px 5px;} 17 | .content .iptradio{margin: 0px 5px 5px 0px;} 18 | .txt{width:280px;} 19 | 20 | .wrapcolor{height: 19px;} 21 | div.color{float: left;margin: 0;} 22 | #colorPicker{width: 17px;height: 17px;border: 1px solid #CCC;display: inline-block;border-radius: 3px;box-shadow: 2px 2px 5px #D3D6DA;margin: 0;float: left;} 23 | div.alignment,#custom{margin-left: 23px;margin-left: 28px\9;} 24 | #custom input{height: 15px;min-height: 15px;width:20px;} 25 | #repeatType{width:100px;} 26 | 27 | 28 | /* 图片管理样式 */ 29 | #imgManager { 30 | width: 100%; 31 | height: 225px; 32 | } 33 | #imgManager #imageList{ 34 | width: 100%; 35 | overflow-x: hidden; 36 | overflow-y: auto; 37 | } 38 | #imgManager ul { 39 | display: block; 40 | list-style: none; 41 | margin: 0; 42 | padding: 0; 43 | } 44 | #imgManager li { 45 | float: left; 46 | display: block; 47 | list-style: none; 48 | padding: 0; 49 | width: 113px; 50 | height: 113px; 51 | margin: 9px 0 0 19px; 52 | background-color: #eee; 53 | overflow: hidden; 54 | cursor: pointer; 55 | position: relative; 56 | } 57 | #imgManager li.clearFloat { 58 | float: none; 59 | clear: both; 60 | display: block; 61 | width:0; 62 | height:0; 63 | margin: 0; 64 | padding: 0; 65 | } 66 | #imgManager li img { 67 | cursor: pointer; 68 | } 69 | #imgManager li .icon { 70 | cursor: pointer; 71 | width: 113px; 72 | height: 113px; 73 | position: absolute; 74 | top: 0; 75 | left: 0; 76 | z-index: 2; 77 | border: 0; 78 | background-repeat: no-repeat; 79 | } 80 | #imgManager li .icon:hover { 81 | width: 107px; 82 | height: 107px; 83 | border: 3px solid #1094fa; 84 | } 85 | #imgManager li.selected .icon { 86 | background-image: url(images/success.png); 87 | background-position: 75px 75px; 88 | } 89 | #imgManager li.selected .icon:hover { 90 | width: 107px; 91 | height: 107px; 92 | border: 3px solid #1094fa; 93 | background-position: 72px 72px; 94 | } -------------------------------------------------------------------------------- /dialogs/background/background.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
11 | 12 | 13 |
14 |
15 |
16 |
17 | 18 |
19 |
20 | 21 | 22 |
23 |
24 |
25 | : 26 |
27 |
28 |
29 |
30 |
31 | 32 |
33 |
34 | : 41 |
42 |
43 | :x:px  y:px 44 |
45 |
46 |
47 | 48 |
49 |
50 |
51 |
52 |
53 |
54 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /dialogs/background/images/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/background/images/bg.png -------------------------------------------------------------------------------- /dialogs/background/images/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/background/images/success.png -------------------------------------------------------------------------------- /dialogs/charts/chart.config.js: -------------------------------------------------------------------------------- 1 | /* 2 | * 图表配置文件 3 | * */ 4 | 5 | 6 | //不同类型的配置 7 | var typeConfig = [ 8 | { 9 | chart: { 10 | type: 'line' 11 | }, 12 | plotOptions: { 13 | line: { 14 | dataLabels: { 15 | enabled: false 16 | }, 17 | enableMouseTracking: true 18 | } 19 | } 20 | }, { 21 | chart: { 22 | type: 'line' 23 | }, 24 | plotOptions: { 25 | line: { 26 | dataLabels: { 27 | enabled: true 28 | }, 29 | enableMouseTracking: false 30 | } 31 | } 32 | }, { 33 | chart: { 34 | type: 'area' 35 | } 36 | }, { 37 | chart: { 38 | type: 'bar' 39 | } 40 | }, { 41 | chart: { 42 | type: 'column' 43 | } 44 | }, { 45 | chart: { 46 | plotBackgroundColor: null, 47 | plotBorderWidth: null, 48 | plotShadow: false 49 | }, 50 | plotOptions: { 51 | pie: { 52 | allowPointSelect: true, 53 | cursor: 'pointer', 54 | dataLabels: { 55 | enabled: true, 56 | color: '#000000', 57 | connectorColor: '#000000', 58 | formatter: function() { 59 | return ''+ this.point.name +': '+ ( Math.round( this.point.percentage*100 ) / 100 ) +' %'; 60 | } 61 | } 62 | } 63 | } 64 | } 65 | ]; 66 | -------------------------------------------------------------------------------- /dialogs/charts/charts.css: -------------------------------------------------------------------------------- 1 | html, body { 2 | width: 100%; 3 | height: 100%; 4 | margin: 0; 5 | padding: 0; 6 | overflow-x: hidden; 7 | } 8 | 9 | .main { 10 | width: 100%; 11 | overflow: hidden; 12 | } 13 | 14 | .table-view { 15 | height: 100%; 16 | float: left; 17 | margin: 20px; 18 | width: 40%; 19 | } 20 | 21 | .table-view .table-container { 22 | width: 100%; 23 | margin-bottom: 50px; 24 | overflow: scroll; 25 | } 26 | 27 | .table-view th { 28 | padding: 5px 10px; 29 | background-color: #F7F7F7; 30 | } 31 | 32 | .table-view td { 33 | width: 50px; 34 | text-align: center; 35 | padding:0; 36 | } 37 | 38 | .table-container input { 39 | width: 40px; 40 | padding: 5px; 41 | border: none; 42 | outline: none; 43 | } 44 | 45 | .table-view caption { 46 | font-size: 18px; 47 | text-align: left; 48 | } 49 | 50 | .charts-view { 51 | /*margin-left: 49%!important;*/ 52 | width: 50%; 53 | margin-left: 49%; 54 | height: 400px; 55 | } 56 | 57 | .charts-container { 58 | border-left: 1px solid #c3c3c3; 59 | } 60 | 61 | .charts-format fieldset { 62 | padding-left: 20px; 63 | margin-bottom: 50px; 64 | } 65 | 66 | .charts-format legend { 67 | padding-left: 10px; 68 | padding-right: 10px; 69 | } 70 | 71 | .format-item-container { 72 | padding: 20px; 73 | } 74 | 75 | .format-item-container label { 76 | display: block; 77 | margin: 10px 0; 78 | } 79 | 80 | .charts-format .data-item { 81 | border: 1px solid black; 82 | outline: none; 83 | padding: 2px 3px; 84 | } 85 | 86 | /* 图表类型 */ 87 | 88 | .charts-type { 89 | margin-top: 50px; 90 | height: 300px; 91 | } 92 | 93 | .scroll-view { 94 | border: 1px solid #c3c3c3; 95 | border-left: none; 96 | border-right: none; 97 | overflow: hidden; 98 | } 99 | 100 | .scroll-container { 101 | margin: 20px; 102 | width: 100%; 103 | overflow: hidden; 104 | } 105 | 106 | .scroll-bed { 107 | width: 10000px; 108 | _margin-top: 20px; 109 | -webkit-transition: margin-left .5s ease; 110 | -moz-transition: margin-left .5s ease; 111 | transition: margin-left .5s ease; 112 | } 113 | 114 | .view-box { 115 | display: inline-block; 116 | *display: inline; 117 | *zoom: 1; 118 | margin-right: 20px; 119 | border: 2px solid white; 120 | line-height: 0; 121 | overflow: hidden; 122 | cursor: pointer; 123 | } 124 | 125 | .view-box img { 126 | border: 1px solid #cecece; 127 | } 128 | 129 | .view-box.selected { 130 | border-color: #7274A7; 131 | } 132 | 133 | .button-container { 134 | margin-bottom: 20px; 135 | text-align: center; 136 | } 137 | 138 | .button-container a { 139 | display: inline-block; 140 | width: 100px; 141 | height: 25px; 142 | line-height: 25px; 143 | border: 1px solid #c2ccd1; 144 | margin-right: 30px; 145 | text-decoration: none; 146 | color: black; 147 | -webkit-border-radius: 2px; 148 | -moz-border-radius: 2px; 149 | border-radius: 2px; 150 | } 151 | 152 | .button-container a:HOVER { 153 | background: #fcfcfc; 154 | } 155 | 156 | .button-container a:ACTIVE { 157 | border-top-color: #c2ccd1; 158 | box-shadow:inset 0 5px 4px -4px rgba(49, 49, 64, 0.1); 159 | } 160 | 161 | .edui-charts-not-data { 162 | height: 100px; 163 | line-height: 100px; 164 | text-align: center; 165 | } -------------------------------------------------------------------------------- /dialogs/charts/charts.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | chart 5 | 6 | 7 | 8 | 9 | 10 |
11 |
12 |

13 |
14 |

15 |
16 |
17 |
18 | 19 |
20 | 24 | 28 |
29 |
30 |
31 |
32 | 33 |
34 | 37 | 40 | 43 | 46 |
47 |
48 |
49 | 50 |
51 | 55 |

56 |
57 |
58 |
59 | 60 |
61 | 62 |

63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |

72 |
73 |
74 |
75 |
76 |
77 | 78 | 79 |
80 |
81 |
82 |
83 |
84 | 85 | 86 | 87 | 88 | 89 | -------------------------------------------------------------------------------- /dialogs/charts/images/charts0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/charts/images/charts0.png -------------------------------------------------------------------------------- /dialogs/charts/images/charts1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/charts/images/charts1.png -------------------------------------------------------------------------------- /dialogs/charts/images/charts2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/charts/images/charts2.png -------------------------------------------------------------------------------- /dialogs/charts/images/charts3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/charts/images/charts3.png -------------------------------------------------------------------------------- /dialogs/charts/images/charts4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/charts/images/charts4.png -------------------------------------------------------------------------------- /dialogs/charts/images/charts5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/charts/images/charts5.png -------------------------------------------------------------------------------- /dialogs/emotion/emotion.css: -------------------------------------------------------------------------------- 1 | .jd img{ 2 | background:transparent url(images/jxface2.gif?v=1.1) no-repeat scroll left top; 3 | cursor:pointer;width:35px;height:35px;display:block; 4 | } 5 | .pp img{ 6 | background:transparent url(images/fface.gif?v=1.1) no-repeat scroll left top; 7 | cursor:pointer;width:25px;height:25px;display:block; 8 | } 9 | .ldw img{ 10 | background:transparent url(images/wface.gif?v=1.1) no-repeat scroll left top; 11 | cursor:pointer;width:35px;height:35px;display:block; 12 | } 13 | .tsj img{ 14 | background:transparent url(images/tface.gif?v=1.1) no-repeat scroll left top; 15 | cursor:pointer;width:35px;height:35px;display:block; 16 | } 17 | .cat img{ 18 | background:transparent url(images/cface.gif?v=1.1) no-repeat scroll left top; 19 | cursor:pointer;width:35px;height:35px;display:block; 20 | } 21 | .bb img{ 22 | background:transparent url(images/bface.gif?v=1.1) no-repeat scroll left top; 23 | cursor:pointer;width:35px;height:35px;display:block; 24 | } 25 | .youa img{ 26 | background:transparent url(images/yface.gif?v=1.1) no-repeat scroll left top; 27 | cursor:pointer;width:35px;height:35px;display:block; 28 | } 29 | 30 | .smileytable td {height: 37px;} 31 | #tabPanel{margin-left:5px;overflow: hidden;} 32 | #tabContent {float:left;background:#FFFFFF;} 33 | #tabContent div{display: none;width:480px;overflow:hidden;} 34 | #tabIconReview.show{left:17px;display:block;} 35 | .menuFocus{background:#ACCD3C;} 36 | .menuDefault{background:#FFFFFF;} 37 | #tabIconReview{position:absolute;left:406px;left:398px \9;top:41px;z-index:65533;width:90px;height:76px;} 38 | img.review{width:90px;height:76px;border:2px solid #9cb945;background:#FFFFFF;background-position:center;background-repeat:no-repeat;} 39 | 40 | .wrapper .tabbody{position:relative;float:left;clear:both;padding:10px;width: 95%;} 41 | .tabbody table{width: 100%;} 42 | .tabbody td{border:1px solid #BAC498;} 43 | .tabbody td span{display: block;zoom:1;padding:0 4px;} -------------------------------------------------------------------------------- /dialogs/emotion/emotion.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 | 33 |
34 | 35 | 53 | 54 | -------------------------------------------------------------------------------- /dialogs/emotion/images/0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/emotion/images/0.gif -------------------------------------------------------------------------------- /dialogs/emotion/images/bface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/emotion/images/bface.gif -------------------------------------------------------------------------------- /dialogs/emotion/images/cface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/emotion/images/cface.gif -------------------------------------------------------------------------------- /dialogs/emotion/images/fface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/emotion/images/fface.gif -------------------------------------------------------------------------------- /dialogs/emotion/images/jxface2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/emotion/images/jxface2.gif -------------------------------------------------------------------------------- /dialogs/emotion/images/neweditor-tab-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/emotion/images/neweditor-tab-bg.png -------------------------------------------------------------------------------- /dialogs/emotion/images/tface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/emotion/images/tface.gif -------------------------------------------------------------------------------- /dialogs/emotion/images/wface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/emotion/images/wface.gif -------------------------------------------------------------------------------- /dialogs/emotion/images/yface.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/emotion/images/yface.gif -------------------------------------------------------------------------------- /dialogs/gmap/gmap.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 |
26 |
27 | 88 | 89 | -------------------------------------------------------------------------------- /dialogs/help/help.css: -------------------------------------------------------------------------------- 1 | .wrapper{width: 370px;margin: 10px auto;zoom: 1;} 2 | .tabbody{height: 360px;} 3 | .tabbody .panel{width:100%;height: 360px;position: absolute;background: #fff;} 4 | .tabbody .panel h1{font-size:26px;margin: 5px 0 0 5px;} 5 | .tabbody .panel p{font-size:12px;margin: 5px 0 0 5px;} 6 | .tabbody table{width:90%;line-height: 20px;margin: 5px 0 0 5px;;} 7 | .tabbody table thead{font-weight: bold;line-height: 25px;} -------------------------------------------------------------------------------- /dialogs/help/help.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 帮助 6 | 7 | 8 | 9 | 10 | 11 |
12 |
13 | 14 | 15 |
16 |
17 |
18 |

UEditor

19 |

20 |

21 |
22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 |
ctrl+b
ctrl+c
ctrl+x
ctrl+v
ctrl+y
ctrl+z
ctrl+i
ctrl+u
ctrl+a
shift+enter
alt+z
77 |
78 |
79 |
80 | 81 | 82 | -------------------------------------------------------------------------------- /dialogs/help/help.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created with JetBrains PhpStorm. 3 | * User: xuheng 4 | * Date: 12-9-26 5 | * Time: 下午1:06 6 | * To change this template use File | Settings | File Templates. 7 | */ 8 | /** 9 | * tab点击处理事件 10 | * @param tabHeads 11 | * @param tabBodys 12 | * @param obj 13 | */ 14 | function clickHandler( tabHeads,tabBodys,obj ) { 15 | //head样式更改 16 | for ( var k = 0, len = tabHeads.length; k < len; k++ ) { 17 | tabHeads[k].className = ""; 18 | } 19 | obj.className = "focus"; 20 | //body显隐 21 | var tabSrc = obj.getAttribute( "tabSrc" ); 22 | for ( var j = 0, length = tabBodys.length; j < length; j++ ) { 23 | var body = tabBodys[j], 24 | id = body.getAttribute( "id" ); 25 | body.onclick = function(){ 26 | this.style.zoom = 1; 27 | }; 28 | if ( id != tabSrc ) { 29 | body.style.zIndex = 1; 30 | } else { 31 | body.style.zIndex = 200; 32 | } 33 | } 34 | 35 | } 36 | 37 | /** 38 | * TAB切换 39 | * @param tabParentId tab的父节点ID或者对象本身 40 | */ 41 | function switchTab( tabParentId ) { 42 | var tabElements = $G( tabParentId ).children, 43 | tabHeads = tabElements[0].children, 44 | tabBodys = tabElements[1].children; 45 | 46 | for ( var i = 0, length = tabHeads.length; i < length; i++ ) { 47 | var head = tabHeads[i]; 48 | if ( head.className === "focus" )clickHandler(tabHeads,tabBodys, head ); 49 | head.onclick = function () { 50 | clickHandler(tabHeads,tabBodys,this); 51 | } 52 | } 53 | } 54 | switchTab("helptab"); 55 | 56 | document.getElementById('version').innerHTML = parent.UE.version; -------------------------------------------------------------------------------- /dialogs/image/images/alignicon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/image/images/alignicon.jpg -------------------------------------------------------------------------------- /dialogs/image/images/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/image/images/bg.png -------------------------------------------------------------------------------- /dialogs/image/images/icons.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/image/images/icons.gif -------------------------------------------------------------------------------- /dialogs/image/images/icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/image/images/icons.png -------------------------------------------------------------------------------- /dialogs/image/images/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/image/images/image.png -------------------------------------------------------------------------------- /dialogs/image/images/progress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/image/images/progress.png -------------------------------------------------------------------------------- /dialogs/image/images/success.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/image/images/success.gif -------------------------------------------------------------------------------- /dialogs/image/images/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/image/images/success.png -------------------------------------------------------------------------------- /dialogs/insertframe/insertframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 14 | 15 | 16 |
17 | 18 | 19 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 44 | 45 |
20 | 21 | 22 |
px
px
38 | 43 |
46 |
47 | 97 | 98 | -------------------------------------------------------------------------------- /dialogs/internal.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | var parent = window.parent; 3 | //dialog对象 4 | dialog = parent.$EDITORUI[window.frameElement.id.replace( /_iframe$/, '' )]; 5 | //当前打开dialog的编辑器实例 6 | editor = dialog.editor; 7 | 8 | UE = parent.UE; 9 | 10 | domUtils = UE.dom.domUtils; 11 | 12 | utils = UE.utils; 13 | 14 | browser = UE.browser; 15 | 16 | ajax = UE.ajax; 17 | 18 | $G = function ( id ) { 19 | return document.getElementById( id ) 20 | }; 21 | //focus元素 22 | $focus = function ( node ) { 23 | setTimeout( function () { 24 | if ( browser.ie ) { 25 | var r = node.createTextRange(); 26 | r.collapse( false ); 27 | r.select(); 28 | } else { 29 | node.focus() 30 | } 31 | }, 0 ) 32 | }; 33 | utils.loadFile(document,{ 34 | href:editor.options.themePath + editor.options.theme + "/dialogbase.css?cache="+Math.random(), 35 | tag:"link", 36 | type:"text/css", 37 | rel:"stylesheet" 38 | }); 39 | lang = editor.getLang(dialog.className.split( "-" )[2]); 40 | if(lang){ 41 | domUtils.on(window,'load',function () { 42 | 43 | var langImgPath = editor.options.langPath + editor.options.lang + "/images/"; 44 | //针对静态资源 45 | for ( var i in lang["static"] ) { 46 | var dom = $G( i ); 47 | if(!dom) continue; 48 | var tagName = dom.tagName, 49 | content = lang["static"][i]; 50 | if(content.src){ 51 | //clone 52 | content = utils.extend({},content,false); 53 | content.src = langImgPath + content.src; 54 | } 55 | if(content.style){ 56 | content = utils.extend({},content,false); 57 | content.style = content.style.replace(/url\s*\(/g,"url(" + langImgPath) 58 | } 59 | switch ( tagName.toLowerCase() ) { 60 | case "var": 61 | dom.parentNode.replaceChild( document.createTextNode( content ), dom ); 62 | break; 63 | case "select": 64 | var ops = dom.options; 65 | for ( var j = 0, oj; oj = ops[j]; ) { 66 | oj.innerHTML = content.options[j++]; 67 | } 68 | for ( var p in content ) { 69 | p != "options" && dom.setAttribute( p, content[p] ); 70 | } 71 | break; 72 | default : 73 | domUtils.setAttributes( dom, content); 74 | } 75 | } 76 | } ); 77 | } 78 | 79 | 80 | })(); 81 | 82 | -------------------------------------------------------------------------------- /dialogs/link/link.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 33 | 34 | 35 | 36 | 37 |
30 | 31 | 32 |
38 | 125 | 126 | 127 | -------------------------------------------------------------------------------- /dialogs/map/show.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | 百度地图API自定义地图 9 | 10 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 118 | -------------------------------------------------------------------------------- /dialogs/music/music.css: -------------------------------------------------------------------------------- 1 | .wrapper{margin: 5px 10px;} 2 | 3 | .searchBar{height:30px;padding:7px 0 3px;text-align:center;} 4 | .searchBtn{font-size:13px;height:24px;} 5 | 6 | .resultBar{width:460px;margin:5px auto;border: 1px solid #CCC;border-radius: 5px;box-shadow: 2px 2px 5px #D3D6DA;overflow: hidden;} 7 | 8 | .listPanel{overflow: hidden;} 9 | .panelon{display:block;} 10 | .paneloff{display:none} 11 | 12 | .page{width:220px;margin:20px auto;overflow: hidden;} 13 | .pageon{float:right;width:24px;line-height:24px;height:24px;margin-right: 5px;background: none;border: none;color: #000;font-weight: bold;text-align:center} 14 | .pageoff{float:right;width:24px;line-height:24px;height:24px;cursor:pointer;background-color: #fff; 15 | border: 1px solid #E7ECF0;color: #2D64B3;margin-right: 5px;text-decoration: none;text-align:center;} 16 | 17 | .m-box{width:460px;} 18 | .m-m{float: left;line-height: 20px;height: 20px;} 19 | .m-h{height:24px;line-height:24px;padding-left: 46px;background-color:#FAFAFA;border-bottom: 1px solid #DAD8D8;font-weight: bold;font-size: 12px;color: #333;} 20 | .m-l{float:left;width:40px; } 21 | .m-t{float:left;width:140px;} 22 | .m-s{float:left;width:110px;} 23 | .m-z{float:left;width:100px;} 24 | .m-try-t{float: left;width: 60px;;} 25 | 26 | .m-try{float:left;width:20px;height:20px;background:url('http://static.tieba.baidu.com/tb/editor/images/try_music.gif') no-repeat ;} 27 | .m-trying{float:left;width:20px;height:20px;background:url('http://static.tieba.baidu.com/tb/editor/images/stop_music.gif') no-repeat ;} 28 | 29 | .loading{width:95px;height:7px;font-size:7px;margin:60px auto;background:url(http://static.tieba.baidu.com/tb/editor/images/loading.gif) no-repeat} 30 | .empty{width:300px;height:40px;padding:2px;margin:50px auto;line-height:40px; color:#006699;text-align:center;} -------------------------------------------------------------------------------- /dialogs/music/music.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 插入音乐 6 | 7 | 8 | 9 | 10 |
11 | 15 |
16 | 17 |
18 |
19 |
20 |
21 | 22 | 31 | 32 | -------------------------------------------------------------------------------- /dialogs/preview/preview.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 |
29 | 30 | 40 | -------------------------------------------------------------------------------- /dialogs/scrawl/images/addimg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/scrawl/images/addimg.png -------------------------------------------------------------------------------- /dialogs/scrawl/images/brush.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/scrawl/images/brush.png -------------------------------------------------------------------------------- /dialogs/scrawl/images/delimg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/scrawl/images/delimg.png -------------------------------------------------------------------------------- /dialogs/scrawl/images/delimgH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/scrawl/images/delimgH.png -------------------------------------------------------------------------------- /dialogs/scrawl/images/empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/scrawl/images/empty.png -------------------------------------------------------------------------------- /dialogs/scrawl/images/emptyH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/scrawl/images/emptyH.png -------------------------------------------------------------------------------- /dialogs/scrawl/images/eraser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/scrawl/images/eraser.png -------------------------------------------------------------------------------- /dialogs/scrawl/images/redo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/scrawl/images/redo.png -------------------------------------------------------------------------------- /dialogs/scrawl/images/redoH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/scrawl/images/redoH.png -------------------------------------------------------------------------------- /dialogs/scrawl/images/scale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/scrawl/images/scale.png -------------------------------------------------------------------------------- /dialogs/scrawl/images/scaleH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/scrawl/images/scaleH.png -------------------------------------------------------------------------------- /dialogs/scrawl/images/size.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/scrawl/images/size.png -------------------------------------------------------------------------------- /dialogs/scrawl/images/undo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/scrawl/images/undo.png -------------------------------------------------------------------------------- /dialogs/scrawl/images/undoH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/scrawl/images/undoH.png -------------------------------------------------------------------------------- /dialogs/scrawl/scrawl.css: -------------------------------------------------------------------------------- 1 | /*common 2 | */ 3 | body{margin: 0;} 4 | table{width:100%;} 5 | table td{padding:2px 4px;vertical-align: middle;} 6 | a{text-decoration: none;} 7 | em{font-style: normal;} 8 | .border_style1{border: 1px solid #ccc;border-radius: 5px;box-shadow:2px 2px 5px #d3d6da;} 9 | /*module 10 | */ 11 | .main{margin: 8px;overflow: hidden;} 12 | 13 | .hot{float:left;height:335px;} 14 | .drawBoard{position: relative; cursor: crosshair;} 15 | .brushBorad{position: absolute;left:0;top:0;z-index: 998;} 16 | .picBoard{border: none;text-align: center;line-height: 300px;cursor: default;} 17 | .operateBar{margin-top:10px;font-size:12px;text-align: center;} 18 | .operateBar span{margin-left: 10px;} 19 | 20 | .drawToolbar{float:right;width:110px;height:300px;overflow: hidden;} 21 | .colorBar{margin-top:10px;font-size: 12px;text-align: center;} 22 | .colorBar a{display:block;width: 10px;height: 10px;border:1px solid #1006F1;border-radius: 3px; box-shadow:2px 2px 5px #d3d6da;opacity: 0.3} 23 | .sectionBar{margin-top:15px;font-size: 12px;text-align: center;} 24 | .sectionBar a{display:inline-block;width:10px;height:12px;color: #888;text-indent: -999px;opacity: 0.3} 25 | .size1{background: url('images/size.png') 1px center no-repeat ;} 26 | .size2{background: url('images/size.png') -10px center no-repeat;} 27 | .size3{background: url('images/size.png') -22px center no-repeat;} 28 | .size4{background: url('images/size.png') -35px center no-repeat;} 29 | 30 | .addImgH{position: relative;} 31 | .addImgH_form{position: absolute;left: 18px;top: -1px;width: 75px;height: 21px;opacity: 0;cursor: pointer;} 32 | .addImgH_form input{width: 100%;} 33 | /*scrawl遮罩层 34 | */ 35 | .maskLayerNull{display: none;} 36 | .maskLayer{position: absolute;top:0;left:0;width: 100%; height: 100%;opacity: 0.7; 37 | background-color: #fff;text-align:center;font-weight:bold;line-height:300px;z-index: 1000;} 38 | /*btn state 39 | */ 40 | .previousStepH .icon{display: inline-block;width:16px;height:16px;background-image: url('images/undoH.png');cursor: pointer;} 41 | .previousStepH .text{color:#888;cursor:pointer;} 42 | .previousStep .icon{display: inline-block;width:16px;height:16px;background-image: url('images/undo.png');cursor:default;} 43 | .previousStep .text{color:#ccc;cursor:default;} 44 | 45 | .nextStepH .icon{display: inline-block;width:16px;height:16px;background-image: url('images/redoH.png');cursor: pointer;} 46 | .nextStepH .text{color:#888;cursor:pointer;} 47 | .nextStep .icon{display: inline-block;width:16px;height:16px;background-image: url('images/redo.png');cursor:default;} 48 | .nextStep .text{color:#ccc;cursor:default;} 49 | 50 | .clearBoardH .icon{display: inline-block;width:16px;height:16px;background-image: url('images/emptyH.png');cursor: pointer;} 51 | .clearBoardH .text{color:#888;cursor:pointer;} 52 | .clearBoard .icon{display: inline-block;width:16px;height:16px;background-image: url('images/empty.png');cursor:default;} 53 | .clearBoard .text{color:#ccc;cursor:default;} 54 | 55 | .scaleBoardH .icon{display: inline-block;width:16px;height:16px;background-image: url('images/scaleH.png');cursor: pointer;} 56 | .scaleBoardH .text{color:#888;cursor:pointer;} 57 | .scaleBoard .icon{display: inline-block;width:16px;height:16px;background-image: url('images/scale.png');cursor:default;} 58 | .scaleBoard .text{color:#ccc;cursor:default;} 59 | 60 | .removeImgH .icon{display: inline-block;width:16px;height:16px;background-image: url('images/delimgH.png');cursor: pointer;} 61 | .removeImgH .text{color:#888;cursor:pointer;} 62 | .removeImg .icon{display: inline-block;width:16px;height:16px;background-image: url('images/delimg.png');cursor:default;} 63 | .removeImg .text{color:#ccc;cursor:default;} 64 | 65 | .addImgH .icon{vertical-align:top;display: inline-block;width:16px;height:16px;background-image: url('images/addimg.png')} 66 | .addImgH .text{color:#888;cursor:pointer;} 67 | /*icon 68 | */ 69 | .brushIcon{display: inline-block;width:16px;height:16px;background-image: url('images/brush.png')} 70 | .eraserIcon{display: inline-block;width:16px;height:16px;background-image: url('images/eraser.png')} 71 | 72 | 73 | -------------------------------------------------------------------------------- /dialogs/scrawl/scrawl.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
13 |
14 | 15 |
16 |
17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 |
35 |
36 |
37 |
38 |
39 | 40 | 1 41 | 3 42 | 5 43 | 7 44 |
45 |
46 | 47 | 1 48 | 3 49 | 5 50 | 7 51 |
52 |
53 |
54 | 55 | 56 |
57 | 59 |
60 | 61 |
62 |
63 |
64 | 65 | 66 | 67 | 68 |
69 |
70 |
71 |
72 | 73 | 74 | 94 | 95 | -------------------------------------------------------------------------------- /dialogs/searchreplace/searchreplace.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | 16 | 17 | 18 |
19 | 23 |
24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 39 | 40 | 41 | 45 | 46 | 47 | 50 | 51 | 52 | 55 | 56 |
:
37 | 38 |
42 | 43 | 44 |
48 |   49 |
53 | 54 |
57 |
58 |
59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 77 | 78 | 79 | 85 | 86 | 87 | 90 | 91 | 92 | 95 | 96 |
:
:
75 | 76 |
80 | 81 | 82 | 83 | 84 |
88 |   89 |
93 | 94 |
97 |
98 |
99 |
100 | 101 | 102 | -------------------------------------------------------------------------------- /dialogs/searchreplace/searchreplace.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created with JetBrains PhpStorm. 3 | * User: xuheng 4 | * Date: 12-9-26 5 | * Time: 下午12:29 6 | * To change this template use File | Settings | File Templates. 7 | */ 8 | 9 | //清空上次查选的痕迹 10 | editor.firstForSR = 0; 11 | editor.currentRangeForSR = null; 12 | //给tab注册切换事件 13 | /** 14 | * tab点击处理事件 15 | * @param tabHeads 16 | * @param tabBodys 17 | * @param obj 18 | */ 19 | function clickHandler( tabHeads,tabBodys,obj ) { 20 | //head样式更改 21 | for ( var k = 0, len = tabHeads.length; k < len; k++ ) { 22 | tabHeads[k].className = ""; 23 | } 24 | obj.className = "focus"; 25 | //body显隐 26 | var tabSrc = obj.getAttribute( "tabSrc" ); 27 | for ( var j = 0, length = tabBodys.length; j < length; j++ ) { 28 | var body = tabBodys[j], 29 | id = body.getAttribute( "id" ); 30 | if ( id != tabSrc ) { 31 | body.style.zIndex = 1; 32 | } else { 33 | body.style.zIndex = 200; 34 | } 35 | } 36 | 37 | } 38 | 39 | /** 40 | * TAB切换 41 | * @param tabParentId tab的父节点ID或者对象本身 42 | */ 43 | function switchTab( tabParentId ) { 44 | var tabElements = $G( tabParentId ).children, 45 | tabHeads = tabElements[0].children, 46 | tabBodys = tabElements[1].children; 47 | 48 | for ( var i = 0, length = tabHeads.length; i < length; i++ ) { 49 | var head = tabHeads[i]; 50 | if ( head.className === "focus" )clickHandler(tabHeads,tabBodys, head ); 51 | head.onclick = function () { 52 | clickHandler(tabHeads,tabBodys,this); 53 | } 54 | } 55 | } 56 | $G('searchtab').onmousedown = function(){ 57 | $G('search-msg').innerHTML = ''; 58 | $G('replace-msg').innerHTML = '' 59 | } 60 | //是否区分大小写 61 | function getMatchCase(id) { 62 | return $G(id).checked ? true : false; 63 | } 64 | //查找 65 | $G("nextFindBtn").onclick = function (txt, dir, mcase) { 66 | var findtxt = $G("findtxt").value, obj; 67 | if (!findtxt) { 68 | return false; 69 | } 70 | obj = { 71 | searchStr:findtxt, 72 | dir:1, 73 | casesensitive:getMatchCase("matchCase") 74 | }; 75 | if (!frCommond(obj)) { 76 | var bk = editor.selection.getRange().createBookmark(); 77 | $G('search-msg').innerHTML = lang.getEnd; 78 | editor.selection.getRange().moveToBookmark(bk).select(); 79 | 80 | 81 | } 82 | }; 83 | $G("nextReplaceBtn").onclick = function (txt, dir, mcase) { 84 | var findtxt = $G("findtxt1").value, obj; 85 | if (!findtxt) { 86 | return false; 87 | } 88 | obj = { 89 | searchStr:findtxt, 90 | dir:1, 91 | casesensitive:getMatchCase("matchCase1") 92 | }; 93 | frCommond(obj); 94 | }; 95 | $G("preFindBtn").onclick = function (txt, dir, mcase) { 96 | var findtxt = $G("findtxt").value, obj; 97 | if (!findtxt) { 98 | return false; 99 | } 100 | obj = { 101 | searchStr:findtxt, 102 | dir:-1, 103 | casesensitive:getMatchCase("matchCase") 104 | }; 105 | if (!frCommond(obj)) { 106 | $G('search-msg').innerHTML = lang.getStart; 107 | } 108 | }; 109 | $G("preReplaceBtn").onclick = function (txt, dir, mcase) { 110 | var findtxt = $G("findtxt1").value, obj; 111 | if (!findtxt) { 112 | return false; 113 | } 114 | obj = { 115 | searchStr:findtxt, 116 | dir:-1, 117 | casesensitive:getMatchCase("matchCase1") 118 | }; 119 | frCommond(obj); 120 | }; 121 | //替换 122 | $G("repalceBtn").onclick = function () { 123 | var findtxt = $G("findtxt1").value.replace(/^\s|\s$/g, ""), obj, 124 | replacetxt = $G("replacetxt").value.replace(/^\s|\s$/g, ""); 125 | if (!findtxt) { 126 | return false; 127 | } 128 | if (findtxt == replacetxt || (!getMatchCase("matchCase1") && findtxt.toLowerCase() == replacetxt.toLowerCase())) { 129 | return false; 130 | } 131 | obj = { 132 | searchStr:findtxt, 133 | dir:1, 134 | casesensitive:getMatchCase("matchCase1"), 135 | replaceStr:replacetxt 136 | }; 137 | frCommond(obj); 138 | }; 139 | //全部替换 140 | $G("repalceAllBtn").onclick = function () { 141 | var findtxt = $G("findtxt1").value.replace(/^\s|\s$/g, ""), obj, 142 | replacetxt = $G("replacetxt").value.replace(/^\s|\s$/g, ""); 143 | if (!findtxt) { 144 | return false; 145 | } 146 | if (findtxt == replacetxt || (!getMatchCase("matchCase1") && findtxt.toLowerCase() == replacetxt.toLowerCase())) { 147 | return false; 148 | } 149 | obj = { 150 | searchStr:findtxt, 151 | casesensitive:getMatchCase("matchCase1"), 152 | replaceStr:replacetxt, 153 | all:true 154 | }; 155 | var num = frCommond(obj); 156 | if (num) { 157 | $G('replace-msg').innerHTML = lang.countMsg.replace("{#count}", num); 158 | } 159 | }; 160 | //执行 161 | var frCommond = function (obj) { 162 | return editor.execCommand("searchreplace", obj); 163 | }; 164 | switchTab("searchtab"); -------------------------------------------------------------------------------- /dialogs/snapscreen/snapscreen.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 47 | 48 | 49 |
50 |

51 |
52 |
53 |
54 |
55 |
56 |
57 | 58 | -------------------------------------------------------------------------------- /dialogs/spechars/spechars.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | 14 | 15 | 16 |
17 |
18 |
19 | 20 | 21 | -------------------------------------------------------------------------------- /dialogs/spechars/spechars.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created with JetBrains PhpStorm. 3 | * User: xuheng 4 | * Date: 12-9-26 5 | * Time: 下午1:09 6 | * To change this template use File | Settings | File Templates. 7 | */ 8 | var charsContent = [ 9 | { name:"tsfh", title:lang.tsfh, content:toArray("、,。,·,ˉ,ˇ,¨,〃,々,—,~,‖,…,‘,’,“,”,〔,〕,〈,〉,《,》,「,」,『,』,〖,〗,【,】,±,×,÷,∶,∧,∨,∑,∏,∪,∩,∈,∷,√,⊥,∥,∠,⌒,⊙,∫,∮,≡,≌,≈,∽,∝,≠,≮,≯,≤,≥,∞,∵,∴,♂,♀,°,′,″,℃,$,¤,¢,£,‰,§,№,☆,★,○,●,◎,◇,◆,□,■,△,▲,※,→,←,↑,↓,〓,〡,〢,〣,〤,〥,〦,〧,〨,〩,㊣,㎎,㎏,㎜,㎝,㎞,㎡,㏄,㏎,㏑,㏒,㏕,︰,¬,¦,℡,ˊ,ˋ,˙,–,―,‥,‵,℅,℉,↖,↗,↘,↙,∕,∟,∣,≒,≦,≧,⊿,═,║,╒,╓,╔,╕,╖,╗,╘,╙,╚,╛,╜,╝,╞,╟,╠,╡,╢,╣,╤,╥,╦,╧,╨,╩,╪,╫,╬,╭,╮,╯,╰,╱,╲,╳,▁,▂,▃,▄,▅,▆,▇,�,█,▉,▊,▋,▌,▍,▎,▏,▓,▔,▕,▼,▽,◢,◣,◤,◥,☉,⊕,〒,〝,〞")}, 10 | { name:"lmsz", title:lang.lmsz, content:toArray("ⅰ,ⅱ,ⅲ,ⅳ,ⅴ,ⅵ,ⅶ,ⅷ,ⅸ,ⅹ,Ⅰ,Ⅱ,Ⅲ,Ⅳ,Ⅴ,Ⅵ,Ⅶ,Ⅷ,Ⅸ,Ⅹ,Ⅺ,Ⅻ")}, 11 | { name:"szfh", title:lang.szfh, content:toArray("⒈,⒉,⒊,⒋,⒌,⒍,⒎,⒏,⒐,⒑,⒒,⒓,⒔,⒕,⒖,⒗,⒘,⒙,⒚,⒛,⑴,⑵,⑶,⑷,⑸,⑹,⑺,⑻,⑼,⑽,⑾,⑿,⒀,⒁,⒂,⒃,⒄,⒅,⒆,⒇,①,②,③,④,⑤,⑥,⑦,⑧,⑨,⑩,㈠,㈡,㈢,㈣,㈤,㈥,㈦,㈧,㈨,㈩")}, 12 | { name:"rwfh", title:lang.rwfh, content:toArray("ぁ,あ,ぃ,い,ぅ,う,ぇ,え,ぉ,お,か,が,き,ぎ,く,ぐ,け,げ,こ,ご,さ,ざ,し,じ,す,ず,せ,ぜ,そ,ぞ,た,だ,ち,ぢ,っ,つ,づ,て,で,と,ど,な,に,ぬ,ね,の,は,ば,ぱ,ひ,び,ぴ,ふ,ぶ,ぷ,へ,べ,ぺ,ほ,ぼ,ぽ,ま,み,む,め,も,ゃ,や,ゅ,ゆ,ょ,よ,ら,り,る,れ,ろ,ゎ,わ,ゐ,ゑ,を,ん,ァ,ア,ィ,イ,ゥ,ウ,ェ,エ,ォ,オ,カ,ガ,キ,ギ,ク,グ,ケ,ゲ,コ,ゴ,サ,ザ,シ,ジ,ス,ズ,セ,ゼ,ソ,ゾ,タ,ダ,チ,ヂ,ッ,ツ,ヅ,テ,デ,ト,ド,ナ,ニ,ヌ,ネ,ノ,ハ,バ,パ,ヒ,ビ,ピ,フ,ブ,プ,ヘ,ベ,ペ,ホ,ボ,ポ,マ,ミ,ム,メ,モ,ャ,ヤ,ュ,ユ,ョ,ヨ,ラ,リ,ル,レ,ロ,ヮ,ワ,ヰ,ヱ,ヲ,ン,ヴ,ヵ,ヶ")}, 13 | { name:"xlzm", title:lang.xlzm, content:toArray("Α,Β,Γ,Δ,Ε,Ζ,Η,Θ,Ι,Κ,Λ,Μ,Ν,Ξ,Ο,Π,Ρ,Σ,Τ,Υ,Φ,Χ,Ψ,Ω,α,β,γ,δ,ε,ζ,η,θ,ι,κ,λ,μ,ν,ξ,ο,π,ρ,σ,τ,υ,φ,χ,ψ,ω")}, 14 | { name:"ewzm", title:lang.ewzm, content:toArray("А,Б,В,Г,Д,Е,Ё,Ж,З,И,Й,К,Л,М,Н,О,П,Р,С,Т,У,Ф,Х,Ц,Ч,Ш,Щ,Ъ,Ы,Ь,Э,Ю,Я,а,б,в,г,д,е,ё,ж,з,и,й,к,л,м,н,о,п,р,с,т,у,ф,х,ц,ч,ш,щ,ъ,ы,ь,э,ю,я")}, 15 | { name:"pyzm", title:lang.pyzm, content:toArray("ā,á,ǎ,à,ē,é,ě,è,ī,í,ǐ,ì,ō,ó,ǒ,ò,ū,ú,ǔ,ù,ǖ,ǘ,ǚ,ǜ,ü")}, 16 | { name:"yyyb", title:lang.yyyb, content:toArray("i:,i,e,æ,ʌ,ə:,ə,u:,u,ɔ:,ɔ,a:,ei,ai,ɔi,əu,au,iə,εə,uə,p,t,k,b,d,g,f,s,ʃ,θ,h,v,z,ʒ,ð,tʃ,tr,ts,dʒ,dr,dz,m,n,ŋ,l,r,w,j,")}, 17 | { name:"zyzf", title:lang.zyzf, content:toArray("ㄅ,ㄆ,ㄇ,ㄈ,ㄉ,ㄊ,ㄋ,ㄌ,ㄍ,ㄎ,ㄏ,ㄐ,ㄑ,ㄒ,ㄓ,ㄔ,ㄕ,ㄖ,ㄗ,ㄘ,ㄙ,ㄚ,ㄛ,ㄜ,ㄝ,ㄞ,ㄟ,ㄠ,ㄡ,ㄢ,ㄣ,ㄤ,ㄥ,ㄦ,ㄧ,ㄨ")} 18 | ]; 19 | (function createTab(content) { 20 | for (var i = 0, ci; ci = content[i++];) { 21 | var span = document.createElement("span"); 22 | span.setAttribute("tabSrc", ci.name); 23 | span.innerHTML = ci.title; 24 | if (i == 1)span.className = "focus"; 25 | domUtils.on(span, "click", function () { 26 | var tmps = $G("tabHeads").children; 27 | for (var k = 0, sk; sk = tmps[k++];) { 28 | sk.className = ""; 29 | } 30 | tmps = $G("tabBodys").children; 31 | for (var k = 0, sk; sk = tmps[k++];) { 32 | sk.style.display = "none"; 33 | } 34 | this.className = "focus"; 35 | $G(this.getAttribute("tabSrc")).style.display = ""; 36 | }); 37 | $G("tabHeads").appendChild(span); 38 | domUtils.insertAfter(span, document.createTextNode("\n")); 39 | var div = document.createElement("div"); 40 | div.id = ci.name; 41 | div.style.display = (i == 1) ? "" : "none"; 42 | var cons = ci.content; 43 | for (var j = 0, con; con = cons[j++];) { 44 | var charSpan = document.createElement("span"); 45 | charSpan.innerHTML = con; 46 | domUtils.on(charSpan, "click", function () { 47 | editor.execCommand("insertHTML", this.innerHTML); 48 | dialog.close(); 49 | }); 50 | div.appendChild(charSpan); 51 | } 52 | $G("tabBodys").appendChild(div); 53 | } 54 | })(charsContent); 55 | function toArray(str) { 56 | return str.split(","); 57 | } 58 | -------------------------------------------------------------------------------- /dialogs/table/dragicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/table/dragicon.png -------------------------------------------------------------------------------- /dialogs/table/edittable.css: -------------------------------------------------------------------------------- 1 | body{ 2 | overflow: hidden; 3 | width: 540px; 4 | } 5 | .wrapper { 6 | margin: 10px auto 0; 7 | font-size: 12px; 8 | overflow: hidden; 9 | width: 520px; 10 | height: 315px; 11 | } 12 | 13 | .clear { 14 | clear: both; 15 | } 16 | 17 | .wrapper .left { 18 | float: left; 19 | margin-left: 10px;; 20 | } 21 | 22 | .wrapper .right { 23 | float: right; 24 | border-left: 2px dotted #EDEDED; 25 | padding-left: 15px; 26 | } 27 | 28 | .section { 29 | margin-bottom: 15px; 30 | width: 240px; 31 | overflow: hidden; 32 | } 33 | 34 | .section h3 { 35 | font-weight: bold; 36 | padding: 5px 0; 37 | margin-bottom: 10px; 38 | border-bottom: 1px solid #EDEDED; 39 | font-size: 12px; 40 | } 41 | 42 | .section ul { 43 | list-style: none; 44 | overflow: hidden; 45 | clear: both; 46 | 47 | } 48 | 49 | .section li { 50 | float: left; 51 | width: 120px;; 52 | } 53 | 54 | .section .tone { 55 | width: 80px;; 56 | } 57 | 58 | .section .preview { 59 | width: 220px; 60 | } 61 | 62 | .section .preview table { 63 | text-align: center; 64 | vertical-align: middle; 65 | color: #666; 66 | } 67 | 68 | .section .preview caption { 69 | font-weight: bold; 70 | } 71 | 72 | .section .preview td { 73 | border-width: 1px; 74 | border-style: solid; 75 | height: 22px; 76 | } 77 | 78 | .section .preview th { 79 | border-style: solid; 80 | border-color: #DDD; 81 | border-width: 2px 1px 1px 1px; 82 | height: 22px; 83 | background-color: #F7F7F7; 84 | } -------------------------------------------------------------------------------- /dialogs/table/edittable.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 |
11 |
12 |

13 |
    14 |
  • 15 | 16 |
  • 17 |
  • 18 | 19 |
  • 20 |
21 |
    22 |
  • 23 | 24 |
  • 25 |
  • 26 | 27 |
  • 28 |
29 |
30 |
31 |
32 |

33 |
    34 |
  • 35 | 36 |
  • 37 |
  • 38 | 39 |
  • 40 |
41 |
42 |
43 |
44 |

45 |
    46 |
  • 47 | 48 | 49 |
  • 50 |
51 |
52 |
53 |
54 |
55 |
56 |

57 |
58 |
59 |
60 |
61 |
62 | 63 | 64 | -------------------------------------------------------------------------------- /dialogs/table/edittd.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 16 | 17 | 18 |
19 | 20 | 21 |
22 | 60 | 61 | -------------------------------------------------------------------------------- /dialogs/table/edittip.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 表格删除提示 5 | 6 | 17 | 18 | 19 |
20 |
21 | 22 |
23 |
24 | 25 |
26 |
27 | 32 | 33 | -------------------------------------------------------------------------------- /dialogs/template/images/bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/template/images/bg.gif -------------------------------------------------------------------------------- /dialogs/template/images/pre0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/template/images/pre0.png -------------------------------------------------------------------------------- /dialogs/template/images/pre1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/template/images/pre1.png -------------------------------------------------------------------------------- /dialogs/template/images/pre2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/template/images/pre2.png -------------------------------------------------------------------------------- /dialogs/template/images/pre3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/template/images/pre3.png -------------------------------------------------------------------------------- /dialogs/template/images/pre4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/template/images/pre4.png -------------------------------------------------------------------------------- /dialogs/template/template.css: -------------------------------------------------------------------------------- 1 | .wrap{ padding: 5px;font-size: 14px;} 2 | .left{width:425px;float: left;} 3 | .right{width:160px;border: 1px solid #ccc;float: right;padding: 5px;margin-right: 5px;} 4 | .right .pre{height: 332px;overflow-y: auto;} 5 | .right .preitem{border: white 1px solid;margin: 5px 0;padding: 2px 0;} 6 | .right .preitem:hover{background-color: lemonChiffon;cursor: pointer;border: #ccc 1px solid;} 7 | .right .preitem img{display: block;margin: 0 auto;width:100px;} 8 | .clear{clear: both;} 9 | .top{height:26px;line-height: 26px;padding: 5px;} 10 | .bottom{height:320px;width:100%;margin: 0 auto;} 11 | .transparent{ background: url("images/bg.gif") repeat;} 12 | .bottom table tr td{border:1px dashed #ccc;} 13 | #colorPicker{width: 17px;height: 17px;border: 1px solid #CCC;display: inline-block;border-radius: 3px;box-shadow: 2px 2px 5px #D3D6DA;} 14 | .border_style1{padding:2px;border: 1px solid #ccc;border-radius: 5px;box-shadow:2px 2px 5px #d3d6da;} 15 | p{margin: 5px 0} 16 | table{clear:both;margin-bottom:10px;border-collapse:collapse;word-break:break-all;} 17 | li{clear:both} 18 | ol{padding-left:40px; } -------------------------------------------------------------------------------- /dialogs/template/template.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 |
12 |
13 | 14 |
15 |
16 |
17 |
18 | 19 |
20 |
21 |
22 |
23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /dialogs/template/template.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created with JetBrains PhpStorm. 3 | * User: xuheng 4 | * Date: 12-8-8 5 | * Time: 下午2:09 6 | * To change this template use File | Settings | File Templates. 7 | */ 8 | (function () { 9 | var me = editor, 10 | preview = $G( "preview" ), 11 | preitem = $G( "preitem" ), 12 | tmps = templates, 13 | currentTmp; 14 | var initPre = function () { 15 | var str = ""; 16 | for ( var i = 0, tmp; tmp = tmps[i++]; ) { 17 | str += '
'; 18 | } 19 | preitem.innerHTML = str; 20 | }; 21 | var pre = function ( n ) { 22 | var tmp = tmps[n - 1]; 23 | currentTmp = tmp; 24 | clearItem(); 25 | domUtils.setStyles( preitem.childNodes[n - 1], { 26 | "background-color":"lemonChiffon", 27 | "border":"#ccc 1px solid" 28 | } ); 29 | preview.innerHTML = tmp.preHtml ? tmp.preHtml : ""; 30 | }; 31 | var clearItem = function () { 32 | var items = preitem.children; 33 | for ( var i = 0, item; item = items[i++]; ) { 34 | domUtils.setStyles( item, { 35 | "background-color":"", 36 | "border":"white 1px solid" 37 | } ); 38 | } 39 | }; 40 | dialog.onok = function () { 41 | if ( !$G( "issave" ).checked ){ 42 | me.execCommand( "cleardoc" ); 43 | } 44 | var obj = { 45 | html:currentTmp && currentTmp.html 46 | }; 47 | me.execCommand( "template", obj ); 48 | }; 49 | initPre(); 50 | window.pre = pre; 51 | pre(2) 52 | 53 | })(); -------------------------------------------------------------------------------- /dialogs/video/images/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/video/images/bg.png -------------------------------------------------------------------------------- /dialogs/video/images/center_focus.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/video/images/center_focus.jpg -------------------------------------------------------------------------------- /dialogs/video/images/file-icons.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/video/images/file-icons.gif -------------------------------------------------------------------------------- /dialogs/video/images/file-icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/video/images/file-icons.png -------------------------------------------------------------------------------- /dialogs/video/images/icons.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/video/images/icons.gif -------------------------------------------------------------------------------- /dialogs/video/images/icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/video/images/icons.png -------------------------------------------------------------------------------- /dialogs/video/images/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/video/images/image.png -------------------------------------------------------------------------------- /dialogs/video/images/left_focus.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/video/images/left_focus.jpg -------------------------------------------------------------------------------- /dialogs/video/images/none_focus.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/video/images/none_focus.jpg -------------------------------------------------------------------------------- /dialogs/video/images/progress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/video/images/progress.png -------------------------------------------------------------------------------- /dialogs/video/images/right_focus.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/video/images/right_focus.jpg -------------------------------------------------------------------------------- /dialogs/video/images/success.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/video/images/success.gif -------------------------------------------------------------------------------- /dialogs/video/images/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/video/images/success.png -------------------------------------------------------------------------------- /dialogs/video/video.html: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 |
13 |
14 | 15 | 16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | 24 | 25 | 26 | 27 |
28 |
29 |
30 | 31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 | 0% 41 | 42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
    54 |
  • 55 |
56 |
57 |
58 |
59 |
60 | 61 | 62 | 63 | 64 |
65 |
66 |
67 | 68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /dialogs/webapp/webapp.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | 14 |
15 |
16 |
17 | 52 | 53 | -------------------------------------------------------------------------------- /dialogs/wordimage/fClipboard_ueditor.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/wordimage/fClipboard_ueditor.swf -------------------------------------------------------------------------------- /dialogs/wordimage/imageUploader.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/dialogs/wordimage/imageUploader.swf -------------------------------------------------------------------------------- /dialogs/wordimage/wordimage.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by JetBrains PhpStorm. 3 | * User: taoqili 4 | * Date: 12-1-30 5 | * Time: 下午12:50 6 | * To change this template use File | Settings | File Templates. 7 | */ 8 | 9 | 10 | 11 | var wordImage = {}; 12 | //(function(){ 13 | var g = baidu.g, 14 | flashObj,flashContainer; 15 | 16 | wordImage.init = function(opt, callbacks) { 17 | showLocalPath("localPath"); 18 | //createCopyButton("clipboard","localPath"); 19 | createFlashUploader(opt, callbacks); 20 | addUploadListener(); 21 | addOkListener(); 22 | }; 23 | 24 | function hideFlash(){ 25 | flashObj = null; 26 | flashContainer.innerHTML = ""; 27 | } 28 | function addOkListener() { 29 | dialog.onok = function() { 30 | if (!imageUrls.length) return; 31 | var urlPrefix = editor.getOpt('imageUrlPrefix'), 32 | images = domUtils.getElementsByTagName(editor.document,"img"); 33 | editor.fireEvent('saveScene'); 34 | for (var i = 0,img; img = images[i++];) { 35 | var src = img.getAttribute("word_img"); 36 | if (!src) continue; 37 | for (var j = 0,url; url = imageUrls[j++];) { 38 | if (src.indexOf(url.original.replace(" ","")) != -1) { 39 | img.src = urlPrefix + url.url; 40 | img.setAttribute("_src", urlPrefix + url.url); //同时修改"_src"属性 41 | img.setAttribute("title",url.title); 42 | domUtils.removeAttributes(img, ["word_img","style","width","height"]); 43 | editor.fireEvent("selectionchange"); 44 | break; 45 | } 46 | } 47 | } 48 | editor.fireEvent('saveScene'); 49 | hideFlash(); 50 | }; 51 | dialog.oncancel = function(){ 52 | hideFlash(); 53 | } 54 | } 55 | 56 | /** 57 | * 绑定开始上传事件 58 | */ 59 | function addUploadListener() { 60 | g("upload").onclick = function () { 61 | flashObj.upload(); 62 | this.style.display = "none"; 63 | }; 64 | } 65 | 66 | function showLocalPath(id) { 67 | //单张编辑 68 | var img = editor.selection.getRange().getClosedNode(); 69 | var images = editor.execCommand('wordimage'); 70 | if(images.length==1 || img && img.tagName == 'IMG'){ 71 | g(id).value = images[0]; 72 | return; 73 | } 74 | var path = images[0]; 75 | var leftSlashIndex = path.lastIndexOf("/")||0, //不同版本的doc和浏览器都可能影响到这个符号,故直接判断两种 76 | rightSlashIndex = path.lastIndexOf("\\")||0, 77 | separater = leftSlashIndex > rightSlashIndex ? "/":"\\" ; 78 | 79 | path = path.substring(0, path.lastIndexOf(separater)+1); 80 | g(id).value = path; 81 | } 82 | 83 | function createFlashUploader(opt, callbacks) { 84 | //由于lang.flashI18n是静态属性,不可以直接进行修改,否则会影响到后续内容 85 | var i18n = utils.extend({},lang.flashI18n); 86 | //处理图片资源地址的编码,补全等问题 87 | for(var i in i18n){ 88 | if(!(i in {"lang":1,"uploadingTF":1,"imageTF":1,"textEncoding":1}) && i18n[i]){ 89 | i18n[i] = encodeURIComponent(editor.options.langPath + editor.options.lang + "/images/" + i18n[i]); 90 | } 91 | } 92 | opt = utils.extend(opt,i18n,false); 93 | var option = { 94 | createOptions:{ 95 | id:'flash', 96 | url:opt.flashUrl, 97 | width:opt.width, 98 | height:opt.height, 99 | errorMessage:lang.flashError, 100 | wmode:browser.safari ? 'transparent' : 'window', 101 | ver:'10.0.0', 102 | vars:opt, 103 | container:opt.container 104 | } 105 | }; 106 | 107 | option = extendProperty(callbacks, option); 108 | flashObj = new baidu.flash.imageUploader(option); 109 | flashContainer = $G(opt.container); 110 | } 111 | 112 | function extendProperty(fromObj, toObj) { 113 | for (var i in fromObj) { 114 | if (!toObj[i]) { 115 | toObj[i] = fromObj[i]; 116 | } 117 | } 118 | return toObj; 119 | } 120 | 121 | //})(); 122 | 123 | function getPasteData(id) { 124 | baidu.g("msg").innerHTML = lang.copySuccess + "
"; 125 | setTimeout(function() { 126 | baidu.g("msg").innerHTML = ""; 127 | }, 5000); 128 | return baidu.g(id).value; 129 | } 130 | 131 | function createCopyButton(id, dataFrom) { 132 | baidu.swf.create({ 133 | id:"copyFlash", 134 | url:"fClipboard_ueditor.swf", 135 | width:"58", 136 | height:"25", 137 | errorMessage:"", 138 | bgColor:"#CBCBCB", 139 | wmode:"transparent", 140 | ver:"10.0.0", 141 | vars:{ 142 | tid:dataFrom 143 | } 144 | }, id 145 | ); 146 | 147 | var clipboard = baidu.swf.getMovie("copyFlash"); 148 | var clipinterval = setInterval(function() { 149 | if (clipboard && clipboard.flashInit) { 150 | clearInterval(clipinterval); 151 | clipboard.setHandCursor(true); 152 | clipboard.setContentFuncName("getPasteData"); 153 | //clipboard.setMEFuncName("mouseEventHandler"); 154 | } 155 | }, 500); 156 | } 157 | createCopyButton("clipboard", "localPath"); -------------------------------------------------------------------------------- /lang/en/images/addimage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/lang/en/images/addimage.png -------------------------------------------------------------------------------- /lang/en/images/alldeletebtnhoverskin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/lang/en/images/alldeletebtnhoverskin.png -------------------------------------------------------------------------------- /lang/en/images/alldeletebtnupskin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/lang/en/images/alldeletebtnupskin.png -------------------------------------------------------------------------------- /lang/en/images/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/lang/en/images/background.png -------------------------------------------------------------------------------- /lang/en/images/button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/lang/en/images/button.png -------------------------------------------------------------------------------- /lang/en/images/copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/lang/en/images/copy.png -------------------------------------------------------------------------------- /lang/en/images/deletedisable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/lang/en/images/deletedisable.png -------------------------------------------------------------------------------- /lang/en/images/deleteenable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/lang/en/images/deleteenable.png -------------------------------------------------------------------------------- /lang/en/images/listbackground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/lang/en/images/listbackground.png -------------------------------------------------------------------------------- /lang/en/images/localimage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/lang/en/images/localimage.png -------------------------------------------------------------------------------- /lang/en/images/music.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/lang/en/images/music.png -------------------------------------------------------------------------------- /lang/en/images/rotateleftdisable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/lang/en/images/rotateleftdisable.png -------------------------------------------------------------------------------- /lang/en/images/rotateleftenable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/lang/en/images/rotateleftenable.png -------------------------------------------------------------------------------- /lang/en/images/rotaterightdisable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/lang/en/images/rotaterightdisable.png -------------------------------------------------------------------------------- /lang/en/images/rotaterightenable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/lang/en/images/rotaterightenable.png -------------------------------------------------------------------------------- /lang/en/images/upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/lang/en/images/upload.png -------------------------------------------------------------------------------- /lang/zh-cn/images/copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/lang/zh-cn/images/copy.png -------------------------------------------------------------------------------- /lang/zh-cn/images/localimage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/lang/zh-cn/images/localimage.png -------------------------------------------------------------------------------- /lang/zh-cn/images/music.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/lang/zh-cn/images/music.png -------------------------------------------------------------------------------- /lang/zh-cn/images/upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/lang/zh-cn/images/upload.png -------------------------------------------------------------------------------- /php/action_crawler.php: -------------------------------------------------------------------------------- 1 | $CONFIG['catcherPathFormat'], 14 | "maxSize" => $CONFIG['catcherMaxSize'], 15 | "allowFiles" => $CONFIG['catcherAllowFiles'], 16 | "oriName" => "remote.png" 17 | ); 18 | $fieldName = $CONFIG['catcherFieldName']; 19 | 20 | /* 抓取远程图片 */ 21 | $list = array(); 22 | if (isset($_POST[$fieldName])) { 23 | $source = $_POST[$fieldName]; 24 | } else { 25 | $source = $_GET[$fieldName]; 26 | } 27 | foreach ($source as $imgUrl) { 28 | $item = new Uploader($imgUrl, $config, "remote"); 29 | $info = $item->getFileInfo(); 30 | array_push($list, array( 31 | "state" => $info["state"], 32 | "url" => $info["url"], 33 | "size" => $info["size"], 34 | "title" => htmlspecialchars($info["title"]), 35 | "original" => htmlspecialchars($info["original"]), 36 | "source" => htmlspecialchars($imgUrl) 37 | )); 38 | } 39 | 40 | /* 返回抓取数据 */ 41 | return json_encode(array( 42 | 'state'=> count($list) ? 'SUCCESS':'ERROR', 43 | 'list'=> $list 44 | )); -------------------------------------------------------------------------------- /php/action_list.php: -------------------------------------------------------------------------------- 1 | "no match file", 38 | "list" => array(), 39 | "start" => $start, 40 | "total" => count($files) 41 | )); 42 | } 43 | 44 | /* 获取指定范围的列表 */ 45 | $len = count($files); 46 | for ($i = min($end, $len) - 1, $list = array(); $i < $len && $i >= 0 && $i >= $start; $i--){ 47 | $list[] = $files[$i]; 48 | } 49 | //倒序 50 | //for ($i = $end, $list = array(); $i < $len && $i < $end; $i++){ 51 | // $list[] = $files[$i]; 52 | //} 53 | 54 | /* 返回数据 */ 55 | $result = json_encode(array( 56 | "state" => "SUCCESS", 57 | "list" => $list, 58 | "start" => $start, 59 | "total" => count($files) 60 | )); 61 | 62 | return $result; 63 | 64 | 65 | /** 66 | * 遍历获取目录下的指定类型的文件 67 | * @param $path 68 | * @param array $files 69 | * @return array 70 | */ 71 | function getfiles($path, $allowFiles, &$files = array()) 72 | { 73 | if (!is_dir($path)) return null; 74 | if(substr($path, strlen($path) - 1) != '/') $path .= '/'; 75 | $handle = opendir($path); 76 | while (false !== ($file = readdir($handle))) { 77 | if ($file != '.' && $file != '..') { 78 | $path2 = $path . $file; 79 | if (is_dir($path2)) { 80 | getfiles($path2, $allowFiles, $files); 81 | } else { 82 | if (preg_match("/\.(".$allowFiles.")$/i", $file)) { 83 | $files[] = array( 84 | 'url'=> substr($path2, strlen($_SERVER['DOCUMENT_ROOT'])), 85 | 'mtime'=> filemtime($path2) 86 | ); 87 | } 88 | } 89 | } 90 | } 91 | return $files; 92 | } -------------------------------------------------------------------------------- /php/action_upload.php: -------------------------------------------------------------------------------- 1 | $CONFIG['imagePathFormat'], 18 | "maxSize" => $CONFIG['imageMaxSize'], 19 | "allowFiles" => $CONFIG['imageAllowFiles'] 20 | ); 21 | $fieldName = $CONFIG['imageFieldName']; 22 | break; 23 | case 'uploadscrawl': 24 | $config = array( 25 | "pathFormat" => $CONFIG['scrawlPathFormat'], 26 | "maxSize" => $CONFIG['scrawlMaxSize'], 27 | "allowFiles" => $CONFIG['scrawlAllowFiles'], 28 | "oriName" => "scrawl.png" 29 | ); 30 | $fieldName = $CONFIG['scrawlFieldName']; 31 | $base64 = "base64"; 32 | break; 33 | case 'uploadvideo': 34 | $config = array( 35 | "pathFormat" => $CONFIG['videoPathFormat'], 36 | "maxSize" => $CONFIG['videoMaxSize'], 37 | "allowFiles" => $CONFIG['videoAllowFiles'] 38 | ); 39 | $fieldName = $CONFIG['videoFieldName']; 40 | break; 41 | case 'uploadfile': 42 | default: 43 | $config = array( 44 | "pathFormat" => $CONFIG['filePathFormat'], 45 | "maxSize" => $CONFIG['fileMaxSize'], 46 | "allowFiles" => $CONFIG['fileAllowFiles'] 47 | ); 48 | $fieldName = $CONFIG['fileFieldName']; 49 | break; 50 | } 51 | 52 | /* 生成上传实例对象并完成上传 */ 53 | $up = new Uploader($fieldName, $config, $base64); 54 | 55 | $info = $up->getFileInfo(); 56 | 57 | // 将文件同步存储到又拍云 58 | 59 | $upyun = new UpYun($servename, $username, $password); 60 | 61 | try { 62 | $uri = strstr($info["url"], "upload"); 63 | 64 | if (file_exists($uri)) { 65 | $opts = array( 66 | UpYun::CONTENT_MD5 => md5(file_get_contents($uri)) 67 | ); 68 | 69 | $fh = fopen($uri, "rb"); 70 | $rsp = $upyun->writeFile("/ueditor/php/" . $uri, $fh, True, $opts); 71 | fclose($fh); 72 | } 73 | else { 74 | $log = date("Y-m-d H:m:s") . " 文件不存在,请检查目录是否正确。" . "\r\n"; 75 | $log_file = "log.txt"; 76 | 77 | $handle = fopen($log_file, "a"); 78 | fwrite($handle, $log); 79 | fclose($handle); 80 | exit; 81 | } 82 | } 83 | catch(Exception $e) { 84 | $log = date("Y-m-d H:m:s") . " " . $e->getCode() . " " . $e->getMessage() . "\r\n"; 85 | $log_file = "log.txt"; 86 | 87 | $handle = fopen($log_file, "a"); 88 | fwrite($handle, $log); 89 | fclose($handle); 90 | exit; 91 | } 92 | /** 93 | * 得到上传文件所对应的各个参数,数组结构 94 | * array( 95 | * "state" => "", //上传状态,上传成功时必须返回"SUCCESS" 96 | * "url" => "", //返回的地址 97 | * "title" => "", //新文件名 98 | * "original" => "", //原始文件名 99 | * "type" => "" //文件类型 100 | * "size" => "", //文件大小 101 | * ) 102 | */ 103 | 104 | /* 返回数据 */ 105 | return json_encode($up->getFileInfo()); 106 | -------------------------------------------------------------------------------- /php/config.sample.json: -------------------------------------------------------------------------------- 1 | /* 前后端通信相关的配置,注释只允许使用多行方式 */ 2 | { 3 | /* 上传图片配置项 */ 4 | "imageActionName": "uploadimage", /* 执行上传图片的action名称 */ 5 | "imageFieldName": "upfile", /* 提交的图片表单名称 */ 6 | "imageMaxSize": 2048000, /* 上传大小限制,单位B */ 7 | "imageAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 上传图片格式显示 */ 8 | "imageCompressEnable": true, /* 是否压缩图片,默认是true */ 9 | "imageCompressBorder": 1600, /* 图片压缩最长边限制 */ 10 | "imageInsertAlign": "none", /* 插入的图片浮动方式 */ 11 | "imageUrlPrefix": "", /* 图片访问路径前缀,又拍云域名配置,默认域名,如:http://服务名称.b0.upaiyun.com 或绑定域名,如:http://xxxx.xxxx.xxxx */ 12 | "imagePathFormat": "/ueditor/php/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */ 13 | /* {filename} 会替换成原文件名,配置这项需要注意中文乱码问题 */ 14 | /* {rand:6} 会替换成随机数,后面的数字是随机数的位数 */ 15 | /* {time} 会替换成时间戳 */ 16 | /* {yyyy} 会替换成四位年份 */ 17 | /* {yy} 会替换成两位年份 */ 18 | /* {mm} 会替换成两位月份 */ 19 | /* {dd} 会替换成两位日期 */ 20 | /* {hh} 会替换成两位小时 */ 21 | /* {ii} 会替换成两位分钟 */ 22 | /* {ss} 会替换成两位秒 */ 23 | /* 非法字符 \ : * ? " < > | */ 24 | /* 具请体看线上文档: fex.baidu.com/ueditor/#use-format_upload_filename */ 25 | 26 | /* 涂鸦图片上传配置项 */ 27 | "scrawlActionName": "uploadscrawl", /* 执行上传涂鸦的action名称 */ 28 | "scrawlFieldName": "upfile", /* 提交的图片表单名称 */ 29 | "scrawlPathFormat": "/ueditor/php/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */ 30 | "scrawlMaxSize": 2048000, /* 上传大小限制,单位B */ 31 | "scrawlUrlPrefix": "", /* 图片访问路径前缀 */ 32 | "scrawlInsertAlign": "none", 33 | 34 | /* 截图工具上传 */ 35 | "snapscreenActionName": "uploadimage", /* 执行上传截图的action名称 */ 36 | "snapscreenPathFormat": "/ueditor/php/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */ 37 | "snapscreenUrlPrefix": "", /* 图片访问路径前缀 */ 38 | "snapscreenInsertAlign": "none", /* 插入的图片浮动方式 */ 39 | 40 | /* 抓取远程图片配置 */ 41 | "catcherLocalDomain": ["127.0.0.1", "localhost", "img.baidu.com"], 42 | "catcherActionName": "catchimage", /* 执行抓取远程图片的action名称 */ 43 | "catcherFieldName": "source", /* 提交的图片列表表单名称 */ 44 | "catcherPathFormat": "/ueditor/php/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */ 45 | "catcherUrlPrefix": "", /* 图片访问路径前缀 */ 46 | "catcherMaxSize": 2048000, /* 上传大小限制,单位B */ 47 | "catcherAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 抓取图片格式显示 */ 48 | 49 | /* 上传视频配置 */ 50 | "videoActionName": "uploadvideo", /* 执行上传视频的action名称 */ 51 | "videoFieldName": "upfile", /* 提交的视频表单名称 */ 52 | "videoPathFormat": "/ueditor/php/upload/video/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */ 53 | "videoUrlPrefix": "", /* 视频访问路径前缀 */ 54 | "videoMaxSize": 102400000, /* 上传大小限制,单位B,默认100MB */ 55 | "videoAllowFiles": [ 56 | ".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg", 57 | ".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid"], /* 上传视频格式显示 */ 58 | 59 | /* 上传文件配置 */ 60 | "fileActionName": "uploadfile", /* controller里,执行上传视频的action名称 */ 61 | "fileFieldName": "upfile", /* 提交的文件表单名称 */ 62 | "filePathFormat": "/ueditor/php/upload/file/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */ 63 | "fileUrlPrefix": "", /* 文件访问路径前缀,又拍云域名配置,默认域名,如:http://服务名称.b0.upaiyun.com 或绑定域名,如:http://xxxx.xxxx.xxxx */ 64 | "fileMaxSize": 51200000, /* 上传大小限制,单位B,默认50MB */ 65 | "fileAllowFiles": [ 66 | ".png", ".jpg", ".jpeg", ".gif", ".bmp", 67 | ".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg", 68 | ".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid", 69 | ".rar", ".zip", ".tar", ".gz", ".7z", ".bz2", ".cab", ".iso", 70 | ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", ".txt", ".md", ".xml" 71 | ], /* 上传文件格式显示 */ 72 | 73 | /* 列出指定目录下的图片 */ 74 | "imageManagerActionName": "listimage", /* 执行图片管理的action名称 */ 75 | "imageManagerListPath": "/ueditor/php/upload/image/", /* 指定要列出图片的目录 */ 76 | "imageManagerListSize": 20, /* 每次列出文件数量 */ 77 | "imageManagerUrlPrefix": "", /* 图片访问路径前缀 */ 78 | "imageManagerInsertAlign": "none", /* 插入的图片浮动方式 */ 79 | "imageManagerAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 列出的文件类型 */ 80 | 81 | /* 列出指定目录下的文件 */ 82 | "fileManagerActionName": "listfile", /* 执行文件管理的action名称 */ 83 | "fileManagerListPath": "/ueditor/php/upload/file/", /* 指定要列出文件的目录 */ 84 | "fileManagerUrlPrefix": "", /* 文件访问路径前缀 */ 85 | "fileManagerListSize": 20, /* 每次列出文件数量 */ 86 | "fileManagerAllowFiles": [ 87 | ".png", ".jpg", ".jpeg", ".gif", ".bmp", 88 | ".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg", 89 | ".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid", 90 | ".rar", ".zip", ".tar", ".gz", ".7z", ".bz2", ".cab", ".iso", 91 | ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", ".txt", ".md", ".xml" 92 | ] /* 列出的文件类型 */ 93 | 94 | } 95 | -------------------------------------------------------------------------------- /php/controller.php: -------------------------------------------------------------------------------- 1 | '请求地址出错' 44 | )); 45 | break; 46 | } 47 | 48 | /* 输出结果 */ 49 | if (isset($_GET["callback"])) { 50 | if (preg_match("/^[\w_]+$/", $_GET["callback"])) { 51 | echo htmlspecialchars($_GET["callback"]) . '(' . $result . ')'; 52 | } else { 53 | echo json_encode(array( 54 | 'state'=> 'callback参数不合法' 55 | )); 56 | } 57 | } else { 58 | echo $result; 59 | } -------------------------------------------------------------------------------- /php/upyun.config.sample.php: -------------------------------------------------------------------------------- 1 | -1&&(f.splice(i,1),this.HCEvents[c]=f),this.removeEventListener?a(this,c,h):this.attachEvent&&d(this,c,h)):(b(this,c),this.HCEvents[c]=[])):(b(this),this.HCEvents={})},trigger:function(b,a){var d=this.HCEvents[b]|| 10 | [],c=d.length,g,k,j;k=function(){a.defaultPrevented=!0};for(g=0;g=b.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();a=this.options.curAnim[this.prop]= 14 | !0;for(e in b.curAnim)b.curAnim[e]!==!0&&(a=!1);a&&b.complete&&b.complete.call(this.elem);b=!1}else e=c-this.startTime,this.state=e/b.duration,this.pos=b.easing(e,0,1,b.duration),this.now=this.start+(this.end-this.start)*this.pos,this.update(),b=!0;return b}};this.animate=function(a,d,b){var e,h="",f,i,g;a.stopAnimation=!1;if(typeof b!=="object"||b===null)e=arguments,b={duration:e[2],easing:e[3],complete:e[4]};if(typeof b.duration!=="number")b.duration=400;b.easing=Math[b.easing]||Math.easeInOutSine; 15 | b.curAnim=Highcharts.extend({},d);for(g in d)i=new n(a,b,g),f=null,g==="d"?(i.paths=c.init(a,a.d,d.d),i.toD=d.d,e=0,f=1):a.attr?e=a.attr(g):(e=parseFloat(HighchartsAdapter._getStyle(a,g))||0,g!=="opacity"&&(h="px")),f||(f=parseFloat(d[g])),i.custom(e,f,h)}},_getStyle:function(c,a){return window.getComputedStyle(c).getPropertyValue(a)},getScript:function(c,a){var d=l.getElementsByTagName("head")[0],b=l.createElement("script");b.type="text/javascript";b.src=c;b.onload=a;d.appendChild(b)},inArray:function(c, 16 | a){return a.indexOf?a.indexOf(c):p.indexOf.call(a,c)},adapterRun:function(c,a){return parseInt(HighchartsAdapter._getStyle(c,a),10)},grep:function(c,a){return p.filter.call(c,a)},map:function(c,a){for(var d=[],b=0,e=c.length;b-1?b[g]=h.translate(b[g]):u(g,["height","y"])>-1&&(b[g]=v.translate(b[g]));b.width&&(b.width-=h.toPixels(0)-h.left);b.x&&(b.x+=h.minPixelPadding);if(a.shape.type==="path"){g=b.d;o=e;for(var r=j,s=g.length,k=0;k-1&&d.splice(c,1);z(["title","shape","group"],function(b){a[b]&&(a[b].destroy(),a[b]=null)});a.group=a.title=a.shape=a.chart=a.options=null},update:function(a,d){t(this.options,a);this.linkObjects();this.render(d)}, 6 | linkObjects:function(){var a=this.chart,d=this.linkedObject,c=d&&(d.id||d.options.id),b=this.options.linkedTo;if(n(b)){if(!n(d)||b!==c)this.linkedObject=a.get(b)}else this.linkedObject=null}};t(s.prototype,{annotations:{add:function(a,d){var c=this.allItems,b=this.chart,f,e;Object.prototype.toString.call(a)==="[object Array]"||(a=[a]);for(e=a.length;e--;)f=new B(b,a[e]),c.push(f),f.render(d)},redraw:function(){z(this.allItems,function(a){a.redraw()})}}});s.prototype.callbacks.push(function(a){var d= 7 | a.options.annotations,c;c=a.renderer.g("annotations");c.attr({zIndex:7});c.add();a.annotations.allItems=[];a.annotations.chart=a;a.annotations.group=c;Object.prototype.toString.call(d)==="[object Array]"&&d.length>0&&a.annotations.add(a.options.annotations);i.addEvent(a,"redraw",function(){a.annotations.redraw()})})})(Highcharts,HighchartsAdapter); 8 | -------------------------------------------------------------------------------- /third-party/highcharts/modules/data.js: -------------------------------------------------------------------------------- 1 | /* 2 | Data plugin for Highcharts 3 | 4 | (c) 2012-2013 Torstein Hønsi 5 | Last revision 2013-06-07 6 | 7 | License: www.highcharts.com/license 8 | */ 9 | (function(h){var k=h.each,m=function(b,a){this.init(b,a)};h.extend(m.prototype,{init:function(b,a){this.options=b;this.chartOptions=a;this.columns=b.columns||this.rowsToColumns(b.rows)||[];this.columns.length?this.dataFound():(this.parseCSV(),this.parseTable(),this.parseGoogleSpreadsheet())},getColumnDistribution:function(){var b=this.chartOptions,a=b&&b.chart&&b.chart.type,c=[];k(b&&b.series||[],function(b){c.push((h.seriesTypes[b.type||a||"line"].prototype.pointArrayMap||[0]).length)});this.valueCount= 10 | {global:(h.seriesTypes[a||"line"].prototype.pointArrayMap||[0]).length,individual:c}},dataFound:function(){this.parseTypes();this.findHeaderRow();this.parsed();this.complete()},parseCSV:function(){var b=this,a=this.options,c=a.csv,d=this.columns,f=a.startRow||0,i=a.endRow||Number.MAX_VALUE,j=a.startColumn||0,e=a.endColumn||Number.MAX_VALUE,g=0;c&&(c=c.replace(/\r\n/g,"\n").replace(/\r/g,"\n").split(a.lineDelimiter||"\n"),k(c,function(c,h){var n=b.trim(c),p=n.indexOf("#")===0;h>=f&&h<=i&&!p&&n!==""&& 11 | (n=c.split(a.itemDelimiter||","),k(n,function(b,a){a>=j&&a<=e&&(d[a-j]||(d[a-j]=[]),d[a-j][g]=b)}),g+=1)}),this.dataFound())},parseTable:function(){var b=this.options,a=b.table,c=this.columns,d=b.startRow||0,f=b.endRow||Number.MAX_VALUE,i=b.startColumn||0,j=b.endColumn||Number.MAX_VALUE,e;a&&(typeof a==="string"&&(a=document.getElementById(a)),k(a.getElementsByTagName("tr"),function(a,b){e=0;b>=d&&b<=f&&k(a.childNodes,function(a){if((a.tagName==="TD"||a.tagName==="TH")&&e>=i&&e<=j)c[e]||(c[e]=[]), 12 | c[e][b-d]=a.innerHTML,e+=1})}),this.dataFound())},parseGoogleSpreadsheet:function(){var b=this,a=this.options,c=a.googleSpreadsheetKey,d=this.columns,f=a.startRow||0,i=a.endRow||Number.MAX_VALUE,j=a.startColumn||0,e=a.endColumn||Number.MAX_VALUE,g,h;c&&jQuery.getJSON("https://spreadsheets.google.com/feeds/cells/"+c+"/"+(a.googleSpreadsheetWorksheet||"od6")+"/public/values?alt=json-in-script&callback=?",function(a){var a=a.feed.entry,c,k=a.length,m=0,o=0,l;for(l=0;l=j&&l<=e)d[l-j]=[],d[l-j].length=Math.min(o,i-f);for(l=0;l=j&&h<=e&&g>=f&&g<=i)d[h-j][g-f]=c.content.$t;b.dataFound()})},findHeaderRow:function(){k(this.columns,function(){});this.headerRow=0},trim:function(b){return typeof b==="string"?b.replace(/^\s+|\s+$/g,""):b},parseTypes:function(){for(var b=this.columns,a=b.length,c,d,f,i;a--;)for(c=b[a].length;c--;)d=b[a][c],f=parseFloat(d),i=this.trim(d), 14 | i==f?(b[a][c]=f,f>31536E6?b[a].isDatetime=!0:b[a].isNumeric=!0):(d=this.parseDate(d),a===0&&typeof d==="number"&&!isNaN(d)?(b[a][c]=d,b[a].isDatetime=!0):b[a][c]=i===""?null:i)},dateFormats:{"YYYY-mm-dd":{regex:"^([0-9]{4})-([0-9]{2})-([0-9]{2})$",parser:function(b){return Date.UTC(+b[1],b[2]-1,+b[3])}}},parseDate:function(b){var a=this.options.parseDate,c,d,f;a&&(c=a(b));if(typeof b==="string")for(d in this.dateFormats)a=this.dateFormats[d],(f=b.match(a.regex))&&(c=a.parser(f));return c},rowsToColumns:function(b){var a, 15 | c,d,f,i;if(b){i=[];c=b.length;for(a=0;a1&&(a=b.shift(),this.headerRow===0&&a.shift(),a.isDatetime?c="datetime":a.isNumeric||(c="category"));for(e=0;e1&&j[g].push(b[e+1][g]!==void 0?b[e+1][g]:null),f>2&&j[g].push(b[e+2][g]!==void 0?b[e+2][g]:null),f>3&&j[g].push(b[e+3][g]!==void 0?b[e+3][g]:null),f>4&&j[g].push(b[e+4][g]!==void 0?b[e+4][g]:null);i[k]={name:b[e].name,data:j};e+=f}d.complete({xAxis:{type:c},series:i})}}});h.Data=m;h.data=function(b,a){return new m(b,a)};h.wrap(h.Chart.prototype, 17 | "init",function(b,a,c){var d=this;a&&a.data?h.data(h.extend(a.data,{complete:function(f){a.series&&k(a.series,function(b,c){a.series[c]=h.merge(b,f.series[c])});a=h.merge(f,a);b.call(d,a,c)}}),a):b.call(d,a,c)})})(Highcharts); 18 | -------------------------------------------------------------------------------- /third-party/highcharts/modules/drilldown.js: -------------------------------------------------------------------------------- 1 | (function(e){function q(b,a,c){return"rgba("+[Math.round(b[0]+(a[0]-b[0])*c),Math.round(b[1]+(a[1]-b[1])*c),Math.round(b[2]+(a[2]-b[2])*c),b[3]+(a[3]-b[3])*c].join(",")+")"}var m=function(){},j=e.getOptions(),g=e.each,n=e.extend,o=e.wrap,h=e.Chart,i=e.seriesTypes,k=i.pie,l=i.column,r=HighchartsAdapter.fireEvent;n(j.lang,{drillUpText:"◁ Back to {series.name}"});j.drilldown={activeAxisLabelStyle:{cursor:"pointer",color:"#039",fontWeight:"bold",textDecoration:"underline"},activeDataLabelStyle:{cursor:"pointer", 2 | color:"#039",fontWeight:"bold",textDecoration:"underline"},animation:{duration:500},drillUpButton:{position:{align:"right",x:-10,y:10}}};e.SVGRenderer.prototype.Element.prototype.fadeIn=function(){this.attr({opacity:0.1,visibility:"visible"}).animate({opacity:1},{duration:250})};h.prototype.drilldownLevels=[];h.prototype.addSeriesAsDrilldown=function(b,a){var c=b.series,d=c.xAxis,f=c.yAxis,e;e=b.color||c.color;var g,a=n({color:e},a);g=HighchartsAdapter.inArray(this,c.points);this.drilldownLevels.push({seriesOptions:c.userOptions, 3 | shapeArgs:b.shapeArgs,bBox:b.graphic.getBBox(),color:e,newSeries:a,pointOptions:c.options.data[g],pointIndex:g,oldExtremes:{xMin:d&&d.userMin,xMax:d&&d.userMax,yMin:f&&f.userMin,yMax:f&&f.userMax}});e=this.addSeries(a,!1);if(d)d.oldPos=d.pos,d.userMin=d.userMax=null,f.userMin=f.userMax=null;if(c.type===e.type)e.animate=e.animateDrilldown||m,e.options.animation=!0;c.remove(!1);this.redraw();this.showDrillUpButton()};h.prototype.getDrilldownBackText=function(){return this.options.lang.drillUpText.replace("{series.name}", 4 | this.drilldownLevels[this.drilldownLevels.length-1].seriesOptions.name)};h.prototype.showDrillUpButton=function(){var b=this,a=this.getDrilldownBackText(),c=b.options.drilldown.drillUpButton;this.drillUpButton?this.drillUpButton.attr({text:a}).align():this.drillUpButton=this.renderer.button(a,null,null,function(){b.drillUp()}).attr(n({align:c.position.align,zIndex:9},c.theme)).add().align(c.position,!1,c.relativeTo||"plotBox")};h.prototype.drillUp=function(){var b=this.drilldownLevels.pop(),a=this.series[0], 5 | c=b.oldExtremes,d=this.addSeries(b.seriesOptions,!1);r(this,"drillup",{seriesOptions:b.seriesOptions});if(d.type===a.type)d.drilldownLevel=b,d.animate=d.animateDrillupTo||m,d.options.animation=!0,a.animateDrillupFrom&&a.animateDrillupFrom(b);a.remove(!1);d.xAxis&&(d.xAxis.setExtremes(c.xMin,c.xMax,!1),d.yAxis.setExtremes(c.yMin,c.yMax,!1));this.redraw();this.drilldownLevels.length===0?this.drillUpButton=this.drillUpButton.destroy():this.drillUpButton.attr({text:this.getDrilldownBackText()}).align()}; 6 | k.prototype.animateDrilldown=function(b){var a=this.chart.drilldownLevels[this.chart.drilldownLevels.length-1],c=this.chart.options.drilldown.animation,d=a.shapeArgs,f=d.start,s=(d.end-f)/this.points.length,h=e.Color(a.color).rgba;b||g(this.points,function(a,b){var g=e.Color(a.color).rgba;a.graphic.attr(e.merge(d,{start:f+b*s,end:f+(b+1)*s})).animate(a.shapeArgs,e.merge(c,{step:function(a,d){d.prop==="start"&&this.attr({fill:q(h,g,d.pos)})}}))})};k.prototype.animateDrillupTo=l.prototype.animateDrillupTo= 7 | function(b){if(!b){var a=this,c=a.drilldownLevel;g(this.points,function(a){a.graphic.hide();a.dataLabel&&a.dataLabel.hide();a.connector&&a.connector.hide()});setTimeout(function(){g(a.points,function(a,b){var e=b===c.pointIndex?"show":"fadeIn";a.graphic[e]();if(a.dataLabel)a.dataLabel[e]();if(a.connector)a.connector[e]()})},Math.max(this.chart.options.drilldown.animation.duration-50,0));this.animate=m}};l.prototype.animateDrilldown=function(b){var a=this.chart.drilldownLevels[this.chart.drilldownLevels.length- 8 | 1].shapeArgs,c=this.chart.options.drilldown.animation;b||(a.x+=this.xAxis.oldPos-this.xAxis.pos,g(this.points,function(b){b.graphic.attr(a).animate(b.shapeArgs,c)}))};l.prototype.animateDrillupFrom=k.prototype.animateDrillupFrom=function(b){var a=this.chart.options.drilldown.animation,c=this.group;delete this.group;g(this.points,function(d){var f=d.graphic,g=e.Color(d.color).rgba;delete d.graphic;f.animate(b.shapeArgs,e.merge(a,{step:function(a,c){c.prop==="start"&&this.attr({fill:q(g,e.Color(b.color).rgba, 9 | c.pos)})},complete:function(){f.destroy();c&&(c=c.destroy())}}))})};e.Point.prototype.doDrilldown=function(){for(var b=this.series.chart,a=b.options.drilldown,c=a.series.length,d;c--&&!d;)a.series[c].id===this.drilldown&&(d=a.series[c]);r(b,"drilldown",{point:this,seriesOptions:d});d&&b.addSeriesAsDrilldown(this,d)};o(e.Point.prototype,"init",function(b,a,c,d){var f=b.call(this,a,c,d),b=a.chart,a=(a=a.xAxis&&a.xAxis.ticks[d])&&a.label;if(f.drilldown){if(e.addEvent(f,"click",function(){f.doDrilldown()}), 10 | a){if(!a._basicStyle)a._basicStyle=a.element.getAttribute("style");a.addClass("highcharts-drilldown-axis-label").css(b.options.drilldown.activeAxisLabelStyle).on("click",function(){f.doDrilldown&&f.doDrilldown()})}}else a&&a._basicStyle&&a.element.setAttribute("style",a._basicStyle);return f});o(e.Series.prototype,"drawDataLabels",function(b){var a=this.chart.options.drilldown.activeDataLabelStyle;b.call(this);g(this.points,function(b){if(b.drilldown&&b.dataLabel)b.dataLabel.attr({"class":"highcharts-drilldown-data-label"}).css(a).on("click", 11 | function(){b.doDrilldown()})})});l.prototype.supportsDrilldown=!0;k.prototype.supportsDrilldown=!0;var p,j=function(b){b.call(this);g(this.points,function(a){a.drilldown&&a.graphic&&a.graphic.attr({"class":"highcharts-drilldown-point"}).css({cursor:"pointer"})})};for(p in i)i[p].prototype.supportsDrilldown&&o(i[p].prototype,"drawTracker",j)})(Highcharts); 12 | -------------------------------------------------------------------------------- /third-party/highcharts/modules/funnel.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Highcharts funnel module, Beta 4 | 5 | (c) 2010-2012 Torstein Hønsi 6 | 7 | License: www.highcharts.com/license 8 | */ 9 | (function(d){var u=d.getOptions().plotOptions,p=d.seriesTypes,D=d.merge,z=function(){},A=d.each;u.funnel=D(u.pie,{center:["50%","50%"],width:"90%",neckWidth:"30%",height:"100%",neckHeight:"25%",dataLabels:{connectorWidth:1,connectorColor:"#606060"},size:!0,states:{select:{color:"#C0C0C0",borderColor:"#000000",shadow:!1}}});p.funnel=d.extendClass(p.pie,{type:"funnel",animate:z,translate:function(){var a=function(k,a){return/%$/.test(k)?a*parseInt(k,10)/100:parseInt(k,10)},g=0,e=this.chart,f=e.plotWidth, 10 | e=e.plotHeight,h=0,c=this.options,C=c.center,b=a(C[0],f),d=a(C[0],e),p=a(c.width,f),i,q,j=a(c.height,e),r=a(c.neckWidth,f),s=a(c.neckHeight,e),v=j-s,a=this.data,w,x,u=c.dataLabels.position==="left"?1:0,y,m,B,n,l,t,o;this.getWidthAt=q=function(k){return k>j-s||j===s?r:r+(p-r)*((j-s-k)/(j-s))};this.getX=function(k,a){return b+(a?-1:1)*(q(k)/2+c.dataLabels.distance)};this.center=[b,d,j];this.centerX=b;A(a,function(a){g+=a.y});A(a,function(a){o=null;x=g?a.y/g:0;m=d-j/2+h*j;l=m+x*j;i=q(m);y=b-i/2;B=y+ 11 | i;i=q(l);n=b-i/2;t=n+i;m>v?(y=n=b-r/2,B=t=b+r/2):l>v&&(o=l,i=q(v),n=b-i/2,t=n+i,l=v);w=["M",y,m,"L",B,m,t,l];o&&w.push(t,o,n,o);w.push(n,l,"Z");a.shapeType="path";a.shapeArgs={d:w};a.percentage=x*100;a.plotX=b;a.plotY=(m+(o||l))/2;a.tooltipPos=[b,a.plotY];a.slice=z;a.half=u;h+=x});this.setTooltipPoints()},drawPoints:function(){var a=this,g=a.options,e=a.chart.renderer;A(a.data,function(f){var h=f.graphic,c=f.shapeArgs;h?h.animate(c):f.graphic=e.path(c).attr({fill:f.color,stroke:g.borderColor,"stroke-width":g.borderWidth}).add(a.group)})}, 12 | sortByAngle:z,drawDataLabels:function(){var a=this.data,g=this.options.dataLabels.distance,e,f,h,c=a.length,d,b;for(this.center[2]-=2*g;c--;)h=a[c],f=(e=h.half)?1:-1,b=h.plotY,d=this.getX(b,e),h.labelPos=[0,b,d+(g-5)*f,b,d+g*f,b,e?"right":"left",0];p.pie.prototype.drawDataLabels.call(this)}})})(Highcharts); 13 | -------------------------------------------------------------------------------- /third-party/highcharts/modules/heatmap.js: -------------------------------------------------------------------------------- 1 | (function(b){var k=b.seriesTypes,l=b.each;k.heatmap=b.extendClass(k.map,{colorKey:"z",useMapGeometry:!1,pointArrayMap:["y","z"],translate:function(){var c=this,b=c.options,i=Number.MAX_VALUE,j=Number.MIN_VALUE;c.generatePoints();l(c.data,function(a){var e=a.x,f=a.y,d=a.z,g=(b.colsize||1)/2,h=(b.rowsize||1)/2;a.path=["M",e-g,f-h,"L",e+g,f-h,"L",e+g,f+h,"L",e-g,f+h,"Z"];a.shapeType="path";a.shapeArgs={d:c.translatePath(a.path)};typeof d==="number"&&(d>j?j=d:d dataMax) { 39 | dataMax = value; 40 | } else if (value < dataMin) { 41 | dataMin = value; 42 | } 43 | } 44 | }); 45 | 46 | series.translateColors(dataMin, dataMax); 47 | }, 48 | 49 | getBox: function () {} 50 | 51 | }); 52 | 53 | }(Highcharts)); 54 | -------------------------------------------------------------------------------- /third-party/highcharts/modules/no-data-to-display.js: -------------------------------------------------------------------------------- 1 | /* 2 | Highcharts JS v3.0.6 (2013-10-04) 3 | Plugin for displaying a message when there is no data visible in chart. 4 | 5 | (c) 2010-2013 Highsoft AS 6 | Author: Øystein Moseng 7 | 8 | License: www.highcharts.com/license 9 | */ 10 | (function(c){function f(){return!!this.points.length}function g(){this.hasData()?this.hideNoData():this.showNoData()}var d=c.seriesTypes,e=c.Chart.prototype,h=c.getOptions(),i=c.extend;i(h.lang,{noData:"No data to display"});h.noData={position:{x:0,y:0,align:"center",verticalAlign:"middle"},attr:{},style:{fontWeight:"bold",fontSize:"12px",color:"#60606a"}};d.pie.prototype.hasData=f;if(d.gauge)d.gauge.prototype.hasData=f;if(d.waterfall)d.waterfall.prototype.hasData=f;c.Series.prototype.hasData=function(){return this.dataMax!== 11 | void 0&&this.dataMin!==void 0};e.showNoData=function(a){var b=this.options,a=a||b.lang.noData,b=b.noData;if(!this.noDataLabel)this.noDataLabel=this.renderer.label(a,0,0,null,null,null,null,null,"no-data").attr(b.attr).css(b.style).add(),this.noDataLabel.align(i(this.noDataLabel.getBBox(),b.position),!1,"plotBox")};e.hideNoData=function(){if(this.noDataLabel)this.noDataLabel=this.noDataLabel.destroy()};e.hasData=function(){for(var a=this.series,b=a.length;b--;)if(a[b].hasData()&&!a[b].options.isInternal)return!0; 12 | return!1};e.callbacks.push(function(a){c.addEvent(a,"load",g);c.addEvent(a,"redraw",g)})})(Highcharts); 13 | -------------------------------------------------------------------------------- /third-party/highcharts/modules/no-data-to-display.src.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license Highcharts JS v3.0.6 (2013-10-04) 3 | * Plugin for displaying a message when there is no data visible in chart. 4 | * 5 | * (c) 2010-2013 Highsoft AS 6 | * Author: Øystein Moseng 7 | * 8 | * License: www.highcharts.com/license 9 | */ 10 | 11 | (function (H) { // docs 12 | 13 | var seriesTypes = H.seriesTypes, 14 | chartPrototype = H.Chart.prototype, 15 | defaultOptions = H.getOptions(), 16 | extend = H.extend; 17 | 18 | // Add language option 19 | extend(defaultOptions.lang, { 20 | noData: 'No data to display' 21 | }); 22 | 23 | // Add default display options for message 24 | defaultOptions.noData = { 25 | position: { 26 | x: 0, 27 | y: 0, 28 | align: 'center', 29 | verticalAlign: 'middle' 30 | }, 31 | attr: { 32 | }, 33 | style: { 34 | fontWeight: 'bold', 35 | fontSize: '12px', 36 | color: '#60606a' 37 | } 38 | }; 39 | 40 | /** 41 | * Define hasData functions for series. These return true if there are data points on this series within the plot area 42 | */ 43 | function hasDataPie() { 44 | return !!this.points.length; /* != 0 */ 45 | } 46 | 47 | seriesTypes.pie.prototype.hasData = hasDataPie; 48 | 49 | if (seriesTypes.gauge) { 50 | seriesTypes.gauge.prototype.hasData = hasDataPie; 51 | } 52 | 53 | if (seriesTypes.waterfall) { 54 | seriesTypes.waterfall.prototype.hasData = hasDataPie; 55 | } 56 | 57 | H.Series.prototype.hasData = function () { 58 | return this.dataMax !== undefined && this.dataMin !== undefined; 59 | }; 60 | 61 | /** 62 | * Display a no-data message. 63 | * 64 | * @param {String} str An optional message to show in place of the default one 65 | */ 66 | chartPrototype.showNoData = function (str) { 67 | var chart = this, 68 | options = chart.options, 69 | text = str || options.lang.noData, 70 | noDataOptions = options.noData; 71 | 72 | if (!chart.noDataLabel) { 73 | chart.noDataLabel = chart.renderer.label(text, 0, 0, null, null, null, null, null, 'no-data') 74 | .attr(noDataOptions.attr) 75 | .css(noDataOptions.style) 76 | .add(); 77 | chart.noDataLabel.align(extend(chart.noDataLabel.getBBox(), noDataOptions.position), false, 'plotBox'); 78 | } 79 | }; 80 | 81 | /** 82 | * Hide no-data message 83 | */ 84 | chartPrototype.hideNoData = function () { 85 | var chart = this; 86 | if (chart.noDataLabel) { 87 | chart.noDataLabel = chart.noDataLabel.destroy(); 88 | } 89 | }; 90 | 91 | /** 92 | * Returns true if there are data points within the plot area now 93 | */ 94 | chartPrototype.hasData = function () { 95 | var chart = this, 96 | series = chart.series, 97 | i = series.length; 98 | 99 | while (i--) { 100 | if (series[i].hasData() && !series[i].options.isInternal) { 101 | return true; 102 | } 103 | } 104 | 105 | return false; 106 | }; 107 | 108 | /** 109 | * Show no-data message if there is no data in sight. Otherwise, hide it. 110 | */ 111 | function handleNoData() { 112 | var chart = this; 113 | if (chart.hasData()) { 114 | chart.hideNoData(); 115 | } else { 116 | chart.showNoData(); 117 | } 118 | } 119 | 120 | /** 121 | * Add event listener to handle automatic display of no-data message 122 | */ 123 | chartPrototype.callbacks.push(function (chart) { 124 | H.addEvent(chart, 'load', handleNoData); 125 | H.addEvent(chart, 'redraw', handleNoData); 126 | }); 127 | 128 | }(Highcharts)); 129 | -------------------------------------------------------------------------------- /third-party/highcharts/themes/dark-blue.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Dark blue theme for Highcharts JS 3 | * @author Torstein Hønsi 4 | */ 5 | 6 | Highcharts.theme = { 7 | colors: ["#DDDF0D", "#55BF3B", "#DF5353", "#7798BF", "#aaeeee", "#ff0066", "#eeaaee", 8 | "#55BF3B", "#DF5353", "#7798BF", "#aaeeee"], 9 | chart: { 10 | backgroundColor: { 11 | linearGradient: { x1: 0, y1: 0, x2: 1, y2: 1 }, 12 | stops: [ 13 | [0, 'rgb(48, 48, 96)'], 14 | [1, 'rgb(0, 0, 0)'] 15 | ] 16 | }, 17 | borderColor: '#000000', 18 | borderWidth: 2, 19 | className: 'dark-container', 20 | plotBackgroundColor: 'rgba(255, 255, 255, .1)', 21 | plotBorderColor: '#CCCCCC', 22 | plotBorderWidth: 1 23 | }, 24 | title: { 25 | style: { 26 | color: '#C0C0C0', 27 | font: 'bold 16px "Trebuchet MS", Verdana, sans-serif' 28 | } 29 | }, 30 | subtitle: { 31 | style: { 32 | color: '#666666', 33 | font: 'bold 12px "Trebuchet MS", Verdana, sans-serif' 34 | } 35 | }, 36 | xAxis: { 37 | gridLineColor: '#333333', 38 | gridLineWidth: 1, 39 | labels: { 40 | style: { 41 | color: '#A0A0A0' 42 | } 43 | }, 44 | lineColor: '#A0A0A0', 45 | tickColor: '#A0A0A0', 46 | title: { 47 | style: { 48 | color: '#CCC', 49 | fontWeight: 'bold', 50 | fontSize: '12px', 51 | fontFamily: 'Trebuchet MS, Verdana, sans-serif' 52 | 53 | } 54 | } 55 | }, 56 | yAxis: { 57 | gridLineColor: '#333333', 58 | labels: { 59 | style: { 60 | color: '#A0A0A0' 61 | } 62 | }, 63 | lineColor: '#A0A0A0', 64 | minorTickInterval: null, 65 | tickColor: '#A0A0A0', 66 | tickWidth: 1, 67 | title: { 68 | style: { 69 | color: '#CCC', 70 | fontWeight: 'bold', 71 | fontSize: '12px', 72 | fontFamily: 'Trebuchet MS, Verdana, sans-serif' 73 | } 74 | } 75 | }, 76 | tooltip: { 77 | backgroundColor: 'rgba(0, 0, 0, 0.75)', 78 | style: { 79 | color: '#F0F0F0' 80 | } 81 | }, 82 | toolbar: { 83 | itemStyle: { 84 | color: 'silver' 85 | } 86 | }, 87 | plotOptions: { 88 | line: { 89 | dataLabels: { 90 | color: '#CCC' 91 | }, 92 | marker: { 93 | lineColor: '#333' 94 | } 95 | }, 96 | spline: { 97 | marker: { 98 | lineColor: '#333' 99 | } 100 | }, 101 | scatter: { 102 | marker: { 103 | lineColor: '#333' 104 | } 105 | }, 106 | candlestick: { 107 | lineColor: 'white' 108 | } 109 | }, 110 | legend: { 111 | itemStyle: { 112 | font: '9pt Trebuchet MS, Verdana, sans-serif', 113 | color: '#A0A0A0' 114 | }, 115 | itemHoverStyle: { 116 | color: '#FFF' 117 | }, 118 | itemHiddenStyle: { 119 | color: '#444' 120 | } 121 | }, 122 | credits: { 123 | style: { 124 | color: '#666' 125 | } 126 | }, 127 | labels: { 128 | style: { 129 | color: '#CCC' 130 | } 131 | }, 132 | 133 | navigation: { 134 | buttonOptions: { 135 | symbolStroke: '#DDDDDD', 136 | hoverSymbolStroke: '#FFFFFF', 137 | theme: { 138 | fill: { 139 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 }, 140 | stops: [ 141 | [0.4, '#606060'], 142 | [0.6, '#333333'] 143 | ] 144 | }, 145 | stroke: '#000000' 146 | } 147 | } 148 | }, 149 | 150 | // scroll charts 151 | rangeSelector: { 152 | buttonTheme: { 153 | fill: { 154 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 }, 155 | stops: [ 156 | [0.4, '#888'], 157 | [0.6, '#555'] 158 | ] 159 | }, 160 | stroke: '#000000', 161 | style: { 162 | color: '#CCC', 163 | fontWeight: 'bold' 164 | }, 165 | states: { 166 | hover: { 167 | fill: { 168 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 }, 169 | stops: [ 170 | [0.4, '#BBB'], 171 | [0.6, '#888'] 172 | ] 173 | }, 174 | stroke: '#000000', 175 | style: { 176 | color: 'white' 177 | } 178 | }, 179 | select: { 180 | fill: { 181 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 }, 182 | stops: [ 183 | [0.1, '#000'], 184 | [0.3, '#333'] 185 | ] 186 | }, 187 | stroke: '#000000', 188 | style: { 189 | color: 'yellow' 190 | } 191 | } 192 | } 193 | }, 194 | inputStyle: { 195 | backgroundColor: '#333', 196 | color: 'silver' 197 | }, 198 | labelStyle: { 199 | color: 'silver' 200 | } 201 | }, 202 | 203 | navigator: { 204 | handles: { 205 | backgroundColor: '#666', 206 | borderColor: '#AAA' 207 | }, 208 | outlineColor: '#CCC', 209 | maskFill: 'rgba(16, 16, 16, 0.5)', 210 | series: { 211 | color: '#7798BF', 212 | lineColor: '#A6C7ED' 213 | } 214 | }, 215 | 216 | scrollbar: { 217 | barBackgroundColor: { 218 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 }, 219 | stops: [ 220 | [0.4, '#888'], 221 | [0.6, '#555'] 222 | ] 223 | }, 224 | barBorderColor: '#CCC', 225 | buttonArrowColor: '#CCC', 226 | buttonBackgroundColor: { 227 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 }, 228 | stops: [ 229 | [0.4, '#888'], 230 | [0.6, '#555'] 231 | ] 232 | }, 233 | buttonBorderColor: '#CCC', 234 | rifleColor: '#FFF', 235 | trackBackgroundColor: { 236 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 }, 237 | stops: [ 238 | [0, '#000'], 239 | [1, '#333'] 240 | ] 241 | }, 242 | trackBorderColor: '#666' 243 | }, 244 | 245 | // special colors for some of the 246 | legendBackgroundColor: 'rgba(0, 0, 0, 0.5)', 247 | legendBackgroundColorSolid: 'rgb(35, 35, 70)', 248 | dataLabelsColor: '#444', 249 | textColor: '#C0C0C0', 250 | maskColor: 'rgba(255,255,255,0.3)' 251 | }; 252 | 253 | // Apply the theme 254 | var highchartsOptions = Highcharts.setOptions(Highcharts.theme); 255 | -------------------------------------------------------------------------------- /third-party/highcharts/themes/dark-green.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Dark blue theme for Highcharts JS 3 | * @author Torstein Hønsi 4 | */ 5 | 6 | Highcharts.theme = { 7 | colors: ["#DDDF0D", "#55BF3B", "#DF5353", "#7798BF", "#aaeeee", "#ff0066", "#eeaaee", 8 | "#55BF3B", "#DF5353", "#7798BF", "#aaeeee"], 9 | chart: { 10 | backgroundColor: { 11 | linearGradient: [0, 0, 250, 500], 12 | stops: [ 13 | [0, 'rgb(48, 96, 48)'], 14 | [1, 'rgb(0, 0, 0)'] 15 | ] 16 | }, 17 | borderColor: '#000000', 18 | borderWidth: 2, 19 | className: 'dark-container', 20 | plotBackgroundColor: 'rgba(255, 255, 255, .1)', 21 | plotBorderColor: '#CCCCCC', 22 | plotBorderWidth: 1 23 | }, 24 | title: { 25 | style: { 26 | color: '#C0C0C0', 27 | font: 'bold 16px "Trebuchet MS", Verdana, sans-serif' 28 | } 29 | }, 30 | subtitle: { 31 | style: { 32 | color: '#666666', 33 | font: 'bold 12px "Trebuchet MS", Verdana, sans-serif' 34 | } 35 | }, 36 | xAxis: { 37 | gridLineColor: '#333333', 38 | gridLineWidth: 1, 39 | labels: { 40 | style: { 41 | color: '#A0A0A0' 42 | } 43 | }, 44 | lineColor: '#A0A0A0', 45 | tickColor: '#A0A0A0', 46 | title: { 47 | style: { 48 | color: '#CCC', 49 | fontWeight: 'bold', 50 | fontSize: '12px', 51 | fontFamily: 'Trebuchet MS, Verdana, sans-serif' 52 | 53 | } 54 | } 55 | }, 56 | yAxis: { 57 | gridLineColor: '#333333', 58 | labels: { 59 | style: { 60 | color: '#A0A0A0' 61 | } 62 | }, 63 | lineColor: '#A0A0A0', 64 | minorTickInterval: null, 65 | tickColor: '#A0A0A0', 66 | tickWidth: 1, 67 | title: { 68 | style: { 69 | color: '#CCC', 70 | fontWeight: 'bold', 71 | fontSize: '12px', 72 | fontFamily: 'Trebuchet MS, Verdana, sans-serif' 73 | } 74 | } 75 | }, 76 | tooltip: { 77 | backgroundColor: 'rgba(0, 0, 0, 0.75)', 78 | style: { 79 | color: '#F0F0F0' 80 | } 81 | }, 82 | toolbar: { 83 | itemStyle: { 84 | color: 'silver' 85 | } 86 | }, 87 | plotOptions: { 88 | line: { 89 | dataLabels: { 90 | color: '#CCC' 91 | }, 92 | marker: { 93 | lineColor: '#333' 94 | } 95 | }, 96 | spline: { 97 | marker: { 98 | lineColor: '#333' 99 | } 100 | }, 101 | scatter: { 102 | marker: { 103 | lineColor: '#333' 104 | } 105 | }, 106 | candlestick: { 107 | lineColor: 'white' 108 | } 109 | }, 110 | legend: { 111 | itemStyle: { 112 | font: '9pt Trebuchet MS, Verdana, sans-serif', 113 | color: '#A0A0A0' 114 | }, 115 | itemHoverStyle: { 116 | color: '#FFF' 117 | }, 118 | itemHiddenStyle: { 119 | color: '#444' 120 | } 121 | }, 122 | credits: { 123 | style: { 124 | color: '#666' 125 | } 126 | }, 127 | labels: { 128 | style: { 129 | color: '#CCC' 130 | } 131 | }, 132 | 133 | 134 | navigation: { 135 | buttonOptions: { 136 | symbolStroke: '#DDDDDD', 137 | hoverSymbolStroke: '#FFFFFF', 138 | theme: { 139 | fill: { 140 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 }, 141 | stops: [ 142 | [0.4, '#606060'], 143 | [0.6, '#333333'] 144 | ] 145 | }, 146 | stroke: '#000000' 147 | } 148 | } 149 | }, 150 | 151 | // scroll charts 152 | rangeSelector: { 153 | buttonTheme: { 154 | fill: { 155 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 }, 156 | stops: [ 157 | [0.4, '#888'], 158 | [0.6, '#555'] 159 | ] 160 | }, 161 | stroke: '#000000', 162 | style: { 163 | color: '#CCC', 164 | fontWeight: 'bold' 165 | }, 166 | states: { 167 | hover: { 168 | fill: { 169 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 }, 170 | stops: [ 171 | [0.4, '#BBB'], 172 | [0.6, '#888'] 173 | ] 174 | }, 175 | stroke: '#000000', 176 | style: { 177 | color: 'white' 178 | } 179 | }, 180 | select: { 181 | fill: { 182 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 }, 183 | stops: [ 184 | [0.1, '#000'], 185 | [0.3, '#333'] 186 | ] 187 | }, 188 | stroke: '#000000', 189 | style: { 190 | color: 'yellow' 191 | } 192 | } 193 | } 194 | }, 195 | inputStyle: { 196 | backgroundColor: '#333', 197 | color: 'silver' 198 | }, 199 | labelStyle: { 200 | color: 'silver' 201 | } 202 | }, 203 | 204 | navigator: { 205 | handles: { 206 | backgroundColor: '#666', 207 | borderColor: '#AAA' 208 | }, 209 | outlineColor: '#CCC', 210 | maskFill: 'rgba(16, 16, 16, 0.5)', 211 | series: { 212 | color: '#7798BF', 213 | lineColor: '#A6C7ED' 214 | } 215 | }, 216 | 217 | scrollbar: { 218 | barBackgroundColor: { 219 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 }, 220 | stops: [ 221 | [0.4, '#888'], 222 | [0.6, '#555'] 223 | ] 224 | }, 225 | barBorderColor: '#CCC', 226 | buttonArrowColor: '#CCC', 227 | buttonBackgroundColor: { 228 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 }, 229 | stops: [ 230 | [0.4, '#888'], 231 | [0.6, '#555'] 232 | ] 233 | }, 234 | buttonBorderColor: '#CCC', 235 | rifleColor: '#FFF', 236 | trackBackgroundColor: { 237 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 }, 238 | stops: [ 239 | [0, '#000'], 240 | [1, '#333'] 241 | ] 242 | }, 243 | trackBorderColor: '#666' 244 | }, 245 | 246 | // special colors for some of the 247 | legendBackgroundColor: 'rgba(0, 0, 0, 0.5)', 248 | legendBackgroundColorSolid: 'rgb(35, 35, 70)', 249 | dataLabelsColor: '#444', 250 | textColor: '#C0C0C0', 251 | maskColor: 'rgba(255,255,255,0.3)' 252 | }; 253 | 254 | // Apply the theme 255 | var highchartsOptions = Highcharts.setOptions(Highcharts.theme); 256 | -------------------------------------------------------------------------------- /third-party/highcharts/themes/gray.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Gray theme for Highcharts JS 3 | * @author Torstein Hønsi 4 | */ 5 | 6 | Highcharts.theme = { 7 | colors: ["#DDDF0D", "#7798BF", "#55BF3B", "#DF5353", "#aaeeee", "#ff0066", "#eeaaee", 8 | "#55BF3B", "#DF5353", "#7798BF", "#aaeeee"], 9 | chart: { 10 | backgroundColor: { 11 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 }, 12 | stops: [ 13 | [0, 'rgb(96, 96, 96)'], 14 | [1, 'rgb(16, 16, 16)'] 15 | ] 16 | }, 17 | borderWidth: 0, 18 | borderRadius: 15, 19 | plotBackgroundColor: null, 20 | plotShadow: false, 21 | plotBorderWidth: 0 22 | }, 23 | title: { 24 | style: { 25 | color: '#FFF', 26 | font: '16px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif' 27 | } 28 | }, 29 | subtitle: { 30 | style: { 31 | color: '#DDD', 32 | font: '12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif' 33 | } 34 | }, 35 | xAxis: { 36 | gridLineWidth: 0, 37 | lineColor: '#999', 38 | tickColor: '#999', 39 | labels: { 40 | style: { 41 | color: '#999', 42 | fontWeight: 'bold' 43 | } 44 | }, 45 | title: { 46 | style: { 47 | color: '#AAA', 48 | font: 'bold 12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif' 49 | } 50 | } 51 | }, 52 | yAxis: { 53 | alternateGridColor: null, 54 | minorTickInterval: null, 55 | gridLineColor: 'rgba(255, 255, 255, .1)', 56 | minorGridLineColor: 'rgba(255,255,255,0.07)', 57 | lineWidth: 0, 58 | tickWidth: 0, 59 | labels: { 60 | style: { 61 | color: '#999', 62 | fontWeight: 'bold' 63 | } 64 | }, 65 | title: { 66 | style: { 67 | color: '#AAA', 68 | font: 'bold 12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif' 69 | } 70 | } 71 | }, 72 | legend: { 73 | itemStyle: { 74 | color: '#CCC' 75 | }, 76 | itemHoverStyle: { 77 | color: '#FFF' 78 | }, 79 | itemHiddenStyle: { 80 | color: '#333' 81 | } 82 | }, 83 | labels: { 84 | style: { 85 | color: '#CCC' 86 | } 87 | }, 88 | tooltip: { 89 | backgroundColor: { 90 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 }, 91 | stops: [ 92 | [0, 'rgba(96, 96, 96, .8)'], 93 | [1, 'rgba(16, 16, 16, .8)'] 94 | ] 95 | }, 96 | borderWidth: 0, 97 | style: { 98 | color: '#FFF' 99 | } 100 | }, 101 | 102 | 103 | plotOptions: { 104 | series: { 105 | shadow: true 106 | }, 107 | line: { 108 | dataLabels: { 109 | color: '#CCC' 110 | }, 111 | marker: { 112 | lineColor: '#333' 113 | } 114 | }, 115 | spline: { 116 | marker: { 117 | lineColor: '#333' 118 | } 119 | }, 120 | scatter: { 121 | marker: { 122 | lineColor: '#333' 123 | } 124 | }, 125 | candlestick: { 126 | lineColor: 'white' 127 | } 128 | }, 129 | 130 | toolbar: { 131 | itemStyle: { 132 | color: '#CCC' 133 | } 134 | }, 135 | 136 | navigation: { 137 | buttonOptions: { 138 | symbolStroke: '#DDDDDD', 139 | hoverSymbolStroke: '#FFFFFF', 140 | theme: { 141 | fill: { 142 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 }, 143 | stops: [ 144 | [0.4, '#606060'], 145 | [0.6, '#333333'] 146 | ] 147 | }, 148 | stroke: '#000000' 149 | } 150 | } 151 | }, 152 | 153 | // scroll charts 154 | rangeSelector: { 155 | buttonTheme: { 156 | fill: { 157 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 }, 158 | stops: [ 159 | [0.4, '#888'], 160 | [0.6, '#555'] 161 | ] 162 | }, 163 | stroke: '#000000', 164 | style: { 165 | color: '#CCC', 166 | fontWeight: 'bold' 167 | }, 168 | states: { 169 | hover: { 170 | fill: { 171 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 }, 172 | stops: [ 173 | [0.4, '#BBB'], 174 | [0.6, '#888'] 175 | ] 176 | }, 177 | stroke: '#000000', 178 | style: { 179 | color: 'white' 180 | } 181 | }, 182 | select: { 183 | fill: { 184 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 }, 185 | stops: [ 186 | [0.1, '#000'], 187 | [0.3, '#333'] 188 | ] 189 | }, 190 | stroke: '#000000', 191 | style: { 192 | color: 'yellow' 193 | } 194 | } 195 | } 196 | }, 197 | inputStyle: { 198 | backgroundColor: '#333', 199 | color: 'silver' 200 | }, 201 | labelStyle: { 202 | color: 'silver' 203 | } 204 | }, 205 | 206 | navigator: { 207 | handles: { 208 | backgroundColor: '#666', 209 | borderColor: '#AAA' 210 | }, 211 | outlineColor: '#CCC', 212 | maskFill: 'rgba(16, 16, 16, 0.5)', 213 | series: { 214 | color: '#7798BF', 215 | lineColor: '#A6C7ED' 216 | } 217 | }, 218 | 219 | scrollbar: { 220 | barBackgroundColor: { 221 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 }, 222 | stops: [ 223 | [0.4, '#888'], 224 | [0.6, '#555'] 225 | ] 226 | }, 227 | barBorderColor: '#CCC', 228 | buttonArrowColor: '#CCC', 229 | buttonBackgroundColor: { 230 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 }, 231 | stops: [ 232 | [0.4, '#888'], 233 | [0.6, '#555'] 234 | ] 235 | }, 236 | buttonBorderColor: '#CCC', 237 | rifleColor: '#FFF', 238 | trackBackgroundColor: { 239 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 }, 240 | stops: [ 241 | [0, '#000'], 242 | [1, '#333'] 243 | ] 244 | }, 245 | trackBorderColor: '#666' 246 | }, 247 | 248 | // special colors for some of the demo examples 249 | legendBackgroundColor: 'rgba(48, 48, 48, 0.8)', 250 | legendBackgroundColorSolid: 'rgb(70, 70, 70)', 251 | dataLabelsColor: '#444', 252 | textColor: '#E0E0E0', 253 | maskColor: 'rgba(255,255,255,0.3)' 254 | }; 255 | 256 | // Apply the theme 257 | var highchartsOptions = Highcharts.setOptions(Highcharts.theme); 258 | -------------------------------------------------------------------------------- /third-party/highcharts/themes/grid.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Grid theme for Highcharts JS 3 | * @author Torstein Hønsi 4 | */ 5 | 6 | Highcharts.theme = { 7 | colors: ['#058DC7', '#50B432', '#ED561B', '#DDDF00', '#24CBE5', '#64E572', '#FF9655', '#FFF263', '#6AF9C4'], 8 | chart: { 9 | backgroundColor: { 10 | linearGradient: { x1: 0, y1: 0, x2: 1, y2: 1 }, 11 | stops: [ 12 | [0, 'rgb(255, 255, 255)'], 13 | [1, 'rgb(240, 240, 255)'] 14 | ] 15 | }, 16 | borderWidth: 2, 17 | plotBackgroundColor: 'rgba(255, 255, 255, .9)', 18 | plotShadow: true, 19 | plotBorderWidth: 1 20 | }, 21 | title: { 22 | style: { 23 | color: '#000', 24 | font: 'bold 16px "Trebuchet MS", Verdana, sans-serif' 25 | } 26 | }, 27 | subtitle: { 28 | style: { 29 | color: '#666666', 30 | font: 'bold 12px "Trebuchet MS", Verdana, sans-serif' 31 | } 32 | }, 33 | xAxis: { 34 | gridLineWidth: 1, 35 | lineColor: '#000', 36 | tickColor: '#000', 37 | labels: { 38 | style: { 39 | color: '#000', 40 | font: '11px Trebuchet MS, Verdana, sans-serif' 41 | } 42 | }, 43 | title: { 44 | style: { 45 | color: '#333', 46 | fontWeight: 'bold', 47 | fontSize: '12px', 48 | fontFamily: 'Trebuchet MS, Verdana, sans-serif' 49 | 50 | } 51 | } 52 | }, 53 | yAxis: { 54 | minorTickInterval: 'auto', 55 | lineColor: '#000', 56 | lineWidth: 1, 57 | tickWidth: 1, 58 | tickColor: '#000', 59 | labels: { 60 | style: { 61 | color: '#000', 62 | font: '11px Trebuchet MS, Verdana, sans-serif' 63 | } 64 | }, 65 | title: { 66 | style: { 67 | color: '#333', 68 | fontWeight: 'bold', 69 | fontSize: '12px', 70 | fontFamily: 'Trebuchet MS, Verdana, sans-serif' 71 | } 72 | } 73 | }, 74 | legend: { 75 | itemStyle: { 76 | font: '9pt Trebuchet MS, Verdana, sans-serif', 77 | color: 'black' 78 | 79 | }, 80 | itemHoverStyle: { 81 | color: '#039' 82 | }, 83 | itemHiddenStyle: { 84 | color: 'gray' 85 | } 86 | }, 87 | labels: { 88 | style: { 89 | color: '#99b' 90 | } 91 | }, 92 | 93 | navigation: { 94 | buttonOptions: { 95 | theme: { 96 | stroke: '#CCCCCC' 97 | } 98 | } 99 | } 100 | }; 101 | 102 | // Apply the theme 103 | var highchartsOptions = Highcharts.setOptions(Highcharts.theme); 104 | -------------------------------------------------------------------------------- /third-party/highcharts/themes/skies.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Skies theme for Highcharts JS 3 | * @author Torstein Hønsi 4 | */ 5 | 6 | Highcharts.theme = { 7 | colors: ["#514F78", "#42A07B", "#9B5E4A", "#72727F", "#1F949A", "#82914E", "#86777F", "#42A07B"], 8 | chart: { 9 | className: 'skies', 10 | borderWidth: 0, 11 | plotShadow: true, 12 | plotBackgroundImage: 'http://www.highcharts.com/demo/gfx/skies.jpg', 13 | plotBackgroundColor: { 14 | linearGradient: [0, 0, 250, 500], 15 | stops: [ 16 | [0, 'rgba(255, 255, 255, 1)'], 17 | [1, 'rgba(255, 255, 255, 0)'] 18 | ] 19 | }, 20 | plotBorderWidth: 1 21 | }, 22 | title: { 23 | style: { 24 | color: '#3E576F', 25 | font: '16px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif' 26 | } 27 | }, 28 | subtitle: { 29 | style: { 30 | color: '#6D869F', 31 | font: '12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif' 32 | } 33 | }, 34 | xAxis: { 35 | gridLineWidth: 0, 36 | lineColor: '#C0D0E0', 37 | tickColor: '#C0D0E0', 38 | labels: { 39 | style: { 40 | color: '#666', 41 | fontWeight: 'bold' 42 | } 43 | }, 44 | title: { 45 | style: { 46 | color: '#666', 47 | font: '12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif' 48 | } 49 | } 50 | }, 51 | yAxis: { 52 | alternateGridColor: 'rgba(255, 255, 255, .5)', 53 | lineColor: '#C0D0E0', 54 | tickColor: '#C0D0E0', 55 | tickWidth: 1, 56 | labels: { 57 | style: { 58 | color: '#666', 59 | fontWeight: 'bold' 60 | } 61 | }, 62 | title: { 63 | style: { 64 | color: '#666', 65 | font: '12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif' 66 | } 67 | } 68 | }, 69 | legend: { 70 | itemStyle: { 71 | font: '9pt Trebuchet MS, Verdana, sans-serif', 72 | color: '#3E576F' 73 | }, 74 | itemHoverStyle: { 75 | color: 'black' 76 | }, 77 | itemHiddenStyle: { 78 | color: 'silver' 79 | } 80 | }, 81 | labels: { 82 | style: { 83 | color: '#3E576F' 84 | } 85 | } 86 | }; 87 | 88 | // Apply the theme 89 | var highchartsOptions = Highcharts.setOptions(Highcharts.theme); 90 | -------------------------------------------------------------------------------- /third-party/snapscreen/UEditorSnapscreen.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/third-party/snapscreen/UEditorSnapscreen.exe -------------------------------------------------------------------------------- /third-party/video-js/font/vjs.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/third-party/video-js/font/vjs.eot -------------------------------------------------------------------------------- /third-party/video-js/font/vjs.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/third-party/video-js/font/vjs.ttf -------------------------------------------------------------------------------- /third-party/video-js/font/vjs.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/third-party/video-js/font/vjs.woff -------------------------------------------------------------------------------- /third-party/video-js/video-js.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/third-party/video-js/video-js.swf -------------------------------------------------------------------------------- /third-party/webuploader/Uploader.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/third-party/webuploader/Uploader.swf -------------------------------------------------------------------------------- /third-party/webuploader/webuploader.css: -------------------------------------------------------------------------------- 1 | .webuploader-container { 2 | position: relative; 3 | } 4 | .webuploader-element-invisible { 5 | position: absolute !important; 6 | clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ 7 | clip: rect(1px,1px,1px,1px); 8 | } 9 | .webuploader-pick { 10 | position: relative; 11 | display: inline-block; 12 | cursor: pointer; 13 | background: #00b7ee; 14 | padding: 10px 15px; 15 | color: #fff; 16 | text-align: center; 17 | border-radius: 3px; 18 | overflow: hidden; 19 | } 20 | .webuploader-pick-hover { 21 | background: #00a2d4; 22 | } 23 | 24 | .webuploader-pick-disable { 25 | opacity: 0.6; 26 | pointer-events:none; 27 | } 28 | 29 | -------------------------------------------------------------------------------- /third-party/zeroclipboard/ZeroClipboard.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/upyun/ueditor/7670cfd6f49abf50db9b4db34925611394c028f9/third-party/zeroclipboard/ZeroClipboard.swf --------------------------------------------------------------------------------