├── .babelrc ├── .editorconfig ├── .eslintignore ├── .eslintrc.js ├── .gitignore ├── .postcssrc.js ├── .prettierignore ├── .prettierrc ├── .stylelintrc ├── LICENSE ├── README.md ├── build ├── utils.js ├── webpack.base.conf.js ├── webpack.dev.conf.js └── webpack.prod.conf.js ├── favicon.ico ├── index.html ├── mock └── index.js ├── package.json ├── public └── tinymce4.7.5 │ ├── langs │ └── zh_CN.js │ ├── plugins │ ├── codesample │ │ └── css │ │ │ └── prism.css │ ├── emoticons │ │ └── img │ │ │ ├── smiley-cool.gif │ │ │ ├── smiley-cry.gif │ │ │ ├── smiley-embarassed.gif │ │ │ ├── smiley-foot-in-mouth.gif │ │ │ ├── smiley-frown.gif │ │ │ ├── smiley-innocent.gif │ │ │ ├── smiley-kiss.gif │ │ │ ├── smiley-laughing.gif │ │ │ ├── smiley-money-mouth.gif │ │ │ ├── smiley-sealed.gif │ │ │ ├── smiley-smile.gif │ │ │ ├── smiley-surprised.gif │ │ │ ├── smiley-tongue-out.gif │ │ │ ├── smiley-undecided.gif │ │ │ ├── smiley-wink.gif │ │ │ └── smiley-yell.gif │ └── visualblocks │ │ └── css │ │ └── visualblocks.css │ ├── skins │ └── lightgray │ │ ├── content.inline.min.css │ │ ├── content.min.css │ │ ├── fonts │ │ ├── tinymce-mobile.woff │ │ ├── tinymce-small.eot │ │ ├── tinymce-small.svg │ │ ├── tinymce-small.ttf │ │ ├── tinymce-small.woff │ │ ├── tinymce.eot │ │ ├── tinymce.svg │ │ ├── tinymce.ttf │ │ └── tinymce.woff │ │ ├── img │ │ ├── anchor.gif │ │ ├── loader.gif │ │ ├── object.gif │ │ └── trans.gif │ │ ├── skin.min.css │ │ └── skin.min.css.map │ └── tinymce.min.js └── src ├── App.vue ├── components ├── dynamic-form │ ├── form.vue │ ├── index.js │ ├── input-number.vue │ └── item.vue ├── icon-svg │ ├── icon-svg.vue │ ├── icons │ │ ├── cascader.svg │ │ ├── checkbox.svg │ │ ├── disabled.svg │ │ ├── input.svg │ │ ├── number.svg │ │ ├── radio.svg │ │ ├── richtext.svg │ │ ├── select.svg │ │ └── switch.svg │ └── index.js ├── themePicker.vue └── tinymce │ ├── index.vue │ ├── init.js │ └── zh_CN.json ├── gifs ├── ajax.gif ├── drag.gif └── live.gif ├── index.js ├── router └── index.js ├── store ├── index.js └── modules │ └── form.js ├── utils ├── guid.js └── request.js └── views ├── editor ├── form │ ├── aside │ │ ├── availabel-item-list.js │ │ ├── editor-global.json │ │ ├── editor-options.vue │ │ ├── editor-rules.vue │ │ ├── editors-item │ │ │ ├── cascader.vue │ │ │ ├── checkbox.vue │ │ │ ├── date.vue │ │ │ ├── input.vue │ │ │ ├── number.vue │ │ │ ├── radio.vue │ │ │ ├── richtext.vue │ │ │ ├── select.vue │ │ │ └── switch.vue │ │ ├── index.vue │ │ └── items-list.vue │ └── main │ │ ├── fake-form-item.vue │ │ ├── fake-form.vue │ │ └── index.vue ├── index.vue └── table │ ├── aside.vue │ ├── availabel-list.js │ └── main.vue └── preview └── preview.vue /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | [ 4 | "env", 5 | { 6 | "targets": { 7 | "browsers": ["last 2 versions", "not ie <= 10"] 8 | } 9 | } 10 | ] 11 | ], 12 | "plugins": [ 13 | "transform-object-rest-spread", 14 | "transform-vue-jsx", 15 | [ 16 | "transform-runtime", 17 | { 18 | "polyfill": false, 19 | "regenerator": true 20 | } 21 | ], 22 | // ["import", { "libraryName": "ant-design-vue", "libraryDirectory": "es" }] 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = crlf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | /build/ 2 | /config/ 3 | /dist/ 4 | /*.js 5 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | // http://eslint.org/docs/user-guide/configuring 2 | module.exports = { 3 | root: true, 4 | parserOptions: { 5 | parser: 'babel-eslint', 6 | sourceType: 'module', 7 | ecmaVersion: 2018, 8 | }, 9 | env: { 10 | browser: true, 11 | }, 12 | extends: [ 13 | 'eslint:recommended', 14 | 'plugin:vue/recommended', // or 'plugin:vue/base' 15 | 'plugin:compat/recommended', 16 | 'airbnb-base', 17 | ], 18 | // required to lint *.vue files 19 | plugins: [ 20 | 'vue', 21 | 'compat', 22 | ], 23 | // check if imports actually resolve 24 | settings: { 25 | 'import/resolver': { 26 | webpack: { 27 | config: 'build/webpack.base.conf.js', 28 | }, 29 | }, 30 | // 真有毒 webpack 多文件不支持 31 | // 'import/core-modules': ['muggle-api'] 32 | 'polyfills': [ 33 | 'promises', 34 | 'fetch', 35 | 'url', 36 | 'urlsearchparams', 37 | ], 38 | }, 39 | // add your custom rules here 40 | rules: { 41 | camelcase: 0, 42 | 'function-paren-newline': ['error', 'consistent'], 43 | 'arrow-body-style': 0, 44 | 'linebreak-style': 0, 45 | 'no-param-reassign': 0, 46 | 'no-plusplus': 0, 47 | 'no-await-in-loop': 0, 48 | 'no-underscore-dangle': 0, 49 | 'prefer-promise-reject-errors': 0, 50 | 'no-return-assign': 0, 51 | 'object-curly-newline': [ 52 | 'error', 53 | { 54 | consistent: true, 55 | }, 56 | ], 57 | 'no-mixed-operators': 0, 58 | // don't require .vue extension when importing 59 | 'import/extensions': [ 60 | 'error', 61 | 'always', 62 | { 63 | js: 'never', 64 | vue: 'never', 65 | }, 66 | ], 67 | // allow optionalDependencies 68 | 'import/no-extraneous-dependencies': [ 69 | 'error', 70 | { 71 | optionalDependencies: ['test/unit/index.js'], 72 | }, 73 | ], 74 | // allow debugger during development 75 | // "max-len": process.env.NODE_ENV === 'production' ? 1 : 0, 76 | "no-unused-vars": process.env.NODE_ENV === 'production' ? 1 : 0, 77 | 'max-len': 0, 78 | // 'no-unused-vars': 0, 79 | 'arrow-parens': 0, 80 | 'no-console': process.env.NODE_ENV === 'production' ? 1 : 0, 81 | 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, 82 | // allow single export 83 | 'import/prefer-default-export': 'off', 84 | // vue lint configs 85 | // 'vue/attribute-hyphenation': ['error', 'always'], 86 | 'vue/html-end-tags': 'error', 87 | 'vue/html-quotes': ['error', 'double'], 88 | // 'vue/html-self-closing': 0, 89 | 'vue/html-self-closing': [ 90 | 'error', 91 | { 92 | html: { 93 | normal: 'never', 94 | void: 'never', 95 | component: 'never', 96 | }, 97 | // Input: 'any', 98 | svg: 'always', 99 | math: 'always', 100 | }, 101 | ], 102 | 'vue/max-attributes-per-line': [ 103 | 2, 104 | { 105 | singleline: 10, 106 | multiline: { 107 | max: 2, 108 | allowFirstLine: false, 109 | }, 110 | }, 111 | ], 112 | 'vue/mustache-interpolation-spacing': ['error', 'always'], 113 | 'vue/name-property-casing': ['error', 'kebab-case'], 114 | 'vue/no-async-in-computed-properties': 'error', 115 | 'vue/no-confusing-v-for-v-if': 'error', 116 | 'vue/no-dupe-keys': 'error', 117 | 'vue/no-duplicate-attributes': [ 118 | 'error', 119 | { 120 | allowCoexistClass: true, 121 | allowCoexistStyle: true, 122 | }, 123 | ], 124 | 'vue/no-multi-spaces': 'error', 125 | 'vue/no-parsing-error': 'error', 126 | 'vue/no-reserved-keys': [ 127 | 'error', 128 | { 129 | reserved: ['$el', '$nextTick', '$route', '$router', 'asyncData'], 130 | groups: [], 131 | }, 132 | ], 133 | 'vue/no-shared-component-data': 'error', 134 | 'vue/no-side-effects-in-computed-properties': 'error', 135 | 'vue/no-template-key': 'error', 136 | 'vue/no-textarea-mustache': 'error', 137 | 'vue/order-in-components': [ 138 | 'warn', 139 | { 140 | order: [ 141 | ['name', 'delimiters', 'functional', 'model'], 142 | ['components', 'directives', 'filters'], 143 | ['parent', 'mixins', 'extends', 'provide', 'inject'], 144 | 'el', 145 | 'template', 146 | 'props', 147 | 'propsData', 148 | 'data', 149 | 'computed', 150 | 'watch', 151 | 'asyncData', 152 | 'onWechatReady', 153 | 'LIFECYCLE_HOOKS', 154 | 'methods', 155 | 'render', 156 | 'renderError', 157 | ], 158 | }, 159 | ], 160 | 'vue/require-component-is': 'error', 161 | 'vue/require-default-prop': 0, 162 | 'vue/require-prop-types': 'error', 163 | 'vue/require-render-return': 'error', 164 | 'vue/require-v-for-key': 'error', 165 | 'vue/require-valid-default-prop': 'error', 166 | 'vue/return-in-computed-property': 'error', 167 | 'vue/this-in-template': ['error', 'never'], 168 | 'vue/v-bind-style': ['error', 'shorthand'], 169 | 'vue/v-on-style': ['error', 'shorthand'], 170 | 'vue/valid-template-root': 'error', 171 | 'vue/valid-v-bind': 'error', 172 | 'vue/valid-v-cloak': 'error', 173 | 'vue/valid-v-else-if': 'error', 174 | 'vue/valid-v-else': 'error', 175 | 'vue/valid-v-for': 'error', 176 | 'vue/valid-v-html': 'error', 177 | 'vue/valid-v-if': 'error', 178 | 'vue/valid-v-model': 'error', 179 | 'vue/valid-v-on': 'error', 180 | 'vue/valid-v-once': 'error', 181 | 'vue/valid-v-pre': 'error', 182 | 'vue/valid-v-show': 'error', 183 | 'vue/valid-v-text': 'error', 184 | 185 | // 'vue/html-indent': ['error', 2, { 186 | // 'attribute': 1, 187 | // 'closeBracket': 0, 188 | // 'ignores': [] 189 | // }], 190 | }, 191 | }; 192 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules/ 3 | /dist/ 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | 8 | # Editor directories and files 9 | .idea 10 | .vscode 11 | *.suo 12 | *.ntvs* 13 | *.njsproj 14 | *.sln 15 | -------------------------------------------------------------------------------- /.postcssrc.js: -------------------------------------------------------------------------------- 1 | // https://github.com/michael-ciniawsky/postcss-load-config 2 | 3 | module.exports = { 4 | plugins: { 5 | "postcss-import": {}, 6 | "postcss-url": {}, 7 | // to edit target browsers: use "browserslist" field in package.json 8 | autoprefixer: {}, 9 | }, 10 | }; 11 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | **/*.md 2 | **/*.svg 3 | **/*.html 4 | **/*.ejs 5 | package.json -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "trailingComma": "all", 3 | "singleQuote": true 4 | } 5 | -------------------------------------------------------------------------------- /.stylelintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "stylelint-config-standard", 3 | "rules": { 4 | "comment-empty-line-before": null, 5 | "declaration-empty-line-before": null, 6 | "function-comma-newline-after": null, 7 | "function-name-case": null, 8 | "function-parentheses-newline-inside": null, 9 | "function-max-empty-lines": null, 10 | "function-whitespace-after": null, 11 | "indentation": null, 12 | "number-leading-zero": null, 13 | "number-no-trailing-zeros": null, 14 | "rule-empty-line-before": null, 15 | "selector-combinator-space-after": null, 16 | "selector-list-comma-newline-after": null, 17 | "selector-pseudo-element-colon-notation": null, 18 | "unit-no-unknown": null, 19 | "value-list-max-empty-lines": null, 20 | "font-family-no-missing-generic-family-keyword": null, 21 | "no-descending-specificity": null 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 bowencool 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 超级表单 2 | 3 | > `表单` 可视化配置以及实时预览。 4 | 5 | ## 拖拽排序 6 | ![draggable](./src/gifs/drag.gif) 7 | ## 实时编辑预览 8 | ![editable](./src/gifs/live.gif) 9 | ## 从服务器获取 & 地区快捷配置 10 | ![ajax](./src/gifs/ajax.gif) 11 | 12 | ## TODO 13 | - [x] 封装`input-number`支持显示单位、控制小数位数 14 | - [x] 常用验证规则封装 15 | - [x] 为文本框配置`SQL`验证规则 16 | - [x] (单选多选等)`options`增删改 17 | - [x] `省/市/区`级联快捷配置 18 | - [x] 为`options`配置`Ajax`接口 19 | - [x] 富文本支持 20 | - [ ] 表单栅格布局 21 | - [ ] 为下拉框配置`从服务器搜索` 22 | - [ ] 文件上传支持 23 | - [ ] 表格 24 | 25 | 26 | -------------------------------------------------------------------------------- /build/utils.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | 3 | function assetsPath(_path) { 4 | return path.posix.join('static', _path); 5 | } 6 | 7 | function resolve(dir) { 8 | return path.join(__dirname, '..', dir); 9 | } 10 | // const NODE_ENV = process.env.NODE_ENV || 'development'; 11 | // const isProd = NODE_ENV === 'production'; 12 | 13 | module.exports = { 14 | assetsPath, 15 | resolve, 16 | // NODE_ENV, 17 | // isProd, 18 | }; 19 | -------------------------------------------------------------------------------- /build/webpack.base.conf.js: -------------------------------------------------------------------------------- 1 | const { resolve, assetsPath } = require('./utils'); 2 | const webpack = require('webpack'); 3 | const VueLoaderPlugin = require('vue-loader/lib/plugin'); 4 | const CopyWebpackPlugin = require('copy-webpack-plugin'); 5 | 6 | module.exports = { 7 | resolve: { 8 | extensions: ['*', '.js', '.json', '.vue', '.less'], 9 | alias: { 10 | '@': resolve('src'), 11 | }, 12 | }, 13 | module: { 14 | rules: [ 15 | { 16 | test: /\.vue$/, 17 | loader: 'vue-loader', 18 | options: { 19 | compilerOptions: { 20 | preserveWhitespace: false, 21 | }, 22 | }, 23 | }, 24 | { 25 | test: /\.pug$/, 26 | loader: 'pug-plain-loader', 27 | }, 28 | { 29 | test: /\.js$/, 30 | loader: 'babel-loader', 31 | exclude: /node_modules/, 32 | }, 33 | { 34 | test: /\.svg$/, 35 | loader: 'svg-sprite-loader', 36 | include: [resolve('src/components/icon-svg/icons')], 37 | options: { 38 | symbolId: 'icon-[name]', 39 | }, 40 | }, 41 | { 42 | test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, 43 | loader: 'url-loader', 44 | options: { 45 | limit: 10000, 46 | name: assetsPath('fonts/[name].[hash:7].[ext]'), 47 | }, 48 | }, 49 | { 50 | test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/, 51 | loader: 'url-loader', 52 | options: { 53 | limit: 10000, 54 | name: assetsPath('media/[name].[hash:7].[ext]'), 55 | }, 56 | }, 57 | { 58 | test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, 59 | loader: 'url-loader', 60 | exclude: [resolve('src/components/icon-svg/icons')], 61 | options: { 62 | limit: 10000, 63 | name: assetsPath('img/[name].[hash:7].[ext]'), 64 | }, 65 | }, 66 | ], 67 | }, 68 | plugins: [ 69 | new VueLoaderPlugin(), 70 | new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/), 71 | new CopyWebpackPlugin([ 72 | { 73 | from: 'public/', 74 | // to: 'static/', 75 | toType: 'dir', 76 | }, 77 | ]), 78 | ], 79 | }; 80 | -------------------------------------------------------------------------------- /build/webpack.dev.conf.js: -------------------------------------------------------------------------------- 1 | const { resolve } = require('./utils'); 2 | const merge = require('webpack-merge'); 3 | const webpack = require('webpack'); 4 | const baseConfig = require('./webpack.base.conf'); 5 | const HtmlWebpackPlugin = require('html-webpack-plugin'); 6 | const StyleLintPlugin = require('stylelint-webpack-plugin'); 7 | const apiMocker = require('mocker-api'); 8 | 9 | module.exports = merge(baseConfig, { 10 | mode: 'development', 11 | module: { 12 | rules: [ 13 | { 14 | test: /\.(js|vue)$/, 15 | loader: 'eslint-loader', 16 | enforce: 'pre', 17 | include: [resolve('src'), resolve('test')], 18 | options: { 19 | // emitWarning: true, 20 | cache: true, 21 | formatter: require('eslint-friendly-formatter'), 22 | }, 23 | }, 24 | { 25 | test: /\.css$/, 26 | use: ['vue-style-loader', 'css-loader', 'postcss-loader'], 27 | }, 28 | { 29 | test: /\.less$/, 30 | use: [ 31 | 'vue-style-loader', 32 | 'css-loader', 33 | 'postcss-loader', 34 | 'less-loader', 35 | ], 36 | }, 37 | ], 38 | }, 39 | devtool: '#cheap-eval-source-map', 40 | devServer: { 41 | port: 9527, 42 | hot: true, 43 | overlay: { 44 | warnings: false, 45 | errors: true, 46 | }, 47 | before(app) { 48 | apiMocker(app, resolve('mock/index.js')) 49 | }, 50 | stats: { 51 | entrypoints: false, 52 | children: false, 53 | modules: false, 54 | assets: false, 55 | version: false, 56 | builtAt: false, 57 | }, 58 | }, 59 | plugins: [ 60 | new HtmlWebpackPlugin({ 61 | template: resolve('index.html'), 62 | favicon: resolve('favicon.ico'), 63 | }), 64 | new webpack.HotModuleReplacementPlugin(), 65 | new StyleLintPlugin({ 66 | configFile: resolve('.stylelintrc'), 67 | files: '**/*.{less,vue}', 68 | }), 69 | ], 70 | }); 71 | -------------------------------------------------------------------------------- /build/webpack.prod.conf.js: -------------------------------------------------------------------------------- 1 | const { assetsPath, resolve } = require('./utils'); 2 | const merge = require('webpack-merge'); 3 | const baseConfig = require('./webpack.base.conf'); 4 | const HtmlWebpackPlugin = require('html-webpack-plugin'); 5 | const MiniCssExtractPlugin = require('mini-css-extract-plugin'); 6 | const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin'); 7 | const TerserPlugin = require('terser-webpack-plugin'); 8 | const BundleAnalyzerPlugin = require('webpack-bundle-analyzer') 9 | .BundleAnalyzerPlugin; 10 | 11 | module.exports = merge(baseConfig, { 12 | mode: 'production', 13 | output: { 14 | publicPath: '/', 15 | filename: assetsPath('js/[name].[chunkhash].js'), 16 | }, 17 | module: { 18 | rules: [ 19 | { 20 | test: /\.css$/, 21 | use: [MiniCssExtractPlugin.loader, 'css-loader', 'postcss-loader'], 22 | }, 23 | { 24 | test: /\.less$/, 25 | use: [ 26 | MiniCssExtractPlugin.loader, 27 | 'css-loader', 28 | 'postcss-loader', 29 | 'less-loader', 30 | ], 31 | }, 32 | ], 33 | }, 34 | devtool: '#source-map', 35 | stats: { 36 | entrypoints: false, 37 | children: false, 38 | modules: false, 39 | warnings: false, 40 | }, 41 | plugins: [ 42 | new HtmlWebpackPlugin({ 43 | template: resolve('index.html'), 44 | favicon: resolve('favicon.ico'), 45 | // todo https://github.com/jantimon/html-webpack-plugin/issues/1081 46 | minify: true, 47 | }), 48 | new MiniCssExtractPlugin({ 49 | filename: assetsPath('css/[name].[chunkhash].css'), 50 | }), 51 | // new BundleAnalyzerPlugin(), 52 | ], 53 | optimization: { 54 | minimizer: [ 55 | new OptimizeCSSAssetsPlugin({ 56 | assetNameRegExp: /\.css(\?.*)?$/, 57 | }), 58 | new TerserPlugin({ 59 | sourceMap: true, 60 | cache: true, 61 | parallel: true, 62 | terserOptions: { 63 | compress: { 64 | drop_console: true, 65 | }, 66 | }, 67 | }), 68 | ], 69 | }, 70 | }); 71 | -------------------------------------------------------------------------------- /favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bowencool/super-form/caa89a5c3ac94c690c384cae12500450ec64315f/favicon.ico -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | super-form 8 | 9 | 10 | 11 |
12 | 13 | 14 | -------------------------------------------------------------------------------- /mock/index.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | // 'DELETE /api/user/:id': (req, res) => { 3 | // console.log('---->', req.body) 4 | // console.log('---->', req.params.id) 5 | // res.send({ status: 'ok', message: '删除成功!' }); 6 | // }, 7 | 'GET /api/cascader/options': [ 8 | { 9 | value: '1', 10 | label: '查看控制台', 11 | disabled: true, 12 | }, 13 | { 14 | value: '340000', 15 | label: '安徽省', 16 | children: [ 17 | { 18 | value: '340100', 19 | label: '合肥市', 20 | children: [ 21 | { 22 | value: '340104', 23 | label: '蜀山区', 24 | }, 25 | ], 26 | }, 27 | ], 28 | }, 29 | ], 30 | 'GET /api/some/options': [ 31 | { 32 | value: '01', 33 | label: '查', 34 | }, 35 | { 36 | value: '02', 37 | label: '看', 38 | }, 39 | { 40 | value: '03', 41 | label: '控', 42 | }, 43 | { 44 | value: '04', 45 | label: '制', 46 | disabled: true, 47 | }, 48 | { 49 | value: '05', 50 | label: '台', 51 | disabled: true, 52 | }, 53 | ], 54 | 'POST /api/validate': (req, res) => { 55 | res.json(/1$/.test(req.body.value)); 56 | }, 57 | }; 58 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "super-form", 3 | "version": "1.0.2", 4 | "description": "A Vue.js project", 5 | "author": "赵博文 ", 6 | "private": true, 7 | "scripts": { 8 | "start": "npm run dev", 9 | "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", 10 | "lint": "eslint src/**/*.{js,vue} --fix && npm run lint:style", 11 | "lint:style": "stylelint src/**/*.{less,vue} --fix", 12 | "prettier": "prettier --write ./src/**/**/**/*", 13 | "build": "webpack --config build/webpack.prod.conf.js --progress" 14 | }, 15 | "lint-staged": { 16 | "**/*.{js,vue}": [ 17 | "eslint --fix", 18 | "git add" 19 | ], 20 | "**/*.{vue,less}": [ 21 | "stylelint --fix", 22 | "git add" 23 | ] 24 | }, 25 | "dependencies": { 26 | "element-china-area-data": "^4.0.0", 27 | "element-ui": "^2.2.0", 28 | "vue": "^2.5.13", 29 | "vue-router": "^3.0.1", 30 | "vuedraggable": "^2.16.0", 31 | "vuex": "^3.0.1" 32 | }, 33 | "devDependencies": { 34 | "autoprefixer": "^9.2.1", 35 | "babel-core": "^6.26.0", 36 | "babel-eslint": "^7.2.3", 37 | "babel-helper-vue-jsx-merge-props": "^2.0.2", 38 | "babel-loader": "^7.1.5", 39 | "babel-plugin-import": "^1.10.0", 40 | "babel-plugin-syntax-dynamic-import": "^6.18.0", 41 | "babel-plugin-syntax-jsx": "^6.18.0", 42 | "babel-plugin-transform-object-rest-spread": "^6.26.0", 43 | "babel-plugin-transform-runtime": "^6.23.0", 44 | "babel-plugin-transform-vue-jsx": "^3.5.0", 45 | "babel-preset-env": "^1.4.0", 46 | "copy-webpack-plugin": "^4.6.0", 47 | "css-loader": "^1.0.0", 48 | "eslint": "^5.8.0", 49 | "eslint-config-airbnb-base": "^13.1.0", 50 | "eslint-friendly-formatter": "^4.0.1", 51 | "eslint-import-resolver-webpack": "^0.10.1", 52 | "eslint-loader": "^2.1.1", 53 | "eslint-plugin-compat": "^2.5.1", 54 | "eslint-plugin-import": "^2.14.0", 55 | "eslint-plugin-vue": "^4.7.1", 56 | "html-webpack-plugin": "^3.2.0", 57 | "jsonlint": "^1.6.3", 58 | "less": "^3.8.1", 59 | "less-loader": "^4.1.0", 60 | "lint-staged": "^7.2.0", 61 | "mini-css-extract-plugin": "^0.4.4", 62 | "mocker-api": "^1.6.6", 63 | "optimize-css-assets-webpack-plugin": "^5.0.1", 64 | "postcss-import": "^11.0.0", 65 | "postcss-loader": "^2.1.6", 66 | "postcss-url": "^7.2.1", 67 | "prettier": "^1.13.7", 68 | "pug": "^2.0.3", 69 | "pug-plain-loader": "^1.0.0", 70 | "script-loader": "^0.7.2", 71 | "stylelint": "^9.3.0", 72 | "stylelint-config-standard": "^18.2.0", 73 | "stylelint-webpack-plugin": "^0.10.5", 74 | "svg-sprite-loader": "^4.1.3", 75 | "terser-webpack-plugin": "^1.1.0", 76 | "url-loader": "^1.1.2", 77 | "vue-loader": "^15.4.2", 78 | "vue-style-loader": "^4.1.2", 79 | "vue-template-compiler": "^2.5.17", 80 | "webpack": "^4.23.0", 81 | "webpack-bundle-analyzer": "^3.0.3", 82 | "webpack-cli": "^3.1.2", 83 | "webpack-dev-server": "^3.1.14", 84 | "webpack-merge": "^4.1.4" 85 | }, 86 | "engines": { 87 | "node": ">= 6.0.0", 88 | "npm": ">= 3.0.0" 89 | } 90 | } 91 | -------------------------------------------------------------------------------- /public/tinymce4.7.5/langs/zh_CN.js: -------------------------------------------------------------------------------- 1 | tinymce.addI18n('zh_CN',{ 2 | "Cut": "\u526a\u5207", 3 | "Heading 5": "\u6807\u98985", 4 | "Header 2": "\u6807\u98982", 5 | "Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u4f60\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301\u5bf9\u526a\u8d34\u677f\u7684\u8bbf\u95ee\uff0c\u8bf7\u4f7f\u7528Ctrl+X\/C\/V\u952e\u8fdb\u884c\u590d\u5236\u7c98\u8d34\u3002", 6 | "Heading 4": "\u6807\u98984", 7 | "Div": "Div\u533a\u5757", 8 | "Heading 2": "\u6807\u98982", 9 | "Paste": "\u7c98\u8d34", 10 | "Close": "\u5173\u95ed", 11 | "Font Family": "\u5b57\u4f53", 12 | "Pre": "\u9884\u683c\u5f0f\u6587\u672c", 13 | "Align right": "\u53f3\u5bf9\u9f50", 14 | "New document": "\u65b0\u6587\u6863", 15 | "Blockquote": "\u5f15\u7528", 16 | "Numbered list": "\u7f16\u53f7\u5217\u8868", 17 | "Heading 1": "\u6807\u98981", 18 | "Headings": "\u6807\u9898", 19 | "Increase indent": "\u589e\u52a0\u7f29\u8fdb", 20 | "Formats": "\u683c\u5f0f", 21 | "Headers": "\u6807\u9898", 22 | "Select all": "\u5168\u9009", 23 | "Header 3": "\u6807\u98983", 24 | "Blocks": "\u533a\u5757", 25 | "Undo": "\u64a4\u6d88", 26 | "Strikethrough": "\u5220\u9664\u7ebf", 27 | "Bullet list": "\u9879\u76ee\u7b26\u53f7", 28 | "Header 1": "\u6807\u98981", 29 | "Superscript": "\u4e0a\u6807", 30 | "Clear formatting": "\u6e05\u9664\u683c\u5f0f", 31 | "Font Sizes": "\u5b57\u53f7", 32 | "Subscript": "\u4e0b\u6807", 33 | "Header 6": "\u6807\u98986", 34 | "Redo": "\u91cd\u590d", 35 | "Paragraph": "\u6bb5\u843d", 36 | "Ok": "\u786e\u5b9a", 37 | "Bold": "\u7c97\u4f53", 38 | "Code": "\u4ee3\u7801", 39 | "Italic": "\u659c\u4f53", 40 | "Align center": "\u5c45\u4e2d", 41 | "Header 5": "\u6807\u98985", 42 | "Heading 6": "\u6807\u98986", 43 | "Heading 3": "\u6807\u98983", 44 | "Decrease indent": "\u51cf\u5c11\u7f29\u8fdb", 45 | "Header 4": "\u6807\u98984", 46 | "Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u5f53\u524d\u4e3a\u7eaf\u6587\u672c\u7c98\u8d34\u6a21\u5f0f\uff0c\u518d\u6b21\u70b9\u51fb\u53ef\u4ee5\u56de\u5230\u666e\u901a\u7c98\u8d34\u6a21\u5f0f\u3002", 47 | "Underline": "\u4e0b\u5212\u7ebf", 48 | "Cancel": "\u53d6\u6d88", 49 | "Justify": "\u4e24\u7aef\u5bf9\u9f50", 50 | "Inline": "\u6587\u672c", 51 | "Copy": "\u590d\u5236", 52 | "Align left": "\u5de6\u5bf9\u9f50", 53 | "Visual aids": "\u7f51\u683c\u7ebf", 54 | "Lower Greek": "\u5c0f\u5199\u5e0c\u814a\u5b57\u6bcd", 55 | "Square": "\u65b9\u5757", 56 | "Default": "\u9ed8\u8ba4", 57 | "Lower Alpha": "\u5c0f\u5199\u82f1\u6587\u5b57\u6bcd", 58 | "Circle": "\u7a7a\u5fc3\u5706", 59 | "Disc": "\u5b9e\u5fc3\u5706", 60 | "Upper Alpha": "\u5927\u5199\u82f1\u6587\u5b57\u6bcd", 61 | "Upper Roman": "\u5927\u5199\u7f57\u9a6c\u5b57\u6bcd", 62 | "Lower Roman": "\u5c0f\u5199\u7f57\u9a6c\u5b57\u6bcd", 63 | "Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "\u6807\u8bc6\u7b26\u5e94\u8be5\u4ee5\u5b57\u6bcd\u5f00\u5934\uff0c\u540e\u8ddf\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u7834\u6298\u53f7\u3001\u70b9\u3001\u5192\u53f7\u6216\u4e0b\u5212\u7ebf\u3002", 64 | "Name": "\u540d\u79f0", 65 | "Anchor": "\u951a\u70b9", 66 | "Id": "\u6807\u8bc6\u7b26", 67 | "You have unsaved changes are you sure you want to navigate away?": "\u4f60\u8fd8\u6709\u6587\u6863\u5c1a\u672a\u4fdd\u5b58\uff0c\u786e\u5b9a\u8981\u79bb\u5f00\uff1f", 68 | "Restore last draft": "\u6062\u590d\u4e0a\u6b21\u7684\u8349\u7a3f", 69 | "Special character": "\u7279\u6b8a\u7b26\u53f7", 70 | "Source code": "\u6e90\u4ee3\u7801", 71 | "Language": "\u8bed\u8a00", 72 | "Insert\/Edit code sample": "\u63d2\u5165\/\u7f16\u8f91\u4ee3\u7801\u793a\u4f8b", 73 | "B": "B", 74 | "R": "R", 75 | "G": "G", 76 | "Color": "\u989c\u8272", 77 | "Right to left": "\u4ece\u53f3\u5230\u5de6", 78 | "Left to right": "\u4ece\u5de6\u5230\u53f3", 79 | "Emoticons": "\u8868\u60c5", 80 | "Robots": "\u673a\u5668\u4eba", 81 | "Document properties": "\u6587\u6863\u5c5e\u6027", 82 | "Title": "\u6807\u9898", 83 | "Keywords": "\u5173\u952e\u8bcd", 84 | "Encoding": "\u7f16\u7801", 85 | "Description": "\u63cf\u8ff0", 86 | "Author": "\u4f5c\u8005", 87 | "Fullscreen": "\u5168\u5c4f", 88 | "Horizontal line": "\u6c34\u5e73\u5206\u5272\u7ebf", 89 | "Horizontal space": "\u6c34\u5e73\u8fb9\u8ddd", 90 | "Insert\/edit image": "\u63d2\u5165\/\u7f16\u8f91\u56fe\u7247", 91 | "General": "\u666e\u901a", 92 | "Advanced": "\u9ad8\u7ea7", 93 | "Source": "\u5730\u5740", 94 | "Border": "\u8fb9\u6846", 95 | "Constrain proportions": "\u4fdd\u6301\u7eb5\u6a2a\u6bd4", 96 | "Vertical space": "\u5782\u76f4\u8fb9\u8ddd", 97 | "Image description": "\u56fe\u7247\u63cf\u8ff0", 98 | "Style": "\u6837\u5f0f", 99 | "Dimensions": "\u5927\u5c0f", 100 | "Insert image": "\u63d2\u5165\u56fe\u7247", 101 | "Image": "\u56fe\u7247", 102 | "Zoom in": "\u653e\u5927", 103 | "Contrast": "\u5bf9\u6bd4\u5ea6", 104 | "Back": "\u540e\u9000", 105 | "Gamma": "\u4f3d\u9a6c\u503c", 106 | "Flip horizontally": "\u6c34\u5e73\u7ffb\u8f6c", 107 | "Resize": "\u8c03\u6574\u5927\u5c0f", 108 | "Sharpen": "\u9510\u5316", 109 | "Zoom out": "\u7f29\u5c0f", 110 | "Image options": "\u56fe\u7247\u9009\u9879", 111 | "Apply": "\u5e94\u7528", 112 | "Brightness": "\u4eae\u5ea6", 113 | "Rotate clockwise": "\u987a\u65f6\u9488\u65cb\u8f6c", 114 | "Rotate counterclockwise": "\u9006\u65f6\u9488\u65cb\u8f6c", 115 | "Edit image": "\u7f16\u8f91\u56fe\u7247", 116 | "Color levels": "\u989c\u8272\u5c42\u6b21", 117 | "Crop": "\u88c1\u526a", 118 | "Orientation": "\u65b9\u5411", 119 | "Flip vertically": "\u5782\u76f4\u7ffb\u8f6c", 120 | "Invert": "\u53cd\u8f6c", 121 | "Date\/time": "\u65e5\u671f\/\u65f6\u95f4", 122 | "Insert date\/time": "\u63d2\u5165\u65e5\u671f\/\u65f6\u95f4", 123 | "Remove link": "\u5220\u9664\u94fe\u63a5", 124 | "Url": "\u5730\u5740", 125 | "Text to display": "\u663e\u793a\u6587\u5b57", 126 | "Anchors": "\u951a\u70b9", 127 | "Insert link": "\u63d2\u5165\u94fe\u63a5", 128 | "Link": "\u94fe\u63a5", 129 | "New window": "\u5728\u65b0\u7a97\u53e3\u6253\u5f00", 130 | "None": "\u65e0", 131 | "The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?": "\u4f60\u6240\u586b\u5199\u7684URL\u5730\u5740\u5c5e\u4e8e\u5916\u90e8\u94fe\u63a5\uff0c\u9700\u8981\u52a0\u4e0ahttp:\/\/:\u524d\u7f00\u5417\uff1f", 132 | "Paste or type a link": "\u7c98\u8d34\u6216\u8f93\u5165\u94fe\u63a5", 133 | "Target": "\u6253\u5f00\u65b9\u5f0f", 134 | "The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u4f60\u6240\u586b\u5199\u7684URL\u5730\u5740\u4e3a\u90ae\u4ef6\u5730\u5740\uff0c\u9700\u8981\u52a0\u4e0amailto:\u524d\u7f00\u5417\uff1f", 135 | "Insert\/edit link": "\u63d2\u5165\/\u7f16\u8f91\u94fe\u63a5", 136 | "Insert\/edit video": "\u63d2\u5165\/\u7f16\u8f91\u89c6\u9891", 137 | "Media": "\u5a92\u4f53", 138 | "Alternative source": "\u955c\u50cf", 139 | "Paste your embed code below:": "\u5c06\u5185\u5d4c\u4ee3\u7801\u7c98\u8d34\u5728\u4e0b\u9762:", 140 | "Insert video": "\u63d2\u5165\u89c6\u9891", 141 | "Poster": "\u5c01\u9762", 142 | "Insert\/edit media": "\u63d2\u5165\/\u7f16\u8f91\u5a92\u4f53", 143 | "Embed": "\u5185\u5d4c", 144 | "Nonbreaking space": "\u4e0d\u95f4\u65ad\u7a7a\u683c", 145 | "Page break": "\u5206\u9875\u7b26", 146 | "Paste as text": "\u7c98\u8d34\u4e3a\u6587\u672c", 147 | "Preview": "\u9884\u89c8", 148 | "Print": "\u6253\u5370", 149 | "Save": "\u4fdd\u5b58", 150 | "Could not find the specified string.": "\u672a\u627e\u5230\u641c\u7d22\u5185\u5bb9.", 151 | "Replace": "\u66ff\u6362", 152 | "Next": "\u4e0b\u4e00\u4e2a", 153 | "Whole words": "\u5168\u5b57\u5339\u914d", 154 | "Find and replace": "\u67e5\u627e\u548c\u66ff\u6362", 155 | "Replace with": "\u66ff\u6362\u4e3a", 156 | "Find": "\u67e5\u627e", 157 | "Replace all": "\u5168\u90e8\u66ff\u6362", 158 | "Match case": "\u533a\u5206\u5927\u5c0f\u5199", 159 | "Prev": "\u4e0a\u4e00\u4e2a", 160 | "Spellcheck": "\u62fc\u5199\u68c0\u67e5", 161 | "Finish": "\u5b8c\u6210", 162 | "Ignore all": "\u5168\u90e8\u5ffd\u7565", 163 | "Ignore": "\u5ffd\u7565", 164 | "Add to Dictionary": "\u6dfb\u52a0\u5230\u5b57\u5178", 165 | "Insert row before": "\u5728\u4e0a\u65b9\u63d2\u5165", 166 | "Rows": "\u884c", 167 | "Height": "\u9ad8", 168 | "Paste row after": "\u7c98\u8d34\u5230\u4e0b\u65b9", 169 | "Alignment": "\u5bf9\u9f50\u65b9\u5f0f", 170 | "Border color": "\u8fb9\u6846\u989c\u8272", 171 | "Column group": "\u5217\u7ec4", 172 | "Row": "\u884c", 173 | "Insert column before": "\u5728\u5de6\u4fa7\u63d2\u5165", 174 | "Split cell": "\u62c6\u5206\u5355\u5143\u683c", 175 | "Cell padding": "\u5355\u5143\u683c\u5185\u8fb9\u8ddd", 176 | "Cell spacing": "\u5355\u5143\u683c\u5916\u95f4\u8ddd", 177 | "Row type": "\u884c\u7c7b\u578b", 178 | "Insert table": "\u63d2\u5165\u8868\u683c", 179 | "Body": "\u8868\u4f53", 180 | "Caption": "\u6807\u9898", 181 | "Footer": "\u8868\u5c3e", 182 | "Delete row": "\u5220\u9664\u884c", 183 | "Paste row before": "\u7c98\u8d34\u5230\u4e0a\u65b9", 184 | "Scope": "\u8303\u56f4", 185 | "Delete table": "\u5220\u9664\u8868\u683c", 186 | "H Align": "\u6c34\u5e73\u5bf9\u9f50", 187 | "Top": "\u9876\u90e8\u5bf9\u9f50", 188 | "Header cell": "\u8868\u5934\u5355\u5143\u683c", 189 | "Column": "\u5217", 190 | "Row group": "\u884c\u7ec4", 191 | "Cell": "\u5355\u5143\u683c", 192 | "Middle": "\u5782\u76f4\u5c45\u4e2d", 193 | "Cell type": "\u5355\u5143\u683c\u7c7b\u578b", 194 | "Copy row": "\u590d\u5236\u884c", 195 | "Row properties": "\u884c\u5c5e\u6027", 196 | "Table properties": "\u8868\u683c\u5c5e\u6027", 197 | "Bottom": "\u5e95\u90e8\u5bf9\u9f50", 198 | "V Align": "\u5782\u76f4\u5bf9\u9f50", 199 | "Header": "\u8868\u5934", 200 | "Right": "\u53f3\u5bf9\u9f50", 201 | "Insert column after": "\u5728\u53f3\u4fa7\u63d2\u5165", 202 | "Cols": "\u5217", 203 | "Insert row after": "\u5728\u4e0b\u65b9\u63d2\u5165", 204 | "Width": "\u5bbd", 205 | "Cell properties": "\u5355\u5143\u683c\u5c5e\u6027", 206 | "Left": "\u5de6\u5bf9\u9f50", 207 | "Cut row": "\u526a\u5207\u884c", 208 | "Delete column": "\u5220\u9664\u5217", 209 | "Center": "\u5c45\u4e2d", 210 | "Merge cells": "\u5408\u5e76\u5355\u5143\u683c", 211 | "Insert template": "\u63d2\u5165\u6a21\u677f", 212 | "Templates": "\u6a21\u677f", 213 | "Background color": "\u80cc\u666f\u8272", 214 | "Custom...": "\u81ea\u5b9a\u4e49...", 215 | "Custom color": "\u81ea\u5b9a\u4e49\u989c\u8272", 216 | "No color": "\u65e0", 217 | "Text color": "\u6587\u5b57\u989c\u8272", 218 | "Table of Contents": "\u5185\u5bb9\u5217\u8868", 219 | "Show blocks": "\u663e\u793a\u533a\u5757\u8fb9\u6846", 220 | "Show invisible characters": "\u663e\u793a\u4e0d\u53ef\u89c1\u5b57\u7b26", 221 | "Words: {0}": "\u5b57\u6570\uff1a{0}", 222 | "Insert": "\u63d2\u5165", 223 | "File": "\u6587\u4ef6", 224 | "Edit": "\u7f16\u8f91", 225 | "Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u5728\u7f16\u8f91\u533a\u6309ALT-F9\u6253\u5f00\u83dc\u5355\uff0c\u6309ALT-F10\u6253\u5f00\u5de5\u5177\u680f\uff0c\u6309ALT-0\u67e5\u770b\u5e2e\u52a9", 226 | "Tools": "\u5de5\u5177", 227 | "View": "\u89c6\u56fe", 228 | "Table": "\u8868\u683c", 229 | "Format": "\u683c\u5f0f" 230 | }); -------------------------------------------------------------------------------- /public/tinymce4.7.5/plugins/codesample/css/prism.css: -------------------------------------------------------------------------------- 1 | /* http://prismjs.com/download.html?themes=prism&languages=markup+css+clike+javascript */ 2 | /** 3 | * prism.js default theme for JavaScript, CSS and HTML 4 | * Based on dabblet (http://dabblet.com) 5 | * @author Lea Verou 6 | */ 7 | 8 | code[class*="language-"], 9 | pre[class*="language-"] { 10 | color: black; 11 | text-shadow: 0 1px white; 12 | font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; 13 | direction: ltr; 14 | text-align: left; 15 | white-space: pre; 16 | word-spacing: normal; 17 | word-break: normal; 18 | word-wrap: normal; 19 | line-height: 1.5; 20 | 21 | -moz-tab-size: 4; 22 | -o-tab-size: 4; 23 | tab-size: 4; 24 | 25 | -webkit-hyphens: none; 26 | -moz-hyphens: none; 27 | -ms-hyphens: none; 28 | hyphens: none; 29 | } 30 | 31 | pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection, 32 | code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection { 33 | text-shadow: none; 34 | background: #b3d4fc; 35 | } 36 | 37 | pre[class*="language-"]::selection, pre[class*="language-"] ::selection, 38 | code[class*="language-"]::selection, code[class*="language-"] ::selection { 39 | text-shadow: none; 40 | background: #b3d4fc; 41 | } 42 | 43 | @media print { 44 | code[class*="language-"], 45 | pre[class*="language-"] { 46 | text-shadow: none; 47 | } 48 | } 49 | 50 | /* Code blocks */ 51 | pre[class*="language-"] { 52 | padding: 1em; 53 | margin: .5em 0; 54 | overflow: auto; 55 | } 56 | 57 | :not(pre) > code[class*="language-"], 58 | pre[class*="language-"] { 59 | background: #f5f2f0; 60 | } 61 | 62 | /* Inline code */ 63 | :not(pre) > code[class*="language-"] { 64 | padding: .1em; 65 | border-radius: .3em; 66 | } 67 | 68 | .token.comment, 69 | .token.prolog, 70 | .token.doctype, 71 | .token.cdata { 72 | color: slategray; 73 | } 74 | 75 | .token.punctuation { 76 | color: #999; 77 | } 78 | 79 | .namespace { 80 | opacity: .7; 81 | } 82 | 83 | .token.property, 84 | .token.tag, 85 | .token.boolean, 86 | .token.number, 87 | .token.constant, 88 | .token.symbol, 89 | .token.deleted { 90 | color: #905; 91 | } 92 | 93 | .token.selector, 94 | .token.attr-name, 95 | .token.string, 96 | .token.char, 97 | .token.builtin, 98 | .token.inserted { 99 | color: #690; 100 | } 101 | 102 | .token.operator, 103 | .token.entity, 104 | .token.url, 105 | .language-css .token.string, 106 | .style .token.string { 107 | color: #a67f59; 108 | background: hsla(0, 0%, 100%, .5); 109 | } 110 | 111 | .token.atrule, 112 | .token.attr-value, 113 | .token.keyword { 114 | color: #07a; 115 | } 116 | 117 | .token.function { 118 | color: #DD4A68; 119 | } 120 | 121 | .token.regex, 122 | .token.important, 123 | .token.variable { 124 | color: #e90; 125 | } 126 | 127 | .token.important, 128 | .token.bold { 129 | font-weight: bold; 130 | } 131 | .token.italic { 132 | font-style: italic; 133 | } 134 | 135 | .token.entity { 136 | cursor: help; 137 | } 138 | 139 | -------------------------------------------------------------------------------- /public/tinymce4.7.5/plugins/emoticons/img/smiley-cool.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bowencool/super-form/caa89a5c3ac94c690c384cae12500450ec64315f/public/tinymce4.7.5/plugins/emoticons/img/smiley-cool.gif -------------------------------------------------------------------------------- /public/tinymce4.7.5/plugins/emoticons/img/smiley-cry.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bowencool/super-form/caa89a5c3ac94c690c384cae12500450ec64315f/public/tinymce4.7.5/plugins/emoticons/img/smiley-cry.gif -------------------------------------------------------------------------------- /public/tinymce4.7.5/plugins/emoticons/img/smiley-embarassed.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bowencool/super-form/caa89a5c3ac94c690c384cae12500450ec64315f/public/tinymce4.7.5/plugins/emoticons/img/smiley-embarassed.gif -------------------------------------------------------------------------------- /public/tinymce4.7.5/plugins/emoticons/img/smiley-foot-in-mouth.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bowencool/super-form/caa89a5c3ac94c690c384cae12500450ec64315f/public/tinymce4.7.5/plugins/emoticons/img/smiley-foot-in-mouth.gif -------------------------------------------------------------------------------- /public/tinymce4.7.5/plugins/emoticons/img/smiley-frown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bowencool/super-form/caa89a5c3ac94c690c384cae12500450ec64315f/public/tinymce4.7.5/plugins/emoticons/img/smiley-frown.gif -------------------------------------------------------------------------------- /public/tinymce4.7.5/plugins/emoticons/img/smiley-innocent.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bowencool/super-form/caa89a5c3ac94c690c384cae12500450ec64315f/public/tinymce4.7.5/plugins/emoticons/img/smiley-innocent.gif -------------------------------------------------------------------------------- /public/tinymce4.7.5/plugins/emoticons/img/smiley-kiss.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bowencool/super-form/caa89a5c3ac94c690c384cae12500450ec64315f/public/tinymce4.7.5/plugins/emoticons/img/smiley-kiss.gif -------------------------------------------------------------------------------- /public/tinymce4.7.5/plugins/emoticons/img/smiley-laughing.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bowencool/super-form/caa89a5c3ac94c690c384cae12500450ec64315f/public/tinymce4.7.5/plugins/emoticons/img/smiley-laughing.gif -------------------------------------------------------------------------------- /public/tinymce4.7.5/plugins/emoticons/img/smiley-money-mouth.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bowencool/super-form/caa89a5c3ac94c690c384cae12500450ec64315f/public/tinymce4.7.5/plugins/emoticons/img/smiley-money-mouth.gif -------------------------------------------------------------------------------- /public/tinymce4.7.5/plugins/emoticons/img/smiley-sealed.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bowencool/super-form/caa89a5c3ac94c690c384cae12500450ec64315f/public/tinymce4.7.5/plugins/emoticons/img/smiley-sealed.gif -------------------------------------------------------------------------------- /public/tinymce4.7.5/plugins/emoticons/img/smiley-smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bowencool/super-form/caa89a5c3ac94c690c384cae12500450ec64315f/public/tinymce4.7.5/plugins/emoticons/img/smiley-smile.gif -------------------------------------------------------------------------------- /public/tinymce4.7.5/plugins/emoticons/img/smiley-surprised.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bowencool/super-form/caa89a5c3ac94c690c384cae12500450ec64315f/public/tinymce4.7.5/plugins/emoticons/img/smiley-surprised.gif -------------------------------------------------------------------------------- /public/tinymce4.7.5/plugins/emoticons/img/smiley-tongue-out.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bowencool/super-form/caa89a5c3ac94c690c384cae12500450ec64315f/public/tinymce4.7.5/plugins/emoticons/img/smiley-tongue-out.gif -------------------------------------------------------------------------------- /public/tinymce4.7.5/plugins/emoticons/img/smiley-undecided.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bowencool/super-form/caa89a5c3ac94c690c384cae12500450ec64315f/public/tinymce4.7.5/plugins/emoticons/img/smiley-undecided.gif -------------------------------------------------------------------------------- /public/tinymce4.7.5/plugins/emoticons/img/smiley-wink.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bowencool/super-form/caa89a5c3ac94c690c384cae12500450ec64315f/public/tinymce4.7.5/plugins/emoticons/img/smiley-wink.gif -------------------------------------------------------------------------------- /public/tinymce4.7.5/plugins/emoticons/img/smiley-yell.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bowencool/super-form/caa89a5c3ac94c690c384cae12500450ec64315f/public/tinymce4.7.5/plugins/emoticons/img/smiley-yell.gif -------------------------------------------------------------------------------- /public/tinymce4.7.5/plugins/visualblocks/css/visualblocks.css: -------------------------------------------------------------------------------- 1 | .mce-visualblocks p { 2 | padding-top: 10px; 3 | border: 1px dashed #BBB; 4 | margin-left: 3px; 5 | background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7); 6 | background-repeat: no-repeat; 7 | } 8 | 9 | .mce-visualblocks h1 { 10 | padding-top: 10px; 11 | border: 1px dashed #BBB; 12 | margin-left: 3px; 13 | background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==); 14 | background-repeat: no-repeat; 15 | } 16 | 17 | .mce-visualblocks h2 { 18 | padding-top: 10px; 19 | border: 1px dashed #BBB; 20 | margin-left: 3px; 21 | background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==); 22 | background-repeat: no-repeat; 23 | } 24 | 25 | .mce-visualblocks h3 { 26 | padding-top: 10px; 27 | border: 1px dashed #BBB; 28 | margin-left: 3px; 29 | background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7); 30 | background-repeat: no-repeat; 31 | } 32 | 33 | .mce-visualblocks h4 { 34 | padding-top: 10px; 35 | border: 1px dashed #BBB; 36 | margin-left: 3px; 37 | background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==); 38 | background-repeat: no-repeat; 39 | } 40 | 41 | .mce-visualblocks h5 { 42 | padding-top: 10px; 43 | border: 1px dashed #BBB; 44 | margin-left: 3px; 45 | background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==); 46 | background-repeat: no-repeat; 47 | } 48 | 49 | .mce-visualblocks h6 { 50 | padding-top: 10px; 51 | border: 1px dashed #BBB; 52 | margin-left: 3px; 53 | background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==); 54 | background-repeat: no-repeat; 55 | } 56 | 57 | .mce-visualblocks div:not([data-mce-bogus]) { 58 | padding-top: 10px; 59 | border: 1px dashed #BBB; 60 | margin-left: 3px; 61 | background-image: url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7); 62 | background-repeat: no-repeat; 63 | } 64 | 65 | .mce-visualblocks section { 66 | padding-top: 10px; 67 | border: 1px dashed #BBB; 68 | margin: 0 0 1em 3px; 69 | background-image: url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=); 70 | background-repeat: no-repeat; 71 | } 72 | 73 | .mce-visualblocks article { 74 | padding-top: 10px; 75 | border: 1px dashed #BBB; 76 | margin: 0 0 1em 3px; 77 | background-image: url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7); 78 | background-repeat: no-repeat; 79 | } 80 | 81 | .mce-visualblocks blockquote { 82 | padding-top: 10px; 83 | border: 1px dashed #BBB; 84 | background-image: url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7); 85 | background-repeat: no-repeat; 86 | } 87 | 88 | .mce-visualblocks address { 89 | padding-top: 10px; 90 | border: 1px dashed #BBB; 91 | margin: 0 0 1em 3px; 92 | background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=); 93 | background-repeat: no-repeat; 94 | } 95 | 96 | .mce-visualblocks pre { 97 | padding-top: 10px; 98 | border: 1px dashed #BBB; 99 | margin-left: 3px; 100 | background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==); 101 | background-repeat: no-repeat; 102 | } 103 | 104 | .mce-visualblocks figure { 105 | padding-top: 10px; 106 | border: 1px dashed #BBB; 107 | margin: 0 0 1em 3px; 108 | background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7); 109 | background-repeat: no-repeat; 110 | } 111 | 112 | .mce-visualblocks hgroup { 113 | padding-top: 10px; 114 | border: 1px dashed #BBB; 115 | margin: 0 0 1em 3px; 116 | background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7); 117 | background-repeat: no-repeat; 118 | } 119 | 120 | .mce-visualblocks aside { 121 | padding-top: 10px; 122 | border: 1px dashed #BBB; 123 | margin: 0 0 1em 3px; 124 | background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=); 125 | background-repeat: no-repeat; 126 | } 127 | 128 | .mce-visualblocks figcaption { 129 | border: 1px dashed #BBB; 130 | } 131 | 132 | .mce-visualblocks ul { 133 | padding-top: 10px; 134 | border: 1px dashed #BBB; 135 | margin: 0 0 1em 3px; 136 | background-image: url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==); 137 | background-repeat: no-repeat; 138 | } 139 | 140 | .mce-visualblocks ol { 141 | padding-top: 10px; 142 | border: 1px dashed #BBB; 143 | margin: 0 0 1em 3px; 144 | background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==); 145 | background-repeat: no-repeat; 146 | } 147 | 148 | .mce-visualblocks dl { 149 | padding-top: 10px; 150 | border: 1px dashed #BBB; 151 | margin: 0 0 1em 3px; 152 | background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==); 153 | background-repeat: no-repeat; 154 | } 155 | -------------------------------------------------------------------------------- /public/tinymce4.7.5/skins/lightgray/content.inline.min.css: -------------------------------------------------------------------------------- 1 | .word-wrap{word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.mce-content-body .mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:black;font-family:Arial;font-size:11px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;line-height:normal;font-weight:normal;text-align:left;-webkit-tap-highlight-color:transparent;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-object{border:1px dotted #3A3A3A;background:#D5D5D5 url(img/object.gif) no-repeat center}.mce-preview-object{display:inline-block;position:relative;margin:0 2px 0 2px;line-height:0;border:1px solid gray}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-preview-object .mce-shim{position:absolute;top:0;left:0;width:100%;height:100%;background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}figure.align-left{float:left}figure.align-right{float:right}figure.image.align-center{display:table;margin-left:auto;margin-right:auto}figure.image{display:inline-block;border:1px solid gray;margin:0 2px 0 1px;background:#f5f2f0}figure.image img{margin:8px 8px 0 8px}figure.image figcaption{margin:6px 8px 6px 8px;text-align:center}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px !important;height:9px !important;border:1px dotted #3A3A3A;background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-nbsp,.mce-shy{background:#AAA}.mce-shy::after{content:'-'}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#3399ff;color:#fff}.mce-spellchecker-word{border-bottom:2px solid rgba(208,2,27,0.5);cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid #008000;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td[data-mce-selected],th[data-mce-selected]{background-color:#2276d2 !important}.mce-edit-focus{outline:1px dotted #333}.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false][data-mce-selected]{outline:2px solid #2276d2}.mce-content-body *[data-mce-selected="inline-boundary"]{background:#bfe6ff}.mce-content-body .mce-item-anchor[data-mce-selected]{background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-content-body hr{cursor:default}.ephox-snooker-resizer-bar{background-color:#2276d2;opacity:0}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:.2}.mce-content-body{line-height:1.3} -------------------------------------------------------------------------------- /public/tinymce4.7.5/skins/lightgray/content.min.css: -------------------------------------------------------------------------------- 1 | body{background-color:#FFFFFF;color:#000000;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:14px;line-height:1.3;scrollbar-3dlight-color:#F0F0EE;scrollbar-arrow-color:#676662;scrollbar-base-color:#F0F0EE;scrollbar-darkshadow-color:#DDDDDD;scrollbar-face-color:#E0E0DD;scrollbar-highlight-color:#F0F0EE;scrollbar-shadow-color:#F0F0EE;scrollbar-track-color:#F5F5F5}td,th{font-family:Verdana,Arial,Helvetica,sans-serif;font-size:14px}.word-wrap{word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.mce-content-body .mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:black;font-family:Arial;font-size:11px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;line-height:normal;font-weight:normal;text-align:left;-webkit-tap-highlight-color:transparent;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-object{border:1px dotted #3A3A3A;background:#D5D5D5 url(img/object.gif) no-repeat center}.mce-preview-object{display:inline-block;position:relative;margin:0 2px 0 2px;line-height:0;border:1px solid gray}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-preview-object .mce-shim{position:absolute;top:0;left:0;width:100%;height:100%;background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}figure.align-left{float:left}figure.align-right{float:right}figure.image.align-center{display:table;margin-left:auto;margin-right:auto}figure.image{display:inline-block;border:1px solid gray;margin:0 2px 0 1px;background:#f5f2f0}figure.image img{margin:8px 8px 0 8px}figure.image figcaption{margin:6px 8px 6px 8px;text-align:center}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px !important;height:9px !important;border:1px dotted #3A3A3A;background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-nbsp,.mce-shy{background:#AAA}.mce-shy::after{content:'-'}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#3399ff;color:#fff}.mce-spellchecker-word{border-bottom:2px solid rgba(208,2,27,0.5);cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid #008000;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td[data-mce-selected],th[data-mce-selected]{background-color:#2276d2 !important}.mce-edit-focus{outline:1px dotted #333}.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false][data-mce-selected]{outline:2px solid #2276d2}.mce-content-body *[data-mce-selected="inline-boundary"]{background:#bfe6ff}.mce-content-body .mce-item-anchor[data-mce-selected]{background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-content-body hr{cursor:default}.ephox-snooker-resizer-bar{background-color:#2276d2;opacity:0}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:.2} a {color: #1478F0;} 2 | -------------------------------------------------------------------------------- /public/tinymce4.7.5/skins/lightgray/fonts/tinymce-mobile.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bowencool/super-form/caa89a5c3ac94c690c384cae12500450ec64315f/public/tinymce4.7.5/skins/lightgray/fonts/tinymce-mobile.woff -------------------------------------------------------------------------------- /public/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bowencool/super-form/caa89a5c3ac94c690c384cae12500450ec64315f/public/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.eot -------------------------------------------------------------------------------- /public/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Generated by IcoMoon 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /public/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bowencool/super-form/caa89a5c3ac94c690c384cae12500450ec64315f/public/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.ttf -------------------------------------------------------------------------------- /public/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bowencool/super-form/caa89a5c3ac94c690c384cae12500450ec64315f/public/tinymce4.7.5/skins/lightgray/fonts/tinymce-small.woff -------------------------------------------------------------------------------- /public/tinymce4.7.5/skins/lightgray/fonts/tinymce.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bowencool/super-form/caa89a5c3ac94c690c384cae12500450ec64315f/public/tinymce4.7.5/skins/lightgray/fonts/tinymce.eot -------------------------------------------------------------------------------- /public/tinymce4.7.5/skins/lightgray/fonts/tinymce.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bowencool/super-form/caa89a5c3ac94c690c384cae12500450ec64315f/public/tinymce4.7.5/skins/lightgray/fonts/tinymce.ttf -------------------------------------------------------------------------------- /public/tinymce4.7.5/skins/lightgray/fonts/tinymce.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bowencool/super-form/caa89a5c3ac94c690c384cae12500450ec64315f/public/tinymce4.7.5/skins/lightgray/fonts/tinymce.woff -------------------------------------------------------------------------------- /public/tinymce4.7.5/skins/lightgray/img/anchor.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bowencool/super-form/caa89a5c3ac94c690c384cae12500450ec64315f/public/tinymce4.7.5/skins/lightgray/img/anchor.gif -------------------------------------------------------------------------------- /public/tinymce4.7.5/skins/lightgray/img/loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bowencool/super-form/caa89a5c3ac94c690c384cae12500450ec64315f/public/tinymce4.7.5/skins/lightgray/img/loader.gif -------------------------------------------------------------------------------- /public/tinymce4.7.5/skins/lightgray/img/object.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bowencool/super-form/caa89a5c3ac94c690c384cae12500450ec64315f/public/tinymce4.7.5/skins/lightgray/img/object.gif -------------------------------------------------------------------------------- /public/tinymce4.7.5/skins/lightgray/img/trans.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bowencool/super-form/caa89a5c3ac94c690c384cae12500450ec64315f/public/tinymce4.7.5/skins/lightgray/img/trans.gif -------------------------------------------------------------------------------- /public/tinymce4.7.5/skins/lightgray/skin.min.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["./src/skins/lightgray/main/less/desktop/Reset.less","./src/skins/lightgray/main/less/desktop/Variables.less","./src/skins/lightgray/main/less/desktop/Mixins.less","./src/skins/lightgray/main/less/desktop/Animations.less","./src/skins/lightgray/main/less/desktop/TinyMCE.less","./src/skins/lightgray/main/less/desktop/CropRect.less","./src/skins/lightgray/main/less/desktop/ImagePanel.less","./src/skins/lightgray/main/less/desktop/Arrows.less","./src/skins/lightgray/main/less/desktop/Sidebar.less","./src/skins/lightgray/main/less/desktop/Container.less","./src/skins/lightgray/main/less/desktop/Scrollable.less","./src/skins/lightgray/main/less/desktop/Panel.less","./src/skins/lightgray/main/less/desktop/FloatPanel.less","./src/skins/lightgray/main/less/desktop/Window.less","./src/skins/lightgray/main/less/desktop/ToolTip.less","./src/skins/lightgray/main/less/desktop/Progress.less","./src/skins/lightgray/main/less/desktop/Notification.less","./src/skins/lightgray/main/less/desktop/AbsoluteLayout.less","./src/skins/lightgray/main/less/desktop/Button.less","./src/skins/lightgray/main/less/desktop/ButtonGroup.less","./src/skins/lightgray/main/less/desktop/Checkbox.less","./src/skins/lightgray/main/less/desktop/ComboBox.less","./src/skins/lightgray/main/less/desktop/ColorBox.less","./src/skins/lightgray/main/less/desktop/ColorButton.less","./src/skins/lightgray/main/less/desktop/ColorPicker.less","./src/skins/lightgray/main/less/desktop/Path.less","./src/skins/lightgray/main/less/desktop/FieldSet.less","./src/skins/lightgray/main/less/desktop/FitLayout.less","./src/skins/lightgray/main/less/desktop/FlowLayout.less","./src/skins/lightgray/main/less/desktop/Iframe.less","./src/skins/lightgray/main/less/desktop/InfoBox.less","./src/skins/lightgray/main/less/desktop/Label.less","./src/skins/lightgray/main/less/desktop/MenuBar.less","./src/skins/lightgray/main/less/desktop/MenuButton.less","./src/skins/lightgray/main/less/desktop/MenuItem.less","./src/skins/lightgray/main/less/desktop/Throbber.less","./src/skins/lightgray/main/less/desktop/Menu.less","./src/skins/lightgray/main/less/desktop/ListBox.less","./src/skins/lightgray/main/less/desktop/ResizeHandle.less","./src/skins/lightgray/main/less/desktop/SelectBox.less","./src/skins/lightgray/main/less/desktop/Slider.less","./src/skins/lightgray/main/less/desktop/Spacer.less","./src/skins/lightgray/main/less/desktop/SplitButton.less","./src/skins/lightgray/main/less/desktop/StackLayout.less","./src/skins/lightgray/main/less/desktop/TabPanel.less","./src/skins/lightgray/main/less/desktop/TextBox.less","./src/skins/lightgray/main/less/desktop/DropZone.less","./src/skins/lightgray/main/less/desktop/BrowseButton.less","./src/skins/lightgray/main/less/desktop/Icons.less","./src/skins/lightgray/main/less/desktop/FilePicker.less"],"names":[],"mappings":"AAEA,CAAC,GAAS,WAAY,CAAC,GAAS,UAAW,GAAG,CAAC,GAAS,QAAS,CAAC,GAAS,OAAQ,GAAG,CAAC,GAAS,OAC9F,QAAA,CAAW,SAAA,CAAY,QAAA,CAAW,SAAA,CAClC,kBAAA,CAAqB,sBAAA,CACrB,oBAAA,CAAuB,aAAA,CACvB,YCU+B,2CDV/B,CACA,cAAA,CAAuB,gBAAA,CAAmB,UAAA,CAC1C,eAAA,CAAkB,UAAA,CAAa,WAAA,CAC/B,kBAAA,CAAqB,cAAA,CACrB,uCAAA,CACA,kBAAA,CAAqB,kBAAA,CACrB,eAAA,CACA,2BAAA,CACA,8BAAA,CACA,sBAAA,CACA,aAAA,CACA,eAGF,CAAC,GAAS,OAAQ,QAChB,0BAAA,CACA,6BAAA,CACA,sBAGF,CAAC,GAAS,UAAW,EAAC,eACpB,qBAAA,CACA,wBAAA,CACA,mBAAA,CACA,iBEyBF,WACE,oBAAA,CACA,wBAAA,CACA,oBAAA,CACA,qBAAA,CACA,gBAAA,CACA,iBAAA,CACA,oBAAA,CACA,aC7DF,CAAC,GAAS,MACR,SAAA,CDqCA,sCAAA,CACA,+BCnCA,CAJD,GAAS,KAIP,CAAC,GAAS,IACT,UCPJ,CAAC,GAAS,SAER,kBAAA,YACA,kBAGF,CAAC,GAAS,YACR,QAAA,CAAW,SAAA,CAAY,QAAA,CACvB,eAAA,CACA,WAAA,CACA,YAGF,GAAG,CAAC,GAAS,YACX,cAAA,CACA,KAAA,CAAQ,MAAA,CACR,UAAA,CACA,YAGF,CAAC,GAAS,SACR,aAAA,CFaA,+CAAA,CACA,4CAAA,CACA,wCEVF,CAAC,GAAS,UAAW,EAAG,GAAS,gBAC/B,YAAA,CACA,mBAFF,CAAC,GAAS,UAAW,EAAG,GAAS,eAI/B,EAAC,GAAS,MACR,OAIJ,CAAC,GAAS,WACR,iBAAA,CACA,wBAAA,CACA,cAGF,GAAG,CAAC,GAAS,WACX,eAAA,CACA,YAGF,CAAC,GAAS,WACR,kBAGF,CAAC,GAAS,UAAW,EAAC,GAAS,gBAC7B,iBAAA,CACA,eAGF,CAAC,GAAS,WAAY,EAAC,GAAS,cAC9B,aAGF,CAAC,GAAS,UAAW,EAAC,GAAS,kBAC7B,SAKF,CAAC,GAAS,SACR,yBAGF,CAAC,GAAS,QAAS,IACjB,cAAA,CACA,wBAAA,CACA,UAAA,CACA,WAAA,CACA,gBAAA,CACA,iBAAA,CACA,qBAAA,CACA,YAGF,CAAC,GAAS,QAAS,GAAG,KACpB,kBAGF,CAAC,GAAS,QAAS,GAAE,OACnB,iBAGF,CAAC,GAAS,KAAM,GAAE,CAAC,GAAS,UAAW,KACrC,wBAAA,CACA,UAAA,CAAa,WAAA,CACb,QAAA,CACA,eAEA,CAND,GAAS,KAAM,GAAE,CAAC,GAAS,UAAW,IAMpC,OACC,qBAGF,CAVD,GAAS,KAAM,GAAE,CAAC,GAAS,UAAW,IAUpC,WACC,mBAIJ,CAAC,GAAS,MACR,kBAAA,CACA,yBAFF,CAAC,GAAS,KAIR,GACE,aAAA,CACA,6BAEA,CARH,GAAS,KAIR,EAIG,OAAQ,CARZ,GAAS,KAIR,EAIY,OACR,qBAKN,CAAC,GAAS,aACR,mBADF,CAAC,GAAS,YAGR,GACE,oBAAA,CACA,UAAA,CAAa,YALjB,CAAC,GAAS,YAQR,EAAC,OARH,CAAC,GAAS,YAQC,EAAC,CAAC,GAAS,QAClB,oBAAA,CACA,mBAIJ,CAAC,GAAS,aACR,kBAGF,GAAG,CAAC,GAAS,gBACX,WAGF,CAAC,GAAS,eAAgB,KACxB,iBAAA,CACA,qBAAA,CACA,gBAAA,CACA,cAAA,CACA,gBAAA,CACA,cAGF,CAAC,GAAS,WACR,YAAa,gCASf,CAAC,GAAS,YAAa,EAAC,GAAS,kBAC/B,gBAKF,CAAC,GAAS,UAAW,GACnB,iBAGF,CAAC,GAAS,UAAW,GACnB,kBAGF,CAAC,GAAS,UAAW,GACnB,cAAA,CACA,cACA,CAHD,GAAS,UAAW,EAGlB,OACC,0BAIJ,CAAC,GAAS,UAAW,IACnB,iBAGF,CAAC,GAAS,UAAW,EAAC,GAAS,eAC7B,wBAAA,CACA,YAFF,CAAC,GAAS,UAAW,EAAC,GAAS,cAG7B,MAAM,IACJ,yBAJJ,CAAC,GAAS,UAAW,EAAC,GAAS,cAG7B,MAAM,GAEJ,IACE,iBANN,CAAC,GAAS,UAAW,EAAC,GAAS,cAS7B,IATF,CAAC,GAAS,UAAW,EAAC,GAAS,cASzB,IACF,YAVJ,CAAC,GAAS,UAAW,EAAC,GAAS,cAY7B,GAAE,UAAU,OACV,yBAbJ,CAAC,GAAS,UAAW,EAAC,GAAS,cAe7B,MAAM,GAAI,OACR,yBAIJ,CAAC,GAAS,UACR,iBAAA,CACA,wBAAA,CACA,eAAA,CACA,cAJF,CAAC,GAAS,SAMR,GACE,iBAAA,CACA,cAIJ,CAAC,GAAS,UACR,kBAGF,CAAC,GAAS,SAAS,SAEjB,QAAS,EAAT,CACA,iBAAA,CF7LA,+CAAA,CACA,4CAAA,CACA,uCAAA,CE6LA,KAAA,CACA,OAAA,CACA,QAAA,CACA,MAAA,CACA,oBAKF,CAAC,GAAS,IAAK,EAAC,GAAS,WACvB,MAAA,CACA,WAGF,CAAC,GAAS,IACR,EAAC,GAAS,UAAW,EAAG,GAAS,eAC/B,EAAG,YACD,eAAA,CACA,kBAJN,CAAC,GAAS,IAQR,EAAC,GAAS,MACR,gBAAA,CACA,mBCvPJ,CAAC,GAAS,oBACR,iBAAA,CACA,KAAA,CACA,OAGF,CAAC,GAAS,iBACR,iBAAA,CACA,KAAA,CAAQ,MAAA,CACR,UAAA,CAAa,WAAA,CACb,uBAGF,CAAC,GAAS,oBACR,wBAAA,CACA,oBAAA,CACA,gBAAA,CACA,SAAA,CAAY,WAGd,CAAC,GAAS,oBACR,wBAAA,CACA,qBAAA,CACA,gBAAA,CACA,SAAA,CAAY,WAGd,CAAC,GAAS,oBACR,wBAAA,CACA,uBAAA,CACA,gBAAA,CACA,SAAA,CAAY,WAGd,CAAC,GAAS,oBACR,wBAAA,CACA,sBAAA,CACA,gBAAA,CACA,SAAA,CAAY,WAGd,CAAC,GAAS,sBACR,iBAAA,CACA,WAAA,CACA,SAGF,CAAC,GAAS,gBH9CR,UAAA,CAEA,wBAAA,CACA,MAAA,CG6CA,iBAAA,CACA,iBAGF,CAAC,GAAS,gBAAgB,OACxB,qBAGF,CAAC,GAAS,qBAAqB,OAC7B,0BC1DF,CAAC,GAAS,YACR,aAAA,CACA,iBAGF,CAAC,GAAS,eACR,iBAAA,CACA,eAAgB,sGAGlB,CAAC,GAAS,WAAY,KACpB,kBAGF,CAAC,GAAS,UAAU,CAAC,GAAS,IAAK,EAAC,GAAS,KAC3C,aAAA,CACA,UAAA,CACA,WAAA,CACA,iBAAA,CACA,gBAAA,CACA,cAAA,CACA,YCrBF,CAAC,GAAS,UACR,gBAGF,CAAC,GAAS,YACR,iBAGF,CAAC,GAAS,MAAM,QAChB,CAAC,GAAS,MAAM,OACd,iBAAA,CACA,QAAA,CACA,aAAA,CACA,OAAA,CACA,QAAA,CACA,kBAAA,CACA,wBAAA,CACA,QAAS,GAGX,CAAC,GAAS,MAAM,CAAC,GAAS,SAAS,QACjC,QAAA,CACA,2BAAA,CACA,sBAAA,CACA,iBAGF,CAAC,GAAS,MAAM,CAAC,GAAS,WAAW,QACnC,WAAA,CACA,wBAAA,CACA,sBAAA,CACA,iBAGF,CAAC,GAAS,MAAM,CAAC,GAAS,SAAS,OACjC,QAAA,CACA,wBAAA,CACA,sBAAA,CACA,iBAGF,CAAC,GAAS,MAAM,CAAC,GAAS,WAAW,OACnC,WAAA,CACA,qBAAA,CACA,sBAAA,CACA,iBAGF,CAAC,GAAS,MAAM,CAAC,GAAS,WAAW,QACrC,CAAC,GAAS,MAAM,CAAC,GAAS,WAAW,OACnC,SAGF,CAAC,GAAS,MAAM,CAAC,GAAS,WAAW,QACnC,SAEF,CAAC,GAAS,MAAM,CAAC,GAAS,WAAW,OACnC,SAGF,CAAC,GAAS,MAAM,CAAC,GAAS,YAAY,QACtC,CAAC,GAAS,MAAM,CAAC,GAAS,YAAY,OACpC,SAAA,CACA,SAGF,CAAC,GAAS,MAAM,CAAC,GAAS,YAAY,QACpC,UAGF,CAAC,GAAS,MAAM,CAAC,GAAS,YAAY,OACpC,UAGF,CAAC,GAAS,MAAM,CAAC,GAAS,aAAa,CAAC,GAAS,MAAM,CAAC,GAAS,WAAW,QAC1E,SAAA,CACA,OAAA,CACA,0BAAA,CACA,0BAAA,CACA,gBAGF,CAAC,GAAS,MAAM,CAAC,GAAS,aAAa,CAAC,GAAS,MAAM,CAAC,GAAS,WAAW,OAC1E,SAAA,CACA,OAAA,CACA,uBAAA,CACA,0BAAA,CACA,gBAGF,CAAC,GAAS,MAAM,CAAC,GAAS,aAAa,CAAC,GAAS,MAAM,CAAC,GAAS,YAC/D,iBAGF,CAAC,GAAS,MAAM,CAAC,GAAS,aAAa,CAAC,GAAS,MAAM,CAAC,GAAS,YAAY,QAC3E,UAAA,CACA,OAAA,CACA,yBAAA,CACA,0BAAA,CACA,gBAGF,CAAC,GAAS,MAAM,CAAC,GAAS,aAAa,CAAC,GAAS,MAAM,CAAC,GAAS,YAAY,OAC3E,UAAA,CACA,OAAA,CACA,sBAAA,CACA,0BAAA,CACA,gBAGF,CAAC,GAAS,MAAM,CAAC,GAAS,aAAa,CAAC,GAAS,MAAM,CAAC,GAAS,aAC/D,kBC/GF,CAAC,GAAS,oBAAqB,EAAG,GAAS,gBACzC,aADF,CAAC,GAAS,oBAAqB,EAAG,GAAS,eAGzC,EAAC,GAAS,WACR,OAJJ,CAAC,GAAS,oBAAqB,EAAG,GAAS,eAOzC,EAAC,GAAS,QAAS,EAAG,GAAS,gBAC7B,YAAA,CACA,mBAAA,CACA,YAVJ,CAAC,GAAS,oBAAqB,EAAG,GAAS,eAazC,EAAC,GAAS,eACR,eAAA,CACA,eAAA,CACA,kBAhBJ,CAAC,GAAS,oBAAqB,EAAG,GAAS,eAazC,EAAC,GAAS,cAKR,EAAG,GAAS,gBACV,iBAAA,CACA,UAAA,CAAa,WAAA,CACb,aAAA,CACA,KAAA,CAAQ,OAKd,CAAC,GAAS,iBACR,sBAAA,CACA,sBAFF,CAAC,GAAS,gBAIR,EAAC,GAAS,KACR,aAAA,CACA,eANJ,CAAC,GAAS,gBASR,EAAC,GAAS,IAAI,CAAC,GAAS,QAT1B,CAAC,GAAS,gBASyB,EAAC,GAAS,IAAI,CAAC,GAAS,OAAO,OAC9D,yBAVJ,CAAC,GAAS,gBASR,EAAC,GAAS,IAAI,CAAC,GAAS,OAGtB,QAZJ,CAAC,GAAS,gBASyB,EAAC,GAAS,IAAI,CAAC,GAAS,OAAO,MAG9D,QAZJ,CAAC,GAAS,gBASR,EAAC,GAAS,IAAI,CAAC,GAAS,OAGd,OAAO,GAZnB,CAAC,GAAS,gBASyB,EAAC,GAAS,IAAI,CAAC,GAAS,OAAO,MAGtD,OAAO,GACb,WAAA,CACA,yBAKN,CAAC,GAAS,eACR,sBAAA,CACA,sBChDF,CAAC,GAAS,WAAY,CAAC,GAAS,gBAC9B,cAGF,CAAC,GAAS,YACR,gBCLF,CAAC,GAAS,WACR,iBAAA,CACA,SAAA,CACA,WAAA,CACA,OAAA,CACA,SAAA,CRJA,UAAA,CAEA,wBAAA,CACA,OQKF,CAAC,GAAS,aACR,QAAA,CACA,UAAA,CACA,QAAA,CACA,UAAA,CACA,UAAA,CACA,WAGF,CAAC,GAAS,iBACR,iBAAA,CACA,qBAAA,CACA,qBAAA,CACA,+BAAA,CACA,SAAA,CACA,YAIF,CAAC,GAAS,YAAa,EAAC,GAAS,iBAC/B,UAAA,CACA,WAGF,CAAC,GAAS,UAAU,OAAQ,CAAC,GAAS,UAAU,CAAC,GAAS,QACxD,qBAAA,CRjCA,UAAA,CAEA,wBAAA,CACA,OQmCF,CAAC,GAAS,QACR,kBCxCF,CAAC,GAAS,OACR,sBAAA,CACA,sBAAA,CACA,sBCHF,CAAC,GAAS,YACR,iBAAA,CV+BA,+CAAA,CACA,4CAAA,CACA,wCU7BF,CAAC,GAAS,WAAW,CAAC,GAAS,OAC7B,eAKF,CAAC,GAAS,WAAY,EAAC,GAAS,OAChC,CAAC,GAAS,WAAY,EAAC,GAAS,MAAM,OACpC,iBAAA,CACA,aAAA,CACA,OAAA,CACA,QAAA,CACA,wBAAA,CACA,mBAGF,CAAC,GAAS,WAAY,EAAC,GAAS,OAC9B,kBAGF,CAAC,GAAS,WAAY,EAAC,GAAS,MAAM,OACpC,iBAAA,CACA,QAAS,GAGX,CAAC,GAAS,WAAW,CAAC,GAAS,SVmB7B,OAAQ,2DAAR,CACA,sBAAA,CAlBA,+CAAA,CACA,4CAAA,CACA,uCAAA,CUAA,KAAA,CACA,MAAA,CACA,eAAA,CACA,wBAAA,CACA,kCAEA,CAVD,GAAS,WAAW,CAAC,GAAS,QAU5B,CAAC,GAAS,QACT,eAAA,CACA,cAEA,CAdH,GAAS,WAAW,CAAC,GAAS,QAU5B,CAAC,GAAS,OAIP,EAAG,GAAS,OACZ,QAAA,CACA,iBAAA,CACA,kBAAA,CACA,2BAAA,CACA,oCAAA,CACA,UAEA,CAtBL,GAAS,WAAW,CAAC,GAAS,QAU5B,CAAC,GAAS,OAIP,EAAG,GAAS,MAQX,OACC,OAAA,CACA,iBAAA,CACA,kBAAA,CACA,yBAIJ,CA9BH,GAAS,WAAW,CAAC,GAAS,QAU5B,CAAC,GAAS,OAoBR,CAAC,GAAS,OAAS,kBACpB,CA/BH,GAAS,WAAW,CAAC,GAAS,QAU5B,CAAC,GAAS,OAqBR,CAAC,GAAS,MAAO,EAAG,GAAS,OAAS,UAEvC,CAjCH,GAAS,WAAW,CAAC,GAAS,QAU5B,CAAC,GAAS,OAuBR,CAAC,GAAS,KAAO,iBAClB,CAlCH,GAAS,WAAW,CAAC,GAAS,QAU5B,CAAC,GAAS,OAwBR,CAAC,GAAS,IAAK,EAAG,GAAS,OAAS,UAAA,CAAa,UChEtD,CAAC,GAAS,YACR,QAAA,CAAW,SAAA,CAAY,QAAA,CACvB,eAAA,CACA,YAGF,GAAG,CAAC,GAAS,YACX,cAAA,CACA,KAAA,CAAQ,OAGV,CAAC,GAAS,aXVR,SAAA,CAEA,uBAAA,CACA,MAAA,CWSA,cAAA,CACA,MAAA,CAAS,KAAA,CACT,UAAA,CAAa,WAAA,CACb,gBAGF,CAAC,GAAS,YAAY,CAAC,GAAS,IXlB9B,UAAA,CAEA,wBAAA,CACA,OWmBF,CAAC,GAAS,aACR,YAGF,CAAC,GAAS,QXKR,+CAAA,CACA,4CAAA,CACA,uCAAA,CAeA,OAAQ,2DAAR,CACA,sBAAA,CWnBA,eAAA,CACA,cAAA,CACA,KAAA,CAAQ,MAAA,CACR,SAAA,CACA,UAAW,SAAX,CACA,yDAGF,CAAC,GAAS,OAAO,CAAC,GAAS,IACzB,UAAW,QAAX,CACA,UAGF,CAAC,GAAS,aACR,gBAAA,CACA,+BAAA,CACA,kBAGF,CAAC,GAAS,YAAa,EAAC,GAAS,OAC/B,iBAAA,CACA,OAAA,CACA,KAAA,CACA,WAAA,CACA,UAAA,CACA,iBAAA,CACA,eAPF,CAAC,GAAS,YAAa,EAAC,GAAS,MAS/B,GACE,cAIJ,CAAC,GAAS,MAAM,MAAO,GACrB,cAGF,CAAC,GAAS,YAAa,EAAC,GAAS,OAC/B,gBAAA,CACA,cAAA,CACA,gBAAA,CACA,iCAAA,CACA,mBAGF,CAAC,GAAS,OAAQ,EAAC,GAAS,gBAC1B,cAGF,CAAC,GAAS,MACR,aAAA,CACA,qBAAA,CACA,6BAIF,CAAC,GAAS,YAAa,EAAC,GAAS,OAC/B,iBAAA,CACA,KAAA,CAAQ,MAAA,CACR,WAAA,CACA,SAAA,CACA,YAGF,CAAC,GAAS,OAAQ,QAChB,UAAA,CACA,YAOF,CAAC,GAAS,YAAa,EAAC,GAAS,SAC/B,qBAGF,CAAC,GAAS,OACR,EAAC,GAAS,IAAI,OACZ,qBAFJ,CAAC,GAAS,OAKR,EAAC,GAAS,IAAI,OACZ,qBAIJ,CAAC,GAAS,YAAa,EAAC,GAAS,KAAM,CAAC,GAAS,KAAM,EAAC,GAAS,KAC/D,qBAGF,CAAC,GAAS,KAAM,EAAC,GAAS,IAAI,CAAC,GAAS,SACtC,yBAKF,CAAC,GAAS,IAAK,EAAC,GAAS,YAAa,EAAC,GAAS,OAC9C,iBAAA,CACA,UAAA,CACA,UAGF,CAAC,GAAS,IAAK,EAAC,GAAS,YAAa,EAAC,GAAS,OAC9C,SAAA,CACA,QAGF,CAAC,GAAS,IAAK,EAAC,GAAS,YAAa,EAAC,GAAS,OAC9C,aAAA,CACA,iBC7IF,CAAC,GAAS,SACR,iBAAA,CACA,WAAA,CZDA,UAAA,CAEA,wBAAA,CACA,MAAA,CYAA,eAGF,CAAC,GAAS,eACR,cAAA,CACA,qBAAA,CACA,WAAA,CACA,eAAA,CACA,uBAAA,CACA,iBAAA,CACA,mBAOF,CAAC,GAAS,eZWR,uBAAA,CACA,oBAAA,CACA,gBYTF,CAAC,GAAS,eACR,iBAAA,CACA,OAAA,CACA,QAAA,CACA,aAAA,CACA,uBAGF,CAAC,GAAS,iBACR,yBAGF,CAAC,GAAS,iBACR,sBAGF,CAAC,GAAS,iBACR,uBAGF,CAAC,GAAS,iBACR,wBAGF,CAAC,GAAS,YAAa,CAAC,GAAS,YAC/B,kBAGF,CAAC,GAAS,YAAa,CAAC,GAAS,YAC/B,iBAGF,CAAC,GAAS,UAAW,EAAC,GAAS,eAC7B,KAAA,CACA,QAAA,CACA,gBAAA,CACA,yBAAA,CACA,eAAA,CACA,6BAAA,CACA,+BAGF,CAAC,GAAS,WAAY,EAAC,GAAS,eAC9B,KAAA,CACA,SAAA,CACA,yBAAA,CACA,eAAA,CACA,6BAAA,CACA,+BAGF,CAAC,GAAS,WAAY,EAAC,GAAS,eAC9B,KAAA,CACA,UAAA,CACA,yBAAA,CACA,eAAA,CACA,6BAAA,CACA,+BAGF,CAAC,GAAS,UAAW,EAAC,GAAS,eAC7B,QAAA,CACA,QAAA,CACA,gBAAA,CACA,sBAAA,CACA,kBAAA,CACA,6BAAA,CACA,+BAGF,CAAC,GAAS,WAAY,EAAC,GAAS,eAC9B,QAAA,CACA,SAAA,CACA,sBAAA,CACA,kBAAA,CACA,6BAAA,CACA,+BAGF,CAAC,GAAS,WAAY,EAAC,GAAS,eAC9B,QAAA,CACA,UAAA,CACA,sBAAA,CACA,kBAAA,CACA,6BAAA,CACA,+BAGF,CAAC,GAAS,UAAW,EAAC,GAAS,eAC7B,OAAA,CACA,OAAA,CACA,eAAA,CACA,uBAAA,CACA,iBAAA,CACA,4BAAA,CACA,gCAGF,CAAC,GAAS,UAAW,EAAC,GAAS,eAC7B,MAAA,CACA,OAAA,CACA,eAAA,CACA,wBAAA,CACA,gBAAA,CACA,4BAAA,CACA,gCClIF,CAAC,GAAS,UACR,oBAAA,CACA,iBAAA,CACA,YAGF,CAAC,GAAS,SAAU,EAAC,GAAS,eAC5B,oBAAA,CACA,WAAA,CACA,WAAA,CACA,gBAAA,CACA,qBAAA,CACA,gBAIF,CAAC,GAAS,SAAU,EAAC,GAAS,MAC5B,oBAAA,CACA,eAAA,CACA,kBAAA,CACA,cAAA,CACA,UAAA,CACA,cAGF,CAAC,GAAS,KACR,aAAA,CACA,OAAA,CACA,WAAA,CACA,wBAAA,CbSA,iCAAA,CACA,0BcvCF,CAAC,GAAS,cACR,iBAAA,CACA,qBAAA,CACA,WAAA,CACA,cAAA,CACA,gBAAA,CACA,kBAAA,CACA,oBAAA,CACA,wDAAA,CACA,SAAA,CACA,sBAGF,CAAC,GAAS,aAAa,CAAC,GAAS,IAC/B,UAGF,CAAC,GAAS,sBACR,wBAAA,CACA,qBAGF,CAAC,GAAS,mBACR,wBAAA,CACA,qBAGF,CAAC,GAAS,sBACR,wBAAA,CACA,qBAGF,CAAC,GAAS,oBACR,wBAAA,CACA,qBAGF,CAAC,GAAS,aAAa,CAAC,GAAS,WAC/B,mBAGF,CAAC,GAAS,aAAc,EAAC,GAAS,KAChC,eAGF,CAAC,GAAS,oBdSR,oBAAA,CACA,wBAAA,CACA,oBAAA,CACA,qBAAA,CACA,gBAAA,CACA,iBAAA,CACA,oBAAA,CACA,YAAA,CcdA,oBAAA,CACA,cAAA,CACA,sBAAA,CACA,iBAAA,CACA,kBAAA,CACA,cAGF,CAAC,GAAS,mBAAoB,GAC5B,yBAAA,CACA,eAGF,CAAC,GAAS,aAAc,EAAC,GAAS,UAChC,iBAGF,CAAC,GAAS,aAAc,EAAC,GAAS,SAAU,EAAC,GAAS,MACpD,eAGF,CAAC,GAAS,aAAc,GAAG,CAAC,GAAS,aAAc,EAAC,GAAS,SAAU,EAAC,GAAS,MAC/E,cAGF,CAAC,GAAS,aAAc,EAAC,GAAS,SAAU,EAAC,GAAS,eACpD,qBAGF,CAAC,GAAS,aAAc,EAAC,GAAS,SAAU,EAAC,GAAS,cAAe,EAAC,GAAS,KAC7E,yBAGF,CAAC,GAAS,qBAAsB,GAAG,CAAC,GAAS,qBAAsB,EAAC,GAAS,SAAU,EAAC,GAAS,MAC/F,cAGF,CAAC,GAAS,qBAAsB,EAAC,GAAS,SAAU,EAAC,GAAS,eAC5D,qBAGF,CAAC,GAAS,qBAAsB,EAAC,GAAS,SAAU,EAAC,GAAS,cAAe,EAAC,GAAS,KACrF,yBAGF,CAAC,GAAS,kBAAmB,GAAG,CAAC,GAAS,kBAAmB,EAAC,GAAS,SAAU,EAAC,GAAS,MACzF,cAGF,CAAC,GAAS,kBAAmB,EAAC,GAAS,SAAU,EAAC,GAAS,eACzD,qBAGF,CAAC,GAAS,kBAAmB,EAAC,GAAS,SAAU,EAAC,GAAS,cAAe,EAAC,GAAS,KAClF,yBAGF,CAAC,GAAS,qBAAsB,GAAG,CAAC,GAAS,qBAAsB,EAAC,GAAS,SAAU,EAAC,GAAS,MAC/F,cAGF,CAAC,GAAS,qBAAsB,EAAC,GAAS,SAAU,EAAC,GAAS,eAC5D,qBAGF,CAAC,GAAS,qBAAsB,EAAC,GAAS,SAAU,EAAC,GAAS,cAAe,EAAC,GAAS,KACrF,yBAGF,CAAC,GAAS,mBAAoB,GAAG,CAAC,GAAS,mBAAoB,EAAC,GAAS,SAAU,EAAC,GAAS,MAC3F,cAGF,CAAC,GAAS,mBAAoB,EAAC,GAAS,SAAU,EAAC,GAAS,eAC1D,qBAGF,CAAC,GAAS,mBAAoB,EAAC,GAAS,SAAU,EAAC,GAAS,cAAe,EAAC,GAAS,KACnF,yBAGF,CAAC,GAAS,aAAc,EAAC,GAAS,OAChC,iBAAA,CACA,OAAA,CACA,SAAA,CACA,cAAA,CACA,gBAAA,CACA,gBAAA,CACA,aAAA,CACA,eCxIF,CAAC,GAAS,YACR,kBAGF,IAAK,EAAC,GAAS,iBAAkB,CAAC,GAAS,SACzC,kBAGF,CAAC,GAAS,SACR,SAAA,CAAY,WAGd,CAAC,GAAS,eAAe,CAAC,GAAS,YACjC,gBCbF,CAAC,GAAS,KACR,wBAAA,CACA,4DAAA,CACA,iBAAA,CACA,4CAAA,CACA,gBAAA,ChBsCA,oBAAA,CACA,eAAA,CACA,OAAA,CAbA,uBAAA,CACA,oBAAA,CACA,gBgBvBA,CAXD,GAAS,IAWP,OAAQ,CAXV,GAAS,IAWE,QACR,gBAAA,CACA,aAAA,CACA,qBAGF,CAjBD,GAAS,IAiBP,OACC,gBAAA,CACA,aAAA,CACA,qBAGF,CAvBD,GAAS,IAuBP,CAAC,GAAS,SAAU,QAAQ,CAvB9B,GAAS,IAuBsB,CAAC,GAAS,SAAS,MAAO,QACtD,cAAA,ChBQF,uBAAA,CACA,oBAAA,CACA,eAAA,CAjCA,UAAA,CAEA,wBAAA,CACA,OgByBA,CA7BD,GAAS,IA6BP,CAAC,GAAS,QACX,CA9BD,GAAS,IA8BP,CAAC,GAAS,OAAO,OAClB,CA/BD,GAAS,IA+BP,CAAC,GAAS,OAAO,OAClB,CAhCD,GAAS,IAgCP,CAAC,GAAS,OAAO,QhBAlB,uBAAA,CACA,oBAAA,CACA,eAAA,CgBAE,kBAAA,CACA,WAAA,CACA,yBAGF,CAvCD,GAAS,IAuCP,CAAC,GAAS,OAAQ,QAAQ,CAvC5B,GAAS,IAuCoB,CAAC,GAAS,OAAO,MAAO,QACpD,CAxCD,GAAS,IAwCP,CAAC,GAAS,OAAQ,GAAG,CAxCvB,GAAS,IAwCe,CAAC,GAAS,OAAO,MAAO,GAC7C,YAGF,CA5CD,GAAS,IA4CP,MAAO,EAAC,GAAS,OAChB,yBAGF,CAhDD,GAAS,IAgDP,CAAC,GAAS,OAAQ,EAAC,GAAS,OAAQ,CAhDtC,GAAS,IAgD8B,CAAC,GAAS,OAAO,MAAO,EAAC,GAAS,OACtE,uBAIJ,CAAC,GAAS,IAAK,QACb,eAAA,CACA,cAAA,CACA,gBAAA,CACA,iBAAA,CACA,cAAA,CACA,aAAA,CACA,iBAAA,CAGA,gBAAA,CACA,wBACA,CAZD,GAAS,IAAK,OAYZ,mBACC,QAAA,CACA,UAIJ,CAAC,GAAS,IAAK,GACb,yBAGF,CAAC,GAAS,QAAQ,CAAC,GAAS,cAC1B,eAGF,CAAC,GAAS,SACR,WAAA,CACA,4BAAA,CACA,wBAAA,CACA,yBAEA,CAND,GAAS,QAMP,OAAQ,CANV,GAAS,QAME,OACR,wBAAA,CACA,yBAGF,CAXD,GAAS,QAWP,CAAC,GAAS,SAAU,QAAQ,CAX9B,GAAS,QAWsB,CAAC,GAAS,SAAS,MAAO,QACtD,cAAA,ChB3DF,uBAAA,CACA,oBAAA,CACA,eAAA,CAjCA,UAAA,CAEA,wBAAA,CACA,OgB4FA,CAjBD,GAAS,QAiBP,CAAC,GAAS,QAAS,CAjBrB,GAAS,QAiBa,CAAC,GAAS,OAAO,OAAQ,CAjB/C,GAAS,QAiBuC,IAAI,eAAqB,QACtE,wBAAA,ChBjEF,uBAAA,CACA,oBAAA,CACA,gBgBoEF,CAAC,GAAS,QAAS,QAAQ,CAAC,GAAS,QAAS,OAAO,GACnD,WAAA,CACA,yBAGF,CAAC,GAAS,IAAK,EAAC,GAAS,KACvB,iBAAA,CACA,mBAAA,CACA,cAGF,CAAC,GAAS,UAAW,QACnB,gBAAA,CACA,cAAA,CACA,mBAIF,CAAC,GAAS,UAAW,GACnB,eAGF,CAAC,GAAS,UAAW,QACnB,eAAA,CACA,cAAA,CACA,oBAGF,CAAC,GAAS,UAAW,GACnB,gBAAA,CACA,kBAAA,CACA,kBAGF,CAAC,GAAS,IAAK,EAAC,GAAS,OACvB,cAAA,CACA,cAGF,CAAC,GAAS,UAAW,EAAC,GAAS,OAC7B,cAAA,CACA,cAGF,CAAC,GAAS,OhBvGR,oBAAA,CACA,eAAA,CACA,OAAA,CgBuGA,OAAA,CAAU,QAAA,CACV,kBAAA,CACA,4BAAA,CACA,kCAAA,CACA,iCAAA,CACA,QAAS,GAGX,CAAC,GAAS,SAAU,EAAC,GAAS,OAC5B,sBAGF,CAAC,GAAS,MAAM,CAAC,GAAS,IACxB,+BAAA,CACA,aAGF,CAAC,GAAS,UACR,QAAA,CACA,sBAAA,ChBvIA,uBAAA,CACA,oBAAA,CACA,eAAA,CgBwIA,YAGF,CAAC,GAAS,SAAS,OAAQ,CAAC,GAAS,SAAS,CAAC,GAAS,QAAS,CAAC,GAAS,SAAS,OAAQ,CAAC,GAAS,SAAS,QAC7G,QAAA,CACA,kBAAA,CACA,WAAA,ChBhJA,uBAAA,CACA,oBAAA,CACA,gBgBkJF,CAAC,GAAS,aAAc,EAAC,GAAS,KAChC,kBAKF,CAAC,GAAS,IAAK,EAAC,GAAS,IAAK,QAC5B,cC3LF,CAAC,GAAS,QAAS,EAAC,GAAS,WAC3B,QAAA,CACA,cAWF,CAAC,GAAS,UAAW,EAAC,GAAS,KAC7B,gBAAA,CACA,QAAA,CAEA,gBAcF,CAAC,GAAS,UAAU,IAAI,eACtB,6BAAA,CACA,cAAA,CACA,gBAGF,CAAC,GAAS,WAGR,gBAYF,CAAC,GAAS,UAAW,EAAC,GAAS,IAAI,CAAC,GAAS,kBAC3C,SAKF,CAAC,GAAS,IAAK,EAAC,GAAS,UAAW,EAAC,GAAS,KAC5C,aAAA,CACA,iBAGF,CAAC,GAAS,IAAK,EAAC,GAAS,UAAW,EAAC,GAAS,OAC5C,eAGF,CAAC,GAAS,IAAK,EAAC,GAAS,UAAU,IAAI,eACrC,gBAAA,CACA,8BAAA,CACA,iBAAA,CACA,iBCvEF,CAAC,GAAS,UACR,eAGF,CAAC,CAAC,GAAS,YACT,gBAAA,CACA,wBAAA,ClB0BA,uBAAA,CACA,oBAAA,CACA,eAAA,CkBzBA,sBAAA,CACA,iBAAA,CACA,gBAGF,CAAC,GAAS,QAAS,EAAC,CAAC,GAAS,YAC5B,aAAA,CACA,cAAA,CACA,gBAAA,CACA,cAGF,CAAC,GAAS,SAAS,MAAO,EAAC,CAAC,GAAS,YAAa,CAAC,GAAS,SAAS,CAAC,GAAS,MAAO,EAAC,CAAC,GAAS,YAC/F,wBAAA,ClBUA,uBAAA,CACA,oBAAA,CACA,gBkBRF,CAAC,GAAS,SAAS,CAAC,GAAS,SAAU,EAAC,GAAS,OAAQ,CAAC,GAAS,SAAS,CAAC,GAAS,SAAU,EAAC,CAAC,GAAS,YACzG,cAGF,CAAC,GAAS,SAAU,EAAC,GAAS,OAC5B,sBAKF,CAAC,GAAS,IAAK,EAAC,GAAS,UACvB,aAAA,CACA,iBAGF,CAAC,GAAS,IAAK,EAAC,CAAC,GAAS,YACxB,iBC1CF,CAAC,GAAS,UACR,iBAAA,CnB0CA,oBAAA,CACA,eAAA,CACA,OAAA,CAbA,uBAAA,CACA,oBAAA,CACA,eAAA,CmB7BA,aAGF,CAAC,GAAS,SAAU,OAClB,wBAAA,CACA,0BAAA,CACA,YAGF,CAAC,GAAS,SAAS,CAAC,GAAS,SAAU,OACrC,cAOF,CAAC,GAAS,SAAU,EAAC,GAAS,KAC5B,wBAAA,CACA,aAAA,CAEA,SAGF,CAAC,GAAS,SAAU,QAClB,iBAAA,CACA,iBAGF,CAAC,GAAS,SAAS,CAAC,GAAS,SAAU,EAAC,GAAS,IAAK,QACpD,cAAA,CnBHA,uBAAA,CACA,oBAAA,CACA,eAAA,CAjCA,UAAA,CAEA,wBAAA,CACA,OmBoCF,CAAC,GAAS,SAAU,EAAC,GAAS,QAC5B,iBAAA,CACA,SAAA,CACA,OAAA,CACA,gBAAA,CACA,eAAA,CACA,cAAA,CACA,UAAA,CACA,WAAA,CACA,iBAAA,CACA,eAGF,CAAC,GAAS,SAAS,CAAC,GAAS,WAAY,OACvC,mBAGF,CAAC,GAAS,SAAS,CAAC,GAAS,SAAU,EAAC,GAAS,QAC/C,WAGF,CAAC,GAAS,SAAU,EAAC,GAAS,OAAO,CAAC,GAAS,WAC7C,cAGF,CAAC,GAAS,SAAU,EAAC,GAAS,OAAO,CAAC,GAAS,aAC7C,cAGF,CAAC,GAAS,KAAK,CAAC,GAAS,eACvB,YAAA,CACA,YAAA,CACA,iBAHF,CAAC,GAAS,KAAK,CAAC,GAAS,cAKvB,EAAC,GAAS,WACR,uBAAA,CACA,eAPJ,CAAC,GAAS,KAAK,CAAC,GAAS,cAUvB,EAAC,GAAS,eACR,UAXJ,CAAC,GAAS,KAAK,CAAC,GAAS,cAcvB,EAAC,GAAS,MACR,eAfJ,CAAC,GAAS,KAAK,CAAC,GAAS,cAkBvB,EAAC,GAAS,gBAlBZ,CAAC,GAAS,KAAK,CAAC,GAAS,cAkBI,EAAC,GAAS,eAAgB,GACnD,eAnBJ,CAAC,GAAS,KAAK,CAAC,GAAS,cAsBvB,EAAC,GAAS,KAAM,GACd,eC5FJ,CAAC,GAAS,SAAU,GAClB,wBAAA,CACA,UAAA,CAAa,YCFf,CAAC,GAAS,YAAa,EAAC,GAAS,KAC/B,kBAGF,CAAC,GAAS,kBACR,WAQF,CAAC,GAAS,YAAa,EAAC,GAAS,SAC/B,iBAAA,CACA,aAAA,CACA,iBAAA,CACA,QAAA,CACA,OAAA,CACA,iBAAA,CACA,cAAA,CACA,eAAA,CACA,UAAA,CACA,UAAA,CACA,gBAGF,CAAC,GAAS,YAAY,CAAC,GAAS,UAAW,EAAC,GAAS,SACnD,iBAAA,CACA,eAAA,CACA,WAmBF,CAAC,GAAS,IAAK,EAAC,GAAS,aACvB,cAGF,CAAC,GAAS,IAAK,EAAC,GAAS,YAAa,EAAC,GAAS,SAC9C,aAAA,CACA,eAAA,CACA,iBAGF,CAAC,GAAS,IAAK,EAAC,GAAS,YAAY,CAAC,GAAS,UAAW,EAAC,GAAS,SAClE,aAAA,CACA,eAAA,CACA,iBAGF,CAAC,GAAS,IAAK,EAAC,GAAS,YAAa,EAAC,GAAS,MAC9C,gBAAA,CACA,iBAAA,CACA,cCpEF,CAAC,GAAS,aACR,iBAAA,CACA,WAAA,CACA,aAGF,CAAC,GAAS,gBACR,iBAAA,CACA,KAAA,CAAQ,MAAA,CACR,SAAA,CACA,WAAA,CACA,wBAAA,CACA,gBAAA,CACA,gBAGF,CAAC,GAAS,qBACR,WAGF,CAAC,GAAS,sBAAuB,CAAC,GAAS,sBACzC,UAAA,CACA,WAAA,CACA,iBAAA,CACA,KAAA,CACA,OAGF,CAAC,GAAS,sBACR,OAAQ,yEAAwE,uBAAuB,YAAvG,CACA,WAAY,6GAAZ,CACA,WAAY,qDAGd,CAAC,GAAS,sBACR,OAAQ,yEAAwE,yBAAyB,UAAzG,CACA,WAAY,6GAAZ,CACA,WAAY,gDAGd,CAAC,GAAS,uBACR,eAAA,CACA,iBAAA,CACA,UAAA,CACA,WAAA,CACA,oBAAA,CACA,sBAAA,CACA,kBAGF,CAAC,GAAS,uBACR,iBAAA,CACA,UAAA,CACA,WAAA,CACA,sBAAA,CACA,kBAGF,CAAC,GAAS,eACR,iBAAA,CACA,KAAA,CAAQ,OAAA,CACR,UAAA,CACA,WAAA,CACA,wBAAA,CACA,iBAGF,CAAC,GAAS,sBACR,eAAA,CACA,iBAAA,CACA,KAAA,CACA,SAAA,CACA,UAAA,CACA,sBAAA,CACA,gBAAA,CACA,UAAA,CACA,YC5EF,CAAC,GAAS,MvB2CR,oBAAA,CACA,eAAA,CACA,OAAA,CuB3CA,WAAA,CACA,kBAAA,CACA,kBAGF,CAAC,GAAS,KAAM,EAAC,GAAS,KACxB,oBAAA,CACA,kBAGF,CAAC,GAAS,KAAM,EAAC,GAAS,WACxB,qBAGF,CAAC,GAAS,WvB2BR,oBAAA,CACA,eAAA,CACA,OAAA,CuB3BA,cAAA,CACA,aAAA,CACA,iBAAA,CACA,yBAGF,CAAC,GAAS,UAAU,OAClB,0BAGF,CAAC,GAAS,UAAU,OAClB,kBAAA,CACA,YAGF,CAAC,GAAS,KAAM,EAAC,GAAS,SACxB,cAAA,CACA,kBAGF,CAAC,GAAS,SAAU,EAAC,GAAS,WAC5B,WAKF,CAAC,GAAS,IAAK,EAAC,GAAS,MACvB,cC7CF,CAAC,GAAS,UACR,uBAIF,CAAC,GAAS,SAAU,EAAG,GAAS,gBAC9B,iBAGF,CAAC,GAAS,gBACR,eAAA,CACA,oBCXF,CAAC,GAAS,YzB2CR,oBAAA,CACA,eAAA,CACA,QyBzCF,CAAC,GAAS,iBACR,kBCLF,CAAC,GAAS,kB1B2CR,oBAAA,CACA,eAAA,CACA,Q0BzCF,CAAC,GAAS,kBACR,qBAGF,CAAC,GAAS,iBAAiB,CAAC,GAAS,MACnC,iBAGF,CAAC,GAAS,aACR,mBAGF,CAAC,GAAS,eAAgB,EAAC,GAAS,aAClC,mBAKF,CAAC,GAAS,IAAK,EAAC,GAAS,aACvB,gBAAA,CACA,cAGF,CAAC,GAAS,IAAK,EAAC,GAAS,kBACvB,qBAGF,CAAC,GAAS,IAAK,EAAC,GAAS,iBAAiB,CAAC,GAAS,MAClD,gBChCF,CAAC,GAAS,QACR,sBAAA,CACA,UAAA,CAAa,YCFf,CAAC,GAAS,S5B2CR,oBAAA,CACA,eAAA,CACA,OAAA,C4B3CA,4CAAA,CACA,eAAA,CACA,qBAJF,CAAC,GAAS,QAMR,KACE,aAAA,CACA,WARJ,CAAC,GAAS,QAMR,IAIE,QACE,iBAAA,CACA,OAAA,CAAU,SAAA,CACV,cAAA,CACA,eAAA,CACA,aAfN,CAAC,GAAS,QAMR,IAYE,OAAM,OACJ,0BAKN,CAAC,GAAS,QAAQ,CAAC,GAAS,SAC1B,KACE,kBAFJ,CAAC,GAAS,QAAQ,CAAC,GAAS,SAK1B,QACE,cAIJ,CAAC,GAAS,QAAQ,CAAC,GAAS,SAC1B,kBAAA,CACA,qBAFF,CAAC,GAAS,QAAQ,CAAC,GAAS,QAI1B,KACE,cAIJ,CAAC,GAAS,QAAQ,CAAC,GAAS,SAC1B,kBAAA,CACA,qBAFF,CAAC,GAAS,QAAQ,CAAC,GAAS,QAI1B,KACE,cAIJ,CAAC,GAAS,QAAQ,CAAC,GAAS,OAC1B,kBAAA,CACA,qBAFF,CAAC,GAAS,QAAQ,CAAC,GAAS,MAI1B,KACE,cAMJ,CAAC,GAAS,IAAK,EAAC,GAAS,QACvB,KACE,gBAAA,CACA,cClEJ,CAAC,GAAS,O7B2CR,oBAAA,CACA,eAAA,CACA,OAAA,C6B3CA,4CAAA,CACA,gBAGF,CAAC,GAAS,MAAM,CAAC,GAAS,YACxB,cAGF,CAAC,GAAS,MAAM,CAAC,GAAS,UACxB,WAGF,CAAC,GAAS,MAAM,CAAC,GAAS,WACxB,qBAGF,CAAC,GAAS,MAAM,CAAC,GAAS,SACxB,cAGF,CAAC,GAAS,MAAM,CAAC,GAAS,SACxB,cAGF,CAAC,GAAS,MAAM,CAAC,GAAS,OACxB,cAKF,CAAC,GAAS,IAAK,EAAC,GAAS,OACvB,gBAAA,CACA,cClCF,CAAC,GAAS,SACR,yBAGF,CAAC,GAAS,QAAS,EAAC,GAAS,SAC3B,wBAAA,CACA,sBAAA,C9B0BA,uBAAA,CACA,oBAAA,CACA,eAAA,C8BzBA,YAGF,CAAC,GAAS,QAAS,EAAC,GAAS,QAAS,OAAO,MAC3C,cAGF,CAAC,GAAS,QAAS,EAAC,GAAS,OAC3B,yBAGF,CAAC,GAAS,QAAS,EAAC,GAAS,OAC3B,EAAC,GAAS,OAD0B,CAAC,GAAS,QAAS,EAAC,GAAS,QAAQ,MACzE,EAAC,GAAS,OACR,yBAIJ,CAAC,GAAS,QAAS,EAAC,GAAS,QAAQ,OAAQ,CAAC,GAAS,QAAS,EAAC,GAAS,QAAQ,CAAC,GAAS,QAAS,CAAC,GAAS,QAAS,EAAC,GAAS,QAAQ,OACxI,oBAAA,CACA,gBAAA,CACA,WAAA,C9BGA,uBAAA,CACA,oBAAA,CACA,gB8BDF,CAAC,GAAS,QAAS,EAAC,GAAS,QAAQ,CAAC,GAAS,QAC7C,kBAAA,CACA,cCnCF,GAAG,CAAC,GAAS,QAAQ,CAAC,GAAS,QAC7B,yBAAA,CACA,cAGF,CAAC,GAAS,QAAS,QACjB,cAGF,CAAC,GAAS,QAAQ,CAAC,GAAS,UAAW,MACrC,eAGF,CAAC,GAAS,QAAQ,CAAC,GAAS,YAAa,MACvC,oBAAA,CACA,iBAAA,CACA,sBAAA,CACA,WAGF,CAAC,GAAS,QAAQ,CAAC,GAAS,YAAY,CAAC,GAAS,UAAW,MAC3D,WAGF,CAAC,GAAS,QAAS,EAAC,GAAS,OAC3B,gBAKF,CAAC,GAAS,IACR,EAAC,GAAS,QAAS,QACjB,aAAA,CACA,iBAHJ,CAAC,GAAS,IAMR,EAAC,GAAS,QAAQ,CAAC,GAAS,YAAa,MACvC,aAAA,CACA,iBCtCJ,CAAC,GAAS,WACR,aAAA,CACA,uBAAA,CACA,UAAA,CACA,kBAAA,CACA,gBAAA,CACA,aAAA,CACA,kBAAA,CACA,cAAA,CACA,kBAAA,CACA,iCAAA,CACA,kBAXF,CAAC,GAAS,UAaR,EAAC,GAAS,OACR,cAAA,CACA,gBAAA,CACA,gCAAA,CACA,mCAAA,CACA,8BAlBJ,CAAC,GAAS,UAqBR,EAAC,GAAS,eACR,oBAAA,CACA,qBAAA,CACA,WAxBJ,CAAC,GAAS,UA2BR,EAAC,GAAS,KACR,kBAGF,CA/BD,GAAS,UA+BP,OAAQ,CA/BV,GAAS,UA+BE,OACR,mBADF,CA/BD,GAAS,UA+BP,MAGC,EAAC,GAAS,eAHH,CA/BV,GAAS,UA+BE,MAGR,EAAC,GAAS,eACR,WAJJ,CA/BD,GAAS,UA+BP,MAOC,EAAC,GAAS,MAPH,CA/BV,GAAS,UA+BE,MAOR,EAAC,GAAS,MAPZ,CA/BD,GAAS,UA+BP,MAOkB,EAAC,GAAS,KAPpB,CA/BV,GAAS,UA+BE,MAOS,EAAC,GAAS,KACzB,cAIJ,CA3CD,GAAS,UA2CP,CAAC,GAAS,UACT,mBADF,CA3CD,GAAS,UA2CP,CAAC,GAAS,SAGT,EAAC,GAAS,MAHZ,CA3CD,GAAS,UA2CP,CAAC,GAAS,SAGQ,EAAC,GAAS,KACzB,cAIJ,CAnDD,GAAS,UAmDP,CAAC,GAAS,OAAO,CAAC,GAAS,kBAC1B,mBADF,CAnDD,GAAS,UAmDP,CAAC,GAAS,OAAO,CAAC,GAAS,iBAG1B,EAAC,GAAS,MAHZ,CAnDD,GAAS,UAmDP,CAAC,GAAS,OAAO,CAAC,GAAS,iBAGT,EAAC,GAAS,KACzB,YAIJ,CA3DD,GAAS,UA2DP,CAAC,GAAS,OAAO,CAAC,GAAS,mBAC1B,EAAC,GAAS,KACR,mBAIJ,CAjED,GAAS,UAiEP,CAAC,GAAS,UAAW,CAjEvB,GAAS,UAiEe,CAAC,GAAS,SAAS,OACxC,iBAEA,CApEH,GAAS,UAiEP,CAAC,GAAS,SAGR,OAAD,CApEH,GAAS,UAiEe,CAAC,GAAS,SAAS,MAGvC,OACC,mBAJJ,CAjED,GAAS,UAiEP,CAAC,GAAS,SAOT,EAAC,GAAS,MAPU,CAjEvB,GAAS,UAiEe,CAAC,GAAS,SAAS,MAOxC,EAAC,GAAS,MAPZ,CAjED,GAAS,UAiEP,CAAC,GAAS,SAOQ,EAAC,GAAS,KAPP,CAjEvB,GAAS,UAiEe,CAAC,GAAS,SAAS,MAOvB,EAAC,GAAS,KACzB,WAIJ,CA7ED,GAAS,UA6EP,CAAC,GAAS,kBAAkB,CAAC,GAAS,QACrC,6BAAA,CACA,iBAFF,CA7ED,GAAS,UA6EP,CAAC,GAAS,kBAAkB,CAAC,GAAS,OAIrC,EAAC,GAAS,MAJZ,CA7ED,GAAS,UA6EP,CAAC,GAAS,kBAAkB,CAAC,GAAS,OAIpB,EAAC,GAAS,KACzB,cAGF,CArFH,GAAS,UA6EP,CAAC,GAAS,kBAAkB,CAAC,GAAS,OAQpC,OACC,mBAKN,CAAC,GAAS,gBACR,UAAA,CACA,eAAA,CACA,sBAAA,CACA,mBAJF,CAAC,GAAS,eAMR,GACE,WAIJ,CAAC,GAAS,oBACR,aAAA,CACA,sBAAA,CACA,kBAAA,CACA,gBAGF,CAAC,GAAS,UAAU,MAAO,GAAG,CAAC,GAAS,UAAU,CAAC,GAAS,SAAU,GAAG,CAAC,GAAS,UAAU,MAAO,GAClG,cAGF,GAAG,CAAC,GAAS,KAAM,EAAC,GAAS,eAAgB,CAAC,GAAS,cAAc,OACnE,QAAA,CACA,SAAA,CACA,UAAA,CACA,cAAA,CACA,eAAA,CACA,sBAAA,CACA,uCAAA,CACA,cAAA,CACA,YAGF,GAAG,CAAC,GAAS,KAAM,EAAC,GAAS,UAAW,GACtC,iBAGF,CAAC,GAAS,oBAAsB,kBAChC,CAAC,GAAS,oBAAsB,kBAChC,CAAC,GAAS,oBAAsB,kBAChC,CAAC,GAAS,oBAAsB,kBAChC,CAAC,GAAS,oBAAsB,kBAChC,CAAC,GAAS,oBAAsB,kBAChC,CAAC,GAAS,oBAAsB,kBAIhC,CAAC,GAAS,KAAK,CAAC,GAAS,KACvB,cAGF,CAAC,GAAS,IAAK,EAAC,GAAS,WACvB,gBAAA,CACA,aAAA,CACA,0BAGF,CAAC,GAAS,IAAK,EAAC,GAAS,UAAW,EAAC,GAAS,OAC5C,eAAA,CACA,cAAA,CACA,8BAAA,CACA,cAGF,CAAC,GAAS,IAAK,EAAC,GAAS,UAAU,CAAC,GAAS,SAAU,EAAC,GAAS,OAAQ,CAAC,GAAS,IAAK,EAAC,GAAS,UAAU,MAAO,EAAC,GAAS,OAAQ,CAAC,GAAS,IAAK,EAAC,GAAS,UAAU,MAAO,EAAC,GAAS,OACvL,6BAAA,CACA,2BAGF,CAAC,GAAS,IACR,EAAC,GAAS,UAAW,EAAC,GAAS,KAC7B,eAAA,CACA,iBCpKJ,CAAC,GAAS,UACR,iBAAA,CACA,KAAA,CAAQ,MAAA,CACR,UAAA,CAAa,WAAA,CjCFb,UAAA,CAEA,wBAAA,CACA,MAAA,CiCCA,oBlCyO6C,0CkCtO/C,CAAC,GAAS,iBACR,eAAA,CACA,YAGF,CAAC,GAAS,KAAM,EAAC,GAAS,iBACxB,WAAA,CACA,wBCfF,CAAC,GAAS,MACR,iBAAA,CACA,MAAA,CAAS,KAAA,ClC+CT,OAAQ,2DAAR,CACA,sBAAA,CkC9CA,YAAA,CACA,mBAAA,CACA,eAAA,CACA,eAAA,CACA,gBAAA,CACA,wBAAA,CACA,wBAAA,CACA,YAAA,ClCqBA,+CAAA,CACA,4CAAA,CACA,uCAAA,CkCpBA,gBAAA,CACA,aAAA,CACA,kBAEA,CAlBD,GAAS,KAkBP,CAAC,GAAS,SACT,WAAA,CACA,UAAW,eAAe,eAA1B,CACA,0BAGF,CAxBD,GAAS,KAwBP,CAAC,GAAS,WACT,EAAC,GAAS,eADZ,CAxBD,GAAS,KAwBP,CAAC,GAAS,WACiB,EAAC,GAAS,OAClC,iBAAA,CACA,QAKN,CAAC,GAAS,KAAM,GACd,aAGF,CAAC,GAAS,eAAgB,GACxB,qBAIA,CADD,GAAS,KAAK,CAAC,GAAS,GACtB,CAAC,GAAS,SACT,SAAA,CACA,UAAW,WAAW,UAAtB,CACA,iDAIJ,CAAC,GAAS,gBAAkB,qBAC5B,CAAC,GAAS,gBAAkB,oBAC5B,CAAC,GAAS,gBAAkB,oBAC5B,CAAC,GAAS,gBAAkB,mBAI5B,CAAC,GAAS,IACR,EAAC,GAAS,UAAW,EAAC,GAAS,KAC7B,eAAA,CACA,iBAGF,CAND,GAAS,IAMP,CAAC,GAAS,WAAY,EAAC,GAAS,OANnC,CAAC,GAAS,IAMiC,EAAC,GAAS,eACjD,UAAA,CACA,OC/DJ,CAAC,GAAS,QAAS,QACjB,eAAA,CACA,kBAAA,CACA,kBAGF,CAAC,GAAS,QAAS,EAAC,GAAS,OAC3B,iBAAA,CACA,eAAA,CACA,SAAA,CACA,QAKF,CAAC,GAAS,IAAK,EAAC,GAAS,QAAS,EAAC,GAAS,OAC1C,UAAA,CACA,SAGF,CAAC,GAAS,IAAK,EAAC,GAAS,QAAS,QAChC,kBAAA,CACA,kBCxBF,CAAC,GAAS,eAAgB,EAAC,GAAS,cAClC,iBAAA,CACA,OAAA,CACA,QAAA,CACA,UAAA,CACA,WAAA,CACA,kBAAA,CACA,eAAA,CACA,SAGF,CAAC,GAAS,eAAgB,EAAC,GAAS,mBAClC,iBAGF,CAAC,CAAC,GAAS,UACT,cCdF,CAAC,GAAS,WACR,eAAA,CACA,yBCFF,CAAC,GAAS,QAER,wBAAA,CACA,eAAA,CACA,WAAA,CACA,WAAA,CACA,iBAAA,CACA,cAGF,CAAC,GAAS,OAAO,CAAC,GAAS,UACzB,UAAA,CACA,aAGF,CAAC,GAAS,eAER,wBAAA,CACA,kBAAA,CACA,aAAA,CACA,UAAA,CACA,WAAA,CACA,iBAAA,CACA,KAAA,CAAQ,MAAA,CACR,gBAAA,CACA,gBAGF,CAAC,GAAS,cAAc,OACtB,qBC7BF,CAAC,GAAS,QACR,kBCAA,CADD,GAAS,SACP,MAAO,EAAC,GAAS,MAChB,8BAFJ,CAAC,GAAS,SAKR,EAAC,GAAS,MACR,iCAAA,CACA,iBAAA,CACA,iBARJ,CAAC,GAAS,SAWR,EAAC,GAAS,KAAK,OACb,8BAZJ,CAAC,GAAS,SAeR,EAAC,GAAS,KAAK,OAfjB,CAAC,GAAS,SAee,EAAC,GAAS,KAAK,QACpC,8BAGF,CAnBD,GAAS,SAmBP,CAAC,GAAS,OAAO,MAAO,EAAC,GAAS,MACjC,4BAGF,CAvBD,GAAS,SAuBP,CAAC,GAAS,QACT,qBAIJ,CAAC,GAAS,SAAS,CAAC,GAAS,UAAW,EAAC,GAAS,MAChD,oBAKF,CAAC,GAAS,IAAK,EAAC,GAAS,UACvB,aAAA,CACA,iBAGF,CAAC,GAAS,IAAK,EAAC,GAAS,SAAU,QACjC,iBAAA,CACA,iBAGF,CAAC,GAAS,IAAK,EAAC,GAAS,SAAU,EAAC,GAAS,MAC3C,cC7CF,CAAC,GAAS,mBACR,cCDF,CAAC,GAAS,MACR,aAAA,CACA,gCAGF,CAAC,GAAS,MACV,CAAC,GAAS,KAAM,EAAG,GAAS,gBAC1B,gBAGF,CAAC,GAAS,K1CiCR,oBAAA,CACA,eAAA,CACA,OAAA,C0CjCA,wBAAA,CACA,sBAAA,CACA,eAAA,CACA,gBAAA,CACA,4CAAA,CACA,WAAA,CACA,eAGF,CAAC,GAAS,IAAI,OACZ,mBAGF,CAAC,GAAS,IAAI,CAAC,GAAS,QACtB,kBAAA,CACA,+BAAA,CACA,kBAAA,CACA,YAIF,CAAC,GAAS,IAAI,OACZ,cAKF,CAAC,GAAS,IAAK,EAAC,GAAS,MACvB,gBAAA,CACA,cAGF,CAAC,GAAS,IAAK,EAAC,GAAS,KACvB,uBC7CF,CAAC,GAAS,SACR,eAAA,CACA,wBAAA,C3C8BA,uBAAA,CACA,oBAAA,CACA,eAAA,C2C7BA,oBAAA,C3CiCA,2DAAA,CACA,mDAAA,C2ChCA,WAAA,CACA,WAAA,CACA,mBAAA,CACA,oBAAA,CACA,gBAAA,CACA,cAGF,CAAC,GAAS,QAAQ,OAAQ,CAAC,GAAS,QAAQ,CAAC,GAAS,OACpD,oBAAA,C3CgBA,uBAAA,CACA,oBAAA,CACA,gB2CdF,CAAC,GAAS,YAAa,EAAC,GAAS,SAC/B,WAGF,CAAC,GAAS,QAAQ,CAAC,GAAS,WAC1B,WAAA,CACA,YAGF,CAAC,GAAS,QAAQ,CAAC,GAAS,UAC1B,cAKF,CAAC,GAAS,IAAK,EAAC,GAAS,SACvB,gBAAA,CACA,cCrCF,CAAC,GAAS,UACR,sBAAA,CACA,kBAEA,CAJD,GAAS,SAIN,MACA,wBAAA,CACA,oBAAA,CACA,sBAGF,CAVD,GAAS,SAUP,OACC,QAAQ,EAAR,CACA,WAAA,CACA,oBAAA,CACA,sBAGF,CAjBD,GAAS,SAiBP,CAAC,GAAS,U5ChBX,UAAA,CAEA,wBAAA,CACA,O4CgBE,CApBH,GAAS,SAiBP,CAAC,GAAS,SAGR,CAAC,GAAS,WACT,mBCrBN,CAAC,GAAS,cACR,iBAAA,CACA,gBAEA,CAJD,GAAS,aAIN,QACA,iBAAA,CACA,UAGF,CATD,GAAS,aASN,O7CRF,SAAA,CAEA,uBAAA,CACA,MAAA,C6COE,iBAAA,CACA,KAAA,CACA,MAAA,CACA,UAAA,CACA,WAAA,CACA,UChBJ,WACE,YAAa,SAAb,CACA,QAAQ,oBAAR,CACA,QAAQ,4BAA4B,OAAO,yBACrC,sBAAsB,OAAO,YAC7B,qBAAqB,OAAO,gBAC5B,6BAA6B,OAAO,MAH1C,CAIA,kBAAA,CACA,kBAGF,WACE,YAAa,eAAb,CACA,QAAQ,0BAAR,CACA,QAAQ,kCAAkC,OAAO,yBAC3C,4BAA4B,OAAO,YACnC,2BAA2B,OAAO,gBAClC,mCAAmC,OAAO,MAHhD,CAIA,kBAAA,CACA,kBAGF,CAAC,GAAS,KACR,YAAa,eAAb,CACA,iBAAA,CACA,kBAAA,CACA,mBAAA,CACA,cAAA,CACA,gBAAA,CACA,UAAA,CACA,uBAAA,CACA,kCAAA,CACA,iCAAA,CAEA,oBAAA,CACA,oCAAA,CACA,qBAAA,CACA,UAAA,CACA,WAAA,CACA,cAGF,CAAC,GAAS,UAAW,EAAC,GAAS,KAC7B,YAAa,sBAGf,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,cAAc,QAAmB,QAAS,QACpD,CAAC,GAAS,WAAW,QAAsB,QAAS,QACpD,CAAC,GAAS,YAAY,QAAqB,QAAS,QACpD,CAAC,GAAS,cAAc,QAAmB,QAAS,QACpD,CAAC,GAAS,aAAa,QAAoB,QAAS,QACpD,CAAC,GAAS,eAAe,QAAkB,QAAS,QACpD,CAAC,GAAS,YAAY,QAAqB,QAAS,QACpD,CAAC,GAAS,MAAM,QAA2B,QAAS,QACpD,CAAC,GAAS,QAAQ,QAAyB,QAAS,QACpD,CAAC,GAAS,gBAAgB,QAAiB,QAAS,QACpD,CAAC,GAAS,UAAU,QAAuB,QAAS,QACpD,CAAC,GAAS,UAAU,QAAuB,QAAS,QACpD,CAAC,GAAS,SAAS,QAAwB,QAAS,QACpD,CAAC,GAAS,UAAU,QAAuB,QAAS,QACpD,CAAC,GAAS,aAAa,QAAoB,QAAS,QACpD,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,SAAS,QAAwB,QAAS,QACpD,CAAC,GAAS,SAAS,QAAwB,QAAS,QACpD,CAAC,GAAS,QAAQ,QAAyB,QAAS,QACpD,CAAC,GAAS,QAAQ,QAAyB,QAAS,QACpD,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,iBAAiB,QAAgB,QAAS,QACpD,CAAC,GAAS,UAAU,QAAuB,QAAS,QACpD,CAAC,GAAS,YAAY,QAAqB,QAAS,QACpD,CAAC,GAAS,YAAY,QAAqB,QAAS,QACpD,CAAC,GAAS,QAAQ,QAAyB,QAAS,QACpD,CAAC,GAAS,KAAK,QAA4B,QAAS,QACpD,CAAC,GAAS,eAAe,QAAkB,QAAS,QACpD,CAAC,GAAS,YAAY,QAAqB,QAAS,QACpD,CAAC,GAAS,cAAc,QAAmB,QAAS,QACpD,CAAC,GAAS,UAAU,QAAuB,QAAS,QACpD,CAAC,GAAS,YAAY,QAAqB,QAAS,QACpD,CAAC,GAAS,QAAQ,QAAyB,QAAS,QACpD,CAAC,GAAS,aAAa,QAAoB,QAAS,QACpD,CAAC,GAAS,eAAe,QAAkB,QAAS,QACpD,CAAC,GAAS,cAAc,QAAmB,QAAS,QACpD,CAAC,GAAS,WAAW,QAAsB,QAAS,QACpD,CAAC,GAAS,YAAY,QAAqB,QAAS,QACpD,CAAC,GAAS,eAAe,QAAkB,QAAS,QACpD,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,SAAS,QAAwB,QAAS,QACpD,CAAC,GAAS,YAAY,QAAqB,QAAS,QACpD,CAAC,GAAS,gBAAgB,QAAiB,QAAS,QACpD,CAAC,GAAS,cAAc,QAAmB,QAAS,QACpD,CAAC,GAAS,eAAe,QAAkB,QAAS,QACpD,CAAC,GAAS,MAAM,QAA2B,QAAS,QACpD,CAAC,GAAS,MAAM,QAA2B,QAAS,QACpD,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,SAAS,QAAwB,QAAS,QACpD,CAAC,GAAS,SAAS,QAAwB,QAAS,QACpD,CAAC,GAAS,YAAY,QAAqB,QAAS,QACpD,CAAC,GAAS,aAAa,QAAoB,QAAS,QACpD,CAAC,GAAS,cAAc,QAAmB,QAAS,QACpD,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,YAAY,QAAqB,QAAS,QACpD,CAAC,GAAS,UAAU,QAAuB,QAAS,QACpD,CAAC,GAAS,QAAQ,QAAyB,QAAS,QACpD,CAAC,GAAS,QAAQ,QAAyB,QAAS,QACpD,CAAC,GAAS,SAAS,QAAwB,QAAS,QACpD,CAAC,GAAS,UAAU,QAAuB,QAAS,QACpD,CAAC,GAAS,MAAM,QAA2B,QAAS,QACpD,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,YAAY,QAAqB,QAAS,QACpD,CAAC,GAAS,aAAa,QAAoB,QAAS,QACpD,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,WAAW,QAAsB,QAAS,QACpD,CAAC,GAAS,UAAU,QAAuB,QAAS,QACpD,CAAC,GAAS,UAAU,QAAuB,QAAS,QACpD,CAAC,GAAS,cAAc,QAAmB,QAAS,QACpD,CAAC,GAAS,SAAS,QAAwB,QAAS,QACpD,CAAC,GAAS,QAAQ,QAAyB,QAAS,QACpD,CAAC,GAAS,SAAS,QAAwB,QAAS,QACpD,CAAC,GAAS,gBAAgB,QAAiB,QAAS,QACpD,CAAC,GAAS,iBAAiB,QAAgB,QAAS,QACpD,CAAC,GAAS,SAAS,QAAwB,QAAS,QACpD,CAAC,GAAS,kBAAkB,QAAe,QAAS,QACpD,CAAC,GAAS,uBAAuB,QAAU,QAAS,QACpD,CAAC,GAAS,sBAAsB,QAAW,QAAS,QACpD,CAAC,GAAS,uBAAuB,QAAU,QAAS,QACpD,CAAC,GAAS,sBAAsB,QAAW,QAAS,QACpD,CAAC,GAAS,kBAAkB,QAAe,QAAS,QACpD,CAAC,GAAS,cAAc,QAAmB,QAAS,QACpD,CAAC,GAAS,kBAAkB,QAAe,QAAS,QACpD,CAAC,GAAS,iBAAiB,QAAgB,QAAS,QACpD,CAAC,GAAS,iBAAiB,QAAgB,QAAS,QACpD,CAAC,GAAS,iBAAiB,QAAgB,QAAS,QACpD,CAAC,GAAS,aAAa,QAAoB,QAAS,QACpD,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,cAAc,QAAmB,QAAS,QACpD,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,QAAQ,QAAyB,QAAS,QACpD,CAAC,GAAS,YAAY,QAAqB,QAAS,QACpD,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,SAAS,QAAwB,QAAS,QACpD,CAAC,GAAS,SAAS,QAAwB,QAAS,QACpD,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,SAAS,QAAwB,QAAS,QACpD,CAAC,GAAS,WAAW,QAAsB,QAAS,QACpD,CAAC,GAAS,UAAU,QAAuB,QAAS,QACpD,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,UAAU,QAAuB,QAAS,QACpD,CAAC,GAAS,WAAW,QAAsB,QAAS,QACpD,CAAC,GAAS,aAAa,QAAoB,QAAS,QACpD,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,SAAS,QAAwB,QAAS,QACpD,CAAC,GAAS,UAAU,QAAuB,QAAS,QACpD,CAAC,GAAS,YAAY,QAAqB,QAAS,QACpD,CAAC,GAAS,WAAW,QAAsB,QAAS,QACpD,CAAC,GAAS,aAAa,QAAoB,QAAS,QACpD,CAAC,GAAS,QAAQ,QAAyB,QAAS,QACpD,CAAC,GAAS,SAAS,QAAwB,QAAS,QACpD,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,OAAO,QAA0B,QAAS,QACpD,CAAC,GAAS,SAAS,QAAwB,QAAS,QACpD,CAAC,GAAS,QAAQ,QAAyB,QAAS,QACpD,CAAC,GAAS,QAAQ,QAAyB,QAAS,QACpD,CAAC,GAAS,SAAS,QAAwB,QAAS,QACpD,CAAC,GAAS,MAAM,QAA2B,QAAS,QACpD,CAAC,GAAS,YAAY,QAAqB,QAAS,QACpD,CAAC,GAAS,WAAW,QAAS,CAAC,GAAS,WAAW,QACjD,QAAS,QAGX,CAAC,GAAS,UAA2B,eACrC,CAAC,GAAS,YAA2B,kBACrC,CAAC,CAAC,GAAS,aAA0B,gBAAA,CAAmB,gBCjLxD,CAAC,GAAS,IAAK,EAAC,GAAS,WAAY,OACnC"} -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 25 | 26 | 33 | 34 | 63 | -------------------------------------------------------------------------------- /src/components/dynamic-form/form.vue: -------------------------------------------------------------------------------- 1 | 23 | 24 | 61 | 62 | 90 | -------------------------------------------------------------------------------- /src/components/dynamic-form/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | import Form from './form'; 3 | import Item from './item'; 4 | import InputNumber from './input-number'; 5 | 6 | Vue.component('input-number', InputNumber); 7 | Vue.component('dynamic-form', Form); 8 | Vue.component('dynamic-form-item', Item); 9 | -------------------------------------------------------------------------------- /src/components/dynamic-form/input-number.vue: -------------------------------------------------------------------------------- 1 | 20 | 135 | -------------------------------------------------------------------------------- /src/components/dynamic-form/item.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 146 | 147 | 222 | -------------------------------------------------------------------------------- /src/components/icon-svg/icon-svg.vue: -------------------------------------------------------------------------------- 1 | 5 | 6 | 15 | -------------------------------------------------------------------------------- /src/components/icon-svg/icons/cascader.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/icon-svg/icons/checkbox.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/icon-svg/icons/disabled.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/icon-svg/icons/input.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/icon-svg/icons/number.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/icon-svg/icons/radio.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/icon-svg/icons/richtext.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/icon-svg/icons/select.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/icon-svg/icons/switch.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/icon-svg/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | import IconSvg from './icon-svg'; // svg组件 3 | 4 | Vue.component('icon-svg', IconSvg); 5 | 6 | const requireAll = requireContext => requireContext.keys().map(requireContext); 7 | const req = require.context('./icons', false, /\.svg$/); 8 | requireAll(req); 9 | -------------------------------------------------------------------------------- /src/components/themePicker.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 138 | 139 | 148 | -------------------------------------------------------------------------------- /src/components/tinymce/index.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 90 | -------------------------------------------------------------------------------- /src/components/tinymce/init.js: -------------------------------------------------------------------------------- 1 | import zh_CN from './zh_CN.json'; 2 | 3 | export default () => new Promise((resolve, reject) => { 4 | if (window.tinymce) { 5 | resolve(window.tinymce); 6 | } else { 7 | const script = document.createElement('script'); 8 | script.onload = () => { 9 | window.tinymce.addI18n('zh_CN', zh_CN); 10 | resolve(window.tinymce); 11 | }; 12 | script.onerror = () => { 13 | reject(new Error('无法加载脚本')); 14 | }; 15 | script.src = '/tinymce4.7.5/tinymce.min.js'; 16 | document.head.appendChild(script); 17 | } 18 | }); 19 | -------------------------------------------------------------------------------- /src/components/tinymce/zh_CN.json: -------------------------------------------------------------------------------- 1 | { 2 | "Cut": "\u526a\u5207", 3 | "Heading 5": "\u6807\u98985", 4 | "Header 2": "\u6807\u98982", 5 | "Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.": "\u4f60\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301\u5bf9\u526a\u8d34\u677f\u7684\u8bbf\u95ee\uff0c\u8bf7\u4f7f\u7528Ctrl+X/C/V\u952e\u8fdb\u884c\u590d\u5236\u7c98\u8d34\u3002", 6 | "Heading 4": "\u6807\u98984", 7 | "Div": "Div\u533a\u5757", 8 | "Heading 2": "\u6807\u98982", 9 | "Paste": "\u7c98\u8d34", 10 | "Close": "\u5173\u95ed", 11 | "Font Family": "\u5b57\u4f53", 12 | "Pre": "\u9884\u683c\u5f0f\u6587\u672c", 13 | "Align right": "\u53f3\u5bf9\u9f50", 14 | "New document": "\u65b0\u6587\u6863", 15 | "Blockquote": "\u5f15\u7528", 16 | "Numbered list": "\u7f16\u53f7\u5217\u8868", 17 | "Heading 1": "\u6807\u98981", 18 | "Headings": "\u6807\u9898", 19 | "Increase indent": "\u589e\u52a0\u7f29\u8fdb", 20 | "Formats": "\u683c\u5f0f", 21 | "Headers": "\u6807\u9898", 22 | "Select all": "\u5168\u9009", 23 | "Header 3": "\u6807\u98983", 24 | "Blocks": "\u533a\u5757", 25 | "Undo": "\u64a4\u6d88", 26 | "Strikethrough": "\u5220\u9664\u7ebf", 27 | "Bullet list": "\u9879\u76ee\u7b26\u53f7", 28 | "Header 1": "\u6807\u98981", 29 | "Superscript": "\u4e0a\u6807", 30 | "Clear formatting": "\u6e05\u9664\u683c\u5f0f", 31 | "Font Sizes": "\u5b57\u53f7", 32 | "Subscript": "\u4e0b\u6807", 33 | "Header 6": "\u6807\u98986", 34 | "Redo": "\u91cd\u590d", 35 | "Paragraph": "\u6bb5\u843d", 36 | "Ok": "\u786e\u5b9a", 37 | "Bold": "\u7c97\u4f53", 38 | "Code": "\u4ee3\u7801", 39 | "Italic": "\u659c\u4f53", 40 | "Align center": "\u5c45\u4e2d", 41 | "Header 5": "\u6807\u98985", 42 | "Heading 6": "\u6807\u98986", 43 | "Heading 3": "\u6807\u98983", 44 | "Decrease indent": "\u51cf\u5c11\u7f29\u8fdb", 45 | "Header 4": "\u6807\u98984", 46 | "Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.": "\u5f53\u524d\u4e3a\u7eaf\u6587\u672c\u7c98\u8d34\u6a21\u5f0f\uff0c\u518d\u6b21\u70b9\u51fb\u53ef\u4ee5\u56de\u5230\u666e\u901a\u7c98\u8d34\u6a21\u5f0f\u3002", 47 | "Underline": "\u4e0b\u5212\u7ebf", 48 | "Cancel": "\u53d6\u6d88", 49 | "Justify": "\u4e24\u7aef\u5bf9\u9f50", 50 | "Inline": "\u6587\u672c", 51 | "Copy": "\u590d\u5236", 52 | "Align left": "\u5de6\u5bf9\u9f50", 53 | "Visual aids": "\u7f51\u683c\u7ebf", 54 | "Lower Greek": "\u5c0f\u5199\u5e0c\u814a\u5b57\u6bcd", 55 | "Square": "\u65b9\u5757", 56 | "Default": "\u9ed8\u8ba4", 57 | "Lower Alpha": "\u5c0f\u5199\u82f1\u6587\u5b57\u6bcd", 58 | "Circle": "\u7a7a\u5fc3\u5706", 59 | "Disc": "\u5b9e\u5fc3\u5706", 60 | "Upper Alpha": "\u5927\u5199\u82f1\u6587\u5b57\u6bcd", 61 | "Upper Roman": "\u5927\u5199\u7f57\u9a6c\u5b57\u6bcd", 62 | "Lower Roman": "\u5c0f\u5199\u7f57\u9a6c\u5b57\u6bcd", 63 | "Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.": "\u6807\u8bc6\u7b26\u5e94\u8be5\u4ee5\u5b57\u6bcd\u5f00\u5934\uff0c\u540e\u8ddf\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u7834\u6298\u53f7\u3001\u70b9\u3001\u5192\u53f7\u6216\u4e0b\u5212\u7ebf\u3002", 64 | "Name": "\u540d\u79f0", 65 | "Anchor": "\u951a\u70b9", 66 | "Id": "\u6807\u8bc6\u7b26", 67 | "You have unsaved changes are you sure you want to navigate away?": "\u4f60\u8fd8\u6709\u6587\u6863\u5c1a\u672a\u4fdd\u5b58\uff0c\u786e\u5b9a\u8981\u79bb\u5f00\uff1f", 68 | "Restore last draft": "\u6062\u590d\u4e0a\u6b21\u7684\u8349\u7a3f", 69 | "Special character": "\u7279\u6b8a\u7b26\u53f7", 70 | "Source code": "\u6e90\u4ee3\u7801", 71 | "Language": "\u8bed\u8a00", 72 | "Insert/Edit code sample": "\u63d2\u5165/\u7f16\u8f91\u4ee3\u7801\u793a\u4f8b", 73 | "B": "B", 74 | "R": "R", 75 | "G": "G", 76 | "Color": "\u989c\u8272", 77 | "Right to left": "\u4ece\u53f3\u5230\u5de6", 78 | "Left to right": "\u4ece\u5de6\u5230\u53f3", 79 | "Emoticons": "\u8868\u60c5", 80 | "Robots": "\u673a\u5668\u4eba", 81 | "Document properties": "\u6587\u6863\u5c5e\u6027", 82 | "Title": "\u6807\u9898", 83 | "Keywords": "\u5173\u952e\u8bcd", 84 | "Encoding": "\u7f16\u7801", 85 | "Description": "\u63cf\u8ff0", 86 | "Author": "\u4f5c\u8005", 87 | "Fullscreen": "\u5168\u5c4f", 88 | "Horizontal line": "\u6c34\u5e73\u5206\u5272\u7ebf", 89 | "Horizontal space": "\u6c34\u5e73\u8fb9\u8ddd", 90 | "Insert/edit image": "\u63d2\u5165/\u7f16\u8f91\u56fe\u7247", 91 | "General": "\u666e\u901a", 92 | "Advanced": "\u9ad8\u7ea7", 93 | "Source": "\u5730\u5740", 94 | "Border": "\u8fb9\u6846", 95 | "Constrain proportions": "\u4fdd\u6301\u7eb5\u6a2a\u6bd4", 96 | "Vertical space": "\u5782\u76f4\u8fb9\u8ddd", 97 | "Image description": "\u56fe\u7247\u63cf\u8ff0", 98 | "Style": "\u6837\u5f0f", 99 | "Dimensions": "\u5927\u5c0f", 100 | "Insert image": "\u63d2\u5165\u56fe\u7247", 101 | "Image": "\u56fe\u7247", 102 | "Zoom in": "\u653e\u5927", 103 | "Contrast": "\u5bf9\u6bd4\u5ea6", 104 | "Back": "\u540e\u9000", 105 | "Gamma": "\u4f3d\u9a6c\u503c", 106 | "Flip horizontally": "\u6c34\u5e73\u7ffb\u8f6c", 107 | "Resize": "\u8c03\u6574\u5927\u5c0f", 108 | "Sharpen": "\u9510\u5316", 109 | "Zoom out": "\u7f29\u5c0f", 110 | "Image options": "\u56fe\u7247\u9009\u9879", 111 | "Apply": "\u5e94\u7528", 112 | "Brightness": "\u4eae\u5ea6", 113 | "Rotate clockwise": "\u987a\u65f6\u9488\u65cb\u8f6c", 114 | "Rotate counterclockwise": "\u9006\u65f6\u9488\u65cb\u8f6c", 115 | "Edit image": "\u7f16\u8f91\u56fe\u7247", 116 | "Color levels": "\u989c\u8272\u5c42\u6b21", 117 | "Crop": "\u88c1\u526a", 118 | "Orientation": "\u65b9\u5411", 119 | "Flip vertically": "\u5782\u76f4\u7ffb\u8f6c", 120 | "Invert": "\u53cd\u8f6c", 121 | "Date/time": "\u65e5\u671f/\u65f6\u95f4", 122 | "Insert date/time": "\u63d2\u5165\u65e5\u671f/\u65f6\u95f4", 123 | "Remove link": "\u5220\u9664\u94fe\u63a5", 124 | "Url": "\u5730\u5740", 125 | "Text to display": "\u663e\u793a\u6587\u5b57", 126 | "Anchors": "\u951a\u70b9", 127 | "Insert link": "\u63d2\u5165\u94fe\u63a5", 128 | "Link": "\u94fe\u63a5", 129 | "New window": "\u5728\u65b0\u7a97\u53e3\u6253\u5f00", 130 | "None": "\u65e0", 131 | "The URL you entered seems to be an external link. Do you want to add the required http:// prefix?": "\u4f60\u6240\u586b\u5199\u7684URL\u5730\u5740\u5c5e\u4e8e\u5916\u90e8\u94fe\u63a5\uff0c\u9700\u8981\u52a0\u4e0ahttp://:\u524d\u7f00\u5417\uff1f", 132 | "Paste or type a link": "\u7c98\u8d34\u6216\u8f93\u5165\u94fe\u63a5", 133 | "Target": "\u6253\u5f00\u65b9\u5f0f", 134 | "The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?": "\u4f60\u6240\u586b\u5199\u7684URL\u5730\u5740\u4e3a\u90ae\u4ef6\u5730\u5740\uff0c\u9700\u8981\u52a0\u4e0amailto:\u524d\u7f00\u5417\uff1f", 135 | "Insert/edit link": "\u63d2\u5165/\u7f16\u8f91\u94fe\u63a5", 136 | "Insert/edit video": "\u63d2\u5165/\u7f16\u8f91\u89c6\u9891", 137 | "Media": "\u5a92\u4f53", 138 | "Alternative source": "\u955c\u50cf", 139 | "Paste your embed code below:": "\u5c06\u5185\u5d4c\u4ee3\u7801\u7c98\u8d34\u5728\u4e0b\u9762:", 140 | "Insert video": "\u63d2\u5165\u89c6\u9891", 141 | "Poster": "\u5c01\u9762", 142 | "Insert/edit media": "\u63d2\u5165/\u7f16\u8f91\u5a92\u4f53", 143 | "Embed": "\u5185\u5d4c", 144 | "Nonbreaking space": "\u4e0d\u95f4\u65ad\u7a7a\u683c", 145 | "Page break": "\u5206\u9875\u7b26", 146 | "Paste as text": "\u7c98\u8d34\u4e3a\u6587\u672c", 147 | "Preview": "\u9884\u89c8", 148 | "Print": "\u6253\u5370", 149 | "Save": "\u4fdd\u5b58", 150 | "Could not find the specified string.": "\u672a\u627e\u5230\u641c\u7d22\u5185\u5bb9.", 151 | "Replace": "\u66ff\u6362", 152 | "Next": "\u4e0b\u4e00\u4e2a", 153 | "Whole words": "\u5168\u5b57\u5339\u914d", 154 | "Find and replace": "\u67e5\u627e\u548c\u66ff\u6362", 155 | "Replace with": "\u66ff\u6362\u4e3a", 156 | "Find": "\u67e5\u627e", 157 | "Replace all": "\u5168\u90e8\u66ff\u6362", 158 | "Match case": "\u533a\u5206\u5927\u5c0f\u5199", 159 | "Prev": "\u4e0a\u4e00\u4e2a", 160 | "Spellcheck": "\u62fc\u5199\u68c0\u67e5", 161 | "Finish": "\u5b8c\u6210", 162 | "Ignore all": "\u5168\u90e8\u5ffd\u7565", 163 | "Ignore": "\u5ffd\u7565", 164 | "Add to Dictionary": "\u6dfb\u52a0\u5230\u5b57\u5178", 165 | "Insert row before": "\u5728\u4e0a\u65b9\u63d2\u5165", 166 | "Rows": "\u884c", 167 | "Height": "\u9ad8", 168 | "Paste row after": "\u7c98\u8d34\u5230\u4e0b\u65b9", 169 | "Alignment": "\u5bf9\u9f50\u65b9\u5f0f", 170 | "Border color": "\u8fb9\u6846\u989c\u8272", 171 | "Column group": "\u5217\u7ec4", 172 | "Row": "\u884c", 173 | "Insert column before": "\u5728\u5de6\u4fa7\u63d2\u5165", 174 | "Split cell": "\u62c6\u5206\u5355\u5143\u683c", 175 | "Cell padding": "\u5355\u5143\u683c\u5185\u8fb9\u8ddd", 176 | "Cell spacing": "\u5355\u5143\u683c\u5916\u95f4\u8ddd", 177 | "Row type": "\u884c\u7c7b\u578b", 178 | "Insert table": "\u63d2\u5165\u8868\u683c", 179 | "Body": "\u8868\u4f53", 180 | "Caption": "\u6807\u9898", 181 | "Footer": "\u8868\u5c3e", 182 | "Delete row": "\u5220\u9664\u884c", 183 | "Paste row before": "\u7c98\u8d34\u5230\u4e0a\u65b9", 184 | "Scope": "\u8303\u56f4", 185 | "Delete table": "\u5220\u9664\u8868\u683c", 186 | "H Align": "\u6c34\u5e73\u5bf9\u9f50", 187 | "Top": "\u9876\u90e8\u5bf9\u9f50", 188 | "Header cell": "\u8868\u5934\u5355\u5143\u683c", 189 | "Column": "\u5217", 190 | "Row group": "\u884c\u7ec4", 191 | "Cell": "\u5355\u5143\u683c", 192 | "Middle": "\u5782\u76f4\u5c45\u4e2d", 193 | "Cell type": "\u5355\u5143\u683c\u7c7b\u578b", 194 | "Copy row": "\u590d\u5236\u884c", 195 | "Row properties": "\u884c\u5c5e\u6027", 196 | "Table properties": "\u8868\u683c\u5c5e\u6027", 197 | "Bottom": "\u5e95\u90e8\u5bf9\u9f50", 198 | "V Align": "\u5782\u76f4\u5bf9\u9f50", 199 | "Header": "\u8868\u5934", 200 | "Right": "\u53f3\u5bf9\u9f50", 201 | "Insert column after": "\u5728\u53f3\u4fa7\u63d2\u5165", 202 | "Cols": "\u5217", 203 | "Insert row after": "\u5728\u4e0b\u65b9\u63d2\u5165", 204 | "Width": "\u5bbd", 205 | "Cell properties": "\u5355\u5143\u683c\u5c5e\u6027", 206 | "Left": "\u5de6\u5bf9\u9f50", 207 | "Cut row": "\u526a\u5207\u884c", 208 | "Delete column": "\u5220\u9664\u5217", 209 | "Center": "\u5c45\u4e2d", 210 | "Merge cells": "\u5408\u5e76\u5355\u5143\u683c", 211 | "Insert template": "\u63d2\u5165\u6a21\u677f", 212 | "Templates": "\u6a21\u677f", 213 | "Background color": "\u80cc\u666f\u8272", 214 | "Custom...": "\u81ea\u5b9a\u4e49...", 215 | "Custom color": "\u81ea\u5b9a\u4e49\u989c\u8272", 216 | "No color": "\u65e0", 217 | "Text color": "\u6587\u5b57\u989c\u8272", 218 | "Table of Contents": "\u5185\u5bb9\u5217\u8868", 219 | "Show blocks": "\u663e\u793a\u533a\u5757\u8fb9\u6846", 220 | "Show invisible characters": "\u663e\u793a\u4e0d\u53ef\u89c1\u5b57\u7b26", 221 | "Words: {0}": "\u5b57\u6570\uff1a{0}", 222 | "Insert": "\u63d2\u5165", 223 | "File": "\u6587\u4ef6", 224 | "Edit": "\u7f16\u8f91", 225 | "Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u5728\u7f16\u8f91\u533a\u6309ALT-F9\u6253\u5f00\u83dc\u5355\uff0c\u6309ALT-F10\u6253\u5f00\u5de5\u5177\u680f\uff0c\u6309ALT-0\u67e5\u770b\u5e2e\u52a9", 226 | "Tools": "\u5de5\u5177", 227 | "View": "\u89c6\u56fe", 228 | "Table": "\u8868\u683c", 229 | "Format": "\u683c\u5f0f" 230 | } 231 | -------------------------------------------------------------------------------- /src/gifs/ajax.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bowencool/super-form/caa89a5c3ac94c690c384cae12500450ec64315f/src/gifs/ajax.gif -------------------------------------------------------------------------------- /src/gifs/drag.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bowencool/super-form/caa89a5c3ac94c690c384cae12500450ec64315f/src/gifs/drag.gif -------------------------------------------------------------------------------- /src/gifs/live.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bowencool/super-form/caa89a5c3ac94c690c384cae12500450ec64315f/src/gifs/live.gif -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | import Element from 'element-ui'; 3 | import App from './App'; 4 | import router from './router'; 5 | import store from './store'; 6 | import '@/components/icon-svg'; 7 | import '@/components/dynamic-form'; 8 | 9 | Vue.use(Element); 10 | 11 | Vue.config.productionTip = false; 12 | 13 | /* eslint-disable no-new */ 14 | new Vue({ 15 | el: '#app', 16 | router, 17 | store, 18 | render: h => h(App), 19 | }); 20 | -------------------------------------------------------------------------------- /src/router/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | import Router from 'vue-router'; 3 | import Preview from '@/views/preview/preview'; 4 | import Editor from '@/views/editor'; 5 | import EditorFormAside from '@/views/editor/form/aside'; 6 | import EditorFormMain from '@/views/editor/form/main'; 7 | import EditorTableAside from '@/views/editor/table/aside'; 8 | import EditorTableMain from '@/views/editor/table/main'; 9 | 10 | Vue.use(Router); 11 | 12 | export default new Router({ 13 | // mode: 'history', 14 | routes: [ 15 | { 16 | path: '/editor', 17 | redirect: '/editor/form', 18 | component: Editor, 19 | children: [ 20 | { 21 | path: 'form', 22 | components: { 23 | aside: EditorFormAside, 24 | main: EditorFormMain, 25 | }, 26 | }, 27 | { 28 | path: 'table', 29 | components: { 30 | aside: EditorTableAside, 31 | main: EditorTableMain, 32 | }, 33 | }, 34 | ], 35 | }, 36 | { 37 | path: '/preview', 38 | component: Preview, 39 | }, 40 | { 41 | path: '*', 42 | redirect: '/editor', 43 | }, 44 | ], 45 | }); 46 | -------------------------------------------------------------------------------- /src/store/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | import Vuex from 'vuex'; 3 | import form from './modules/form'; // 表单 4 | 5 | Vue.use(Vuex); 6 | 7 | const store = new Vuex.Store({ 8 | state: { 9 | itemKey: '', // 当前选中的item 10 | asideActiveName: 'items-list', // 侧边栏标签当前活动位置 11 | }, 12 | mutations: { 13 | SELECT_ITEM(state, newKey) { 14 | state.itemKey = newKey; 15 | // 只要itemKey变化, 就切换至'组件配置'页 16 | state.asideActiveName = 'item-config'; 17 | }, 18 | TOGGLE_ASIDE_ACTIVE(state, newName) { 19 | state.asideActiveName = newName; 20 | }, 21 | }, 22 | modules: { 23 | // todo 表格table 24 | form, 25 | }, 26 | }); 27 | 28 | export default store; 29 | -------------------------------------------------------------------------------- /src/store/modules/form.js: -------------------------------------------------------------------------------- 1 | export default { 2 | state: { 3 | inline: false, // 是否使用inline排版 4 | labelPosition: 'right', // 标签对齐方式 5 | labelWidth: '80px', // 标签宽度 6 | size: 'small', // 尺寸 7 | statusIcon: true, // 显示验证图标 8 | formItemList: [], 9 | }, 10 | mutations: { 11 | UPDATE_FORM(state, payload) { 12 | Object.assign(state, payload); 13 | }, 14 | }, 15 | }; 16 | -------------------------------------------------------------------------------- /src/utils/guid.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable no-bitwise */ 2 | export default function () { 3 | return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => { 4 | const r = Math.random() * 16 | 0; 5 | const v = c === 'x' ? r : (r & 0x3 | 0x8); 6 | return v.toString(16); 7 | }); 8 | } 9 | -------------------------------------------------------------------------------- /src/utils/request.js: -------------------------------------------------------------------------------- 1 | export default (url, method, body) => fetch(url, { 2 | method, 3 | body: JSON.stringify(body), 4 | headers: { 5 | 'Content-Type': 'application/json; charset=utf-8', 6 | }, 7 | }) 8 | .then(response => { 9 | if (response.status >= 200 && response.status < 300) { 10 | return response.json(); 11 | } 12 | throw new Error(response.statusText); 13 | }); 14 | -------------------------------------------------------------------------------- /src/views/editor/form/aside/availabel-item-list.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | export default { 3 | "input": { 4 | "type": 'input', // 必要, String 5 | // "subtype": 'text', 6 | "label": '文本', // 必要, String 7 | "disabled": false, //禁用, Boolean 8 | "readonly": false, //只读, Boolean 9 | // "block": true, //独占一行, Boolean, 如果选项太长也会自动换行 10 | "value": '', // 默认值 11 | "placeholder": '请输入一些文本', 12 | "rules": [ 13 | // 验证规则, Array 14 | // https://github.com/yiminghe/async-validator 15 | { "required": true, "message": '不能为空', 'trigger': 'blur' }, 16 | { "min": 1, "max": 8, "message": '长度在 1 到 8 个字符', 'trigger': 'blur' }, 17 | { "pattern": '^[\\w\\u4e00-\\u9fa5-_]+$', "message": '正则验证失败:^[\\w\\u4e00-\\u9fa5-_]+$', 'trigger': 'blur' }, 18 | { "sql": "SELECT {key} FROM balabala", "message": 'SQL验证失败', 'trigger': 'blur' } 19 | ], 20 | }, 21 | "number": { 22 | "type": 'number', // number 类型目前采用的是"输入前"限制, 使用rules验证会出现bug 23 | "label": '数字', 24 | "value": 16, 25 | "decimal1": 2, // 允许的小数位数 26 | "min": 0, 27 | "max": 99998, 28 | "prepend": '¥', // String, 前缀 29 | "append": '元', // String, 后缀(单位) 30 | }, 31 | "switch": { 32 | "type": 'switch', 33 | "label": '开关', 34 | "appearance": "switch", // 外观, 'switch'开关(默认) / checkbox勾选 35 | "value": true 36 | }, 37 | "radio": { 38 | "type": 'radio', 39 | "label": '单选', 40 | "value": '', 41 | // "options": [ 42 | // { 43 | // "value": 'opt1', 44 | // "label": '蒸羊羔', 45 | // "disabled": false 46 | // } 47 | // ], 48 | "button": false, // 按钮形状, inline模式下推荐开启, 多选框checkbox同样有效 49 | "border": true, // (非按钮形式)显示边框, inline模式下推荐开启, 多选框checkbox同样有效 50 | "rules": [ 51 | { "required": true, "message": '请选择一项', "trigger": 'blur' }, 52 | ], 53 | }, 54 | "checkbox": { 55 | "type": 'checkbox', 56 | "label": '多选', 57 | "value": [], 58 | "border": true, 59 | "button": false, 60 | // "max": 2, // 限制输入 61 | // "min": 1, 62 | // "options": [], 63 | "rules": [ 64 | { "type": "array", "required": true, "min": 1, "max": 2, "message": '请勾选1~2项' }, 65 | ], 66 | }, 67 | "select": { 68 | "type": 'select', 69 | "label": '下拉', 70 | "value": '', 71 | "disabled": false, 72 | "multiple": false, 73 | // "options": [], 74 | "placeholder": '请选择', 75 | "rules": [], 76 | }, 77 | "date": { 78 | "type": 'date', 79 | // "subtype": 'year', 80 | // "label": '年', 81 | "value": null, 82 | "disabled": false, 83 | // "valueFormat": 'yyyy', // 默认为Date对象, 形如"2017-12-12T05:39:34.000Z" 84 | // "viewFormat": 'yyyy年', // 显示在输入框中的格式, 如不填写, 则使用valueFormat, 仅 type=date 有效 85 | "rules": [ 86 | { required: "true", message: "此项为必填项" } 87 | ], 88 | "placeholder": '请选择' 89 | }, 90 | "cascader": { 91 | "type": 'cascader', 92 | "label": '级联选择', 93 | "disabled": false, 94 | "filterable": false, 95 | "value": null, 96 | "placeholder": '请选择', 97 | "rules": [ 98 | { "required": true, "type": 'array', "min": 1, "message": '请选择' }, 99 | ], 100 | }, 101 | "richtext": { 102 | "type": "richtext", 103 | "label": "内容", 104 | "value": '', 105 | } 106 | // { 107 | // "type": 'rate', 108 | // "label": '评分', 109 | // "key": 'rate1', 110 | // "value": 5, 111 | // }, 112 | // { 113 | // "type": 'color', 114 | // "label": '颜色', 115 | // "key": 'color1', 116 | // // 选择透明度 117 | // "showAlpha": true, 118 | // // 颜色格式, String, hsl / hsv / hex / rgb, 默认值为 hex(showAlpha=false) / rgb(showAlpha=true) 119 | // // "format": 'rgb', 120 | // // "value": 'rgba(19, 206, 102, 0.8)', 121 | // }, 122 | // { 123 | // "type": 'slider', // 可以限制范围, 也可以选择数字范围 124 | // "label": '滑块', 125 | // "key": 'slider1', 126 | // "value": 10, 127 | // // "block": true, 128 | // }, 129 | // { 130 | // "type": 'slider', 131 | // "label": '自定义范围', 132 | // "key": 'slider2', 133 | // "value": 70, 134 | // "block": true, 135 | // "showStops": true, // 显示间断点 136 | // "step": 5, // 默认为1 137 | // "min": 60, 138 | // "max": 90, 139 | // }, 140 | // { 141 | // "type": 'slider', 142 | // "isRange": true, // 选择范围 143 | // "label": '选择范围', 144 | // "key": 'slider3', 145 | // // "value": null, // 默认值为[min, max] 146 | // "block": true, 147 | // "min": 0, 148 | // "max": 100, 149 | // }, 150 | // { 151 | // "type": 'time', 152 | // "label": '时间', 153 | // "key": 'time1', 154 | // "valueFormat": 'HH:mm:ss A', 155 | // "placeholder": '选择时间', 156 | // "rules": [{ "required": true, "message": '请选择一个时间' }] 157 | // }, 158 | // { 159 | // "type": 'time', 160 | // "isRange": true, // 选择时间范围 161 | // "label": '时间范围', 162 | // "key": 'timeRange1', 163 | // "valueFormat": 'HH:mm:ss', 164 | // "viewFormat": 'HH:mm:ss', 165 | // // "value": null, // 返回格式: ['00:00', '00:00'] 166 | // "rules": [{ "type": "array", "required": true, "message": '请选择一个时间范围' }] 167 | // }, 168 | } 169 | -------------------------------------------------------------------------------- /src/views/editor/form/aside/editor-global.json: -------------------------------------------------------------------------------- 1 | { 2 | "inline": false, 3 | "labelPosition": "right", 4 | "labelWidth": "70px", 5 | "size": "mini", 6 | "statusIcon": true, 7 | "formItemList": [ 8 | { 9 | "type": "switch", 10 | "label": "内联模式", 11 | "key": "inline", 12 | "value": false 13 | }, 14 | { 15 | "type": "input", 16 | "subtype": "text", 17 | "label": "标签宽度", 18 | "key": "labelWidth", 19 | "value": "", 20 | "placeholder": "css width属性, 可不填, 但会影响对齐" 21 | }, 22 | { 23 | "type": "radio", 24 | "label": "标签对齐", 25 | "key": "labelPosition", 26 | "value": "right", 27 | "button": true, 28 | "options": [ 29 | { 30 | "value": "left", 31 | "label": "左对齐" 32 | }, 33 | { 34 | "value": "top", 35 | "label": "顶部对齐" 36 | }, 37 | { 38 | "value": "right", 39 | "label": "右对齐" 40 | } 41 | ] 42 | }, 43 | { 44 | "type": "select", 45 | "label": "尺寸", 46 | "key": "size", 47 | "value": "small", 48 | "options": [ 49 | { 50 | "value": "", 51 | "label": "默认" 52 | }, 53 | { 54 | "value": "medium", 55 | "label": "中" 56 | }, 57 | { 58 | "value": "small", 59 | "label": "小" 60 | }, 61 | { 62 | "value": "mini", 63 | "label": "迷你" 64 | } 65 | ] 66 | }, 67 | { 68 | "type": "switch", 69 | "label": "验证图标", 70 | "key": "statusIcon", 71 | "value": true 72 | } 73 | ] 74 | } 75 | -------------------------------------------------------------------------------- /src/views/editor/form/aside/editor-options.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 83 | 84 | 138 | -------------------------------------------------------------------------------- /src/views/editor/form/aside/editor-rules.vue: -------------------------------------------------------------------------------- 1 | 39 | 40 | 210 | -------------------------------------------------------------------------------- /src/views/editor/form/aside/editors-item/cascader.vue: -------------------------------------------------------------------------------- 1 | 23 | 24 | 37 | -------------------------------------------------------------------------------- /src/views/editor/form/aside/editors-item/checkbox.vue: -------------------------------------------------------------------------------- 1 | 26 | 27 | 41 | -------------------------------------------------------------------------------- /src/views/editor/form/aside/editors-item/date.vue: -------------------------------------------------------------------------------- 1 | 28 | 29 | 42 | -------------------------------------------------------------------------------- /src/views/editor/form/aside/editors-item/input.vue: -------------------------------------------------------------------------------- 1 | 23 | 24 | 38 | -------------------------------------------------------------------------------- /src/views/editor/form/aside/editors-item/number.vue: -------------------------------------------------------------------------------- 1 | 28 | 29 | 45 | -------------------------------------------------------------------------------- /src/views/editor/form/aside/editors-item/radio.vue: -------------------------------------------------------------------------------- 1 | 27 | 28 | 42 | -------------------------------------------------------------------------------- /src/views/editor/form/aside/editors-item/richtext.vue: -------------------------------------------------------------------------------- 1 | 23 | 24 | 37 | -------------------------------------------------------------------------------- /src/views/editor/form/aside/editors-item/select.vue: -------------------------------------------------------------------------------- 1 | 24 | 25 | 39 | -------------------------------------------------------------------------------- /src/views/editor/form/aside/editors-item/switch.vue: -------------------------------------------------------------------------------- 1 | 20 | 21 | 31 | -------------------------------------------------------------------------------- /src/views/editor/form/aside/index.vue: -------------------------------------------------------------------------------- 1 | 26 | 27 | 52 | 53 | 110 | -------------------------------------------------------------------------------- /src/views/editor/form/aside/items-list.vue: -------------------------------------------------------------------------------- 1 | 272 | 273 | 330 | -------------------------------------------------------------------------------- /src/views/editor/form/main/fake-form-item.vue: -------------------------------------------------------------------------------- 1 | 86 | 87 | 107 | -------------------------------------------------------------------------------- /src/views/editor/form/main/fake-form.vue: -------------------------------------------------------------------------------- 1 | 35 | 36 | 58 | 59 | 110 | -------------------------------------------------------------------------------- /src/views/editor/form/main/index.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 19 | -------------------------------------------------------------------------------- /src/views/editor/index.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 10 | -------------------------------------------------------------------------------- /src/views/editor/table/aside.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 12 | -------------------------------------------------------------------------------- /src/views/editor/table/availabel-list.js: -------------------------------------------------------------------------------- 1 | export default { 2 | showCheckBox: true, // 显示复选框 3 | showIndex: false, // 显示序号 4 | border: false, // 纵向边框 5 | stripe: false, // 斑马纹(隔行变色) 6 | // size: 'medium', // 表格尺寸, 可选值: 不填 / 'medium' / 'small' / 'mini' 7 | fit: false, // 列的宽度是否自撑开 8 | maxHeight: '650', // 最大高度, 内容过多出现滚动条(用来固定表头) 9 | pagination: { 10 | // 分页配置 11 | pageSize: 10, // 默认尺寸 12 | pageSizes: [10, 20, 50, 100], // 可选尺寸 13 | layout: 'total, sizes, prev, pager, next, jumper', //默认布局 14 | }, 15 | columns: [ 16 | // 列 17 | { 18 | key: 'id', // 字段名, 必要 19 | label: '编号', // 显示的标签, 必要 20 | sortable: true, // 可排序 21 | // width: '120', // 对应列的宽度 22 | minWidth: '120', //对应列的最小宽度 23 | fixed: true, // 列是否固定在左侧或者右侧,true 表示固定在左侧, 可选: true, 'left', 'right' 24 | // resizable: true, // 对应列是否可以通过拖动改变宽度(需要在 table 上设置 border 属性为true) 25 | align: 'left', // 对齐方式 left/center/right 26 | // showOverflowTooltip: true // 当内容过长被隐藏时显示 tooltip(可以保证内容不换行) 27 | }, 28 | { 29 | key: 'title', 30 | label: '标题', 31 | minWidth: '120', 32 | fixed: true, 33 | // showOverflowTooltip: true 34 | }, 35 | { 36 | key: 'domain', 37 | label: '域名', 38 | minWidth: '120', 39 | }, 40 | { 41 | key: 'ip', 42 | label: 'IP', 43 | minWidth: '140', 44 | }, 45 | { 46 | key: 'email', 47 | label: '邮箱', 48 | minWidth: '220', 49 | }, 50 | { key: 'name', label: '审核人', minWidth: '70' }, 51 | { key: 'date', label: '日期', sortable: true, minWidth: '100' }, 52 | { 53 | key: 'desc', 54 | label: '描述', 55 | minWidth: '200', 56 | showOverflowTooltip: true, 57 | }, 58 | ], 59 | }; 60 | -------------------------------------------------------------------------------- /src/views/editor/table/main.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 8 | -------------------------------------------------------------------------------- /src/views/preview/preview.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 41 | --------------------------------------------------------------------------------