├── .babelrc
├── .editorconfig
├── .eslintignore
├── .eslintrc.js
├── .gitignore
├── README.md
├── build
├── build.js
├── check-versions.js
├── dev-client.js
├── dev-server.js
├── utils.js
├── vue-loader.conf.js
├── webpack.base.conf.js
├── webpack.dev.conf.js
└── webpack.prod.conf.js
├── config
├── dev.env.js
├── index.js
└── prod.env.js
├── index.html
├── package.json
├── src
├── App.vue
├── assets
│ └── logo.png
├── common
│ └── js
│ │ └── util.js
├── components
│ ├── Hello.vue
│ ├── toolbuttons
│ │ ├── colorpicker.vue
│ │ ├── fontSize.vue
│ │ ├── toolbtn.vue
│ │ └── toolselect.vue
│ └── ueditor
│ │ └── ueditor.vue
├── main.js
└── router
│ └── index.js
└── static
├── .gitkeep
├── ueditor
├── lang
│ ├── en
│ │ ├── en.js
│ │ └── images
│ │ │ ├── addimage.png
│ │ │ ├── alldeletebtnhoverskin.png
│ │ │ ├── alldeletebtnupskin.png
│ │ │ ├── background.png
│ │ │ ├── button.png
│ │ │ ├── copy.png
│ │ │ ├── deletedisable.png
│ │ │ ├── deleteenable.png
│ │ │ ├── listbackground.png
│ │ │ ├── localimage.png
│ │ │ ├── music.png
│ │ │ ├── rotateleftdisable.png
│ │ │ ├── rotateleftenable.png
│ │ │ ├── rotaterightdisable.png
│ │ │ ├── rotaterightenable.png
│ │ │ └── upload.png
│ └── zh-cn
│ │ ├── images
│ │ ├── copy.png
│ │ ├── localimage.png
│ │ ├── music.png
│ │ └── upload.png
│ │ └── zh-cn.js
├── themes
│ ├── default
│ │ ├── css
│ │ │ └── ueditor.css
│ │ └── images
│ │ │ ├── icon_edui_indent.png
│ │ │ ├── icons-all29f4d4.gif
│ │ │ ├── icons29f4d4.png
│ │ │ ├── sparator.png
│ │ │ └── ueditor_z29f4d5.png
│ └── iframe.css
├── third-party
│ ├── SyntaxHighlighter
│ │ ├── shCore.js
│ │ └── shCoreDefault.css
│ ├── codemirror
│ │ ├── codemirror.css
│ │ └── codemirror.js
│ ├── highcharts
│ │ ├── adapters
│ │ │ ├── mootools-adapter.js
│ │ │ ├── mootools-adapter.src.js
│ │ │ ├── prototype-adapter.js
│ │ │ ├── prototype-adapter.src.js
│ │ │ ├── standalone-framework.js
│ │ │ └── standalone-framework.src.js
│ │ ├── highcharts-more.js
│ │ ├── highcharts-more.src.js
│ │ ├── highcharts.js
│ │ ├── highcharts.src.js
│ │ ├── modules
│ │ │ ├── annotations.js
│ │ │ ├── annotations.src.js
│ │ │ ├── canvas-tools.js
│ │ │ ├── canvas-tools.src.js
│ │ │ ├── data.js
│ │ │ ├── data.src.js
│ │ │ ├── drilldown.js
│ │ │ ├── drilldown.src.js
│ │ │ ├── exporting.js
│ │ │ ├── exporting.src.js
│ │ │ ├── funnel.js
│ │ │ ├── funnel.src.js
│ │ │ ├── heatmap.js
│ │ │ ├── heatmap.src.js
│ │ │ ├── map.js
│ │ │ ├── map.src.js
│ │ │ ├── no-data-to-display.js
│ │ │ └── no-data-to-display.src.js
│ │ └── themes
│ │ │ ├── dark-blue.js
│ │ │ ├── dark-green.js
│ │ │ ├── gray.js
│ │ │ ├── grid.js
│ │ │ └── skies.js
│ ├── jquery-1.10.2.js
│ ├── jquery-1.10.2.min.js
│ ├── jquery-1.10.2.min.map
│ ├── snapscreen
│ │ └── UEditorSnapscreen.exe
│ ├── video-js
│ │ ├── font
│ │ │ ├── vjs.eot
│ │ │ ├── vjs.svg
│ │ │ ├── vjs.ttf
│ │ │ └── vjs.woff
│ │ ├── video-js.css
│ │ ├── video-js.min.css
│ │ ├── video-js.swf
│ │ ├── video.dev.js
│ │ └── video.js
│ ├── webuploader
│ │ ├── Uploader.swf
│ │ ├── webuploader.css
│ │ ├── webuploader.custom.js
│ │ ├── webuploader.custom.min.js
│ │ ├── webuploader.flashonly.js
│ │ ├── webuploader.flashonly.min.js
│ │ ├── webuploader.html5only.js
│ │ ├── webuploader.html5only.min.js
│ │ ├── webuploader.js
│ │ ├── webuploader.min.js
│ │ ├── webuploader.withoutimage.js
│ │ └── webuploader.withoutimage.min.js
│ ├── xss.min.js
│ └── zeroclipboard
│ │ ├── ZeroClipboard.js
│ │ ├── ZeroClipboard.min.js
│ │ └── ZeroClipboard.swf
├── ueditor.all.js
├── ueditor.all.min.js
└── ueditor.config.js
└── video.mp4
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | ["es2015", { "modules": false }],
4 | "stage-2"
5 | ],
6 | "plugins": ["transform-runtime"],
7 | "comments": false,
8 | "ignore": [
9 | "./static/ueditor/*"],
10 | "env": {
11 | "test": {
12 | "plugins": [ "istanbul" ]
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | charset = utf-8
5 | indent_style = space
6 | indent_size = 2
7 | end_of_line = lf
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
--------------------------------------------------------------------------------
/.eslintignore:
--------------------------------------------------------------------------------
1 | build/*.js
2 | config/*.js
3 | node_modules/*.*
4 | static/*
5 | src/assets/ueditor/*
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | // http://eslint.org/docs/user-guide/configuring
2 |
3 | module.exports = {
4 | root: true,
5 | parser: 'babel-eslint',
6 | parserOptions: {
7 | sourceType: 'module'
8 | },
9 | env: {
10 | browser: true,
11 | },
12 | // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style
13 | extends: 'standard',
14 | // required to lint *.vue files
15 | plugins: [
16 | 'html'
17 | ],
18 | // add your custom rules here
19 | 'rules': {
20 | // allow paren-less arrow functions
21 | 'arrow-parens': 0,
22 | // allow async-await
23 | 'generator-star-spacing': 0,
24 | // allow debugger during development
25 | 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
26 | 'semi': ['error', 'always'],
27 | 'no-tabs': 0,
28 | 'indent': 0,
29 | 'space-before-function-paren': 0
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
3 | dist/
4 | npm-debug.log
5 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # vue-ueditor
2 |
3 | > A Vue.js demo base on UEditor, UI from Wechat Media Platform.
4 |
5 | ## Build Setup
6 |
7 | ``` bash
8 | # install dependencies
9 | npm install
10 |
11 | # serve with hot reload at localhost:8089 (if you wanna change the port, check out the file[./config/index.js](line:26))
12 | npm run dev
13 |
14 | # build for production with minification
15 | npm run build
16 |
17 | # build for production and view the bundle analyzer report
18 | npm run build --report
19 | ```
20 | ## Tips
21 | You'd better check the file(./.eslintrc.js) before cloning the demo into your project.
22 |
23 | For detailed explanation on how things work, checkout the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader).
24 |
--------------------------------------------------------------------------------
/build/build.js:
--------------------------------------------------------------------------------
1 | // https://github.com/shelljs/shelljs
2 | require('./check-versions')()
3 |
4 | process.env.NODE_ENV = 'production'
5 |
6 | var ora = require('ora')
7 | var path = require('path')
8 | var chalk = require('chalk')
9 | var shell = require('shelljs')
10 | var webpack = require('webpack')
11 | var config = require('../config')
12 | var webpackConfig = require('./webpack.prod.conf')
13 |
14 | var spinner = ora('building for production...')
15 | spinner.start()
16 |
17 | var assetsPath = path.join(config.build.assetsRoot, config.build.assetsSubDirectory)
18 | shell.rm('-rf', assetsPath)
19 | shell.mkdir('-p', assetsPath)
20 | shell.config.silent = true
21 | shell.cp('-R', 'static/*', assetsPath)
22 | shell.config.silent = false
23 |
24 | webpack(webpackConfig, function (err, stats) {
25 | spinner.stop()
26 | if (err) throw err
27 | process.stdout.write(stats.toString({
28 | colors: true,
29 | modules: false,
30 | children: false,
31 | chunks: false,
32 | chunkModules: false
33 | }) + '\n\n')
34 |
35 | console.log(chalk.cyan(' Build complete.\n'))
36 | console.log(chalk.yellow(
37 | ' Tip: built files are meant to be served over an HTTP server.\n' +
38 | ' Opening index.html over file:// won\'t work.\n'
39 | ))
40 | })
41 |
--------------------------------------------------------------------------------
/build/check-versions.js:
--------------------------------------------------------------------------------
1 | var chalk = require('chalk')
2 | var semver = require('semver')
3 | var packageConfig = require('../package.json')
4 |
5 | function exec (cmd) {
6 | return require('child_process').execSync(cmd).toString().trim()
7 | }
8 |
9 | var versionRequirements = [
10 | {
11 | name: 'node',
12 | currentVersion: semver.clean(process.version),
13 | versionRequirement: packageConfig.engines.node
14 | },
15 | {
16 | name: 'npm',
17 | currentVersion: exec('npm --version'),
18 | versionRequirement: packageConfig.engines.npm
19 | }
20 | ]
21 |
22 | module.exports = function () {
23 | var warnings = []
24 | for (var i = 0; i < versionRequirements.length; i++) {
25 | var mod = versionRequirements[i]
26 | if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) {
27 | warnings.push(mod.name + ': ' +
28 | chalk.red(mod.currentVersion) + ' should be ' +
29 | chalk.green(mod.versionRequirement)
30 | )
31 | }
32 | }
33 |
34 | if (warnings.length) {
35 | console.log('')
36 | console.log(chalk.yellow('To use this template, you must update following to modules:'))
37 | console.log()
38 | for (var i = 0; i < warnings.length; i++) {
39 | var warning = warnings[i]
40 | console.log(' ' + warning)
41 | }
42 | console.log()
43 | process.exit(1)
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/build/dev-client.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | require('eventsource-polyfill')
3 | var hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true')
4 |
5 | hotClient.subscribe(function (event) {
6 | if (event.action === 'reload') {
7 | window.location.reload()
8 | }
9 | })
10 |
--------------------------------------------------------------------------------
/build/dev-server.js:
--------------------------------------------------------------------------------
1 | require('./check-versions')()
2 |
3 | var config = require('../config')
4 | if (!process.env.NODE_ENV) {
5 | process.env.NODE_ENV = JSON.parse(config.dev.env.NODE_ENV)
6 | }
7 |
8 | var opn = require('opn')
9 | var path = require('path')
10 | var express = require('express')
11 | var webpack = require('webpack')
12 | var proxyMiddleware = require('http-proxy-middleware')
13 | var webpackConfig = require('./webpack.dev.conf')
14 |
15 | // default port where dev server listens for incoming traffic
16 | var port = process.env.PORT || config.dev.port
17 | // automatically open browser, if not set will be false
18 | var autoOpenBrowser = !!config.dev.autoOpenBrowser
19 | // Define HTTP proxies to your custom API backend
20 | // https://github.com/chimurai/http-proxy-middleware
21 | var proxyTable = config.dev.proxyTable
22 |
23 | var app = express()
24 | var compiler = webpack(webpackConfig)
25 |
26 | var devMiddleware = require('webpack-dev-middleware')(compiler, {
27 | publicPath: webpackConfig.output.publicPath,
28 | quiet: true
29 | })
30 |
31 | var hotMiddleware = require('webpack-hot-middleware')(compiler, {
32 | log: () => {}
33 | })
34 | // force page reload when html-webpack-plugin template changes
35 | compiler.plugin('compilation', function (compilation) {
36 | compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) {
37 | hotMiddleware.publish({ action: 'reload' })
38 | cb()
39 | })
40 | })
41 |
42 | // proxy api requests
43 | Object.keys(proxyTable).forEach(function (context) {
44 | var options = proxyTable[context]
45 | if (typeof options === 'string') {
46 | options = { target: options }
47 | }
48 | app.use(proxyMiddleware(options.filter || context, options))
49 | })
50 |
51 | // handle fallback for HTML5 history API
52 | app.use(require('connect-history-api-fallback')())
53 |
54 | // serve webpack bundle output
55 | app.use(devMiddleware)
56 |
57 | // enable hot-reload and state-preserving
58 | // compilation error display
59 | app.use(hotMiddleware)
60 |
61 | // serve pure static assets
62 | var staticPath = path.posix.join(config.dev.assetsPublicPath, config.dev.assetsSubDirectory)
63 | app.use(staticPath, express.static('./static'))
64 |
65 | var uri = 'http://localhost:' + port
66 |
67 | devMiddleware.waitUntilValid(function () {
68 | console.log('> Listening at ' + uri + '\n')
69 | })
70 |
71 | module.exports = app.listen(port, function (err) {
72 | if (err) {
73 | console.log(err)
74 | return
75 | }
76 |
77 | // when env is testing, don't need open it
78 | if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') {
79 | opn(uri)
80 | }
81 | })
82 |
--------------------------------------------------------------------------------
/build/utils.js:
--------------------------------------------------------------------------------
1 | var path = require('path')
2 | var config = require('../config')
3 | var ExtractTextPlugin = require('extract-text-webpack-plugin')
4 |
5 | exports.assetsPath = function (_path) {
6 | var assetsSubDirectory = process.env.NODE_ENV === 'production'
7 | ? config.build.assetsSubDirectory
8 | : config.dev.assetsSubDirectory
9 | return path.posix.join(assetsSubDirectory, _path)
10 | }
11 |
12 | exports.cssLoaders = function (options) {
13 | options = options || {}
14 | // generate loader string to be used with extract text plugin
15 | function generateLoaders (loaders) {
16 | var sourceLoader = loaders.map(function (loader) {
17 | var extraParamChar
18 | if (/\?/.test(loader)) {
19 | loader = loader.replace(/\?/, '-loader?')
20 | extraParamChar = '&'
21 | } else {
22 | loader = loader + '-loader'
23 | extraParamChar = '?'
24 | }
25 | return loader + (options.sourceMap ? extraParamChar + 'sourceMap' : '')
26 | }).join('!')
27 |
28 | // Extract CSS when that option is specified
29 | // (which is the case during production build)
30 | if (options.extract) {
31 | return ExtractTextPlugin.extract({
32 | use: sourceLoader,
33 | fallback: 'vue-style-loader'
34 | })
35 | } else {
36 | return ['vue-style-loader', sourceLoader].join('!')
37 | }
38 | }
39 |
40 | // http://vuejs.github.io/vue-loader/en/configurations/extract-css.html
41 | return {
42 | css: generateLoaders(['css']),
43 | postcss: generateLoaders(['css']),
44 | less: generateLoaders(['css', 'less']),
45 | sass: generateLoaders(['css', 'sass?indentedSyntax']),
46 | scss: generateLoaders(['css', 'sass']),
47 | stylus: generateLoaders(['css', 'stylus']),
48 | styl: generateLoaders(['css', 'stylus'])
49 | }
50 | }
51 |
52 | // Generate loaders for standalone style files (outside of .vue)
53 | exports.styleLoaders = function (options) {
54 | var output = []
55 | var loaders = exports.cssLoaders(options)
56 | for (var extension in loaders) {
57 | var loader = loaders[extension]
58 | output.push({
59 | test: new RegExp('\\.' + extension + '$'),
60 | loader: loader
61 | })
62 | }
63 | return output
64 | }
65 |
--------------------------------------------------------------------------------
/build/vue-loader.conf.js:
--------------------------------------------------------------------------------
1 | var utils = require('./utils')
2 | var config = require('../config')
3 | var isProduction = process.env.NODE_ENV === 'production'
4 |
5 | module.exports = {
6 | loaders: utils.cssLoaders({
7 | sourceMap: isProduction
8 | ? config.build.productionSourceMap
9 | : config.dev.cssSourceMap,
10 | extract: isProduction
11 | }),
12 | postcss: [
13 | require('autoprefixer')({
14 | browsers: ['last 2 versions']
15 | })
16 | ]
17 | }
18 |
--------------------------------------------------------------------------------
/build/webpack.base.conf.js:
--------------------------------------------------------------------------------
1 | var path = require('path')
2 | var utils = require('./utils')
3 | var config = require('../config')
4 | var vueLoaderConfig = require('./vue-loader.conf')
5 |
6 | function resolve (dir) {
7 | return path.join(__dirname, '..', dir)
8 | }
9 |
10 | module.exports = {
11 | entry: {
12 | app: './src/main.js'
13 | },
14 | output: {
15 | path: config.build.assetsRoot,
16 | filename: '[name].js',
17 | publicPath: process.env.NODE_ENV === 'production'
18 | ? config.build.assetsPublicPath
19 | : config.dev.assetsPublicPath
20 | },
21 | resolve: {
22 | extensions: ['.js', '.vue', '.json'],
23 | modules: [
24 | resolve('src'),
25 | resolve('node_modules')
26 | ],
27 | alias: {
28 | 'vue$': 'vue/dist/vue.common.js',
29 | 'src': resolve('src'),
30 | 'assets': resolve('src/assets'),
31 | 'components': resolve('src/components')
32 | }
33 | },
34 | module: {
35 | rules: [
36 | {
37 | test: /\.(js|vue)$/,
38 | loader: 'eslint-loader',
39 | enforce: "pre",
40 | include: [resolve('src'), resolve('test')],
41 | options: {
42 | formatter: require('eslint-friendly-formatter')
43 | }
44 | },
45 | {
46 | test: /\.vue$/,
47 | loader: 'vue-loader',
48 | options: vueLoaderConfig
49 | },
50 | {
51 | test: /\.js$/,
52 | loader: 'babel-loader',
53 | include: [resolve('src'), resolve('test')]
54 | },
55 | {
56 | test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
57 | loader: 'url-loader',
58 | query: {
59 | limit: 10000,
60 | name: utils.assetsPath('img/[name].[hash:7].[ext]')
61 | }
62 | },
63 | {
64 | test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
65 | loader: 'url-loader',
66 | query: {
67 | limit: 10000,
68 | name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
69 | }
70 | }
71 | ]
72 | }
73 | }
74 |
--------------------------------------------------------------------------------
/build/webpack.dev.conf.js:
--------------------------------------------------------------------------------
1 | var utils = require('./utils')
2 | var webpack = require('webpack')
3 | var config = require('../config')
4 | var merge = require('webpack-merge')
5 | var baseWebpackConfig = require('./webpack.base.conf')
6 | var HtmlWebpackPlugin = require('html-webpack-plugin')
7 | var FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')
8 |
9 | // add hot-reload related code to entry chunks
10 | Object.keys(baseWebpackConfig.entry).forEach(function (name) {
11 | baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name])
12 | })
13 |
14 | module.exports = merge(baseWebpackConfig, {
15 | module: {
16 | rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap })
17 | },
18 | // cheap-module-eval-source-map is faster for development
19 | devtool: '#cheap-module-eval-source-map',
20 | plugins: [
21 | new webpack.DefinePlugin({
22 | 'process.env': config.dev.env
23 | }),
24 | // https://github.com/glenjamin/webpack-hot-middleware#installation--usage
25 | new webpack.HotModuleReplacementPlugin(),
26 | new webpack.NoEmitOnErrorsPlugin(),
27 | // https://github.com/ampedandwired/html-webpack-plugin
28 | new HtmlWebpackPlugin({
29 | filename: 'index.html',
30 | template: 'index.html',
31 | inject: true
32 | }),
33 | new FriendlyErrorsPlugin()
34 | ]
35 | })
36 |
--------------------------------------------------------------------------------
/build/webpack.prod.conf.js:
--------------------------------------------------------------------------------
1 | var path = require('path')
2 | var utils = require('./utils')
3 | var webpack = require('webpack')
4 | var config = require('../config')
5 | var merge = require('webpack-merge')
6 | var baseWebpackConfig = require('./webpack.base.conf')
7 | var HtmlWebpackPlugin = require('html-webpack-plugin')
8 | var ExtractTextPlugin = require('extract-text-webpack-plugin')
9 | var env = config.build.env
10 |
11 | var webpackConfig = merge(baseWebpackConfig, {
12 | module: {
13 | rules: utils.styleLoaders({
14 | sourceMap: config.build.productionSourceMap,
15 | extract: true
16 | })
17 | },
18 | devtool: config.build.productionSourceMap ? '#source-map' : false,
19 | output: {
20 | path: config.build.assetsRoot,
21 | filename: utils.assetsPath('js/[name].[chunkhash].js'),
22 | chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')
23 | },
24 | plugins: [
25 | // http://vuejs.github.io/vue-loader/en/workflow/production.html
26 | new webpack.DefinePlugin({
27 | 'process.env': env
28 | }),
29 | new webpack.optimize.UglifyJsPlugin({
30 | compress: {
31 | warnings: false
32 | }
33 | }),
34 | // extract css into its own file
35 | new ExtractTextPlugin({
36 | filename: utils.assetsPath('css/[name].[contenthash].css')
37 | }),
38 | // generate dist index.html with correct asset hash for caching.
39 | // you can customize output by editing /index.html
40 | // see https://github.com/ampedandwired/html-webpack-plugin
41 | new HtmlWebpackPlugin({
42 | filename: config.build.index,
43 | template: 'index.html',
44 | inject: true,
45 | minify: {
46 | removeComments: true,
47 | collapseWhitespace: true,
48 | removeAttributeQuotes: true
49 | // more options:
50 | // https://github.com/kangax/html-minifier#options-quick-reference
51 | },
52 | // necessary to consistently work with multiple chunks via CommonsChunkPlugin
53 | chunksSortMode: 'dependency'
54 | }),
55 | // split vendor js into its own file
56 | new webpack.optimize.CommonsChunkPlugin({
57 | name: 'vendor',
58 | minChunks: function (module, count) {
59 | // any required modules inside node_modules are extracted to vendor
60 | return (
61 | module.resource &&
62 | /\.js$/.test(module.resource) &&
63 | module.resource.indexOf(
64 | path.join(__dirname, '../node_modules')
65 | ) === 0
66 | )
67 | }
68 | }),
69 | // extract webpack runtime and module manifest to its own file in order to
70 | // prevent vendor hash from being updated whenever app bundle is updated
71 | new webpack.optimize.CommonsChunkPlugin({
72 | name: 'manifest',
73 | chunks: ['vendor']
74 | })
75 | ]
76 | })
77 |
78 | if (config.build.productionGzip) {
79 | var CompressionWebpackPlugin = require('compression-webpack-plugin')
80 |
81 | webpackConfig.plugins.push(
82 | new CompressionWebpackPlugin({
83 | asset: '[path].gz[query]',
84 | algorithm: 'gzip',
85 | test: new RegExp(
86 | '\\.(' +
87 | config.build.productionGzipExtensions.join('|') +
88 | ')$'
89 | ),
90 | threshold: 10240,
91 | minRatio: 0.8
92 | })
93 | )
94 | }
95 |
96 | if (config.build.bundleAnalyzerReport) {
97 | var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
98 | webpackConfig.plugins.push(new BundleAnalyzerPlugin())
99 | }
100 |
101 | module.exports = webpackConfig
102 |
--------------------------------------------------------------------------------
/config/dev.env.js:
--------------------------------------------------------------------------------
1 | var merge = require('webpack-merge')
2 | var prodEnv = require('./prod.env')
3 |
4 | module.exports = merge(prodEnv, {
5 | NODE_ENV: '"development"'
6 | })
7 |
--------------------------------------------------------------------------------
/config/index.js:
--------------------------------------------------------------------------------
1 | // see http://vuejs-templates.github.io/webpack for documentation.
2 | var path = require('path')
3 |
4 | module.exports = {
5 | build: {
6 | env: require('./prod.env'),
7 | index: path.resolve(__dirname, '../dist/index.html'),
8 | assetsRoot: path.resolve(__dirname, '../dist'),
9 | assetsSubDirectory: 'static',
10 | assetsPublicPath: '/',
11 | productionSourceMap: true,
12 | // Gzip off by default as many popular static hosts such as
13 | // Surge or Netlify already gzip all static assets for you.
14 | // Before setting to `true`, make sure to:
15 | // npm install --save-dev compression-webpack-plugin
16 | productionGzip: false,
17 | productionGzipExtensions: ['js', 'css'],
18 | // Run the build command with an extra argument to
19 | // View the bundle analyzer report after build finishes:
20 | // `npm run build --report`
21 | // Set to `true` or `false` to always turn it on or off
22 | bundleAnalyzerReport: process.env.npm_config_report
23 | },
24 | dev: {
25 | env: require('./dev.env'),
26 | port: 8089,
27 | autoOpenBrowser: true,
28 | assetsSubDirectory: 'static',
29 | assetsPublicPath: '/',
30 | proxyTable: {},
31 | // CSS Sourcemaps off by default because relative paths are "buggy"
32 | // with this option, according to the CSS-Loader README
33 | // (https://github.com/webpack/css-loader#sourcemaps)
34 | // In our experience, they generally work as expected,
35 | // just be aware of this issue when enabling this option.
36 | cssSourceMap: false
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/config/prod.env.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | NODE_ENV: '"production"'
3 | }
4 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
23 |
24 |
25 |
26 |
27 | vue-ueditor
28 |
29 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vue-ueditor",
3 | "version": "1.0.0",
4 | "description": "A Vue.js project base on UEditor",
5 | "author": "伊吾鱼 lichin https://github.com/yiwuyu",
6 | "private": true,
7 | "scripts": {
8 | "dev": "node build/dev-server.js",
9 | "build": "node build/build.js",
10 | "lint": "eslint --ext .js,.vue src"
11 | },
12 | "dependencies": {
13 | "element-ui": "^1.1.6",
14 | "vue": "^2.1.10",
15 | "vue-router": "^2.2.0"
16 | },
17 | "devDependencies": {
18 | "autoprefixer": "^6.7.2",
19 | "babel-core": "^6.22.1",
20 | "babel-eslint": "^7.1.1",
21 | "babel-loader": "^6.2.10",
22 | "babel-plugin-transform-runtime": "^6.22.0",
23 | "babel-preset-es2015": "^6.22.0",
24 | "babel-preset-stage-2": "^6.22.0",
25 | "babel-register": "^6.22.0",
26 | "chalk": "^1.1.3",
27 | "connect-history-api-fallback": "^1.3.0",
28 | "css-loader": "^0.26.1",
29 | "eslint": "^3.14.1",
30 | "eslint-config-standard": "^6.2.1",
31 | "eslint-friendly-formatter": "^2.0.7",
32 | "eslint-loader": "^1.6.1",
33 | "eslint-plugin-html": "^2.0.0",
34 | "eslint-plugin-promise": "^3.4.0",
35 | "eslint-plugin-standard": "^2.0.1",
36 | "eventsource-polyfill": "^0.9.6",
37 | "express": "^4.14.1",
38 | "extract-text-webpack-plugin": "^2.0.0-rc.2",
39 | "file-loader": "^0.10.0",
40 | "friendly-errors-webpack-plugin": "^1.1.3",
41 | "function-bind": "^1.1.0",
42 | "html-webpack-plugin": "^2.28.0",
43 | "http-proxy-middleware": "^0.17.3",
44 | "opn": "^4.0.2",
45 | "ora": "^1.1.0",
46 | "semver": "^5.3.0",
47 | "shelljs": "^0.7.6",
48 | "stylus": "^0.54.5",
49 | "stylus-loader": "^2.4.0",
50 | "url-loader": "^0.5.7",
51 | "vue-loader": "^10.3.0",
52 | "vue-style-loader": "^2.0.0",
53 | "vue-template-compiler": "^2.1.10",
54 | "webpack": "^2.2.1",
55 | "webpack-bundle-analyzer": "^2.2.1",
56 | "webpack-dev-middleware": "^1.10.0",
57 | "webpack-hot-middleware": "^2.16.1",
58 | "webpack-merge": "^2.6.1"
59 | },
60 | "engines": {
61 | "node": ">= 4.0.0",
62 | "npm": ">= 3.0.0"
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | Go to editor!
4 |
5 |
6 |
7 |
8 |
13 |
14 |
24 |
--------------------------------------------------------------------------------
/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yiwuyu/vue-ueditor/1bf6e4dcc584374b5be735745fe7c88d6b03dc10/src/assets/logo.png
--------------------------------------------------------------------------------
/src/common/js/util.js:
--------------------------------------------------------------------------------
1 | /**
2 | * 数组去重
3 | * @createdAt 2017-02-09T21:12:41+0800
4 | * @author lichin
5 | */
6 | export uniqueArr() {
7 |
8 | };
--------------------------------------------------------------------------------
/src/components/Hello.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
{{ msg }}
4 |
Essential Links
5 |
13 |
Ecosystem
14 |
20 |
21 |
22 |
23 |
33 |
34 |
35 |
50 |
--------------------------------------------------------------------------------
/src/components/toolbuttons/colorpicker.vue:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yiwuyu/vue-ueditor/1bf6e4dcc584374b5be735745fe7c88d6b03dc10/src/components/toolbuttons/colorpicker.vue
--------------------------------------------------------------------------------
/src/components/toolbuttons/fontSize.vue:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
18 |
78 |
137 |
--------------------------------------------------------------------------------
/src/components/toolbuttons/toolbtn.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/components/toolbuttons/toolselect.vue:
--------------------------------------------------------------------------------
1 |
2 |
28 |
29 |
30 |
122 |
242 |
--------------------------------------------------------------------------------
/src/main.js:
--------------------------------------------------------------------------------
1 | // The Vue build version to load with the `import` command
2 | // (runtime-only or standalone) has been set in webpack.base.conf with an alias.
3 | import Vue from 'vue';
4 | import App from './App';
5 | import router from './router';
6 | import ElementUI from 'element-ui';
7 | import 'element-ui/lib/theme-default/index.css';
8 |
9 | Vue.use(ElementUI);
10 | /* eslint-disable no-new */
11 | new Vue({
12 | el: '#app',
13 | router,
14 | template: '',
15 | components: { App }
16 | });
17 |
--------------------------------------------------------------------------------
/src/router/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import Router from 'vue-router';
3 | import Hello from 'components/Hello';
4 | import UEditor from 'components/ueditor/ueditor';
5 |
6 | Vue.use(Router);
7 |
8 | export default new Router({
9 | routes: [
10 | {
11 | path: '/',
12 | name: 'Home',
13 | component: Hello
14 | },
15 | {
16 | path: '/ueditor',
17 | name: 'UEditor',
18 | component: UEditor
19 | }
20 | ]
21 | });
22 |
--------------------------------------------------------------------------------
/static/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yiwuyu/vue-ueditor/1bf6e4dcc584374b5be735745fe7c88d6b03dc10/static/.gitkeep
--------------------------------------------------------------------------------
/static/ueditor/lang/en/images/addimage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yiwuyu/vue-ueditor/1bf6e4dcc584374b5be735745fe7c88d6b03dc10/static/ueditor/lang/en/images/addimage.png
--------------------------------------------------------------------------------
/static/ueditor/lang/en/images/alldeletebtnhoverskin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yiwuyu/vue-ueditor/1bf6e4dcc584374b5be735745fe7c88d6b03dc10/static/ueditor/lang/en/images/alldeletebtnhoverskin.png
--------------------------------------------------------------------------------
/static/ueditor/lang/en/images/alldeletebtnupskin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yiwuyu/vue-ueditor/1bf6e4dcc584374b5be735745fe7c88d6b03dc10/static/ueditor/lang/en/images/alldeletebtnupskin.png
--------------------------------------------------------------------------------
/static/ueditor/lang/en/images/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yiwuyu/vue-ueditor/1bf6e4dcc584374b5be735745fe7c88d6b03dc10/static/ueditor/lang/en/images/background.png
--------------------------------------------------------------------------------
/static/ueditor/lang/en/images/button.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yiwuyu/vue-ueditor/1bf6e4dcc584374b5be735745fe7c88d6b03dc10/static/ueditor/lang/en/images/button.png
--------------------------------------------------------------------------------
/static/ueditor/lang/en/images/copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yiwuyu/vue-ueditor/1bf6e4dcc584374b5be735745fe7c88d6b03dc10/static/ueditor/lang/en/images/copy.png
--------------------------------------------------------------------------------
/static/ueditor/lang/en/images/deletedisable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yiwuyu/vue-ueditor/1bf6e4dcc584374b5be735745fe7c88d6b03dc10/static/ueditor/lang/en/images/deletedisable.png
--------------------------------------------------------------------------------
/static/ueditor/lang/en/images/deleteenable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yiwuyu/vue-ueditor/1bf6e4dcc584374b5be735745fe7c88d6b03dc10/static/ueditor/lang/en/images/deleteenable.png
--------------------------------------------------------------------------------
/static/ueditor/lang/en/images/listbackground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yiwuyu/vue-ueditor/1bf6e4dcc584374b5be735745fe7c88d6b03dc10/static/ueditor/lang/en/images/listbackground.png
--------------------------------------------------------------------------------
/static/ueditor/lang/en/images/localimage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yiwuyu/vue-ueditor/1bf6e4dcc584374b5be735745fe7c88d6b03dc10/static/ueditor/lang/en/images/localimage.png
--------------------------------------------------------------------------------
/static/ueditor/lang/en/images/music.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yiwuyu/vue-ueditor/1bf6e4dcc584374b5be735745fe7c88d6b03dc10/static/ueditor/lang/en/images/music.png
--------------------------------------------------------------------------------
/static/ueditor/lang/en/images/rotateleftdisable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yiwuyu/vue-ueditor/1bf6e4dcc584374b5be735745fe7c88d6b03dc10/static/ueditor/lang/en/images/rotateleftdisable.png
--------------------------------------------------------------------------------
/static/ueditor/lang/en/images/rotateleftenable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yiwuyu/vue-ueditor/1bf6e4dcc584374b5be735745fe7c88d6b03dc10/static/ueditor/lang/en/images/rotateleftenable.png
--------------------------------------------------------------------------------
/static/ueditor/lang/en/images/rotaterightdisable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yiwuyu/vue-ueditor/1bf6e4dcc584374b5be735745fe7c88d6b03dc10/static/ueditor/lang/en/images/rotaterightdisable.png
--------------------------------------------------------------------------------
/static/ueditor/lang/en/images/rotaterightenable.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yiwuyu/vue-ueditor/1bf6e4dcc584374b5be735745fe7c88d6b03dc10/static/ueditor/lang/en/images/rotaterightenable.png
--------------------------------------------------------------------------------
/static/ueditor/lang/en/images/upload.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yiwuyu/vue-ueditor/1bf6e4dcc584374b5be735745fe7c88d6b03dc10/static/ueditor/lang/en/images/upload.png
--------------------------------------------------------------------------------
/static/ueditor/lang/zh-cn/images/copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yiwuyu/vue-ueditor/1bf6e4dcc584374b5be735745fe7c88d6b03dc10/static/ueditor/lang/zh-cn/images/copy.png
--------------------------------------------------------------------------------
/static/ueditor/lang/zh-cn/images/localimage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yiwuyu/vue-ueditor/1bf6e4dcc584374b5be735745fe7c88d6b03dc10/static/ueditor/lang/zh-cn/images/localimage.png
--------------------------------------------------------------------------------
/static/ueditor/lang/zh-cn/images/music.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yiwuyu/vue-ueditor/1bf6e4dcc584374b5be735745fe7c88d6b03dc10/static/ueditor/lang/zh-cn/images/music.png
--------------------------------------------------------------------------------
/static/ueditor/lang/zh-cn/images/upload.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yiwuyu/vue-ueditor/1bf6e4dcc584374b5be735745fe7c88d6b03dc10/static/ueditor/lang/zh-cn/images/upload.png
--------------------------------------------------------------------------------
/static/ueditor/themes/default/css/ueditor.css:
--------------------------------------------------------------------------------
1 | /* 编辑器 */
2 | .edui-editor {
3 | position: relative;
4 | }
5 | /* 右键菜单 */
6 | .edui-default .edui-popup {
7 | position: absolute;
8 | -webkit-user-select: none;
9 | -moz-user-select: none;
10 | }
11 | .edui-default .edui-popup {
12 | z-index: 3000;
13 | background-color: #fff;
14 | }
15 |
16 | .edui-default .edui-popup .edui-shadow {
17 | position: absolute;
18 | z-index: -1;
19 | }
20 | .edui-default .edui-popup .edui-shadow {
21 | left: 0;
22 | top: 0;
23 | width: 100%;
24 | height: 100%;
25 | }
26 | .edui-default .edui-popup-content {
27 | border: 1px solid #e7e7eb;
28 | -webkit-background-clip: padding-box;
29 | -moz-background-clip: padding;
30 | background-clip: padding-box;
31 | padding: 5px;
32 | background: #fff;
33 | }
34 | .edui-default .edui-menu .edui-popup-content {
35 | padding: 3px;
36 | }
37 | .edui-default .edui-menu-body {
38 | _width: 150px;
39 | min-width: 170px;
40 | background: url(/static/ueditor/themes/default/images/sparator.png) repeat-y 25px;
41 | }
42 | .edui-default .edui-menuitem {
43 | height: 20px;
44 | cursor: default;
45 | vertical-align: top;
46 | }
47 | .edui-default .edui-menuseparator-inner {
48 | border-bottom: 1px solid #e2e3e3;
49 | margin-left: 29px;
50 | margin-right: 1px;
51 | }
52 | .edui-default .edui-menuseparator {
53 | margin: 2px 0;
54 | height: 1px;
55 | overflow: hidden;
56 | }
57 | .edui-default .edui-menu-body .edui-menuitem {
58 | padding: 1px;
59 | }
60 | .edui-default .edui-box {
61 | border: 0;
62 | padding: 0;
63 | margin: 0;
64 | overflow: hidden;
65 | }
66 | div.edui-box {
67 | position: relative;
68 | display: -moz-inline-box!important;
69 | display: inline-block!important;
70 | vertical-align: middle;
71 | }
72 | .edui-default .edui-menuitem .edui-icon {
73 | width: 20px!important;
74 | height: 20px!important;
75 | background: url(/static/ueditor/themes/default/images/icons29f4d4.png) 0 -4000px;
76 | background: url(/static/ueditor/themes/default/images/icons29f4d4.gif) 0 -4000px\9;
77 | }
78 | .edui-default .edui-for-justifyjustify .edui-icon {
79 | background: url(/static/ueditor/themes/default/images/ueditor_z29f4d5.png) 0 -498px no-repeat;
80 | }
81 | .edui-default .edui-hassubmenu .edui-arrow {
82 | height: 20px;
83 | width: 20px;
84 | float: right;
85 | background: url(/static/ueditor/themes/default/images/icons-all29f4d4.gif) no-repeat 10px -233px;
86 | }
87 | .edui-default .edui-label {
88 | cursor: default;
89 | }
90 | .edui-default .edui-label {
91 | font-size: 12px;
92 | line-height: 20px;
93 | height: 20px;
94 | padding-left: 10px;
95 | }
96 | .edui-default .edui-menu-body .edui-state-hover {
97 | padding: 0!important;
98 | background-color: #f4f5f9;
99 | border: 1px solid #e7e7eb;
100 | }
101 |
102 | /* toolbarbox */
103 | .edui-editor-toolbarbox {
104 | display: none;
105 | }
106 | .edui-editor-bottomContainer {
107 | display: none;
108 | }
109 | /* 粘贴选项 */
110 | .edui-wordpastepop {
111 | display: none;
112 | }
--------------------------------------------------------------------------------
/static/ueditor/themes/default/images/icon_edui_indent.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yiwuyu/vue-ueditor/1bf6e4dcc584374b5be735745fe7c88d6b03dc10/static/ueditor/themes/default/images/icon_edui_indent.png
--------------------------------------------------------------------------------
/static/ueditor/themes/default/images/icons-all29f4d4.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yiwuyu/vue-ueditor/1bf6e4dcc584374b5be735745fe7c88d6b03dc10/static/ueditor/themes/default/images/icons-all29f4d4.gif
--------------------------------------------------------------------------------
/static/ueditor/themes/default/images/icons29f4d4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yiwuyu/vue-ueditor/1bf6e4dcc584374b5be735745fe7c88d6b03dc10/static/ueditor/themes/default/images/icons29f4d4.png
--------------------------------------------------------------------------------
/static/ueditor/themes/default/images/sparator.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yiwuyu/vue-ueditor/1bf6e4dcc584374b5be735745fe7c88d6b03dc10/static/ueditor/themes/default/images/sparator.png
--------------------------------------------------------------------------------
/static/ueditor/themes/default/images/ueditor_z29f4d5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yiwuyu/vue-ueditor/1bf6e4dcc584374b5be735745fe7c88d6b03dc10/static/ueditor/themes/default/images/ueditor_z29f4d5.png
--------------------------------------------------------------------------------
/static/ueditor/themes/iframe.css:
--------------------------------------------------------------------------------
1 | h1,h2,h3,h4,h5,h6{font-weight:400;font-size:16px}*{margin:0;padding:0}a{color:#607fa6;text-decoration:none}html{line-height:1.6;overflow:hidden}body{margin:0;padding:0;font-family:"Helvetica Neue",Helvetica,"Hiragino Sans GB","Microsoft YaHei",Arial,sans-serif}.view{word-break:break-word;cursor:text;min-height:440px;word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;overflow:hidden}p{clear:both}img{*zoom:1;max-width:100%;*max-width:96%;height:auto!important}iframe{width:301px!important;border:0;background-color:none}blockquote{margin:0;padding-left:10px;border-left:3px solid #dbdbdb}.vote_area{display:block}.vote_iframe{height:100%;width:100%!important;*width:96%!important}.qqmusic_iframe{width:100%!important;height:75px}.audio_iframe{width:100%!important;height:82px}.video_iframe{background-color:#000;width:100%!important;*width:96%!important;position:static}.shopcard_iframe{width:100%!important;height:95px;margin:14px 0}.topic_iframe{width:100%!important;height:118px;margin:14px 0}
--------------------------------------------------------------------------------
/static/ueditor/third-party/SyntaxHighlighter/shCoreDefault.css:
--------------------------------------------------------------------------------
1 | .syntaxhighlighter a,.syntaxhighlighter div,.syntaxhighlighter code,.syntaxhighlighter,.syntaxhighlighter td,.syntaxhighlighter tr,.syntaxhighlighter tbody,.syntaxhighlighter thead,.syntaxhighlighter caption,.syntaxhighlighter textarea{-moz-border-radius:0 0 0 0!important;-webkit-border-radius:0 0 0 0!important;background:none!important;border:0!important;bottom:auto!important;float:none!important;left:auto!important;line-height:1.1em!important;margin:0!important;outline:0!important;overflow:visible!important;padding:0!important;position:static!important;right:auto!important;text-align:left!important;top:auto!important;vertical-align:baseline!important;width:auto!important;box-sizing:content-box!important;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-weight:normal!important;font-style:normal!important;min-height:inherit!important;min-height:auto!important;font-size:13px!important}.syntaxhighlighter{width:100%!important;margin:.3em 0 .3em 0!important;position:relative!important;overflow:auto!important;background-color:#f5f5f5!important;border:1px solid #ccc!important;border-radius:4px!important;border-collapse:separate!important}.syntaxhighlighter.source{overflow:hidden!important}.syntaxhighlighter .bold{font-weight:bold!important}.syntaxhighlighter .italic{font-style:italic!important}.syntaxhighlighter .gutter div{white-space:pre!important;word-wrap:normal}.syntaxhighlighter caption{text-align:left!important;padding:.5em 0 .5em 1em!important}.syntaxhighlighter td.code{width:100%!important}.syntaxhighlighter td.code .container{position:relative!important}.syntaxhighlighter td.code .container textarea{box-sizing:border-box!important;position:absolute!important;left:0!important;top:0!important;width:100%!important;border:none!important;background:white!important;padding-left:1em!important;overflow:hidden!important;white-space:pre!important}.syntaxhighlighter td.gutter .line{text-align:right!important;padding:0 .5em 0 1em!important}.syntaxhighlighter td.code .line{padding:0 1em!important}.syntaxhighlighter.nogutter td.code .container textarea,.syntaxhighlighter.nogutter td.code .line{padding-left:0!important}.syntaxhighlighter.show{display:block!important}.syntaxhighlighter.collapsed table{display:none!important}.syntaxhighlighter.collapsed .toolbar{padding:.1em .8em 0 .8em!important;font-size:1em!important;position:static!important;width:auto!important}.syntaxhighlighter.collapsed .toolbar span{display:inline!important;margin-right:1em!important}.syntaxhighlighter.collapsed .toolbar span a{padding:0!important;display:none!important}.syntaxhighlighter.collapsed .toolbar span a.expandSource{display:inline!important}.syntaxhighlighter .toolbar{position:absolute!important;right:1px!important;top:1px!important;width:11px!important;height:11px!important;font-size:10px!important;z-index:10!important}.syntaxhighlighter .toolbar span.title{display:inline!important}.syntaxhighlighter .toolbar a{display:block!important;text-align:center!important;text-decoration:none!important;padding-top:1px!important}.syntaxhighlighter .toolbar a.expandSource{display:none!important}.syntaxhighlighter.ie{font-size:.9em!important;padding:1px 0 1px 0!important}.syntaxhighlighter.ie .toolbar{line-height:8px!important}.syntaxhighlighter.ie .toolbar a{padding-top:0!important}.syntaxhighlighter.printing .line.alt1 .content,.syntaxhighlighter.printing .line.alt2 .content,.syntaxhighlighter.printing .line.highlighted .number,.syntaxhighlighter.printing .line.highlighted.alt1 .content,.syntaxhighlighter.printing .line.highlighted.alt2 .content{background:none!important}.syntaxhighlighter.printing .line .number{color:#bbb!important}.syntaxhighlighter.printing .line .content{color:black!important}.syntaxhighlighter.printing .toolbar{display:none!important}.syntaxhighlighter.printing a{text-decoration:none!important}.syntaxhighlighter.printing .plain,.syntaxhighlighter.printing .plain a{color:black!important}.syntaxhighlighter.printing .comments,.syntaxhighlighter.printing .comments a{color:#008200!important}.syntaxhighlighter.printing .string,.syntaxhighlighter.printing .string a{color:blue!important}.syntaxhighlighter.printing .keyword{color:#ff7800!important;font-weight:bold!important}.syntaxhighlighter.printing .preprocessor{color:gray!important}.syntaxhighlighter.printing .variable{color:#a70!important}.syntaxhighlighter.printing .value{color:#090!important}.syntaxhighlighter.printing .functions{color:#ff1493!important}.syntaxhighlighter.printing .constants{color:#06c!important}.syntaxhighlighter.printing .script{font-weight:bold!important}.syntaxhighlighter.printing .color1,.syntaxhighlighter.printing .color1 a{color:gray!important}.syntaxhighlighter.printing .color2,.syntaxhighlighter.printing .color2 a{color:#ff1493!important}.syntaxhighlighter.printing .color3,.syntaxhighlighter.printing .color3 a{color:red!important}.syntaxhighlighter.printing .break,.syntaxhighlighter.printing .break a{color:black!important}.syntaxhighlighter{background-color:#f5f5f5!important}.syntaxhighlighter .line.highlighted.number{color:black!important}.syntaxhighlighter caption{color:black!important}.syntaxhighlighter .gutter{color:#afafaf!important;background-color:#f7f7f9!important;border-right:1px solid #e1e1e8!important;padding:9.5px 0 9.5px 9.5px!important;border-top-left-radius:4px!important;border-bottom-left-radius:4px!important;user-select:none!important;-moz-user-select:none!important;-webkit-user-select:none!important}.syntaxhighlighter .gutter .line.highlighted{background-color:#6ce26c!important;color:white!important}.syntaxhighlighter.printing .line .content{border:none!important}.syntaxhighlighter.collapsed{overflow:visible!important}.syntaxhighlighter.collapsed .toolbar{color:blue!important;background:white!important;border:1px solid #6ce26c!important}.syntaxhighlighter.collapsed .toolbar a{color:blue!important}.syntaxhighlighter.collapsed .toolbar a:hover{color:red!important}.syntaxhighlighter .toolbar{color:white!important;background:#6ce26c!important;border:none!important}.syntaxhighlighter .toolbar a{color:white!important}.syntaxhighlighter .toolbar a:hover{color:black!important}.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:black!important}.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#008200!important}.syntaxhighlighter .string,.syntaxhighlighter .string a{color:blue!important}.syntaxhighlighter .keyword{color:#ff7800!important}.syntaxhighlighter .preprocessor{color:gray!important}.syntaxhighlighter .variable{color:#a70!important}.syntaxhighlighter .value{color:#090!important}.syntaxhighlighter .functions{color:#ff1493!important}.syntaxhighlighter .constants{color:#06c!important}.syntaxhighlighter .script{font-weight:bold!important;color:#ff7800!important;background-color:none!important}.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:gray!important}.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:#ff1493!important}.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:red!important}.syntaxhighlighter .keyword{font-weight:bold!important}
--------------------------------------------------------------------------------
/static/ueditor/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 |
--------------------------------------------------------------------------------
/static/ueditor/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 |
--------------------------------------------------------------------------------
/static/ueditor/third-party/highcharts/adapters/mootools-adapter.src.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @license 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 |
10 | // JSLint options:
11 | /*global Fx, $, $extend, $each, $merge, Events, Event, DOMEvent */
12 |
13 | (function () {
14 |
15 | var win = window,
16 | doc = document,
17 | mooVersion = win.MooTools.version.substring(0, 3), // Get the first three characters of the version number
18 | legacy = mooVersion === '1.2' || mooVersion === '1.1', // 1.1 && 1.2 considered legacy, 1.3 is not.
19 | legacyEvent = legacy || mooVersion === '1.3', // In versions 1.1 - 1.3 the event class is named Event, in newer versions it is named DOMEvent.
20 | $extend = win.$extend || function () {
21 | return Object.append.apply(Object, arguments);
22 | };
23 |
24 | win.HighchartsAdapter = {
25 | /**
26 | * Initialize the adapter. This is run once as Highcharts is first run.
27 | * @param {Object} pathAnim The helper object to do animations across adapters.
28 | */
29 | init: function (pathAnim) {
30 | var fxProto = Fx.prototype,
31 | fxStart = fxProto.start,
32 | morphProto = Fx.Morph.prototype,
33 | morphCompute = morphProto.compute;
34 |
35 | // override Fx.start to allow animation of SVG element wrappers
36 | /*jslint unparam: true*//* allow unused parameters in fx functions */
37 | fxProto.start = function (from, to) {
38 | var fx = this,
39 | elem = fx.element;
40 |
41 | // special for animating paths
42 | if (from.d) {
43 | //this.fromD = this.element.d.split(' ');
44 | fx.paths = pathAnim.init(
45 | elem,
46 | elem.d,
47 | fx.toD
48 | );
49 | }
50 | fxStart.apply(fx, arguments);
51 |
52 | return this; // chainable
53 | };
54 |
55 | // override Fx.step to allow animation of SVG element wrappers
56 | morphProto.compute = function (from, to, delta) {
57 | var fx = this,
58 | paths = fx.paths;
59 |
60 | if (paths) {
61 | fx.element.attr(
62 | 'd',
63 | pathAnim.step(paths[0], paths[1], delta, fx.toD)
64 | );
65 | } else {
66 | return morphCompute.apply(fx, arguments);
67 | }
68 | };
69 | /*jslint unparam: false*/
70 | },
71 |
72 | /**
73 | * Run a general method on the framework, following jQuery syntax
74 | * @param {Object} el The HTML element
75 | * @param {String} method Which method to run on the wrapped element
76 | */
77 | adapterRun: function (el, method) {
78 |
79 | // This currently works for getting inner width and height. If adding
80 | // more methods later, we need a conditional implementation for each.
81 | if (method === 'width' || method === 'height') {
82 | return parseInt($(el).getStyle(method), 10);
83 | }
84 | },
85 |
86 | /**
87 | * Downloads a script and executes a callback when done.
88 | * @param {String} scriptLocation
89 | * @param {Function} callback
90 | */
91 | getScript: function (scriptLocation, callback) {
92 | // We cannot assume that Assets class from mootools-more is available so instead insert a script tag to download script.
93 | var head = doc.getElementsByTagName('head')[0];
94 | var script = doc.createElement('script');
95 |
96 | script.type = 'text/javascript';
97 | script.src = scriptLocation;
98 | script.onload = callback;
99 |
100 | head.appendChild(script);
101 | },
102 |
103 | /**
104 | * Animate a HTML element or SVG element wrapper
105 | * @param {Object} el
106 | * @param {Object} params
107 | * @param {Object} options jQuery-like animation options: duration, easing, callback
108 | */
109 | animate: function (el, params, options) {
110 | var isSVGElement = el.attr,
111 | effect,
112 | complete = options && options.complete;
113 |
114 | if (isSVGElement && !el.setStyle) {
115 | // add setStyle and getStyle methods for internal use in Moo
116 | el.getStyle = el.attr;
117 | el.setStyle = function () { // property value is given as array in Moo - break it down
118 | var args = arguments;
119 | this.attr.call(this, args[0], args[1][0]);
120 | };
121 | // dirty hack to trick Moo into handling el as an element wrapper
122 | el.$family = function () { return true; };
123 | }
124 |
125 | // stop running animations
126 | win.HighchartsAdapter.stop(el);
127 |
128 | // define and run the effect
129 | effect = new Fx.Morph(
130 | isSVGElement ? el : $(el),
131 | $extend({
132 | transition: Fx.Transitions.Quad.easeInOut
133 | }, options)
134 | );
135 |
136 | // Make sure that the element reference is set when animating svg elements
137 | if (isSVGElement) {
138 | effect.element = el;
139 | }
140 |
141 | // special treatment for paths
142 | if (params.d) {
143 | effect.toD = params.d;
144 | }
145 |
146 | // jQuery-like events
147 | if (complete) {
148 | effect.addEvent('complete', complete);
149 | }
150 |
151 | // run
152 | effect.start(params);
153 |
154 | // record for use in stop method
155 | el.fx = effect;
156 | },
157 |
158 | /**
159 | * MooTool's each function
160 | *
161 | */
162 | each: function (arr, fn) {
163 | return legacy ?
164 | $each(arr, fn) :
165 | Array.each(arr, fn);
166 | },
167 |
168 | /**
169 | * Map an array
170 | * @param {Array} arr
171 | * @param {Function} fn
172 | */
173 | map: function (arr, fn) {
174 | return arr.map(fn);
175 | },
176 |
177 | /**
178 | * Grep or filter an array
179 | * @param {Array} arr
180 | * @param {Function} fn
181 | */
182 | grep: function (arr, fn) {
183 | return arr.filter(fn);
184 | },
185 |
186 | /**
187 | * Return the index of an item in an array, or -1 if not matched
188 | */
189 | inArray: function (item, arr, from) {
190 | return arr ? arr.indexOf(item, from) : -1;
191 | },
192 |
193 | /**
194 | * Get the offset of an element relative to the top left corner of the web page
195 | */
196 | offset: function (el) {
197 | var offsets = el.getPosition(); // #1496
198 | return {
199 | left: offsets.x,
200 | top: offsets.y
201 | };
202 | },
203 |
204 | /**
205 | * Extends an object with Events, if its not done
206 | */
207 | extendWithEvents: function (el) {
208 | // if the addEvent method is not defined, el is a custom Highcharts object
209 | // like series or point
210 | if (!el.addEvent) {
211 | if (el.nodeName) {
212 | el = $(el); // a dynamically generated node
213 | } else {
214 | $extend(el, new Events()); // a custom object
215 | }
216 | }
217 | },
218 |
219 | /**
220 | * Add an event listener
221 | * @param {Object} el HTML element or custom object
222 | * @param {String} type Event type
223 | * @param {Function} fn Event handler
224 | */
225 | addEvent: function (el, type, fn) {
226 | if (typeof type === 'string') { // chart broke due to el being string, type function
227 |
228 | if (type === 'unload') { // Moo self destructs before custom unload events
229 | type = 'beforeunload';
230 | }
231 |
232 | win.HighchartsAdapter.extendWithEvents(el);
233 |
234 | el.addEvent(type, fn);
235 | }
236 | },
237 |
238 | removeEvent: function (el, type, fn) {
239 | if (typeof el === 'string') {
240 | // el.removeEvents below apperantly calls this method again. Do not quite understand why, so for now just bail out.
241 | return;
242 | }
243 |
244 | if (el.addEvent) { // If el doesn't have an addEvent method, there are no events to remove
245 | if (type) {
246 | if (type === 'unload') { // Moo self destructs before custom unload events
247 | type = 'beforeunload';
248 | }
249 |
250 | if (fn) {
251 | el.removeEvent(type, fn);
252 | } else if (el.removeEvents) { // #958
253 | el.removeEvents(type);
254 | }
255 | } else {
256 | el.removeEvents();
257 | }
258 | }
259 | },
260 |
261 | fireEvent: function (el, event, eventArguments, defaultFunction) {
262 | var eventArgs = {
263 | type: event,
264 | target: el
265 | };
266 | // create an event object that keeps all functions
267 | event = legacyEvent ? new Event(eventArgs) : new DOMEvent(eventArgs);
268 | event = $extend(event, eventArguments);
269 |
270 | // When running an event on the Chart.prototype, MooTools nests the target in event.event
271 | if (!event.target && event.event) {
272 | event.target = event.event.target;
273 | }
274 |
275 | // override the preventDefault function to be able to use
276 | // this for custom events
277 | event.preventDefault = function () {
278 | defaultFunction = null;
279 | };
280 | // if fireEvent is not available on the object, there hasn't been added
281 | // any events to it above
282 | if (el.fireEvent) {
283 | el.fireEvent(event.type, event);
284 | }
285 |
286 | // fire the default if it is passed and it is not prevented above
287 | if (defaultFunction) {
288 | defaultFunction(event);
289 | }
290 | },
291 |
292 | /**
293 | * Set back e.pageX and e.pageY that MooTools has abstracted away. #1165, #1346.
294 | */
295 | washMouseEvent: function (e) {
296 | if (e.page) {
297 | e.pageX = e.page.x;
298 | e.pageY = e.page.y;
299 | }
300 | return e;
301 | },
302 |
303 | /**
304 | * Stop running animations on the object
305 | */
306 | stop: function (el) {
307 | if (el.fx) {
308 | el.fx.cancel();
309 | }
310 | }
311 | };
312 |
313 | }());
314 |
--------------------------------------------------------------------------------
/static/ueditor/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 |
--------------------------------------------------------------------------------
/static/ueditor/third-party/highcharts/adapters/prototype-adapter.src.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @license 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 |
11 | // JSLint options:
12 | /*global Effect, Class, Event, Element, $, $$, $A */
13 |
14 | // Adapter interface between prototype and the Highcharts charting library
15 | var HighchartsAdapter = (function () {
16 |
17 | var hasEffect = typeof Effect !== 'undefined';
18 |
19 | return {
20 |
21 | /**
22 | * Initialize the adapter. This is run once as Highcharts is first run.
23 | * @param {Object} pathAnim The helper object to do animations across adapters.
24 | */
25 | init: function (pathAnim) {
26 | if (hasEffect) {
27 | /**
28 | * Animation for Highcharts SVG element wrappers only
29 | * @param {Object} element
30 | * @param {Object} attribute
31 | * @param {Object} to
32 | * @param {Object} options
33 | */
34 | Effect.HighchartsTransition = Class.create(Effect.Base, {
35 | initialize: function (element, attr, to, options) {
36 | var from,
37 | opts;
38 |
39 | this.element = element;
40 | this.key = attr;
41 | from = element.attr ? element.attr(attr) : $(element).getStyle(attr);
42 |
43 | // special treatment for paths
44 | if (attr === 'd') {
45 | this.paths = pathAnim.init(
46 | element,
47 | element.d,
48 | to
49 | );
50 | this.toD = to;
51 |
52 |
53 | // fake values in order to read relative position as a float in update
54 | from = 0;
55 | to = 1;
56 | }
57 |
58 | opts = Object.extend((options || {}), {
59 | from: from,
60 | to: to,
61 | attribute: attr
62 | });
63 | this.start(opts);
64 | },
65 | setup: function () {
66 | HighchartsAdapter._extend(this.element);
67 | // If this is the first animation on this object, create the _highcharts_animation helper that
68 | // contain pointers to the animation objects.
69 | if (!this.element._highchart_animation) {
70 | this.element._highchart_animation = {};
71 | }
72 |
73 | // Store a reference to this animation instance.
74 | this.element._highchart_animation[this.key] = this;
75 | },
76 | update: function (position) {
77 | var paths = this.paths,
78 | element = this.element,
79 | obj;
80 |
81 | if (paths) {
82 | position = pathAnim.step(paths[0], paths[1], position, this.toD);
83 | }
84 |
85 | if (element.attr) { // SVGElement
86 |
87 | if (element.element) { // If not, it has been destroyed (#1405)
88 | element.attr(this.options.attribute, position);
89 | }
90 |
91 | } else { // HTML, #409
92 | obj = {};
93 | obj[this.options.attribute] = position;
94 | $(element).setStyle(obj);
95 | }
96 |
97 | },
98 | finish: function () {
99 | // Delete the property that holds this animation now that it is finished.
100 | // Both canceled animations and complete ones gets a 'finish' call.
101 | if (this.element && this.element._highchart_animation) { // #1405
102 | delete this.element._highchart_animation[this.key];
103 | }
104 | }
105 | });
106 | }
107 | },
108 |
109 | /**
110 | * Run a general method on the framework, following jQuery syntax
111 | * @param {Object} el The HTML element
112 | * @param {String} method Which method to run on the wrapped element
113 | */
114 | adapterRun: function (el, method) {
115 |
116 | // This currently works for getting inner width and height. If adding
117 | // more methods later, we need a conditional implementation for each.
118 | return parseInt($(el).getStyle(method), 10);
119 |
120 | },
121 |
122 | /**
123 | * Downloads a script and executes a callback when done.
124 | * @param {String} scriptLocation
125 | * @param {Function} callback
126 | */
127 | getScript: function (scriptLocation, callback) {
128 | var head = $$('head')[0]; // Returns an array, so pick the first element.
129 | if (head) {
130 | // Append a new 'script' element, set its type and src attributes, add a 'load' handler that calls the callback
131 | head.appendChild(new Element('script', { type: 'text/javascript', src: scriptLocation}).observe('load', callback));
132 | }
133 | },
134 |
135 | /**
136 | * Custom events in prototype needs to be namespaced. This method adds a namespace 'h:' in front of
137 | * events that are not recognized as native.
138 | */
139 | addNS: function (eventName) {
140 | var HTMLEvents = /^(?:load|unload|abort|error|select|change|submit|reset|focus|blur|resize|scroll)$/,
141 | MouseEvents = /^(?:click|mouse(?:down|up|over|move|out))$/;
142 | return (HTMLEvents.test(eventName) || MouseEvents.test(eventName)) ?
143 | eventName :
144 | 'h:' + eventName;
145 | },
146 |
147 | // el needs an event to be attached. el is not necessarily a dom element
148 | addEvent: function (el, event, fn) {
149 | if (el.addEventListener || el.attachEvent) {
150 | Event.observe($(el), HighchartsAdapter.addNS(event), fn);
151 |
152 | } else {
153 | HighchartsAdapter._extend(el);
154 | el._highcharts_observe(event, fn);
155 | }
156 | },
157 |
158 | // motion makes things pretty. use it if effects is loaded, if not... still get to the end result.
159 | animate: function (el, params, options) {
160 | var key,
161 | fx;
162 |
163 | // default options
164 | options = options || {};
165 | options.delay = 0;
166 | options.duration = (options.duration || 500) / 1000;
167 | options.afterFinish = options.complete;
168 |
169 | // animate wrappers and DOM elements
170 | if (hasEffect) {
171 | for (key in params) {
172 | // The fx variable is seemingly thrown away here, but the Effect.setup will add itself to the _highcharts_animation object
173 | // on the element itself so its not really lost.
174 | fx = new Effect.HighchartsTransition($(el), key, params[key], options);
175 | }
176 | } else {
177 | if (el.attr) { // #409 without effects
178 | for (key in params) {
179 | el.attr(key, params[key]);
180 | }
181 | }
182 | if (options.complete) {
183 | options.complete();
184 | }
185 | }
186 |
187 | if (!el.attr) { // HTML element, #409
188 | $(el).setStyle(params);
189 | }
190 | },
191 |
192 | // this only occurs in higcharts 2.0+
193 | stop: function (el) {
194 | var key;
195 | if (el._highcharts_extended && el._highchart_animation) {
196 | for (key in el._highchart_animation) {
197 | // Cancel the animation
198 | // The 'finish' function in the Effect object will remove the reference
199 | el._highchart_animation[key].cancel();
200 | }
201 | }
202 | },
203 |
204 | // um.. each
205 | each: function (arr, fn) {
206 | $A(arr).each(fn);
207 | },
208 |
209 | inArray: function (item, arr, from) {
210 | return arr ? arr.indexOf(item, from) : -1;
211 | },
212 |
213 | /**
214 | * Get the cumulative offset relative to the top left of the page. This method, unlike its
215 | * jQuery and MooTools counterpart, still suffers from issue #208 regarding the position
216 | * of a chart within a fixed container.
217 | */
218 | offset: function (el) {
219 | return $(el).cumulativeOffset();
220 | },
221 |
222 | // fire an event based on an event name (event) and an object (el).
223 | // again, el may not be a dom element
224 | fireEvent: function (el, event, eventArguments, defaultFunction) {
225 | if (el.fire) {
226 | el.fire(HighchartsAdapter.addNS(event), eventArguments);
227 | } else if (el._highcharts_extended) {
228 | eventArguments = eventArguments || {};
229 | el._highcharts_fire(event, eventArguments);
230 | }
231 |
232 | if (eventArguments && eventArguments.defaultPrevented) {
233 | defaultFunction = null;
234 | }
235 |
236 | if (defaultFunction) {
237 | defaultFunction(eventArguments);
238 | }
239 | },
240 |
241 | removeEvent: function (el, event, handler) {
242 | if ($(el).stopObserving) {
243 | if (event) {
244 | event = HighchartsAdapter.addNS(event);
245 | }
246 | $(el).stopObserving(event, handler);
247 | } if (window === el) {
248 | Event.stopObserving(el, event, handler);
249 | } else {
250 | HighchartsAdapter._extend(el);
251 | el._highcharts_stop_observing(event, handler);
252 | }
253 | },
254 |
255 | washMouseEvent: function (e) {
256 | return e;
257 | },
258 |
259 | // um, grep
260 | grep: function (arr, fn) {
261 | return arr.findAll(fn);
262 | },
263 |
264 | // um, map
265 | map: function (arr, fn) {
266 | return arr.map(fn);
267 | },
268 |
269 | // extend an object to handle highchart events (highchart objects, not svg elements).
270 | // this is a very simple way of handling events but whatever, it works (i think)
271 | _extend: function (object) {
272 | if (!object._highcharts_extended) {
273 | Object.extend(object, {
274 | _highchart_events: {},
275 | _highchart_animation: null,
276 | _highcharts_extended: true,
277 | _highcharts_observe: function (name, fn) {
278 | this._highchart_events[name] = [this._highchart_events[name], fn].compact().flatten();
279 | },
280 | _highcharts_stop_observing: function (name, fn) {
281 | if (name) {
282 | if (fn) {
283 | this._highchart_events[name] = [this._highchart_events[name]].compact().flatten().without(fn);
284 | } else {
285 | delete this._highchart_events[name];
286 | }
287 | } else {
288 | this._highchart_events = {};
289 | }
290 | },
291 | _highcharts_fire: function (name, args) {
292 | var target = this;
293 | (this._highchart_events[name] || []).each(function (fn) {
294 | // args is never null here
295 | if (args.stopped) {
296 | return; // "throw $break" wasn't working. i think because of the scope of 'this'.
297 | }
298 |
299 | // Attach a simple preventDefault function to skip default handler if called
300 | args.preventDefault = function () {
301 | args.defaultPrevented = true;
302 | };
303 | args.target = target;
304 |
305 | // If the event handler return false, prevent the default handler from executing
306 | if (fn.bind(this)(args) === false) {
307 | args.preventDefault();
308 | }
309 | }
310 | .bind(this));
311 | }
312 | });
313 | }
314 | }
315 | };
316 | }());
317 |
--------------------------------------------------------------------------------
/static/ueditor/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 -1) {
121 | events.splice(index, 1);
122 | this.HCEvents[name] = events;
123 | }
124 | if (this.removeEventListener) {
125 | removeOneEvent(this, name, fn);
126 | } else if (this.attachEvent) {
127 | IERemoveOneEvent(this, name, fn);
128 | }
129 | } else {
130 | removeAllEvents(this, name);
131 | this.HCEvents[name] = [];
132 | }
133 | } else {
134 | removeAllEvents(this);
135 | this.HCEvents = {};
136 | }
137 | },
138 |
139 | trigger: function (name, args) {
140 | var events = this.HCEvents[name] || [],
141 | target = this,
142 | len = events.length,
143 | i,
144 | preventDefault,
145 | fn;
146 |
147 | // Attach a simple preventDefault function to skip default handler if called
148 | preventDefault = function () {
149 | args.defaultPrevented = true;
150 | };
151 |
152 | for (i = 0; i < len; i++) {
153 | fn = events[i];
154 |
155 | // args is never null here
156 | if (args.stopped) {
157 | return;
158 | }
159 |
160 | args.preventDefault = preventDefault;
161 | args.target = target;
162 | args.type = name; // #2297
163 |
164 | // If the event handler return false, prevent the default handler from executing
165 | if (fn.call(this, args) === false) {
166 | args.preventDefault();
167 | }
168 | }
169 | }
170 | });
171 | }
172 |
173 | return obj;
174 | }
175 |
176 |
177 | return {
178 | /**
179 | * Initialize the adapter. This is run once as Highcharts is first run.
180 | */
181 | init: function (pathAnim) {
182 |
183 | /**
184 | * Compatibility section to add support for legacy IE. This can be removed if old IE
185 | * support is not needed.
186 | */
187 | if (!doc.defaultView) {
188 | this._getStyle = function (el, prop) {
189 | var val;
190 | if (el.style[prop]) {
191 | return el.style[prop];
192 | } else {
193 | if (prop === 'opacity') {
194 | prop = 'filter';
195 | }
196 | /*jslint unparam: true*/
197 | val = el.currentStyle[prop.replace(/\-(\w)/g, function (a, b) { return b.toUpperCase(); })];
198 | if (prop === 'filter') {
199 | val = val.replace(
200 | /alpha\(opacity=([0-9]+)\)/,
201 | function (a, b) {
202 | return b / 100;
203 | }
204 | );
205 | }
206 | /*jslint unparam: false*/
207 | return val === '' ? 1 : val;
208 | }
209 | };
210 | this.adapterRun = function (elem, method) {
211 | var alias = { width: 'clientWidth', height: 'clientHeight' }[method];
212 |
213 | if (alias) {
214 | elem.style.zoom = 1;
215 | return elem[alias] - 2 * parseInt(HighchartsAdapter._getStyle(elem, 'padding'), 10);
216 | }
217 | };
218 | }
219 |
220 | if (!Array.prototype.forEach) {
221 | this.each = function (arr, fn) { // legacy
222 | var i = 0,
223 | len = arr.length;
224 | for (; i < len; i++) {
225 | if (fn.call(arr[i], arr[i], i, arr) === false) {
226 | return i;
227 | }
228 | }
229 | };
230 | }
231 |
232 | if (!Array.prototype.indexOf) {
233 | this.inArray = function (item, arr) {
234 | var len,
235 | i = 0;
236 |
237 | if (arr) {
238 | len = arr.length;
239 |
240 | for (; i < len; i++) {
241 | if (arr[i] === item) {
242 | return i;
243 | }
244 | }
245 | }
246 |
247 | return -1;
248 | };
249 | }
250 |
251 | if (!Array.prototype.filter) {
252 | this.grep = function (elements, callback) {
253 | var ret = [],
254 | i = 0,
255 | length = elements.length;
256 |
257 | for (; i < length; i++) {
258 | if (!!callback(elements[i], i)) {
259 | ret.push(elements[i]);
260 | }
261 | }
262 |
263 | return ret;
264 | };
265 | }
266 |
267 | //--- End compatibility section ---
268 |
269 |
270 | /**
271 | * Start of animation specific code
272 | */
273 | Fx = function (elem, options, prop) {
274 | this.options = options;
275 | this.elem = elem;
276 | this.prop = prop;
277 | };
278 | Fx.prototype = {
279 |
280 | update: function () {
281 | var styles,
282 | paths = this.paths,
283 | elem = this.elem,
284 | elemelem = elem.element; // if destroyed, it is null
285 |
286 | // Animating a path definition on SVGElement
287 | if (paths && elemelem) {
288 | elem.attr('d', pathAnim.step(paths[0], paths[1], this.now, this.toD));
289 |
290 | // Other animations on SVGElement
291 | } else if (elem.attr) {
292 | if (elemelem) {
293 | elem.attr(this.prop, this.now);
294 | }
295 |
296 | // HTML styles
297 | } else {
298 | styles = {};
299 | styles[elem] = this.now + this.unit;
300 | Highcharts.css(elem, styles);
301 | }
302 |
303 | if (this.options.step) {
304 | this.options.step.call(this.elem, this.now, this);
305 | }
306 |
307 | },
308 | custom: function (from, to, unit) {
309 | var self = this,
310 | t = function (gotoEnd) {
311 | return self.step(gotoEnd);
312 | },
313 | i;
314 |
315 | this.startTime = +new Date();
316 | this.start = from;
317 | this.end = to;
318 | this.unit = unit;
319 | this.now = this.start;
320 | this.pos = this.state = 0;
321 |
322 | t.elem = this.elem;
323 |
324 | if (t() && timers.push(t) === 1) {
325 | timerId = setInterval(function () {
326 |
327 | for (i = 0; i < timers.length; i++) {
328 | if (!timers[i]()) {
329 | timers.splice(i--, 1);
330 | }
331 | }
332 |
333 | if (!timers.length) {
334 | clearInterval(timerId);
335 | }
336 | }, 13);
337 | }
338 | },
339 |
340 | step: function (gotoEnd) {
341 | var t = +new Date(),
342 | ret,
343 | done,
344 | options = this.options,
345 | i;
346 |
347 | if (this.elem.stopAnimation) {
348 | ret = false;
349 |
350 | } else if (gotoEnd || t >= options.duration + this.startTime) {
351 | this.now = this.end;
352 | this.pos = this.state = 1;
353 | this.update();
354 |
355 | this.options.curAnim[this.prop] = true;
356 |
357 | done = true;
358 | for (i in options.curAnim) {
359 | if (options.curAnim[i] !== true) {
360 | done = false;
361 | }
362 | }
363 |
364 | if (done) {
365 | if (options.complete) {
366 | options.complete.call(this.elem);
367 | }
368 | }
369 | ret = false;
370 |
371 | } else {
372 | var n = t - this.startTime;
373 | this.state = n / options.duration;
374 | this.pos = options.easing(n, 0, 1, options.duration);
375 | this.now = this.start + ((this.end - this.start) * this.pos);
376 | this.update();
377 | ret = true;
378 | }
379 | return ret;
380 | }
381 | };
382 |
383 | /**
384 | * The adapter animate method
385 | */
386 | this.animate = function (el, prop, opt) {
387 | var start,
388 | unit = '',
389 | end,
390 | fx,
391 | args,
392 | name;
393 |
394 | el.stopAnimation = false; // ready for new
395 |
396 | if (typeof opt !== 'object' || opt === null) {
397 | args = arguments;
398 | opt = {
399 | duration: args[2],
400 | easing: args[3],
401 | complete: args[4]
402 | };
403 | }
404 | if (typeof opt.duration !== 'number') {
405 | opt.duration = 400;
406 | }
407 | opt.easing = Math[opt.easing] || Math.easeInOutSine;
408 | opt.curAnim = Highcharts.extend({}, prop);
409 |
410 | for (name in prop) {
411 | fx = new Fx(el, opt, name);
412 | end = null;
413 |
414 | if (name === 'd') {
415 | fx.paths = pathAnim.init(
416 | el,
417 | el.d,
418 | prop.d
419 | );
420 | fx.toD = prop.d;
421 | start = 0;
422 | end = 1;
423 | } else if (el.attr) {
424 | start = el.attr(name);
425 | } else {
426 | start = parseFloat(HighchartsAdapter._getStyle(el, name)) || 0;
427 | if (name !== 'opacity') {
428 | unit = 'px';
429 | }
430 | }
431 |
432 | if (!end) {
433 | end = parseFloat(prop[name]);
434 | }
435 | fx.custom(start, end, unit);
436 | }
437 | };
438 | },
439 |
440 | /**
441 | * Internal method to return CSS value for given element and property
442 | */
443 | _getStyle: function (el, prop) {
444 | return window.getComputedStyle(el).getPropertyValue(prop);
445 | },
446 |
447 | /**
448 | * Downloads a script and executes a callback when done.
449 | * @param {String} scriptLocation
450 | * @param {Function} callback
451 | */
452 | getScript: function (scriptLocation, callback) {
453 | // We cannot assume that Assets class from mootools-more is available so instead insert a script tag to download script.
454 | var head = doc.getElementsByTagName('head')[0],
455 | script = doc.createElement('script');
456 |
457 | script.type = 'text/javascript';
458 | script.src = scriptLocation;
459 | script.onload = callback;
460 |
461 | head.appendChild(script);
462 | },
463 |
464 | /**
465 | * Return the index of an item in an array, or -1 if not found
466 | */
467 | inArray: function (item, arr) {
468 | return arr.indexOf ? arr.indexOf(item) : emptyArray.indexOf.call(arr, item);
469 | },
470 |
471 |
472 | /**
473 | * A direct link to adapter methods
474 | */
475 | adapterRun: function (elem, method) {
476 | return parseInt(HighchartsAdapter._getStyle(elem, method), 10);
477 | },
478 |
479 | /**
480 | * Filter an array
481 | */
482 | grep: function (elements, callback) {
483 | return emptyArray.filter.call(elements, callback);
484 | },
485 |
486 | /**
487 | * Map an array
488 | */
489 | map: function (arr, fn) {
490 | var results = [], i = 0, len = arr.length;
491 |
492 | for (; i < len; i++) {
493 | results[i] = fn.call(arr[i], arr[i], i, arr);
494 | }
495 |
496 | return results;
497 | },
498 |
499 | offset: function (el) {
500 | var left = 0,
501 | top = 0;
502 |
503 | while (el) {
504 | left += el.offsetLeft;
505 | top += el.offsetTop;
506 | el = el.offsetParent;
507 | }
508 |
509 | return {
510 | left: left,
511 | top: top
512 | };
513 | },
514 |
515 | /**
516 | * Add an event listener
517 | */
518 | addEvent: function (el, type, fn) {
519 | augment(el).bind(type, fn);
520 | },
521 |
522 | /**
523 | * Remove event added with addEvent
524 | */
525 | removeEvent: function (el, type, fn) {
526 | augment(el).unbind(type, fn);
527 | },
528 |
529 | /**
530 | * Fire an event on a custom object
531 | */
532 | fireEvent: function (el, type, eventArguments, defaultFunction) {
533 | var e;
534 |
535 | if (doc.createEvent && (el.dispatchEvent || el.fireEvent)) {
536 | e = doc.createEvent('Events');
537 | e.initEvent(type, true, true);
538 | e.target = el;
539 |
540 | Highcharts.extend(e, eventArguments);
541 |
542 | if (el.dispatchEvent) {
543 | el.dispatchEvent(e);
544 | } else {
545 | el.fireEvent(type, e);
546 | }
547 |
548 | } else if (el.HCExtended === true) {
549 | eventArguments = eventArguments || {};
550 | el.trigger(type, eventArguments);
551 | }
552 |
553 | if (eventArguments && eventArguments.defaultPrevented) {
554 | defaultFunction = null;
555 | }
556 |
557 | if (defaultFunction) {
558 | defaultFunction(eventArguments);
559 | }
560 | },
561 |
562 | washMouseEvent: function (e) {
563 | return e;
564 | },
565 |
566 |
567 | /**
568 | * Stop running animation
569 | */
570 | stop: function (el) {
571 | el.stopAnimation = true;
572 | },
573 |
574 | /**
575 | * Utility for iterating over an array. Parameters are reversed compared to jQuery.
576 | * @param {Array} arr
577 | * @param {Function} fn
578 | */
579 | each: function (arr, fn) { // modern browsers
580 | return Array.prototype.forEach.call(arr, fn);
581 | }
582 | };
583 | }());
584 |
--------------------------------------------------------------------------------
/static/ueditor/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 |
--------------------------------------------------------------------------------
/static/ueditor/third-party/highcharts/modules/annotations.src.js:
--------------------------------------------------------------------------------
1 | (function (Highcharts, HighchartsAdapter) {
2 |
3 | var UNDEFINED,
4 | ALIGN_FACTOR,
5 | ALLOWED_SHAPES,
6 | Chart = Highcharts.Chart,
7 | extend = Highcharts.extend,
8 | each = Highcharts.each;
9 |
10 | ALLOWED_SHAPES = ["path", "rect", "circle"];
11 |
12 | ALIGN_FACTOR = {
13 | top: 0,
14 | left: 0,
15 | center: 0.5,
16 | middle: 0.5,
17 | bottom: 1,
18 | right: 1
19 | };
20 |
21 |
22 | // Highcharts helper methods
23 | var inArray = HighchartsAdapter.inArray,
24 | merge = Highcharts.merge;
25 |
26 | function defaultOptions(shapeType) {
27 | var shapeOptions,
28 | options;
29 |
30 | options = {
31 | xAxis: 0,
32 | yAxis: 0,
33 | title: {
34 | style: {},
35 | text: "",
36 | x: 0,
37 | y: 0
38 | },
39 | shape: {
40 | params: {
41 | stroke: "#000000",
42 | fill: "transparent",
43 | strokeWidth: 2
44 | }
45 | }
46 | };
47 |
48 | shapeOptions = {
49 | circle: {
50 | params: {
51 | x: 0,
52 | y: 0
53 | }
54 | }
55 | };
56 |
57 | if (shapeOptions[shapeType]) {
58 | options.shape = merge(options.shape, shapeOptions[shapeType]);
59 | }
60 |
61 | return options;
62 | }
63 |
64 | function isArray(obj) {
65 | return Object.prototype.toString.call(obj) === '[object Array]';
66 | }
67 |
68 | function isNumber(n) {
69 | return typeof n === 'number';
70 | }
71 |
72 | function defined(obj) {
73 | return obj !== UNDEFINED && obj !== null;
74 | }
75 |
76 | function translatePath(d, xAxis, yAxis, xOffset, yOffset) {
77 | var len = d.length,
78 | i = 0;
79 |
80 | while (i < len) {
81 | if (typeof d[i] === 'number' && typeof d[i + 1] === 'number') {
82 | d[i] = xAxis.toPixels(d[i]) - xOffset;
83 | d[i + 1] = yAxis.toPixels(d[i + 1]) - yOffset;
84 | i += 2;
85 | } else {
86 | i += 1;
87 | }
88 | }
89 |
90 | return d;
91 | }
92 |
93 |
94 | // Define annotation prototype
95 | var Annotation = function () {
96 | this.init.apply(this, arguments);
97 | };
98 | Annotation.prototype = {
99 | /*
100 | * Initialize the annotation
101 | */
102 | init: function (chart, options) {
103 | var shapeType = options.shape && options.shape.type;
104 |
105 | this.chart = chart;
106 | this.options = merge({}, defaultOptions(shapeType), options);
107 | },
108 |
109 | /*
110 | * Render the annotation
111 | */
112 | render: function (redraw) {
113 | var annotation = this,
114 | chart = this.chart,
115 | renderer = annotation.chart.renderer,
116 | group = annotation.group,
117 | title = annotation.title,
118 | shape = annotation.shape,
119 | options = annotation.options,
120 | titleOptions = options.title,
121 | shapeOptions = options.shape;
122 |
123 | if (!group) {
124 | group = annotation.group = renderer.g();
125 | }
126 |
127 |
128 | if (!shape && shapeOptions && inArray(shapeOptions.type, ALLOWED_SHAPES) !== -1) {
129 | shape = annotation.shape = renderer[options.shape.type](shapeOptions.params);
130 | shape.add(group);
131 | }
132 |
133 | if (!title && titleOptions) {
134 | title = annotation.title = renderer.label(titleOptions);
135 | title.add(group);
136 | }
137 |
138 | group.add(chart.annotations.group);
139 |
140 | // link annotations to point or series
141 | annotation.linkObjects();
142 |
143 | if (redraw !== false) {
144 | annotation.redraw();
145 | }
146 | },
147 |
148 | /*
149 | * Redraw the annotation title or shape after options update
150 | */
151 | redraw: function () {
152 | var options = this.options,
153 | chart = this.chart,
154 | group = this.group,
155 | title = this.title,
156 | shape = this.shape,
157 | linkedTo = this.linkedObject,
158 | xAxis = chart.xAxis[options.xAxis],
159 | yAxis = chart.yAxis[options.yAxis],
160 | width = options.width,
161 | height = options.height,
162 | anchorY = ALIGN_FACTOR[options.anchorY],
163 | anchorX = ALIGN_FACTOR[options.anchorX],
164 | resetBBox = false,
165 | shapeParams,
166 | linkType,
167 | series,
168 | param,
169 | bbox,
170 | x,
171 | y;
172 |
173 | if (linkedTo) {
174 | linkType = (linkedTo instanceof Highcharts.Point) ? 'point' :
175 | (linkedTo instanceof Highcharts.Series) ? 'series' : null;
176 |
177 | if (linkType === 'point') {
178 | options.xValue = linkedTo.x;
179 | options.yValue = linkedTo.y;
180 | series = linkedTo.series;
181 | } else if (linkType === 'series') {
182 | series = linkedTo;
183 | }
184 |
185 | if (group.visibility !== series.group.visibility) {
186 | group.attr({
187 | visibility: series.group.visibility
188 | });
189 | }
190 | }
191 |
192 |
193 | // Based on given options find annotation pixel position
194 | x = (defined(options.xValue) ? xAxis.toPixels(options.xValue + xAxis.minPointOffset) - xAxis.minPixelPadding : options.x);
195 | y = defined(options.yValue) ? yAxis.toPixels(options.yValue) : options.y;
196 |
197 | if (isNaN(x) || isNaN(y) || !isNumber(x) || !isNumber(y)) {
198 | return;
199 | }
200 |
201 |
202 | if (title) {
203 | title.attr(options.title);
204 | title.css(options.title.style);
205 | resetBBox = true;
206 | }
207 |
208 | if (shape) {
209 | shapeParams = extend({}, options.shape.params);
210 |
211 | if (options.units === 'values') {
212 | for (param in shapeParams) {
213 | if (inArray(param, ['width', 'x']) > -1) {
214 | shapeParams[param] = xAxis.translate(shapeParams[param]);
215 | } else if (inArray(param, ['height', 'y']) > -1) {
216 | shapeParams[param] = yAxis.translate(shapeParams[param]);
217 | }
218 | }
219 |
220 | if (shapeParams.width) {
221 | shapeParams.width -= xAxis.toPixels(0) - xAxis.left;
222 | }
223 |
224 | if (shapeParams.x) {
225 | shapeParams.x += xAxis.minPixelPadding;
226 | }
227 |
228 | if (options.shape.type === 'path') {
229 | translatePath(shapeParams.d, xAxis, yAxis, x, y);
230 | }
231 | }
232 |
233 | // move the center of the circle to shape x/y
234 | if (options.shape.type === 'circle') {
235 | shapeParams.x += shapeParams.r;
236 | shapeParams.y += shapeParams.r;
237 | }
238 |
239 | resetBBox = true;
240 | shape.attr(shapeParams);
241 | }
242 |
243 | group.bBox = null;
244 |
245 | // If annotation width or height is not defined in options use bounding box size
246 | if (!isNumber(width)) {
247 | bbox = group.getBBox();
248 | width = bbox.width;
249 | }
250 |
251 | if (!isNumber(height)) {
252 | // get bbox only if it wasn't set before
253 | if (!bbox) {
254 | bbox = group.getBBox();
255 | }
256 |
257 | height = bbox.height;
258 | }
259 |
260 | // Calculate anchor point
261 | if (!isNumber(anchorX)) {
262 | anchorX = ALIGN_FACTOR.center;
263 | }
264 |
265 | if (!isNumber(anchorY)) {
266 | anchorY = ALIGN_FACTOR.center;
267 | }
268 |
269 | // Translate group according to its dimension and anchor point
270 | x = x - width * anchorX;
271 | y = y - height * anchorY;
272 |
273 | if (chart.animation && defined(group.translateX) && defined(group.translateY)) {
274 | group.animate({
275 | translateX: x,
276 | translateY: y
277 | });
278 | } else {
279 | group.translate(x, y);
280 | }
281 | },
282 |
283 | /*
284 | * Destroy the annotation
285 | */
286 | destroy: function () {
287 | var annotation = this,
288 | chart = this.chart,
289 | allItems = chart.annotations.allItems,
290 | index = allItems.indexOf(annotation);
291 |
292 | if (index > -1) {
293 | allItems.splice(index, 1);
294 | }
295 |
296 | each(['title', 'shape', 'group'], function (element) {
297 | if (annotation[element]) {
298 | annotation[element].destroy();
299 | annotation[element] = null;
300 | }
301 | });
302 |
303 | annotation.group = annotation.title = annotation.shape = annotation.chart = annotation.options = null;
304 | },
305 |
306 | /*
307 | * Update the annotation with a given options
308 | */
309 | update: function (options, redraw) {
310 | extend(this.options, options);
311 |
312 | // update link to point or series
313 | this.linkObjects();
314 |
315 | this.render(redraw);
316 | },
317 |
318 | linkObjects: function () {
319 | var annotation = this,
320 | chart = annotation.chart,
321 | linkedTo = annotation.linkedObject,
322 | linkedId = linkedTo && (linkedTo.id || linkedTo.options.id),
323 | options = annotation.options,
324 | id = options.linkedTo;
325 |
326 | if (!defined(id)) {
327 | annotation.linkedObject = null;
328 | } else if (!defined(linkedTo) || id !== linkedId) {
329 | annotation.linkedObject = chart.get(id);
330 | }
331 | }
332 | };
333 |
334 |
335 | // Add annotations methods to chart prototype
336 | extend(Chart.prototype, {
337 | annotations: {
338 | /*
339 | * Unified method for adding annotations to the chart
340 | */
341 | add: function (options, redraw) {
342 | var annotations = this.allItems,
343 | chart = this.chart,
344 | item,
345 | len;
346 |
347 | if (!isArray(options)) {
348 | options = [options];
349 | }
350 |
351 | len = options.length;
352 |
353 | while (len--) {
354 | item = new Annotation(chart, options[len]);
355 | annotations.push(item);
356 | item.render(redraw);
357 | }
358 | },
359 |
360 | /**
361 | * Redraw all annotations, method used in chart events
362 | */
363 | redraw: function () {
364 | each(this.allItems, function (annotation) {
365 | annotation.redraw();
366 | });
367 | }
368 | }
369 | });
370 |
371 |
372 | // Initialize on chart load
373 | Chart.prototype.callbacks.push(function (chart) {
374 | var options = chart.options.annotations,
375 | group;
376 |
377 | group = chart.renderer.g("annotations");
378 | group.attr({
379 | zIndex: 7
380 | });
381 | group.add();
382 |
383 | // initialize empty array for annotations
384 | chart.annotations.allItems = [];
385 |
386 | // link chart object to annotations
387 | chart.annotations.chart = chart;
388 |
389 | // link annotations group element to the chart
390 | chart.annotations.group = group;
391 |
392 | if (isArray(options) && options.length > 0) {
393 | chart.annotations.add(chart.options.annotations);
394 | }
395 |
396 | // update annotations after chart redraw
397 | Highcharts.addEvent(chart, 'redraw', function () {
398 | chart.annotations.redraw();
399 | });
400 | });
401 | }(Highcharts, HighchartsAdapter));
402 |
--------------------------------------------------------------------------------
/static/ueditor/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 |
--------------------------------------------------------------------------------
/static/ueditor/third-party/highcharts/modules/drilldown.js:
--------------------------------------------------------------------------------
1 | (function(e){function q(b,a,c){return"rgba("+[Math.round(b[0]+(a[0]-b[0])*c),Math.round(b[1]+(a[1]-b[1])*c),Math.round(b[2]+(a[2]-b[2])*c),b[3]+(a[3]-b[3])*c].join(",")+")"}var m=function(){},j=e.getOptions(),g=e.each,n=e.extend,o=e.wrap,h=e.Chart,i=e.seriesTypes,k=i.pie,l=i.column,r=HighchartsAdapter.fireEvent;n(j.lang,{drillUpText:"◁ Back to {series.name}"});j.drilldown={activeAxisLabelStyle:{cursor:"pointer",color:"#039",fontWeight:"bold",textDecoration:"underline"},activeDataLabelStyle:{cursor:"pointer",
2 | color:"#039",fontWeight:"bold",textDecoration:"underline"},animation:{duration:500},drillUpButton:{position:{align:"right",x:-10,y:10}}};e.SVGRenderer.prototype.Element.prototype.fadeIn=function(){this.attr({opacity:0.1,visibility:"visible"}).animate({opacity:1},{duration:250})};h.prototype.drilldownLevels=[];h.prototype.addSeriesAsDrilldown=function(b,a){var c=b.series,d=c.xAxis,f=c.yAxis,e;e=b.color||c.color;var g,a=n({color:e},a);g=HighchartsAdapter.inArray(this,c.points);this.drilldownLevels.push({seriesOptions:c.userOptions,
3 | shapeArgs:b.shapeArgs,bBox:b.graphic.getBBox(),color:e,newSeries:a,pointOptions:c.options.data[g],pointIndex:g,oldExtremes:{xMin:d&&d.userMin,xMax:d&&d.userMax,yMin:f&&f.userMin,yMax:f&&f.userMax}});e=this.addSeries(a,!1);if(d)d.oldPos=d.pos,d.userMin=d.userMax=null,f.userMin=f.userMax=null;if(c.type===e.type)e.animate=e.animateDrilldown||m,e.options.animation=!0;c.remove(!1);this.redraw();this.showDrillUpButton()};h.prototype.getDrilldownBackText=function(){return this.options.lang.drillUpText.replace("{series.name}",
4 | this.drilldownLevels[this.drilldownLevels.length-1].seriesOptions.name)};h.prototype.showDrillUpButton=function(){var b=this,a=this.getDrilldownBackText(),c=b.options.drilldown.drillUpButton;this.drillUpButton?this.drillUpButton.attr({text:a}).align():this.drillUpButton=this.renderer.button(a,null,null,function(){b.drillUp()}).attr(n({align:c.position.align,zIndex:9},c.theme)).add().align(c.position,!1,c.relativeTo||"plotBox")};h.prototype.drillUp=function(){var b=this.drilldownLevels.pop(),a=this.series[0],
5 | c=b.oldExtremes,d=this.addSeries(b.seriesOptions,!1);r(this,"drillup",{seriesOptions:b.seriesOptions});if(d.type===a.type)d.drilldownLevel=b,d.animate=d.animateDrillupTo||m,d.options.animation=!0,a.animateDrillupFrom&&a.animateDrillupFrom(b);a.remove(!1);d.xAxis&&(d.xAxis.setExtremes(c.xMin,c.xMax,!1),d.yAxis.setExtremes(c.yMin,c.yMax,!1));this.redraw();this.drilldownLevels.length===0?this.drillUpButton=this.drillUpButton.destroy():this.drillUpButton.attr({text:this.getDrilldownBackText()}).align()};
6 | k.prototype.animateDrilldown=function(b){var a=this.chart.drilldownLevels[this.chart.drilldownLevels.length-1],c=this.chart.options.drilldown.animation,d=a.shapeArgs,f=d.start,s=(d.end-f)/this.points.length,h=e.Color(a.color).rgba;b||g(this.points,function(a,b){var g=e.Color(a.color).rgba;a.graphic.attr(e.merge(d,{start:f+b*s,end:f+(b+1)*s})).animate(a.shapeArgs,e.merge(c,{step:function(a,d){d.prop==="start"&&this.attr({fill:q(h,g,d.pos)})}}))})};k.prototype.animateDrillupTo=l.prototype.animateDrillupTo=
7 | function(b){if(!b){var a=this,c=a.drilldownLevel;g(this.points,function(a){a.graphic.hide();a.dataLabel&&a.dataLabel.hide();a.connector&&a.connector.hide()});setTimeout(function(){g(a.points,function(a,b){var e=b===c.pointIndex?"show":"fadeIn";a.graphic[e]();if(a.dataLabel)a.dataLabel[e]();if(a.connector)a.connector[e]()})},Math.max(this.chart.options.drilldown.animation.duration-50,0));this.animate=m}};l.prototype.animateDrilldown=function(b){var a=this.chart.drilldownLevels[this.chart.drilldownLevels.length-
8 | 1].shapeArgs,c=this.chart.options.drilldown.animation;b||(a.x+=this.xAxis.oldPos-this.xAxis.pos,g(this.points,function(b){b.graphic.attr(a).animate(b.shapeArgs,c)}))};l.prototype.animateDrillupFrom=k.prototype.animateDrillupFrom=function(b){var a=this.chart.options.drilldown.animation,c=this.group;delete this.group;g(this.points,function(d){var f=d.graphic,g=e.Color(d.color).rgba;delete d.graphic;f.animate(b.shapeArgs,e.merge(a,{step:function(a,c){c.prop==="start"&&this.attr({fill:q(g,e.Color(b.color).rgba,
9 | c.pos)})},complete:function(){f.destroy();c&&(c=c.destroy())}}))})};e.Point.prototype.doDrilldown=function(){for(var b=this.series.chart,a=b.options.drilldown,c=a.series.length,d;c--&&!d;)a.series[c].id===this.drilldown&&(d=a.series[c]);r(b,"drilldown",{point:this,seriesOptions:d});d&&b.addSeriesAsDrilldown(this,d)};o(e.Point.prototype,"init",function(b,a,c,d){var f=b.call(this,a,c,d),b=a.chart,a=(a=a.xAxis&&a.xAxis.ticks[d])&&a.label;if(f.drilldown){if(e.addEvent(f,"click",function(){f.doDrilldown()}),
10 | a){if(!a._basicStyle)a._basicStyle=a.element.getAttribute("style");a.addClass("highcharts-drilldown-axis-label").css(b.options.drilldown.activeAxisLabelStyle).on("click",function(){f.doDrilldown&&f.doDrilldown()})}}else a&&a._basicStyle&&a.element.setAttribute("style",a._basicStyle);return f});o(e.Series.prototype,"drawDataLabels",function(b){var a=this.chart.options.drilldown.activeDataLabelStyle;b.call(this);g(this.points,function(b){if(b.drilldown&&b.dataLabel)b.dataLabel.attr({"class":"highcharts-drilldown-data-label"}).css(a).on("click",
11 | function(){b.doDrilldown()})})});l.prototype.supportsDrilldown=!0;k.prototype.supportsDrilldown=!0;var p,j=function(b){b.call(this);g(this.points,function(a){a.drilldown&&a.graphic&&a.graphic.attr({"class":"highcharts-drilldown-point"}).css({cursor:"pointer"})})};for(p in i)i[p].prototype.supportsDrilldown&&o(i[p].prototype,"drawTracker",j)})(Highcharts);
12 |
--------------------------------------------------------------------------------
/static/ueditor/third-party/highcharts/modules/drilldown.src.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Highcharts Drilldown plugin
3 | *
4 | * Author: Torstein Honsi
5 | * Last revision: 2013-02-18
6 | * License: MIT License
7 | *
8 | * Demo: http://jsfiddle.net/highcharts/Vf3yT/
9 | */
10 |
11 | /*global HighchartsAdapter*/
12 | (function (H) {
13 |
14 | "use strict";
15 |
16 | var noop = function () {},
17 | defaultOptions = H.getOptions(),
18 | each = H.each,
19 | extend = H.extend,
20 | wrap = H.wrap,
21 | Chart = H.Chart,
22 | seriesTypes = H.seriesTypes,
23 | PieSeries = seriesTypes.pie,
24 | ColumnSeries = seriesTypes.column,
25 | fireEvent = HighchartsAdapter.fireEvent;
26 |
27 | // Utilities
28 | function tweenColors(startColor, endColor, pos) {
29 | var rgba = [
30 | Math.round(startColor[0] + (endColor[0] - startColor[0]) * pos),
31 | Math.round(startColor[1] + (endColor[1] - startColor[1]) * pos),
32 | Math.round(startColor[2] + (endColor[2] - startColor[2]) * pos),
33 | startColor[3] + (endColor[3] - startColor[3]) * pos
34 | ];
35 | return 'rgba(' + rgba.join(',') + ')';
36 | }
37 |
38 | // Add language
39 | extend(defaultOptions.lang, {
40 | drillUpText: '◁ Back to {series.name}'
41 | });
42 | defaultOptions.drilldown = {
43 | activeAxisLabelStyle: {
44 | cursor: 'pointer',
45 | color: '#039',
46 | fontWeight: 'bold',
47 | textDecoration: 'underline'
48 | },
49 | activeDataLabelStyle: {
50 | cursor: 'pointer',
51 | color: '#039',
52 | fontWeight: 'bold',
53 | textDecoration: 'underline'
54 | },
55 | animation: {
56 | duration: 500
57 | },
58 | drillUpButton: {
59 | position: {
60 | align: 'right',
61 | x: -10,
62 | y: 10
63 | }
64 | // relativeTo: 'plotBox'
65 | // theme
66 | }
67 | };
68 |
69 | /**
70 | * A general fadeIn method
71 | */
72 | H.SVGRenderer.prototype.Element.prototype.fadeIn = function () {
73 | this
74 | .attr({
75 | opacity: 0.1,
76 | visibility: 'visible'
77 | })
78 | .animate({
79 | opacity: 1
80 | }, {
81 | duration: 250
82 | });
83 | };
84 |
85 | // Extend the Chart prototype
86 | Chart.prototype.drilldownLevels = [];
87 |
88 | Chart.prototype.addSeriesAsDrilldown = function (point, ddOptions) {
89 | var oldSeries = point.series,
90 | xAxis = oldSeries.xAxis,
91 | yAxis = oldSeries.yAxis,
92 | newSeries,
93 | color = point.color || oldSeries.color,
94 | pointIndex,
95 | level;
96 |
97 | ddOptions = extend({
98 | color: color
99 | }, ddOptions);
100 | pointIndex = HighchartsAdapter.inArray(this, oldSeries.points);
101 | level = {
102 | seriesOptions: oldSeries.userOptions,
103 | shapeArgs: point.shapeArgs,
104 | bBox: point.graphic.getBBox(),
105 | color: color,
106 | newSeries: ddOptions,
107 | pointOptions: oldSeries.options.data[pointIndex],
108 | pointIndex: pointIndex,
109 | oldExtremes: {
110 | xMin: xAxis && xAxis.userMin,
111 | xMax: xAxis && xAxis.userMax,
112 | yMin: yAxis && yAxis.userMin,
113 | yMax: yAxis && yAxis.userMax
114 | }
115 | };
116 |
117 | this.drilldownLevels.push(level);
118 |
119 | newSeries = this.addSeries(ddOptions, false);
120 | if (xAxis) {
121 | xAxis.oldPos = xAxis.pos;
122 | xAxis.userMin = xAxis.userMax = null;
123 | yAxis.userMin = yAxis.userMax = null;
124 | }
125 |
126 | // Run fancy cross-animation on supported and equal types
127 | if (oldSeries.type === newSeries.type) {
128 | newSeries.animate = newSeries.animateDrilldown || noop;
129 | newSeries.options.animation = true;
130 | }
131 |
132 | oldSeries.remove(false);
133 |
134 | this.redraw();
135 | this.showDrillUpButton();
136 | };
137 |
138 | Chart.prototype.getDrilldownBackText = function () {
139 | var lastLevel = this.drilldownLevels[this.drilldownLevels.length - 1];
140 |
141 | return this.options.lang.drillUpText.replace('{series.name}', lastLevel.seriesOptions.name);
142 |
143 | };
144 |
145 | Chart.prototype.showDrillUpButton = function () {
146 | var chart = this,
147 | backText = this.getDrilldownBackText(),
148 | buttonOptions = chart.options.drilldown.drillUpButton;
149 |
150 |
151 | if (!this.drillUpButton) {
152 | this.drillUpButton = this.renderer.button(
153 | backText,
154 | null,
155 | null,
156 | function () {
157 | chart.drillUp();
158 | }
159 | )
160 | .attr(extend({
161 | align: buttonOptions.position.align,
162 | zIndex: 9
163 | }, buttonOptions.theme))
164 | .add()
165 | .align(buttonOptions.position, false, buttonOptions.relativeTo || 'plotBox');
166 | } else {
167 | this.drillUpButton.attr({
168 | text: backText
169 | })
170 | .align();
171 | }
172 | };
173 |
174 | Chart.prototype.drillUp = function () {
175 | var chart = this,
176 | level = chart.drilldownLevels.pop(),
177 | oldSeries = chart.series[0],
178 | oldExtremes = level.oldExtremes,
179 | newSeries = chart.addSeries(level.seriesOptions, false);
180 |
181 | fireEvent(chart, 'drillup', { seriesOptions: level.seriesOptions });
182 |
183 | if (newSeries.type === oldSeries.type) {
184 | newSeries.drilldownLevel = level;
185 | newSeries.animate = newSeries.animateDrillupTo || noop;
186 | newSeries.options.animation = true;
187 |
188 | if (oldSeries.animateDrillupFrom) {
189 | oldSeries.animateDrillupFrom(level);
190 | }
191 | }
192 |
193 | oldSeries.remove(false);
194 |
195 | // Reset the zoom level of the upper series
196 | if (newSeries.xAxis) {
197 | newSeries.xAxis.setExtremes(oldExtremes.xMin, oldExtremes.xMax, false);
198 | newSeries.yAxis.setExtremes(oldExtremes.yMin, oldExtremes.yMax, false);
199 | }
200 |
201 |
202 | this.redraw();
203 |
204 | if (this.drilldownLevels.length === 0) {
205 | this.drillUpButton = this.drillUpButton.destroy();
206 | } else {
207 | this.drillUpButton.attr({
208 | text: this.getDrilldownBackText()
209 | })
210 | .align();
211 | }
212 | };
213 |
214 | PieSeries.prototype.animateDrilldown = function (init) {
215 | var level = this.chart.drilldownLevels[this.chart.drilldownLevels.length - 1],
216 | animationOptions = this.chart.options.drilldown.animation,
217 | animateFrom = level.shapeArgs,
218 | start = animateFrom.start,
219 | angle = animateFrom.end - start,
220 | startAngle = angle / this.points.length,
221 | startColor = H.Color(level.color).rgba;
222 |
223 | if (!init) {
224 | each(this.points, function (point, i) {
225 | var endColor = H.Color(point.color).rgba;
226 |
227 | /*jslint unparam: true*/
228 | point.graphic
229 | .attr(H.merge(animateFrom, {
230 | start: start + i * startAngle,
231 | end: start + (i + 1) * startAngle
232 | }))
233 | .animate(point.shapeArgs, H.merge(animationOptions, {
234 | step: function (val, fx) {
235 | if (fx.prop === 'start') {
236 | this.attr({
237 | fill: tweenColors(startColor, endColor, fx.pos)
238 | });
239 | }
240 | }
241 | }));
242 | /*jslint unparam: false*/
243 | });
244 | }
245 | };
246 |
247 |
248 | /**
249 | * When drilling up, keep the upper series invisible until the lower series has
250 | * moved into place
251 | */
252 | PieSeries.prototype.animateDrillupTo =
253 | ColumnSeries.prototype.animateDrillupTo = function (init) {
254 | if (!init) {
255 | var newSeries = this,
256 | level = newSeries.drilldownLevel;
257 |
258 | each(this.points, function (point) {
259 | point.graphic.hide();
260 | if (point.dataLabel) {
261 | point.dataLabel.hide();
262 | }
263 | if (point.connector) {
264 | point.connector.hide();
265 | }
266 | });
267 |
268 |
269 | // Do dummy animation on first point to get to complete
270 | setTimeout(function () {
271 | each(newSeries.points, function (point, i) {
272 | // Fade in other points
273 | var verb = i === level.pointIndex ? 'show' : 'fadeIn';
274 | point.graphic[verb]();
275 | if (point.dataLabel) {
276 | point.dataLabel[verb]();
277 | }
278 | if (point.connector) {
279 | point.connector[verb]();
280 | }
281 | });
282 | }, Math.max(this.chart.options.drilldown.animation.duration - 50, 0));
283 |
284 | // Reset
285 | this.animate = noop;
286 | }
287 |
288 | };
289 |
290 | ColumnSeries.prototype.animateDrilldown = function (init) {
291 | var animateFrom = this.chart.drilldownLevels[this.chart.drilldownLevels.length - 1].shapeArgs,
292 | animationOptions = this.chart.options.drilldown.animation;
293 |
294 | if (!init) {
295 |
296 | animateFrom.x += (this.xAxis.oldPos - this.xAxis.pos);
297 |
298 | each(this.points, function (point) {
299 | point.graphic
300 | .attr(animateFrom)
301 | .animate(point.shapeArgs, animationOptions);
302 | });
303 | }
304 |
305 | };
306 |
307 | /**
308 | * When drilling up, pull out the individual point graphics from the lower series
309 | * and animate them into the origin point in the upper series.
310 | */
311 | ColumnSeries.prototype.animateDrillupFrom =
312 | PieSeries.prototype.animateDrillupFrom =
313 | function (level) {
314 | var animationOptions = this.chart.options.drilldown.animation,
315 | group = this.group;
316 |
317 | delete this.group;
318 | each(this.points, function (point) {
319 | var graphic = point.graphic,
320 | startColor = H.Color(point.color).rgba;
321 |
322 | delete point.graphic;
323 |
324 | /*jslint unparam: true*/
325 | graphic.animate(level.shapeArgs, H.merge(animationOptions, {
326 |
327 | step: function (val, fx) {
328 | if (fx.prop === 'start') {
329 | this.attr({
330 | fill: tweenColors(startColor, H.Color(level.color).rgba, fx.pos)
331 | });
332 | }
333 | },
334 | complete: function () {
335 | graphic.destroy();
336 | if (group) {
337 | group = group.destroy();
338 | }
339 | }
340 | }));
341 | /*jslint unparam: false*/
342 | });
343 | };
344 |
345 | H.Point.prototype.doDrilldown = function () {
346 | var series = this.series,
347 | chart = series.chart,
348 | drilldown = chart.options.drilldown,
349 | i = drilldown.series.length,
350 | seriesOptions;
351 |
352 | while (i-- && !seriesOptions) {
353 | if (drilldown.series[i].id === this.drilldown) {
354 | seriesOptions = drilldown.series[i];
355 | }
356 | }
357 |
358 | // Fire the event. If seriesOptions is undefined, the implementer can check for
359 | // seriesOptions, and call addSeriesAsDrilldown async if necessary.
360 | fireEvent(chart, 'drilldown', {
361 | point: this,
362 | seriesOptions: seriesOptions
363 | });
364 |
365 | if (seriesOptions) {
366 | chart.addSeriesAsDrilldown(this, seriesOptions);
367 | }
368 |
369 | };
370 |
371 | wrap(H.Point.prototype, 'init', function (proceed, series, options, x) {
372 | var point = proceed.call(this, series, options, x),
373 | chart = series.chart,
374 | tick = series.xAxis && series.xAxis.ticks[x],
375 | tickLabel = tick && tick.label;
376 |
377 | if (point.drilldown) {
378 |
379 | // Add the click event to the point label
380 | H.addEvent(point, 'click', function () {
381 | point.doDrilldown();
382 | });
383 |
384 | // Make axis labels clickable
385 | if (tickLabel) {
386 | if (!tickLabel._basicStyle) {
387 | tickLabel._basicStyle = tickLabel.element.getAttribute('style');
388 | }
389 | tickLabel
390 | .addClass('highcharts-drilldown-axis-label')
391 | .css(chart.options.drilldown.activeAxisLabelStyle)
392 | .on('click', function () {
393 | if (point.doDrilldown) {
394 | point.doDrilldown();
395 | }
396 | });
397 |
398 | }
399 | } else if (tickLabel && tickLabel._basicStyle) {
400 | tickLabel.element.setAttribute('style', tickLabel._basicStyle);
401 | }
402 |
403 | return point;
404 | });
405 |
406 | wrap(H.Series.prototype, 'drawDataLabels', function (proceed) {
407 | var css = this.chart.options.drilldown.activeDataLabelStyle;
408 |
409 | proceed.call(this);
410 |
411 | each(this.points, function (point) {
412 | if (point.drilldown && point.dataLabel) {
413 | point.dataLabel
414 | .attr({
415 | 'class': 'highcharts-drilldown-data-label'
416 | })
417 | .css(css)
418 | .on('click', function () {
419 | point.doDrilldown();
420 | });
421 | }
422 | });
423 | });
424 |
425 | // Mark the trackers with a pointer
426 | ColumnSeries.prototype.supportsDrilldown = true;
427 | PieSeries.prototype.supportsDrilldown = true;
428 | var type,
429 | drawTrackerWrapper = function (proceed) {
430 | proceed.call(this);
431 | each(this.points, function (point) {
432 | if (point.drilldown && point.graphic) {
433 | point.graphic
434 | .attr({
435 | 'class': 'highcharts-drilldown-point'
436 | })
437 | .css({ cursor: 'pointer' });
438 | }
439 | });
440 | };
441 | for (type in seriesTypes) {
442 | if (seriesTypes[type].prototype.supportsDrilldown) {
443 | wrap(seriesTypes[type].prototype, 'drawTracker', drawTrackerWrapper);
444 | }
445 | }
446 |
447 | }(Highcharts));
448 |
--------------------------------------------------------------------------------
/static/ueditor/third-party/highcharts/modules/exporting.js:
--------------------------------------------------------------------------------
1 | /*
2 | Highcharts JS v3.0.6 (2013-10-04)
3 | Exporting module
4 |
5 | (c) 2010-2013 Torstein Hønsi
6 |
7 | License: www.highcharts.com/license
8 | */
9 | (function(f){var A=f.Chart,t=f.addEvent,C=f.removeEvent,k=f.createElement,n=f.discardElement,u=f.css,o=f.merge,r=f.each,p=f.extend,D=Math.max,j=document,B=window,E=f.isTouchDevice,F=f.Renderer.prototype.symbols,x=f.getOptions(),y;p(x.lang,{printChart:"Print chart",downloadPNG:"Download PNG image",downloadJPEG:"Download JPEG image",downloadPDF:"Download PDF document",downloadSVG:"Download SVG vector image",contextButtonTitle:"Chart context menu"});x.navigation={menuStyle:{border:"1px solid #A0A0A0",
10 | background:"#FFFFFF",padding:"5px 0"},menuItemStyle:{padding:"0 10px",background:"none",color:"#303030",fontSize:E?"14px":"11px"},menuItemHoverStyle:{background:"#4572A5",color:"#FFFFFF"},buttonOptions:{symbolFill:"#E0E0E0",symbolSize:14,symbolStroke:"#666",symbolStrokeWidth:3,symbolX:12.5,symbolY:10.5,align:"right",buttonSpacing:3,height:22,theme:{fill:"white",stroke:"none"},verticalAlign:"top",width:24}};x.exporting={type:"image/png",url:"http://export.highcharts.com/",buttons:{contextButton:{menuClassName:"highcharts-contextmenu",
11 | symbol:"menu",_titleKey:"contextButtonTitle",menuItems:[{textKey:"printChart",onclick:function(){this.print()}},{separator:!0},{textKey:"downloadPNG",onclick:function(){this.exportChart()}},{textKey:"downloadJPEG",onclick:function(){this.exportChart({type:"image/jpeg"})}},{textKey:"downloadPDF",onclick:function(){this.exportChart({type:"application/pdf"})}},{textKey:"downloadSVG",onclick:function(){this.exportChart({type:"image/svg+xml"})}}]}}};f.post=function(c,a){var d,b;b=k("form",{method:"post",
12 | action:c,enctype:"multipart/form-data"},{display:"none"},j.body);for(d in a)k("input",{type:"hidden",name:d,value:a[d]},null,b);b.submit();n(b)};p(A.prototype,{getSVG:function(c){var a=this,d,b,z,h,g=o(a.options,c);if(!j.createElementNS)j.createElementNS=function(a,b){return j.createElement(b)};c=k("div",null,{position:"absolute",top:"-9999em",width:a.chartWidth+"px",height:a.chartHeight+"px"},j.body);b=a.renderTo.style.width;h=a.renderTo.style.height;b=g.exporting.sourceWidth||g.chart.width||/px$/.test(b)&&
13 | parseInt(b,10)||600;h=g.exporting.sourceHeight||g.chart.height||/px$/.test(h)&&parseInt(h,10)||400;p(g.chart,{animation:!1,renderTo:c,forExport:!0,width:b,height:h});g.exporting.enabled=!1;g.series=[];r(a.series,function(a){z=o(a.options,{animation:!1,showCheckbox:!1,visible:a.visible});z.isInternal||g.series.push(z)});d=new f.Chart(g,a.callback);r(["xAxis","yAxis"],function(b){r(a[b],function(a,c){var g=d[b][c],f=a.getExtremes(),h=f.userMin,f=f.userMax;g&&(h!==void 0||f!==void 0)&&g.setExtremes(h,
14 | f,!0,!1)})});b=d.container.innerHTML;g=null;d.destroy();n(c);b=b.replace(/zIndex="[^"]+"/g,"").replace(/isShadow="[^"]+"/g,"").replace(/symbolName="[^"]+"/g,"").replace(/jQuery[0-9]+="[^"]+"/g,"").replace(/url\([^#]+#/g,"url(#").replace(/").replace(/ /g," ").replace(//g,"").replace(/
/g,'xlink:href="$1"/>').replace(/id=([^" >]+)/g,'id="$1"').replace(/class=([^" >]+)/g,'class="$1"').replace(/ transform /g," ").replace(/:(path|rect)/g,"$1").replace(/style="([^"]+)"/g,function(a){return a.toLowerCase()});return b=b.replace(/(url\(#highcharts-[0-9]+)"/g,"$1").replace(/"/g,"'")},exportChart:function(c,a){var c=c||{},d=this.options.exporting,d=this.getSVG(o({chart:{borderRadius:0}},d.chartOptions,a,{exporting:{sourceWidth:c.sourceWidth||
16 | d.sourceWidth,sourceHeight:c.sourceHeight||d.sourceHeight}})),c=o(this.options.exporting,c);f.post(c.url,{filename:c.filename||"chart",type:c.type,width:c.width||0,scale:c.scale||2,svg:d})},print:function(){var c=this,a=c.container,d=[],b=a.parentNode,f=j.body,h=f.childNodes;if(!c.isPrinting)c.isPrinting=!0,r(h,function(a,b){if(a.nodeType===1)d[b]=a.style.display,a.style.display="none"}),f.appendChild(a),B.focus(),B.print(),setTimeout(function(){b.appendChild(a);r(h,function(a,b){if(a.nodeType===
17 | 1)a.style.display=d[b]});c.isPrinting=!1},1E3)},contextMenu:function(c,a,d,b,f,h,g){var e=this,j=e.options.navigation,q=j.menuItemStyle,l=e.chartWidth,m=e.chartHeight,o="cache-"+c,i=e[o],s=D(f,h),v,w,n;if(!i)e[o]=i=k("div",{className:c},{position:"absolute",zIndex:1E3,padding:s+"px"},e.container),v=k("div",null,p({MozBoxShadow:"3px 3px 10px #888",WebkitBoxShadow:"3px 3px 10px #888",boxShadow:"3px 3px 10px #888"},j.menuStyle),i),w=function(){u(i,{display:"none"});g&&g.setState(0);e.openMenu=!1},t(i,
18 | "mouseleave",function(){n=setTimeout(w,500)}),t(i,"mouseenter",function(){clearTimeout(n)}),t(document,"mousedown",function(a){e.pointer.inClass(a.target,c)||w()}),r(a,function(a){if(a){var b=a.separator?k("hr",null,null,v):k("div",{onmouseover:function(){u(this,j.menuItemHoverStyle)},onmouseout:function(){u(this,q)},onclick:function(){w();a.onclick.apply(e,arguments)},innerHTML:a.text||e.options.lang[a.textKey]},p({cursor:"pointer"},q),v);e.exportDivElements.push(b)}}),e.exportDivElements.push(v,
19 | i),e.exportMenuWidth=i.offsetWidth,e.exportMenuHeight=i.offsetHeight;a={display:"block"};d+e.exportMenuWidth>l?a.right=l-d-f-s+"px":a.left=d-s+"px";b+h+e.exportMenuHeight>m&&g.alignOptions.verticalAlign!=="top"?a.bottom=m-b-s+"px":a.top=b+h-s+"px";u(i,a);e.openMenu=!0},addButton:function(c){var a=this,d=a.renderer,b=o(a.options.navigation.buttonOptions,c),j=b.onclick,h=b.menuItems,g,e,k={stroke:b.symbolStroke,fill:b.symbolFill},q=b.symbolSize||12;if(!a.btnCount)a.btnCount=0;if(!a.exportDivElements)a.exportDivElements=
20 | [],a.exportSVGElements=[];if(b.enabled!==!1){var l=b.theme,m=l.states,n=m&&m.hover,m=m&&m.select,i;delete l.states;j?i=function(){j.apply(a,arguments)}:h&&(i=function(){a.contextMenu(e.menuClassName,h,e.translateX,e.translateY,e.width,e.height,e);e.setState(2)});b.text&&b.symbol?l.paddingLeft=f.pick(l.paddingLeft,25):b.text||p(l,{width:b.width,height:b.height,padding:0});e=d.button(b.text,0,0,i,l,n,m).attr({title:a.options.lang[b._titleKey],"stroke-linecap":"round"});e.menuClassName=c.menuClassName||
21 | "highcharts-menu-"+a.btnCount++;b.symbol&&(g=d.symbol(b.symbol,b.symbolX-q/2,b.symbolY-q/2,q,q).attr(p(k,{"stroke-width":b.symbolStrokeWidth||1,zIndex:1})).add(e));e.add().align(p(b,{width:e.width,x:f.pick(b.x,y)}),!0,"spacingBox");y+=(e.width+b.buttonSpacing)*(b.align==="right"?-1:1);a.exportSVGElements.push(e,g)}},destroyExport:function(c){var c=c.target,a,d;for(a=0;aj-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 |
--------------------------------------------------------------------------------
/static/ueditor/third-party/highcharts/modules/funnel.src.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @license
3 | * Highcharts funnel module, Beta
4 | *
5 | * (c) 2010-2012 Torstein Hønsi
6 | *
7 | * License: www.highcharts.com/license
8 | */
9 |
10 | /*global Highcharts */
11 | (function (Highcharts) {
12 |
13 | 'use strict';
14 |
15 | // create shortcuts
16 | var defaultOptions = Highcharts.getOptions(),
17 | defaultPlotOptions = defaultOptions.plotOptions,
18 | seriesTypes = Highcharts.seriesTypes,
19 | merge = Highcharts.merge,
20 | noop = function () {},
21 | each = Highcharts.each;
22 |
23 | // set default options
24 | defaultPlotOptions.funnel = merge(defaultPlotOptions.pie, {
25 | center: ['50%', '50%'],
26 | width: '90%',
27 | neckWidth: '30%',
28 | height: '100%',
29 | neckHeight: '25%',
30 |
31 | dataLabels: {
32 | //position: 'right',
33 | connectorWidth: 1,
34 | connectorColor: '#606060'
35 | },
36 | size: true, // to avoid adapting to data label size in Pie.drawDataLabels
37 | states: {
38 | select: {
39 | color: '#C0C0C0',
40 | borderColor: '#000000',
41 | shadow: false
42 | }
43 | }
44 | });
45 |
46 |
47 | seriesTypes.funnel = Highcharts.extendClass(seriesTypes.pie, {
48 |
49 | type: 'funnel',
50 | animate: noop,
51 |
52 | /**
53 | * Overrides the pie translate method
54 | */
55 | translate: function () {
56 |
57 | var
58 | // Get positions - either an integer or a percentage string must be given
59 | getLength = function (length, relativeTo) {
60 | return (/%$/).test(length) ?
61 | relativeTo * parseInt(length, 10) / 100 :
62 | parseInt(length, 10);
63 | },
64 |
65 | sum = 0,
66 | series = this,
67 | chart = series.chart,
68 | plotWidth = chart.plotWidth,
69 | plotHeight = chart.plotHeight,
70 | cumulative = 0, // start at top
71 | options = series.options,
72 | center = options.center,
73 | centerX = getLength(center[0], plotWidth),
74 | centerY = getLength(center[0], plotHeight),
75 | width = getLength(options.width, plotWidth),
76 | tempWidth,
77 | getWidthAt,
78 | height = getLength(options.height, plotHeight),
79 | neckWidth = getLength(options.neckWidth, plotWidth),
80 | neckHeight = getLength(options.neckHeight, plotHeight),
81 | neckY = height - neckHeight,
82 | data = series.data,
83 | path,
84 | fraction,
85 | half = options.dataLabels.position === 'left' ? 1 : 0,
86 |
87 | x1,
88 | y1,
89 | x2,
90 | x3,
91 | y3,
92 | x4,
93 | y5;
94 |
95 | // Return the width at a specific y coordinate
96 | series.getWidthAt = getWidthAt = function (y) {
97 | return y > height - neckHeight || height === neckHeight ?
98 | neckWidth :
99 | neckWidth + (width - neckWidth) * ((height - neckHeight - y) / (height - neckHeight));
100 | };
101 | series.getX = function (y, half) {
102 | return centerX + (half ? -1 : 1) * ((getWidthAt(y) / 2) + options.dataLabels.distance);
103 | };
104 |
105 | // Expose
106 | series.center = [centerX, centerY, height];
107 | series.centerX = centerX;
108 |
109 | /*
110 | * Individual point coordinate naming:
111 | *
112 | * x1,y1 _________________ x2,y1
113 | * \ /
114 | * \ /
115 | * \ /
116 | * \ /
117 | * \ /
118 | * x3,y3 _________ x4,y3
119 | *
120 | * Additional for the base of the neck:
121 | *
122 | * | |
123 | * | |
124 | * | |
125 | * x3,y5 _________ x4,y5
126 | */
127 |
128 |
129 |
130 |
131 | // get the total sum
132 | each(data, function (point) {
133 | sum += point.y;
134 | });
135 |
136 | each(data, function (point) {
137 | // set start and end positions
138 | y5 = null;
139 | fraction = sum ? point.y / sum : 0;
140 | y1 = centerY - height / 2 + cumulative * height;
141 | y3 = y1 + fraction * height;
142 | //tempWidth = neckWidth + (width - neckWidth) * ((height - neckHeight - y1) / (height - neckHeight));
143 | tempWidth = getWidthAt(y1);
144 | x1 = centerX - tempWidth / 2;
145 | x2 = x1 + tempWidth;
146 | tempWidth = getWidthAt(y3);
147 | x3 = centerX - tempWidth / 2;
148 | x4 = x3 + tempWidth;
149 |
150 | // the entire point is within the neck
151 | if (y1 > neckY) {
152 | x1 = x3 = centerX - neckWidth / 2;
153 | x2 = x4 = centerX + neckWidth / 2;
154 |
155 | // the base of the neck
156 | } else if (y3 > neckY) {
157 | y5 = y3;
158 |
159 | tempWidth = getWidthAt(neckY);
160 | x3 = centerX - tempWidth / 2;
161 | x4 = x3 + tempWidth;
162 |
163 | y3 = neckY;
164 | }
165 |
166 | // save the path
167 | path = [
168 | 'M',
169 | x1, y1,
170 | 'L',
171 | x2, y1,
172 | x4, y3
173 | ];
174 | if (y5) {
175 | path.push(x4, y5, x3, y5);
176 | }
177 | path.push(x3, y3, 'Z');
178 |
179 | // prepare for using shared dr
180 | point.shapeType = 'path';
181 | point.shapeArgs = { d: path };
182 |
183 |
184 | // for tooltips and data labels
185 | point.percentage = fraction * 100;
186 | point.plotX = centerX;
187 | point.plotY = (y1 + (y5 || y3)) / 2;
188 |
189 | // Placement of tooltips and data labels
190 | point.tooltipPos = [
191 | centerX,
192 | point.plotY
193 | ];
194 |
195 | // Slice is a noop on funnel points
196 | point.slice = noop;
197 |
198 | // Mimicking pie data label placement logic
199 | point.half = half;
200 |
201 | cumulative += fraction;
202 | });
203 |
204 |
205 | series.setTooltipPoints();
206 | },
207 | /**
208 | * Draw a single point (wedge)
209 | * @param {Object} point The point object
210 | * @param {Object} color The color of the point
211 | * @param {Number} brightness The brightness relative to the color
212 | */
213 | drawPoints: function () {
214 | var series = this,
215 | options = series.options,
216 | chart = series.chart,
217 | renderer = chart.renderer;
218 |
219 | each(series.data, function (point) {
220 |
221 | var graphic = point.graphic,
222 | shapeArgs = point.shapeArgs;
223 |
224 | if (!graphic) { // Create the shapes
225 | point.graphic = renderer.path(shapeArgs).
226 | attr({
227 | fill: point.color,
228 | stroke: options.borderColor,
229 | 'stroke-width': options.borderWidth
230 | }).
231 | add(series.group);
232 |
233 | } else { // Update the shapes
234 | graphic.animate(shapeArgs);
235 | }
236 | });
237 | },
238 |
239 | /**
240 | * Funnel items don't have angles (#2289)
241 | */
242 | sortByAngle: noop,
243 |
244 | /**
245 | * Extend the pie data label method
246 | */
247 | drawDataLabels: function () {
248 | var data = this.data,
249 | labelDistance = this.options.dataLabels.distance,
250 | leftSide,
251 | sign,
252 | point,
253 | i = data.length,
254 | x,
255 | y;
256 |
257 | // In the original pie label anticollision logic, the slots are distributed
258 | // from one labelDistance above to one labelDistance below the pie. In funnels
259 | // we don't want this.
260 | this.center[2] -= 2 * labelDistance;
261 |
262 | // Set the label position array for each point.
263 | while (i--) {
264 | point = data[i];
265 | leftSide = point.half;
266 | sign = leftSide ? 1 : -1;
267 | y = point.plotY;
268 | x = this.getX(y, leftSide);
269 |
270 | // set the anchor point for data labels
271 | point.labelPos = [
272 | 0, // first break of connector
273 | y, // a/a
274 | x + (labelDistance - 5) * sign, // second break, right outside point shape
275 | y, // a/a
276 | x + labelDistance * sign, // landing point for connector
277 | y, // a/a
278 | leftSide ? 'right' : 'left', // alignment
279 | 0 // center angle
280 | ];
281 | }
282 |
283 | seriesTypes.pie.prototype.drawDataLabels.call(this);
284 | }
285 |
286 | });
287 |
288 |
289 | }(Highcharts));
290 |
--------------------------------------------------------------------------------
/static/ueditor/third-party/highcharts/modules/heatmap.js:
--------------------------------------------------------------------------------
1 | (function(b){var k=b.seriesTypes,l=b.each;k.heatmap=b.extendClass(k.map,{colorKey:"z",useMapGeometry:!1,pointArrayMap:["y","z"],translate:function(){var c=this,b=c.options,i=Number.MAX_VALUE,j=Number.MIN_VALUE;c.generatePoints();l(c.data,function(a){var e=a.x,f=a.y,d=a.z,g=(b.colsize||1)/2,h=(b.rowsize||1)/2;a.path=["M",e-g,f-h,"L",e+g,f-h,"L",e+g,f+h,"L",e-g,f+h,"Z"];a.shapeType="path";a.shapeArgs={d:c.translatePath(a.path)};typeof d==="number"&&(d>j?j=d:d dataMax) {
39 | dataMax = value;
40 | } else if (value < dataMin) {
41 | dataMin = value;
42 | }
43 | }
44 | });
45 |
46 | series.translateColors(dataMin, dataMax);
47 | },
48 |
49 | getBox: function () {}
50 |
51 | });
52 |
53 | }(Highcharts));
54 |
--------------------------------------------------------------------------------
/static/ueditor/third-party/highcharts/modules/map.js:
--------------------------------------------------------------------------------
1 | /*
2 | Map plugin v0.1 for Highcharts
3 |
4 | (c) 2011-2013 Torstein Hønsi
5 |
6 | License: www.highcharts.com/license
7 | */
8 | (function(g){function x(a,b,c){for(var d=4,e=[];d--;)e[d]=Math.round(b.rgba[d]+(a.rgba[d]-b.rgba[d])*(1-c));return"rgba("+e.join(",")+")"}var r=g.Axis,y=g.Chart,s=g.Point,z=g.Pointer,l=g.each,v=g.extend,p=g.merge,n=g.pick,A=g.numberFormat,B=g.getOptions(),k=g.seriesTypes,q=B.plotOptions,t=g.wrap,u=g.Color,w=function(){};B.mapNavigation={buttonOptions:{align:"right",verticalAlign:"bottom",x:0,width:18,height:18,style:{fontSize:"15px",fontWeight:"bold",textAlign:"center"}},buttons:{zoomIn:{onclick:function(){this.mapZoom(0.5)},
9 | text:"+",y:-32},zoomOut:{onclick:function(){this.mapZoom(2)},text:"-",y:0}}};g.splitPath=function(a){var b,a=a.replace(/([A-Za-z])/g," $1 "),a=a.replace(/^\s*/,"").replace(/\s*$/,""),a=a.split(/[ ,]+/);for(b=0;bc?this:e,c=(e.max-e.min)*e.transA,e.minPixelPadding=
11 | (e.len-c)/2});t(y.prototype,"render",function(a){var b=this,c=b.options.mapNavigation;a.call(b);b.renderMapNavigation();c.zoomOnDoubleClick&&g.addEvent(b.container,"dblclick",function(a){b.pointer.onContainerDblClick(a)});c.zoomOnMouseWheel&&g.addEvent(b.container,document.onmousewheel===void 0?"DOMMouseScroll":"mousewheel",function(a){b.pointer.onContainerMouseWheel(a)})});v(z.prototype,{onContainerDblClick:function(a){var b=this.chart,a=this.normalize(a);b.isInsidePlot(a.chartX-b.plotLeft,a.chartY-
12 | b.plotTop)&&b.mapZoom(0.5,b.xAxis[0].toValue(a.chartX),b.yAxis[0].toValue(a.chartY))},onContainerMouseWheel:function(a){var b=this.chart,c,a=this.normalize(a);c=a.detail||-(a.wheelDelta/120);b.isInsidePlot(a.chartX-b.plotLeft,a.chartY-b.plotTop)&&b.mapZoom(c>0?2:0.5,b.xAxis[0].toValue(a.chartX),b.yAxis[0].toValue(a.chartY))}});t(z.prototype,"init",function(a,b,c){a.call(this,b,c);if(c.mapNavigation.enableTouchZoom)this.pinchX=this.pinchHor=this.pinchY=this.pinchVert=!0});v(y.prototype,{renderMapNavigation:function(){var a=
13 | this,b=this.options.mapNavigation,c=b.buttons,d,e,f,i=function(){this.handler.call(a)};if(b.enableButtons)for(d in c)if(c.hasOwnProperty(d))f=p(b.buttonOptions,c[d]),e=a.renderer.button(f.text,0,0,i).attr({width:f.width,height:f.height}).css(f.style).add(),e.handler=f.onclick,e.align(v(f,{width:e.width,height:e.height}),null,"spacingBox")},fitToBox:function(a,b){l([["x","width"],["y","height"]],function(c){var d=c[0],c=c[1];a[d]+a[c]>b[d]+b[c]&&(a[c]>b[c]?(a[c]=b[c],a[d]=b[d]):a[d]=b[d]+b[c]-a[c]);
14 | a[c]>b[c]&&(a[c]=b[c]);a[d]"},states:{normal:{animation:!0}}});r=g.extendClass(s,{applyOptions:function(a,b){var c=s.prototype.applyOptions.call(this,a,b);if(c.path&&typeof c.path==="string")c.path=c.options.path=g.splitPath(c.path);return c},onMouseOver:function(){clearTimeout(this.colorInterval);
16 | s.prototype.onMouseOver.call(this)},onMouseOut:function(){var a=this,b=+new Date,c=u(a.options.color),d=u(a.pointAttr.hover.fill),e=a.series.options.states.normal.animation,f=e&&(e.duration||500);if(f&&c.rgba.length===4&&d.rgba.length===4)delete a.pointAttr[""].fill,clearTimeout(a.colorInterval),a.colorInterval=setInterval(function(){var e=(new Date-b)/f,h=a.graphic;e>1&&(e=1);h&&h.attr("fill",x(d,c,e));e>=1&&clearTimeout(a.colorInterval)},13);s.prototype.onMouseOut.call(a)}});k.map=g.extendClass(k.scatter,
17 | {type:"map",pointAttrToOptions:{stroke:"borderColor","stroke-width":"borderWidth",fill:"color"},colorKey:"y",pointClass:r,trackerGroups:["group","markerGroup","dataLabelsGroup"],getSymbol:w,supportsDrilldown:!0,getExtremesFromAll:!0,useMapGeometry:!0,init:function(a){var b=this,c=a.options.legend.valueDecimals,d=[],e,f,i,h,j,o,m;o=a.options.legend.layout==="horizontal";g.Series.prototype.init.apply(this,arguments);j=b.options.colorRange;if(h=b.options.valueRanges)l(h,function(a){f=a.from;i=a.to;e=
18 | "";f===void 0?e="< ":i===void 0&&(e="> ");f!==void 0&&(e+=A(f,c));f!==void 0&&i!==void 0&&(e+=" - ");i!==void 0&&(e+=A(i,c));d.push(g.extend({chart:b.chart,name:e,options:{},drawLegendSymbol:k.area.prototype.drawLegendSymbol,visible:!0,setState:function(){},setVisible:function(){}},a))}),b.legendItems=d;else if(j)f=j.from,i=j.to,h=j.fromLabel,j=j.toLabel,m=o?[0,0,1,0]:[0,1,0,0],o||(o=h,h=j,j=o),o={linearGradient:{x1:m[0],y1:m[1],x2:m[2],y2:m[3]},stops:[[0,f],[1,i]]},d=[{chart:b.chart,options:{},fromLabel:h,
19 | toLabel:j,color:o,drawLegendSymbol:this.drawLegendSymbolGradient,visible:!0,setState:function(){},setVisible:function(){}}],b.legendItems=d},drawLegendSymbol:k.area.prototype.drawLegendSymbol,drawLegendSymbolGradient:function(a,b){var c=a.options.symbolPadding,d=n(a.options.padding,8),e,f,i=this.chart.renderer.fontMetrics(a.options.itemStyle.fontSize).h,h=a.options.layout==="horizontal",j;j=n(a.options.rectangleLength,200);h?(e=-(c/2),f=0):(e=-j+a.baseline-c/2,f=d+i);b.fromText=this.chart.renderer.text(b.fromLabel,
20 | f,e).attr({zIndex:2}).add(b.legendGroup);f=b.fromText.getBBox();b.legendSymbol=this.chart.renderer.rect(h?f.x+f.width+c:f.x-i-c,f.y,h?j:i,h?i:j,2).attr({zIndex:1}).add(b.legendGroup);j=b.legendSymbol.getBBox();b.toText=this.chart.renderer.text(b.toLabel,j.x+j.width+c,h?e:j.y+j.height-c).attr({zIndex:2}).add(b.legendGroup);e=b.toText.getBBox();h?(a.offsetWidth=f.width+j.width+e.width+c*2+d,a.itemY=i+d):(a.offsetWidth=Math.max(f.width,e.width)+c+j.width+d,a.itemY=j.height+d,a.itemX=c)},getBox:function(a){var b=
21 | Number.MIN_VALUE,c=Number.MAX_VALUE,d=Number.MIN_VALUE,e=Number.MAX_VALUE;l(a||this.options.data,function(a){for(var i=a.path,h=i.length,j=!1,g=Number.MIN_VALUE,m=Number.MAX_VALUE,k=Number.MIN_VALUE,l=Number.MAX_VALUE;h--;)typeof i[h]==="number"&&!isNaN(i[h])&&(j?(g=Math.max(g,i[h]),m=Math.min(m,i[h])):(k=Math.max(k,i[h]),l=Math.min(l,i[h])),j=!j);a._maxX=g;a._minX=m;a._maxY=k;a._minY=l;b=Math.max(b,g);c=Math.min(c,m);d=Math.max(d,k);e=Math.min(e,l)});this.minY=e;this.maxY=d;this.minX=c;this.maxX=
22 | b},translatePath:function(a){var b=!1,c=this.xAxis,d=this.yAxis,e,a=[].concat(a);for(e=a.length;e--;)typeof a[e]==="number"&&(a[e]=b?Math.round(c.translate(a[e])):Math.round(d.len-d.translate(a[e])),b=!b);return a},setData:function(){g.Series.prototype.setData.apply(this,arguments);this.getBox()},translate:function(){var a=this,b=Number.MAX_VALUE,c=Number.MIN_VALUE;a.generatePoints();l(a.data,function(d){d.shapeType="path";d.shapeArgs={d:a.translatePath(d.path)};if(typeof d.y==="number")if(d.y>c)c=
23 | d.y;else if(d.y=i)&&(h===void 0||k<=h)){l=m.color;break}}else e&&k!==void 0&&(m=1-(b-k)/(b-a),l=k===null?c.nullColor:x(i,h,m));if(l)g.color=null,g.options.color=l})},drawGraph:w,drawDataLabels:w,drawPoints:function(){var a=this.xAxis,
24 | b=this.yAxis,c=this.colorKey;l(this.data,function(a){a.plotY=1;if(a[c]===null)a[c]=0,a.isNull=!0});k.column.prototype.drawPoints.apply(this);l(this.data,function(d){var e=d.dataLabels,f=a.toPixels(d._minX,!0),g=a.toPixels(d._maxX,!0),h=b.toPixels(d._minY,!0),j=b.toPixels(d._maxY,!0);d.plotX=Math.round(f+(g-f)*n(e&&e.anchorX,0.5));d.plotY=Math.round(h+(j-h)*n(e&&e.anchorY,0.5));d.isNull&&(d[c]=null)});g.Series.prototype.drawDataLabels.call(this)},animateDrilldown:function(a){var b=this.chart.plotBox,
25 | c=this.chart.drilldownLevels[this.chart.drilldownLevels.length-1],d=c.bBox,e=this.chart.options.drilldown.animation;if(!a)a=Math.min(d.width/b.width,d.height/b.height),c.shapeArgs={scaleX:a,scaleY:a,translateX:d.x,translateY:d.y},l(this.points,function(a){a.graphic.attr(c.shapeArgs).animate({scaleX:1,scaleY:1,translateX:0,translateY:0},e)}),delete this.animate},animateDrillupFrom:function(a){k.column.prototype.animateDrillupFrom.call(this,a)},animateDrillupTo:function(a){k.column.prototype.animateDrillupTo.call(this,
26 | a)}});q.mapline=p(q.map,{lineWidth:1,backgroundColor:"none"});k.mapline=g.extendClass(k.map,{type:"mapline",pointAttrToOptions:{stroke:"color","stroke-width":"lineWidth",fill:"backgroundColor"},drawLegendSymbol:k.line.prototype.drawLegendSymbol});q.mappoint=p(q.scatter,{dataLabels:{enabled:!0,format:"{point.name}",color:"black",style:{textShadow:"0 0 5px white"}}});k.mappoint=g.extendClass(k.scatter,{type:"mappoint"});g.Map=function(a,b){var c={endOnTick:!1,gridLineWidth:0,labels:{enabled:!1},lineWidth:0,
27 | minPadding:0,maxPadding:0,startOnTick:!1,tickWidth:0,title:null},d;d=a.series;a.series=null;a=p({chart:{type:"map",panning:"xy"},xAxis:c,yAxis:p(c,{reversed:!0})},a,{chart:{inverted:!1}});a.series=d;return new g.Chart(a,b)}})(Highcharts);
28 |
--------------------------------------------------------------------------------
/static/ueditor/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 |
--------------------------------------------------------------------------------
/static/ueditor/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 |
--------------------------------------------------------------------------------
/static/ueditor/third-party/highcharts/themes/dark-blue.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Dark blue theme for Highcharts JS
3 | * @author Torstein Hønsi
4 | */
5 |
6 | Highcharts.theme = {
7 | colors: ["#DDDF0D", "#55BF3B", "#DF5353", "#7798BF", "#aaeeee", "#ff0066", "#eeaaee",
8 | "#55BF3B", "#DF5353", "#7798BF", "#aaeeee"],
9 | chart: {
10 | backgroundColor: {
11 | linearGradient: { x1: 0, y1: 0, x2: 1, y2: 1 },
12 | stops: [
13 | [0, 'rgb(48, 48, 96)'],
14 | [1, 'rgb(0, 0, 0)']
15 | ]
16 | },
17 | borderColor: '#000000',
18 | borderWidth: 2,
19 | className: 'dark-container',
20 | plotBackgroundColor: 'rgba(255, 255, 255, .1)',
21 | plotBorderColor: '#CCCCCC',
22 | plotBorderWidth: 1
23 | },
24 | title: {
25 | style: {
26 | color: '#C0C0C0',
27 | font: 'bold 16px "Trebuchet MS", Verdana, sans-serif'
28 | }
29 | },
30 | subtitle: {
31 | style: {
32 | color: '#666666',
33 | font: 'bold 12px "Trebuchet MS", Verdana, sans-serif'
34 | }
35 | },
36 | xAxis: {
37 | gridLineColor: '#333333',
38 | gridLineWidth: 1,
39 | labels: {
40 | style: {
41 | color: '#A0A0A0'
42 | }
43 | },
44 | lineColor: '#A0A0A0',
45 | tickColor: '#A0A0A0',
46 | title: {
47 | style: {
48 | color: '#CCC',
49 | fontWeight: 'bold',
50 | fontSize: '12px',
51 | fontFamily: 'Trebuchet MS, Verdana, sans-serif'
52 |
53 | }
54 | }
55 | },
56 | yAxis: {
57 | gridLineColor: '#333333',
58 | labels: {
59 | style: {
60 | color: '#A0A0A0'
61 | }
62 | },
63 | lineColor: '#A0A0A0',
64 | minorTickInterval: null,
65 | tickColor: '#A0A0A0',
66 | tickWidth: 1,
67 | title: {
68 | style: {
69 | color: '#CCC',
70 | fontWeight: 'bold',
71 | fontSize: '12px',
72 | fontFamily: 'Trebuchet MS, Verdana, sans-serif'
73 | }
74 | }
75 | },
76 | tooltip: {
77 | backgroundColor: 'rgba(0, 0, 0, 0.75)',
78 | style: {
79 | color: '#F0F0F0'
80 | }
81 | },
82 | toolbar: {
83 | itemStyle: {
84 | color: 'silver'
85 | }
86 | },
87 | plotOptions: {
88 | line: {
89 | dataLabels: {
90 | color: '#CCC'
91 | },
92 | marker: {
93 | lineColor: '#333'
94 | }
95 | },
96 | spline: {
97 | marker: {
98 | lineColor: '#333'
99 | }
100 | },
101 | scatter: {
102 | marker: {
103 | lineColor: '#333'
104 | }
105 | },
106 | candlestick: {
107 | lineColor: 'white'
108 | }
109 | },
110 | legend: {
111 | itemStyle: {
112 | font: '9pt Trebuchet MS, Verdana, sans-serif',
113 | color: '#A0A0A0'
114 | },
115 | itemHoverStyle: {
116 | color: '#FFF'
117 | },
118 | itemHiddenStyle: {
119 | color: '#444'
120 | }
121 | },
122 | credits: {
123 | style: {
124 | color: '#666'
125 | }
126 | },
127 | labels: {
128 | style: {
129 | color: '#CCC'
130 | }
131 | },
132 |
133 | navigation: {
134 | buttonOptions: {
135 | symbolStroke: '#DDDDDD',
136 | hoverSymbolStroke: '#FFFFFF',
137 | theme: {
138 | fill: {
139 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
140 | stops: [
141 | [0.4, '#606060'],
142 | [0.6, '#333333']
143 | ]
144 | },
145 | stroke: '#000000'
146 | }
147 | }
148 | },
149 |
150 | // scroll charts
151 | rangeSelector: {
152 | buttonTheme: {
153 | fill: {
154 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
155 | stops: [
156 | [0.4, '#888'],
157 | [0.6, '#555']
158 | ]
159 | },
160 | stroke: '#000000',
161 | style: {
162 | color: '#CCC',
163 | fontWeight: 'bold'
164 | },
165 | states: {
166 | hover: {
167 | fill: {
168 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
169 | stops: [
170 | [0.4, '#BBB'],
171 | [0.6, '#888']
172 | ]
173 | },
174 | stroke: '#000000',
175 | style: {
176 | color: 'white'
177 | }
178 | },
179 | select: {
180 | fill: {
181 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
182 | stops: [
183 | [0.1, '#000'],
184 | [0.3, '#333']
185 | ]
186 | },
187 | stroke: '#000000',
188 | style: {
189 | color: 'yellow'
190 | }
191 | }
192 | }
193 | },
194 | inputStyle: {
195 | backgroundColor: '#333',
196 | color: 'silver'
197 | },
198 | labelStyle: {
199 | color: 'silver'
200 | }
201 | },
202 |
203 | navigator: {
204 | handles: {
205 | backgroundColor: '#666',
206 | borderColor: '#AAA'
207 | },
208 | outlineColor: '#CCC',
209 | maskFill: 'rgba(16, 16, 16, 0.5)',
210 | series: {
211 | color: '#7798BF',
212 | lineColor: '#A6C7ED'
213 | }
214 | },
215 |
216 | scrollbar: {
217 | barBackgroundColor: {
218 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
219 | stops: [
220 | [0.4, '#888'],
221 | [0.6, '#555']
222 | ]
223 | },
224 | barBorderColor: '#CCC',
225 | buttonArrowColor: '#CCC',
226 | buttonBackgroundColor: {
227 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
228 | stops: [
229 | [0.4, '#888'],
230 | [0.6, '#555']
231 | ]
232 | },
233 | buttonBorderColor: '#CCC',
234 | rifleColor: '#FFF',
235 | trackBackgroundColor: {
236 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
237 | stops: [
238 | [0, '#000'],
239 | [1, '#333']
240 | ]
241 | },
242 | trackBorderColor: '#666'
243 | },
244 |
245 | // special colors for some of the
246 | legendBackgroundColor: 'rgba(0, 0, 0, 0.5)',
247 | legendBackgroundColorSolid: 'rgb(35, 35, 70)',
248 | dataLabelsColor: '#444',
249 | textColor: '#C0C0C0',
250 | maskColor: 'rgba(255,255,255,0.3)'
251 | };
252 |
253 | // Apply the theme
254 | var highchartsOptions = Highcharts.setOptions(Highcharts.theme);
255 |
--------------------------------------------------------------------------------
/static/ueditor/third-party/highcharts/themes/dark-green.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Dark blue theme for Highcharts JS
3 | * @author Torstein Hønsi
4 | */
5 |
6 | Highcharts.theme = {
7 | colors: ["#DDDF0D", "#55BF3B", "#DF5353", "#7798BF", "#aaeeee", "#ff0066", "#eeaaee",
8 | "#55BF3B", "#DF5353", "#7798BF", "#aaeeee"],
9 | chart: {
10 | backgroundColor: {
11 | linearGradient: [0, 0, 250, 500],
12 | stops: [
13 | [0, 'rgb(48, 96, 48)'],
14 | [1, 'rgb(0, 0, 0)']
15 | ]
16 | },
17 | borderColor: '#000000',
18 | borderWidth: 2,
19 | className: 'dark-container',
20 | plotBackgroundColor: 'rgba(255, 255, 255, .1)',
21 | plotBorderColor: '#CCCCCC',
22 | plotBorderWidth: 1
23 | },
24 | title: {
25 | style: {
26 | color: '#C0C0C0',
27 | font: 'bold 16px "Trebuchet MS", Verdana, sans-serif'
28 | }
29 | },
30 | subtitle: {
31 | style: {
32 | color: '#666666',
33 | font: 'bold 12px "Trebuchet MS", Verdana, sans-serif'
34 | }
35 | },
36 | xAxis: {
37 | gridLineColor: '#333333',
38 | gridLineWidth: 1,
39 | labels: {
40 | style: {
41 | color: '#A0A0A0'
42 | }
43 | },
44 | lineColor: '#A0A0A0',
45 | tickColor: '#A0A0A0',
46 | title: {
47 | style: {
48 | color: '#CCC',
49 | fontWeight: 'bold',
50 | fontSize: '12px',
51 | fontFamily: 'Trebuchet MS, Verdana, sans-serif'
52 |
53 | }
54 | }
55 | },
56 | yAxis: {
57 | gridLineColor: '#333333',
58 | labels: {
59 | style: {
60 | color: '#A0A0A0'
61 | }
62 | },
63 | lineColor: '#A0A0A0',
64 | minorTickInterval: null,
65 | tickColor: '#A0A0A0',
66 | tickWidth: 1,
67 | title: {
68 | style: {
69 | color: '#CCC',
70 | fontWeight: 'bold',
71 | fontSize: '12px',
72 | fontFamily: 'Trebuchet MS, Verdana, sans-serif'
73 | }
74 | }
75 | },
76 | tooltip: {
77 | backgroundColor: 'rgba(0, 0, 0, 0.75)',
78 | style: {
79 | color: '#F0F0F0'
80 | }
81 | },
82 | toolbar: {
83 | itemStyle: {
84 | color: 'silver'
85 | }
86 | },
87 | plotOptions: {
88 | line: {
89 | dataLabels: {
90 | color: '#CCC'
91 | },
92 | marker: {
93 | lineColor: '#333'
94 | }
95 | },
96 | spline: {
97 | marker: {
98 | lineColor: '#333'
99 | }
100 | },
101 | scatter: {
102 | marker: {
103 | lineColor: '#333'
104 | }
105 | },
106 | candlestick: {
107 | lineColor: 'white'
108 | }
109 | },
110 | legend: {
111 | itemStyle: {
112 | font: '9pt Trebuchet MS, Verdana, sans-serif',
113 | color: '#A0A0A0'
114 | },
115 | itemHoverStyle: {
116 | color: '#FFF'
117 | },
118 | itemHiddenStyle: {
119 | color: '#444'
120 | }
121 | },
122 | credits: {
123 | style: {
124 | color: '#666'
125 | }
126 | },
127 | labels: {
128 | style: {
129 | color: '#CCC'
130 | }
131 | },
132 |
133 |
134 | navigation: {
135 | buttonOptions: {
136 | symbolStroke: '#DDDDDD',
137 | hoverSymbolStroke: '#FFFFFF',
138 | theme: {
139 | fill: {
140 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
141 | stops: [
142 | [0.4, '#606060'],
143 | [0.6, '#333333']
144 | ]
145 | },
146 | stroke: '#000000'
147 | }
148 | }
149 | },
150 |
151 | // scroll charts
152 | rangeSelector: {
153 | buttonTheme: {
154 | fill: {
155 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
156 | stops: [
157 | [0.4, '#888'],
158 | [0.6, '#555']
159 | ]
160 | },
161 | stroke: '#000000',
162 | style: {
163 | color: '#CCC',
164 | fontWeight: 'bold'
165 | },
166 | states: {
167 | hover: {
168 | fill: {
169 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
170 | stops: [
171 | [0.4, '#BBB'],
172 | [0.6, '#888']
173 | ]
174 | },
175 | stroke: '#000000',
176 | style: {
177 | color: 'white'
178 | }
179 | },
180 | select: {
181 | fill: {
182 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
183 | stops: [
184 | [0.1, '#000'],
185 | [0.3, '#333']
186 | ]
187 | },
188 | stroke: '#000000',
189 | style: {
190 | color: 'yellow'
191 | }
192 | }
193 | }
194 | },
195 | inputStyle: {
196 | backgroundColor: '#333',
197 | color: 'silver'
198 | },
199 | labelStyle: {
200 | color: 'silver'
201 | }
202 | },
203 |
204 | navigator: {
205 | handles: {
206 | backgroundColor: '#666',
207 | borderColor: '#AAA'
208 | },
209 | outlineColor: '#CCC',
210 | maskFill: 'rgba(16, 16, 16, 0.5)',
211 | series: {
212 | color: '#7798BF',
213 | lineColor: '#A6C7ED'
214 | }
215 | },
216 |
217 | scrollbar: {
218 | barBackgroundColor: {
219 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
220 | stops: [
221 | [0.4, '#888'],
222 | [0.6, '#555']
223 | ]
224 | },
225 | barBorderColor: '#CCC',
226 | buttonArrowColor: '#CCC',
227 | buttonBackgroundColor: {
228 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
229 | stops: [
230 | [0.4, '#888'],
231 | [0.6, '#555']
232 | ]
233 | },
234 | buttonBorderColor: '#CCC',
235 | rifleColor: '#FFF',
236 | trackBackgroundColor: {
237 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
238 | stops: [
239 | [0, '#000'],
240 | [1, '#333']
241 | ]
242 | },
243 | trackBorderColor: '#666'
244 | },
245 |
246 | // special colors for some of the
247 | legendBackgroundColor: 'rgba(0, 0, 0, 0.5)',
248 | legendBackgroundColorSolid: 'rgb(35, 35, 70)',
249 | dataLabelsColor: '#444',
250 | textColor: '#C0C0C0',
251 | maskColor: 'rgba(255,255,255,0.3)'
252 | };
253 |
254 | // Apply the theme
255 | var highchartsOptions = Highcharts.setOptions(Highcharts.theme);
256 |
--------------------------------------------------------------------------------
/static/ueditor/third-party/highcharts/themes/gray.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Gray theme for Highcharts JS
3 | * @author Torstein Hønsi
4 | */
5 |
6 | Highcharts.theme = {
7 | colors: ["#DDDF0D", "#7798BF", "#55BF3B", "#DF5353", "#aaeeee", "#ff0066", "#eeaaee",
8 | "#55BF3B", "#DF5353", "#7798BF", "#aaeeee"],
9 | chart: {
10 | backgroundColor: {
11 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
12 | stops: [
13 | [0, 'rgb(96, 96, 96)'],
14 | [1, 'rgb(16, 16, 16)']
15 | ]
16 | },
17 | borderWidth: 0,
18 | borderRadius: 15,
19 | plotBackgroundColor: null,
20 | plotShadow: false,
21 | plotBorderWidth: 0
22 | },
23 | title: {
24 | style: {
25 | color: '#FFF',
26 | font: '16px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif'
27 | }
28 | },
29 | subtitle: {
30 | style: {
31 | color: '#DDD',
32 | font: '12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif'
33 | }
34 | },
35 | xAxis: {
36 | gridLineWidth: 0,
37 | lineColor: '#999',
38 | tickColor: '#999',
39 | labels: {
40 | style: {
41 | color: '#999',
42 | fontWeight: 'bold'
43 | }
44 | },
45 | title: {
46 | style: {
47 | color: '#AAA',
48 | font: 'bold 12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif'
49 | }
50 | }
51 | },
52 | yAxis: {
53 | alternateGridColor: null,
54 | minorTickInterval: null,
55 | gridLineColor: 'rgba(255, 255, 255, .1)',
56 | minorGridLineColor: 'rgba(255,255,255,0.07)',
57 | lineWidth: 0,
58 | tickWidth: 0,
59 | labels: {
60 | style: {
61 | color: '#999',
62 | fontWeight: 'bold'
63 | }
64 | },
65 | title: {
66 | style: {
67 | color: '#AAA',
68 | font: 'bold 12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif'
69 | }
70 | }
71 | },
72 | legend: {
73 | itemStyle: {
74 | color: '#CCC'
75 | },
76 | itemHoverStyle: {
77 | color: '#FFF'
78 | },
79 | itemHiddenStyle: {
80 | color: '#333'
81 | }
82 | },
83 | labels: {
84 | style: {
85 | color: '#CCC'
86 | }
87 | },
88 | tooltip: {
89 | backgroundColor: {
90 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
91 | stops: [
92 | [0, 'rgba(96, 96, 96, .8)'],
93 | [1, 'rgba(16, 16, 16, .8)']
94 | ]
95 | },
96 | borderWidth: 0,
97 | style: {
98 | color: '#FFF'
99 | }
100 | },
101 |
102 |
103 | plotOptions: {
104 | series: {
105 | shadow: true
106 | },
107 | line: {
108 | dataLabels: {
109 | color: '#CCC'
110 | },
111 | marker: {
112 | lineColor: '#333'
113 | }
114 | },
115 | spline: {
116 | marker: {
117 | lineColor: '#333'
118 | }
119 | },
120 | scatter: {
121 | marker: {
122 | lineColor: '#333'
123 | }
124 | },
125 | candlestick: {
126 | lineColor: 'white'
127 | }
128 | },
129 |
130 | toolbar: {
131 | itemStyle: {
132 | color: '#CCC'
133 | }
134 | },
135 |
136 | navigation: {
137 | buttonOptions: {
138 | symbolStroke: '#DDDDDD',
139 | hoverSymbolStroke: '#FFFFFF',
140 | theme: {
141 | fill: {
142 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
143 | stops: [
144 | [0.4, '#606060'],
145 | [0.6, '#333333']
146 | ]
147 | },
148 | stroke: '#000000'
149 | }
150 | }
151 | },
152 |
153 | // scroll charts
154 | rangeSelector: {
155 | buttonTheme: {
156 | fill: {
157 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
158 | stops: [
159 | [0.4, '#888'],
160 | [0.6, '#555']
161 | ]
162 | },
163 | stroke: '#000000',
164 | style: {
165 | color: '#CCC',
166 | fontWeight: 'bold'
167 | },
168 | states: {
169 | hover: {
170 | fill: {
171 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
172 | stops: [
173 | [0.4, '#BBB'],
174 | [0.6, '#888']
175 | ]
176 | },
177 | stroke: '#000000',
178 | style: {
179 | color: 'white'
180 | }
181 | },
182 | select: {
183 | fill: {
184 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
185 | stops: [
186 | [0.1, '#000'],
187 | [0.3, '#333']
188 | ]
189 | },
190 | stroke: '#000000',
191 | style: {
192 | color: 'yellow'
193 | }
194 | }
195 | }
196 | },
197 | inputStyle: {
198 | backgroundColor: '#333',
199 | color: 'silver'
200 | },
201 | labelStyle: {
202 | color: 'silver'
203 | }
204 | },
205 |
206 | navigator: {
207 | handles: {
208 | backgroundColor: '#666',
209 | borderColor: '#AAA'
210 | },
211 | outlineColor: '#CCC',
212 | maskFill: 'rgba(16, 16, 16, 0.5)',
213 | series: {
214 | color: '#7798BF',
215 | lineColor: '#A6C7ED'
216 | }
217 | },
218 |
219 | scrollbar: {
220 | barBackgroundColor: {
221 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
222 | stops: [
223 | [0.4, '#888'],
224 | [0.6, '#555']
225 | ]
226 | },
227 | barBorderColor: '#CCC',
228 | buttonArrowColor: '#CCC',
229 | buttonBackgroundColor: {
230 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
231 | stops: [
232 | [0.4, '#888'],
233 | [0.6, '#555']
234 | ]
235 | },
236 | buttonBorderColor: '#CCC',
237 | rifleColor: '#FFF',
238 | trackBackgroundColor: {
239 | linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
240 | stops: [
241 | [0, '#000'],
242 | [1, '#333']
243 | ]
244 | },
245 | trackBorderColor: '#666'
246 | },
247 |
248 | // special colors for some of the demo examples
249 | legendBackgroundColor: 'rgba(48, 48, 48, 0.8)',
250 | legendBackgroundColorSolid: 'rgb(70, 70, 70)',
251 | dataLabelsColor: '#444',
252 | textColor: '#E0E0E0',
253 | maskColor: 'rgba(255,255,255,0.3)'
254 | };
255 |
256 | // Apply the theme
257 | var highchartsOptions = Highcharts.setOptions(Highcharts.theme);
258 |
--------------------------------------------------------------------------------
/static/ueditor/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 |
--------------------------------------------------------------------------------
/static/ueditor/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 |
--------------------------------------------------------------------------------
/static/ueditor/third-party/snapscreen/UEditorSnapscreen.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yiwuyu/vue-ueditor/1bf6e4dcc584374b5be735745fe7c88d6b03dc10/static/ueditor/third-party/snapscreen/UEditorSnapscreen.exe
--------------------------------------------------------------------------------
/static/ueditor/third-party/video-js/font/vjs.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yiwuyu/vue-ueditor/1bf6e4dcc584374b5be735745fe7c88d6b03dc10/static/ueditor/third-party/video-js/font/vjs.eot
--------------------------------------------------------------------------------
/static/ueditor/third-party/video-js/font/vjs.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/static/ueditor/third-party/video-js/font/vjs.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yiwuyu/vue-ueditor/1bf6e4dcc584374b5be735745fe7c88d6b03dc10/static/ueditor/third-party/video-js/font/vjs.ttf
--------------------------------------------------------------------------------
/static/ueditor/third-party/video-js/font/vjs.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yiwuyu/vue-ueditor/1bf6e4dcc584374b5be735745fe7c88d6b03dc10/static/ueditor/third-party/video-js/font/vjs.woff
--------------------------------------------------------------------------------
/static/ueditor/third-party/video-js/video-js.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | Video.js Default Styles (http://videojs.com)
3 | Version 4.3.0
4 | Create your own skin at http://designer.videojs.com
5 | */.vjs-default-skin{color:#ccc}@font-face{font-family:VideoJS;src:url(font/vjs.eot);src:url(font/vjs.eot?#iefix) format('embedded-opentype'),url(font/vjs.woff) format('woff'),url(font/vjs.ttf) format('truetype');font-weight:400;font-style:normal}.vjs-default-skin .vjs-slider{outline:0;position:relative;cursor:pointer;padding:0;background-color:#333;background-color:rgba(51,51,51,.9)}.vjs-default-skin .vjs-slider:focus{-webkit-box-shadow:0 0 2em #fff;-moz-box-shadow:0 0 2em #fff;box-shadow:0 0 2em #fff}.vjs-default-skin .vjs-slider-handle{position:absolute;left:0;top:0}.vjs-default-skin .vjs-slider-handle:before{content:"\e009";font-family:VideoJS;font-size:1em;line-height:1;text-align:center;text-shadow:0 0 1em #fff;position:absolute;top:0;left:0;-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);-o-transform:rotate(-45deg);transform:rotate(-45deg)}.vjs-default-skin .vjs-control-bar{display:none;position:absolute;bottom:0;left:0;right:0;height:3em;background-color:#07141e;background-color:rgba(7,20,30,.7)}.vjs-default-skin.vjs-has-started .vjs-control-bar{display:block;visibility:visible;opacity:1;-webkit-transition:visibility .1s,opacity .1s;-moz-transition:visibility .1s,opacity .1s;-o-transition:visibility .1s,opacity .1s;transition:visibility .1s,opacity .1s}.vjs-default-skin.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar{display:block;visibility:hidden;opacity:0;-webkit-transition:visibility 1s,opacity 1s;-moz-transition:visibility 1s,opacity 1s;-o-transition:visibility 1s,opacity 1s;transition:visibility 1s,opacity 1s}.vjs-default-skin.vjs-controls-disabled .vjs-control-bar{display:none}.vjs-default-skin.vjs-using-native-controls .vjs-control-bar{display:none}@media \0screen{.vjs-default-skin.vjs-user-inactive.vjs-playing .vjs-control-bar :before{content:""}}.vjs-default-skin .vjs-control{outline:0;position:relative;float:left;text-align:center;margin:0;padding:0;height:3em;width:4em}.vjs-default-skin .vjs-control:before{font-family:VideoJS;font-size:1.5em;line-height:2;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center;text-shadow:1px 1px 1px rgba(0,0,0,.5)}.vjs-default-skin .vjs-control:focus:before,.vjs-default-skin .vjs-control:hover:before{text-shadow:0 0 1em #fff}.vjs-default-skin .vjs-control:focus{}.vjs-default-skin .vjs-control-text{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.vjs-default-skin .vjs-play-control{width:5em;cursor:pointer}.vjs-default-skin .vjs-play-control:before{content:"\e001"}.vjs-default-skin.vjs-playing .vjs-play-control:before{content:"\e002"}.vjs-default-skin .vjs-mute-control,.vjs-default-skin .vjs-volume-menu-button{cursor:pointer;float:right}.vjs-default-skin .vjs-mute-control:before,.vjs-default-skin .vjs-volume-menu-button:before{content:"\e006"}.vjs-default-skin .vjs-mute-control.vjs-vol-0:before,.vjs-default-skin .vjs-volume-menu-button.vjs-vol-0:before{content:"\e003"}.vjs-default-skin .vjs-mute-control.vjs-vol-1:before,.vjs-default-skin .vjs-volume-menu-button.vjs-vol-1:before{content:"\e004"}.vjs-default-skin .vjs-mute-control.vjs-vol-2:before,.vjs-default-skin .vjs-volume-menu-button.vjs-vol-2:before{content:"\e005"}.vjs-default-skin .vjs-volume-control{width:5em;float:right}.vjs-default-skin .vjs-volume-bar{width:5em;height:.6em;margin:1.1em auto 0}.vjs-default-skin .vjs-volume-menu-button .vjs-menu-content{height:2.9em}.vjs-default-skin .vjs-volume-level{position:absolute;top:0;left:0;height:.5em;background:#66a8cc url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAP0lEQVQIHWWMAQoAIAgDR/QJ/Ub//04+w7ZICBwcOg5FZi5iBB82AGzixEglJrd4TVK5XUJpskSTEvpdFzX9AB2pGziSQcvAAAAAAElFTkSuQmCC) -50% 0 repeat}.vjs-default-skin .vjs-volume-bar .vjs-volume-handle{width:.5em;height:.5em}.vjs-default-skin .vjs-volume-handle:before{font-size:.9em;top:-.2em;left:-.2em;width:1em;height:1em}.vjs-default-skin .vjs-volume-menu-button .vjs-menu .vjs-menu-content{width:6em;left:-4em}.vjs-default-skin .vjs-progress-control{position:absolute;left:0;right:0;width:auto;font-size:.3em;height:1em;top:-1em;-webkit-transition:all .4s;-moz-transition:all .4s;-o-transition:all .4s;transition:all .4s}.vjs-default-skin:hover .vjs-progress-control{font-size:.9em;-webkit-transition:all .2s;-moz-transition:all .2s;-o-transition:all .2s;transition:all .2s}.vjs-default-skin .vjs-progress-holder{height:100%}.vjs-default-skin .vjs-progress-holder .vjs-play-progress,.vjs-default-skin .vjs-progress-holder .vjs-load-progress{position:absolute;display:block;height:100%;margin:0;padding:0;left:0;top:0}.vjs-default-skin .vjs-play-progress{background:#66a8cc url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAP0lEQVQIHWWMAQoAIAgDR/QJ/Ub//04+w7ZICBwcOg5FZi5iBB82AGzixEglJrd4TVK5XUJpskSTEvpdFzX9AB2pGziSQcvAAAAAAElFTkSuQmCC) -50% 0 repeat}.vjs-default-skin .vjs-load-progress{background:#646464;background:rgba(255,255,255,.4)}.vjs-default-skin .vjs-seek-handle{width:1.5em;height:100%}.vjs-default-skin .vjs-seek-handle:before{padding-top:.1em}.vjs-default-skin .vjs-time-controls{font-size:1em;line-height:3em}.vjs-default-skin .vjs-current-time{float:left}.vjs-default-skin .vjs-duration{float:left}.vjs-default-skin .vjs-remaining-time{display:none;float:left}.vjs-time-divider{float:left;line-height:3em}.vjs-default-skin .vjs-fullscreen-control{width:3.8em;cursor:pointer;float:right}.vjs-default-skin .vjs-fullscreen-control:before{content:"\e000"}.vjs-default-skin.vjs-fullscreen .vjs-fullscreen-control:before{content:"\e00b"}.vjs-default-skin .vjs-big-play-button{left:.5em;top:.5em;font-size:3em;display:block;z-index:2;position:absolute;width:4em;height:2.6em;text-align:center;vertical-align:middle;cursor:pointer;opacity:1;background-color:#07141e;background-color:rgba(7,20,30,.7);border:.1em solid #3b4249;-webkit-border-radius:.8em;-moz-border-radius:.8em;border-radius:.8em;-webkit-box-shadow:0 0 1em rgba(255,255,255,.25);-moz-box-shadow:0 0 1em rgba(255,255,255,.25);box-shadow:0 0 1em rgba(255,255,255,.25);-webkit-transition:all .4s;-moz-transition:all .4s;-o-transition:all .4s;transition:all .4s}.vjs-default-skin.vjs-big-play-centered .vjs-big-play-button{left:50%;margin-left:-2.1em;top:50%;margin-top:-1.4000000000000001em}.vjs-default-skin.vjs-controls-disabled .vjs-big-play-button{display:none}.vjs-default-skin.vjs-has-started .vjs-big-play-button{display:none}.vjs-default-skin.vjs-using-native-controls .vjs-big-play-button{display:none}.vjs-default-skin:hover .vjs-big-play-button,.vjs-default-skin .vjs-big-play-button:focus{outline:0;border-color:#fff;background-color:#505050;background-color:rgba(50,50,50,.75);-webkit-box-shadow:0 0 3em #fff;-moz-box-shadow:0 0 3em #fff;box-shadow:0 0 3em #fff;-webkit-transition:all 0s;-moz-transition:all 0s;-o-transition:all 0s;transition:all 0s}.vjs-default-skin .vjs-big-play-button:before{content:"\e001";font-family:VideoJS;line-height:2.6em;text-shadow:.05em .05em .1em #000;text-align:center;position:absolute;left:0;width:100%;height:100%}.vjs-loading-spinner{display:none;position:absolute;top:50%;left:50%;font-size:4em;line-height:1;width:1em;height:1em;margin-left:-.5em;margin-top:-.5em;opacity:.75;-webkit-animation:spin 1.5s infinite linear;-moz-animation:spin 1.5s infinite linear;-o-animation:spin 1.5s infinite linear;animation:spin 1.5s infinite linear}.vjs-default-skin .vjs-loading-spinner:before{content:"\e01e";font-family:VideoJS;position:absolute;top:0;left:0;width:1em;height:1em;text-align:center;text-shadow:0 0 .1em #000}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.vjs-default-skin .vjs-menu-button{float:right;cursor:pointer}.vjs-default-skin .vjs-menu{display:none;position:absolute;bottom:0;left:0;width:0;height:0;margin-bottom:3em;border-left:2em solid transparent;border-right:2em solid transparent;border-top:1.55em solid #000;border-top-color:rgba(7,40,50,.5)}.vjs-default-skin .vjs-menu-button .vjs-menu .vjs-menu-content{display:block;padding:0;margin:0;position:absolute;width:10em;bottom:1.5em;max-height:15em;overflow:auto;left:-5em;background-color:#07141e;background-color:rgba(7,20,30,.7);-webkit-box-shadow:-.2em -.2em .3em rgba(255,255,255,.2);-moz-box-shadow:-.2em -.2em .3em rgba(255,255,255,.2);box-shadow:-.2em -.2em .3em rgba(255,255,255,.2)}.vjs-default-skin .vjs-menu-button:hover .vjs-menu{display:block}.vjs-default-skin .vjs-menu-button ul li{list-style:none;margin:0;padding:.3em 0;line-height:1.4em;font-size:1.2em;text-align:center;text-transform:lowercase}.vjs-default-skin .vjs-menu-button ul li.vjs-selected{background-color:#000}.vjs-default-skin .vjs-menu-button ul li:focus,.vjs-default-skin .vjs-menu-button ul li:hover,.vjs-default-skin .vjs-menu-button ul li.vjs-selected:focus,.vjs-default-skin .vjs-menu-button ul li.vjs-selected:hover{outline:0;color:#111;background-color:#fff;background-color:rgba(255,255,255,.75);-webkit-box-shadow:0 0 1em #fff;-moz-box-shadow:0 0 1em #fff;box-shadow:0 0 1em #fff}.vjs-default-skin .vjs-menu-button ul li.vjs-menu-title{text-align:center;text-transform:uppercase;font-size:1em;line-height:2em;padding:0;margin:0 0 .3em;font-weight:700;cursor:default}.vjs-default-skin .vjs-subtitles-button:before{content:"\e00c"}.vjs-default-skin .vjs-captions-button:before{content:"\e008"}.vjs-default-skin .vjs-captions-button:focus .vjs-control-content:before,.vjs-default-skin .vjs-captions-button:hover .vjs-control-content:before{-webkit-box-shadow:0 0 1em #fff;-moz-box-shadow:0 0 1em #fff;box-shadow:0 0 1em #fff}.video-js{background-color:#000;position:relative;padding:0;font-size:10px;vertical-align:middle;font-weight:400;font-style:normal;font-family:Arial,sans-serif;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.video-js .vjs-tech{position:absolute;top:0;left:0;width:100%;height:100%}.video-js:-moz-full-screen{position:absolute}body.vjs-full-window{padding:0;margin:0;height:100%;overflow-y:auto}.video-js.vjs-fullscreen{position:fixed;overflow:hidden;z-index:1000;left:0;top:0;bottom:0;right:0;width:100%!important;height:100%!important;_position:absolute}.video-js:-webkit-full-screen{width:100%!important;height:100%!important}.video-js.vjs-fullscreen.vjs-user-inactive{cursor:none}.vjs-poster{background-repeat:no-repeat;background-position:50% 50%;background-size:contain;cursor:pointer;height:100%;margin:0;padding:0;position:relative;width:100%}.vjs-poster img{display:block;margin:0 auto;max-height:100%;padding:0;width:100%}.video-js.vjs-using-native-controls .vjs-poster{display:none}.video-js .vjs-text-track-display{text-align:center;position:absolute;bottom:4em;left:1em;right:1em}.video-js .vjs-text-track{display:none;font-size:1.4em;text-align:center;margin-bottom:.1em;background-color:#000;background-color:rgba(0,0,0,.5)}.video-js .vjs-subtitles{color:#fff}.video-js .vjs-captions{color:#fc6}.vjs-tt-cue{display:block}.vjs-default-skin .vjs-hidden{display:none}.vjs-lock-showing{display:block!important;opacity:1;visibility:visible}
--------------------------------------------------------------------------------
/static/ueditor/third-party/video-js/video-js.swf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yiwuyu/vue-ueditor/1bf6e4dcc584374b5be735745fe7c88d6b03dc10/static/ueditor/third-party/video-js/video-js.swf
--------------------------------------------------------------------------------
/static/ueditor/third-party/webuploader/Uploader.swf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yiwuyu/vue-ueditor/1bf6e4dcc584374b5be735745fe7c88d6b03dc10/static/ueditor/third-party/webuploader/Uploader.swf
--------------------------------------------------------------------------------
/static/ueditor/third-party/webuploader/webuploader.css:
--------------------------------------------------------------------------------
1 | .webuploader-container {
2 | position: relative;
3 | }
4 | .webuploader-element-invisible {
5 | position: absolute !important;
6 | clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
7 | clip: rect(1px,1px,1px,1px);
8 | }
9 | .webuploader-pick {
10 | position: relative;
11 | display: inline-block;
12 | cursor: pointer;
13 | background: #00b7ee;
14 | padding: 10px 15px;
15 | color: #fff;
16 | text-align: center;
17 | border-radius: 3px;
18 | overflow: hidden;
19 | }
20 | .webuploader-pick-hover {
21 | background: #00a2d4;
22 | }
23 |
24 | .webuploader-pick-disable {
25 | opacity: 0.6;
26 | pointer-events:none;
27 | }
28 |
29 |
--------------------------------------------------------------------------------
/static/ueditor/third-party/zeroclipboard/ZeroClipboard.swf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yiwuyu/vue-ueditor/1bf6e4dcc584374b5be735745fe7c88d6b03dc10/static/ueditor/third-party/zeroclipboard/ZeroClipboard.swf
--------------------------------------------------------------------------------
/static/video.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yiwuyu/vue-ueditor/1bf6e4dcc584374b5be735745fe7c88d6b03dc10/static/video.mp4
--------------------------------------------------------------------------------