├── .babelrc ├── .editorconfig ├── .gitignore ├── .postcssrc.js ├── README.md ├── build ├── build.js ├── check-versions.js ├── logo.png ├── utils.js ├── vue-loader.conf.js ├── webpack.base.conf.js ├── webpack.dev.conf.js └── webpack.prod.conf.js ├── config ├── dev.env.js ├── index.js ├── prod.env.js └── test.env.js ├── dist ├── index.html └── static │ ├── css │ ├── app.cfc0f2bd0296962e5c06d48a9026003b.css │ └── app.cfc0f2bd0296962e5c06d48a9026003b.css.map │ └── js │ ├── app.06c0c6b9f5d79fbc1631.js │ ├── app.06c0c6b9f5d79fbc1631.js.map │ ├── manifest.3ad1d5771e9b13dbdad2.js │ ├── manifest.3ad1d5771e9b13dbdad2.js.map │ ├── vendor.87666012dcdd7680bdf9.js │ └── vendor.87666012dcdd7680bdf9.js.map ├── index.html ├── package-lock.json ├── package.json ├── src ├── App.vue ├── assets │ └── logo.png ├── components │ ├── Editor.vue │ ├── Header.vue │ ├── NoteFolder.vue │ ├── NoteList.vue │ ├── Notepad.vue │ ├── ToolBar.vue │ ├── Trash.vue │ ├── TrashHeader.vue │ ├── TrashNoteList.vue │ └── TrashToolBar.vue ├── libs │ └── dateFormat.js ├── main.js ├── router │ └── index.js └── store │ ├── actions.js │ ├── getters.js │ ├── index.js │ ├── mutation-types.js │ ├── mutation.js │ └── state.js ├── static └── .gitkeep └── test ├── e2e ├── custom-assertions │ └── elementCount.js ├── nightwatch.conf.js ├── runner.js └── specs │ └── test.js └── unit ├── .eslintrc ├── jest.conf.js ├── setup.js └── specs └── HelloWorld.spec.js /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["env", { 4 | "modules": false, 5 | "targets": { 6 | "browsers": ["> 1%", "last 2 versions", "not ie <= 8"] 7 | } 8 | }], 9 | "stage-2" 10 | ], 11 | "plugins": ["transform-vue-jsx", "transform-runtime"], 12 | "env": { 13 | "test": { 14 | "presets": ["env", "stage-2"], 15 | "plugins": ["transform-vue-jsx", "transform-es2015-modules-commonjs", "dynamic-import-node"] 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules/ 3 | npm-debug.log* 4 | yarn-debug.log* 5 | yarn-error.log* 6 | /test/unit/coverage/ 7 | /test/e2e/reports/ 8 | selenium-debug.log 9 | 10 | # Editor directories and files 11 | .idea 12 | .vscode 13 | *.suo 14 | *.ntvs* 15 | *.njsproj 16 | *.sln 17 | -------------------------------------------------------------------------------- /.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 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # notepad-xiaomi 2 | 3 | > xiaomi notepad 4 | 5 | ## Build Setup 6 | 7 | ``` bash 8 | # install dependencies 9 | npm install 10 | 11 | # serve with hot reload at localhost:8080 12 | npm run dev 13 | 14 | # build for production with minification 15 | npm run build 16 | 17 | 来都来了留下你的小星星吧(页面右上角),你的小星星是对我最大的鼓励^_^... 18 | ``` 19 | 20 | For a detailed explanation on how things work, check out the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader). 21 | -------------------------------------------------------------------------------- /build/build.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | require('./check-versions')() 3 | 4 | process.env.NODE_ENV = 'production' 5 | 6 | const ora = require('ora') 7 | const rm = require('rimraf') 8 | const path = require('path') 9 | const chalk = require('chalk') 10 | const webpack = require('webpack') 11 | const config = require('../config') 12 | const webpackConfig = require('./webpack.prod.conf') 13 | 14 | const spinner = ora('building for production...') 15 | spinner.start() 16 | 17 | rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => { 18 | if (err) throw err 19 | webpack(webpackConfig, (err, stats) => { 20 | spinner.stop() 21 | if (err) throw err 22 | process.stdout.write(stats.toString({ 23 | colors: true, 24 | modules: false, 25 | children: false, // If you are using ts-loader, setting this to true will make TypeScript errors show up during build. 26 | chunks: false, 27 | chunkModules: false 28 | }) + '\n\n') 29 | 30 | if (stats.hasErrors()) { 31 | console.log(chalk.red(' Build failed with errors.\n')) 32 | process.exit(1) 33 | } 34 | 35 | console.log(chalk.cyan(' Build complete.\n')) 36 | console.log(chalk.yellow( 37 | ' Tip: built files are meant to be served over an HTTP server.\n' + 38 | ' Opening index.html over file:// won\'t work.\n' 39 | )) 40 | }) 41 | }) 42 | -------------------------------------------------------------------------------- /build/check-versions.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const chalk = require('chalk') 3 | const semver = require('semver') 4 | const packageConfig = require('../package.json') 5 | const shell = require('shelljs') 6 | 7 | function exec (cmd) { 8 | return require('child_process').execSync(cmd).toString().trim() 9 | } 10 | 11 | const versionRequirements = [ 12 | { 13 | name: 'node', 14 | currentVersion: semver.clean(process.version), 15 | versionRequirement: packageConfig.engines.node 16 | } 17 | ] 18 | 19 | if (shell.which('npm')) { 20 | versionRequirements.push({ 21 | name: 'npm', 22 | currentVersion: exec('npm --version'), 23 | versionRequirement: packageConfig.engines.npm 24 | }) 25 | } 26 | 27 | module.exports = function () { 28 | const warnings = [] 29 | 30 | for (let i = 0; i < versionRequirements.length; i++) { 31 | const mod = versionRequirements[i] 32 | 33 | if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) { 34 | warnings.push(mod.name + ': ' + 35 | chalk.red(mod.currentVersion) + ' should be ' + 36 | chalk.green(mod.versionRequirement) 37 | ) 38 | } 39 | } 40 | 41 | if (warnings.length) { 42 | console.log('') 43 | console.log(chalk.yellow('To use this template, you must update following to modules:')) 44 | console.log() 45 | 46 | for (let i = 0; i < warnings.length; i++) { 47 | const warning = warnings[i] 48 | console.log(' ' + warning) 49 | } 50 | 51 | console.log() 52 | process.exit(1) 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /build/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tianlang89757/vuex-notepad2/4f7784ccf1da9bb8a2a6ac1983699e4c487d92d3/build/logo.png -------------------------------------------------------------------------------- /build/utils.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const path = require('path') 3 | const config = require('../config') 4 | const ExtractTextPlugin = require('extract-text-webpack-plugin') 5 | const packageConfig = require('../package.json') 6 | 7 | exports.assetsPath = function (_path) { 8 | const assetsSubDirectory = process.env.NODE_ENV === 'production' 9 | ? config.build.assetsSubDirectory 10 | : config.dev.assetsSubDirectory 11 | 12 | return path.posix.join(assetsSubDirectory, _path) 13 | } 14 | 15 | exports.cssLoaders = function (options) { 16 | options = options || {} 17 | 18 | const cssLoader = { 19 | loader: 'css-loader', 20 | options: { 21 | sourceMap: options.sourceMap 22 | } 23 | } 24 | 25 | const postcssLoader = { 26 | loader: 'postcss-loader', 27 | options: { 28 | sourceMap: options.sourceMap 29 | } 30 | } 31 | 32 | // generate loader string to be used with extract text plugin 33 | function generateLoaders (loader, loaderOptions) { 34 | const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader] 35 | 36 | if (loader) { 37 | loaders.push({ 38 | loader: loader + '-loader', 39 | options: Object.assign({}, loaderOptions, { 40 | sourceMap: options.sourceMap 41 | }) 42 | }) 43 | } 44 | 45 | // Extract CSS when that option is specified 46 | // (which is the case during production build) 47 | if (options.extract) { 48 | return ExtractTextPlugin.extract({ 49 | use: loaders, 50 | fallback: 'vue-style-loader' 51 | }) 52 | } else { 53 | return ['vue-style-loader'].concat(loaders) 54 | } 55 | } 56 | 57 | // https://vue-loader.vuejs.org/en/configurations/extract-css.html 58 | return { 59 | css: generateLoaders(), 60 | postcss: generateLoaders(), 61 | less: generateLoaders('less'), 62 | sass: generateLoaders('sass', { indentedSyntax: true }), 63 | scss: generateLoaders('sass'), 64 | stylus: generateLoaders('stylus'), 65 | styl: generateLoaders('stylus') 66 | } 67 | } 68 | 69 | // Generate loaders for standalone style files (outside of .vue) 70 | exports.styleLoaders = function (options) { 71 | const output = [] 72 | const loaders = exports.cssLoaders(options) 73 | 74 | for (const extension in loaders) { 75 | const loader = loaders[extension] 76 | output.push({ 77 | test: new RegExp('\\.' + extension + '$'), 78 | use: loader 79 | }) 80 | } 81 | 82 | return output 83 | } 84 | 85 | exports.createNotifierCallback = () => { 86 | const notifier = require('node-notifier') 87 | 88 | return (severity, errors) => { 89 | if (severity !== 'error') return 90 | 91 | const error = errors[0] 92 | const filename = error.file && error.file.split('!').pop() 93 | 94 | notifier.notify({ 95 | title: packageConfig.name, 96 | message: severity + ': ' + error.name, 97 | subtitle: filename || '', 98 | icon: path.join(__dirname, 'logo.png') 99 | }) 100 | } 101 | } 102 | -------------------------------------------------------------------------------- /build/vue-loader.conf.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const utils = require('./utils') 3 | const config = require('../config') 4 | const isProduction = process.env.NODE_ENV === 'production' 5 | const sourceMapEnabled = isProduction 6 | ? config.build.productionSourceMap 7 | : config.dev.cssSourceMap 8 | 9 | module.exports = { 10 | loaders: utils.cssLoaders({ 11 | sourceMap: sourceMapEnabled, 12 | extract: isProduction 13 | }), 14 | cssSourceMap: sourceMapEnabled, 15 | cacheBusting: config.dev.cacheBusting, 16 | transformToRequire: { 17 | video: ['src', 'poster'], 18 | source: 'src', 19 | img: 'src', 20 | image: 'xlink:href' 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /build/webpack.base.conf.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const path = require('path') 3 | const utils = require('./utils') 4 | const config = require('../config') 5 | const vueLoaderConfig = require('./vue-loader.conf') 6 | 7 | function resolve (dir) { 8 | return path.join(__dirname, '..', dir) 9 | } 10 | 11 | 12 | 13 | module.exports = { 14 | context: path.resolve(__dirname, '../'), 15 | entry: { 16 | app: './src/main.js' 17 | }, 18 | output: { 19 | path: config.build.assetsRoot, 20 | filename: '[name].js', 21 | publicPath: process.env.NODE_ENV === 'production' 22 | ? config.build.assetsPublicPath 23 | : config.dev.assetsPublicPath 24 | }, 25 | resolve: { 26 | extensions: ['.js', '.vue', '.json'], 27 | alias: { 28 | 'vue$': 'vue/dist/vue.esm.js', 29 | '@': resolve('src'), 30 | } 31 | }, 32 | module: { 33 | rules: [ 34 | { 35 | test: /\.vue$/, 36 | loader: 'vue-loader', 37 | options: vueLoaderConfig 38 | }, 39 | { 40 | test: /\.js$/, 41 | loader: 'babel-loader', 42 | include: [resolve('src'), resolve('test'), resolve('node_modules/webpack-dev-server/client')] 43 | }, 44 | { 45 | test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, 46 | loader: 'url-loader', 47 | options: { 48 | limit: 10000, 49 | name: utils.assetsPath('img/[name].[hash:7].[ext]') 50 | } 51 | }, 52 | { 53 | test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/, 54 | loader: 'url-loader', 55 | options: { 56 | limit: 10000, 57 | name: utils.assetsPath('media/[name].[hash:7].[ext]') 58 | } 59 | }, 60 | { 61 | test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, 62 | loader: 'url-loader', 63 | options: { 64 | limit: 10000, 65 | name: utils.assetsPath('fonts/[name].[hash:7].[ext]') 66 | } 67 | } 68 | ] 69 | }, 70 | node: { 71 | // prevent webpack from injecting useless setImmediate polyfill because Vue 72 | // source contains it (although only uses it if it's native). 73 | setImmediate: false, 74 | // prevent webpack from injecting mocks to Node native modules 75 | // that does not make sense for the client 76 | dgram: 'empty', 77 | fs: 'empty', 78 | net: 'empty', 79 | tls: 'empty', 80 | child_process: 'empty' 81 | } 82 | } 83 | -------------------------------------------------------------------------------- /build/webpack.dev.conf.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const utils = require('./utils') 3 | const webpack = require('webpack') 4 | const config = require('../config') 5 | const merge = require('webpack-merge') 6 | const path = require('path') 7 | const baseWebpackConfig = require('./webpack.base.conf') 8 | const CopyWebpackPlugin = require('copy-webpack-plugin') 9 | const HtmlWebpackPlugin = require('html-webpack-plugin') 10 | const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin') 11 | const portfinder = require('portfinder') 12 | 13 | const HOST = process.env.HOST 14 | const PORT = process.env.PORT && Number(process.env.PORT) 15 | 16 | const devWebpackConfig = merge(baseWebpackConfig, { 17 | module: { 18 | rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap, usePostCSS: true }) 19 | }, 20 | // cheap-module-eval-source-map is faster for development 21 | devtool: config.dev.devtool, 22 | 23 | // these devServer options should be customized in /config/index.js 24 | devServer: { 25 | clientLogLevel: 'warning', 26 | historyApiFallback: { 27 | rewrites: [ 28 | { from: /.*/, to: path.posix.join(config.dev.assetsPublicPath, 'index.html') }, 29 | ], 30 | }, 31 | hot: true, 32 | contentBase: false, // since we use CopyWebpackPlugin. 33 | compress: true, 34 | host: HOST || config.dev.host, 35 | port: PORT || config.dev.port, 36 | open: config.dev.autoOpenBrowser, 37 | overlay: config.dev.errorOverlay 38 | ? { warnings: false, errors: true } 39 | : false, 40 | publicPath: config.dev.assetsPublicPath, 41 | proxy: config.dev.proxyTable, 42 | quiet: true, // necessary for FriendlyErrorsPlugin 43 | watchOptions: { 44 | poll: config.dev.poll, 45 | } 46 | }, 47 | plugins: [ 48 | new webpack.DefinePlugin({ 49 | 'process.env': require('../config/dev.env') 50 | }), 51 | new webpack.HotModuleReplacementPlugin(), 52 | new webpack.NamedModulesPlugin(), // HMR shows correct file names in console on update. 53 | new webpack.NoEmitOnErrorsPlugin(), 54 | // https://github.com/ampedandwired/html-webpack-plugin 55 | new HtmlWebpackPlugin({ 56 | filename: 'index.html', 57 | template: 'index.html', 58 | inject: true 59 | }), 60 | // copy custom static assets 61 | new CopyWebpackPlugin([ 62 | { 63 | from: path.resolve(__dirname, '../static'), 64 | to: config.dev.assetsSubDirectory, 65 | ignore: ['.*'] 66 | } 67 | ]) 68 | ] 69 | }) 70 | 71 | module.exports = new Promise((resolve, reject) => { 72 | portfinder.basePort = process.env.PORT || config.dev.port 73 | portfinder.getPort((err, port) => { 74 | if (err) { 75 | reject(err) 76 | } else { 77 | // publish the new Port, necessary for e2e tests 78 | process.env.PORT = port 79 | // add port to devServer config 80 | devWebpackConfig.devServer.port = port 81 | 82 | // Add FriendlyErrorsPlugin 83 | devWebpackConfig.plugins.push(new FriendlyErrorsPlugin({ 84 | compilationSuccessInfo: { 85 | messages: [`Your application is running here: http://${devWebpackConfig.devServer.host}:${port}`], 86 | }, 87 | onErrors: config.dev.notifyOnErrors 88 | ? utils.createNotifierCallback() 89 | : undefined 90 | })) 91 | 92 | resolve(devWebpackConfig) 93 | } 94 | }) 95 | }) 96 | -------------------------------------------------------------------------------- /build/webpack.prod.conf.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const path = require('path') 3 | const utils = require('./utils') 4 | const webpack = require('webpack') 5 | const config = require('../config') 6 | const merge = require('webpack-merge') 7 | const baseWebpackConfig = require('./webpack.base.conf') 8 | const CopyWebpackPlugin = require('copy-webpack-plugin') 9 | const HtmlWebpackPlugin = require('html-webpack-plugin') 10 | const ExtractTextPlugin = require('extract-text-webpack-plugin') 11 | const OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin') 12 | const UglifyJsPlugin = require('uglifyjs-webpack-plugin') 13 | 14 | const env = process.env.NODE_ENV === 'testing' 15 | ? require('../config/test.env') 16 | : require('../config/prod.env') 17 | 18 | const webpackConfig = merge(baseWebpackConfig, { 19 | module: { 20 | rules: utils.styleLoaders({ 21 | sourceMap: config.build.productionSourceMap, 22 | extract: true, 23 | usePostCSS: true 24 | }) 25 | }, 26 | devtool: config.build.productionSourceMap ? config.build.devtool : false, 27 | output: { 28 | path: config.build.assetsRoot, 29 | filename: utils.assetsPath('js/[name].[chunkhash].js'), 30 | chunkFilename: utils.assetsPath('js/[id].[chunkhash].js') 31 | }, 32 | plugins: [ 33 | // http://vuejs.github.io/vue-loader/en/workflow/production.html 34 | new webpack.DefinePlugin({ 35 | 'process.env': env 36 | }), 37 | new UglifyJsPlugin({ 38 | uglifyOptions: { 39 | compress: { 40 | warnings: false 41 | } 42 | }, 43 | sourceMap: config.build.productionSourceMap, 44 | parallel: true 45 | }), 46 | // extract css into its own file 47 | new ExtractTextPlugin({ 48 | filename: utils.assetsPath('css/[name].[contenthash].css'), 49 | // Setting the following option to `false` will not extract CSS from codesplit chunks. 50 | // Their CSS will instead be inserted dynamically with style-loader when the codesplit chunk has been loaded by webpack. 51 | // It's currently set to `true` because we are seeing that sourcemaps are included in the codesplit bundle as well when it's `false`, 52 | // increasing file size: https://github.com/vuejs-templates/webpack/issues/1110 53 | allChunks: true, 54 | }), 55 | // Compress extracted CSS. We are using this plugin so that possible 56 | // duplicated CSS from different components can be deduped. 57 | new OptimizeCSSPlugin({ 58 | cssProcessorOptions: config.build.productionSourceMap 59 | ? { safe: true, map: { inline: false } } 60 | : { safe: true } 61 | }), 62 | // generate dist index.html with correct asset hash for caching. 63 | // you can customize output by editing /index.html 64 | // see https://github.com/ampedandwired/html-webpack-plugin 65 | new HtmlWebpackPlugin({ 66 | filename: process.env.NODE_ENV === 'testing' 67 | ? 'index.html' 68 | : config.build.index, 69 | template: 'index.html', 70 | inject: true, 71 | minify: { 72 | removeComments: true, 73 | collapseWhitespace: true, 74 | removeAttributeQuotes: true 75 | // more options: 76 | // https://github.com/kangax/html-minifier#options-quick-reference 77 | }, 78 | // necessary to consistently work with multiple chunks via CommonsChunkPlugin 79 | chunksSortMode: 'dependency' 80 | }), 81 | // keep module.id stable when vendor modules does not change 82 | new webpack.HashedModuleIdsPlugin(), 83 | // enable scope hoisting 84 | new webpack.optimize.ModuleConcatenationPlugin(), 85 | // split vendor js into its own file 86 | new webpack.optimize.CommonsChunkPlugin({ 87 | name: 'vendor', 88 | minChunks (module) { 89 | // any required modules inside node_modules are extracted to vendor 90 | return ( 91 | module.resource && 92 | /\.js$/.test(module.resource) && 93 | module.resource.indexOf( 94 | path.join(__dirname, '../node_modules') 95 | ) === 0 96 | ) 97 | } 98 | }), 99 | // extract webpack runtime and module manifest to its own file in order to 100 | // prevent vendor hash from being updated whenever app bundle is updated 101 | new webpack.optimize.CommonsChunkPlugin({ 102 | name: 'manifest', 103 | minChunks: Infinity 104 | }), 105 | // This instance extracts shared chunks from code splitted chunks and bundles them 106 | // in a separate chunk, similar to the vendor chunk 107 | // see: https://webpack.js.org/plugins/commons-chunk-plugin/#extra-async-commons-chunk 108 | new webpack.optimize.CommonsChunkPlugin({ 109 | name: 'app', 110 | async: 'vendor-async', 111 | children: true, 112 | minChunks: 3 113 | }), 114 | 115 | // copy custom static assets 116 | new CopyWebpackPlugin([ 117 | { 118 | from: path.resolve(__dirname, '../static'), 119 | to: config.build.assetsSubDirectory, 120 | ignore: ['.*'] 121 | } 122 | ]) 123 | ] 124 | }) 125 | 126 | if (config.build.productionGzip) { 127 | const CompressionWebpackPlugin = require('compression-webpack-plugin') 128 | 129 | webpackConfig.plugins.push( 130 | new CompressionWebpackPlugin({ 131 | asset: '[path].gz[query]', 132 | algorithm: 'gzip', 133 | test: new RegExp( 134 | '\\.(' + 135 | config.build.productionGzipExtensions.join('|') + 136 | ')$' 137 | ), 138 | threshold: 10240, 139 | minRatio: 0.8 140 | }) 141 | ) 142 | } 143 | 144 | if (config.build.bundleAnalyzerReport) { 145 | const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin 146 | webpackConfig.plugins.push(new BundleAnalyzerPlugin()) 147 | } 148 | 149 | module.exports = webpackConfig 150 | -------------------------------------------------------------------------------- /config/dev.env.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const merge = require('webpack-merge') 3 | const prodEnv = require('./prod.env') 4 | 5 | module.exports = merge(prodEnv, { 6 | NODE_ENV: '"development"' 7 | }) 8 | -------------------------------------------------------------------------------- /config/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | // Template version: 1.3.1 3 | // see http://vuejs-templates.github.io/webpack for documentation. 4 | 5 | const path = require('path') 6 | 7 | module.exports = { 8 | dev: { 9 | 10 | // Paths 11 | assetsSubDirectory: 'static', 12 | assetsPublicPath: '/', 13 | proxyTable: {}, 14 | 15 | // Various Dev Server settings 16 | host: 'localhost', // can be overwritten by process.env.HOST 17 | port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined 18 | autoOpenBrowser: false, 19 | errorOverlay: true, 20 | notifyOnErrors: true, 21 | poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions- 22 | 23 | 24 | /** 25 | * Source Maps 26 | */ 27 | 28 | // https://webpack.js.org/configuration/devtool/#development 29 | devtool: 'cheap-module-eval-source-map', 30 | 31 | // If you have problems debugging vue-files in devtools, 32 | // set this to false - it *may* help 33 | // https://vue-loader.vuejs.org/en/options.html#cachebusting 34 | cacheBusting: true, 35 | 36 | cssSourceMap: true 37 | }, 38 | 39 | build: { 40 | // Template for index.html 41 | index: path.resolve(__dirname, '../dist/index.html'), 42 | 43 | // Paths 44 | assetsRoot: path.resolve(__dirname, '../dist'), 45 | assetsSubDirectory: 'static', 46 | assetsPublicPath: './', 47 | 48 | /** 49 | * Source Maps 50 | */ 51 | 52 | productionSourceMap: true, 53 | // https://webpack.js.org/configuration/devtool/#production 54 | devtool: '#source-map', 55 | 56 | // Gzip off by default as many popular static hosts such as 57 | // Surge or Netlify already gzip all static assets for you. 58 | // Before setting to `true`, make sure to: 59 | // npm install --save-dev compression-webpack-plugin 60 | productionGzip: false, 61 | productionGzipExtensions: ['js', 'css'], 62 | 63 | // Run the build command with an extra argument to 64 | // View the bundle analyzer report after build finishes: 65 | // `npm run build --report` 66 | // Set to `true` or `false` to always turn it on or off 67 | bundleAnalyzerReport: process.env.npm_config_report 68 | } 69 | } -------------------------------------------------------------------------------- /config/prod.env.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | module.exports = { 3 | NODE_ENV: '"production"' 4 | } 5 | -------------------------------------------------------------------------------- /config/test.env.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const merge = require('webpack-merge') 3 | const devEnv = require('./dev.env') 4 | 5 | module.exports = merge(devEnv, { 6 | NODE_ENV: '"testing"' 7 | }) 8 | -------------------------------------------------------------------------------- /dist/index.html: -------------------------------------------------------------------------------- 1 | notepad-xiaomi
-------------------------------------------------------------------------------- /dist/static/css/app.cfc0f2bd0296962e5c06d48a9026003b.css: -------------------------------------------------------------------------------- 1 | body,html{height:100%}body,html,li,ul{margin:0;padding:0}li,ul{list-style:none}#app{width:100%;height:100%;margin:0 auto;font-family:Microsoft YaHei;background-color:#fbfbfb;font-size:.7rem}.notepad[data-v-74d53388]{position:relative;height:100%}.header .flex[data-v-4a395ce8]{padding:0 1rem;height:2.5rem;line-height:2.5rem}.header .flex .icon[data-v-4a395ce8]{font-size:12px;color:#aaa;vertical-align:middle;cursor:pointer}.header.visible[data-v-4a395ce8]{padding-top:.5rem}.header .visible[data-v-4a395ce8]{display:none}.raised-button[data-v-4a395ce8]{height:1.5rem;min-width:.5rem}.search[data-v-4a395ce8]{position:relative;margin:0 .5rem;border:1px solid #eee;background:#fff}.search .icon[data-v-4a395ce8]{position:absolute;top:.3rem;left:.2rem;color:#ccc;vertical-align:middle;cursor:pointer}.search input[data-v-4a395ce8]{height:1.8rem;border:0;width:100%;padding-left:1.5rem;outline:none}.slide-fade-enter-active[data-v-4a395ce8]{transition:all .3s ease}.slide-fade-leave-active[data-v-4a395ce8]{transition:all .8s cubic-bezier(1,.5,.8,1)}.slide-fade-enter[data-v-4a395ce8],.slide-fade-leave-to[data-v-4a395ce8]{transform:translateY(10px);opacity:0}.noteList[data-v-55204add]{padding:1rem 0}.noteList li[data-v-55204add]{position:relative;background:#fff;border:1px solid #eee;cursor:pointer;overflow:hidden}.noteList li p[data-v-55204add]{margin-bottom:0;height:50px}.noteList.list li[data-v-55204add]{margin-bottom:1rem;padding:.5rem 1rem}.noteList.list li .checkbox[data-v-55204add]{position:absolute;right:.5rem;top:.3rem}.noteList.grid li[data-v-55204add]{width:50%;padding:1rem}.noteList.grid[data-v-55204add]{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem}.noteList.grid li[data-v-55204add]{width:48.7%;margin-bottom:.5rem;display:inline-block}.noteList.grid li .checkbox[data-v-55204add]{position:absolute;right:.5rem;top:.8rem}.noteList li h4[data-v-55204add]{margin:0;padding:0 0 .5rem;border-bottom:1px solid #eee;font-weight:400;color:#ffca00}.noteList.grid li h4[data-v-55204add]{border:none;color:#aeaeae;padding:0}.toolBar[data-v-a076ac20]{position:absolute;bottom:0;width:100%}.addNote[data-v-a076ac20]{padding:1rem;text-align:right}.float-button[data-v-a076ac20]{text-align:center;height:3rem;width:3rem;line-height:3rem;font-size:20px}.toolBtn[data-v-a076ac20]{height:3rem;line-height:3rem;background:#fff;border-top:1px solid #ddd;text-align:center;color:#777}.toolBtn .icon[data-v-a076ac20]{display:inline-block;margin:0 2rem;width:2rem;height:2rem;line-height:2rem;border-radius:2rem;border:1px solid #ddd;text-align:center;cursor:pointer}.edit-panel[data-v-7371ce79]{position:relative;height:100%}.edit-panel .edit-tool[data-v-7371ce79]{padding:.5rem;height:2.5rem;line-height:2.5rem}.edit-panel .back-list[data-v-7371ce79]{vertical-align:text-bottom;margin-right:.5rem;cursor:pointer;vertical-align:sub}.edit-panel .saveNote[data-v-7371ce79]{float:right;color:#ffca00;cursor:pointer}.edit-panel .edit-area[data-v-7371ce79]{position:absolute;top:2.5rem;bottom:0;padding:5px 15px;width:100%;border:0;resize:none;outline:none;background:#fbfbfb}.header[data-v-34119840]{padding:0 .5rem;height:40px;line-height:36px;border:1px solid #eee}.header .back-list[data-v-34119840]{vertical-align:sub;margin-right:.5rem;cursor:pointer}.folder-list .icon[data-v-34119840]{margin-right:1rem;color:#aaa}.folder-list li span[data-v-34119840]{margin:.5rem 1rem;height:20px;display:inline-block;vertical-align:middle}.folder-list ul[data-v-34119840]{margin-top:1rem}.folder-list li[data-v-34119840]{padding:1rem;background:#fff;cursor:pointer}.clearfix[data-v-34119840]:after{display:block;clear:both;content:"";visibility:hidden;height:0}.clearfix[data-v-34119840]{zoom:1}.pull-left[data-v-34119840]{float:left}.pull-right[data-v-34119840]{float:right}.trash-header .flex[data-v-40fd331c]{padding:0 1rem;height:2.5rem;line-height:2.5rem}.trash-header .flex .icon[data-v-40fd331c]{font-size:12px;color:#aaa;vertical-align:middle;cursor:pointer}.trash-header .back-list[data-v-40fd331c]{vertical-align:sub;margin-right:.5rem;cursor:pointer}.trash-header .raised-button[data-v-40fd331c]{height:1.5rem;min-width:.5rem}.trash-notelist .trash-tip[data-v-792a749d]{padding:.6rem 1.5rem;color:#ffca00;background:#fdf9cf;border-top:1px solid #ffde60;border-bottom:1px solid #ffde60}.noteList[data-v-792a749d]{padding:1rem 0}.noteList li[data-v-792a749d]{position:relative;background:#fff;border:1px solid #eee;cursor:pointer;overflow:hidden}.noteList li p[data-v-792a749d]{margin-bottom:0;height:50px}.noteList.list li[data-v-792a749d]{margin-bottom:1rem;padding:.5rem 1rem}.noteList.list li .checkbox[data-v-792a749d]{position:absolute;right:.5rem;top:.3rem}.noteList.grid li[data-v-792a749d]{width:50%;padding:1rem}.noteList.grid[data-v-792a749d]{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem}.noteList.grid li[data-v-792a749d]{width:48.7%;margin-bottom:.5rem;display:inline-block}.noteList.grid li .checkbox[data-v-792a749d]{position:absolute;right:.5rem;top:.8rem}.noteList li h4[data-v-792a749d]{margin:0;padding:0 0 .5rem;border-bottom:1px solid #eee;font-weight:400;color:#ffca00}.noteList.grid li h4[data-v-792a749d]{border:none;color:#aeaeae;padding:0}.toolBar[data-v-56313116]{position:absolute;bottom:0;width:100%}.addNote[data-v-56313116]{padding:1rem;text-align:right}.float-button[data-v-56313116]{text-align:center;line-height:56px;font-size:22px}.toolBtn[data-v-56313116]{height:3rem;line-height:3rem;background:#fff;border-top:1px solid #ddd;text-align:center;color:#777}.toolBtn .icon[data-v-56313116]{display:inline-block;margin:0 2rem;width:2rem;height:2rem;line-height:2rem;border-radius:2rem;border:1px solid #ddd;text-align:center;cursor:pointer} 2 | /*! 3 | * Muse UI v2.1.0 (https://github.com/myronliu347/vue-carbon) 4 | * (c) 2017 Myron Liu 5 | * Released under the MIT License. 6 | */ 7 | /*! normalize.css v4.1.1 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block}audio:not([controls]){display:none;height:0}progress{vertical-align:baseline}[hidden],template{display:none}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:inherit;font-weight:bolder}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}svg:not(:root){overflow:hidden}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}button,input,select,textarea{font:inherit;margin:0}optgroup{font-weight:700}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-input-placeholder{color:inherit;opacity:.54}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}*,:after,:before{box-sizing:border-box}body{line-height:1.5;font-size:14px;font-weight:400;width:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body,html{overflow-x:hidden;overflow-y:auto}pre{white-space:pre-wrap;word-break:break-all;margin:0}a{text-decoration:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none}.mu-icon{font-size:24px;cursor:inherit}.mu-back-up[data-v-7fd436bc]{position:fixed;z-index:3;cursor:pointer;display:block;border-radius:4px}.mu-back-up-default[data-v-7fd436bc]{background-color:rgba(126,87,194,.6);border-radius:2px;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:all .2s ease-in-out;display:block}.mu-back-up i[data-v-7fd436bc]{color:#fff;font-size:24px;padding:8px 12px}.mu-badge-container{display:inline-block;position:relative}.mu-badge{font-size:10px;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;padding:0 6px;line-height:1.5;font-size:12px;font-style:normal;border-radius:3px;overflow:hidden}.mu-badge-float{position:absolute;top:-12px;right:-12px}.mu-badge-circle{border-radius:50%;padding:0;width:24px;height:24px;overflow:hidden}.mu-badge-primary{background-color:#7e57c2}.mu-breadcrumb-item-link:active i[data-v-64be4c11],.mu-breadcrumb-item-link:focus i[data-v-64be4c11],.mu-breadcrumb-item-link:hover i[data-v-64be4c11]{color:#7e57c2}.mu-breadcrumb-item-current[data-v-64be4c11]{font-weight:700}.mu-breadcrumb-item-separator[data-v-64be4c11]{margin:0 8px;color:#d7dde4}.mu-appbar{-ms-flex-item-align:start;align-self:flex-start;background-color:#7e57c2;height:56px;padding:0 8px;width:100%;z-index:3}.mu-appbar,.mu-appbar>.left,.mu-appbar>.right{display:-ms-flexbox;display:flex;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-align:center;align-items:center;-webkit-box-flex:0;-webkit-flex-shrink:0;-ms-flex:0 0 auto;-ms-flex-negative:0;flex-shrink:0}.mu-appbar>.left,.mu-appbar>.right{height:100%}.mu-appbar .mu-icon-button{color:inherit}.mu-appbar .mu-flat-button{color:inherit;height:100%;line-height:100%;min-width:auto}.mu-appbar-title{-ms-flex:1;flex:1;padding-left:8px;padding-right:8px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:20px;font-weight:400;line-height:56px}@media (min-width:480px){.mu-appbar-title{line-height:64px}.mu-appbar{height:64px}.mu-appbar-title{font-size:24px}}.mu-icon-button{position:relative;display:inline-block;overflow:visible;line-height:1;width:48px;height:48px;border-radius:50%;font-size:24px;padding:12px;border:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;color:inherit;text-decoration:none;transition-duration:.3s;transition-timing-function:cubic-bezier(.23,1,.32,1);transform:translateZ(0);-webkit-box-flex:0;-webkit-flex-shrink:0;-ms-flex:0 0 auto;-ms-flex-negative:0;flex-shrink:0;margin:0;outline:0;cursor:pointer}.mu-icon-button .mu-circle-ripple{color:rgba(0,0,0,.87)}.mu-icon-button.disabled{color:rgba(0,0,0,.38);cursor:not-allowed}.mu-ripple-wrapper{overflow:hidden}.mu-circle-ripple,.mu-ripple-wrapper{height:100%;width:100%;position:absolute;top:0;left:0}.mu-circle-ripple{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-radius:50%;background-color:currentColor;background-clip:padding-box;opacity:.1}.mu-ripple-enter-active,.mu-ripple-leave-active{transition:opacity 2s cubic-bezier(.23,1,.32,1),transform .45s cubic-bezier(.23,1,.32,1)}.mu-ripple-enter{transform:scale(0)}.mu-ripple-leave-active{opacity:0!important}.mu-focus-ripple-wrapper{height:100%;width:100%;position:absolute;top:0;left:0;overflow:hidden}.mu-focus-ripple{position:absolute;height:100%;width:100%;border-radius:50%;opacity:.16;background-color:currentColor;animation:a .75s cubic-bezier(.445,.05,.55,.95);animation-iteration-count:infinite;animation-direction:alternate}@keyframes a{0%{transform:scale(.72)}to{transform:scale(.85)}}.mu-tooltip{position:absolute;font-size:10px;line-height:22px;padding:0 8px;z-index:5;overflow:hidden;top:-1000px;border-radius:2px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0;transition:top 0ms cubic-bezier(.23,1,.32,1) .45s,transform .45s cubic-bezier(.23,1,.32,1) 0ms,opacity .45s cubic-bezier(.23,1,.32,1) 0ms}.mu-tooltip.when-shown{opacity:.9;transition:top 0ms cubic-bezier(.23,1,.32,1) 0ms,transform .45s cubic-bezier(.23,1,.32,1) 0ms,opacity .45s cubic-bezier(.23,1,.32,1) 0ms}.mu-tooltip.touched{font-size:14px;line-height:32px;padding:0 16px}.mu-tooltip-ripple{position:absolute;transform:translate(-50%,-50%);border-radius:50%;background-color:transparent;transition:width 0ms cubic-bezier(.23,1,.32,1) .45s,height 0ms cubic-bezier(.23,1,.32,1) .45s,background-color .45s cubic-bezier(.23,1,.32,1) 0ms}.mu-tooltip-ripple.when-shown{transition:width .45s cubic-bezier(.23,1,.32,1) 0ms,height .45s cubic-bezier(.23,1,.32,1) 0ms,background-color .45s cubic-bezier(.23,1,.32,1) 0ms}.mu-tooltip-label{white-space:nowrap;position:relative}.mu-flat-button{display:inline-block;overflow:hidden;position:relative;border-radius:2px;height:36px;line-height:36px;min-width:88px;transition-duration:.3s;transition-timing-function:cubic-bezier(.23,1,.32,1);transform:translateZ(0);text-decoration:none;text-transform:uppercase;border:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;-webkit-box-flex:0;-webkit-flex-shrink:0;-ms-flex:0 0 auto;-ms-flex-negative:0;flex-shrink:0;margin:0;outline:0;padding:0;cursor:pointer}.mu-flat-button.hover{background-color:rgba(0,0,0,.1)}.mu-flat-button.disabled{color:rgba(0,0,0,.38);cursor:not-allowed;background:none}.mu-flat-button .mu-icon{vertical-align:middle;margin-left:12px;margin-right:0}.mu-flat-button .mu-icon+.mu-flat-button-label{padding-left:8px}.mu-flat-button.no-label .mu-icon{margin-left:0}.mu-flat-button.label-before{padding-right:8px}.mu-flat-button.label-before .mu-icon{margin-right:4px;margin-left:0}.mu-flat-button.label-before .mu-flat-button-label{padding-right:8px}.mu-flat-button-wrapper{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;width:100%;height:100%}.mu-flat-button-primary{color:#7e57c2}.mu-flat-button-label{vertical-align:middle;padding-right:16px;padding-left:16px;font-size:14px}.mu-raised-button{display:inline-block;overflow:hidden;position:relative;border-radius:2px;height:36px;line-height:36px;min-width:88px;transition-duration:.3s;transition-timing-function:cubic-bezier(.23,1,.32,1);transform:translateZ(0);text-decoration:none;text-transform:uppercase;border:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-box-flex:0;-webkit-flex-shrink:0;-ms-flex:0 0 auto;-ms-flex-negative:0;flex-shrink:0;margin:0;outline:0;padding:0;cursor:pointer;box-shadow:0 1px 6px rgba(0,0,0,.117647),0 1px 4px rgba(0,0,0,.117647)}.mu-raised-button.focus{box-shadow:0 3px 10px rgba(0,0,0,.156863),0 3px 10px rgba(0,0,0,.227451)}.mu-raised-button.disabled{cursor:not-allowed;box-shadow:none}.mu-raised-button.disabled.hover,.mu-raised-button.disabled:active,.mu-raised-button.disabled:hover{box-shadow:none}.mu-raised-button.disabled.hover .mu-raised-button-wrapper,.mu-raised-button.disabled:active .mu-raised-button-wrapper,.mu-raised-button.disabled:hover .mu-raised-button-wrapper{background-color:transparent}.mu-raised-button .mu-icon{vertical-align:middle;margin-left:12px;margin-right:0}.mu-raised-button .mu-icon+.mu-raised-button-label{padding-left:8px}.mu-raised-button.no-label .mu-icon{margin:0}.mu-raised-button.label-before .mu-raised-button-wrapper{padding-right:8px}.mu-raised-button.label-before .mu-icon{margin-right:4px;margin-left:0}.mu-raised-button.label-before .mu-raised-button-label{padding-right:8px}.mu-raised-button:active{box-shadow:0 3px 10px rgba(0,0,0,.156863),0 3px 10px rgba(0,0,0,.227451)}.mu-raised-button-wrapper{border-radius:2px;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;width:100%;height:100%}.mu-raised-button-primary{background-color:#7e57c2}.mu-raised-button-full{width:100%}.mu-raised-button.mu-raised-button-inverse{color:#fff}.mu-raised-button.mu-raised-button-inverse .mu-circle-ripple{opacity:.3}.mu-raised-button.mu-raised-button-inverse.hover .mu-raised-button-wrapper{background-color:hsla(0,0%,100%,.3)}.mu-raised-button-label{vertical-align:middle;padding-right:16px;padding-left:16px}.mu-float-button{position:relative;display:inline-block;overflow:visible;line-height:1;width:56px;height:56px;border-radius:50%;border:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#7e57c2;text-decoration:none;transition-duration:.3s;transition-timing-function:cubic-bezier(.23,1,.32,1);transform:translateZ(0);-webkit-box-flex:0;-webkit-flex-shrink:0;-ms-flex:0 0 auto;-ms-flex-negative:0;flex-shrink:0;margin:0;outline:0;padding:0;cursor:pointer;box-shadow:0 3px 10px rgba(0,0,0,.156863),0 3px 10px rgba(0,0,0,.227451)}.mu-float-button .mu-circle-ripple{opacity:.3}.mu-float-button.disabled{cursor:not-allowed;background-color:#e6e6e6;box-shadow:none}.mu-float-button.disabled.hover,.mu-float-button.disabled:active,.mu-float-button.disabled:hover{box-shadow:none}.mu-float-button.disabled.hover .mu-float-button-wrapper,.mu-float-button.disabled:active .mu-float-button-wrapper,.mu-float-button.disabled:hover .mu-float-button-wrapper{background-color:transparent}.mu-float-button.hover,.mu-float-button:active{box-shadow:0 10px 30px rgba(0,0,0,.188235),0 6px 10px rgba(0,0,0,.227451)}.mu-float-button-wrapper{border-radius:50%;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;position:absolute;left:0;top:0;right:0;bottom:0}.mu-float-button-mini{width:40px;height:40px}.mu-content-block{padding:8px 16px;width:100%}.mu-content-block p{margin-top:1em;margin-bottom:1em}.mu-content-block p:first-child{margin-top:0}.mu-content-block p:last-child{margin-bottom:0}.mu-list{padding:8px 0;width:100%;position:relative;overflow-x:hidden;overflow-y:visible}.mu-list .mu-sub-header:first-child{margin-top:-8px}.mu-item-wrapper{display:block;color:inherit;position:relative;outline:none;cursor:pointer}.mu-item-wrapper.disabled{cursor:default}.mu-item{min-height:48px;display:-ms-flexbox;display:flex;padding:16px;position:relative}.mu-item.show-left{padding-left:72px}.mu-item.show-right{padding-right:56px}.mu-item.has-avatar{min-height:56px}.mu-item.selected{color:#7e57c2}.mu-item-toggle-button{color:rgba(0,0,0,.87);position:absolute;right:4px;top:0}.mu-item-left,.mu-item-right{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:start;justify-content:flex-start;width:40px;height:100%;position:absolute;color:#757575;top:0;max-height:72px}.mu-item-left{left:16px}.mu-item.selected .mu-item-left{color:#7e57c2}.mu-item-right{right:12px;-ms-flex-pack:center;justify-content:center}.mu-item-right>.mu-icon-button,.mu-item-right>.mu-icon-menu{-ms-flex-item-align:start;align-self:flex-start}.mu-item-content{width:100%;-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center}.mu-item-title-row{display:-ms-flexbox;display:flex;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-align:center;align-items:center;position:relative;width:100%;line-height:1}.mu-item-title{-ms-flex:1;flex:1;display:block;font-size:16px;max-width:100%}.mu-item-sub-title{line-height:1;margin-top:4px}.mu-item-after{margin-left:auto;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.mu-item-text{display:-webkit-box;-webkit-line-clamp:2;position:relative;overflow:hidden;font-size:14px;line-height:18px;margin-top:4px;max-height:40px;max-width:100%;text-overflow:ellipsis;word-break:break-all}.mu-item-svg-icon{display:inline-block;width:24px;height:24px;stroke-width:2;fill:none;stroke:currentColor;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mu-expand-enter-active,.mu-expand-leave-active{transition:height .45s cubic-bezier(.23,1,.32,1),padding .45s cubic-bezier(.23,1,.32,1);-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:translateZ(0)}.mu-sub-header{font-size:14px;line-height:48px;padding-left:16px;width:100%}.mu-sub-header.inset{padding-left:72px}.mu-divider{margin:0;height:1px;border:none;background-color:rgba(0,0,0,.12);width:100%}.mu-divider.inset{margin-left:72px}.mu-divider.shallow-inset{margin-left:16px}html.pixel-ratio-2 .mu-divider{transform:scaleY(.5)}html.pixel-ratio-3 .mu-divider{transform:scaleY(.33)}.mu-refresh-control{display:-ms-flexbox;display:flex;margin:0 auto;width:40px;height:40px;color:#7e57c2;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;background-color:#fff;border-radius:50%;box-shadow:0 1px 6px rgba(0,0,0,.117647),0 1px 4px rgba(0,0,0,.117647);position:absolute;left:50%;margin-left:-18px;margin-top:24px;z-index:2}.mu-refresh-control .mu-icon{display:inline-block;vertical-align:middle}.mu-refresh-svg-icon{display:inline-block;width:28px;height:28px;fill:currentColor;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mu-refresh-control-animate{transition:all .45s ease}.mu-refresh-control-hide{opacity:1;transform:translate3d(0,-68px,0)}.mu-refresh-control-noshow{opacity:0;transform:scale(.01)}.mu-refresh-control-refreshing{transform:scale(1);opacity:1}.mu-circle-wrapper{display:inline-block;position:relative;width:48px;height:48px}.mu-circle-wrapper.active{animation:e 1568ms linear infinite}.mu-circle-wrapper .mu-circle{border-radius:50%}.mu-circle-wrapper .left{float:left!important}.mu-circle-wrapper .right{float:right!important}.mu-circle-spinner{position:absolute;width:100%;height:100%;opacity:0;border-color:#7e57c2;opacity:1;animation:b 5332ms cubic-bezier(.4,0,.2,1) infinite both}.mu-circle-clipper{display:inline-block;position:relative;width:50%}.mu-circle-clipper,.mu-circle-gap-patch{height:100%;overflow:hidden;border-color:inherit}.mu-circle-gap-patch{position:absolute;top:0;left:45%;width:10%}.mu-circle-gap-patch .mu-circle{width:1000%;left:-450%}.mu-circle-clipper .mu-circle{width:200%;height:100%;border-width:3px;border-style:solid;border-color:inherit;border-bottom-color:transparent!important;border-radius:50%;animation:none;position:absolute;top:0;right:0;bottom:0}.mu-circle-spinner.active .mu-circle-clipper.left .mu-circle{animation:c 1333ms cubic-bezier(.4,0,.2,1) infinite both}.mu-circle-spinner.active .mu-circle-clipper.right .mu-circle{animation:d 1333ms cubic-bezier(.4,0,.2,1) infinite both}.mu-circle-clipper.left .mu-circle{left:0;border-right-color:transparent!important;transform:rotate(129deg)}.mu-circle-clipper.right .mu-circle{left:-100%;border-left-color:transparent!important;transform:rotate(-129deg)}@keyframes b{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}to{transform:rotate(3turn)}}@keyframes c{0%{transform:rotate(130deg)}50%{transform:rotate(-5deg)}to{transform:rotate(130deg)}}@keyframes d{0%{transform:rotate(-130deg)}50%{transform:rotate(5deg)}to{transform:rotate(-130deg)}}@keyframes e{to{transform:rotate(1turn)}}.mu-infinite-scroll{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;padding-bottom:8px;line-height:36px;width:100%}.mu-infinite-scroll-text{margin-left:16px;font-size:16px}.mu-avatar{display:inline-block;height:40px;width:40px;font-size:20px;text-align:center;border-radius:50%}.mu-avatar img{border-radius:50%;width:100%;height:100%;display:block}.mu-avatar-inner{height:100%;-ms-flex-pack:center;justify-content:center}.mu-avatar-inner,.mu-tabs{display:-ms-flexbox;display:flex;width:100%;-ms-flex-align:center;align-items:center}.mu-tabs{-ms-flex-pack:justify;justify-content:space-between;background-color:#7e57c2;color:#fff;text-align:center;position:relative;z-index:3}.mu-tab-link-highlight{position:absolute;left:0;bottom:0;height:2px;transition:transform .3s;-webkit-backface-visibility:hidden;backface-visibility:hidden}.mu-tab-link{min-height:48px;padding-top:12px;padding-bottom:12px;font-size:14px;background:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;text-decoration:none;border:none;outline:none;-ms-flex:1;flex:1;color:inherit;position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;line-height:normal;-ms-flex-align:center;align-items:center;transition:all .45s cubic-bezier(.445,.05,.55,.95);cursor:pointer}.mu-tab-text.has-icon{margin-top:8px}.mu-paper{transition:all .45s cubic-bezier(.23,1,.32,1);box-shadow:0 1px 6px rgba(0,0,0,.117647),0 1px 4px rgba(0,0,0,.117647)}.mu-paper-round{border-radius:2px}.mu-paper-circle{border-radius:50%}.mu-paper-1{box-shadow:0 1px 6px rgba(0,0,0,.117647),0 1px 4px rgba(0,0,0,.117647)}.mu-paper-2{box-shadow:0 3px 10px rgba(0,0,0,.156863),0 3px 10px rgba(0,0,0,.227451)}.mu-paper-3,.mu-paper-4{box-shadow:0 14px 45px rgba(0,0,0,.247059),0 10px 18px rgba(0,0,0,.219608)}.mu-paper-5{box-shadow:0 19px 60px rgba(0,0,0,.298039),0 15px 20px rgba(0,0,0,.219608)}.mu-bottom-nav{height:56px;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;text-align:center;position:relative;width:100%;color:#fff}.mu-bottom-nav-shift{background-color:#7e57c2}.mu-bottom-nav-shift-wrapper{height:100%;width:100%;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;text-align:center}.mu-buttom-item{-ms-flex:1;flex:1;min-width:80px;max-width:168px;position:relative;height:100%;padding:0;background:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;text-decoration:none;border:none;outline:none;transition:all .4s cubic-bezier(.445,.05,.55,.95);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:6px}.mu-bottom-nav-shift .mu-buttom-item{padding:8px 12px 10px;min-width:56px;max-width:168px}.mu-buttom-item-wrapper{display:block;height:100%}.mu-bottom-item-active{padding-top:6px;padding-bottom:5px}.mu-bottom-item-active .mu-bottom-item-text{font-size:14px}.mu-bottom-nav-shift .mu-bottom-item-active{-ms-flex:1.7;flex:1.7;min-width:96px;max-width:168px;padding-top:6px;padding-bottom:5px}.mu-bottom-item-text{display:block;text-align:center;font-size:12px;transition:all .4s cubic-bezier(.23,1,.32,1),color .3s,font-size .3s;-webkit-backface-visibility:hidden;backface-visibility:hidden}.mu-bottom-item-active .mu-bottom-item-text{color:#7e57c2}.mu-bottom-nav-shift .mu-bottom-item-text{opacity:0;transform:scale(1) translate3d(0,6px,0)}.mu-bottom-nav-shift .mu-bottom-item-active .mu-bottom-item-text{transform:scale(1) translate3d(0,2px,0);opacity:1}.mu-bottom-item-icon{display:block;margin:auto;transition:all .45s cubic-bezier(.23,1,.32,1);-webkit-backface-visibility:hidden;backface-visibility:hidden;width:24px}.mu-bottom-item-active .mu-bottom-item-icon{color:#7e57c2}.mu-bottom-nav-shift .mu-bottom-item-icon{transform:translate3d(0,8px,0)}.mu-bottom-nav-shift .mu-bottom-item-active .mu-bottom-item-icon{transform:scale(1) translateZ(0)}.mu-card{position:relative;border-radius:2px;box-shadow:0 1px 6px rgba(0,0,0,.117647),0 1px 4px rgba(0,0,0,.117647)}.mu-card-header{padding:16px;font-weight:500;position:relative;white-space:nowrap}.mu-card-header .mu-avatar{margin-right:16px}.mu-card-header-title{display:inline-block;vertical-align:top;white-space:normal;padding-right:90px}.mu-card-header-title .mu-card-title{font-size:15px}.mu-card-header-title .mu-card-sub-title{font-size:14px;color:rgba(0,0,0,.57)}.mu-card-media{position:relative}.mu-card-media>img{width:100%;max-width:100%;min-width:100%;display:block;vertical-align:top}.mu-card-media-title{position:absolute;left:0;right:0;bottom:0;padding:16px}.mu-card-media-title .mu-card-title{font-size:24px;line-height:36px}.mu-card-media-title .mu-card-sub-title{font-size:14px}.mu-card-title-container{padding:16px;position:relative}.mu-card-title-container .mu-card-title{font-size:24px;line-height:36px}.mu-card-title-container .mu-card-sub-title{font-size:14px;display:block}.mu-card-text{padding:16px;font-size:14px}.mu-card-actions{padding:8px;position:relative}.mu-chip{border-radius:16px;line-height:32px;white-space:nowrap;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding:0 12px;cursor:default}.mu-chip .mu-avatar:first-child{margin-left:-12px;margin-right:4px}.mu-chip.active{box-shadow:0 1px 6px rgba(0,0,0,.12),0 1px 4px rgba(0,0,0,.12)}.mu-chip-delete-icon{display:inline-block;margin-right:-8px;margin-left:4px;fill:currentColor;height:24px;width:24px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition:all .45s cubic-bezier(.23,1,.32,1)}.mu-overlay{position:absolute;left:0;right:0;top:0;bottom:0;background-color:#000;opacity:.4;z-index:6}.mu-overlay-fade-enter-active,.mu-overlay-fade-leave-active{transition:opacity .45s cubic-bezier(.23,1,.32,1)}.mu-overlay-fade-enter,.mu-overlay-fade-leave-active{opacity:0!important}.mu-dialog-wrapper{position:fixed;left:0;top:0;right:0;bottom:0;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}.mu-dialog{width:75%;max-width:768px;padding:0;border-radius:2px;font-size:16px;box-shadow:0 19px 60px rgba(0,0,0,.298039),0 15px 20px rgba(0,0,0,.219608)}.mu-dialog-title{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:24px 24px 20px;margin:0;font-size:22px;font-weight:400;line-height:32px}.mu-dialog-title+.mu-dialog-body{padding-top:0}.mu-dialog-title.scrollable{border-bottom:1px solid rgba(0,0,0,.12)}.mu-dialog-body{padding:24px 24px 20px}.mu-dialog-actions{min-height:48px;padding:8px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end}.mu-dialog-actions .mu-raised-button+.mu-raised-button{margin-left:10px}.mu-dialog-actions.scrollable{border-top:1px solid rgba(0,0,0,.12)}.mu-dialog-slide-enter-active,.mu-dialog-slide-leave-active{transition:opacity .45s cubic-bezier(.23,1,.32,1)}.mu-dialog-slide-enter-active .mu-dialog,.mu-dialog-slide-leave-active .mu-dialog{-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .45s cubic-bezier(.23,1,.32,1)}.mu-dialog-slide-enter,.mu-dialog-slide-leave-active{opacity:0}.mu-dialog-slide-enter .mu-dialog{transform:translate3d(0,-64px,0)}.mu-dialog-slide-leave-active .mu-dialog{transform:translate3d(0,64px,0)}.mu-toast{height:48px;line-height:48px;padding:0 24px;border-radius:24px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;word-wrap:break-word;max-width:568px;width:100%;position:fixed;left:0;bottom:0}@media only screen and (max-width:992px) and (min-width:601px){.mu-toast{width:auto;min-width:288px;left:5%;bottom:7%}}@media only screen and (min-width:993px){.mu-toast{width:auto;min-width:8%;top:10%;right:7%;left:auto;bottom:auto;min-width:288px}}.mu-toast-enter-active,.mu-toast-leave-active{transition:transform .4s cubic-bezier(.23,1,.32,1),opacity .4s cubic-bezier(.23,1,.32,1);-webkit-backface-visibility:hidden;backface-visibility:hidden}.mu-toast-enter,.mu-toast-leave-active{transform:translate3d(0,100%,0);opacity:0}.mu-snackbar{position:fixed;bottom:0;left:0;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center;padding:0 24px;min-height:48px;width:100%;max-width:568px}.mu-snackbar-action{margin:0 -16px 0 24px}.mu-snackbar-message{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;padding-top:8px;padding-bottom:8px}@media only screen and (max-width:992px) and (min-width:601px){.mu-snackbar{width:auto;min-width:288px;left:5%;bottom:7%}}@media only screen and (min-width:993px){.mu-snackbar{width:auto;min-width:8%;top:10%;right:7%;left:auto;bottom:auto;min-width:288px}}.mu-snackbar-enter-active,.mu-snackbar-leave-active{transition:transform .4s cubic-bezier(.23,1,.32,1),opacity .4s cubic-bezier(.23,1,.32,1);-webkit-backface-visibility:hidden;backface-visibility:hidden}.mu-snackbar-enter,.mu-snackbar-leave-active{transform:translate3d(0,100%,0);opacity:0}.mu-popup{position:fixed;top:50%;left:50%;transform:translate3d(-50%,-50%,0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.mu-popup-top{top:0;right:auto;bottom:auto;left:50%;transform:translate3d(-50%,0,0)}.mu-popup-right{top:50%;right:0;bottom:auto;left:auto;transform:translate3d(0,-50%,0)}.mu-popup-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translate3d(-50%,0,0)}.mu-popup-left{top:50%;right:auto;bottom:auto;left:0;transform:translate3d(0,-50%,0)}.popup-slide-bottom-enter-active,.popup-slide-bottom-leave-active,.popup-slide-left-enter-active,.popup-slide-left-leave-active,.popup-slide-right-enter-active,.popup-slide-right-leave-active,.popup-slide-top-enter-active,.popup-slide-top-leave-active{transition:transform .3s ease}.popup-slide-top-enter,.popup-slide-top-leave-active{transform:translate3d(-50%,-100%,0)}.popup-slide-right-enter,.popup-slide-right-leave-active{transform:translate3d(100%,-50%,0)}.popup-slide-bottom-enter,.popup-slide-bottom-leave-active{transform:translate3d(-50%,100%,0)}.popup-slide-left-enter,.popup-slide-left-leave-active{transform:translate3d(-100%,-50%,0)}.popup-fade-enter-active,.popup-fade-leave-active{transition:opacity .3s}.popup-fade-enter,.popup-fade-leave-active{opacity:0}.mu-menu{z-index:2;outline:none}.mu-menu-list{padding:8px 0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow-y:auto;-webkit-overflow-scrolling:touch}.mu-menu-list>.mu-divider{margin:7px 0 8px}.mu-menu-list>.mu-sub-header{padding-left:24px;margin-top:-8px}.mu-menu-destop{padding:16px 0}.mu-menu-destop>.mu-sub-header{margin-top:-16px}.mu-menu-item-wrapper{display:block;font-size:16px;height:48px;line-height:48px;transition:all .45s cubic-bezier(.23,1,.32,1);position:relative;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mu-menu-destop .mu-menu-item-wrapper{height:32px;line-height:32px;font-size:15px}.mu-menu-item-wrapper.disabled{cursor:not-allowed}.mu-menu-item{padding:0 16px;position:relative;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center}.mu-menu-destop .mu-menu-item{padding:0 24px}.mu-menu-item.have-left-icon{padding-left:72px}.mu-menu-item-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;word-wrap:break-word}.mu-menu-item-left-icon{position:absolute;top:0;left:4px;margin:12px}.mu-menu-destop .mu-menu-item-left-icon{top:4px;left:24px;margin:0}.mu-menu-item-right-icon{position:absolute;top:0;right:4px;margin:12px}.mu-menu-destop .mu-menu-item-right-icon{top:4px;right:24px;margin:0}.mu-popover{position:fixed;background:#fff;border-radius:2px;max-height:100%;overflow:visible;-webkit-overflow-scrolling:touch;box-shadow:0 1px 6px rgba(0,0,0,.117647),0 1px 4px rgba(0,0,0,.117647);transform-origin:center top}.mu-popover-enter-active,.mu-popover-leave-active{transition-duration:.3s;transition-property:opacity,transform}.mu-popover-enter,.mu-popover-leave-active{transform:scaleY(0);opacity:0}.mu-bottom-sheet{position:fixed;left:0;right:0;bottom:0}.mu-bottom-sheet-enter-active,.mu-bottom-sheet-leave-active{transition:transform .3s cubic-bezier(.23,1,.32,1);-webkit-backface-visibility:hidden;backface-visibility:hidden}.mu-bottom-sheet-enter,.mu-bottom-sheet-leave-active{transform:translate3d(0,100%,0)}.mu-dropDown-menu,.mu-icon-menu{display:inline-block;position:relative}.mu-dropDown-menu{font-size:15px;height:48px;transition:all .45s cubic-bezier(.23,1,.32,1);cursor:pointer;overflow:hidden}.mu-dropDown-menu.disabled{color:rgba(0,0,0,.38);cursor:not-allowed}.mu-dropDown-menu-icon{position:absolute;right:16px;top:16px;fill:currentColor;display:inline-block;width:24px;height:24px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mu-dropDown-menu-text{padding-left:24px;padding-right:48px;line-height:56px;opacity:1;position:relative}.mu-dropDown-menu.disabled .mu-dropDown-menu-text{color:rgba(0,0,0,.38)}.mu-dropDown-menu-text-overflow{white-space:nowrap;overflow:hidden;width:100%}.mu-dropDown-menu-line{bottom:1px;left:0;margin:-1px 24px;right:0;position:absolute;height:1px;transition:all .45s cubic-bezier(.23,1,.32,1)}html.pixel-ratio-2 .mu-dropDown-menu-line{transform:scaleY(.5)}html.pixel-ratio-3 .mu-dropDown-menu-line{transform:scaleY(.33)}.mu-drawer{width:256px;position:fixed;top:0;bottom:0;overflow:auto;-webkit-overflow-scrolling:touch;transition-property:transform,visibility;transition-duration:.45s;transform:translate3d(-100%,0,0);border-radius:0;left:0;visibility:hidden;z-index:4}.mu-drawer::-webkit-scrollbar{display:none!important;width:0!important;height:0!important;-webkit-appearance:none;opacity:0!important}.mu-drawer.right{right:0;left:auto;transform:translate3d(100%,0,0)}.mu-drawer.open{transform:translateZ(0);visibility:visible}.mu-picker{background:#fff;overflow:hidden;width:100%;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;position:relative;-webkit-mask-box-image:-webkit-linear-gradient(bottom,transparent,transparent 5%,#fff 20%,#fff 80%,transparent 95%,transparent);-webkit-mask-box-image:linear-gradient(0deg,transparent,transparent 5%,#fff 20%,#fff 80%,transparent 95%,transparent)}.mu-picker-center-highlight{height:36px;box-sizing:border-box;position:absolute;left:0;width:100%;top:50%;margin-top:-18px;pointer-events:none;border-top:1px solid rgba(0,0,0,.12);border-bottom:1px solid rgba(0,0,0,.12)}.mu-picker-center-highlight:before{left:0;top:0;bottom:auto;right:auto}.mu-picker-center-highlight:after{left:0;bottom:0;right:auto;top:auto}.mu-picker-slot{font-size:18px;overflow:hidden;position:relative;max-height:100%;text-align:center}.mu-picker-slot.mu-picker-slot-divider{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;line-height:36px}.mu-picker-slot-wrapper.animate{transition:transform .45s cubic-bezier(.23,1,.32,1)}.mu-picker-item,.mu-picker-slot-wrapper.animate{-webkit-backface-visibility:hidden;backface-visibility:hidden}.mu-picker-item{line-height:36px;padding:0 10px;font-size:20px;white-space:nowrap;position:relative;overflow:hidden;text-overflow:ellipsis;left:0;top:0;width:100%;box-sizing:border-box;transition-duration:.3s}.mu-picker-item.selected{transform:translateZ(0) rotateX(0)}.mu-text-field{font-size:16px;width:256px;min-height:48px;display:inline-block;position:relative;margin-bottom:8px}.mu-text-field.full-width{width:100%}.mu-text-field.has-icon{padding-left:56px}.mu-text-field.focus-state{color:#7e57c2}.mu-text-field.has-label{min-height:72px}.mu-text-field-icon{position:absolute;left:16px;top:12px}.mu-text-field.has-label .mu-text-field-icon{top:36px}.mu-text-field-content{display:block;height:100%;padding-bottom:12px;padding-top:4px}.mu-text-field.disabled .mu-text-field-content{color:rgba(0,0,0,.38);cursor:not-allowed}.mu-text-field.has-label .mu-text-field-content{padding-top:28px;padding-bottom:12px}.mu-text-field-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;border:none;background:none;border-radius:0 0 0 0;box-shadow:none;display:block;padding:0;margin:0;width:100%;height:32px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-stretch:inherit;font-size:inherit;font-family:inherit;position:relative}.mu-text-field-help{position:absolute;margin-top:6px;font-size:12px;line-height:12px;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;left:0;right:0}.mu-text-field.has-icon .mu-text-field-help{left:56px}.mu-text-field.disabled .mu-text-field-help{color:inherit}.mu-text-field-line{margin:0;height:1px;border:none;left:0;right:0;position:absolute}.mu-text-field.has-icon .mu-text-field-line{left:56px}.mu-text-field-line.disabled{height:auto;background-color:transparent;border-bottom:2px dotted rgba(0,0,0,.38)}.mu-text-field-focus-line{margin:0;height:2px;border:none;background-color:#7e57c2;position:absolute;left:0;right:0;margin-top:-1px;transform:scaleX(0);transition:transform .45s cubic-bezier(.23,1,.32,1)}.mu-text-field.has-icon .mu-text-field-focus-line{left:56px}.mu-text-field-focus-line.error,.mu-text-field-focus-line.focus{transform:scaleX(1)}.mu-text-field-textarea{resize:vertical;line-height:1.5;position:relative;height:100%;resize:none}.mu-text-field-multiline{width:100%;position:relative}.mu-text-field-textarea-hide{width:100%;height:auto;resize:none;position:absolute;padding:0;overflow:auto;visibility:hidden}.mu-text-field-label{line-height:20px;transition:all .45s cubic-bezier(.23,1,.32,1);z-index:1;cursor:text;transform:translateZ(0) scale(.75);transform-origin:left top;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden}.mu-text-field.has-label .mu-text-field-label{top:8px;position:absolute}.mu-text-field.has-label .mu-text-field-label.float{transform:translate3d(0,28px,0) scale(1)}.mu-text-field-hint{position:absolute;opacity:0;transition:opacity .45s cubic-bezier(.23,1,.32,1);line-height:34px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:text;overflow:hidden;white-space:nowrap;width:100%}.mu-text-field-hint.show{opacity:1}.mu-text-field.multi-line .mu-text-field-hint{line-height:1.5}.mu-select-field .mu-dropDown-menu{display:block;width:100%;height:32px}.mu-select-field .mu-dropDown-menu-text{line-height:32px;height:32px;padding-left:0;padding-right:24px;word-wrap:break-word;overflow:hidden}.mu-select-field .mu-dropDown-menu-line{display:none}.mu-select-field .mu-dropDown-menu-icon{right:0;top:6px}.mu-checkbox{position:relative;display:inline-block;height:24px;line-height:24px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mu-checkbox input[type=checkbox]{display:none}.mu-checkbox input[type=checkbox]:checked+.mu-checkbox-wrapper .mu-checkbox-icon-uncheck{opacity:0;transition:opacity .65s cubic-bezier(.23,1,.32,1) .15s;color:#7e57c2}.mu-checkbox input[type=checkbox]:checked+.mu-checkbox-wrapper .mu-checkbox-icon-checked{opacity:1;transform:scale(1);transition:opacity 0ms cubic-bezier(.23,1,.32,1),transform .8s cubic-bezier(.23,1,.32,1)}.mu-checkbox input[type=checkbox]:checked+.mu-checkbox-wrapper .mu-checkbox-ripple-wrapper{color:#7e57c2}.mu-checkbox *{pointer-events:none}.mu-checkbox.disabled{cursor:not-allowed}.mu-checkbox-wrapper{display:-ms-flexbox;display:flex;width:100%;height:24px;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.mu-checkbox-icon{width:24px;height:24px;vertical-align:middle;position:relative;margin-right:16px}.mu-checkbox.label-left .mu-checkbox-icon{margin-right:0;margin-left:16px}.mu-checkbox.no-label .mu-checkbox-icon{margin-left:0;margin-right:0}.mu-checkbox-svg-icon{display:inline-block;fill:currentColor;height:24px;width:24px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mu-checkbox-icon-uncheck{position:absolute;left:0;top:0;opacity:1;transition:opacity 1s cubic-bezier(.23,1,.32,1) .2s}.mu-checkbox-icon-checked{position:absolute;left:0;top:0;opacity:0;color:#7e57c2;transform:scale(0);transition:opacity .45s cubic-bezier(.23,1,.32,1),transform 0ms cubic-bezier(.23,1,.32,1) .45s}.mu-checkbox-ripple-wrapper{width:48px;height:48px;top:-12px;left:-12px}.mu-checkbox.label-left .mu-checkbox-ripple-wrapper{right:-12px;left:auto}.mu-radio{position:relative;display:inline-block;height:24px;line-height:24px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mu-radio input[type=radio]{display:none}.mu-radio input[type=radio]:checked+.mu-radio-wrapper .mu-radio-icon-uncheck{opacity:0;transform:scale(0);color:#7e57c2}.mu-radio input[type=radio]:checked+.mu-radio-wrapper .mu-radio-icon-checked{opacity:1;transform:scale(1)}.mu-radio input[type=radio]:checked+.mu-radio-wrapper .mu-radio-ripple-wrapper{color:#7e57c2}.mu-radio *{pointer-events:none}.mu-radio.disabled{cursor:not-allowed}.mu-radio-wrapper{display:-ms-flexbox;display:flex;width:100%;height:24px;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.mu-radio-icon{width:24px;height:24px;vertical-align:middle;position:relative;margin-right:16px}.mu-radio.label-left .mu-radio-icon{margin-right:0;margin-left:16px}.mu-radio.no-label .mu-radio-icon{margin-left:0;margin-right:0}.mu-radio-label{-ms-flex:1;flex:1;font-size:16px}.mu-radio-svg-icon{display:inline-block;fill:currentColor;height:24px;width:24px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mu-radio-icon-uncheck{opacity:1}.mu-radio-icon-checked,.mu-radio-icon-uncheck{position:absolute;left:0;top:0;transition:all .45s cubic-bezier(.23,1,.32,1)}.mu-radio-icon-checked{opacity:0;color:#7e57c2;transform:scale(0)}.mu-radio-ripple-wrapper{width:48px;height:48px;top:-12px;left:-12px}.mu-radio.label-left .mu-radio-ripple-wrapper{right:-12px;left:auto}.mu-switch{position:relative;display:inline-block;height:24px;line-height:24px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mu-switch input[type=checkbox]{display:none}.mu-switch input[type=checkbox]:checked+.mu-switch-wrapper .mu-switch-track{background-color:rgba(126,87,194,.5)}.mu-switch input[type=checkbox]:checked+.mu-switch-wrapper .mu-switch-thumb{background-color:#7e57c2;color:#7e57c2;transform:translate3d(18px,0,0)}.mu-switch *{pointer-events:none}.mu-switch.disabled{cursor:not-allowed}.mu-switch-wrapper{display:-ms-flexbox;display:flex;width:100%;height:24px;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.mu-switch-container{width:38px;padding:4px 0 4px 2px;position:relative;margin-right:8px;transition:all .45s cubic-bezier(.23,1,.32,1)}.mu-switch.label-left .mu-switch-container{margin-right:0;margin-left:8px}.mu-switch.no-label .mu-switch-container{margin-left:0;margin-right:0}.mu-switch-track{width:100%;height:14px;border-radius:30px;transition:all .45s cubic-bezier(.23,1,.32,1)}.mu-switch-track,.mu-switch.disabled .mu-switch-track{background-color:#bdbdbd}.mu-switch-thumb{position:absolute;top:1px;left:0;width:20px;height:20px;line-height:24px;border-radius:50%;box-shadow:0 1px 6px rgba(0,0,0,.117647),0 1px 4px rgba(0,0,0,.117647);transition:all .45s cubic-bezier(.23,1,.32,1);-webkit-backface-visibility:hidden;backface-visibility:hidden}.mu-switch-ripple-wrapper{height:200%;width:200%;top:-10px;left:-10px}.mu-slider{width:100%;position:relative;height:24px;margin-bottom:16px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;outline:none}.mu-slider-track{right:0}.mu-slider-fill,.mu-slider-track{position:absolute;height:2px;left:0;top:50%;margin-top:-1px}.mu-slider-fill{width:100%;background-color:#7e57c2}.mu-slider.disabled .mu-slider-fill{background-color:#bdbdbd}.mu-slider-thumb{position:absolute;top:50%;width:12px;height:12px;background-color:#7e57c2;color:#7e57c2;border-radius:50%;transform:translate(-50%,-50%);transition:background .45s cubic-bezier(.23,1,.32,1),border-color .45s cubic-bezier(.23,1,.32,1),width .45s cubic-bezier(.23,1,.32,1),height .45s cubic-bezier(.23,1,.32,1);cursor:pointer}.mu-slider.active .mu-slider-thumb{width:20px;height:20px}.mu-slider.disabled .mu-slider-thumb,.mu-slider.zero .mu-slider-thumb{border:2px solid #bdbdbd}.mu-slider.disabled .mu-slider-thumb .mu-focus-ripple-wrapper,.mu-slider.zero .mu-slider-thumb .mu-focus-ripple-wrapper{top:-14px;left:-14px}.mu-slider.disabled .mu-slider-thumb{cursor:default}.mu-slider-thumb .mu-focus-ripple-wrapper{width:36px;height:36px;top:-12px;left:-12px}.mu-linear-progress{position:relative;height:4px;display:block;width:100%;border-radius:2px;margin:0;overflow:hidden}.mu-linear-progress-indeterminate{width:40%;animation:f .84s cubic-bezier(.445,.05,.55,.95);animation-iteration-count:infinite}.mu-linear-progress-determinate,.mu-linear-progress-indeterminate{position:absolute;top:0;bottom:0;border-radius:2px;background-color:#7e57c2}.mu-linear-progress-determinate{left:0;transition:width .3s linear}@keyframes f{0%{left:-40%}to{left:100%}}.mu-circular-progress{display:inline-block;position:relative;overflow:hidden}.mu-circular-progress-determinate{position:relative}.mu-circular-progress-determinate-path{stroke:#7e57c2;stroke-linecap:round;transition:all .3s linear}.mu-grid-list{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.mu-grid-tile{position:relative;display:block;height:100%;overflow:hidden}.mu-grid-tile>img{height:100%;transform:translateX(-50%);position:relative;left:50%}.mu-grid-tile-titlebar{position:absolute;left:0;right:0;bottom:0;height:48px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.mu-grid-tile.multiline .mu-grid-tile-titlebar{height:68px}.mu-grid-tile.top .mu-grid-tile-titlebar{bottom:auto;top:0}.mu-grid-tile-title-container{margin-left:16px;margin-right:0;-ms-flex:1;flex:1;overflow:hidden}.mu-grid-tile.action-left .mu-grid-tile-title-container{margin-right:16px;margin-left:0}.mu-grid-tile-action{-ms-flex-order:1;order:1}.mu-grid-tile.action-left .mu-grid-tile-action{-ms-flex-order:-1;order:-1}.mu-grid-tile-title{font-size:16px}.mu-grid-tile-subtitle,.mu-grid-tile-title{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;word-wrap:break-word}.mu-grid-tile-subtitle{font-size:12px}.mu-table{width:100%;padding:0 24px;border-collapse:collapse;border-spacing:0;table-layout:fixed}.mu-thead,.mu-tr{border-bottom:1px solid rgba(0,0,0,.12)}.mu-tr{height:48px}.mu-tr:last-child{border-bottom:none}.mu-tr.stripe{background-color:hsla(0,0%,100%,.4)}.mu-tfoot .mu-tr{border-top:1px solid rgba(0,0,0,.12)}.mu-tr .mu-checkbox{vertical-align:middle}.mu-checkbox-col{width:72px}.mu-td{height:48px;font-size:13px;white-space:nowrap;text-overflow:ellipsis}.mu-td,.mu-th{padding-left:24px;padding-right:24px;text-align:left}.mu-th{font-weight:400;font-size:12px;height:56px;position:relative}.mu-th-wrapper{position:relative;padding-top:12px;padding-bottom:12px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mu-date-picker{display:inline-block;position:relative;width:256px}.mu-date-picker.fullWidth{width:100%}.mu-date-picker-dialog{width:310px}.mu-date-picker-dialog.landscape{width:479px}.mu-date-picker-dialog.landscape .mu-dialog-body{min-height:330px;min-width:479px}.mu-date-picker-dialog .mu-dialog-body{padding:0;min-height:434px;min-width:310px}.mu-calendar{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:310px}.mu-calendar-landspace{width:479px}.mu-calendar-container{-ms-flex-direction:column;flex-direction:column}.mu-calendar-container,.mu-calendar-monthday-container{display:-ms-flexbox;display:flex}.mu-calendar-monthday-container{-ms-flex-line-pack:justify;align-content:space-between;-ms-flex-direction:column;flex-direction:column;font-size:12px;font-weight:400;padding:0 8px;transition:all .45s cubic-bezier(.23,1,.32,1)}.mu-calendar-monthday-container,.mu-calendar-week{-ms-flex-pack:justify;justify-content:space-between}.mu-calendar-week{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;font-weight:500;height:20px;line-height:15px;opacity:.5;text-align:center}.mu-calendar-week-day{width:42px}.mu-calendar-monthday{position:relative;overflow:hidden;height:214px}.mu-calendar-monthday-slide{height:100%;width:100%}.mu-calendar-actions{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:end;justify-content:flex-end;margin:0;max-height:48px;padding:0}.mu-calendar-actions .mu-flat-button{min-width:64px;margin:4px 8px 8px 0}.mu-calendar-slide-next-enter-active,.mu-calendar-slide-next-leave-active,.mu-calendar-slide-prev-enter-active,.mu-calendar-slide-prev-leave-active{transition:transform .45s cubic-bezier(.23,1,.32,1),opacity .45s cubic-bezier(.23,1,.32,1);-webkit-backface-visibility:hidden;backface-visibility:hidden;position:absolute;left:0;right:0;top:0}.mu-calendar-slide-next-enter{transform:translate3d(100%,0,0)}.mu-calendar-slide-next-leave-active{opacity:0}.mu-calendar-slide-next-leave-active,.mu-calendar-slide-prev-enter{transform:translate3d(-100%,0,0)}.mu-calendar-slide-prev-leave-active{transform:translate3d(100%,0,0);opacity:0}.mu-date-display{width:100%;font-weight:700;display:block;background-color:#7e57c2;border-top-left-radius:2px;border-top-right-radius:2px;border-bottom-left-radius:0;padding:20px}.mu-calendar-landspace .mu-date-display{width:165px;height:330px;float:left;border-top-right-radius:0;border-bottom-left-radius:2px}.mu-date-display-year{position:relative;overflow:hidden;margin:0;font-size:16px;font-weight:500;line-height:16px;height:16px;opacity:.7;transition:all .45s cubic-bezier(.23,1,.32,1);margin-bottom:10px}.mu-date-display.selected-year .mu-date-display-year{opacity:1}.mu-date-display-year-title{cursor:pointer}.mu-date-display-year.disabled .mu-date-display-year-title{cursor:not-allowed}.mu-date-display-year-title .mu-date-display.selected-year{cursor:default}.mu-date-display-monthday{position:relative;display:block;overflow:hidden;font-size:36px;line-height:36px;height:38px;transition:all .45s cubic-bezier(.23,1,.32,1);width:100%;font-weight:500}.mu-date-display.selected-year .mu-date-display-monthday{opacity:.7}.mu-calendar-landspace .mu-date-display-monthday{height:100%}.mu-date-display-slideIn-wrapper{position:absolute;height:100%;width:100%;top:0;left:0}.mu-date-display-monthday-title{cursor:default;width:100%;display:block}.mu-date-display.selected-year .mu-date-display-monthday-title{cursor:pointer}.mu-date-display-next-enter-active,.mu-date-display-next-leave-active,.mu-date-display-prev-enter-active,.mu-date-display-prev-leave-active{transition:transform .45s cubic-bezier(.23,1,.32,1),opacity .45s cubic-bezier(.23,1,.32,1);-webkit-backface-visibility:hidden;backface-visibility:hidden}.mu-date-display-next-enter{transform:translate3d(0,-100%,0);opacity:0}.mu-date-display-next-leave-active,.mu-date-display-prev-enter{transform:translate3d(0,100%,0);opacity:0}.mu-date-display-prev-leave-active{transform:translate3d(0,-100%,0);opacity:0}.mu-calendar-toolbar{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;height:48px}.mu-calendar-toolbar-title-wrapper{position:relative;overflow:hidden;height:100%;font-size:14px;font-weight:500;text-align:center;width:100%}.mu-calendar-toolbar-title{position:absolute;height:100%;width:100%;top:0;left:0;line-height:48px}.mu-calendar-svg-icon{display:block;fill:currentColor;height:24px;width:24px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mu-calendar-monthday-content{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:start;justify-content:flex-start;font-weight:400;height:228px;line-height:2;position:relative;text-align:center}.mu-calendar-monthday-content,.mu-calendar-monthday-row{display:-ms-flexbox;display:flex}.mu-calendar-monthday-row{-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:distribute;justify-content:space-around;height:34px;margin-bottom:2px}.mu-day-button{display:inline-block;background:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;outline:none;text-decoration:none;cursor:pointer;margin:0;padding:4px 0;font-size:inherit;font-weight:400;position:relative;border:10px;width:42px}.mu-day-button.disabled{opacity:.4}.mu-day-empty{font-weight:400;padding:4px 0;position:relative;width:42px}.mu-day-button-bg{position:absolute;top:0;left:4px;height:34px;background-color:#7e57c2;border-radius:50%;opacity:0;transform:scale(0);transition:all .45s cubic-bezier(.23,1,.32,1);width:34px}.mu-day-button.hover .mu-day-button-bg,.mu-day-button.selected .mu-day-button-bg{transform:scale(1)}.mu-day-button.hover .mu-day-button-bg{opacity:.6}.mu-day-button.selected .mu-day-button-bg{opacity:1}.mu-day-button.now .mu-day-button-text{color:#7e57c2}.mu-calendar-year-container{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-direction:column;flex-direction:column;margin-top:10px;width:310px;height:272px;overflow:hidden}.mu-calendar-year{height:inherit;line-height:35px;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;position:relative}.mu-calendar-year-list{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;min-height:100%}.mu-year-button{position:relative;display:block;background:none;cursor:pointer;outline:none;text-decoration:none;margin:0 auto;padding:0;border:10px;font-size:14px;font-weight:inherit;text-align:center;line-height:inherit}.mu-year-button-text{-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center;font-size:17px;font-weight:400;position:relative;top:-1px}.mu-year-button.selected .mu-year-button-text{color:#7e57c2;font-size:26px;font-weight:500}.mu-year-button.hover .mu-year-button-text{color:#7e57c2}.mu-time-picker{display:inline-block;position:relative;width:256px}.mu-time-picker.fullWidth{width:100%}.mu-time-picker-dialog{width:280px}.mu-time-picker-dialog.landscape{width:479px}.mu-time-picker-dialog.landscape .mu-dialog-body{min-height:352px;min-width:479px}.mu-time-picker-dialog .mu-dialog-body{padding:0;min-height:450px;min-width:280px}.mu-clock{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:280px}.mu-clock-landspace{width:479px;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.mu-clock-container{height:280px;padding:10px;box-sizing:content-box;position:relative;padding-bottom:62px}.mu-clock-landspace .mu-clock-container{width:300px}.mu-clock-circle{position:absolute;top:20px;width:260px;height:260px;border-radius:100%}.mu-clock-landspace .mu-clock-circle{left:50%;margin-left:-130px}.mu-clock-actions{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-pack:end;justify-content:flex-end;padding:8px;position:absolute;left:0;bottom:0;right:0}.mu-time-display{padding:14px 0;border-top-left-radius:2px;border-top-right-radius:2px;background-color:#7e57c2}.mu-clock-landspace .mu-time-display{width:179px;position:relative}.mu-time-display-text{margin:6px 0;line-height:58px;height:58px;font-size:58px;display:-ms-flexbox;display:flex;-ms-flex-align:baseline;align-items:baseline}.mu-clock-landspace .mu-time-display-text,.mu-time-display-text{-ms-flex-pack:center;justify-content:center}.mu-clock-landspace .mu-time-display-text{margin:0;position:absolute;left:0;right:0;top:0;bottom:0;height:auto;-ms-flex-align:center;align-items:center;-ms-flex-direction:column;flex-direction:column;font-size:48px}.mu-time-display-affix{-ms-flex:1 1;flex:1 1;position:relative;line-height:17px;height:17px;font-size:17px}.mu-clock-landspace .mu-time-display-affix{-ms-flex:none;flex:none;height:auto;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.mu-time-display-time{margin:0 10px}.mu-clock-landspace .mu-time-display-time{margin-top:-28px}.mu-time-display-clickable{cursor:pointer}.mu-time-display-clickable.inactive{opacity:.7}.mu-clock-landspace .mu-time-display-clickable{margin-top:8px}.mu-time-display-affix-top{position:absolute;top:-20px;left:0}.mu-clock-landspace .mu-time-display-affix-top{position:static;-ms-flex-order:-1;order:-1}.mu-clock-hours{height:100%;width:100%;border-radius:100%;position:relative;pointer-events:none;box-sizing:border-box}.mu-clock-hours-mask{height:100%;width:100%;pointer-events:auto}.mu-clock-number{display:inline-block;width:32px;height:32px;line-height:24px;position:absolute;top:10px;text-align:center;padding-top:5px;font-size:1.1em;pointer-events:none;border-radius:100%;box-sizing:border-box;transform:translateY(5px);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mu-clock-number.selected{background-color:#7e57c2}.mu-clock-number.inner{width:28px;height:28px}.mu-clock-pointer{height:40%;background-color:#7e57c2;width:2px;left:49%;position:absolute;bottom:50%;transform-origin:center bottom 0;pointer-events:none}.mu-clock-pointer.inner{height:30%}.mu-clock-pointer-mark{box-sizing:content-box;border:4px solid #7e57c2;width:7px;height:7px;position:absolute;top:-5px;left:-6px;border-radius:100%}.mu-clock-pointer-mark.has-selected{display:none}.mu-clock-minutes{height:100%;width:100%;border-radius:100%;position:relative;pointer-events:none;box-sizing:border-box}.mu-clock-minutes-mask{height:100%;width:100%;pointer-events:auto}.mu-step{-ms-flex:0 0 auto;flex:0 0 auto;margin-left:-6px}.mu-stepper-vertical .mu-step{margin-top:-14px;margin-left:0}.mu-step:first-child{margin-left:0}.mu-step-button{border:10px;display:inline-block;cursor:pointer;text-decoration:none;margin:0;padding:0;outline:none;font-size:inherit;font-weight:inherit;transform:translate(0);transition:all .45s cubic-bezier(.23,1,.32,1) 0ms}.mu-stepper-vertical .mu-step-button{width:100%}.mu-step-label{height:72px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;font-size:14px;padding-left:14px;padding-right:14px}.mu-stepper-vertical .mu-step-label{height:64px}.mu-step-label.disabled{cursor:not-allowed}.mu-step-label.active{font-weight:500}.mu-step-label-icon-container{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;margin-right:8px;width:24px}.mu-step-label-icon{display:block;font-size:24px;width:24px;height:24px;fill:currentColor}.mu-step-label.active .mu-step-label-icon,.mu-step-label.completed .mu-step-label-icon{color:#7e57c2}.mu-step-label-circle{width:20px;height:20px;font-size:12px;line-height:20px;text-align:center;overflow:hidden;border-radius:100%}.mu-step-label-circle,.mu-step-label.disabled .mu-step-label-circle{background-color:#9e9e9e}.mu-step-label.active .mu-step-label-circle,.mu-step-label.completed .mu-step-label-circle{background-color:#7e57c2}.mu-step-content{margin-top:-14px;margin-left:25px;padding-left:21px;padding-right:16px;overflow:hidden}.mu-step-content.last{border-left:none}.mu-step-content-inner{position:relative;width:100%;top:0;left:0;overflow:hidden}.mu-stepper{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-line-pack:center;align-content:center;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.mu-stepper-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:stretch;align-items:stretch}.mu-step-connector{-ms-flex:1 1 auto;flex:1 1 auto}.mu-stepper-vertical .mu-step-connector{margin-left:25px}.mu-step-connector-line{display:block;margin-left:-6px;border-top-style:solid;border-top-width:1px}.mu-stepper-vertical .mu-step-connector-line{border-top:none;border-left-style:solid;border-left-width:1px;min-height:28px;margin-left:0}.mu-auto-complete{display:inline-block;position:relative;width:256px}.mu-auto-complete.fullWidth{width:100%}.mu-auto-complete-menu-item{width:100%;overflow:hidden}.mu-pagination{display:-ms-flexbox;display:flex;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-align:center;align-items:center}.mu-pagination-svg-icon{display:inline-block;width:24px;height:24px;fill:currentColor;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mu-pagination-item,.mu-pagination-svg-icon{transition:all .45s cubic-bezier(.23,1,.32,1)}.mu-pagination-item{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;font-size:16px;height:32px;min-width:32px;padding-left:8px;padding-right:8px;line-height:32px;margin:0 8px;position:relative;cursor:pointer;border-radius:2px}.mu-pagination-item.active{background-color:#7e57c2}.mu-pagination-item.disabled{cursor:not-allowed}.mu-pagination-item.circle,.mu-pagination-item.circle .mu-ripple-wrapper{border-radius:50%}.mu-pagination-item-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;height:100%;width:100%;-ms-flex-pack:center;justify-content:center}.mu-timeline-item[data-v-10c9b411]{position:relative}.mu-timeline-item-line[data-v-10c9b411]{position:absolute;height:100%}.mu-timeline-item-icon[data-v-10c9b411]{position:absolute;box-sizing:border-box;background-color:#fff}.mu-timeline-item-content[data-v-10c9b411]{position:relative;padding-bottom:20px}.mu-timeline-item-customed[data-v-10c9b411]{position:absolute}.mu-timeline-item-time[data-v-10c9b411]{font-weight:700;font-size:15px}.mu-timeline-item-des[data-v-10c9b411]{font-size:16px}.row{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:start;align-items:flex-start}.row>[class*=col-]{box-sizing:border-box}@media (max-width:600px){.row .col-auto{width:100%}.row .col-100{width:100%;width:calc((100% - 16px*0) / 1)}.row.no-gutter .col-100{width:100%}.row .col-95{width:95%;width:calc((100% - 16px*0.05263157894736836) / 1.0526315789473684)}.row.no-gutter .col-95{width:95%}.row .col-90{width:90%;width:calc((100% - 16px*0.11111111111111116) / 1.1111111111111112)}.row.no-gutter .col-90{width:90%}.row .col-85{width:85%;width:calc((100% - 16px*0.17647058823529416) / 1.1764705882352942)}.row.no-gutter .col-85{width:85%}.row .col-80{width:80%;width:calc((100% - 16px*0.25) / 1.25)}.row.no-gutter .col-80{width:80%}.row .col-75{width:75%;width:calc((100% - 16px*0.33333333333333326) / 1.3333333333333333)}.row.no-gutter .col-75{width:75%}.row .col-70{width:70%;width:calc((100% - 16px*0.4285714285714286) / 1.4285714285714286)}.row.no-gutter .col-70{width:70%}.row .col-66{width:66.66666666666666%;width:calc((100% - 16px*0.5000000000000002) / 1.5000000000000002)}.row.no-gutter .col-66{width:66.66666666666666%}.row .col-65{width:65%;width:calc((100% - 16px*0.5384615384615385) / 1.5384615384615385)}.row.no-gutter .col-65{width:65%}.row .col-60{width:60%;width:calc((100% - 16px*0.6666666666666667) / 1.6666666666666667)}.row.no-gutter .col-60{width:60%}.row .col-55{width:55%;width:calc((100% - 16px*0.8181818181818181) / 1.8181818181818181)}.row.no-gutter .col-55{width:55%}.row .col-50{width:50%;width:calc((100% - 16px*1) / 2)}.row.no-gutter .col-50{width:50%}.row .col-45{width:45%;width:calc((100% - 16px*1.2222222222222223) / 2.2222222222222223)}.row.no-gutter .col-45{width:45%}.row .col-40{width:40%;width:calc((100% - 16px*1.5) / 2.5)}.row.no-gutter .col-40{width:40%}.row .col-35{width:35%;width:calc((100% - 16px*1.8571428571428572) / 2.857142857142857)}.row.no-gutter .col-35{width:35%}.row .col-33{width:33.333333333333336%;width:calc((100% - 16px*2) / 3)}.row.no-gutter .col-33{width:33.333333333333336%}.row .col-30{width:30%;width:calc((100% - 16px*2.3333333333333335) / 3.3333333333333335)}.row.no-gutter .col-30{width:30%}.row .col-25{width:25%;width:calc((100% - 16px*3) / 4)}.row.no-gutter .col-25{width:25%}.row .col-20{width:20%;width:calc((100% - 16px*4) / 5)}.row.no-gutter .col-20{width:20%}.row .col-15{width:15%;width:calc((100% - 16px*5.666666666666667) / 6.666666666666667)}.row.no-gutter .col-15{width:15%}.row .col-10{width:10%;width:calc((100% - 16px*9) / 10)}.row.no-gutter .col-10{width:10%}.row .col-5{width:5%;width:calc((100% - 16px*19) / 20)}.row.no-gutter .col-5{width:5%}.row .col-auto:last-child,.row .col-auto:last-child~.col-auto{width:100%;width:calc((100% - 16px*0) / 1)}.row.no-gutter .col-auto:last-child,.row.no-gutter .col-auto:last-child~.col-auto{width:100%}.row .col-auto:nth-last-child(2),.row .col-auto:nth-last-child(2)~.col-auto{width:50%;width:calc((100% - 16px*1) / 2)}.row.no-gutter .col-auto:nth-last-child(2),.row.no-gutter .col-auto:nth-last-child(2)~.col-auto{width:50%}.row .col-auto:nth-last-child(3),.row .col-auto:nth-last-child(3)~.col-auto{width:33.33333333%;width:calc((100% - 16px*2) / 3)}.row.no-gutter .col-auto:nth-last-child(3),.row.no-gutter .col-auto:nth-last-child(3)~.col-auto{width:33.33333333%}.row .col-auto:nth-last-child(4),.row .col-auto:nth-last-child(4)~.col-auto{width:25%;width:calc((100% - 16px*3) / 4)}.row.no-gutter .col-auto:nth-last-child(4),.row.no-gutter .col-auto:nth-last-child(4)~.col-auto{width:25%}.row .col-auto:nth-last-child(5),.row .col-auto:nth-last-child(5)~.col-auto{width:20%;width:calc((100% - 16px*4) / 5)}.row.no-gutter .col-auto:nth-last-child(5),.row.no-gutter .col-auto:nth-last-child(5)~.col-auto{width:20%}.row .col-auto:nth-last-child(6),.row .col-auto:nth-last-child(6)~.col-auto{width:16.66666667%;width:calc((100% - 16px*5) / 6)}.row.no-gutter .col-auto:nth-last-child(6),.row.no-gutter .col-auto:nth-last-child(6)~.col-auto{width:16.66666667%}.row .col-auto:nth-last-child(7),.row .col-auto:nth-last-child(7)~.col-auto{width:14.28571429%;width:calc((100% - 16px*6) / 7)}.row.no-gutter .col-auto:nth-last-child(7),.row.no-gutter .col-auto:nth-last-child(7)~.col-auto{width:14.28571429%}.row .col-auto:nth-last-child(8),.row .col-auto:nth-last-child(8)~.col-auto{width:12.5%;width:calc((100% - 16px*7) / 8)}.row.no-gutter .col-auto:nth-last-child(8),.row.no-gutter .col-auto:nth-last-child(8)~.col-auto{width:12.5%}.row .col-auto:nth-last-child(9),.row .col-auto:nth-last-child(9)~.col-auto{width:11.11111111%;width:calc((100% - 16px*8) / 9)}.row.no-gutter .col-auto:nth-last-child(9),.row.no-gutter .col-auto:nth-last-child(9)~.col-auto{width:11.11111111%}.row .col-auto:nth-last-child(10),.row .col-auto:nth-last-child(10)~.col-auto{width:10%;width:calc((100% - 16px*9) / 10)}.row.no-gutter .col-auto:nth-last-child(10),.row.no-gutter .col-auto:nth-last-child(10)~.col-auto{width:10%}.row .col-auto:nth-last-child(11),.row .col-auto:nth-last-child(11)~.col-auto{width:9.09090909%;width:calc((100% - 16px*10) / 11)}.row.no-gutter .col-auto:nth-last-child(11),.row.no-gutter .col-auto:nth-last-child(11)~.col-auto{width:9.09090909%}.row .col-auto:nth-last-child(12),.row .col-auto:nth-last-child(12)~.col-auto{width:8.33333333%;width:calc((100% - 16px*11) / 12)}.row.no-gutter .col-auto:nth-last-child(12),.row.no-gutter .col-auto:nth-last-child(12)~.col-auto{width:8.33333333%}.row .col-auto:nth-last-child(13),.row .col-auto:nth-last-child(13)~.col-auto{width:7.69230769%;width:calc((100% - 16px*12) / 13)}.row.no-gutter .col-auto:nth-last-child(13),.row.no-gutter .col-auto:nth-last-child(13)~.col-auto{width:7.69230769%}.row .col-auto:nth-last-child(14),.row .col-auto:nth-last-child(14)~.col-auto{width:7.14285714%;width:calc((100% - 16px*13) / 14)}.row.no-gutter .col-auto:nth-last-child(14),.row.no-gutter .col-auto:nth-last-child(14)~.col-auto{width:7.14285714%}.row .col-auto:nth-last-child(15),.row .col-auto:nth-last-child(15)~.col-auto{width:6.66666667%;width:calc((100% - 16px*14) / 15)}.row.no-gutter .col-auto:nth-last-child(15),.row.no-gutter .col-auto:nth-last-child(15)~.col-auto{width:6.66666667%}.row .col-auto:nth-last-child(16),.row .col-auto:nth-last-child(16)~.col-auto{width:6.25%;width:calc((100% - 16px*15) / 16)}.row.no-gutter .col-auto:nth-last-child(16),.row.no-gutter .col-auto:nth-last-child(16)~.col-auto{width:6.25%}.row .col-auto:nth-last-child(17),.row .col-auto:nth-last-child(17)~.col-auto{width:5.88235294%;width:calc((100% - 16px*16) / 17)}.row.no-gutter .col-auto:nth-last-child(17),.row.no-gutter .col-auto:nth-last-child(17)~.col-auto{width:5.88235294%}.row .col-auto:nth-last-child(18),.row .col-auto:nth-last-child(18)~.col-auto{width:5.55555556%;width:calc((100% - 16px*17) / 18)}.row.no-gutter .col-auto:nth-last-child(18),.row.no-gutter .col-auto:nth-last-child(18)~.col-auto{width:5.55555556%}.row .col-auto:nth-last-child(19),.row .col-auto:nth-last-child(19)~.col-auto{width:5.26315789%;width:calc((100% - 16px*18) / 19)}.row.no-gutter .col-auto:nth-last-child(19),.row.no-gutter .col-auto:nth-last-child(19)~.col-auto{width:5.26315789%}.row .col-auto:nth-last-child(20),.row .col-auto:nth-last-child(20)~.col-auto{width:5%;width:calc((100% - 16px*19) / 20)}.row.no-gutter .col-auto:nth-last-child(20),.row.no-gutter .col-auto:nth-last-child(20)~.col-auto{width:5%}.row .col-auto:nth-last-child(21),.row .col-auto:nth-last-child(21)~.col-auto{width:4.76190476%;width:calc((100% - 16px*20) / 21)}.row.no-gutter .col-auto:nth-last-child(21),.row.no-gutter .col-auto:nth-last-child(21)~.col-auto{width:4.76190476%}}@media (max-width:992px) and (min-width:601px){.row .tablet-100{width:100%;width:calc((100% - 16px*0) / 1)}.row.no-gutter .tablet-100{width:100%}.row .tablet-95{width:95%;width:calc((100% - 16px*0.05263157894736836) / 1.0526315789473684)}.row.no-gutter .tablet-95{width:95%}.row .tablet-90{width:90%;width:calc((100% - 16px*0.11111111111111116) / 1.1111111111111112)}.row.no-gutter .tablet-90{width:90%}.row .tablet-85{width:85%;width:calc((100% - 16px*0.17647058823529416) / 1.1764705882352942)}.row.no-gutter .tablet-85{width:85%}.row .tablet-80{width:80%;width:calc((100% - 16px*0.25) / 1.25)}.row.no-gutter .tablet-80{width:80%}.row .tablet-75{width:75%;width:calc((100% - 16px*0.33333333333333326) / 1.3333333333333333)}.row.no-gutter .tablet-75{width:75%}.row .tablet-70{width:70%;width:calc((100% - 16px*0.4285714285714286) / 1.4285714285714286)}.row.no-gutter .tablet-70{width:70%}.row .tablet-66{width:66.66666666666666%;width:calc((100% - 16px*0.5000000000000002) / 1.5000000000000002)}.row.no-gutter .tablet-66{width:66.66666666666666%}.row .tablet-65{width:65%;width:calc((100% - 16px*0.5384615384615385) / 1.5384615384615385)}.row.no-gutter .tablet-65{width:65%}.row .tablet-60{width:60%;width:calc((100% - 16px*0.6666666666666667) / 1.6666666666666667)}.row.no-gutter .tablet-60{width:60%}.row .tablet-55{width:55%;width:calc((100% - 16px*0.8181818181818181) / 1.8181818181818181)}.row.no-gutter .tablet-55{width:55%}.row .tablet-50{width:50%;width:calc((100% - 16px*1) / 2)}.row.no-gutter .tablet-50{width:50%}.row .tablet-45{width:45%;width:calc((100% - 16px*1.2222222222222223) / 2.2222222222222223)}.row.no-gutter .tablet-45{width:45%}.row .tablet-40{width:40%;width:calc((100% - 16px*1.5) / 2.5)}.row.no-gutter .tablet-40{width:40%}.row .tablet-35{width:35%;width:calc((100% - 16px*1.8571428571428572) / 2.857142857142857)}.row.no-gutter .tablet-35{width:35%}.row .tablet-33{width:33.333333333333336%;width:calc((100% - 16px*2) / 3)}.row.no-gutter .tablet-33{width:33.333333333333336%}.row .tablet-30{width:30%;width:calc((100% - 16px*2.3333333333333335) / 3.3333333333333335)}.row.no-gutter .tablet-30{width:30%}.row .tablet-25{width:25%;width:calc((100% - 16px*3) / 4)}.row.no-gutter .tablet-25{width:25%}.row .tablet-20{width:20%;width:calc((100% - 16px*4) / 5)}.row.no-gutter .tablet-20{width:20%}.row .tablet-15{width:15%;width:calc((100% - 16px*5.666666666666667) / 6.666666666666667)}.row.no-gutter .tablet-15{width:15%}.row .tablet-10{width:10%;width:calc((100% - 16px*9) / 10)}.row.no-gutter .tablet-10{width:10%}.row .tablet-5{width:5%;width:calc((100% - 16px*19) / 20)}.row.no-gutter .tablet-5{width:5%}.row .tablet-auto:last-child,.row .tablet-auto:last-child~.col-auto{width:100%;width:calc((100% - 16px*0) / 1)}.row.no-gutter .tablet-auto:last-child,.row.no-gutter .tablet-auto:last-child~.tablet-auto{width:100%}.row .tablet-auto:nth-last-child(2),.row .tablet-auto:nth-last-child(2)~.col-auto{width:50%;width:calc((100% - 16px*1) / 2)}.row.no-gutter .tablet-auto:nth-last-child(2),.row.no-gutter .tablet-auto:nth-last-child(2)~.tablet-auto{width:50%}.row .tablet-auto:nth-last-child(3),.row .tablet-auto:nth-last-child(3)~.col-auto{width:33.33333333%;width:calc((100% - 16px*2) / 3)}.row.no-gutter .tablet-auto:nth-last-child(3),.row.no-gutter .tablet-auto:nth-last-child(3)~.tablet-auto{width:33.33333333%}.row .tablet-auto:nth-last-child(4),.row .tablet-auto:nth-last-child(4)~.col-auto{width:25%;width:calc((100% - 16px*3) / 4)}.row.no-gutter .tablet-auto:nth-last-child(4),.row.no-gutter .tablet-auto:nth-last-child(4)~.tablet-auto{width:25%}.row .tablet-auto:nth-last-child(5),.row .tablet-auto:nth-last-child(5)~.col-auto{width:20%;width:calc((100% - 16px*4) / 5)}.row.no-gutter .tablet-auto:nth-last-child(5),.row.no-gutter .tablet-auto:nth-last-child(5)~.tablet-auto{width:20%}.row .tablet-auto:nth-last-child(6),.row .tablet-auto:nth-last-child(6)~.col-auto{width:16.66666667%;width:calc((100% - 16px*5) / 6)}.row.no-gutter .tablet-auto:nth-last-child(6),.row.no-gutter .tablet-auto:nth-last-child(6)~.tablet-auto{width:16.66666667%}.row .tablet-auto:nth-last-child(7),.row .tablet-auto:nth-last-child(7)~.col-auto{width:14.28571429%;width:calc((100% - 16px*6) / 7)}.row.no-gutter .tablet-auto:nth-last-child(7),.row.no-gutter .tablet-auto:nth-last-child(7)~.tablet-auto{width:14.28571429%}.row .tablet-auto:nth-last-child(8),.row .tablet-auto:nth-last-child(8)~.col-auto{width:12.5%;width:calc((100% - 16px*7) / 8)}.row.no-gutter .tablet-auto:nth-last-child(8),.row.no-gutter .tablet-auto:nth-last-child(8)~.tablet-auto{width:12.5%}.row .tablet-auto:nth-last-child(9),.row .tablet-auto:nth-last-child(9)~.col-auto{width:11.11111111%;width:calc((100% - 16px*8) / 9)}.row.no-gutter .tablet-auto:nth-last-child(9),.row.no-gutter .tablet-auto:nth-last-child(9)~.tablet-auto{width:11.11111111%}.row .tablet-auto:nth-last-child(10),.row .tablet-auto:nth-last-child(10)~.col-auto{width:10%;width:calc((100% - 16px*9) / 10)}.row.no-gutter .tablet-auto:nth-last-child(10),.row.no-gutter .tablet-auto:nth-last-child(10)~.tablet-auto{width:10%}.row .tablet-auto:nth-last-child(11),.row .tablet-auto:nth-last-child(11)~.col-auto{width:9.09090909%;width:calc((100% - 16px*10) / 11)}.row.no-gutter .tablet-auto:nth-last-child(11),.row.no-gutter .tablet-auto:nth-last-child(11)~.tablet-auto{width:9.09090909%}.row .tablet-auto:nth-last-child(12),.row .tablet-auto:nth-last-child(12)~.col-auto{width:8.33333333%;width:calc((100% - 16px*11) / 12)}.row.no-gutter .tablet-auto:nth-last-child(12),.row.no-gutter .tablet-auto:nth-last-child(12)~.tablet-auto{width:8.33333333%}.row .tablet-auto:nth-last-child(13),.row .tablet-auto:nth-last-child(13)~.col-auto{width:7.69230769%;width:calc((100% - 16px*12) / 13)}.row.no-gutter .tablet-auto:nth-last-child(13),.row.no-gutter .tablet-auto:nth-last-child(13)~.tablet-auto{width:7.69230769%}.row .tablet-auto:nth-last-child(14),.row .tablet-auto:nth-last-child(14)~.col-auto{width:7.14285714%;width:calc((100% - 16px*13) / 14)}.row.no-gutter .tablet-auto:nth-last-child(14),.row.no-gutter .tablet-auto:nth-last-child(14)~.tablet-auto{width:7.14285714%}.row .tablet-auto:nth-last-child(15),.row .tablet-auto:nth-last-child(15)~.col-auto{width:6.66666667%;width:calc((100% - 16px*14) / 15)}.row.no-gutter .tablet-auto:nth-last-child(15),.row.no-gutter .tablet-auto:nth-last-child(15)~.tablet-auto{width:6.66666667%}.row .tablet-auto:nth-last-child(16),.row .tablet-auto:nth-last-child(16)~.col-auto{width:6.25%;width:calc((100% - 16px*15) / 16)}.row.no-gutter .tablet-auto:nth-last-child(16),.row.no-gutter .tablet-auto:nth-last-child(16)~.tablet-auto{width:6.25%}.row .tablet-auto:nth-last-child(17),.row .tablet-auto:nth-last-child(17)~.col-auto{width:5.88235294%;width:calc((100% - 16px*16) / 17)}.row.no-gutter .tablet-auto:nth-last-child(17),.row.no-gutter .tablet-auto:nth-last-child(17)~.tablet-auto{width:5.88235294%}.row .tablet-auto:nth-last-child(18),.row .tablet-auto:nth-last-child(18)~.col-auto{width:5.55555556%;width:calc((100% - 16px*17) / 18)}.row.no-gutter .tablet-auto:nth-last-child(18),.row.no-gutter .tablet-auto:nth-last-child(18)~.tablet-auto{width:5.55555556%}.row .tablet-auto:nth-last-child(19),.row .tablet-auto:nth-last-child(19)~.col-auto{width:5.26315789%;width:calc((100% - 16px*18) / 19)}.row.no-gutter .tablet-auto:nth-last-child(19),.row.no-gutter .tablet-auto:nth-last-child(19)~.tablet-auto{width:5.26315789%}.row .tablet-auto:nth-last-child(20),.row .tablet-auto:nth-last-child(20)~.col-auto{width:5%;width:calc((100% - 16px*19) / 20)}.row.no-gutter .tablet-auto:nth-last-child(20),.row.no-gutter .tablet-auto:nth-last-child(20)~.tablet-auto{width:5%}.row .tablet-auto:nth-last-child(21),.row .tablet-auto:nth-last-child(21)~.col-auto{width:4.76190476%;width:calc((100% - 16px*20) / 21)}.row.no-gutter .tablet-auto:nth-last-child(21),.row.no-gutter .tablet-auto:nth-last-child(21)~.tablet-auto{width:4.76190476%}}@media (min-width:993px){.row .desktop-100{width:100%;width:calc((100% - 16px*0) / 1)}.row.no-gutter .desktop-100{width:100%}.row .desktop-95{width:95%;width:calc((100% - 16px*0.05263157894736836) / 1.0526315789473684)}.row.no-gutter .desktop-95{width:95%}.row .desktop-90{width:90%;width:calc((100% - 16px*0.11111111111111116) / 1.1111111111111112)}.row.no-gutter .desktop-90{width:90%}.row .desktop-85{width:85%;width:calc((100% - 16px*0.17647058823529416) / 1.1764705882352942)}.row.no-gutter .desktop-85{width:85%}.row .desktop-80{width:80%;width:calc((100% - 16px*0.25) / 1.25)}.row.no-gutter .desktop-80{width:80%}.row .desktop-75{width:75%;width:calc((100% - 16px*0.33333333333333326) / 1.3333333333333333)}.row.no-gutter .desktop-75{width:75%}.row .desktop-70{width:70%;width:calc((100% - 16px*0.4285714285714286) / 1.4285714285714286)}.row.no-gutter .desktop-70{width:70%}.row .desktop-66{width:66.66666666666666%;width:calc((100% - 16px*0.5000000000000002) / 1.5000000000000002)}.row.no-gutter .desktop-66{width:66.66666666666666%}.row .desktop-65{width:65%;width:calc((100% - 16px*0.5384615384615385) / 1.5384615384615385)}.row.no-gutter .desktop-65{width:65%}.row .desktop-60{width:60%;width:calc((100% - 16px*0.6666666666666667) / 1.6666666666666667)}.row.no-gutter .desktop-60{width:60%}.row .desktop-55{width:55%;width:calc((100% - 16px*0.8181818181818181) / 1.8181818181818181)}.row.no-gutter .desktop-55{width:55%}.row .desktop-50{width:50%;width:calc((100% - 16px*1) / 2)}.row.no-gutter .desktop-50{width:50%}.row .desktop-45{width:45%;width:calc((100% - 16px*1.2222222222222223) / 2.2222222222222223)}.row.no-gutter .desktop-45{width:45%}.row .desktop-40{width:40%;width:calc((100% - 16px*1.5) / 2.5)}.row.no-gutter .desktop-40{width:40%}.row .desktop-35{width:35%;width:calc((100% - 16px*1.8571428571428572) / 2.857142857142857)}.row.no-gutter .desktop-35{width:35%}.row .desktop-33{width:33.333333333333336%;width:calc((100% - 16px*2) / 3)}.row.no-gutter .desktop-33{width:33.333333333333336%}.row .desktop-30{width:30%;width:calc((100% - 16px*2.3333333333333335) / 3.3333333333333335)}.row.no-gutter .desktop-30{width:30%}.row .desktop-25{width:25%;width:calc((100% - 16px*3) / 4)}.row.no-gutter .desktop-25{width:25%}.row .desktop-20{width:20%;width:calc((100% - 16px*4) / 5)}.row.no-gutter .desktop-20{width:20%}.row .desktop-15{width:15%;width:calc((100% - 16px*5.666666666666667) / 6.666666666666667)}.row.no-gutter .desktop-15{width:15%}.row .desktop-10{width:10%;width:calc((100% - 16px*9) / 10)}.row.no-gutter .desktop-10{width:10%}.row .desktop-5{width:5%;width:calc((100% - 16px*19) / 20)}.row.no-gutter .desktop-5{width:5%}.row .desktop-auto:last-child,.row .desktop-auto:last-child~.col-auto{width:100%;width:calc((100% - 16px*0) / 1)}.row.no-gutter .desktop-auto:last-child,.row.no-gutter .desktop-auto:last-child~.desktop-auto{width:100%}.row .desktop-auto:nth-last-child(2),.row .desktop-auto:nth-last-child(2)~.col-auto{width:50%;width:calc((100% - 16px*1) / 2)}.row.no-gutter .desktop-auto:nth-last-child(2),.row.no-gutter .desktop-auto:nth-last-child(2)~.desktop-auto{width:50%}.row .desktop-auto:nth-last-child(3),.row .desktop-auto:nth-last-child(3)~.col-auto{width:33.33333333%;width:calc((100% - 16px*2) / 3)}.row.no-gutter .desktop-auto:nth-last-child(3),.row.no-gutter .desktop-auto:nth-last-child(3)~.desktop-auto{width:33.33333333%}.row .desktop-auto:nth-last-child(4),.row .desktop-auto:nth-last-child(4)~.col-auto{width:25%;width:calc((100% - 16px*3) / 4)}.row.no-gutter .desktop-auto:nth-last-child(4),.row.no-gutter .desktop-auto:nth-last-child(4)~.desktop-auto{width:25%}.row .desktop-auto:nth-last-child(5),.row .desktop-auto:nth-last-child(5)~.col-auto{width:20%;width:calc((100% - 16px*4) / 5)}.row.no-gutter .desktop-auto:nth-last-child(5),.row.no-gutter .desktop-auto:nth-last-child(5)~.desktop-auto{width:20%}.row .desktop-auto:nth-last-child(6),.row .desktop-auto:nth-last-child(6)~.col-auto{width:16.66666667%;width:calc((100% - 16px*5) / 6)}.row.no-gutter .desktop-auto:nth-last-child(6),.row.no-gutter .desktop-auto:nth-last-child(6)~.desktop-auto{width:16.66666667%}.row .desktop-auto:nth-last-child(7),.row .desktop-auto:nth-last-child(7)~.col-auto{width:14.28571429%;width:calc((100% - 16px*6) / 7)}.row.no-gutter .desktop-auto:nth-last-child(7),.row.no-gutter .desktop-auto:nth-last-child(7)~.desktop-auto{width:14.28571429%}.row .desktop-auto:nth-last-child(8),.row .desktop-auto:nth-last-child(8)~.col-auto{width:12.5%;width:calc((100% - 16px*7) / 8)}.row.no-gutter .desktop-auto:nth-last-child(8),.row.no-gutter .desktop-auto:nth-last-child(8)~.desktop-auto{width:12.5%}.row .desktop-auto:nth-last-child(9),.row .desktop-auto:nth-last-child(9)~.col-auto{width:11.11111111%;width:calc((100% - 16px*8) / 9)}.row.no-gutter .desktop-auto:nth-last-child(9),.row.no-gutter .desktop-auto:nth-last-child(9)~.desktop-auto{width:11.11111111%}.row .desktop-auto:nth-last-child(10),.row .desktop-auto:nth-last-child(10)~.col-auto{width:10%;width:calc((100% - 16px*9) / 10)}.row.no-gutter .desktop-auto:nth-last-child(10),.row.no-gutter .desktop-auto:nth-last-child(10)~.desktop-auto{width:10%}.row .desktop-auto:nth-last-child(11),.row .desktop-auto:nth-last-child(11)~.col-auto{width:9.09090909%;width:calc((100% - 16px*10) / 11)}.row.no-gutter .desktop-auto:nth-last-child(11),.row.no-gutter .desktop-auto:nth-last-child(11)~.desktop-auto{width:9.09090909%}.row .desktop-auto:nth-last-child(12),.row .desktop-auto:nth-last-child(12)~.col-auto{width:8.33333333%;width:calc((100% - 16px*11) / 12)}.row.no-gutter .desktop-auto:nth-last-child(12),.row.no-gutter .desktop-auto:nth-last-child(12)~.desktop-auto{width:8.33333333%}.row .desktop-auto:nth-last-child(13),.row .desktop-auto:nth-last-child(13)~.col-auto{width:7.69230769%;width:calc((100% - 16px*12) / 13)}.row.no-gutter .desktop-auto:nth-last-child(13),.row.no-gutter .desktop-auto:nth-last-child(13)~.desktop-auto{width:7.69230769%}.row .desktop-auto:nth-last-child(14),.row .desktop-auto:nth-last-child(14)~.col-auto{width:7.14285714%;width:calc((100% - 16px*13) / 14)}.row.no-gutter .desktop-auto:nth-last-child(14),.row.no-gutter .desktop-auto:nth-last-child(14)~.desktop-auto{width:7.14285714%}.row .desktop-auto:nth-last-child(15),.row .desktop-auto:nth-last-child(15)~.col-auto{width:6.66666667%;width:calc((100% - 16px*14) / 15)}.row.no-gutter .desktop-auto:nth-last-child(15),.row.no-gutter .desktop-auto:nth-last-child(15)~.desktop-auto{width:6.66666667%}.row .desktop-auto:nth-last-child(16),.row .desktop-auto:nth-last-child(16)~.col-auto{width:6.25%;width:calc((100% - 16px*15) / 16)}.row.no-gutter .desktop-auto:nth-last-child(16),.row.no-gutter .desktop-auto:nth-last-child(16)~.desktop-auto{width:6.25%}.row .desktop-auto:nth-last-child(17),.row .desktop-auto:nth-last-child(17)~.col-auto{width:5.88235294%;width:calc((100% - 16px*16) / 17)}.row.no-gutter .desktop-auto:nth-last-child(17),.row.no-gutter .desktop-auto:nth-last-child(17)~.desktop-auto{width:5.88235294%}.row .desktop-auto:nth-last-child(18),.row .desktop-auto:nth-last-child(18)~.col-auto{width:5.55555556%;width:calc((100% - 16px*17) / 18)}.row.no-gutter .desktop-auto:nth-last-child(18),.row.no-gutter .desktop-auto:nth-last-child(18)~.desktop-auto{width:5.55555556%}.row .desktop-auto:nth-last-child(19),.row .desktop-auto:nth-last-child(19)~.col-auto{width:5.26315789%;width:calc((100% - 16px*18) / 19)}.row.no-gutter .desktop-auto:nth-last-child(19),.row.no-gutter .desktop-auto:nth-last-child(19)~.desktop-auto{width:5.26315789%}.row .desktop-auto:nth-last-child(20),.row .desktop-auto:nth-last-child(20)~.col-auto{width:5%;width:calc((100% - 16px*19) / 20)}.row.no-gutter .desktop-auto:nth-last-child(20),.row.no-gutter .desktop-auto:nth-last-child(20)~.desktop-auto{width:5%}.row .desktop-auto:nth-last-child(21),.row .desktop-auto:nth-last-child(21)~.col-auto{width:4.76190476%;width:calc((100% - 16px*20) / 21)}.row.no-gutter .desktop-auto:nth-last-child(21),.row.no-gutter .desktop-auto:nth-last-child(21)~.desktop-auto{width:4.76190476%}}.mu-flexbox{width:100%;text-align:left;display:-ms-flexbox;display:flex;box-align:center;-ms-flex-align:center;align-items:center}.mu-flexbox .mu-flexbox-item{-ms-flex:1;flex:1;min-width:20px;width:0}.mu-flexbox-item>.mu-flexbox{width:100%}.mu-flexbox .mu-flexbox-item:first-child{margin-left:0!important;margin-top:0!important}.mu-flex-col{box-orient:vertical;-ms-flex-direction:column;flex-direction:column}.mu-flex-col>.mu-flexbox-item{width:100%}.mu-flex-row{box-direction:row;box-orient:horizontal;-ms-flex-direction:row;flex-direction:row}.mu-appbar{background-color:#009688;color:#fff}.mu-avatar,.mu-badge{color:#fff;background-color:#bdbdbd}.mu-badge-primary{background-color:#009688;color:#fff}.mu-badge-secondary{background-color:#ff4081;color:#fff}body{background-color:#fff;color:rgba(0,0,0,.87);font-family:Roboto,Lato,sans-serif}a{color:#ff4081}.mu-bottom-nav{background-color:#fff}.mu-bottom-nav-shift{background-color:#009688}.mu-buttom-item{color:rgba(0,0,0,.54)}.mu-bottom-nav-shift .mu-buttom-item{color:hsla(0,0%,100%,.7)}.mu-bottom-item-active .mu-bottom-item-text{color:#009688}.mu-bottom-nav-shift .mu-bottom-item-active .mu-bottom-item-text{color:#fff}.mu-bottom-item-active .mu-bottom-item-icon{color:#009688}.mu-bottom-nav-shift .mu-bottom-item-active .mu-bottom-item-icon{color:#fff}.mu-bottom-sheet,.mu-card{background-color:#fff}.mu-card-header-title .mu-card-title{color:rgba(0,0,0,.87)}.mu-card-header-title .mu-card-sub-title{color:rgba(0,0,0,.54)}.mu-card-media-title{background-color:rgba(0,0,0,.54)}.mu-card-media-title .mu-card-title{color:hsla(0,0%,100%,.87)}.mu-card-media-title .mu-card-sub-title{color:hsla(0,0%,100%,.54)}.mu-card-title-container .mu-card-title{color:rgba(0,0,0,.87)}.mu-card-title-container .mu-card-sub-title{color:rgba(0,0,0,.54)}.mu-card-text{color:rgba(0,0,0,.87)}.mu-checkbox input[type=checkbox]:checked+.mu-checkbox-wrapper .mu-checkbox-icon-uncheck,.mu-checkbox input[type=checkbox]:checked+.mu-checkbox-wrapper .mu-checkbox-ripple-wrapper{color:#009688}.mu-checkbox-label{color:rgba(0,0,0,.87)}.mu-checkbox.disabled .mu-checkbox-label{color:rgba(0,0,0,.38)}.mu-checkbox-icon-uncheck{color:rgba(0,0,0,.87)}.mu-checkbox.disabled .mu-checkbox-icon-uncheck{color:rgba(0,0,0,.38)}.mu-checkbox-icon-checked{color:#009688}.mu-checkbox.disabled .mu-checkbox-icon-checked{color:rgba(0,0,0,.38)}.mu-chip{background-color:#e0e0e0;color:rgba(0,0,0,.87)}.mu-chip.hover{background-color:#cecece;cursor:pointer}.mu-chip.hover .mu-chip-delete-icon{color:rgba(0,0,0,.4)}.mu-chip-delete-icon{color:rgba(0,0,0,.26)}.mu-circular-progress-determinate-path{stroke:#009688}.mu-calendar{color:rgba(0,0,0,.87)}.mu-calendar-year{background-color:#fff}.mu-date-display{color:#fff}.mu-date-display,.mu-day-button-bg{background-color:#009688}.mu-day-button-text{font-weight:400;position:relative;color:rgba(0,0,0,.87)}.mu-day-button.now .mu-day-button-text{color:#009688}.mu-day-button.hover .mu-day-button-text,.mu-day-button.selected .mu-day-button-text{color:#fff}.mu-year-button-text{color:rgba(0,0,0,.87)}.mu-year-button.hover .mu-year-button-text,.mu-year-button.selected .mu-year-button-text{color:#009688}.mu-dialog{background-color:#fff}.mu-dialog-footer.scrollable,.mu-dialog-header.scrollable{border-bottom-color:rgba(0,0,0,.12)}.mu-dialog-title{color:rgba(0,0,0,.87)}.mu-dialog-body{color:rgba(0,0,0,.6)}.mu-dropDown-menu-text{color:rgba(0,0,0,.87)}.mu-dropDown-menu-icon{color:rgba(0,0,0,.12)}.mu-dropDown-menu-line{background-color:rgba(0,0,0,.12)}.mu-flat-button{background-color:transparent}.mu-flat-button,.mu-flat-button .mu-circle-ripple{color:rgba(0,0,0,.87)}.mu-flat-button-primary{color:#009688}.mu-flat-button-secondary{color:#ff4081}.mu-float-button{background-color:#009688;color:#fff}.mu-float-button.disabled{color:rgba(0,0,0,.3);cursor:default;background-color:#e0e0e0}.mu-float-button.hover .mu-float-button-wrapper,.mu-float-button:active .mu-float-button-wrapper{background-color:hsla(0,0%,100%,.3)}.mu-float-button-secondary{background-color:#ff4081;color:#fff}.mu-grid-tile-titlebar{background-color:rgba(0,0,0,.4)}.mu-grid-tile-action .mu-icon,.mu-grid-tile-title-container{color:#fff}.mu-circle-spinner{border-color:#009688}.mu-circle-secondary{border-color:#ff4081}.mu-linear-progress{background-color:#bdbdbd}.mu-linear-progress-determinate,.mu-linear-progress-indeterminate{background-color:#009688}.mu-item-wrapper.hover{background-color:rgba(0,0,0,.1)}.mu-item{color:rgba(0,0,0,.87)}.mu-item.selected{color:#009688}.mu-item-left,.mu-item-link-icon,.mu-item-right{color:#757575}.mu-item-after,.mu-item-text{color:rgba(0,0,0,.54)}.mu-menu-item-wrapper{color:rgba(0,0,0,.87)}.mu-menu-item-wrapper.active{color:#ff4081}.mu-menu-item-wrapper.hover{background-color:rgba(0,0,0,.1)}.mu-menu-item-wrapper.disabled{color:rgba(0,0,0,.38)}.mu-menu-item-left-icon,.mu-menu-item-right-icon{color:#757575}.mu-pagination-item{color:rgba(0,0,0,.87)}.mu-pagination-item.hover{background-color:rgba(0,0,0,.1)}.mu-pagination-item.active{color:#fff;background-color:#009688}.mu-pagination-item.disabled{color:rgba(0,0,0,.38)}.mu-paper{color:rgba(0,0,0,.87)}.mu-paper,.mu-picker{background-color:#fff}.mu-picker-center-highlight:after,.mu-picker-center-highlight:before{background-color:rgba(0,0,0,.12)}.mu-picker-slot.mu-picker-slot-divider{color:rgba(0,0,0,.87)}.mu-picker-item{color:rgba(0,0,0,.54)}.mu-picker-item.selected{color:rgba(0,0,0,.87)}.mu-popover,.mu-popup{background-color:#fff}.mu-radio input[type=radio]:checked+.mu-radio-wrapper .mu-radio-icon-uncheck,.mu-radio input[type=radio]:checked+.mu-radio-wrapper .mu-radio-ripple-wrapper{color:#009688}.mu-radio-label{color:rgba(0,0,0,.87)}.mu-radio.disabled .mu-radio-label{color:rgba(0,0,0,.38)}.mu-radio-icon-uncheck{color:rgba(0,0,0,.87)}.mu-radio.disabled .mu-radio-icon-uncheck{color:rgba(0,0,0,.38)}.mu-radio-icon-checked{color:#009688}.mu-radio.disabled .mu-radio-icon-checked{color:rgba(0,0,0,.38)}.mu-raised-button{background-color:#fff;color:rgba(0,0,0,.87)}.mu-raised-button.hover .mu-raised-button-wrapper{background-color:rgba(0,0,0,.1)}.mu-raised-button.disabled{color:rgba(0,0,0,.3);background-color:#e6e6e6}.mu-raised-button-primary{background-color:#009688}.mu-raised-button-secondary{background-color:#ff4081}.mu-refresh-control{color:#009688}.mu-slider-track{background-color:#bdbdbd}.mu-slider-fill{background-color:#009688}.mu-slider-fill.disabled{background-color:#bdbdbd}.mu-slider-thumb{background-color:#009688;color:#009688}.mu-slider.disabled .mu-slider-thumb,.mu-slider.zero .mu-slider-thumb{border-color:#bdbdbd;color:#bdbdbd;background-color:#fff}.mu-snackbar{color:#fff;background-color:rgba(0,0,0,.87)}.mu-step-button{background-color:transparent}.mu-step-button.hover{background-color:rgba(0,0,0,.06)}.mu-step-connector-line{border-color:#bdbdbd}.mu-stepper-vertical .mu-step-content{border-left:1px solid #bdbdbd}.mu-step-label{color:rgba(0,0,0,.87)}.mu-step-label.disabled{color:rgba(0,0,0,.38)}.mu-step-label-icon,.mu-step-label.disabled .mu-step-label-icon{color:#9e9e9e}.mu-step-label.active .mu-step-label-icon,.mu-step-label.completed .mu-step-label-icon{color:#009688}.mu-step-label-circle{color:#fff}.mu-step-label-circle,.mu-step-label.disabled .mu-step-label-circle{background-color:#9e9e9e}.mu-step-label.active .mu-step-label-circle,.mu-step-label.completed .mu-step-label-circle{background-color:#009688}.mu-sub-header{color:rgba(0,0,0,.54)}.mu-switch input[type=checkbox]:checked+.mu-switch-wrapper .mu-switch-track{background-color:rgba(0,150,136,.5)}.mu-switch input[type=checkbox]:checked+.mu-switch-wrapper .mu-switch-thumb{background-color:#009688;color:#009688}.mu-switch.disabled input[type=checkbox]:checked+.mu-switch-wrapper .mu-switch-track{background-color:#bdbdbd}.mu-switch.disabled input[type=checkbox]:checked+.mu-switch-wrapper .mu-switch-thumb{background-color:#e0e0e0}.mu-switch-label{color:rgba(0,0,0,.87)}.mu-switch.disabled .mu-switch-label{color:rgba(0,0,0,.38)}.mu-switch-track,.mu-switch.disabled .mu-switch-track{background-color:#bdbdbd}.mu-switch-thumb{color:rgba(0,0,0,.87);background-color:#f5f5f5}.mu-switch.disabled .mu-switch-thumb{background-color:#e0e0e0}.mu-table{background-color:#fff}.mu-thead{border-bottom-color:rgba(0,0,0,.12)}.mu-th{color:rgba(0,0,0,.54)}.mu-tr{border-bottom-color:rgba(0,0,0,.12);color:rgba(0,0,0,.87)}.mu-tr.selected{background-color:#f5f5f5}.mu-tr.hover{background-color:#eee}.mu-tr.stripe{background-color:rgba(150,255,245,.4)}.mu-tfoot .mu-tr{border-top-color:rgba(0,0,0,.12)}.mu-tabs{background-color:#009688}.mu-tab-link-highlight{background-color:#ff4081}.mu-tab-link{color:hsla(0,0%,100%,.7)}.mu-tab-active{color:#fff}.mu-text-field{color:rgba(0,0,0,.54)}.mu-text-field.focus-state{color:#009688}.mu-text-field.focus-state.error{color:#f44336}.mu-text-field.disabled{color:rgba(0,0,0,.38)}.mu-text-field-input{color:rgba(0,0,0,.87)}.mu-text-field.error .mu-text-field-help{color:#f44336}.mu-text-field-line{background-color:rgba(0,0,0,.12)}.mu-text-field-line.disabled{border-color:rgba(0,0,0,.38)}.mu-text-field-focus-line{background-color:#009688}.mu-text-field-focus-line.error{background-color:#f44336}.mu-text-field-hint,.mu-text-field.has-label .mu-text-field-label.float{color:rgba(0,0,0,.38)}.mu-clock-circle{background-color:rgba(0,0,0,.07)}.mu-clock-number.selected,.mu-time-display{background-color:#009688;color:#fff}.mu-clock-pointer{background-color:#009688}.mu-clock-pointer-mark{background-color:#fff;border-color:#009688}.mu-toast{background-color:rgba(0,0,0,.87)}.mu-toast,.mu-tooltip{color:#fff}.mu-tooltip-ripple.when-shown{background-color:#616161}.fa-icon{display:inline-block;fill:currentColor}.fa-flip-horizontal{transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-spin{animation:fa-spin 1s 0s infinite linear}.fa-inverse{color:#fff}.fa-pulse{animation:fa-spin 1s infinite steps(8)}@keyframes fa-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}} 8 | /*# sourceMappingURL=app.cfc0f2bd0296962e5c06d48a9026003b.css.map */ -------------------------------------------------------------------------------- /dist/static/js/app.06c0c6b9f5d79fbc1631.js: -------------------------------------------------------------------------------- 1 | webpackJsonp([1],{"5s8g":function(t,e){},AMp5:function(t,e){},Do2Q:function(t,e){},NHnr:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var s={};n.d(s,"filterNote",function(){return j}),n.d(s,"activeNote",function(){return K}),n.d(s,"layout",function(){return I}),n.d(s,"isCheck",function(){return Y}),n.d(s,"isTrashCheck",function(){return q});var o={};n.d(o,"newNote",function(){return Q}),n.d(o,"editNote",function(){return J}),n.d(o,"toggleNote",function(){return U}),n.d(o,"cancelCheck",function(){return X}),n.d(o,"allCheck",function(){return tt}),n.d(o,"deleteNote",function(){return et}),n.d(o,"backSave",function(){return nt}),n.d(o,"toggleTrashNote",function(){return st}),n.d(o,"cancelTrashCheck",function(){return ot}),n.d(o,"allTrashCheck",function(){return it}),n.d(o,"deleteTrashNote",function(){return at}),n.d(o,"recoveryNote",function(){return ct});var i=n("MVMM"),a={render:function(){var t=this.$createElement,e=this._self._c||t;return e("div",{attrs:{id:"app"}},[e("router-view")],1)},staticRenderFns:[]};var c=n("Z0/y")({name:"App"},a,!1,function(t){n("q+mC")},null,null).exports,r=n("zO6J"),l=n("4YfN"),u=n.n(l),h=n("9rMa"),d={name:"Header",data:function(){return{title:"便签",checkBtnTxt:"全选",searchTxt:"",isVisible:!1}},computed:u()({},Object(h.b)(["layout","isCheck"]),{allChecked:function(){return this.$store.state.notes.every(function(t){return t.done})},checkTitle:function(){return"已选择"+this.$store.state.deleteNotes.length+"项"}}),methods:{searchFocus:function(){this.isVisible=!0},searchBlur:function(){this.isVisible=!1},search:function(){this.$store.state.search=this.searchTxt},changeLayout:function(){"list"==this.$store.state.layout?this.$store.state.layout="grid":this.$store.state.layout="list"},cancelCheck:function(){this.$store.dispatch("cancelCheck")},allCheck:function(t){this.checkBtnTxt=t?"取消全选":"全选",this.$store.dispatch("allCheck",t)},openFolder:function(){this.$router.push({path:"noteFolder"})}}},f={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("header",{staticClass:"header",class:{visible:t.isVisible}},[n("mu-flexbox",{staticClass:"headerTool",class:{visible:t.isVisible}},[n("mu-flexbox-item",{staticClass:"flex",attrs:{order:"0"}},[t.isCheck?n("mu-raised-button",{staticClass:"raised-button",attrs:{label:"取消"},on:{click:t.cancelCheck}}):n("span",{staticClass:"icon",on:{click:t.openFolder}},[n("icon",{attrs:{name:"folder-open"}})],1)],1),t._v(" "),n("mu-flexbox-item",{staticClass:"flex",staticStyle:{"text-align":"center"},attrs:{order:"1"}},[t.isCheck?n("span",[t._v(t._s(t.checkTitle))]):n("span",[t._v(t._s(t.title))])]),t._v(" "),n("mu-flexbox-item",{staticClass:"flex",staticStyle:{"text-align":"right"},attrs:{order:"2"}},[t.isCheck?n("mu-raised-button",{staticClass:"raised-button",attrs:{label:t.checkBtnTxt},on:{click:function(e){t.allCheck(!t.allChecked)}}}):n("span",["grid"==t.layout?n("span",{staticClass:"icon",on:{click:t.changeLayout}},[n("icon",{attrs:{name:"list"}})],1):n("span",{staticClass:"icon",on:{click:t.changeLayout}},[n("icon",{attrs:{name:"th-large"}})],1)])],1)],1),t._v(" "),n("div",{staticClass:"search"},[n("div",{staticClass:"icon"},[n("icon",{attrs:{name:"search"}})],1),t._v(" "),n("input",{directives:[{name:"model",rawName:"v-model",value:t.searchTxt,expression:"searchTxt"}],attrs:{type:"text"},domProps:{value:t.searchTxt},on:{keyup:t.search,focus:t.searchFocus,blur:t.searchBlur,input:function(e){e.target.composing||(t.searchTxt=e.target.value)}}})])],1)},staticRenderFns:[]};var p=n("Z0/y")(d,f,!1,function(t){n("Wos8")},"data-v-4a395ce8",null).exports,m={name:"NoteList",data:function(){return{timeOutEvent:0,Loop:null}},computed:u()({},Object(h.b)(["filterNote","layout","isCheck"])),methods:{editNote:function(t){this.isCheck?this.$store.dispatch("toggleNote",t):(this.$store.dispatch("editNote",t),this.$router.push({path:"/editor"}))},gtouchstart:function(t){var e=this;return this.timeOutEvent=setTimeout(function(){e.longPress(t)},500),!1},gtouchend:function(t){return clearTimeout(this.timeOutEvent),0!=this.timeOutEvent&&this.editNote(t),!1},longPress:function(t){this.timeOutEvent=0,this.$store.state.isCheck=!0,this.$store.dispatch("toggleNote",t)},loopstart:function(t){var e=this;clearInterval(this.Loop),this.Loop=setTimeout(function(){e.$store.state.isCheck=!0,e.$store.dispatch("toggleNote",t)},500)},clearLoop:function(){clearTimeout(this.Loop)}}},v={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("ul",{staticClass:"noteList",class:t.layout},t._l(t.filterNote,function(e){return n("li",{key:e.id,on:{mousedown:function(n){t.gtouchstart(e)},mouseup:function(n){t.gtouchend(e)},touchstart:function(n){t.loopstart(e)},touchend:t.clearLoop}},[n("h4",[t._v(t._s(e.date))]),t._v(" "),n("p",[t._v(t._s(e.content))]),t._v(" "),n("mu-checkbox",{directives:[{name:"show",rawName:"v-show",value:t.isCheck,expression:"isCheck"}],staticClass:"checkbox",attrs:{label:""},model:{value:e.done,callback:function(n){t.$set(e,"done",n)},expression:"note.done"}})],1)}))},staticRenderFns:[]};var C=n("Z0/y")(m,v,!1,function(t){n("zxv9")},"data-v-55204add",null).exports,g={name:"ToolBar",data:function(){return{dialog:!1}},computed:u()({},Object(h.b)(["isCheck"])),methods:{addNote:function(){this.$store.dispatch("newNote"),this.$router.push({path:"editor"})},deleteNote:function(){this.dialog=!0},close:function(){this.dialog=!1},deleteConfirm:function(){this.dialog=!1,this.$store.dispatch("deleteNote")}}},N={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"toolBar"},[t.isCheck?n("div",{staticClass:"toolBtn"},[n("span",{staticClass:"icon",on:{click:t.deleteNote}},[n("icon",{attrs:{name:"trash-alt"}})],1),t._v(" "),n("span",{staticClass:"icon"},[n("icon",{attrs:{name:"dolly"}})],1)]):n("div",{staticClass:"addNote"},[n("div",{staticClass:"float-button mu-float-button",on:{click:t.addNote}},[n("icon",{attrs:{name:"plus"}})],1)]),t._v(" "),n("mu-dialog",{attrs:{open:t.dialog,title:"删除便签"},on:{close:t.close}},[t._v("\n 您确定删除所选便签吗?\n "),n("mu-flat-button",{attrs:{slot:"actions",primary:"",label:"取消"},on:{click:t.close},slot:"actions"}),t._v(" "),n("mu-flat-button",{attrs:{slot:"actions",primary:"",label:"确定"},on:{click:t.deleteConfirm},slot:"actions"})],1)],1)},staticRenderFns:[]};var _={name:"Notepad",data:function(){return{}},components:{Header:p,NoteList:C,ToolBar:n("Z0/y")(g,N,!1,function(t){n("Pv2r")},"data-v-a076ac20",null).exports}},k={render:function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"notepad"},[e("Header"),this._v(" "),e("NoteList"),this._v(" "),e("ToolBar")],1)},staticRenderFns:[]};var T=n("Z0/y")(_,k,!1,function(t){n("AMp5")},"data-v-74d53388",null).exports,x={name:"Editor",data:function(){return{content:"",isShow:!1}},created:function(){this.content=this.activeNote.content},computed:u()({},Object(h.b)(["activeNote"])),directives:{focus:{inserted:function(t){t.focus()}}},methods:{backList:function(){this.$router.push({path:"/"}),this.$store.dispatch("backSave",this.activeNote)},editorNote:function(){this.content!=this.activeNote.content?this.isShow=!0:this.isShow=!1}}},b={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"edit-panel"},[n("div",{staticClass:"edit-tool"},[n("span",{staticClass:"back-list",on:{click:t.backList}},[n("icon",{attrs:{name:"angle-left"}})],1),t._v(" "),n("span",{staticClass:"date",domProps:{textContent:t._s(t.activeNote.date)}}),t._v(" "),n("span",{directives:[{name:"show",rawName:"v-show",value:t.isShow,expression:"isShow"}],staticClass:"saveNote",on:{click:t.backList}},[t._v("完成")])]),t._v(" "),n("textarea",{directives:[{name:"focus",rawName:"v-focus"},{name:"model",rawName:"v-model",value:t.activeNote.content,expression:"activeNote.content"}],staticClass:"edit-area",domProps:{value:t.activeNote.content},on:{keyup:t.editorNote,input:function(e){e.target.composing||t.$set(t.activeNote,"content",e.target.value)}}})])},staticRenderFns:[]};var y=n("Z0/y")(x,b,!1,function(t){n("bL7U")},"data-v-7371ce79",null).exports,E={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"noteFolder"},[n("div",{staticClass:"header"},[n("span",{staticClass:"back-list",on:{click:t.backList}},[n("icon",{attrs:{name:"angle-left"}})],1),t._v(" "),n("span",{domProps:{textContent:t._s(t.title)}})]),t._v(" "),n("div",{staticClass:"folder-list"},[n("ul",{staticClass:"folder-note"},[n("li",{staticClass:"clearfix",on:{click:t.openNote}},[n("div",{staticClass:"pull-left"},[n("span",{staticClass:"icon"},[n("icon",{attrs:{name:"ellipsis-h"}})],1),t._v(" "),n("span",{domProps:{textContent:t._s(t.noteTaking)}})]),t._v(" "),n("div",{staticClass:"pull-right"},[t._v("\n "+t._s(t.notes)+"\n "),n("span",{staticClass:"icon"},[n("icon",{attrs:{name:"angle-right"}})],1)])])]),t._v(" "),n("ul",{staticClass:"folder-trash"},[n("li",{staticClass:"clearfix",on:{click:t.openTrash}},[n("div",{staticClass:"pull-left"},[n("span",{staticClass:"icon"},[n("icon",{attrs:{name:"trash"}})],1),t._v(" "),n("span",{domProps:{textContent:t._s(t.trash)}})]),t._v(" "),n("div",{staticClass:"pull-right"},[t._v("\n "+t._s(t.deleteNote)+"\n "),n("span",{staticClass:"icon"},[n("icon",{attrs:{name:"angle-right"}})],1)])])])])])},staticRenderFns:[]};var $=n("Z0/y")({name:"NoteFolder",data:function(){return{title:"便签夹",noteTaking:"随手记",trash:"废纸篓"}},computed:{deleteNote:function(){return this.$store.state.trashNotes.length},notes:function(){return this.$store.state.notes.length}},methods:{backList:function(){this.$router.push({path:"/"})},openTrash:function(){this.$router.push({path:"trash"})},openNote:function(){this.$router.push({path:"/"})}}},E,!1,function(t){n("nGQo")},"data-v-34119840",null).exports,L={data:function(){return{title:"便签",checkBtnTxt:"全选"}},computed:u()({},Object(h.b)(["layout","isTrashCheck"]),{checkTitle:function(){return"已选择"+this.$store.state.deleteTrashNotes.length+"项"},allChecked:function(){return this.$store.state.trashNotes.every(function(t){return t.done})}}),methods:{allTrashCheck:function(t){this.checkBtnTxt=t?"取消全选":"全选",this.$store.dispatch("allTrashCheck",t)},cancelCheck:function(){this.$store.dispatch("cancelTrashCheck")},backList:function(){this.$router.push({path:"/NoteFolder"})},changeLayout:function(){"list"==this.$store.state.layout?this.$store.state.layout="grid":this.$store.state.layout="list"}}},w={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("mu-flexbox",{staticClass:"trash-header"},[n("mu-flexbox-item",{staticClass:"flex",attrs:{order:"0"}},[t.isTrashCheck?n("mu-raised-button",{staticClass:"raised-button",attrs:{label:"取消"},on:{click:t.cancelCheck}}):n("span",[n("span",{staticClass:"back-list",on:{click:t.backList}},[n("icon",{attrs:{name:"angle-left"}})],1),t._v(" "),n("span",{domProps:{textContent:t._s(t.title)}})])],1),t._v(" "),n("mu-flexbox-item",{staticClass:"flex",staticStyle:{"text-align":"center"},attrs:{order:"1"}},[t.isTrashCheck?n("span",[t._v(t._s(t.checkTitle))]):t._e()]),t._v(" "),n("mu-flexbox-item",{staticClass:"flex",staticStyle:{"text-align":"right"},attrs:{order:"2"}},[t.isTrashCheck?n("mu-raised-button",{staticClass:"raised-button",attrs:{label:t.checkBtnTxt},on:{click:function(e){t.allTrashCheck(!t.allChecked)}}}):n("span",["grid"==t.layout?n("span",{staticClass:"icon",on:{click:t.changeLayout}},[n("icon",{attrs:{name:"list"}})],1):n("span",{staticClass:"icon",on:{click:t.changeLayout}},[n("icon",{attrs:{name:"th-large"}})],1)])],1)],1)},staticRenderFns:[]};var O=n("Z0/y")(L,w,!1,function(t){n("YBAl")},"data-v-40fd331c",null).exports,S={data:function(){return{timeOutEvent:0,Loop:null,dialog:!1,note:{}}},computed:u()({},Object(h.b)(["layout","isTrashCheck"]),{trashNotes:function(){return this.$store.state.trashNotes}}),methods:{gtouchstart:function(t){var e=this;return this.timeOutEvent=setTimeout(function(){e.longPress(t)},500),!1},gtouchend:function(t){return clearTimeout(this.timeOutEvent),0!=this.timeOutEvent&&this.checkNote(t),!1},longPress:function(t){this.timeOutEvent=0,this.$store.state.isTrashCheck=!0,this.$store.dispatch("toggleTrashNote",t)},loopstart:function(t){var e=this;clearInterval(this.Loop),this.Loop=setTimeout(function(){e.$store.state.isTrashCheck=!0,e.$store.dispatch("toggleTrashNote",t)},500)},clearLoop:function(){clearTimeout(this.Loop)},checkNote:function(t){this.$store.state.isTrashCheck?this.$store.dispatch("toggleTrashNote",t):(this.dialog=!0,this.$store.state.deleteTrashNotes.push(t))},close:function(){this.dialog=!1},ecoveryConfirm:function(){this.dialog=!1,this.$store.dispatch("recoveryNote")}}},R={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"trash-notelist"},[n("div",{staticClass:"trash-tip"},[t._v("废纸篓内的便签逾期30天后会被自动删除哦!")]),t._v(" "),n("ul",{staticClass:"noteList",class:t.layout},t._l(t.trashNotes,function(e){return n("li",{key:e.id,on:{mousedown:function(n){t.gtouchstart(e)},mouseup:function(n){t.gtouchend(e)},touchstart:function(n){t.loopstart(e)},touchend:t.clearLoop}},[n("h4",[t._v(t._s(e.date))]),t._v(" "),n("p",[t._v(t._s(e.content))]),t._v(" "),n("mu-checkbox",{directives:[{name:"show",rawName:"v-show",value:t.isTrashCheck,expression:"isTrashCheck"}],staticClass:"checkbox",attrs:{label:""},model:{value:e.done,callback:function(n){t.$set(e,"done",n)},expression:"note.done"}})],1)})),t._v(" "),n("mu-dialog",{attrs:{open:t.dialog,title:"恢复便签"},on:{close:t.close}},[t._v("\n 不能打开本便签,如需对便签进行编辑操作,请先恢复该便签\n "),n("mu-flat-button",{attrs:{slot:"actions",primary:"",label:"取消"},on:{click:t.close},slot:"actions"}),t._v(" "),n("mu-flat-button",{attrs:{slot:"actions",primary:"",label:"恢复"},on:{click:t.ecoveryConfirm},slot:"actions"})],1)],1)},staticRenderFns:[]};var H=n("Z0/y")(S,R,!1,function(t){n("Do2Q")},"data-v-792a749d",null).exports,A={data:function(){return{dialog:!1}},computed:u()({},Object(h.b)(["isTrashCheck"])),methods:{deleteNote:function(){this.dialog=!0},deleteConfirm:function(){this.dialog=!1,this.$store.dispatch("deleteTrashNote")},close:function(){this.dialog=!1},recoveryNote:function(){this.$store.dispatch("recoveryNote")}}},B={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"toolBar"},[t.isTrashCheck?n("div",{staticClass:"toolBtn"},[n("span",{staticClass:"icon",on:{click:t.recoveryNote}},[n("icon",{attrs:{name:"dolly"}})],1),t._v(" "),n("span",{staticClass:"icon",on:{click:t.deleteNote}},[n("icon",{attrs:{name:"trash-alt"}})],1)]):t._e(),t._v(" "),n("mu-dialog",{attrs:{open:t.dialog,title:"删除便签"},on:{close:t.close}},[t._v("\n 您确定删除所选便签吗?\n "),n("mu-flat-button",{attrs:{slot:"actions",primary:"",label:"取消"},on:{click:t.close},slot:"actions"}),t._v(" "),n("mu-flat-button",{attrs:{slot:"actions",primary:"",label:"确定"},on:{click:t.deleteConfirm},slot:"actions"})],1)],1)},staticRenderFns:[]};var F={data:function(){return{}},components:{TrashHeader:O,TrashNoteList:H,TrashToolBar:n("Z0/y")(A,B,!1,function(t){n("W6y1")},"data-v-56313116",null).exports}},M={render:function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"trash-notepad"},[e("TrashHeader"),this._v(" "),e("TrashNoteList"),this._v(" "),e("TrashToolBar")],1)},staticRenderFns:[]};var P=n("Z0/y")(F,M,!1,function(t){n("vnhu")},"data-v-29bd97e6",null).exports;i.default.use(r.a);var D,z=new r.a({routes:[{path:"/",name:"notepad",component:T},{path:"/editor",name:"editor",component:y},{path:"/noteFolder",name:"NoteFolder",component:$},{path:"/trash",name:"Trash",component:P}]}),V={notes:[],activeNote:{},deleteNotes:[],trashNotes:[],deleteTrashNotes:[],search:"",isCheck:!1,isTrashCheck:!1,layout:"list"},Z=n("a3Yh"),G=n.n(Z),W=(n("d9Vn"),D={},G()(D,"NEW_NOTE",function(t){var e={id:+new Date,date:(new Date).Format("yyyy-MM-dd hh:mm"),content:"",done:!1};t.activeNote=e,t.notes.push(e)}),G()(D,"EDIT_NOTE",function(t,e){t.activeNote=e}),G()(D,"TOGGLE_NOTE",function(t,e){t.notes.map(function(t,n){t.id==e.id&&(t.done=!e.done)}),e.done?t.deleteNotes.push(e):t.deleteNotes.splice(t.deleteNotes.indexOf(e),1)}),G()(D,"CANCEL_CHECK",function(t){t.notes.map(function(t,e){t.done=!1}),t.deleteNotes=[],t.isCheck=!1}),G()(D,"ALL_CHECK",function(t,e){t.deleteNotes=[],t.notes.map(function(n,s){n.done=e,e?t.deleteNotes.push(n):t.deleteNotes=[]})}),G()(D,"DELETE_NOTE",function(t){t.deleteNotes.map(function(e,n){e.done=!1,t.notes.splice(t.notes.indexOf(e),1),t.trashNotes.push(e)}),t.isCheck=!1,t.deleteNotes=[]}),G()(D,"BACK_SAVE",function(t,e){""==e.content&&t.notes.splice(t.notes.indexOf(e),1)}),G()(D,"TOGGLE_TRASHNOTE",function(t,e){t.trashNotes.map(function(t,n){t.id==e.id&&(t.done=!e.done)}),e.done?t.deleteTrashNotes.push(e):t.deleteTrashNotes.splice(t.deleteTrashNotes.indexOf(e),1)}),G()(D,"CANCEL_TRASHCHECk",function(t){t.trashNotes.map(function(t,e){t.done=!1}),t.deleteTrashNotes=[],t.isTrashCheck=!1}),G()(D,"ALL_TRASHCHECK",function(t,e){t.deleteTrashNotes=[],t.trashNotes.map(function(n,s){n.done=e,e?t.deleteTrashNotes.push(n):t.deleteTrashNotes=[]})}),G()(D,"DELETE_TRASHNOTE",function(t){t.deleteTrashNotes.map(function(e,n){t.trashNotes.splice(t.trashNotes.indexOf(e),1)}),t.deleteTrashNotes=[],t.isTrashCheck=!1}),G()(D,"RECOVERY_NOTE",function(t){t.deleteTrashNotes.map(function(e,n){e.done=!1,t.notes.unshift(e),t.trashNotes.splice(t.trashNotes.indexOf(e),1)}),t.deleteTrashNotes=[],t.isTrashCheck=!1}),D),j=function(t){return""!=t.search&&t.notes.length>0?t.notes.filter(function(e){return e.content.indexOf(t.search)>-1})||{}:t.notes||{}},K=function(t){return t.activeNote},I=function(t){return t.layout},Y=function(t){return t.isCheck},q=function(t){return t.isTrashCheck},Q=function(t){(0,t.commit)("NEW_NOTE")},J=function(t,e){(0,t.commit)("EDIT_NOTE",e)},U=function(t,e){(0,t.commit)("TOGGLE_NOTE",e)},X=function(t){(0,t.commit)("CANCEL_CHECK")},tt=function(t,e){(0,t.commit)("ALL_CHECK",e)},et=function(t){(0,t.commit)("DELETE_NOTE")},nt=function(t,e){(0,t.commit)("BACK_SAVE",e)},st=function(t,e){(0,t.commit)("TOGGLE_TRASHNOTE",e)},ot=function(t){(0,t.commit)("CANCEL_TRASHCHECk")},it=function(t,e){(0,t.commit)("ALL_TRASHCHECK",e)},at=function(t){(0,t.commit)("DELETE_TRASHNOTE")},ct=function(t){(0,t.commit)("RECOVERY_NOTE")};i.default.use(h.a);var rt=new h.a.Store({state:V,mutations:W,getters:s,actions:o}),lt=n("q2H9"),ut=n.n(lt),ht=(n("5s8g"),n("TLD1"),n("ykR9"));n("xmiu"),n("Oxrq");i.default.use(ut.a),i.default.component("icon",ht.a),i.default.config.productionTip=!1,new i.default({el:"#app",router:z,store:rt,components:{App:c},template:""})},Pv2r:function(t,e){},TLD1:function(t,e){},W6y1:function(t,e){},Wos8:function(t,e){},YBAl:function(t,e){},amrL:function(t,e){},bL7U:function(t,e){},d9Vn:function(t,e){Date.prototype.Format=function(t){var e={"M+":this.getMonth()+1,"d+":this.getDate(),"h+":this.getHours(),"m+":this.getMinutes(),"s+":this.getSeconds(),"q+":Math.floor((this.getMonth()+3)/3),S:this.getMilliseconds()};for(var n in/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(this.getFullYear()+"").substr(4-RegExp.$1.length))),e)new RegExp("("+n+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?e[n]:("00"+e[n]).substr((""+e[n]).length)));return t}},nGQo:function(t,e){},"q+mC":function(t,e){},vnhu:function(t,e){},ykR9:function(t,e,n){"use strict";var s={},o={name:"icon",props:{name:{type:String,validator:function(t){return t?t in s||(console.warn('Invalid prop: prop "name" is referring to an unregistered icon "'+t+'".\nPlease make sure you have imported this icon before using it.'),!1):(console.warn('Invalid prop: prop "name" is required.'),!1)}},scale:[Number,String],spin:Boolean,inverse:Boolean,pulse:Boolean,flip:{validator:function(t){return"horizontal"===t||"vertical"===t}},label:String},data:function(){return{x:!1,y:!1,childrenWidth:0,childrenHeight:0,outerScale:1}},computed:{normalizedScale:function(){var t=this.scale;return t=void 0===t?1:Number(t),isNaN(t)||t<=0?(console.warn('Invalid prop: prop "scale" should be a number over 0.',this),this.outerScale):t*this.outerScale},klass:function(){return{"fa-icon":!0,"fa-spin":this.spin,"fa-flip-horizontal":"horizontal"===this.flip,"fa-flip-vertical":"vertical"===this.flip,"fa-inverse":this.inverse,"fa-pulse":this.pulse}},icon:function(){return this.name?s[this.name]:null},box:function(){return this.icon?"0 0 "+this.icon.width+" "+this.icon.height:"0 0 "+this.width+" "+this.height},ratio:function(){if(!this.icon)return 1;var t=this.icon,e=t.width,n=t.height;return Math.max(e,n)/16},width:function(){return this.childrenWidth||this.icon&&this.icon.width/this.ratio*this.normalizedScale||0},height:function(){return this.childrenHeight||this.icon&&this.icon.height/this.ratio*this.normalizedScale||0},style:function(){return 1!==this.normalizedScale&&{fontSize:this.normalizedScale+"em"}},raw:function(){if(!this.icon||!this.icon.raw)return null;var t=this.icon.raw,e={};return t=t.replace(/\s(?:xml:)?id=(["']?)([^"')\s]+)\1/g,function(t,n,s){var o="fa-"+(i++).toString(16);return e[s]=o,' id="'+o+'"'}),t=t.replace(/#(?:([^'")\s]+)|xpointer\(id\((['"]?)([^')]+)\2\)\))/g,function(t,n,s,o){var i=n||o;return i&&e[i]?"#"+e[i]:t}),t}},mounted:function(){var t=this;if(!this.icon){this.$children.forEach(function(e){e.outerScale=t.normalizedScale});var e=0,n=0;this.$children.forEach(function(t){e=Math.max(e,t.width),n=Math.max(n,t.height)}),this.childrenWidth=e,this.childrenHeight=n,this.$children.forEach(function(t){t.x=(e-t.width)/2,t.y=(n-t.height)/2})}},register:function(t){for(var e in t){var n=t[e];n.paths||(n.paths=[]),n.d&&n.paths.push({d:n.d}),n.polygons||(n.polygons=[]),n.points&&n.polygons.push({points:n.points}),s[e]=n}},icons:s},i=870711;var a={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("svg",{class:t.klass,style:t.style,attrs:{version:"1.1",role:t.label?"img":"presentation","aria-label":t.label,x:t.x,y:t.y,width:t.width,height:t.height,viewBox:t.box}},[t._t("default",[t.icon&&t.icon.paths?t._l(t.icon.paths,function(e,s){return n("path",t._b({key:"path-"+s},"path",e,!1))}):t._e(),t._v(" "),t.icon&&t.icon.polygons?t._l(t.icon.polygons,function(e,s){return n("polygon",t._b({key:"polygon-"+s},"polygon",e,!1))}):t._e(),t._v(" "),t.icon&&t.icon.raw?[n("g",{domProps:{innerHTML:t._s(t.raw)}})]:t._e()])],2)},staticRenderFns:[]};var c=n("Z0/y")(o,a,!1,function(t){n("amrL")},null,null);e.a=c.exports},zxv9:function(t,e){}},["NHnr"]); 2 | //# sourceMappingURL=app.06c0c6b9f5d79fbc1631.js.map -------------------------------------------------------------------------------- /dist/static/js/manifest.3ad1d5771e9b13dbdad2.js: -------------------------------------------------------------------------------- 1 | !function(r){var n=window.webpackJsonp;window.webpackJsonp=function(e,u,c){for(var f,i,p,a=0,l=[];a 2 | 3 | 4 | 5 | 6 | 7 | notepad-xiaomi 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "notepad-xiaomi", 3 | "version": "1.0.0", 4 | "description": "xiaomi notepad", 5 | "author": "MR.L", 6 | "private": true, 7 | "scripts": { 8 | "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", 9 | "start": "npm run dev", 10 | "unit": "jest --config test/unit/jest.conf.js --coverage", 11 | "e2e": "node test/e2e/runner.js", 12 | "test": "npm run unit && npm run e2e", 13 | "build": "node build/build.js" 14 | }, 15 | "dependencies": { 16 | "muse-ui": "^2.1.0", 17 | "vue": "^2.5.2", 18 | "vue-awesome": "^3.0.0", 19 | "vue-router": "^3.0.1", 20 | "vuex": "^3.0.1" 21 | }, 22 | "devDependencies": { 23 | "autoprefixer": "^7.1.2", 24 | "babel-core": "^6.22.1", 25 | "babel-helper-vue-jsx-merge-props": "^2.0.3", 26 | "babel-jest": "^21.0.2", 27 | "babel-loader": "^7.1.1", 28 | "babel-plugin-dynamic-import-node": "^1.2.0", 29 | "babel-plugin-syntax-jsx": "^6.18.0", 30 | "babel-plugin-transform-es2015-modules-commonjs": "^6.26.0", 31 | "babel-plugin-transform-runtime": "^6.22.0", 32 | "babel-plugin-transform-vue-jsx": "^3.5.0", 33 | "babel-preset-env": "^1.3.2", 34 | "babel-preset-stage-2": "^6.22.0", 35 | "babel-register": "^6.22.0", 36 | "chalk": "^2.0.1", 37 | "chromedriver": "^2.27.2", 38 | "copy-webpack-plugin": "^4.0.1", 39 | "cross-spawn": "^5.0.1", 40 | "css-loader": "^0.28.0", 41 | "extract-text-webpack-plugin": "^3.0.0", 42 | "file-loader": "^1.1.4", 43 | "friendly-errors-webpack-plugin": "^1.6.1", 44 | "html-webpack-plugin": "^2.30.1", 45 | "jest": "^22.0.4", 46 | "jest-serializer-vue": "^0.3.0", 47 | "nightwatch": "^0.9.12", 48 | "node-notifier": "^5.1.2", 49 | "optimize-css-assets-webpack-plugin": "^3.2.0", 50 | "ora": "^1.2.0", 51 | "portfinder": "^1.0.13", 52 | "postcss-import": "^11.0.0", 53 | "postcss-loader": "^2.0.8", 54 | "postcss-url": "^7.2.1", 55 | "rimraf": "^2.6.0", 56 | "selenium-server": "^3.0.1", 57 | "semver": "^5.3.0", 58 | "shelljs": "^0.7.6", 59 | "uglifyjs-webpack-plugin": "^1.1.1", 60 | "url-loader": "^0.5.8", 61 | "vue-jest": "^1.0.2", 62 | "vue-loader": "^13.3.0", 63 | "vue-style-loader": "^3.0.1", 64 | "vue-template-compiler": "^2.5.2", 65 | "webpack": "^3.6.0", 66 | "webpack-bundle-analyzer": "^2.9.0", 67 | "webpack-dev-server": "^2.9.1", 68 | "webpack-merge": "^4.1.0" 69 | }, 70 | "engines": { 71 | "node": ">= 6.0.0", 72 | "npm": ">= 3.0.0" 73 | }, 74 | "browserslist": [ 75 | "> 1%", 76 | "last 2 versions", 77 | "not ie <= 8" 78 | ] 79 | } 80 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 12 | 13 | 33 | -------------------------------------------------------------------------------- /src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tianlang89757/vuex-notepad2/4f7784ccf1da9bb8a2a6ac1983699e4c487d92d3/src/assets/logo.png -------------------------------------------------------------------------------- /src/components/Editor.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 55 | 56 | -------------------------------------------------------------------------------- /src/components/Header.vue: -------------------------------------------------------------------------------- 1 | 26 | 27 | 91 | 92 | 147 | 148 | 149 | 150 | 151 | -------------------------------------------------------------------------------- /src/components/NoteFolder.vue: -------------------------------------------------------------------------------- 1 | 35 | 69 | 117 | 118 | -------------------------------------------------------------------------------- /src/components/NoteList.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 77 | 78 | 136 | 137 | -------------------------------------------------------------------------------- /src/components/Notepad.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 26 | 27 | 28 | 34 | -------------------------------------------------------------------------------- /src/components/ToolBar.vue: -------------------------------------------------------------------------------- 1 | 17 | 18 | 54 | 55 | 92 | 93 | -------------------------------------------------------------------------------- /src/components/Trash.vue: -------------------------------------------------------------------------------- 1 | 8 | 25 | 28 | 29 | -------------------------------------------------------------------------------- /src/components/TrashHeader.vue: -------------------------------------------------------------------------------- 1 | 22 | 68 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /src/components/TrashNoteList.vue: -------------------------------------------------------------------------------- 1 | 18 | 96 | 162 | 163 | 164 | -------------------------------------------------------------------------------- /src/components/TrashToolBar.vue: -------------------------------------------------------------------------------- 1 | 14 | 48 | -------------------------------------------------------------------------------- /src/libs/dateFormat.js: -------------------------------------------------------------------------------- 1 | // 对Date的扩展,将 Date 转化为指定格式的String 2 | // 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符, 3 | // 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) 4 | // 例子: 5 | // (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423 6 | // (new Date()).Format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18 7 | Date.prototype.Format = function(fmt) { //author: meizz 8 | var o = { 9 | "M+": this.getMonth() + 1, //月份 10 | "d+": this.getDate(), //日 11 | "h+": this.getHours(), //小时 12 | "m+": this.getMinutes(), //分 13 | "s+": this.getSeconds(), //秒 14 | "q+": Math.floor((this.getMonth() + 3) / 3), //季度 15 | "S": this.getMilliseconds() //毫秒 16 | }; 17 | if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); 18 | for (var k in o) 19 | if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); 20 | return fmt; 21 | } -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | // The Vue build version to load with the `import` command 2 | // (runtime-only or standalone) has been set in webpack.base.conf with an alias. 3 | import Vue from 'vue' 4 | import App from './App' 5 | import router from './router' 6 | import store from './store/index' 7 | 8 | /* 第三方插件 */ 9 | import MuseUI from 'muse-ui' 10 | import 'muse-ui/dist/muse-ui.css' 11 | import 'muse-ui/dist/theme-teal.css' 12 | import Icon from 'vue-awesome/components/Icon' 13 | import 'vue-awesome/icons/flag' 14 | import 'vue-awesome/icons' 15 | 16 | Vue.use(MuseUI) 17 | Vue.component('icon', Icon); 18 | Vue.config.productionTip = false 19 | 20 | /* eslint-disable no-new */ 21 | new Vue({ 22 | el: '#app', 23 | router, 24 | store, 25 | components: { App }, 26 | template: '' 27 | }) -------------------------------------------------------------------------------- /src/router/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Router from 'vue-router' 3 | import Notepad from '@/components/Notepad' 4 | import Editor from '@/components/Editor' 5 | import NoteFolder from '@/components/NoteFolder' 6 | import Trash from '@/components/Trash' 7 | 8 | Vue.use(Router) 9 | 10 | export default new Router({ 11 | routes: [{ 12 | path: '/', 13 | name: 'notepad', 14 | component: Notepad 15 | }, { 16 | path: '/editor', 17 | name: 'editor', 18 | component: Editor 19 | }, { 20 | path: '/noteFolder', 21 | name: 'NoteFolder', 22 | component: NoteFolder 23 | }, { 24 | path: '/trash', 25 | name: 'Trash', 26 | component: Trash 27 | }] 28 | }) -------------------------------------------------------------------------------- /src/store/actions.js: -------------------------------------------------------------------------------- 1 | import * as types from './mutation-types'; 2 | 3 | //创建新便签 4 | export const newNote = ({ commit }) => { 5 | commit(types.NEW_NOTE) 6 | } 7 | 8 | //编辑便签 9 | export const editNote = ({ commit }, note) => { 10 | commit(types.EDIT_NOTE, note) 11 | } 12 | 13 | //勾选便签 14 | export const toggleNote = ({ commit }, note) => { 15 | commit(types.TOGGLE_NOTE, note) 16 | } 17 | 18 | //取消勾选便签 19 | export const cancelCheck = ({ commit }) => { 20 | commit(types.CANCEL_CHECK) 21 | } 22 | 23 | //全部勾选 24 | export const allCheck = ({ commit }, done) => { 25 | commit(types.ALL_CHECK, done) 26 | } 27 | 28 | //删除便签 29 | export const deleteNote = ({ commit }) => { 30 | commit(types.DELETE_NOTE) 31 | } 32 | 33 | //返回自动保存 34 | export const backSave = ({ commit }, note) => { 35 | commit(types.BACK_SAVE, note) 36 | } 37 | 38 | //勾选废纸篓便签 39 | export const toggleTrashNote = ({ commit }, note) => { 40 | commit(types.TOGGLE_TRASHNOTE, note) 41 | } 42 | 43 | //取消勾选废纸篓便签 44 | export const cancelTrashCheck = ({ commit }) => { 45 | commit(types.CANCEL_TRASHCHECk) 46 | } 47 | 48 | //全选废纸篓便签 49 | export const allTrashCheck = ({ commit }, done) => { 50 | commit(types.ALL_TRASHCHECK, done) 51 | } 52 | 53 | //删除废纸篓便签 54 | export const deleteTrashNote = ({ commit }) => { 55 | commit(types.DELETE_TRASHNOTE) 56 | } 57 | 58 | //恢复便签 59 | export const recoveryNote = ({ commit }) => { 60 | commit(types.RECOVERY_NOTE) 61 | } -------------------------------------------------------------------------------- /src/store/getters.js: -------------------------------------------------------------------------------- 1 | export const filterNote = (state) => { 2 | if (state.search != '' && state.notes.length > 0) { 3 | return state.notes.filter(note => note.content.indexOf(state.search) > -1) || {} 4 | } else { 5 | return state.notes || {} 6 | } 7 | } 8 | 9 | export const activeNote = (state) => { 10 | return state.activeNote 11 | } 12 | 13 | export const layout = state => state.layout 14 | 15 | export const isCheck = state => state.isCheck 16 | 17 | export const isTrashCheck = state => state.isTrashCheck -------------------------------------------------------------------------------- /src/store/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Vuex from 'vuex' 3 | import state from './state' 4 | import mutations from './mutation' 5 | import * as getters from './getters' 6 | import * as actions from './actions' 7 | 8 | Vue.use(Vuex) 9 | 10 | export default new Vuex.Store({ 11 | state, 12 | mutations, 13 | getters, 14 | actions 15 | }) -------------------------------------------------------------------------------- /src/store/mutation-types.js: -------------------------------------------------------------------------------- 1 | export const NEW_NOTE = 'NEW_NOTE' 2 | export const EDIT_NOTE = 'EDIT_NOTE' 3 | export const TOGGLE_NOTE = 'TOGGLE_NOTE' 4 | export const CANCEL_CHECK = 'CANCEL_CHECK' 5 | export const ALL_CHECK = 'ALL_CHECK' 6 | export const DELETE_NOTE = 'DELETE_NOTE' 7 | export const BACK_SAVE = 'BACK_SAVE' 8 | export const TOGGLE_TRASHNOTE = 'TOGGLE_TRASHNOTE' 9 | export const CANCEL_TRASHCHECk = 'CANCEL_TRASHCHECk' 10 | export const ALL_TRASHCHECK = 'ALL_TRASHCHECK' 11 | export const DELETE_TRASHNOTE = 'DELETE_TRASHNOTE' 12 | export const RECOVERY_NOTE = 'RECOVERY_NOTE' -------------------------------------------------------------------------------- /src/store/mutation.js: -------------------------------------------------------------------------------- 1 | import Format from '../libs/dateFormat' 2 | import * as types from './mutation-types'; 3 | 4 | const mutations = { 5 | [types.NEW_NOTE](state) { 6 | let newNote = { 7 | id: +new Date(), 8 | date: new Date().Format('yyyy-MM-dd hh:mm'), 9 | content: '', 10 | done: false 11 | } 12 | state.activeNote = newNote; 13 | state.notes.push(newNote) 14 | }, 15 | [types.EDIT_NOTE](state, note) { 16 | state.activeNote = note; 17 | }, 18 | [types.TOGGLE_NOTE](state, note) { 19 | state.notes.map((item, i) => { 20 | if (item.id == note.id) { 21 | item.done = !note.done; 22 | } 23 | }) 24 | if (note.done) { 25 | state.deleteNotes.push(note); 26 | } else { 27 | state.deleteNotes.splice(state.deleteNotes.indexOf(note), 1); 28 | } 29 | }, 30 | [types.CANCEL_CHECK](state) { 31 | state.notes.map((item, i) => { 32 | item.done = false; 33 | }) 34 | state.deleteNotes = []; 35 | state.isCheck = false; 36 | }, 37 | [types.ALL_CHECK](state, done) { 38 | state.deleteNotes = []; 39 | state.notes.map((item, i) => { 40 | item.done = done; 41 | if (done) { 42 | state.deleteNotes.push(item); 43 | } else { 44 | state.deleteNotes = []; 45 | } 46 | }) 47 | }, 48 | [types.DELETE_NOTE](state) { 49 | state.deleteNotes.map((item, i) => { 50 | item.done = false; 51 | state.notes.splice(state.notes.indexOf(item), 1); 52 | state.trashNotes.push(item) 53 | }) 54 | state.isCheck = false; 55 | state.deleteNotes = []; 56 | }, 57 | [types.BACK_SAVE](state, note) { 58 | if (note.content != '') return; 59 | state.notes.splice(state.notes.indexOf(note), 1); 60 | }, 61 | [types.TOGGLE_TRASHNOTE](state, note) { 62 | state.trashNotes.map((item, i) => { 63 | if (item.id == note.id) { 64 | item.done = !note.done; 65 | } 66 | }) 67 | if (note.done) { 68 | state.deleteTrashNotes.push(note); 69 | } else { 70 | state.deleteTrashNotes.splice(state.deleteTrashNotes.indexOf(note), 1); 71 | } 72 | }, 73 | [types.CANCEL_TRASHCHECk](state) { 74 | state.trashNotes.map((item, i) => { 75 | item.done = false; 76 | }) 77 | state.deleteTrashNotes = []; 78 | state.isTrashCheck = false; 79 | }, 80 | [types.ALL_TRASHCHECK](state, done) { 81 | state.deleteTrashNotes = []; 82 | state.trashNotes.map((item, i) => { 83 | item.done = done; 84 | if (done) { 85 | state.deleteTrashNotes.push(item); 86 | } else { 87 | state.deleteTrashNotes = []; 88 | } 89 | }) 90 | }, 91 | [types.DELETE_TRASHNOTE](state) { 92 | state.deleteTrashNotes.map((item, i) => { 93 | state.trashNotes.splice(state.trashNotes.indexOf(item), 1); 94 | }) 95 | state.deleteTrashNotes = []; 96 | state.isTrashCheck = false; 97 | }, 98 | [types.RECOVERY_NOTE](state) { 99 | state.deleteTrashNotes.map((item, i) => { 100 | item.done = false; 101 | state.notes.unshift(item) 102 | state.trashNotes.splice(state.trashNotes.indexOf(item), 1); 103 | }) 104 | state.deleteTrashNotes = []; 105 | state.isTrashCheck = false; 106 | } 107 | } 108 | 109 | export default mutations; -------------------------------------------------------------------------------- /src/store/state.js: -------------------------------------------------------------------------------- 1 | const state = { 2 | notes: [], 3 | activeNote: {}, 4 | deleteNotes: [], 5 | trashNotes: [], 6 | deleteTrashNotes: [], 7 | search: '', 8 | isCheck: false, 9 | isTrashCheck: false, 10 | layout: 'list' 11 | } 12 | 13 | export default state; -------------------------------------------------------------------------------- /static/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tianlang89757/vuex-notepad2/4f7784ccf1da9bb8a2a6ac1983699e4c487d92d3/static/.gitkeep -------------------------------------------------------------------------------- /test/e2e/custom-assertions/elementCount.js: -------------------------------------------------------------------------------- 1 | // A custom Nightwatch assertion. 2 | // The assertion name is the filename. 3 | // Example usage: 4 | // 5 | // browser.assert.elementCount(selector, count) 6 | // 7 | // For more information on custom assertions see: 8 | // http://nightwatchjs.org/guide#writing-custom-assertions 9 | 10 | exports.assertion = function (selector, count) { 11 | this.message = 'Testing if element <' + selector + '> has count: ' + count 12 | this.expected = count 13 | this.pass = function (val) { 14 | return val === this.expected 15 | } 16 | this.value = function (res) { 17 | return res.value 18 | } 19 | this.command = function (cb) { 20 | var self = this 21 | return this.api.execute(function (selector) { 22 | return document.querySelectorAll(selector).length 23 | }, [selector], function (res) { 24 | cb.call(self, res) 25 | }) 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /test/e2e/nightwatch.conf.js: -------------------------------------------------------------------------------- 1 | require('babel-register') 2 | var config = require('../../config') 3 | 4 | // http://nightwatchjs.org/gettingstarted#settings-file 5 | module.exports = { 6 | src_folders: ['test/e2e/specs'], 7 | output_folder: 'test/e2e/reports', 8 | custom_assertions_path: ['test/e2e/custom-assertions'], 9 | 10 | selenium: { 11 | start_process: true, 12 | server_path: require('selenium-server').path, 13 | host: '127.0.0.1', 14 | port: 4444, 15 | cli_args: { 16 | 'webdriver.chrome.driver': require('chromedriver').path 17 | } 18 | }, 19 | 20 | test_settings: { 21 | default: { 22 | selenium_port: 4444, 23 | selenium_host: 'localhost', 24 | silent: true, 25 | globals: { 26 | devServerURL: 'http://localhost:' + (process.env.PORT || config.dev.port) 27 | } 28 | }, 29 | 30 | chrome: { 31 | desiredCapabilities: { 32 | browserName: 'chrome', 33 | javascriptEnabled: true, 34 | acceptSslCerts: true 35 | } 36 | }, 37 | 38 | firefox: { 39 | desiredCapabilities: { 40 | browserName: 'firefox', 41 | javascriptEnabled: true, 42 | acceptSslCerts: true 43 | } 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /test/e2e/runner.js: -------------------------------------------------------------------------------- 1 | // 1. start the dev server using production config 2 | process.env.NODE_ENV = 'testing' 3 | 4 | const webpack = require('webpack') 5 | const DevServer = require('webpack-dev-server') 6 | 7 | const webpackConfig = require('../../build/webpack.prod.conf') 8 | const devConfigPromise = require('../../build/webpack.dev.conf') 9 | 10 | let server 11 | 12 | devConfigPromise.then(devConfig => { 13 | const devServerOptions = devConfig.devServer 14 | const compiler = webpack(webpackConfig) 15 | server = new DevServer(compiler, devServerOptions) 16 | const port = devServerOptions.port 17 | const host = devServerOptions.host 18 | return server.listen(port, host) 19 | }) 20 | .then(() => { 21 | // 2. run the nightwatch test suite against it 22 | // to run in additional browsers: 23 | // 1. add an entry in test/e2e/nightwatch.conf.js under "test_settings" 24 | // 2. add it to the --env flag below 25 | // or override the environment flag, for example: `npm run e2e -- --env chrome,firefox` 26 | // For more information on Nightwatch's config file, see 27 | // http://nightwatchjs.org/guide#settings-file 28 | let opts = process.argv.slice(2) 29 | if (opts.indexOf('--config') === -1) { 30 | opts = opts.concat(['--config', 'test/e2e/nightwatch.conf.js']) 31 | } 32 | if (opts.indexOf('--env') === -1) { 33 | opts = opts.concat(['--env', 'chrome']) 34 | } 35 | 36 | const spawn = require('cross-spawn') 37 | const runner = spawn('./node_modules/.bin/nightwatch', opts, { stdio: 'inherit' }) 38 | 39 | runner.on('exit', function (code) { 40 | server.close() 41 | process.exit(code) 42 | }) 43 | 44 | runner.on('error', function (err) { 45 | server.close() 46 | throw err 47 | }) 48 | }) 49 | -------------------------------------------------------------------------------- /test/e2e/specs/test.js: -------------------------------------------------------------------------------- 1 | // For authoring Nightwatch tests, see 2 | // http://nightwatchjs.org/guide#usage 3 | 4 | module.exports = { 5 | 'default e2e tests': function (browser) { 6 | // automatically uses dev Server port from /config.index.js 7 | // default: http://localhost:8080 8 | // see nightwatch.conf.js 9 | const devServer = browser.globals.devServerURL 10 | 11 | browser 12 | .url(devServer) 13 | .waitForElementVisible('#app', 5000) 14 | .assert.elementPresent('.hello') 15 | .assert.containsText('h1', 'Welcome to Your Vue.js App') 16 | .assert.elementCount('img', 1) 17 | .end() 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /test/unit/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "jest": true 4 | }, 5 | "globals": { 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /test/unit/jest.conf.js: -------------------------------------------------------------------------------- 1 | const path = require('path') 2 | 3 | module.exports = { 4 | rootDir: path.resolve(__dirname, '../../'), 5 | moduleFileExtensions: [ 6 | 'js', 7 | 'json', 8 | 'vue' 9 | ], 10 | moduleNameMapper: { 11 | '^@/(.*)$': '/src/$1' 12 | }, 13 | transform: { 14 | '^.+\\.js$': '/node_modules/babel-jest', 15 | '.*\\.(vue)$': '/node_modules/vue-jest' 16 | }, 17 | testPathIgnorePatterns: [ 18 | '/test/e2e' 19 | ], 20 | snapshotSerializers: ['/node_modules/jest-serializer-vue'], 21 | setupFiles: ['/test/unit/setup'], 22 | mapCoverage: true, 23 | coverageDirectory: '/test/unit/coverage', 24 | collectCoverageFrom: [ 25 | 'src/**/*.{js,vue}', 26 | '!src/main.js', 27 | '!src/router/index.js', 28 | '!**/node_modules/**' 29 | ] 30 | } 31 | -------------------------------------------------------------------------------- /test/unit/setup.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | 3 | Vue.config.productionTip = false 4 | -------------------------------------------------------------------------------- /test/unit/specs/HelloWorld.spec.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import HelloWorld from '@/components/HelloWorld' 3 | 4 | describe('HelloWorld.vue', () => { 5 | it('should render correct contents', () => { 6 | const Constructor = Vue.extend(HelloWorld) 7 | const vm = new Constructor().$mount() 8 | expect(vm.$el.querySelector('.hello h1').textContent) 9 | .toEqual('Welcome to Your Vue.js App') 10 | }) 11 | }) 12 | --------------------------------------------------------------------------------