├── ueditor
└── 1.4.3.3
│ ├── themes
│ ├── iframe.css
│ └── default
│ │ ├── images
│ │ ├── arrow.png
│ │ ├── icons.gif
│ │ ├── icons.png
│ │ ├── lock.gif
│ │ ├── scale.png
│ │ ├── word.gif
│ │ ├── anchor.gif
│ │ ├── charts.png
│ │ ├── loading.gif
│ │ ├── spacer.gif
│ │ ├── upload.png
│ │ ├── arrow_down.png
│ │ ├── arrow_up.png
│ │ ├── button-bg.gif
│ │ ├── cursor_h.gif
│ │ ├── cursor_h.png
│ │ ├── cursor_v.gif
│ │ ├── cursor_v.png
│ │ ├── filescan.png
│ │ ├── icons-all.gif
│ │ ├── loaderror.png
│ │ ├── pagebreak.gif
│ │ ├── sortable.png
│ │ ├── sparator_v.png
│ │ ├── toolbar_bg.png
│ │ ├── videologo.gif
│ │ ├── wordpaste.png
│ │ ├── cancelbutton.gif
│ │ ├── highlighted.gif
│ │ ├── dialog-title-bg.png
│ │ ├── unhighlighted.gif
│ │ ├── neweditor-tab-bg.png
│ │ ├── table-cell-align.png
│ │ └── tangram-colorpicker.png
│ │ └── dialogbase.css
│ ├── jsp
│ ├── lib
│ │ ├── json.jar
│ │ ├── commons-io-2.4.jar
│ │ ├── ueditor-1.1.2.jar
│ │ ├── commons-codec-1.9.jar
│ │ └── commons-fileupload-1.3.1.jar
│ ├── controller.jsp
│ └── config.json
│ ├── lang
│ ├── en
│ │ └── images
│ │ │ ├── copy.png
│ │ │ ├── button.png
│ │ │ ├── music.png
│ │ │ ├── upload.png
│ │ │ ├── addimage.png
│ │ │ ├── background.png
│ │ │ ├── deleteenable.png
│ │ │ ├── localimage.png
│ │ │ ├── deletedisable.png
│ │ │ ├── listbackground.png
│ │ │ ├── rotateleftdisable.png
│ │ │ ├── rotateleftenable.png
│ │ │ ├── rotaterightenable.png
│ │ │ ├── alldeletebtnupskin.png
│ │ │ ├── rotaterightdisable.png
│ │ │ └── alldeletebtnhoverskin.png
│ └── zh-cn
│ │ └── images
│ │ ├── copy.png
│ │ ├── music.png
│ │ ├── upload.png
│ │ └── localimage.png
│ ├── dialogs
│ ├── table
│ │ ├── dragicon.png
│ │ ├── edittip.html
│ │ ├── edittable.css
│ │ ├── edittd.html
│ │ └── edittable.html
│ ├── emotion
│ │ ├── images
│ │ │ ├── 0.gif
│ │ │ ├── bface.gif
│ │ │ ├── cface.gif
│ │ │ ├── fface.gif
│ │ │ ├── tface.gif
│ │ │ ├── wface.gif
│ │ │ ├── yface.gif
│ │ │ ├── jxface2.gif
│ │ │ └── neweditor-tab-bg.png
│ │ ├── emotion.css
│ │ └── emotion.html
│ ├── image
│ │ └── images
│ │ │ ├── bg.png
│ │ │ ├── icons.gif
│ │ │ ├── icons.png
│ │ │ ├── image.png
│ │ │ ├── progress.png
│ │ │ ├── success.gif
│ │ │ ├── success.png
│ │ │ └── alignicon.jpg
│ ├── video
│ │ ├── images
│ │ │ ├── bg.png
│ │ │ ├── icons.gif
│ │ │ ├── icons.png
│ │ │ ├── image.png
│ │ │ ├── progress.png
│ │ │ ├── success.gif
│ │ │ ├── success.png
│ │ │ ├── file-icons.gif
│ │ │ ├── file-icons.png
│ │ │ ├── left_focus.jpg
│ │ │ ├── none_focus.jpg
│ │ │ ├── right_focus.jpg
│ │ │ └── center_focus.jpg
│ │ └── video.html
│ ├── scrawl
│ │ ├── images
│ │ │ ├── brush.png
│ │ │ ├── empty.png
│ │ │ ├── redo.png
│ │ │ ├── redoH.png
│ │ │ ├── scale.png
│ │ │ ├── size.png
│ │ │ ├── undo.png
│ │ │ ├── undoH.png
│ │ │ ├── addimg.png
│ │ │ ├── delimg.png
│ │ │ ├── delimgH.png
│ │ │ ├── emptyH.png
│ │ │ ├── eraser.png
│ │ │ └── scaleH.png
│ │ ├── scrawl.css
│ │ └── scrawl.html
│ ├── template
│ │ ├── images
│ │ │ ├── bg.gif
│ │ │ ├── pre0.png
│ │ │ ├── pre1.png
│ │ │ ├── pre2.png
│ │ │ ├── pre3.png
│ │ │ └── pre4.png
│ │ ├── template.html
│ │ ├── template.css
│ │ └── template.js
│ ├── attachment
│ │ ├── images
│ │ │ ├── bg.png
│ │ │ ├── icons.gif
│ │ │ ├── icons.png
│ │ │ ├── image.png
│ │ │ ├── progress.png
│ │ │ ├── success.gif
│ │ │ ├── success.png
│ │ │ ├── alignicon.gif
│ │ │ ├── alignicon.png
│ │ │ ├── file-icons.gif
│ │ │ └── file-icons.png
│ │ ├── fileTypeImages
│ │ │ ├── icon_chm.gif
│ │ │ ├── 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
│ │ │ └── icon_default.png
│ │ └── attachment.html
│ ├── background
│ │ ├── images
│ │ │ ├── bg.png
│ │ │ └── success.png
│ │ ├── background.css
│ │ └── background.html
│ ├── charts
│ │ ├── images
│ │ │ ├── charts0.png
│ │ │ ├── charts1.png
│ │ │ ├── charts2.png
│ │ │ ├── charts3.png
│ │ │ ├── charts4.png
│ │ │ └── charts5.png
│ │ ├── chart.config.js
│ │ ├── charts.css
│ │ └── charts.html
│ ├── wordimage
│ │ ├── imageUploader.swf
│ │ ├── fClipboard_ueditor.swf
│ │ └── wordimage.js
│ ├── help
│ │ ├── help.css
│ │ ├── help.js
│ │ └── help.html
│ ├── spechars
│ │ ├── spechars.html
│ │ └── spechars.js
│ ├── music
│ │ ├── music.html
│ │ └── music.css
│ ├── preview
│ │ └── preview.html
│ ├── anchor
│ │ └── anchor.html
│ ├── snapscreen
│ │ └── snapscreen.html
│ ├── webapp
│ │ └── webapp.html
│ ├── internal.js
│ ├── gmap
│ │ └── gmap.html
│ ├── insertframe
│ │ └── insertframe.html
│ ├── searchreplace
│ │ └── searchreplace.html
│ ├── map
│ │ └── show.html
│ └── link
│ │ └── link.html
│ └── third-party
│ ├── video-js
│ ├── font
│ │ ├── vjs.eot
│ │ ├── vjs.ttf
│ │ └── vjs.woff
│ └── video-js.swf
│ ├── webuploader
│ ├── Uploader.swf
│ └── webuploader.css
│ ├── zeroclipboard
│ └── ZeroClipboard.swf
│ ├── snapscreen
│ └── UEditorSnapscreen.exe
│ ├── highcharts
│ ├── modules
│ │ ├── heatmap.js
│ │ ├── heatmap.src.js
│ │ ├── no-data-to-display.js
│ │ ├── funnel.js
│ │ ├── annotations.js
│ │ ├── no-data-to-display.src.js
│ │ └── data.js
│ ├── themes
│ │ ├── skies.js
│ │ └── grid.js
│ └── adapters
│ │ ├── mootools-adapter.js
│ │ ├── prototype-adapter.js
│ │ └── standalone-framework.js
│ └── codemirror
│ └── codemirror.css
├── .gitignore
├── src
├── ext
│ ├── theme.less
│ ├── validations.ts
│ ├── renderer-defaults.ts
│ ├── is-in-white-list.ts
│ ├── amis-components
│ │ └── Demo.tsx
│ ├── util.ts
│ └── get-default-mode.ts
├── app
│ ├── polyfill.tsx
│ ├── info-page-schema.ts
│ ├── load-schema.ts
│ └── App.tsx
├── index.tsx
└── index.html
├── tsconfig.json
├── .travis.yml
├── CHANGELOG.md
├── LICENSE
├── package.json
├── faq.md
├── webpack.config.js
└── context.md
/ueditor/1.4.3.3/themes/iframe.css:
--------------------------------------------------------------------------------
1 | /*可以在这里添加你自己的css*/
2 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /public
2 | /node_modules
3 | /gh-pages
4 | /dist
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/jsp/lib/json.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/jsp/lib/json.jar
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/lang/en/images/copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/lang/en/images/copy.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/table/dragicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/table/dragicon.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/jsp/lib/commons-io-2.4.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/jsp/lib/commons-io-2.4.jar
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/jsp/lib/ueditor-1.1.2.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/jsp/lib/ueditor-1.1.2.jar
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/lang/en/images/button.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/lang/en/images/button.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/lang/en/images/music.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/lang/en/images/music.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/lang/en/images/upload.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/lang/en/images/upload.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/lang/zh-cn/images/copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/lang/zh-cn/images/copy.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/emotion/images/0.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/emotion/images/0.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/image/images/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/image/images/bg.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/video/images/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/video/images/bg.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/lang/en/images/addimage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/lang/en/images/addimage.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/lang/zh-cn/images/music.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/lang/zh-cn/images/music.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/lang/zh-cn/images/upload.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/lang/zh-cn/images/upload.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/image/images/icons.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/image/images/icons.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/image/images/icons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/image/images/icons.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/image/images/image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/image/images/image.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/scrawl/images/brush.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/scrawl/images/brush.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/scrawl/images/empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/scrawl/images/empty.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/scrawl/images/redo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/scrawl/images/redo.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/scrawl/images/redoH.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/scrawl/images/redoH.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/scrawl/images/scale.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/scrawl/images/scale.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/scrawl/images/size.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/scrawl/images/size.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/scrawl/images/undo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/scrawl/images/undo.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/scrawl/images/undoH.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/scrawl/images/undoH.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/template/images/bg.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/template/images/bg.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/video/images/icons.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/video/images/icons.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/video/images/icons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/video/images/icons.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/video/images/image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/video/images/image.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/jsp/lib/commons-codec-1.9.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/jsp/lib/commons-codec-1.9.jar
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/lang/en/images/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/lang/en/images/background.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/lang/en/images/deleteenable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/lang/en/images/deleteenable.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/lang/en/images/localimage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/lang/en/images/localimage.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/themes/default/images/arrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/themes/default/images/arrow.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/themes/default/images/icons.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/themes/default/images/icons.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/themes/default/images/icons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/themes/default/images/icons.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/themes/default/images/lock.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/themes/default/images/lock.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/themes/default/images/scale.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/themes/default/images/scale.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/themes/default/images/word.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/themes/default/images/word.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/attachment/images/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/attachment/images/bg.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/background/images/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/background/images/bg.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/charts/images/charts0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/charts/images/charts0.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/charts/images/charts1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/charts/images/charts1.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/charts/images/charts2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/charts/images/charts2.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/charts/images/charts3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/charts/images/charts3.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/charts/images/charts4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/charts/images/charts4.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/charts/images/charts5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/charts/images/charts5.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/emotion/images/bface.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/emotion/images/bface.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/emotion/images/cface.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/emotion/images/cface.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/emotion/images/fface.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/emotion/images/fface.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/emotion/images/tface.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/emotion/images/tface.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/emotion/images/wface.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/emotion/images/wface.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/emotion/images/yface.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/emotion/images/yface.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/image/images/progress.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/image/images/progress.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/image/images/success.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/image/images/success.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/image/images/success.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/image/images/success.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/scrawl/images/addimg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/scrawl/images/addimg.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/scrawl/images/delimg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/scrawl/images/delimg.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/scrawl/images/delimgH.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/scrawl/images/delimgH.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/scrawl/images/emptyH.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/scrawl/images/emptyH.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/scrawl/images/eraser.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/scrawl/images/eraser.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/scrawl/images/scaleH.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/scrawl/images/scaleH.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/template/images/pre0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/template/images/pre0.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/template/images/pre1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/template/images/pre1.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/template/images/pre2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/template/images/pre2.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/template/images/pre3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/template/images/pre3.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/template/images/pre4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/template/images/pre4.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/video/images/progress.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/video/images/progress.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/video/images/success.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/video/images/success.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/video/images/success.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/video/images/success.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/lang/en/images/deletedisable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/lang/en/images/deletedisable.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/lang/en/images/listbackground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/lang/en/images/listbackground.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/lang/zh-cn/images/localimage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/lang/zh-cn/images/localimage.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/themes/default/images/anchor.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/themes/default/images/anchor.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/themes/default/images/charts.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/themes/default/images/charts.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/themes/default/images/loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/themes/default/images/loading.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/themes/default/images/spacer.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/themes/default/images/spacer.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/themes/default/images/upload.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/themes/default/images/upload.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/third-party/video-js/font/vjs.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/third-party/video-js/font/vjs.eot
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/third-party/video-js/font/vjs.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/third-party/video-js/font/vjs.ttf
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/third-party/video-js/video-js.swf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/third-party/video-js/video-js.swf
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/attachment/images/icons.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/attachment/images/icons.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/attachment/images/icons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/attachment/images/icons.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/attachment/images/image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/attachment/images/image.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/emotion/images/jxface2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/emotion/images/jxface2.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/image/images/alignicon.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/image/images/alignicon.jpg
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/video/images/file-icons.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/video/images/file-icons.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/video/images/file-icons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/video/images/file-icons.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/video/images/left_focus.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/video/images/left_focus.jpg
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/video/images/none_focus.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/video/images/none_focus.jpg
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/video/images/right_focus.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/video/images/right_focus.jpg
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/wordimage/imageUploader.swf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/wordimage/imageUploader.swf
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/jsp/lib/commons-fileupload-1.3.1.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/jsp/lib/commons-fileupload-1.3.1.jar
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/lang/en/images/rotateleftdisable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/lang/en/images/rotateleftdisable.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/lang/en/images/rotateleftenable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/lang/en/images/rotateleftenable.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/lang/en/images/rotaterightenable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/lang/en/images/rotaterightenable.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/themes/default/images/arrow_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/themes/default/images/arrow_down.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/themes/default/images/arrow_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/themes/default/images/arrow_up.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/themes/default/images/button-bg.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/themes/default/images/button-bg.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/themes/default/images/cursor_h.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/themes/default/images/cursor_h.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/themes/default/images/cursor_h.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/themes/default/images/cursor_h.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/themes/default/images/cursor_v.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/themes/default/images/cursor_v.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/themes/default/images/cursor_v.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/themes/default/images/cursor_v.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/themes/default/images/filescan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/themes/default/images/filescan.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/themes/default/images/icons-all.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/themes/default/images/icons-all.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/themes/default/images/loaderror.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/themes/default/images/loaderror.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/themes/default/images/pagebreak.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/themes/default/images/pagebreak.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/themes/default/images/sortable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/themes/default/images/sortable.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/themes/default/images/sparator_v.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/themes/default/images/sparator_v.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/themes/default/images/toolbar_bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/themes/default/images/toolbar_bg.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/themes/default/images/videologo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/themes/default/images/videologo.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/themes/default/images/wordpaste.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/themes/default/images/wordpaste.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/third-party/video-js/font/vjs.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/third-party/video-js/font/vjs.woff
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/third-party/webuploader/Uploader.swf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/third-party/webuploader/Uploader.swf
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/attachment/images/progress.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/attachment/images/progress.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/attachment/images/success.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/attachment/images/success.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/attachment/images/success.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/attachment/images/success.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/background/images/success.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/background/images/success.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/video/images/center_focus.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/video/images/center_focus.jpg
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/lang/en/images/alldeletebtnupskin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/lang/en/images/alldeletebtnupskin.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/lang/en/images/rotaterightdisable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/lang/en/images/rotaterightdisable.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/themes/default/images/cancelbutton.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/themes/default/images/cancelbutton.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/themes/default/images/highlighted.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/themes/default/images/highlighted.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/attachment/images/alignicon.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/attachment/images/alignicon.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/attachment/images/alignicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/attachment/images/alignicon.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/attachment/images/file-icons.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/attachment/images/file-icons.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/attachment/images/file-icons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/attachment/images/file-icons.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/wordimage/fClipboard_ueditor.swf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/wordimage/fClipboard_ueditor.swf
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/lang/en/images/alldeletebtnhoverskin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/lang/en/images/alldeletebtnhoverskin.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/themes/default/images/dialog-title-bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/themes/default/images/dialog-title-bg.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/themes/default/images/unhighlighted.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/themes/default/images/unhighlighted.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/emotion/images/neweditor-tab-bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/emotion/images/neweditor-tab-bg.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/themes/default/images/neweditor-tab-bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/themes/default/images/neweditor-tab-bg.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/themes/default/images/table-cell-align.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/themes/default/images/table-cell-align.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/third-party/zeroclipboard/ZeroClipboard.swf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/third-party/zeroclipboard/ZeroClipboard.swf
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/attachment/fileTypeImages/icon_chm.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/attachment/fileTypeImages/icon_chm.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/attachment/fileTypeImages/icon_doc.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/attachment/fileTypeImages/icon_doc.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/attachment/fileTypeImages/icon_exe.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/attachment/fileTypeImages/icon_exe.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/attachment/fileTypeImages/icon_jpg.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/attachment/fileTypeImages/icon_jpg.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/attachment/fileTypeImages/icon_mp3.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/attachment/fileTypeImages/icon_mp3.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/attachment/fileTypeImages/icon_mv.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/attachment/fileTypeImages/icon_mv.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/attachment/fileTypeImages/icon_pdf.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/attachment/fileTypeImages/icon_pdf.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/attachment/fileTypeImages/icon_ppt.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/attachment/fileTypeImages/icon_ppt.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/attachment/fileTypeImages/icon_psd.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/attachment/fileTypeImages/icon_psd.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/attachment/fileTypeImages/icon_rar.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/attachment/fileTypeImages/icon_rar.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/attachment/fileTypeImages/icon_txt.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/attachment/fileTypeImages/icon_txt.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/attachment/fileTypeImages/icon_xls.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/attachment/fileTypeImages/icon_xls.gif
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/themes/default/images/tangram-colorpicker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/themes/default/images/tangram-colorpicker.png
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/third-party/snapscreen/UEditorSnapscreen.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/third-party/snapscreen/UEditorSnapscreen.exe
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/attachment/fileTypeImages/icon_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ufologist/page-schema-player/HEAD/ueditor/1.4.3.3/dialogs/attachment/fileTypeImages/icon_default.png
--------------------------------------------------------------------------------
/src/ext/theme.less:
--------------------------------------------------------------------------------
1 | // 参考 Ant Design
2 | // https://ant.design/docs/react/customize-theme-cn#Ant-Design-%E7%9A%84%E6%A0%B7%E5%BC%8F%E5%8F%98%E9%87%8F
3 | @brand-color: #1890ff;
4 |
5 | // 可以在这里覆盖 AMIS 的样式, 定制一套皮肤
6 | .a-Button--primary {
7 | background-color: @brand-color;
8 | border-color: @brand-color;
9 | }
--------------------------------------------------------------------------------
/src/ext/validations.ts:
--------------------------------------------------------------------------------
1 | import {
2 | addRule
3 | } from 'amis';
4 | import {
5 | validations,
6 | validateMessages // 可用于覆盖默认的验证信息
7 | } from 'amis/lib/utils/validations';
8 |
9 | addRule('isPhone', function(values, value) {
10 | return validations.matchRegexp(values, value, /^1\d{10}$/);
11 | }, '请输入正确的手机号码');
--------------------------------------------------------------------------------
/src/ext/renderer-defaults.ts:
--------------------------------------------------------------------------------
1 | // 覆盖 AMIS 的默认值
2 | import {
3 | SelectControlRenderer
4 | } from 'amis/lib/renderers/Form/Select';
5 | import {
6 | TextControlRenderer
7 | } from 'amis/lib/renderers/Form/Text';
8 |
9 | SelectControlRenderer.defaultProps.clearable = true;
10 | SelectControlRenderer.defaultProps.searchable = true;
11 | TextControlRenderer.defaultProps.clearable = true;
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "module": "commonjs",
4 | "target": "es5",
5 | "lib": ["es6", "dom"],
6 | "sourceMap": true,
7 | "jsx": "react",
8 | "noImplicitReturns": true,
9 | "noImplicitThis": true,
10 | "noImplicitAny": false,
11 | "strictNullChecks": true,
12 | "experimentalDecorators":true,
13 | "emitDecoratorMetadata": true
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/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;}
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | # https://docs.travis-ci.com/user/deployment/pages/
2 | language: node_js
3 | node_js:
4 | - "8"
5 | - node
6 |
7 | script:
8 | - npm run build
9 | - cp README.md dist
10 | - cp .gitignore dist
11 |
12 | deploy:
13 | provider: pages
14 | skip_cleanup: true
15 | github_token: $GITHUB_TOKEN # Set in the settings page of your repository, as a secure variable
16 | keep_history: true
17 | local_dir: dist
18 | on:
19 | branch: master
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/jsp/controller.jsp:
--------------------------------------------------------------------------------
1 | <%@ page language="java" contentType="text/html; charset=UTF-8"
2 | import="com.baidu.ueditor.ActionEnter"
3 | pageEncoding="UTF-8"%>
4 | <%@ page trimDirectiveWhitespaces="true" %>
5 | <%
6 |
7 | request.setCharacterEncoding( "utf-8" );
8 | response.setHeader("Content-Type" , "text/html");
9 |
10 | String rootPath = application.getRealPath( "/" );
11 |
12 | out.write( new ActionEnter( request, rootPath ).exec() );
13 |
14 | %>
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # CHANGELOG
2 |
3 | * v1.3.0 2020-4-13
4 |
5 | * feat: 实现基于 UEditor 的富文本编辑器自定义组件来替代 AMis 自带的富文本(Froala Editor)
6 |
7 | * v1.2.0 2020-3-31
8 |
9 | * feat: 实现接口的未登录处理器(`api._unauthorized`)机制
10 |
11 | * v1.1.0 2020-3-24
12 |
13 | * feat: 在外部会有需要用到 [`env`](https://github.com/ufologist/page-schema-player/blob/201265ce7d0af9fd10016ff039b20e7833267f28/src/app/AMisRenderer.tsx#L38) 中方法的场景, 例如弹一个 `notify` 或者发送一个额外的请求, 因此将其暴露到 `window.amisEnv`
14 |
15 | * v1.0.0 2020-3-21
16 |
17 | * 初始版本
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/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
21 |
22 |
${message}
23 |
24 | `;
25 | }
26 | }
27 | }
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/spechars/spechars.html:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 |
14 |
15 |
16 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/src/ext/amis-components/Demo.tsx:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 | import {
3 | FormItem
4 | } from 'amis';
5 |
6 | interface DemoProps {
7 | value: any;
8 | onChange: Function
9 | }
10 |
11 | /**
12 | * 自定义组件示例
13 | *
14 | * @see https://baidu.github.io/amis/docs/dev
15 | */
16 | @FormItem({
17 | type: 'demo'
18 | })
19 | export default class Demo extends React.Component {
20 | toggle = () => {
21 | const {value, onChange} = this.props;
22 |
23 | onChange(!value);
24 | };
25 |
26 | render() {
27 | const {value} = this.props;
28 | const checked = !!value;
29 |
30 | return (
31 |
37 | );
38 | }
39 | }
--------------------------------------------------------------------------------
/src/ext/util.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * 获取主域名
3 | *
4 | * @param hostname
5 | * @return {string}
6 | */
7 | export function getMainDomain(hostname) {
8 | var mainDomain = '';
9 | var domainSegment = hostname.split('.');
10 |
11 | if (hostname.replace(/[\d\.]/g, '') === '') { // IP
12 | mainDomain = hostname;
13 | } else if (domainSegment.length === 1) { // localhost
14 | mainDomain = hostname;
15 | } else {
16 | // 顶级域名
17 | var topLevelDomain = domainSegment[domainSegment.length - 1];
18 | // 二级域名
19 | var secondLevelDomain = domainSegment[domainSegment.length - 2];
20 | // 主域名
21 | mainDomain = secondLevelDomain + '.' + topLevelDomain;
22 | }
23 |
24 | return mainDomain;
25 | }
26 |
27 | /**
28 | * 获取最后一级的域名
29 | *
30 | * @param hostname
31 | * @return {string}
32 | */
33 | export function getLastLevelDomain(hostname) {
34 | var domainSegment = hostname.split('.');
35 | return domainSegment[0];
36 | }
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/table/edittip.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 表格删除提示
5 |
6 |
17 |
18 |
19 |
27 |
32 |
33 |
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/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 |
--------------------------------------------------------------------------------
/src/index.tsx:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 | import {
3 | render
4 | } from 'react-dom';
5 |
6 | import App from './app/App';
7 |
8 | (self as any).MonacoEnvironment = {
9 | getWorkerUrl: function (moduleId:any, label:string) {
10 | if (label === 'json') {
11 | return '/json.worker.bundle.js';
12 | }
13 | if (label === 'css') {
14 | return '/css.worker.bundle.js';
15 | }
16 | if (label === 'html') {
17 | return '/html.worker.bundle.js';
18 | }
19 | if (label === 'typescript' || label === 'javascript') {
20 | return '/ts.worker.bundle.js';
21 | }
22 | return '/editor.worker.bundle.js';
23 | }
24 | }
25 |
26 | export function bootstrap(mountTo:Element) {
27 | render( , mountTo);
28 | // 移除骨架屏
29 | try {
30 | document.body.removeChild(document.querySelector('.skeleton')!);
31 | } catch (error) {
32 | console.error('remove skeleton error', error);
33 | }
34 | }
35 |
36 | bootstrap(document.querySelector('.js-app')!);
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/music/music.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 插入音乐
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
19 |
20 |
21 |
22 |
31 |
32 |
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/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; }
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 Sun
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/preview/preview.html:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
40 |
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/third-party/highcharts/modules/heatmap.src.js:
--------------------------------------------------------------------------------
1 | (function (Highcharts) {
2 | var seriesTypes = Highcharts.seriesTypes,
3 | each = Highcharts.each;
4 |
5 | seriesTypes.heatmap = Highcharts.extendClass(seriesTypes.map, {
6 | colorKey: 'z',
7 | useMapGeometry: false,
8 | pointArrayMap: ['y', 'z'],
9 | translate: function () {
10 | var series = this,
11 | options = series.options,
12 | dataMin = Number.MAX_VALUE,
13 | dataMax = Number.MIN_VALUE;
14 |
15 | series.generatePoints();
16 |
17 | each(series.data, function (point) {
18 | var x = point.x,
19 | y = point.y,
20 | value = point.z,
21 | xPad = (options.colsize || 1) / 2,
22 | yPad = (options.rowsize || 1) / 2;
23 |
24 | point.path = [
25 | 'M', x - xPad, y - yPad,
26 | 'L', x + xPad, y - yPad,
27 | 'L', x + xPad, y + yPad,
28 | 'L', x - xPad, y + yPad,
29 | 'Z'
30 | ];
31 |
32 | point.shapeType = 'path';
33 | point.shapeArgs = {
34 | d: series.translatePath(point.path)
35 | };
36 |
37 | if (typeof value === 'number') {
38 | if (value > 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 |
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/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 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "page-schema-player",
3 | "version": "1.3.0",
4 | "description": "配页坊: 简称配方 - 为配置页面而生, 专注于配置后台页面",
5 | "author": "Sun",
6 | "main": "src/index.tsx",
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1",
9 | "start": "webpack-dev-server --open --progress",
10 | "build": "webpack --mode=production --progress"
11 | },
12 | "keywords": [
13 | "amis",
14 | "schema",
15 | "cms",
16 | "mis"
17 | ],
18 | "dependencies": {
19 | "amis": "^1.0.9",
20 | "axios": "^0.18.0",
21 | "bootstrap": "^3.4.1",
22 | "copy-to-clipboard": "3.0.8",
23 | "ifanrx-react-ueditor": "^2.3.0",
24 | "nprogress": "^0.2.0",
25 | "qsman": "0.0.4",
26 | "react": "^16.8.6",
27 | "react-dom": "^16.8.6",
28 | "react-router-dom": "^5.1.2"
29 | },
30 | "devDependencies": {
31 | "@types/node": "^11.13.8",
32 | "@types/react": "^16.8.4",
33 | "@types/react-dom": "^16.8.4",
34 | "clean-webpack-plugin": "^3.0.0",
35 | "copy-webpack-plugin": "^5.1.1",
36 | "css-loader": "^3.4.2",
37 | "file-loader": "^5.0.2",
38 | "html-webpack-plugin": "^4.0.0-beta.9",
39 | "less": "^3.11.1",
40 | "less-loader": "^5.0.0",
41 | "mini-css-extract-plugin": "^0.9.0",
42 | "optimize-css-assets-webpack-plugin": "^5.0.3",
43 | "style-loader": "^1.1.3",
44 | "ts-loader": "^6.2.1",
45 | "typescript": "^3.7.5",
46 | "webpack": "^4.41.5",
47 | "webpack-cli": "^3.3.10",
48 | "webpack-dev-server": "^3.10.1",
49 | "yargs": "^15.3.1"
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/faq.md:
--------------------------------------------------------------------------------
1 | # FAQ
2 |
3 | 收集整理自向好友 ant "安利"配页坊时的一些聊天记录和一些常见的问题答疑
4 |
5 | ## 为什么要使用配页坊?
6 |
7 | 使用配页坊之后, 针对简单的页面和增删改查以及表单这类模式化的页面, 可以不需要写代码, 单凭一个 JSON 配置文件就可以配置出一整个页面
8 |
9 | ## 开发出配页坊大概花了多长的时间?
10 |
11 | 从想法到可应用, 前前后后差不多花了 3 周左右的时间
12 | * 第 1 周: 技术调研 + 概要设计
13 | * 第 2 周: MVP
14 | * 第 3 周: 可应用 + 完善文档 + 出品
15 |
16 | ## 是什么动力驱使你开发出配页坊的?
17 |
18 | 主要是因为工程师文化吧. 我理解的工程师文化的主要核心就是[工具文化](https://36kr.com/p/146507 "以Facebook为案例剖析科技公司应有的工具文化"), 永不停歇地折腾: 善用工具提升效率, 工具化一切重复劳动, 自动化一切能够自动化的
19 |
20 | > Facebook对于内部工具(Tools)是非常非常关注的。公司要把最好的人才放到工具开发那一块,因为工具做好了,可以达到事半功倍的效果,所有人的效率都可以得到提高,而不仅仅是工程师。
21 | >
22 | > Facebook有两个工具组。一个叫研发工具组(Dev Tools),专门负责研发工具的开发和维护,所有有助于工程师开发速度和质量的工具,主要服务对象是内部工程师。另外一个叫网站支持和工具组(Site Support and Tools),主要负责公司里面所有的通用工具的开发和维护,关注的主要是方便用户和Facebook的交流以及Facebook内部的沟通,主要都是通讯工具,服务对象是用户和所有员工。
23 |
24 | 带头保持对技术的觉察和兴趣, 开发出提效的工具也能让大家从繁琐的重复劳动中解脱出来, 以便有更多的时间做更有价值的事情, 更多地去思考业务, 关注核心流程和未来规划. 而不会因为琐事耗尽了时间和精力, 以至于对其他的事情已经有心无力
25 |
26 | ## `page-schema-player` 和 `page-schema` 这两个项目的关系是怎么样的?
27 |
28 | 做个通俗的比喻: `page-schema-player` 项目就好比视频播放器, `page-schema` 项目就好比一个个视频文件(例如 video.mp4)
29 | * 因此 `page-schema-player` 项目是相对稳定的(内置了 AMis 官方组件), 针对简单的需求, 不需要太多地关注 `page-schema-player` 项目, 你只需要关注 `page-schema` 项目, 写好页面的配置文件, 然后"提供"给 `page-schema-player` 项目去"播放"就好了. 就好比你在用视频播放器的时候, 你只需要准备好视频文件, 提供给视频播放器, 至于具体要如何才能播放出来画面, 你完全不需要关心
30 | * 当需要增加自定义组件时, 才需要关注 `page-schema-player` 项目, 即理解为需要让视频播放器支持一种新的视频文件格式或者提供新的功能特性, 此时我们才需要对 `page-schema-player` 项目进行开发测试部署上线发布新版本, 即对视频播放器进行迭代开发
31 |
32 | ## 配页坊后续的规划是怎么样的?
33 |
34 | 得益于百度 AMis 提供的强大的页面配置化能力, 我们会先通过直接手写页面配置文件的方式来应用一段时间, 在实际的业务中接受考验以评估适用程度和项目收益, 后续再规划可视化的编辑器来提升开发体验, 以及一整套搭页面的平台
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/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 | }
--------------------------------------------------------------------------------
/src/ext/get-default-mode.ts:
--------------------------------------------------------------------------------
1 | import {
2 | getMainDomain,
3 | getLastLevelDomain
4 | } from './util';
5 |
6 | // 测试环境
7 | // 例如: https://static.test.com/path/to/page-schema-player/index.html
8 | var testEnvMainDomain = 'test.com';
9 | // 测试环境子环境
10 | // 例如: https://static-betaa.test.com/path/to/page-schema-player/index.html
11 | var testSubEnv = ['betaa', 'betab', 'betac', 'betad'];
12 | // 沙箱环境
13 | // 例如: https://static-stage.test.com/path/to/page-schema-player/index.html
14 | var stageDomainKeyword = 'stage';
15 |
16 | /**
17 | * 获取默认的环境模式(自动识别)
18 | *
19 | * @return {string}
20 | */
21 | export default function getDefaultMode() {
22 | var mode = '';
23 |
24 | var hostname = window.location.hostname;
25 | if (hostname.replace(/[\d\.]/g, '') === '') { // 通过 IP 访问时为开发环境
26 | mode = 'dev';
27 | } else if (hostname === 'localhost') { // localhost 时为开发环境
28 | mode = 'dev';
29 | } else if (getMainDomain(hostname) === testEnvMainDomain) { // 根据域名规则来界定测试环境和沙箱环境
30 | mode = 'test';
31 |
32 | // 这里需要由使用者根据自己的情况来实现
33 | // 例如根据当前页面的域名, 结合测试环境域名的某些规则(例如都是 test 开头), 来自动识别为测试环境
34 | var lastLevelDomain = getLastLevelDomain(hostname);
35 | for (var i = 0, length = testSubEnv.length; i < length; i++) {
36 | if (lastLevelDomain.indexOf(testSubEnv[i]) !== -1) {
37 | mode = testSubEnv[i];
38 | break;
39 | }
40 | }
41 |
42 | if (lastLevelDomain.indexOf(stageDomainKeyword) !== -1) {
43 | mode = 'stage';
44 | }
45 | } else { // 默认环境模式为生产环境
46 | mode = 'production';
47 | }
48 |
49 | return mode;
50 | }
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/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 |
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/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;
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/anchor/anchor.html:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
39 |
40 |
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/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;}
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/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 | })();
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/table/edittd.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
60 |
61 |
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/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;}
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/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 |
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/snapscreen/snapscreen.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/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 |
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/themes/default/dialogbase.css:
--------------------------------------------------------------------------------
1 | /*弹出对话框页面样式组件
2 | */
3 |
4 | /*reset
5 | */
6 | html, body, div, span, applet, object, iframe,
7 | h1, h2, h3, h4, h5, h6, p, blockquote, pre,
8 | a, abbr, acronym, address, big, cite, code,
9 | del, dfn, em, font, img, ins, kbd, q, s, samp,
10 | small, strike, strong, sub, sup, tt, var,
11 | b, u, i, center,
12 | dl, dt, dd, ol, ul, li,
13 | fieldset, form, label, legend,
14 | table, caption, tbody, tfoot, thead, tr, th, td {
15 | margin: 0;
16 | padding: 0;
17 | outline: 0;
18 | font-size: 100%;
19 | }
20 |
21 | body {
22 | line-height: 1;
23 | }
24 |
25 | ol, ul {
26 | list-style: none;
27 | }
28 |
29 | blockquote, q {
30 | quotes: none;
31 | }
32 |
33 | ins {
34 | text-decoration: none;
35 | }
36 |
37 | del {
38 | text-decoration: line-through;
39 | }
40 |
41 | table {
42 | border-collapse: collapse;
43 | border-spacing: 0;
44 | }
45 |
46 | /*module
47 | */
48 | body {
49 | background-color: #fff;
50 | font: 12px/1.5 sans-serif, "宋体", "Arial Narrow", HELVETICA;
51 | color: #646464;
52 | }
53 |
54 | /*tab*/
55 | .tabhead {
56 | position: relative;
57 | z-index: 10;
58 | }
59 |
60 | .tabhead span {
61 | display: inline-block;
62 | padding: 0 5px;
63 | height: 30px;
64 | border: 1px solid #ccc;
65 | background: url("images/dialog-title-bg.png") repeat-x;
66 | text-align: center;
67 | line-height: 30px;
68 | cursor: pointer;
69 | *margin-right: 5px;
70 | }
71 |
72 | .tabhead span.focus {
73 | height: 31px;
74 | border-bottom: none;
75 | background: #fff;
76 | }
77 |
78 | .tabbody {
79 | position: relative;
80 | top: -1px;
81 | margin: 0 auto;
82 | border: 1px solid #ccc;
83 | }
84 |
85 | /*button*/
86 | a.button {
87 | display: block;
88 | text-align: center;
89 | line-height: 24px;
90 | text-decoration: none;
91 | height: 24px;
92 | width: 95px;
93 | border: 0;
94 | color: #838383;
95 | background: url(../../themes/default/images/icons-all.gif) no-repeat;
96 | }
97 |
98 | a.button:hover {
99 | background-position: 0 -30px;
100 | }
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/third-party/highcharts/adapters/mootools-adapter.js:
--------------------------------------------------------------------------------
1 | /*
2 | Highcharts JS v3.0.6 (2013-10-04)
3 | MooTools adapter
4 |
5 | (c) 2010-2013 Torstein Hønsi
6 |
7 | License: www.highcharts.com/license
8 | */
9 | (function(){var e=window,h=document,f=e.MooTools.version.substring(0,3),i=f==="1.2"||f==="1.1",j=i||f==="1.3",g=e.$extend||function(){return Object.append.apply(Object,arguments)};e.HighchartsAdapter={init:function(a){var b=Fx.prototype,c=b.start,d=Fx.Morph.prototype,e=d.compute;b.start=function(b,d){var e=this.element;if(b.d)this.paths=a.init(e,e.d,this.toD);c.apply(this,arguments);return this};d.compute=function(b,c,d){var f=this.paths;if(f)this.element.attr("d",a.step(f[0],f[1],d,this.toD));else return e.apply(this,
10 | arguments)}},adapterRun:function(a,b){if(b==="width"||b==="height")return parseInt($(a).getStyle(b),10)},getScript:function(a,b){var c=h.getElementsByTagName("head")[0],d=h.createElement("script");d.type="text/javascript";d.src=a;d.onload=b;c.appendChild(d)},animate:function(a,b,c){var d=a.attr,f=c&&c.complete;if(d&&!a.setStyle)a.getStyle=a.attr,a.setStyle=function(){var a=arguments;this.attr.call(this,a[0],a[1][0])},a.$family=function(){return!0};e.HighchartsAdapter.stop(a);c=new Fx.Morph(d?a:$(a),
11 | g({transition:Fx.Transitions.Quad.easeInOut},c));if(d)c.element=a;if(b.d)c.toD=b.d;f&&c.addEvent("complete",f);c.start(b);a.fx=c},each:function(a,b){return i?$each(a,b):Array.each(a,b)},map:function(a,b){return a.map(b)},grep:function(a,b){return a.filter(b)},inArray:function(a,b,c){return b?b.indexOf(a,c):-1},offset:function(a){a=a.getPosition();return{left:a.x,top:a.y}},extendWithEvents:function(a){a.addEvent||(a.nodeName?$(a):g(a,new Events))},addEvent:function(a,b,c){typeof b==="string"&&(b===
12 | "unload"&&(b="beforeunload"),e.HighchartsAdapter.extendWithEvents(a),a.addEvent(b,c))},removeEvent:function(a,b,c){typeof a!=="string"&&a.addEvent&&(b?(b==="unload"&&(b="beforeunload"),c?a.removeEvent(b,c):a.removeEvents&&a.removeEvents(b)):a.removeEvents())},fireEvent:function(a,b,c,d){b={type:b,target:a};b=j?new Event(b):new DOMEvent(b);b=g(b,c);if(!b.target&&b.event)b.target=b.event.target;b.preventDefault=function(){d=null};a.fireEvent&&a.fireEvent(b.type,b);d&&d(b)},washMouseEvent:function(a){if(a.page)a.pageX=
13 | a.page.x,a.pageY=a.page.y;return a},stop:function(a){a.fx&&a.fx.cancel()}}})();
14 |
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/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 |
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/webapp/webapp.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
14 |
17 |
52 |
53 |
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/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 |
38 |
39 |
44 |
47 |
48 |
49 |
50 |
51 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/table/edittable.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
62 |
63 |
64 |
--------------------------------------------------------------------------------
/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 配页坊-荣誉出品
6 |
7 |
8 |
9 |
10 |
11 |
12 |
84 |
85 |
86 |
87 |
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/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 | }
--------------------------------------------------------------------------------
/src/app/load-schema.ts:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 | import axios from 'axios';
3 | import QsMan from 'qsman';
4 | var NProgress = require('nprogress');
5 | import 'nprogress/nprogress.css';
6 |
7 | import InfoPageSchema from './info-page-schema';
8 | import isInWhiteList from '../ext/is-in-white-list';
9 |
10 | // Babel 转义之后的 JSX 会使用到 React, 如果只是导入不使用一下的话, 这个导入就会被优化掉
11 | var forBabel = React;
12 |
13 | class LoadedErrorPageSchema extends InfoPageSchema {
14 | constructor(message:string, url:string, error:Error) {
15 | // 借助 a 元素拿到完整的 URL
16 | var anchor = document.createElement('a');
17 | anchor.href = url;
18 |
19 | super(message, `配置来自: ${anchor.href}`, error ? error.message : '未知的错误');
20 | }
21 | }
22 |
23 | /**
24 | * 加载 schema 文件
25 | *
26 | * @param url
27 | */
28 | export default function(url:string) {
29 | NProgress.start();
30 |
31 | var _url = url;
32 | // 排除掉 blob URL
33 | // 因为 GET blob:http://localhost/f505556e-7dd0-462f-a5ac-bda1bfbd2cd8?a=1 net::ERR_FILE_NOT_FOUND
34 | if (_url.indexOf('blob:') !== 0) {
35 | _url = new QsMan(_url).append({
36 | _: Date.now()
37 | }).toString();
38 | }
39 |
40 | if (isInWhiteList(_url)) {
41 | return axios({
42 | method: 'get',
43 | url: _url
44 | }).then((response) => {
45 | var schema = {};
46 |
47 | if (typeof response.data === 'string') {
48 | console.log(`--------------------${url}`);
49 | console.log('eval response as javascript code');
50 | var code = '';
51 |
52 | try {
53 | // @ts-ignore
54 | if (window.Babel) { // 如果页面中有 @babel/standalone
55 | console.log('@babel/standalone');
56 | // @ts-ignore
57 | code = window.Babel.transform(`(${response.data})`, {
58 | presets: ['env', 'react']
59 | }).code;
60 | } else {
61 | code = `(${response.data})`;
62 | }
63 |
64 | console.log(code);
65 | schema = eval(code);
66 | } catch (error) {
67 | schema = new LoadedErrorPageSchema('解析页面的配置出错了', url, error);
68 | }
69 |
70 | console.log('--------------------');
71 | } else {
72 | schema = response.data;
73 | }
74 |
75 | return schema;
76 | }).catch((error) => {
77 | return new LoadedErrorPageSchema('加载页面的配置失败了', url, error);
78 | }).finally(function() {
79 | NProgress.done();
80 | });
81 | } else {
82 | NProgress.done();
83 | return Promise.resolve(new LoadedErrorPageSchema('只能加载域名白名单内的页面配置', url, new Error('设置了域名白名单规则以避免安全问题')));
84 | }
85 | }
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/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 | :
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 | :x: px y: px
44 |
45 |
46 |
47 |
48 |
49 |
52 |
53 |
54 |
55 |
56 |
57 |
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/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 | ctrl+b
33 |
34 |
35 |
36 | ctrl+c
37 |
38 |
39 |
40 | ctrl+x
41 |
42 |
43 |
44 | ctrl+v
45 |
46 |
47 |
48 | ctrl+y
49 |
50 |
51 |
52 | ctrl+z
53 |
54 |
55 |
56 | ctrl+i
57 |
58 |
59 |
60 | ctrl+u
61 |
62 |
63 |
64 | ctrl+a
65 |
66 |
67 |
68 | shift+enter
69 |
70 |
71 |
72 | alt+z
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/third-party/highcharts/adapters/prototype-adapter.js:
--------------------------------------------------------------------------------
1 | /*
2 | Highcharts JS v3.0.6 (2013-10-04)
3 | Prototype adapter
4 |
5 | @author Michael Nelson, Torstein Hønsi.
6 |
7 | Feel free to use and modify this script.
8 | Highcharts license: www.highcharts.com/license.
9 | */
10 | var HighchartsAdapter=function(){var f=typeof Effect!=="undefined";return{init:function(a){if(f)Effect.HighchartsTransition=Class.create(Effect.Base,{initialize:function(b,c,d,g){var e;this.element=b;this.key=c;e=b.attr?b.attr(c):$(b).getStyle(c);if(c==="d")this.paths=a.init(b,b.d,d),this.toD=d,e=0,d=1;this.start(Object.extend(g||{},{from:e,to:d,attribute:c}))},setup:function(){HighchartsAdapter._extend(this.element);if(!this.element._highchart_animation)this.element._highchart_animation={};this.element._highchart_animation[this.key]=
11 | this},update:function(b){var c=this.paths,d=this.element;c&&(b=a.step(c[0],c[1],b,this.toD));d.attr?d.element&&d.attr(this.options.attribute,b):(c={},c[this.options.attribute]=b,$(d).setStyle(c))},finish:function(){this.element&&this.element._highchart_animation&&delete this.element._highchart_animation[this.key]}})},adapterRun:function(a,b){return parseInt($(a).getStyle(b),10)},getScript:function(a,b){var c=$$("head")[0];c&&c.appendChild((new Element("script",{type:"text/javascript",src:a})).observe("load",
12 | b))},addNS:function(a){var b=/^(?:click|mouse(?:down|up|over|move|out))$/;return/^(?:load|unload|abort|error|select|change|submit|reset|focus|blur|resize|scroll)$/.test(a)||b.test(a)?a:"h:"+a},addEvent:function(a,b,c){a.addEventListener||a.attachEvent?Event.observe($(a),HighchartsAdapter.addNS(b),c):(HighchartsAdapter._extend(a),a._highcharts_observe(b,c))},animate:function(a,b,c){var d,c=c||{};c.delay=0;c.duration=(c.duration||500)/1E3;c.afterFinish=c.complete;if(f)for(d in b)new Effect.HighchartsTransition($(a),
13 | d,b[d],c);else{if(a.attr)for(d in b)a.attr(d,b[d]);c.complete&&c.complete()}a.attr||$(a).setStyle(b)},stop:function(a){var b;if(a._highcharts_extended&&a._highchart_animation)for(b in a._highchart_animation)a._highchart_animation[b].cancel()},each:function(a,b){$A(a).each(b)},inArray:function(a,b,c){return b?b.indexOf(a,c):-1},offset:function(a){return $(a).cumulativeOffset()},fireEvent:function(a,b,c,d){a.fire?a.fire(HighchartsAdapter.addNS(b),c):a._highcharts_extended&&(c=c||{},a._highcharts_fire(b,
14 | c));c&&c.defaultPrevented&&(d=null);d&&d(c)},removeEvent:function(a,b,c){$(a).stopObserving&&(b&&(b=HighchartsAdapter.addNS(b)),$(a).stopObserving(b,c));window===a?Event.stopObserving(a,b,c):(HighchartsAdapter._extend(a),a._highcharts_stop_observing(b,c))},washMouseEvent:function(a){return a},grep:function(a,b){return a.findAll(b)},map:function(a,b){return a.map(b)},_extend:function(a){a._highcharts_extended||Object.extend(a,{_highchart_events:{},_highchart_animation:null,_highcharts_extended:!0,
15 | _highcharts_observe:function(b,a){this._highchart_events[b]=[this._highchart_events[b],a].compact().flatten()},_highcharts_stop_observing:function(b,a){b?a?this._highchart_events[b]=[this._highchart_events[b]].compact().flatten().without(a):delete this._highchart_events[b]:this._highchart_events={}},_highcharts_fire:function(a,c){var d=this;(this._highchart_events[a]||[]).each(function(a){if(!c.stopped)c.preventDefault=function(){c.defaultPrevented=!0},c.target=d,a.bind(this)(c)===!1&&c.preventDefault()}.bind(this))}})}}}();
16 |
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/third-party/highcharts/modules/annotations.js:
--------------------------------------------------------------------------------
1 | (function(i,C){function m(a){return typeof a==="number"}function n(a){return a!==D&&a!==null}var D,p,r,s=i.Chart,t=i.extend,z=i.each;r=["path","rect","circle"];p={top:0,left:0,center:0.5,middle:0.5,bottom:1,right:1};var u=C.inArray,A=i.merge,B=function(){this.init.apply(this,arguments)};B.prototype={init:function(a,d){var c=d.shape&&d.shape.type;this.chart=a;var b,f;f={xAxis:0,yAxis:0,title:{style:{},text:"",x:0,y:0},shape:{params:{stroke:"#000000",fill:"transparent",strokeWidth:2}}};b={circle:{params:{x:0,
2 | y:0}}};if(b[c])f.shape=A(f.shape,b[c]);this.options=A({},f,d)},render:function(a){var d=this.chart,c=this.chart.renderer,b=this.group,f=this.title,e=this.shape,h=this.options,i=h.title,l=h.shape;if(!b)b=this.group=c.g();if(!e&&l&&u(l.type,r)!==-1)e=this.shape=c[h.shape.type](l.params),e.add(b);if(!f&&i)f=this.title=c.label(i),f.add(b);b.add(d.annotations.group);this.linkObjects();a!==!1&&this.redraw()},redraw:function(){var a=this.options,d=this.chart,c=this.group,b=this.title,f=this.shape,e=this.linkedObject,
3 | h=d.xAxis[a.xAxis],v=d.yAxis[a.yAxis],l=a.width,w=a.height,x=p[a.anchorY],y=p[a.anchorX],j,o,g,q;if(e)j=e instanceof i.Point?"point":e instanceof i.Series?"series":null,j==="point"?(a.xValue=e.x,a.yValue=e.y,o=e.series):j==="series"&&(o=e),c.visibility!==o.group.visibility&&c.attr({visibility:o.group.visibility});e=n(a.xValue)?h.toPixels(a.xValue+h.minPointOffset)-h.minPixelPadding:a.x;j=n(a.yValue)?v.toPixels(a.yValue):a.y;if(!isNaN(e)&&!isNaN(j)&&m(e)&&m(j)){b&&(b.attr(a.title),b.css(a.title.style));
4 | if(f){b=t({},a.shape.params);if(a.units==="values"){for(g in b)u(g,["width","x"])>-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 |
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/third-party/codemirror/codemirror.css:
--------------------------------------------------------------------------------
1 | .CodeMirror {
2 | line-height: 1em;
3 | font-family: monospace;
4 | }
5 |
6 | .CodeMirror-scroll {
7 | overflow: auto;
8 | height: 300px;
9 | /* This is needed to prevent an IE[67] bug where the scrolled content
10 | is visible outside of the scrolling box. */
11 | position: relative;
12 | }
13 |
14 | .CodeMirror-gutter {
15 | position: absolute; left: 0; top: 0;
16 | z-index: 10;
17 | background-color: #f7f7f7;
18 | border-right: 1px solid #eee;
19 | min-width: 2em;
20 | height: 100%;
21 | }
22 | .CodeMirror-gutter-text {
23 | color: #aaa;
24 | text-align: right;
25 | padding: .4em .2em .4em .4em;
26 | white-space: pre !important;
27 | }
28 | .CodeMirror-lines {
29 | padding: .4em;
30 | }
31 |
32 | .CodeMirror pre {
33 | -moz-border-radius: 0;
34 | -webkit-border-radius: 0;
35 | -o-border-radius: 0;
36 | border-radius: 0;
37 | border-width: 0; margin: 0; padding: 0; background: transparent;
38 | font-family: inherit;
39 | font-size: inherit;
40 | padding: 0; margin: 0;
41 | white-space: pre;
42 | word-wrap: normal;
43 | }
44 |
45 | .CodeMirror-wrap pre {
46 | word-wrap: break-word;
47 | white-space: pre-wrap;
48 | }
49 | .CodeMirror-wrap .CodeMirror-scroll {
50 | overflow-x: hidden;
51 | }
52 |
53 | .CodeMirror textarea {
54 | outline: none !important;
55 | }
56 |
57 | .CodeMirror pre.CodeMirror-cursor {
58 | z-index: 10;
59 | position: absolute;
60 | visibility: hidden;
61 | border-left: 1px solid black;
62 | }
63 | .CodeMirror-focused pre.CodeMirror-cursor {
64 | visibility: visible;
65 | }
66 |
67 | span.CodeMirror-selected { background: #d9d9d9; }
68 | .CodeMirror-focused span.CodeMirror-selected { background: #d2dcf8; }
69 |
70 | .CodeMirror-searching {background: #ffa;}
71 |
72 | /* Default theme */
73 |
74 | .cm-s-default span.cm-keyword {color: #708;}
75 | .cm-s-default span.cm-atom {color: #219;}
76 | .cm-s-default span.cm-number {color: #164;}
77 | .cm-s-default span.cm-def {color: #00f;}
78 | .cm-s-default span.cm-variable {color: black;}
79 | .cm-s-default span.cm-variable-2 {color: #05a;}
80 | .cm-s-default span.cm-variable-3 {color: #085;}
81 | .cm-s-default span.cm-property {color: black;}
82 | .cm-s-default span.cm-operator {color: black;}
83 | .cm-s-default span.cm-comment {color: #a50;}
84 | .cm-s-default span.cm-string {color: #a11;}
85 | .cm-s-default span.cm-string-2 {color: #f50;}
86 | .cm-s-default span.cm-meta {color: #555;}
87 | .cm-s-default span.cm-error {color: #f00;}
88 | .cm-s-default span.cm-qualifier {color: #555;}
89 | .cm-s-default span.cm-builtin {color: #30a;}
90 | .cm-s-default span.cm-bracket {color: #cc7;}
91 | .cm-s-default span.cm-tag {color: #170;}
92 | .cm-s-default span.cm-attribute {color: #00c;}
93 | .cm-s-default span.cm-header {color: #a0a;}
94 | .cm-s-default span.cm-quote {color: #090;}
95 | .cm-s-default span.cm-hr {color: #999;}
96 | .cm-s-default span.cm-link {color: #00c;}
97 |
98 | span.cm-header, span.cm-strong {font-weight: bold;}
99 | span.cm-em {font-style: italic;}
100 | span.cm-emstrong {font-style: italic; font-weight: bold;}
101 | span.cm-link {text-decoration: underline;}
102 |
103 | div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;}
104 | div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
105 |
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/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 | }
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/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 |
--------------------------------------------------------------------------------
/src/app/App.tsx:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 | import {
3 | Route,
4 | Switch,
5 | BrowserRouter as Router
6 | } from "react-router-dom";
7 | import {
8 | ToastComponent,
9 | AlertComponent
10 | } from 'amis';
11 | import QsMan from 'qsman';
12 |
13 | // css
14 | import 'font-awesome/css/font-awesome.css';
15 | import 'bootstrap/dist/css/bootstrap.css';
16 | import 'amis/lib/themes/default.css';
17 | import 'react-datetime/css/react-datetime.css';
18 | import 'cropperjs/dist/cropper.css';
19 | import 'video-react/dist/video-react.css';
20 |
21 | import './polyfill';
22 | import AMisRenderer from './AMisRenderer';
23 | import InfoPageSchema from './info-page-schema';
24 | import loadSchema from './load-schema';
25 |
26 | // 扩展
27 | // 主题
28 | import '../ext/theme.less';
29 | // 验证规则
30 | import '../ext/validations';
31 | // 覆盖渲染器的默认值
32 | import '../ext/renderer-defaults';
33 | // AMIS 自定义组件
34 | import '../ext/amis-components/Demo';
35 | import '../ext/amis-components/Wysiwyg';
36 | // 获取默认的环境模式
37 | import getDefaultMode from '../ext/get-default-mode';
38 | import {
39 | getMainDomain
40 | } from '../ext/util';
41 |
42 | interface AppState {
43 | schema: any
44 | }
45 |
46 | var qsParam = new QsMan(window.location.search).getObject();
47 | // 自动识别环境模式
48 | if (!qsParam._mode) {
49 | qsParam._mode = getDefaultMode();
50 | }
51 |
52 | try {
53 | window.document.domain = getMainDomain(window.location.hostname);
54 | } catch (error) {
55 | console.warn('document.domain 设置失败', error);
56 | }
57 |
58 | export default class App extends React.Component {
59 | state:AppState = {
60 | schema: new InfoPageSchema('正在加载页面配置', '', '', ' ')
61 | };
62 |
63 | constructor(props:any) {
64 | super(props);
65 | }
66 |
67 | componentWillMount() {
68 | this.loadSchema();
69 | }
70 |
71 | loadSchema() {
72 | if (qsParam._schema) {
73 | loadSchema(qsParam._schema).then((schema) => {
74 | // @ts-ignore
75 | if (schema.title) {
76 | // @ts-ignore
77 | document.title = schema.title;
78 | }
79 |
80 | this.setState({
81 | schema: schema
82 | });
83 | });
84 | } else {
85 | this.setState({
86 | schema: new InfoPageSchema('没有提供页面的配置', 'URL 中必须传入_schema参数, 以指定页面的配置')
87 | });
88 | }
89 | }
90 |
91 | render() {
92 | var schema = this.state.schema;
93 | var env = schema.definitions?.env?.[qsParam._mode] || {};
94 |
95 | return (
96 |
97 |
98 |
99 |
100 |
101 | {
102 | return (
103 |
110 | );
111 | }} />
112 |
113 |
114 |
115 | );
116 | }
117 | }
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/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 |
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/internal.js:
--------------------------------------------------------------------------------
1 | (function () {
2 | function getMainDomain(hostname) {
3 | var mainDomain = '';
4 | var domainSegment = hostname.split('.');
5 |
6 | if (hostname.replace(/[\d\.]/g, '') === '') { // IP
7 | mainDomain = hostname;
8 | } else if (domainSegment.length === 1) { // localhost
9 | mainDomain = hostname;
10 | } else {
11 | // 顶级域名
12 | var topLevelDomain = domainSegment[domainSegment.length - 1];
13 | // 二级域名
14 | var secondLevelDomain = domainSegment[domainSegment.length - 2];
15 | // 主域名
16 | mainDomain = secondLevelDomain + '.' + topLevelDomain;
17 | }
18 |
19 | return mainDomain;
20 | }
21 | try {
22 | window.document.domain = getMainDomain(window.location.hostname);
23 | } catch (error) {
24 | console.warn('document.domain 设置失败', error);
25 | }
26 |
27 | var parent = window.parent;
28 | //dialog对象
29 | dialog = parent.$EDITORUI[window.frameElement.id.replace( /_iframe$/, '' )];
30 | //当前打开dialog的编辑器实例
31 | editor = dialog.editor;
32 |
33 | UE = parent.UE;
34 |
35 | domUtils = UE.dom.domUtils;
36 |
37 | utils = UE.utils;
38 |
39 | browser = UE.browser;
40 |
41 | ajax = UE.ajax;
42 |
43 | $G = function ( id ) {
44 | return document.getElementById( id )
45 | };
46 | //focus元素
47 | $focus = function ( node ) {
48 | setTimeout( function () {
49 | if ( browser.ie ) {
50 | var r = node.createTextRange();
51 | r.collapse( false );
52 | r.select();
53 | } else {
54 | node.focus()
55 | }
56 | }, 0 )
57 | };
58 | utils.loadFile(document,{
59 | href:editor.options.themePath + editor.options.theme + "/dialogbase.css?cache="+Math.random(),
60 | tag:"link",
61 | type:"text/css",
62 | rel:"stylesheet"
63 | });
64 | lang = editor.getLang(dialog.className.split( "-" )[2]);
65 | if(lang){
66 | domUtils.on(window,'load',function () {
67 |
68 | var langImgPath = editor.options.langPath + editor.options.lang + "/images/";
69 | //针对静态资源
70 | for ( var i in lang["static"] ) {
71 | var dom = $G( i );
72 | if(!dom) continue;
73 | var tagName = dom.tagName,
74 | content = lang["static"][i];
75 | if(content.src){
76 | //clone
77 | content = utils.extend({},content,false);
78 | content.src = langImgPath + content.src;
79 | }
80 | if(content.style){
81 | content = utils.extend({},content,false);
82 | content.style = content.style.replace(/url\s*\(/g,"url(" + langImgPath)
83 | }
84 | switch ( tagName.toLowerCase() ) {
85 | case "var":
86 | dom.parentNode.replaceChild( document.createTextNode( content ), dom );
87 | break;
88 | case "select":
89 | var ops = dom.options;
90 | for ( var j = 0, oj; oj = ops[j]; ) {
91 | oj.innerHTML = content.options[j++];
92 | }
93 | for ( var p in content ) {
94 | p != "options" && dom.setAttribute( p, content[p] );
95 | }
96 | break;
97 | default :
98 | domUtils.setAttributes( dom, content);
99 | }
100 | }
101 | } );
102 | }
103 |
104 |
105 | })();
106 |
107 |
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/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 |
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/scrawl/scrawl.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
70 |
71 |
72 |
73 |
74 |
94 |
95 |
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/gmap/gmap.html:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 |
14 |
15 |
16 |
17 |
27 |
88 |
89 |
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/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 |
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/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 |
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/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 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 | 0%
41 |
42 |
43 |
47 |
48 |
53 |
56 |
57 |
58 |
59 |
60 |
61 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/insertframe/insertframe.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
14 |
15 |
16 |
47 |
97 |
98 |
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/searchreplace/searchreplace.html:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
99 |
100 |
101 |
102 |
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/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");
--------------------------------------------------------------------------------
/webpack.config.js:
--------------------------------------------------------------------------------
1 | const path = require("path");
2 | var childProcess = require('child_process');
3 |
4 | var yargs = require('yargs');
5 | var webpack = require('webpack');
6 | const HtmlWebpackPlugin = require("html-webpack-plugin");
7 | const {
8 | CleanWebpackPlugin
9 | } = require("clean-webpack-plugin");
10 | const MiniCssExtractPlugin = require('mini-css-extract-plugin');
11 | const TerserJSPlugin = require('terser-webpack-plugin');
12 | const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin');
13 | const CopyPlugin = require('copy-webpack-plugin');
14 |
15 | var pkg = require('./package.json');
16 | var argv = yargs.argv;
17 | var isProd = argv.mode === 'production';
18 |
19 | /**
20 | * 获取 Git 最近一次的提交日志
21 | *
22 | * @return {string}
23 | */
24 | function getLatestGitLog() {
25 | var log = '';
26 | try {
27 | log = childProcess.execSync('git log -1 --pretty=format:"%h %cd" --date=iso').toString();
28 | } catch (error) {
29 | console.warn('getLatestGitLog error', error.message);
30 | }
31 | return log;
32 | }
33 |
34 | function getStyleLoader(loader) {
35 | var use = [
36 | "css-loader"
37 | ];
38 |
39 | if (loader) {
40 | use.push(loader);
41 | }
42 |
43 | if (isProd) {
44 | use.unshift(MiniCssExtractPlugin.loader);
45 | } else {
46 | use.unshift({
47 | loader: "style-loader",
48 | options: { injectType: "styleTag" }
49 | });
50 | }
51 |
52 | return use;
53 | }
54 |
55 | function getPlugins() {
56 | var plugins = [
57 | new HtmlWebpackPlugin({
58 | template: "src/index.html",
59 | // chunks: ['chunk-vendors', 'chunk-common', 'app']
60 | chunks: ['app']
61 | }),
62 | new CopyPlugin([{
63 | from: 'ueditor',
64 | to: 'ueditor'
65 | }])
66 | ];
67 | if (isProd) {
68 | plugins.unshift(new CleanWebpackPlugin());
69 | plugins.push(new MiniCssExtractPlugin({
70 | filename: '[name].[contenthash:7].css',
71 | chunkFilename: '[name].[contenthash:7].css'
72 | }));
73 | plugins.push(new webpack.BannerPlugin(`${pkg.name} | ${getLatestGitLog()} | (c) ${pkg.author}`));
74 | }
75 |
76 | return plugins;
77 | }
78 |
79 | function getMinimizer() {
80 | var minimizer = [];
81 | if (isProd) {
82 | minimizer = [new TerserJSPlugin({}), new OptimizeCSSAssetsPlugin({})];
83 | }
84 |
85 | return minimizer;
86 | }
87 |
88 | module.exports = {
89 | entry: {
90 | app: "./src/index.tsx",
91 |
92 | "editor.worker": "monaco-editor/esm/vs/editor/editor.worker.js",
93 | "json.worker": "monaco-editor/esm/vs/language/json/json.worker",
94 | "css.worker": "monaco-editor/esm/vs/language/css/css.worker",
95 | "html.worker": "monaco-editor/esm/vs/language/html/html.worker",
96 | "ts.worker": "monaco-editor/esm/vs/language/typescript/ts.worker"
97 | },
98 | module: {
99 | rules: [
100 | {
101 | test: /froala-editor\//,
102 | parser: {
103 | amd: false,
104 | }
105 | },
106 | {
107 | test: /\.tsx?$/,
108 | use: "ts-loader",
109 | exclude: /node_modules/
110 | },
111 | {
112 | test: /\.css$/,
113 | use: getStyleLoader()
114 | },
115 | {
116 | test: /\.less$/i,
117 | use: getStyleLoader('less-loader')
118 | },
119 | {
120 | test: /\.(png|svg|jpg|gif|woff|woff2|eot|ttf|otf)$/,
121 | use: ["file-loader"]
122 | }
123 | ]
124 | },
125 | resolve: {
126 | extensions: [".tsx", ".ts", ".js"],
127 | alias: {
128 | // fix: Sortable is not a constructor
129 | // https://github.com/baidu/amis/issues/353#issuecomment-599015094
130 | 'sortablejs$': 'sortablejs/Sortable.js'
131 | }
132 | },
133 | // optimization: {
134 | // splitChunks: {
135 | // cacheGroups: {
136 | // vendors: {
137 | // name: 'chunk-vendors',
138 | // test: /[\\/]node_modules[\\/]/,
139 | // priority: -10,
140 | // chunks: 'initial'
141 | // },
142 | // common: {
143 | // name: 'chunk-common',
144 | // minChunks: 2,
145 | // priority: -20,
146 | // chunks: 'initial',
147 | // reuseExistingChunk: true
148 | // }
149 | // }
150 | // },
151 | // },
152 | devtool: false,
153 | devServer: {
154 | host: '0.0.0.0',
155 | useLocalIp: true,
156 | overlay: true,
157 | disableHostCheck: true
158 | },
159 | plugins: getPlugins(),
160 | optimization: {
161 | minimizer: getMinimizer()
162 | },
163 | output: {
164 | filename: isProd ? "[name].[chunkhash:7].js" : "[name].js",
165 | path: path.resolve(__dirname, "dist"),
166 | publicPath: ''
167 | }
168 | };
169 |
--------------------------------------------------------------------------------
/context.md:
--------------------------------------------------------------------------------
1 | # 为什么发起[配页坊](https://github.com/ufologist/page-schema-player)项目?
2 |
3 | ## 背景
4 |
5 | * 因为后台系统实在太多了, 而且都大同小异, 消耗了大量的前端人力
6 | * **在前后端分离的大趋势下, 前端和后端技术栈日益差异化并逐渐形成一些技术壁垒**
7 | * 随着前端参与到越来越多的后台系统开发中去, 逐渐将越来越多的后台系统升级改造为前后端分离的开发模式
8 | * 对于前端来说, 活是越来越多, 但总会有些枯燥无味(让你天天开发后台系统试一试), 因为后台系统差不多都是列表和表单
9 | * **对于人效来说, 由于前后端分离带来的人力资源短板, 在某些时候反而降低了效率**
10 | * 因为由于前端技术近几年的快速发展, 前端技术栈已经大不一样了, 不再是以往简单的"所见即所得的开发模式"
11 | * 前端技术栈越来越与后端方向靠齐, 什么模块化, 组件, 依赖, 包, 转义, 构建, 上线等等相似的概念孕育而生
12 | * 更有很多前端特有的"黑话", 例如兼容性, npm 包, npm 源, babel, ES5, ES2015 等等, 更别提前端那些数不胜数的框架了, 什么单页项目走起, 全家桶来一波
13 | * 前后端分离之后, 前端将页面的开发模式做了一场翻天覆地的大升级, 对前端来说是越来越有利于项目的迭代
14 | * **但对于后端开发人员来说, 面对前端新的技术栈, 看到的可能更多是学习的成本**
15 | * 这样造成的局面就是: **可能简单到只是修改页面上的一个文字, 都需要前端同学的参与**
16 | * 回想以前不分离的时候, 很多页面上简单的活, 后端同学自己分分钟就搞定上线了
17 | * 这也就是前后端分离之后, 我们必须面对的一个问题, 以前前端和后端都能做的事情, 现在只有前端能做了
18 | * 前后端分离之后, 前端和后端的专业化势必带来价值, 将后端从页面的苦海中解脱了出来, 用户的体验也会越来越好
19 | * 但随着前端参与的项目越来越多, 前端疲于奔命的情况也将越来越多, 总是各种项目并行, 各种缺前端人员
20 | * **前端人员有限, 现在页面上什么活都等着前端来做, 其他人员看着干瞪眼的情况, 总是需要想办法解决的**
21 |
22 | ## 如何解决前端人力短板的问题?
23 |
24 | * 核心就一个词: **前端赋能**, 即将前端能力服务化
25 | * 首先需要知道前端有哪些能力, 哪些能力可以服务化, 哪些能力服务化之后最有价值
26 | * 综合之下, 个人认为前端最核心能力要数**搭页面的能力**了, 此乃前端的看家本领(饭碗), 基本上也是前端日常做得最多的事情
27 | * 因此为了释放前端人力, 缓解人力短板, 让前端可以投入到更多更有挑战的地方去, 我们最应该将"搭页面的能力"服务化
28 |
29 | ## 如何将搭页面的能力服务化?
30 |
31 | 从技术发展的趋势上看, 服务化最终即平台化, 或者说是 [SaaS](https://baike.baidu.com/item/SaaS) 化, 一般会经历如下几个阶段
32 | 1. 一次封装(自己用), 例如封装一个函数, 在项目中使用, 避免重复开发
33 | 2. 一个公共库(别人也用), 例如封装一类函数, 形成一个公共包, 在多个项目中使用
34 | 3. 一套工具(自家人用), 例如封装一个生成短链接的工具, 可以在前端项目中使用(技术壁垒)
35 | 4. 一个平台(大家都用), 例如开发一个在线生成短链接的平台, 让所有人都可以使用(打破技术壁垒)
36 |
37 | 这个过程即服务的人群越来越多, 越来越广的过程, 还有就是更加通用化的过程
38 |
39 | 那么搭页面的能力如何服务化呢?
40 | 1. 封装 -> 组件化
41 | 2. 公共库 -> 组件库
42 | 3. 工具 -> 配置化
43 | 4. 平台 -> 在线化 -> 可视化
44 |
45 | **即可以理解为要将前端搭页面的能力服务化, 最终的目标就是开发出一个可以拖拖拽拽就能够生成页面的平台, 也就是不需要写代码就可以上线页面的平台, 让大众都可以使用**
46 |
47 | 类似的平台例如[易企秀](https://www.eqxiu.com/), [Strikingly](https://www.strikingly.com "本土化产品“上线了”"), 大家可以去体验一下其中感受(仅为举例, 绝非广告)
48 |
49 | ## 如何循序渐进地达成服务化的目标?
50 |
51 | 结合最开始聊到的背景, 个人认为, 第一个小目标是实现可配置化的页面, 主要面对后台列表和表单类的页面, 因为
52 | * 首先组件化配置化, **避免了重复开发**, 是提升前端本身的开发效率, 也就是降低前端的工作量, 让前端可以有更多的时间做更多的事(怎么有点压榨的感觉)
53 | * 其次是通过配置化, 可以降低前端开发的难度, **减少对前端人员的依赖**
54 | * 通过配置的方式, 理论上一个不太懂前端的人, 例如后端人员, 也可以完成部分前端的活了, 即又能充分发挥类似以前不分离时代的优势, 减少出现前端人员短板的情况
55 | * 再例如一些简单的表单信息录入之类的页面, 后端如果自己可以配置出来, 就**不需要前端支持了**
56 |
57 | 这一步即达成通过配置的方式服务于开发人员, 让其可以通过配置, 以声明的方式, 快速搭建起一些列表或者表单之类的后台页面
58 |
59 | 即先是以任意的配置形式用起来, 再考虑通过额外的辅助工具(例如可视化平台)来优化这个过程, 让其运作得更好
60 |
61 | 具体关于配置化的实现方案, 请参考[配置化搭页面的技术选型](https://github.com/ufologist/new-page/blob/master/lib.md#%E9%85%8D%E7%BD%AE%E5%8C%96%E6%90%AD%E9%A1%B5%E9%9D%A2)
62 |
63 | ## 了解更多
64 |
65 | * [如何为搭建物料智能生成代码 - 自动编码](https://www.yuque.com/zaotalk/conf/328#3407a25c "前端搞搭建 | 第三届前端早早聊大会")
66 |
67 | > imgcook 背景 - 前端行业提效分析: 关于 Pro-Code -> Low-Code -> No-Code -> Auto-Code
68 | >
69 | > 
70 | * [中台建站的智能化探索](https://zhuanlan.zhihu.com/p/54422324)
71 |
72 | > 无法满足快速迭代的中台业务需求,缺前端、体验差是各业务发展中名列前茅的痛点之一
73 | >
74 | > 我们尝试通过组装和智能破局
75 | * [从零开始的可视化搭建系统](https://zhuanlan.zhihu.com/p/96180775)
76 |
77 | > 模块化 | 布局系统 | 可视化拖拽
78 | >
79 | > 一个搭建系统就是基于一份模版语言的数据生产过程
80 | > * 模版引擎
81 | > * 模块
82 | > * 属性
83 | > * 值
84 | > * 编辑器
85 | > * 属性面板
86 | > * 可视化拖拽
87 | * [蚂蚁中后台快速研发平台的领域思考](https://zhuanlan.zhihu.com/p/90238943)
88 |
89 | > hpaPaaS 是一个对应用研发进行全生命周期管理的平台,这个平台定义了这样一种研发模式:在较强的设计、研发规范下,通过可视化拖拽、模型驱动等技术显著降低研发门槛、提升研发效率、保障基本品质。
90 | >
91 | > 为什么要选择 hpaPaaS
92 | > * 提升研发、交付速度,在市场竞争中获得先机
93 | > * 降低研发门槛,解决招聘难的问题
94 | > * 降低企业用人成本
95 | > * 优化企业人才结构,业务研发和技术专家各自有明确的发展线路
96 | > * 保障应用的基本品质
97 | > * 获得能力增强,自己就能完成或更快更好的完成研发工作
98 | > * 从繁冗的日常研发中解放出来,专注于有挑战的工作
99 | >
100 | > 中后台应用研发的未来
101 | >
102 | > 随着 hpaPaaS 逐步发展成熟,未来的研发格局将会发生转变。首先有大量应用全部或部分使用 hpaPaaS 研发,同时公司的人才结构将会得到优化,技术专家更专注于技术,产品工程师更专注于业务,两者都有明确的发展路线。
103 | * [云凤蝶中台研发提效实践](https://zhuanlan.zhihu.com/p/78425921)
104 |
105 | > 使用云凤蝶,快速制作高品质中台应用。
106 | >
107 | > 由于企业开发市场对于交付效率和可定制性的双重追求,Low-code 平台成为这一市场最合适的开发方式,因为它兼具高效率和灵活性的特点。
108 | >
109 | > 做好工具属性只是满足提效的基本要求,更重要的是从横竖两个方向改善生产关系和打通生产资料壁垒。
110 | >
111 | > 云凤蝶中台应用是 Low-code 平台,目前聚焦于展现层流水线的打造,将 UI 资产快速组装出可用站点。
112 | > * UI 资产包 专家级前端工程师使用代码开发组件(UI 资产),完全交由 pro-code 优化专家的生产效率(未来可能转向 CloudIDE),是产业链的上游。
113 | > * 低代码组装 使用可视化 + 低代码方式组装 UI 界面和制作交互,是我们的核心生产线,是产业链的下游。
114 | > * 自由布局画布打破层内生产资料壁垒 工作在展现层的 PD、设计师和前端工程师工作产物无缝复用。
115 | >
116 | > 总结
117 | > * 传统提效思路的努力方向“利其器”没有错误,是所有提效必须完成的第一步。
118 | > * 生产力产生量变的更重要武器是改变生产力关系。能够打穿层级间、打通层级内,消除生产资料壁垒,层级内层级外下游都复用上游产物而不重建,会形成产业链式生产关系,从而效率最大化。
119 | * [云凤蝶可视化搭建的推导与实现 - SEE Conf](https://zhuanlan.zhihu.com/p/101665976)
120 |
121 | > 云凤蝶要做的事情可以总结为两句话,就是**设计的标准化**和**研发的工业化**
122 | >
123 | > 做一个组件化的搭建平台,其骨架分为:
124 | > * 组件识别与导入
125 | > * 组件拖拽与组合
126 | > * 组件配置与扩展
127 | > * 组件布局自适应
128 | > * 组件状态与联动
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/map/show.html:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 | 百度地图API自定义地图
9 |
10 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
118 |
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/dialogs/link/link.html:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 |
13 |
14 |
15 |
38 |
125 |
126 |
127 |
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/third-party/highcharts/adapters/standalone-framework.js:
--------------------------------------------------------------------------------
1 | /*
2 | Highcharts JS v3.0.6 (2013-10-04)
3 |
4 | Standalone Highcharts Framework
5 |
6 | License: MIT License
7 | */
8 | var HighchartsAdapter=function(){function o(c){function a(a,b,d){a.removeEventListener(b,d,!1)}function d(a,b,d){d=a.HCProxiedMethods[d.toString()];a.detachEvent("on"+b,d)}function b(b,c){var f=b.HCEvents,i,g,k,j;if(b.removeEventListener)i=a;else if(b.attachEvent)i=d;else return;c?(g={},g[c]=!0):g=f;for(j in g)if(f[j])for(k=f[j].length;k--;)i(b,j,f[j][k])}c.HCExtended||Highcharts.extend(c,{HCExtended:!0,HCEvents:{},bind:function(b,a){var d=this,c=this.HCEvents,g;if(d.addEventListener)d.addEventListener(b,
9 | a,!1);else if(d.attachEvent){g=function(b){a.call(d,b)};if(!d.HCProxiedMethods)d.HCProxiedMethods={};d.HCProxiedMethods[a.toString()]=g;d.attachEvent("on"+b,g)}c[b]===r&&(c[b]=[]);c[b].push(a)},unbind:function(c,h){var f,i;c?(f=this.HCEvents[c]||[],h?(i=HighchartsAdapter.inArray(h,f),i>-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
2 |
3 |
4 | chart
5 |
6 |
7 |
8 |
9 |
10 |
84 |
85 |
86 |
87 |
88 |
89 |
--------------------------------------------------------------------------------
/ueditor/1.4.3.3/jsp/config.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": "", /* 图片访问路径前缀 */
12 | "imagePathFormat": "/ueditor/jsp/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/jsp/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/jsp/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/jsp/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/jsp/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/jsp/upload/file/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存路径,可以自定义保存路径和文件名格式 */
63 | "fileUrlPrefix": "", /* 文件访问路径前缀 */
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/jsp/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/jsp/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 | }
--------------------------------------------------------------------------------