├── .gitignore ├── 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 ├── 1514291260.png ├── index.html └── static │ ├── css │ ├── app.2b34fa42df20fa1925e0e38fb6bbe888.css │ └── app.2b34fa42df20fa1925e0e38fb6bbe888.css.map │ └── js │ ├── app.908c2c0b4b67b5b368a1.js │ ├── app.908c2c0b4b67b5b368a1.js.map │ ├── manifest.28a80a11d690e9196934.js │ ├── manifest.28a80a11d690e9196934.js.map │ ├── vendor.144ea6915f152b6127b0.js │ └── vendor.144ea6915f152b6127b0.js.map ├── index.html ├── package-lock.json ├── package.json ├── src ├── App.vue ├── assets │ └── logo.png ├── components │ ├── HelloWorld.vue │ ├── index.js │ ├── slide.vue │ └── swiper.vue ├── main.js └── router │ └── index.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 /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules/ -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## vue-swiper 2 | 3 | * 基于 Vue2.0 开发,基本满足大部分功能。 4 | * 轻量、高性能轮播插件。目前支持 无缝衔接自动轮播、无限轮播、手势轮播。 5 | * 没有引入第三方库,原生 js 封装,打包之后只有 8.2KB 大小 性能还是杠杠滴。 6 | 7 | ## [github地址](https://github.com/zwhGithub/vue-swiper/) 8 | 9 | ## demo 10 | 11 | ![效果](http://zwhgithub.github.io/vue-swiper/dist/1514291260.png) 12 | 13 | 🎉 觉得好用给一个 star 哦~ 🎉 14 | 15 | ## Install 16 | 17 | ```javascript 18 | npm i vue-swiper-component --save 19 | cnpm i vue-swiper-component --save //国内镜像 20 | ``` 21 | 22 | ## Usage 23 | 24 | ```javascript 25 | import { Swiper, Slide } from 'vue-swiper-component'; 26 | 27 | components: { 28 | Swiper, 29 | Slide 30 | } 31 | 32 | //异步加载轮播图的情况; 33 | 34 | 35 | 36 | 37 | 38 | 39 | //同步加载轮播图情况 40 | 41 | 42 | 1 43 | 44 | 45 | 2 46 | 47 | 48 | 3 49 | 50 | 51 | 52 | //加一些参数配置情况 53 | 54 | 55 | //添加click事件 56 | 57 | 58 | ``` 59 | 60 | ## API 61 | 62 | | 属性 | 说明 | 默认 | 63 | | ------------- | ------------------------ | ---- | 64 | | autoPlay | 是否自动轮播 | true | 65 | | showIndicator | 是否显示轮播的那个点 | true | 66 | | interval | 每两次隔多久滚动一次 | 2500 | 67 | | duration | 每次滚动一页需要多久时间 | 500 | 68 | 69 | ```javascript 70 | ✅ Swiper 上面还暴露了其他方法,在 Swiper 标签上添加 ref 属性, 例如: 71 | 72 | ✅ this.$refs.swiper.prevSlide(); // 上一张图 73 |    ✅ this.$refs.swiper.nextSlide(); // 下一张图 74 | ✅ this.$refs.swiper.slideTo(2); //某一张图 75 | ``` 76 | 77 | ## 事件 78 | 79 | ``` 80 | transtionend 事件 每次轮播出发 参数表示轮播到第几个图片 在Swiper上添加 81 | // @transtionend="getNum"   getNum(data) {console.log(data);} 82 | click 事件 每个轮播图上的事件 83 | ``` 84 | 85 | ## Other 86 | 87 | * 可以通过覆盖我的样式进行自定义样式,Slide 标签里面可以写 div 或者其他的东西 88 | * 一些参数配置可以参考上面 Usage 第三个示例,异步渲染要加 v-if 保证渲染成功 参考第一个示例 89 | * 如果其他问题可以邮箱沟通,zwhcoder@gmail.com; 90 | * 暂时对 PC 支持不是很友好,等以后有时间了可以加上; 91 | -------------------------------------------------------------------------------- /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 tyescript 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/zwhGithub/vue-swiper/2da7306b0b0a3680689ea4e48df6aff50ee11167/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')] 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 baseWebpackConfig = require('./webpack.base.conf') 7 | const HtmlWebpackPlugin = require('html-webpack-plugin') 8 | const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin') 9 | const portfinder = require('portfinder') 10 | 11 | const HOST = process.env.HOST 12 | const PORT = process.env.PORT && Number(process.env.PORT) 13 | 14 | const devWebpackConfig = merge(baseWebpackConfig, { 15 | module: { 16 | rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap, usePostCSS: true }) 17 | }, 18 | // cheap-module-eval-source-map is faster for development 19 | devtool: config.dev.devtool, 20 | 21 | // these devServer options should be customized in /config/index.js 22 | devServer: { 23 | clientLogLevel: 'warning', 24 | historyApiFallback: true, 25 | hot: true, 26 | compress: true, 27 | host: HOST || config.dev.host, 28 | port: PORT || config.dev.port, 29 | open: config.dev.autoOpenBrowser, 30 | overlay: config.dev.errorOverlay 31 | ? { warnings: false, errors: true } 32 | : false, 33 | publicPath: config.dev.assetsPublicPath, 34 | proxy: config.dev.proxyTable, 35 | quiet: true, // necessary for FriendlyErrorsPlugin 36 | watchOptions: { 37 | poll: config.dev.poll, 38 | } 39 | }, 40 | plugins: [ 41 | new webpack.DefinePlugin({ 42 | 'process.env': require('../config/dev.env') 43 | }), 44 | new webpack.HotModuleReplacementPlugin(), 45 | new webpack.NamedModulesPlugin(), // HMR shows correct file names in console on update. 46 | new webpack.NoEmitOnErrorsPlugin(), 47 | // https://github.com/ampedandwired/html-webpack-plugin 48 | new HtmlWebpackPlugin({ 49 | filename: 'index.html', 50 | template: 'index.html', 51 | inject: true 52 | }), 53 | ] 54 | }) 55 | 56 | module.exports = new Promise((resolve, reject) => { 57 | portfinder.basePort = process.env.PORT || config.dev.port 58 | portfinder.getPort((err, port) => { 59 | if (err) { 60 | reject(err) 61 | } else { 62 | // publish the new Port, necessary for e2e tests 63 | process.env.PORT = port 64 | // add port to devServer config 65 | devWebpackConfig.devServer.port = port 66 | 67 | // Add FriendlyErrorsPlugin 68 | devWebpackConfig.plugins.push(new FriendlyErrorsPlugin({ 69 | compilationSuccessInfo: { 70 | messages: [`Your application is running here: http://${devWebpackConfig.devServer.host}:${port}`], 71 | }, 72 | onErrors: config.dev.notifyOnErrors 73 | ? utils.createNotifierCallback() 74 | : undefined 75 | })) 76 | 77 | resolve(devWebpackConfig) 78 | } 79 | }) 80 | }) 81 | -------------------------------------------------------------------------------- /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 vender 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.2.7 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: '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 | // CSS Sourcemaps off by default because relative paths are "buggy" 37 | // with this option, according to the CSS-Loader README 38 | // (https://github.com/webpack/css-loader#sourcemaps) 39 | // In our experience, they generally work as expected, 40 | // just be aware of this issue when enabling this option. 41 | cssSourceMap: false, 42 | }, 43 | 44 | build: { 45 | // Template for index.html 46 | index: path.resolve(__dirname, '../dist/index.html'), 47 | 48 | // Paths 49 | assetsRoot: path.resolve(__dirname, '../dist'), 50 | assetsSubDirectory: 'static', 51 | assetsPublicPath: '', 52 | 53 | /** 54 | * Source Maps 55 | */ 56 | 57 | productionSourceMap: true, 58 | // https://webpack.js.org/configuration/devtool/#production 59 | devtool: '#source-map', 60 | 61 | // Gzip off by default as many popular static hosts such as 62 | // Surge or Netlify already gzip all static assets for you. 63 | // Before setting to `true`, make sure to: 64 | // npm install --save-dev compression-webpack-plugin 65 | productionGzip: false, 66 | productionGzipExtensions: ['js', 'css'], 67 | 68 | // Run the build command with an extra argument to 69 | // View the bundle analyzer report after build finishes: 70 | // `npm run build --report` 71 | // Set to `true` or `false` to always turn it on or off 72 | bundleAnalyzerReport: process.env.npm_config_report 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /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/1514291260.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zwhGithub/vue-swiper/2da7306b0b0a3680689ea4e48df6aff50ee11167/dist/1514291260.png -------------------------------------------------------------------------------- /dist/index.html: -------------------------------------------------------------------------------- 1 | demo
-------------------------------------------------------------------------------- /dist/static/css/app.2b34fa42df20fa1925e0e38fb6bbe888.css: -------------------------------------------------------------------------------- 1 | *{padding:0;margin:0}img[data-v-66dda140]{width:100%}.button[data-v-66dda140]{margin-top:30px;position:relative;display:block;margin-left:auto;margin-right:auto;padding-left:14px;padding-right:14px;box-sizing:border-box;font-size:18px;text-align:center;text-decoration:none;color:#fff;line-height:2.33333333;border-radius:5px;-webkit-tap-highlight-color:rgba(0,0,0,0);overflow:hidden;border-width:0;width:50%;padding:0 30px;outline:0;-webkit-appearance:none;background-color:#26a2ff}.button[data-v-66dda140]:active{opacity:.5;color:#333}.button2[data-v-66dda140]{margin-top:100px}.wh_content{position:relative;z-index:1;overflow:hidden;width:100%}.wh_swiper{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;transition-duration:0s linear}.wh_indicator{position:absolute;bottom:8px;width:100%;text-align:center;background:0 0}.wh_indicator_item{display:inline-block;width:8px;height:8px;margin:1px 7px;cursor:pointer;border-radius:100%;background:#aaa}.wh_show_bgcolor{background:#0fc37c}.wh_slide{width:100%;-ms-flex-negative:0;flex-shrink:0;z-index:10;min-height:100px}.wh_slide img{display:block} 2 | /*# sourceMappingURL=app.2b34fa42df20fa1925e0e38fb6bbe888.css.map */ -------------------------------------------------------------------------------- /dist/static/css/app.2b34fa42df20fa1925e0e38fb6bbe888.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["app.2b34fa42df20fa1925e0e38fb6bbe888.css"],"names":[],"mappings":"AACA,EACI,UAAW,AACX,QAAU,CACb,AAED,qBACI,UAAY,CACf,AACD,yBACI,gBAAiB,AACjB,kBAAmB,AACnB,cAAe,AACf,iBAAkB,AAClB,kBAAmB,AACnB,kBAAmB,AACnB,mBAAoB,AACpB,sBAAuB,AACvB,eAAgB,AAChB,kBAAmB,AACnB,qBAAsB,AACtB,WAAe,AACf,uBAAwB,AACxB,kBAAmB,AACnB,0CAA8C,AAC9C,gBAAiB,AACjB,eAAgB,AAChB,UAAW,AACX,eAAuB,AACvB,UAAW,AACX,wBAAyB,AACzB,wBAA0B,CAC7B,AACD,gCACI,WAAa,AACb,UAAY,CACf,AACD,0BACI,gBAAkB,CACrB,AAED,YACI,kBAAmB,AACnB,UAAW,AACX,gBAAiB,AACjB,UAAY,CACf,AACD,WACI,WAAY,AACZ,oBAAqB,AAGrB,oBAAqB,AACrB,aAAc,AAId,6BAA+B,CAClC,AACD,cACI,kBAAmB,AACnB,WAAY,AACZ,WAAY,AACZ,kBAAmB,AACnB,cAAgB,CACnB,AACD,mBACI,qBAAsB,AACtB,UAAW,AACX,WAAY,AACZ,eAAgB,AAChB,eAAgB,AAChB,mBAAoB,AACpB,eAAiB,CACpB,AACD,iBACI,kBAAoB,CACvB,AAED,UACI,WAAY,AACZ,oBAAqB,AACrB,cAAe,AACf,WAAY,AACZ,gBAAkB,CACrB,AACD,cACI,aAAe,CAClB","file":"app.2b34fa42df20fa1925e0e38fb6bbe888.css","sourcesContent":["\n* {\n padding: 0;\n margin: 0;\n}\n\nimg[data-v-66dda140] {\n width: 100%;\n}\n.button[data-v-66dda140] {\n margin-top: 30px;\n position: relative;\n display: block;\n margin-left: auto;\n margin-right: auto;\n padding-left: 14px;\n padding-right: 14px;\n box-sizing: border-box;\n font-size: 18px;\n text-align: center;\n text-decoration: none;\n color: #ffffff;\n line-height: 2.33333333;\n border-radius: 5px;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n overflow: hidden;\n border-width: 0;\n width: 50%;\n padding: 0 30px 0 30px;\n outline: 0;\n -webkit-appearance: none;\n background-color: #26a2ff;\n}\n.button[data-v-66dda140]:active {\n opacity: 0.5;\n color: #333;\n}\n.button2[data-v-66dda140] {\n margin-top: 100px;\n}\n\n.wh_content {\n position: relative;\n z-index: 1;\n overflow: hidden;\n width: 100%;\n}\n.wh_swiper {\n width: 100%;\n display: -webkit-box;\n display: -moz-box;\n display: -webkit-flex;\n display: -ms-flexbox;\n display: flex;\n -moz-transition-duration: 0s linear;\n -webkit-transition-duration: 0s linear;\n -o-transition-duration: 0s linear;\n transition-duration: 0s linear;\n}\n.wh_indicator {\n position: absolute;\n bottom: 8px;\n width: 100%;\n text-align: center;\n background: 0 0;\n}\n.wh_indicator_item {\n display: inline-block;\n width: 8px;\n height: 8px;\n margin: 1px 7px;\n cursor: pointer;\n border-radius: 100%;\n background: #aaa;\n}\n.wh_show_bgcolor {\n background: #0fc37c;\n}\n\n.wh_slide {\n width: 100%;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n z-index: 10;\n min-height: 100px;\n}\n.wh_slide img {\n display: block;\n}\n"]} -------------------------------------------------------------------------------- /dist/static/js/app.908c2c0b4b67b5b368a1.js: -------------------------------------------------------------------------------- 1 | webpackJsonp([1],{"+A7y":function(t,i){},NHnr:function(t,i,s){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var e=s("VCXJ"),n={render:function(){var t=this.$createElement,i=this._self._c||t;return i("div",{attrs:{id:"app"}},[i("router-view")],1)},staticRenderFns:[]};var h=s("X4nt")({name:"app"},n,!1,function(t){s("Sxou")},null,null).exports,r=s("zO6J"),a={data:()=>({slidesLength:1,_width:0,auto:!0,slideing:!0,timer1:"",className:"",dom:{},t:{sx:0,s:0,m:0,e:0},index:1}),props:{autoPlay:{default:!0},duration:{default:500},interval:{default:2500},showIndicator:{default:!0}},mounted(){this.className=`wh_swiper_${1e3*Math.random().toFixed(3)}`,setTimeout(()=>{this.starDom(),this.dom.transform=`translate3d(${-1*this._width}px, 0px, 0px)`,this.dom["-webkit-transform"]=`translate3d(${-1*this._width}px, 0px, 0px)`,this.dom["-ms-transform"]=`translate3d(${-1*this._width}px, 0px, 0px)`,this.autoPlay&&this.setTime()},50)},methods:{s(t){this.slideing&&(this.clearTimeOut(),this.t.sx=this.getTransform(),this.t.s=t.touches[t.touches.length-1].clientX)},m(t){this.slideing&&-1!=this.t.s&&(this.clearTimeOut(),this.t.m=t.touches[t.touches.length-1].clientX-this.t.s,this.setTransform(this.t.m+this.t.sx))},e(t){if(this.slideing&&-1!=this.t.s){this.clearTimeOut(),this.setTransform(this.t.m+this.t.sx);t=this.getTransform();t+=this.t.m>0?.3*this._width:-.3*this._width,this.index=-1*Math.round(t/this._width),this.wh("touch")}},setTransform(t){this.dom.transform=`translate3d(${t}px, 0px, 0px)`,this.dom["-webkit-transform"]=`translate3d(${t}px, 0px, 0px)`,this.dom["-ms-transform"]=`translate3d(${t}px, 0px, 0px)`},getTransform(){var t=this.dom.transform||this.dom["-webkit-transform"]||this.dom["-ms-transform"];return t=(t=t.substring(12)).match(/(\S*)px/)[1],Number(t)},fn(t){t.preventDefault()},prevSlide(){this.clearTimeOut(),this.index--,this.wh()},nextSlide(){this.clearTimeOut(),this.index++,this.wh()},slideTo(t){this.clearTimeOut(),this.index=t+1,this.wh()},wh(t){this.slideing=!1,this.dom.transition="touch"==t?"250ms":this.duration+"ms",this.setTransform(-1*this.index*this._width),this.t.m=0,this.t.s=-1,this.autoPlay&&this.setTime();var i="touch"==t?"250":this.duration;setTimeout(()=>{this.dom.transition="0s",this.index>=this.slidesLength+1&&(this.index=1,this.setTransform(-1*this.index*this._width)),this.index<=0&&(this.index=this.slidesLength,this.setTransform(-1*this.index*this._width)),this.$emit("transtionend",this.index-1),this.auto=!0,this.slideing=!0},i)},setTime(){this.timer1=window.setTimeout(()=>{this.auto?(this.index++,this.wh()):window.clearTimeout(this.timer1)},this.interval)},starDom(){var t=document.querySelector("."+this.className).getElementsByClassName("wh_slide");if(this.slidesLength=t.length,this.slidesLength>1){var i=t[0].cloneNode(!0),s=t[this.slidesLength-1].cloneNode(!0);document.querySelector("."+this.className).insertBefore(s,t[0]),document.querySelector("."+this.className).appendChild(i),this._width=document.querySelector("."+this.className).offsetWidth,this.dom=document.querySelector("."+this.className).style}},clearTimeOut(){this.auto=!1,window.clearTimeout(this.timer1)}}},o={render:function(){var t=this,i=t.$createElement,s=t._self._c||i;return s("section",{staticClass:"wh_content",on:{touchmove:t.fn}},[s("div",{staticClass:"wh_swiper",class:t.className,on:{touchstart:t.s,touchmove:t.m,touchend:t.e}},[t._t("default")],2),t._v(" "),t.showIndicator?s("div",{staticClass:"wh_indicator"},t._l(t.slidesLength,function(i,e){return s("div",{staticClass:"wh_indicator_item",class:{wh_show_bgcolor:t.index-1==e}})})):t._e()])},staticRenderFns:[]};var d=s("X4nt")(a,o,!1,function(t){s("Ocjr")},null,null).exports,l={methods:{clickSlide(){this.$emit("click")}}},m={render:function(){var t=this.$createElement;return(this._self._c||t)("div",{staticClass:"wh_slide",on:{click:this.clickSlide}},[this._t("default")],2)},staticRenderFns:[]};var c={data:()=>({list:[{img:"https://qiniu.epipe.cn/5456575529551388672?imageslim&imageView2/1/w/750/h/360"},{img:"https://qiniu.epipe.cn/5430983074181545984?imageslim&imageView2/1/w/750/h/360"},{img:"https://qiniu.epipe.cn/5464226412548325376?imageslim&imageView2/1/w/750/h/360"}]}),components:{Swiper:d,Slide:s("X4nt")(l,m,!1,function(t){s("+A7y")},null,null).exports},methods:{getNum(t){this.$toast(`==当前滑到了第${t}个`,400)},prevSlideClick(){this.$refs.swiper.prevSlide()},nextSlideClick(){this.$refs.swiper.nextSlide()},slideToClick(){this.$refs.swiper.slideTo(2)}}},u={render:function(){var t=this.$createElement,i=this._self._c||t;return i("div",{staticClass:"hello"},[this.list.length>0?i("Swiper",{ref:"swiper",on:{transtionend:this.getNum}},this._l(this.list,function(t,s){return i("Slide",{key:s},[i("img",{attrs:{src:t.img}})])})):this._e(),this._v(" "),i("div",{staticStyle:{width:"100%",height:"100px",background:"red"}})],1)},staticRenderFns:[]};var p=s("X4nt")(c,u,!1,function(t){s("V4MN")},"data-v-66dda140",null).exports;e.default.use(r.a);var f=new r.a({routes:[{path:"/",name:"HelloWorld",component:p}]}),w=s("kqZI"),x=s.n(w);e.default.config.productionTip=!1,e.default.use(x.a),new e.default({el:"#app",router:f,template:"",components:{App:h}})},Ocjr:function(t,i){},Sxou:function(t,i){},V4MN:function(t,i){}},["NHnr"]); 2 | //# sourceMappingURL=app.908c2c0b4b67b5b368a1.js.map -------------------------------------------------------------------------------- /dist/static/js/app.908c2c0b4b67b5b368a1.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["webpack:///./src/App.vue?b06a","webpack:///./src/App.vue","webpack:///src/App.vue","webpack:///src/components/swiper.vue","webpack:///./src/components/swiper.vue?84db","webpack:///./src/components/swiper.vue","webpack:///src/components/slide.vue","webpack:///./src/components/slide.vue?b546","webpack:///./src/components/slide.vue","webpack:///src/components/HelloWorld.vue","webpack:///./src/components/HelloWorld.vue?d240","webpack:///./src/components/HelloWorld.vue","webpack:///./src/router/index.js","webpack:///./src/main.js"],"names":["selectortype_template_index_0_src_App","render","_h","this","$createElement","_c","_self","attrs","id","staticRenderFns","src_App","__webpack_require__","normalizeComponent","ssrContext","swiper","starDom","setTime","clearTimeOut","getTransform","clientX","s","sx","x","preventDefault","index","wh","_width","duration","slidesLength","timeDuration","timer1","interval","length","cloneDom1","offsetWidth","style","components_swiper","_vm","staticClass","on","touchmove","fn","class","className","touchstart","m","touchend","e","_t","_v","_l","tag","$index","wh_show_bgcolor","_e","src_components_swiper","swiper_normalizeComponent","slide","components_slide","click","clickSlide","HelloWorld","img","Swiper","Slide","slide_normalizeComponent","prevSlide","nextSlide","components_HelloWorld","list","ref","transtionend","getNum","item","key","src","staticStyle","width","height","background","src_components_HelloWorld","HelloWorld_normalizeComponent","vue_esm","use","vue_router_esm","router","routes","path","name","component","config","productionTip","_vue_toast_component_2_0_0_vue_toast_component_default","a","el","template","components","App"],"mappings":"4IAGAA,GADiBC,OAFjB,WAA0B,IAAaC,EAAbC,KAAaC,eAA0BC,EAAvCF,KAAuCG,MAAAD,IAAAH,EAAwB,OAAAG,EAAA,OAAiBE,OAAOC,GAAA,SAAYH,EAAA,oBAE5GI,oBCCjB,IAuBAC,EAvBAC,EAAA,OAcAC,OCTA,ODWAZ,GATA,EAVA,SAAAa,GACAF,EAAA,SAaA,KAEA,MAUA,oBEdAG,2BAIA,SACA,QACA,YACA,SACA,aACA,gBAGA,IACA,IACA,IAEA,SAEA,8BAMA,qBAIA,uBAIA,8BAIA,8FAKAC,gPAKAC,WAGA,wCAKAC,8BACAC,sDACAC,kDAKAF,qEACAG,oCACAC,0CAIA,MACAJ,iDACAI,WACAH,6CACA,2BACA,oCACA,wRASA,yCACA,sBACA,UACAI,YAGAC,mCAGAN,oBACAO,aACAC,uBAGAR,oBACAO,aACAC,sBAGAR,4BACA,OACAQ,2BAGA,uDACA,0CACAC,iBACA,kCAGAV,sCAEAW,6CAEA,kDAEA,uCACAD,yCAGAE,kDACAF,8CAEA,cACA,iBACA,GACAG,iEAKAL,aACAC,+BAEAK,cAEAC,6FAGA,mCACAC,2BACA,6HAGA,2DACAC,0DACAC,gEACAC,kCAIA,2BACAL,WCnKAM,GADiBnC,OAFjB,WAA0B,IAAAoC,EAAAlC,KAAaD,EAAAmC,EAAAjC,eAA0BC,EAAAgC,EAAA/B,MAAAD,IAAAH,EAAwB,OAAAG,EAAA,WAAqBiC,YAAA,aAAAC,IAA6BC,UAAAH,EAAAI,MAAoBpC,EAAA,OAAYiC,YAAA,YAAAI,MAAAL,EAAAM,UAAAJ,IAAgDK,WAAAP,EAAAjB,EAAAoB,UAAAH,EAAAQ,EAAAC,SAAAT,EAAAU,KAAuDV,EAAAW,GAAA,eAAAX,EAAAY,GAAA,KAAAZ,EAAA,cAAAhC,EAAA,OAAkEiC,YAAA,gBAA2BD,EAAAa,GAAAb,EAAA,sBAAAc,EAAAC,GAAgD,OAAA/C,EAAA,OAAiBiC,YAAA,oBAAAI,OAAuCW,gBAAAhB,EAAAb,MAAA,GAAA4B,QAA0Cf,EAAAiB,QAEhf7C,oBCCjB,IAuBA8C,EAvBA5C,EAAA,OAcA6C,CACA1C,EACAsB,GATA,EAVA,SAAAvB,GACAF,EAAA,SAaA,KAEA,MAUA,QCRA8C,oCAIA,YCnBAC,GADiBzD,OAFjB,WAA0B,IAAaC,EAAbC,KAAaC,eAAkD,OAA/DD,KAAuCG,MAAAD,IAAAH,GAAwB,OAAiBoC,YAAA,WAAAC,IAA2BoB,MAA3GxD,KAA2GyD,cAA3GzD,KAAmI6C,GAAA,gBAE5IvC,oBCCjB,ICeAoD,qBAIAC,IACA,kFAAAA,IACA,kFAAAA,IAGA,gGAGAC,OAAAR,EAEAS,MD7BArD,EAAA,OAcAsD,CACAR,EACAC,GATA,EAVA,SAAA7C,GACAF,EAAA,SAaA,KAEA,MAUA,wDCSA,yCAGAuD,gDAGAC,sDAGA,MCzCAC,GADiBnE,OAFjB,WAA0B,IAAaC,EAAbC,KAAaC,eAA0BC,EAAvCF,KAAuCG,MAAAD,IAAAH,EAAwB,OAAAG,EAAA,OAAiBiC,YAAA,UAAhFnC,KAAoGkE,KAAArC,OAAA,EAAA3B,EAAA,UAAmCiE,IAAA,SAAA/B,IAAiBgC,aAAxJpE,KAAwJqE,SAAxJrE,KAAmL+C,GAAnL/C,KAAmL,cAAAsE,EAAAjD,GAAwC,OAAAnB,EAAA,SAAmBqE,IAAAlD,IAAUnB,EAAA,OAAYE,OAAOoE,IAAAF,EAAAX,YAA3Q3D,KAA+RmD,KAA/RnD,KAA+R8C,GAAA,KAAA5C,EAAA,OAAkCuE,aAAaC,MAAA,OAAAC,OAAA,QAAAC,WAAA,UAAoD,IAE3YtE,oBCCjB,IAuBAuE,EAvBArE,EAAA,OAcAsE,CACApB,EACAO,GATA,EAVA,SAAAvD,GACAF,EAAA,SAaA,kBAEA,MAUA,QCtBAuE,EAAA,QAAIC,IAAIC,EAAA,GAER,IAAAC,EAAA,IAAmBD,EAAA,GACjBE,SAEIC,KAAM,IACNC,KAAM,aACNC,UAAWT,2BCLjBE,EAAA,QAAIQ,OAAOC,eAAgB,EAI3BT,EAAA,QAAIC,IAAIS,EAAAC,GAGR,IAAIX,EAAA,SACFY,GAAI,OACJT,SACAU,SAAU,SACVC,YAAcC,IAAAvF","file":"static/js/app.908c2c0b4b67b5b368a1.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('router-view')],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.0@vue-loader/lib/template-compiler?{\"id\":\"data-v-0a657676\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.0@vue-loader/lib/selector.js?type=template&index=0!./src/App.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../node_modules/_vue-loader@13.7.0@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-0a657676\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../node_modules/_vue-loader@13.7.0@vue-loader/lib/selector?type=styles&index=0!./App.vue\")\n}\nvar normalizeComponent = require(\"!../node_modules/_vue-loader@13.7.0@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../node_modules/_vue-loader@13.7.0@vue-loader/lib/selector?type=script&index=0!./App.vue\"\nimport __vue_script__ from \"!!babel-loader!../node_modules/_vue-loader@13.7.0@vue-loader/lib/selector?type=script&index=0!./App.vue\"\n/* template */\nimport __vue_template__ from \"!!../node_modules/_vue-loader@13.7.0@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-0a657676\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../node_modules/_vue-loader@13.7.0@vue-loader/lib/selector?type=template&index=0!./App.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/App.vue\n// module id = null\n// module chunks = ","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/App.vue","\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/swiper.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"wh_content\",on:{\"touchmove\":_vm.fn}},[_c('div',{staticClass:\"wh_swiper\",class:_vm.className,on:{\"touchstart\":_vm.s,\"touchmove\":_vm.m,\"touchend\":_vm.e}},[_vm._t(\"default\")],2),_vm._v(\" \"),(_vm.showIndicator)?_c('div',{staticClass:\"wh_indicator\"},_vm._l((_vm.slidesLength),function(tag,$index){return _c('div',{staticClass:\"wh_indicator_item\",class:{ wh_show_bgcolor: _vm.index-1==$index }})})):_vm._e()])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.0@vue-loader/lib/template-compiler?{\"id\":\"data-v-2d1953c2\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.0@vue-loader/lib/selector.js?type=template&index=0!./src/components/swiper.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/_vue-loader@13.7.0@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-2d1953c2\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../node_modules/_vue-loader@13.7.0@vue-loader/lib/selector?type=styles&index=0!./swiper.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/_vue-loader@13.7.0@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/_vue-loader@13.7.0@vue-loader/lib/selector?type=script&index=0!./swiper.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/_vue-loader@13.7.0@vue-loader/lib/selector?type=script&index=0!./swiper.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/_vue-loader@13.7.0@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-2d1953c2\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/_vue-loader@13.7.0@vue-loader/lib/selector?type=template&index=0!./swiper.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/swiper.vue\n// module id = null\n// module chunks = ","\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/slide.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"wh_slide\",on:{\"click\":_vm.clickSlide}},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.0@vue-loader/lib/template-compiler?{\"id\":\"data-v-1736b36a\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.0@vue-loader/lib/selector.js?type=template&index=0!./src/components/slide.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/_vue-loader@13.7.0@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-1736b36a\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../node_modules/_vue-loader@13.7.0@vue-loader/lib/selector?type=styles&index=0!./slide.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/_vue-loader@13.7.0@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/_vue-loader@13.7.0@vue-loader/lib/selector?type=script&index=0!./slide.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/_vue-loader@13.7.0@vue-loader/lib/selector?type=script&index=0!./slide.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/_vue-loader@13.7.0@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-1736b36a\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/_vue-loader@13.7.0@vue-loader/lib/selector?type=template&index=0!./slide.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/slide.vue\n// module id = null\n// module chunks = ","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/HelloWorld.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"hello\"},[(_vm.list.length>0)?_c('Swiper',{ref:\"swiper\",on:{\"transtionend\":_vm.getNum}},_vm._l((_vm.list),function(item,index){return _c('Slide',{key:index},[_c('img',{attrs:{\"src\":item.img}})])})):_vm._e(),_vm._v(\" \"),_c('div',{staticStyle:{\"width\":\"100%\",\"height\":\"100px\",\"background\":\"red\"}})],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/_vue-loader@13.7.0@vue-loader/lib/template-compiler?{\"id\":\"data-v-66dda140\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/_vue-loader@13.7.0@vue-loader/lib/selector.js?type=template&index=0!./src/components/HelloWorld.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/_extract-text-webpack-plugin@3.0.2@extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/_vue-loader@13.7.0@vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-66dda140\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/_vue-loader@13.7.0@vue-loader/lib/selector?type=styles&index=0!./HelloWorld.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/_vue-loader@13.7.0@vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/_vue-loader@13.7.0@vue-loader/lib/selector?type=script&index=0!./HelloWorld.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/_vue-loader@13.7.0@vue-loader/lib/selector?type=script&index=0!./HelloWorld.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/_vue-loader@13.7.0@vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-66dda140\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/_vue-loader@13.7.0@vue-loader/lib/selector?type=template&index=0!./HelloWorld.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-66dda140\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/HelloWorld.vue\n// module id = null\n// module chunks = ","import Vue from 'vue'\nimport Router from 'vue-router'\nimport HelloWorld from '@/components/HelloWorld'\n\nVue.use(Router)\n\nexport default new Router({\n routes: [\n {\n path: '/',\n name: 'HelloWorld',\n component: HelloWorld\n }\n ]\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/router/index.js","// The Vue build version to load with the `import` command\n// (runtime-only or standalone) has been set in webpack.base.conf with an alias.\nimport Vue from 'vue'\nimport App from './App'\nimport router from './router'\n\nVue.config.productionTip = false\n\n\nimport Toast from 'vue-toast-component';\nVue.use(Toast);\n\n/* eslint-disable no-new */\nnew Vue({\n el: '#app',\n router,\n template: '',\n components: { App }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.js"],"sourceRoot":""} -------------------------------------------------------------------------------- /dist/static/js/manifest.28a80a11d690e9196934.js: -------------------------------------------------------------------------------- 1 | !function(e){var n=window.webpackJsonp;window.webpackJsonp=function(r,c,a){for(var i,u,f,s=0,l=[];s0?u-4:u;var f=0;for(e=0;e>16&255,s[f++]=r>>8&255,s[f++]=255&r;2===a?(r=i[t.charCodeAt(e)]<<2|i[t.charCodeAt(e+1)]>>4,s[f++]=255&r):1===a&&(r=i[t.charCodeAt(e)]<<10|i[t.charCodeAt(e+1)]<<4|i[t.charCodeAt(e+2)]>>2,s[f++]=r>>8&255,s[f++]=255&r);return s},e.fromByteArray=function(t){for(var e,n=t.length,i=n%3,o="",a=[],s=0,u=n-i;su?u:s+16383));1===i?(e=t[n-1],o+=r[e>>2],o+=r[e<<4&63],o+="=="):2===i&&(e=(t[n-2]<<8)+t[n-1],o+=r[e>>10],o+=r[e>>4&63],o+=r[e<<2&63],o+="=");return a.push(o),a.join("")};for(var r=[],i=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,u=a.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===t[e-2]?2:"="===t[e-1]?1:0}function f(t,e,n){for(var i,o,a=[],s=e;s>18&63]+r[o>>12&63]+r[o>>6&63]+r[63&o]);return a.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},"5RIO":function(t,e){var n={}.toString;t.exports=Array.isArray||function(t){return"[object Array]"==n.call(t)}},"7xR8":function(t,e,n){"use strict";(function(t){var r=n("/eEn"),i=n("OId0"),o=n("5RIO");function a(){return u.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(t,e){if(a()=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|t}function d(t,e){if(u.isBuffer(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var n=t.length;if(0===n)return 0;for(var r=!1;;)switch(e){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return M(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return N(t).length;default:if(r)return M(t).length;e=(""+e).toLowerCase(),r=!0}}function v(t,e,n){var r=t[e];t[e]=t[n],t[n]=r}function y(t,e,n,r,i){if(0===t.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:t.length-1),n<0&&(n=t.length+n),n>=t.length){if(i)return-1;n=t.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof e&&(e=u.from(e,r)),u.isBuffer(e))return 0===e.length?-1:m(t,e,n,r,i);if("number"==typeof e)return e&=255,u.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,n):Uint8Array.prototype.lastIndexOf.call(t,e,n):m(t,[e],n,r,i);throw new TypeError("val must be string, number or Buffer")}function m(t,e,n,r,i){var o,a=1,s=t.length,u=e.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(t.length<2||e.length<2)return-1;a=2,s/=2,u/=2,n/=2}function c(t,e){return 1===a?t[e]:t.readUInt16BE(e*a)}if(i){var f=-1;for(o=n;os&&(n=s-u),o=n;o>=0;o--){for(var l=!0,p=0;pi&&(r=i):r=i;var o=e.length;if(o%2!=0)throw new TypeError("Invalid hex string");r>o/2&&(r=o/2);for(var a=0;a239?4:c>223?3:c>191?2:1;if(i+l<=n)switch(l){case 1:c<128&&(f=c);break;case 2:128==(192&(o=t[i+1]))&&(u=(31&c)<<6|63&o)>127&&(f=u);break;case 3:o=t[i+1],a=t[i+2],128==(192&o)&&128==(192&a)&&(u=(15&c)<<12|(63&o)<<6|63&a)>2047&&(u<55296||u>57343)&&(f=u);break;case 4:o=t[i+1],a=t[i+2],s=t[i+3],128==(192&o)&&128==(192&a)&&128==(192&s)&&(u=(15&c)<<18|(63&o)<<12|(63&a)<<6|63&s)>65535&&u<1114112&&(f=u)}null===f?(f=65533,l=1):f>65535&&(f-=65536,r.push(f>>>10&1023|55296),f=56320|1023&f),r.push(f),i+=l}return function(t){var e=t.length;if(e<=x)return String.fromCharCode.apply(String,t);var n="",r=0;for(;rthis.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return $(this,e,n);case"utf8":case"utf-8":return w(this,e,n);case"ascii":return A(this,e,n);case"latin1":case"binary":return C(this,e,n);case"base64":return b(this,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return k(this,e,n);default:if(r)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),r=!0}}.apply(this,arguments)},u.prototype.equals=function(t){if(!u.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t||0===u.compare(this,t)},u.prototype.inspect=function(){var t="",n=e.INSPECT_MAX_BYTES;return this.length>0&&(t=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(t+=" ... ")),""},u.prototype.compare=function(t,e,n,r,i){if(!u.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===n&&(n=t?t.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),e<0||n>t.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&e>=n)return 0;if(r>=i)return-1;if(e>=n)return 1;if(e>>>=0,n>>>=0,r>>>=0,i>>>=0,this===t)return 0;for(var o=i-r,a=n-e,s=Math.min(o,a),c=this.slice(r,i),f=t.slice(e,n),l=0;li)&&(n=i),t.length>0&&(n<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var o,a,s,u,c,f,l,p,h,d=!1;;)switch(r){case"hex":return g(this,t,e,n);case"utf8":case"utf-8":return p=e,h=n,U(M(t,(l=this).length-p),l,p,h);case"ascii":return _(this,t,e,n);case"latin1":case"binary":return _(this,t,e,n);case"base64":return u=this,c=e,f=n,U(N(t),u,c,f);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return a=e,s=n,U(function(t,e){for(var n,r,i,o=[],a=0;a>8,i=n%256,o.push(i),o.push(r);return o}(t,(o=this).length-a),o,a,s);default:if(d)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),d=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var x=4096;function A(t,e,n){var r="";n=Math.min(t.length,n);for(var i=e;ir)&&(n=r);for(var i="",o=e;on)throw new RangeError("Trying to access beyond buffer length")}function O(t,e,n,r,i,o){if(!u.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError("Index out of range")}function T(t,e,n,r){e<0&&(e=65535+e+1);for(var i=0,o=Math.min(t.length-n,2);i>>8*(r?i:1-i)}function S(t,e,n,r){e<0&&(e=4294967295+e+1);for(var i=0,o=Math.min(t.length-n,4);i>>8*(r?i:3-i)&255}function R(t,e,n,r,i,o){if(n+r>t.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function P(t,e,n,r,o){return o||R(t,0,n,4),i.write(t,e,n,r,23,4),n+4}function j(t,e,n,r,o){return o||R(t,0,n,8),i.write(t,e,n,r,52,8),n+8}u.prototype.slice=function(t,e){var n,r=this.length;if(t=~~t,e=void 0===e?r:~~e,t<0?(t+=r)<0&&(t=0):t>r&&(t=r),e<0?(e+=r)<0&&(e=0):e>r&&(e=r),e0&&(i*=256);)r+=this[t+--e]*i;return r},u.prototype.readUInt8=function(t,e){return e||E(t,1,this.length),this[t]},u.prototype.readUInt16LE=function(t,e){return e||E(t,2,this.length),this[t]|this[t+1]<<8},u.prototype.readUInt16BE=function(t,e){return e||E(t,2,this.length),this[t]<<8|this[t+1]},u.prototype.readUInt32LE=function(t,e){return e||E(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},u.prototype.readUInt32BE=function(t,e){return e||E(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},u.prototype.readIntLE=function(t,e,n){t|=0,e|=0,n||E(t,e,this.length);for(var r=this[t],i=1,o=0;++o=(i*=128)&&(r-=Math.pow(2,8*e)),r},u.prototype.readIntBE=function(t,e,n){t|=0,e|=0,n||E(t,e,this.length);for(var r=e,i=1,o=this[t+--r];r>0&&(i*=256);)o+=this[t+--r]*i;return o>=(i*=128)&&(o-=Math.pow(2,8*e)),o},u.prototype.readInt8=function(t,e){return e||E(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},u.prototype.readInt16LE=function(t,e){e||E(t,2,this.length);var n=this[t]|this[t+1]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt16BE=function(t,e){e||E(t,2,this.length);var n=this[t+1]|this[t]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt32LE=function(t,e){return e||E(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},u.prototype.readInt32BE=function(t,e){return e||E(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},u.prototype.readFloatLE=function(t,e){return e||E(t,4,this.length),i.read(this,t,!0,23,4)},u.prototype.readFloatBE=function(t,e){return e||E(t,4,this.length),i.read(this,t,!1,23,4)},u.prototype.readDoubleLE=function(t,e){return e||E(t,8,this.length),i.read(this,t,!0,52,8)},u.prototype.readDoubleBE=function(t,e){return e||E(t,8,this.length),i.read(this,t,!1,52,8)},u.prototype.writeUIntLE=function(t,e,n,r){(t=+t,e|=0,n|=0,r)||O(this,t,e,n,Math.pow(2,8*n)-1,0);var i=1,o=0;for(this[e]=255&t;++o=0&&(o*=256);)this[e+i]=t/o&255;return e+n},u.prototype.writeUInt8=function(t,e,n){return t=+t,e|=0,n||O(this,t,e,1,255,0),u.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},u.prototype.writeUInt16LE=function(t,e,n){return t=+t,e|=0,n||O(this,t,e,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):T(this,t,e,!0),e+2},u.prototype.writeUInt16BE=function(t,e,n){return t=+t,e|=0,n||O(this,t,e,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):T(this,t,e,!1),e+2},u.prototype.writeUInt32LE=function(t,e,n){return t=+t,e|=0,n||O(this,t,e,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):S(this,t,e,!0),e+4},u.prototype.writeUInt32BE=function(t,e,n){return t=+t,e|=0,n||O(this,t,e,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):S(this,t,e,!1),e+4},u.prototype.writeIntLE=function(t,e,n,r){if(t=+t,e|=0,!r){var i=Math.pow(2,8*n-1);O(this,t,e,n,i-1,-i)}var o=0,a=1,s=0;for(this[e]=255&t;++o>0)-s&255;return e+n},u.prototype.writeIntBE=function(t,e,n,r){if(t=+t,e|=0,!r){var i=Math.pow(2,8*n-1);O(this,t,e,n,i-1,-i)}var o=n-1,a=1,s=0;for(this[e+o]=255&t;--o>=0&&(a*=256);)t<0&&0===s&&0!==this[e+o+1]&&(s=1),this[e+o]=(t/a>>0)-s&255;return e+n},u.prototype.writeInt8=function(t,e,n){return t=+t,e|=0,n||O(this,t,e,1,127,-128),u.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},u.prototype.writeInt16LE=function(t,e,n){return t=+t,e|=0,n||O(this,t,e,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):T(this,t,e,!0),e+2},u.prototype.writeInt16BE=function(t,e,n){return t=+t,e|=0,n||O(this,t,e,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):T(this,t,e,!1),e+2},u.prototype.writeInt32LE=function(t,e,n){return t=+t,e|=0,n||O(this,t,e,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):S(this,t,e,!0),e+4},u.prototype.writeInt32BE=function(t,e,n){return t=+t,e|=0,n||O(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),u.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):S(this,t,e,!1),e+4},u.prototype.writeFloatLE=function(t,e,n){return P(this,t,e,!0,n)},u.prototype.writeFloatBE=function(t,e,n){return P(this,t,e,!1,n)},u.prototype.writeDoubleLE=function(t,e,n){return j(this,t,e,!0,n)},u.prototype.writeDoubleBE=function(t,e,n){return j(this,t,e,!1,n)},u.prototype.copy=function(t,e,n,r){if(n||(n=0),r||0===r||(r=this.length),e>=t.length&&(e=t.length),e||(e=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),t.length-e=0;--i)t[i+e]=this[i+n];else if(o<1e3||!u.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,n=void 0===n?this.length:n>>>0,t||(t=0),"number"==typeof t)for(o=e;o55295&&n<57344){if(!i){if(n>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(a+1===r){(e-=3)>-1&&o.push(239,191,189);continue}i=n;continue}if(n<56320){(e-=3)>-1&&o.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,n<128){if((e-=1)<0)break;o.push(n)}else if(n<2048){if((e-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(n<65536){if((e-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function N(t){return r.toByteArray(function(t){var e;if((t=(e=t,e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")).replace(I,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function U(t,e,n,r){for(var i=0;i=e.length||i>=t.length);++i)e[i+n]=t[i];return i}}).call(e,n("Gkk9"))},Gkk9:function(t,e){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(n=window)}t.exports=n},OId0:function(t,e){e.read=function(t,e,n,r,i){var o,a,s=8*i-r-1,u=(1<>1,f=-7,l=n?i-1:0,p=n?-1:1,h=t[e+l];for(l+=p,o=h&(1<<-f)-1,h>>=-f,f+=s;f>0;o=256*o+t[e+l],l+=p,f-=8);for(a=o&(1<<-f)-1,o>>=-f,f+=r;f>0;a=256*a+t[e+l],l+=p,f-=8);if(0===o)o=1-c;else{if(o===u)return a?NaN:1/0*(h?-1:1);a+=Math.pow(2,r),o-=c}return(h?-1:1)*a*Math.pow(2,o-r)},e.write=function(t,e,n,r,i,o){var a,s,u,c=8*o-i-1,f=(1<>1,p=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,h=r?0:o-1,d=r?1:-1,v=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,a=f):(a=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-a))<1&&(a--,u*=2),(e+=a+l>=1?p/u:p*Math.pow(2,1-l))*u>=2&&(a++,u/=2),a+l>=f?(s=0,a=f):a+l>=1?(s=(e*u-1)*Math.pow(2,i),a+=l):(s=e*Math.pow(2,l-1)*Math.pow(2,i),a=0));i>=8;t[n+h]=255&s,h+=d,s/=256,i-=8);for(a=a<0;t[n+h]=255&a,h+=d,a/=256,c-=8);t[n+h-d]|=128*v}},VCXJ:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){var n=Object.freeze({});function r(t){return void 0===t||null===t}function i(t){return void 0!==t&&null!==t}function o(t){return!0===t}function a(t){return"string"==typeof t||"number"==typeof t||"symbol"==typeof t||"boolean"==typeof t}function s(t){return null!==t&&"object"==typeof t}var u=Object.prototype.toString;function c(t){return"[object Object]"===u.call(t)}function f(t){return"[object RegExp]"===u.call(t)}function l(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e&&isFinite(t)}function p(t){return null==t?"":"object"==typeof t?JSON.stringify(t,null,2):String(t)}function h(t){var e=parseFloat(t);return isNaN(e)?t:e}function d(t,e){for(var n=Object.create(null),r=t.split(","),i=0;i-1)return t.splice(n,1)}}var g=Object.prototype.hasOwnProperty;function _(t,e){return g.call(t,e)}function b(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}var w=/-(\w)/g,x=b(function(t){return t.replace(w,function(t,e){return e?e.toUpperCase():""})}),A=b(function(t){return t.charAt(0).toUpperCase()+t.slice(1)}),C=/\B([A-Z])/g,$=b(function(t){return t.replace(C,"-$1").toLowerCase()});function k(t,e){function n(n){var r=arguments.length;return r?r>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n}function E(t,e){e=e||0;for(var n=t.length-e,r=new Array(n);n--;)r[n]=t[n+e];return r}function O(t,e){for(var n in e)t[n]=e[n];return t}function T(t){for(var e={},n=0;n0,G=K&&K.indexOf("edge/")>0,Z=K&&K.indexOf("android")>0||"android"===J,Q=K&&/iphone|ipad|ipod|ios/.test(K)||"ios"===J,tt=(K&&/chrome\/\d+/.test(K),{}.watch),et=!1;if(q)try{var nt={};Object.defineProperty(nt,"passive",{get:function(){et=!0}}),window.addEventListener("test-passive",null,nt)}catch(t){}var rt=function(){return void 0===H&&(H=!q&&void 0!==t&&"server"===t.process.env.VUE_ENV),H},it=q&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function ot(t){return"function"==typeof t&&/native code/.test(t.toString())}var at,st="undefined"!=typeof Symbol&&ot(Symbol)&&"undefined"!=typeof Reflect&&ot(Reflect.ownKeys);at="undefined"!=typeof Set&&ot(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var ut=S,ct=0,ft=function(){this.id=ct++,this.subs=[]};ft.prototype.addSub=function(t){this.subs.push(t)},ft.prototype.removeSub=function(t){m(this.subs,t)},ft.prototype.depend=function(){ft.target&&ft.target.addDep(this)},ft.prototype.notify=function(){for(var t=this.subs.slice(),e=0,n=t.length;e0&&(ue((c=t(c,(n||"")+"_"+u))[0])&&ue(l)&&(s[f]=vt(l.text+c[0].text),c.shift()),s.push.apply(s,c)):a(c)?ue(l)?s[f]=vt(l.text+c):""!==c&&s.push(vt(c)):ue(c)&&ue(l)?s[f]=vt(l.text+c.text):(o(e._isVList)&&i(c.tag)&&r(c.key)&&i(n)&&(c.key="__vlist"+n+"_"+u+"__"),s.push(c)));return s}(t):void 0}function ue(t){return i(t)&&i(t.text)&&!1===t.isComment}function ce(t,e){return(t.__esModule||st&&"Module"===t[Symbol.toStringTag])&&(t=t.default),s(t)?e.extend(t):t}function fe(t){return t.isComment&&t.asyncFactory}function le(t){if(Array.isArray(t))for(var e=0;eEe&&xe[n].id>t.id;)n--;xe.splice(n+1,0,t)}else xe.push(t);$e||($e=!0,Zt(Oe))}}(this)},Se.prototype.run=function(){if(this.active){var t=this.get();if(t!==this.value||s(t)||this.deep){var e=this.value;if(this.value=t,this.user)try{this.cb.call(this.vm,t,e)}catch(t){Dt(t,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,t,e)}}},Se.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},Se.prototype.depend=function(){for(var t=this.deps.length;t--;)this.deps[t].depend()},Se.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||m(this.vm._watchers,this);for(var t=this.deps.length;t--;)this.deps[t].removeSub(this);this.active=!1}};var Re={enumerable:!0,configurable:!0,get:S,set:S};function Pe(t,e,n){Re.get=function(){return this[e][n]},Re.set=function(t){this[e][n]=t},Object.defineProperty(t,n,Re)}function je(t){t._watchers=[];var e=t.$options;e.props&&function(t,e){var n=t.$options.propsData||{},r=t._props={},i=t.$options._propKeys=[],o=!t.$parent;wt.shouldConvert=o;var a=function(o){i.push(o);var a=Nt(o,e,n,t);kt(r,o,a),o in t||Pe(t,"_props",o)};for(var s in e)a(s);wt.shouldConvert=!0}(t,e.props),e.methods&&function(t,e){t.$options.props;for(var n in e)t[n]=null==e[n]?S:k(e[n],t)}(t,e.methods),e.data?function(t){var e=t.$options.data;c(e=t._data="function"==typeof e?function(t,e){try{return t.call(e,e)}catch(t){return Dt(t,e,"data()"),{}}}(e,t):e||{})||(e={});var n=Object.keys(e),r=t.$options.props,i=(t.$options.methods,n.length);for(;i--;){var o=n[i];0,r&&_(r,o)||D(o)||Pe(t,"_data",o)}$t(e,!0)}(t):$t(t._data={},!0),e.computed&&function(t,e){var n=t._computedWatchers=Object.create(null),r=rt();for(var i in e){var o=e[i],a="function"==typeof o?o:o.get;0,r||(n[i]=new Se(t,a||S,S,Ie)),i in t||Le(t,i,o)}}(t,e.computed),e.watch&&e.watch!==tt&&function(t,e){for(var n in e){var r=e[n];if(Array.isArray(r))for(var i=0;i=0||n.indexOf(t[i])<0)&&r.push(t[i]);return r}return t}function hn(t){this._init(t)}function dn(t){t.cid=0;var e=1;t.extend=function(t){t=t||{};var n=this,r=n.cid,i=t._Ctor||(t._Ctor={});if(i[r])return i[r];var o=t.name||n.options.name;var a=function(t){this._init(t)};return(a.prototype=Object.create(n.prototype)).constructor=a,a.cid=e++,a.options=Lt(n.options,t),a.super=n,a.options.props&&function(t){var e=t.options.props;for(var n in e)Pe(t.prototype,"_props",n)}(a),a.options.computed&&function(t){var e=t.options.computed;for(var n in e)Le(t.prototype,n,e[n])}(a),a.extend=n.extend,a.mixin=n.mixin,a.use=n.use,N.forEach(function(t){a[t]=n[t]}),o&&(a.options.components[o]=a),a.superOptions=n.options,a.extendOptions=t,a.sealedOptions=O({},a.options),i[r]=a,a}}function vn(t){return t&&(t.Ctor.options.name||t.tag)}function yn(t,e){return Array.isArray(t)?t.indexOf(e)>-1:"string"==typeof t?t.split(",").indexOf(e)>-1:!!f(t)&&t.test(e)}function mn(t,e){var n=t.cache,r=t.keys,i=t._vnode;for(var o in n){var a=n[o];if(a){var s=vn(a.componentOptions);s&&!e(s)&&gn(n,o,r,i)}}}function gn(t,e,n,r){var i=t[e];!i||r&&i.tag===r.tag||i.componentInstance.$destroy(),t[e]=null,m(n,e)}hn.prototype._init=function(t){var e,r,i,o;this._uid=fn++,this._isVue=!0,t&&t._isComponent?function(t,e){var n=t.$options=Object.create(t.constructor.options),r=e._parentVnode;n.parent=e.parent,n._parentVnode=r,n._parentElm=e._parentElm,n._refElm=e._refElm;var i=r.componentOptions;n.propsData=i.propsData,n._parentListeners=i.listeners,n._renderChildren=i.children,n._componentTag=i.tag,e.render&&(n.render=e.render,n.staticRenderFns=e.staticRenderFns)}(this,t):this.$options=Lt(ln(this.constructor),t||{},this),this._renderProxy=this,this._self=this,function(t){var e=t.$options,n=e.parent;if(n&&!e.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(t)}t.$parent=n,t.$root=n?n.$root:t,t.$children=[],t.$refs={},t._watcher=null,t._inactive=null,t._directInactive=!1,t._isMounted=!1,t._isDestroyed=!1,t._isBeingDestroyed=!1}(this),function(t){t._events=Object.create(null),t._hasHookEvent=!1;var e=t.$options._parentListeners;e&&de(t,e)}(this),function(t){t._vnode=null,t._staticTrees=null;var e=t.$options,r=t.$vnode=e._parentVnode,i=r&&r.context;t.$slots=ve(e._renderChildren,i),t.$scopedSlots=n,t._c=function(e,n,r,i){return on(t,e,n,r,i,!1)},t.$createElement=function(e,n,r,i){return on(t,e,n,r,i,!0)};var o=r&&r.data;kt(t,"$attrs",o&&o.attrs||n,0,!0),kt(t,"$listeners",e._parentListeners||n,0,!0)}(this),we(this,"beforeCreate"),(r=Ue((e=this).$options.inject,e))&&(wt.shouldConvert=!1,Object.keys(r).forEach(function(t){kt(e,t,r[t])}),wt.shouldConvert=!0),je(this),(o=(i=this).$options.provide)&&(i._provided="function"==typeof o?o.call(i):o),we(this,"created"),this.$options.el&&this.$mount(this.$options.el)},function(t){var e={};e.get=function(){return this._data};var n={};n.get=function(){return this._props},Object.defineProperty(t.prototype,"$data",e),Object.defineProperty(t.prototype,"$props",n),t.prototype.$set=Et,t.prototype.$delete=Ot,t.prototype.$watch=function(t,e,n){if(c(e))return Ne(this,t,e,n);(n=n||{}).user=!0;var r=new Se(this,t,e,n);return n.immediate&&e.call(this,r.value),function(){r.teardown()}}}(hn),sn=/^hook:/,(an=hn).prototype.$on=function(t,e){if(Array.isArray(t))for(var n=0,r=t.length;n1?E(e):e;for(var n=E(arguments,1),r=0,i=e.length;rparseInt(this.max)&&gn(a,s[0],s,this._vnode)),e.data.keepAlive=!0}return e||t&&t[0]}}};_n=hn,(wn={}).get=function(){return B},Object.defineProperty(_n,"config",wn),_n.util={warn:ut,extend:O,mergeOptions:Lt,defineReactive:kt},_n.set=Et,_n.delete=Ot,_n.nextTick=Zt,_n.options=Object.create(null),N.forEach(function(t){_n.options[t+"s"]=Object.create(null)}),_n.options._base=_n,O(_n.options.components,An),_n.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var n=E(arguments,1);return n.unshift(this),"function"==typeof t.install?t.install.apply(t,n):"function"==typeof t&&t.apply(null,n),e.push(t),this},_n.mixin=function(t){return this.options=Lt(this.options,t),this},dn(_n),bn=_n,N.forEach(function(t){bn[t]=function(e,n){return n?("component"===t&&c(n)&&(n.name=n.name||e,n=this.options._base.extend(n)),"directive"===t&&"function"==typeof n&&(n={bind:n,update:n}),this.options[t+"s"][e]=n,n):this.options[t+"s"][e]}}),Object.defineProperty(hn.prototype,"$isServer",{get:rt}),Object.defineProperty(hn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),hn.version="2.5.13";var Cn=d("style,class"),$n=d("input,textarea,option,select,progress"),kn=function(t,e,n){return"value"===n&&$n(t)&&"button"!==e||"selected"===n&&"option"===t||"checked"===n&&"input"===t||"muted"===n&&"video"===t},En=d("contenteditable,draggable,spellcheck"),On=d("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),Tn="http://www.w3.org/1999/xlink",Sn=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},Rn=function(t){return Sn(t)?t.slice(6,t.length):""},Pn=function(t){return null==t||!1===t};function jn(t){for(var e=t.data,n=t,r=t;i(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(e=In(r.data,e));for(;i(n=n.parent);)n&&n.data&&(e=In(e,n.data));return function(t,e){if(i(t)||i(e))return Ln(t,Mn(e));return""}(e.staticClass,e.class)}function In(t,e){return{staticClass:Ln(t.staticClass,e.staticClass),class:i(t.class)?[t.class,e.class]:e.class}}function Ln(t,e){return t?e?t+" "+e:t:e||""}function Mn(t){return Array.isArray(t)?function(t){for(var e,n="",r=0,o=t.length;r=0&&" "===(v=t.charAt(d));d--);v&&vr.test(v)||(c=!0)}}else void 0===i?(h=r+1,i=t.slice(0,r).trim()):y();function y(){(o||(o=[])).push(t.slice(h,r).trim()),h=r+1}if(void 0===i?i=t.slice(0,r).trim():0!==h&&y(),o)for(r=0;r-1?{exp:t.slice(0,lr),key:'"'+t.slice(lr+1)+'"'}:{exp:t,key:null};cr=t,lr=pr=hr=0;for(;!Tr();)Sr(fr=Or())?Pr(fr):91===fr&&Rr(fr);return{exp:t.slice(0,pr),key:t.slice(pr+1,hr)}}(t);return null===n.key?t+"="+e:"$set("+n.exp+", "+n.key+", "+e+")"}function Or(){return cr.charCodeAt(++lr)}function Tr(){return lr>=ur}function Sr(t){return 34===t||39===t}function Rr(t){var e=1;for(pr=lr;!Tr();)if(Sr(t=Or()))Pr(t);else if(91===t&&e++,93===t&&e--,0===e){hr=lr;break}}function Pr(t){for(var e=t;!Tr()&&(t=Or())!==e;);}var jr,Ir="__r",Lr="__c";function Mr(t,e,n,r,i){var o,a,s,u,c;e=(o=e)._withTask||(o._withTask=function(){Kt=!0;var t=o.apply(null,arguments);return Kt=!1,t}),n&&(a=e,s=t,u=r,c=jr,e=function t(){null!==a.apply(null,arguments)&&Nr(s,t,u,c)}),jr.addEventListener(t,e,et?{capture:r,passive:i}:r)}function Nr(t,e,n,r){(r||jr).removeEventListener(t,e._withTask||e,n)}function Ur(t,e){if(!r(t.data.on)||!r(e.data.on)){var n=e.data.on||{},o=t.data.on||{};jr=e.elm,function(t){if(i(t[Ir])){var e=W?"change":"input";t[e]=[].concat(t[Ir],t[e]||[]),delete t[Ir]}i(t[Lr])&&(t.change=[].concat(t[Lr],t.change||[]),delete t[Lr])}(n),ie(n,o,Mr,Nr,e.context),jr=void 0}}var Br={create:Ur,update:Ur};function Dr(t,e){if(!r(t.data.domProps)||!r(e.data.domProps)){var n,o,a,s,u=e.elm,c=t.data.domProps||{},f=e.data.domProps||{};i(f.__ob__)&&(f=e.data.domProps=O({},f));for(n in c)r(f[n])&&(u[n]="");for(n in f){if(o=f[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),o===c[n])continue;1===u.childNodes.length&&u.removeChild(u.childNodes[0])}if("value"===n){u._value=o;var l=r(o)?"":String(o);s=l,(a=u).composing||"OPTION"!==a.tagName&&!function(t,e){var n=!0;try{n=document.activeElement!==t}catch(t){}return n&&t.value!==e}(a,s)&&!function(t,e){var n=t.value,r=t._vModifiers;if(i(r)){if(r.lazy)return!1;if(r.number)return h(n)!==h(e);if(r.trim)return n.trim()!==e.trim()}return n!==e}(a,s)||(u.value=l)}else u[n]=o}}}var Fr={create:Dr,update:Dr},Yr=b(function(t){var e={},n=/:(.+)/;return t.split(/;(?![^(]*\))/g).forEach(function(t){if(t){var r=t.split(n);r.length>1&&(e[r[0].trim()]=r[1].trim())}}),e});function Hr(t){var e=zr(t.style);return t.staticStyle?O(t.staticStyle,e):e}function zr(t){return Array.isArray(t)?T(t):"string"==typeof t?Yr(t):t}var qr,Vr=/^--/,Jr=/\s*!important$/,Kr=function(t,e,n){if(Vr.test(e))t.style.setProperty(e,n);else if(Jr.test(n))t.style.setProperty(e,n.replace(Jr,""),"important");else{var r=Xr(e);if(Array.isArray(n))for(var i=0,o=n.length;i-1?e.split(/\s+/).forEach(function(e){return t.classList.add(e)}):t.classList.add(e);else{var n=" "+(t.getAttribute("class")||"")+" ";n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function ti(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(/\s+/).forEach(function(e){return t.classList.remove(e)}):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var n=" "+(t.getAttribute("class")||"")+" ",r=" "+e+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?t.setAttribute("class",n):t.removeAttribute("class")}}function ei(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&O(e,ni(t.name||"v")),O(e,t),e}return"string"==typeof t?ni(t):void 0}}var ni=b(function(t){return{enterClass:t+"-enter",enterToClass:t+"-enter-to",enterActiveClass:t+"-enter-active",leaveClass:t+"-leave",leaveToClass:t+"-leave-to",leaveActiveClass:t+"-leave-active"}}),ri=q&&!X,ii="transition",oi="animation",ai="transition",si="transitionend",ui="animation",ci="animationend";ri&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(ai="WebkitTransition",si="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(ui="WebkitAnimation",ci="webkitAnimationEnd"));var fi=q?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function li(t){fi(function(){fi(t)})}function pi(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),Qr(t,e))}function hi(t,e){t._transitionClasses&&m(t._transitionClasses,e),ti(t,e)}function di(t,e,n){var r=yi(t,e),i=r.type,o=r.timeout,a=r.propCount;if(!i)return n();var s=i===ii?si:ci,u=0,c=function(){t.removeEventListener(s,f),n()},f=function(e){e.target===t&&++u>=a&&c()};setTimeout(function(){u0&&(n=ii,f=a,l=o.length):e===oi?c>0&&(n=oi,f=c,l=u.length):l=(n=(f=Math.max(a,c))>0?a>c?ii:oi:null)?n===ii?o.length:u.length:0,{type:n,timeout:f,propCount:l,hasTransform:n===ii&&vi.test(r[ai+"Property"])}}function mi(t,e){for(;t.length1}function Ai(t,e){!0!==e.data.show&&_i(e)}var Ci=function(t){var e,n,s={},u=t.modules,c=t.nodeOps;for(e=0;ed?_(t,r(n[m+1])?null:n[m+1].elm,n,h,m,o):h>m&&w(0,e,p,d)}(u,h,d,n,a):i(d)?(i(t.text)&&c.setTextContent(u,""),_(u,null,d,0,d.length-1,n)):i(h)?w(0,h,0,h.length-1):i(t.text)&&c.setTextContent(u,""):t.text!==e.text&&c.setTextContent(u,e.text),i(p)&&i(f=p.hook)&&i(f=f.postpatch)&&f(t,e)}}}function $(t,e,n){if(o(n)&&i(t.parent))t.parent.data.pendingInsert=e;else for(var r=0;r-1,a.selected!==o&&(a.selected=o);else if(j(Ti(a),r))return void(t.selectedIndex!==s&&(t.selectedIndex=s));i||(t.selectedIndex=-1)}}function Oi(t,e){return e.every(function(e){return!j(e,t)})}function Ti(t){return"_value"in t?t._value:t.value}function Si(t){t.target.composing=!0}function Ri(t){t.target.composing&&(t.target.composing=!1,Pi(t.target,"input"))}function Pi(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function ji(t){return!t.componentInstance||t.data&&t.data.transition?t:ji(t.componentInstance._vnode)}var Ii={model:$i,show:{bind:function(t,e,n){var r=e.value,i=(n=ji(n)).data&&n.data.transition,o=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;r&&i?(n.data.show=!0,_i(n,function(){t.style.display=o})):t.style.display=r?o:"none"},update:function(t,e,n){var r=e.value;r!==e.oldValue&&((n=ji(n)).data&&n.data.transition?(n.data.show=!0,r?_i(n,function(){t.style.display=t.__vOriginalDisplay}):bi(n,function(){t.style.display="none"})):t.style.display=r?t.__vOriginalDisplay:"none")},unbind:function(t,e,n,r,i){i||(t.style.display=t.__vOriginalDisplay)}}},Li={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function Mi(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?Mi(le(e.children)):t}function Ni(t){var e={},n=t.$options;for(var r in n.propsData)e[r]=t[r];var i=n._parentListeners;for(var o in i)e[x(o)]=i[o];return e}function Ui(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}var Bi={name:"transition",props:Li,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(function(t){return t.tag||fe(t)})).length){0;var r=this.mode;0;var i=n[0];if(function(t){for(;t=t.parent;)if(t.data.transition)return!0}(this.$vnode))return i;var o=Mi(i);if(!o)return i;if(this._leaving)return Ui(t,i);var s="__transition-"+this._uid+"-";o.key=null==o.key?o.isComment?s+"comment":s+o.tag:a(o.key)?0===String(o.key).indexOf(s)?o.key:s+o.key:o.key;var u,c,f=(o.data||(o.data={})).transition=Ni(this),l=this._vnode,p=Mi(l);if(o.data.directives&&o.data.directives.some(function(t){return"show"===t.name})&&(o.data.show=!0),p&&p.data&&(u=o,(c=p).key!==u.key||c.tag!==u.tag)&&!fe(p)&&(!p.componentInstance||!p.componentInstance._vnode.isComment)){var h=p.data.transition=O({},f);if("out-in"===r)return this._leaving=!0,oe(h,"afterLeave",function(){e._leaving=!1,e.$forceUpdate()}),Ui(t,i);if("in-out"===r){if(fe(o))return l;var d,v=function(){d()};oe(f,"afterEnter",v),oe(f,"enterCancelled",v),oe(h,"delayLeave",function(t){d=t})}}return i}}},Di=O({tag:String,moveClass:String},Li);function Fi(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._enterCb()}function Yi(t){t.data.newPos=t.elm.getBoundingClientRect()}function Hi(t){var e=t.data.pos,n=t.data.newPos,r=e.left-n.left,i=e.top-n.top;if(r||i){t.data.moved=!0;var o=t.elm.style;o.transform=o.WebkitTransform="translate("+r+"px,"+i+"px)",o.transitionDuration="0s"}}delete Di.mode;var zi={Transition:Bi,TransitionGroup:{props:Di,render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,i=this.$slots.default||[],o=this.children=[],a=Ni(this),s=0;s-1?Yn[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:Yn[t]=/HTMLUnknownElement/.test(e.toString())},O(hn.options.directives,Ii),O(hn.options.components,zi),hn.prototype.__patch__=q?Ci:S,hn.prototype.$mount=function(t,e){return t=t&&q?zn(t):void 0,r=t,i=e,(n=this).$el=r,n.$options.render||(n.$options.render=dt),we(n,"beforeMount"),new Se(n,function(){n._update(n._render(),i)},S,null,!0),i=!1,null==n.$vnode&&(n._isMounted=!0,we(n,"mounted")),n;var n,r,i},hn.nextTick(function(){B.devtools&&it&&it.emit("init",hn)},0);var qi=/\{\{((?:.|\n)+?)\}\}/g,Vi=/[-.*+?^${}()|[\]\/\\]/g,Ji=b(function(t){var e=t[0].replace(Vi,"\\$&"),n=t[1].replace(Vi,"\\$&");return new RegExp(e+"((?:.|\\n)+?)"+n,"g")});function Ki(t,e){var n=e?Ji(e):qi;if(n.test(t)){for(var r,i,o,a=[],s=[],u=n.lastIndex=0;r=n.exec(t);){(i=r.index)>u&&(s.push(o=t.slice(u,i)),a.push(JSON.stringify(o)));var c=yr(r[1].trim());a.push("_s("+c+")"),s.push({"@binding":c}),u=i+r[0].length}return u\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,ro="[a-zA-Z_][\\w\\-\\.]*",io="((?:"+ro+"\\:)?"+ro+")",oo=new RegExp("^<"+io),ao=/^\s*(\/?)>/,so=new RegExp("^<\\/"+io+"[^>]*>"),uo=/^]+>/i,co=/^/g,"$1").replace(//g,"$1")),_o(f,n)&&(n=n.slice(1)),e.chars&&e.chars(n),""});u+=t.length-p.length,t=p,k(f,u-c,u)}else{var h=t.indexOf("<");if(0===h){if(co.test(t)){var d=t.indexOf("--\x3e");if(d>=0){e.shouldKeepComment&&e.comment(t.substring(4,d)),A(d+3);continue}}if(fo.test(t)){var v=t.indexOf("]>");if(v>=0){A(v+2);continue}}var y=t.match(uo);if(y){A(y[0].length);continue}var m=t.match(so);if(m){var g=u;A(m[0].length),k(m[1],g,u);continue}var _=C();if(_){$(_),_o(r,t)&&A(1);continue}}var b=void 0,w=void 0,x=void 0;if(h>=0){for(w=t.slice(h);!(so.test(w)||oo.test(w)||co.test(w)||fo.test(w)||(x=w.indexOf("<",1))<0);)h+=x,w=t.slice(h);b=t.substring(0,h),A(h)}h<0&&(b=t,t=""),e.chars&&b&&e.chars(b)}if(t===n){e.chars&&e.chars(t);break}}function A(e){u+=e,t=t.substring(e)}function C(){var e=t.match(oo);if(e){var n,r,i={tagName:e[1],attrs:[],start:u};for(A(e[0].length);!(n=t.match(ao))&&(r=t.match(no));)A(r[0].length),i.attrs.push(r);if(n)return i.unarySlash=n[1],A(n[0].length),i.end=u,i}}function $(t){var n=t.tagName,u=t.unarySlash;o&&("p"===r&&eo(n)&&k(r),s(n)&&r===n&&k(n));for(var c,f,l,p=a(n)||!!u,h=t.attrs.length,d=new Array(h),v=0;v=0&&i[a].lowerCasedTag!==s;a--);else a=0;if(a>=0){for(var c=i.length-1;c>=a;c--)e.end&&e.end(i[c].tag,n,o);i.length=a,r=a&&i[a-1].tag}else"br"===s?e.start&&e.start(t,[],!0,n,o):"p"===s&&(e.start&&e.start(t,[],!1,n,o),e.end&&e.end(t,n,o))}k()}(t,{warn:bo,expectHTML:e.expectHTML,isUnaryTag:e.isUnaryTag,canBeLeftOpenTag:e.canBeLeftOpenTag,shouldDecodeNewlines:e.shouldDecodeNewlines,shouldDecodeNewlinesForHref:e.shouldDecodeNewlinesForHref,shouldKeepComment:e.comments,start:function(t,o,c){var f=r&&r.ns||Eo(t);W&&"svg"===f&&(o=function(t){for(var e=[],n=0;n-1"+("true"===h?":("+c+")":":_q("+c+","+h+")")),Ar(u,"change","var $$a="+c+",$$el=$event.target,$$c=$$el.checked?("+h+"):("+d+");if(Array.isArray($$a)){var $$v="+(l?"_n("+p+")":p)+",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&("+c+"=$$a.concat([$$v]))}else{$$i>-1&&("+c+"=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{"+Er(c,"$$c")+"}",null,!0);else if("input"===w&&"radio"===x)r=t,i=_,a=(o=b)&&o.number,s=Cr(r,"value")||"null",br(r,"checked","_q("+i+","+(s=a?"_n("+s+")":s)+")"),Ar(r,"change",Er(i,s),null,!0);else if("input"===w||"textarea"===w)!function(t,e,n){var r=t.attrsMap.type,i=n||{},o=i.lazy,a=i.number,s=i.trim,u=!o&&"range"!==r,c=o?"change":"range"===r?Ir:"input",f="$event.target.value";s&&(f="$event.target.value.trim()"),a&&(f="_n("+f+")");var l=Er(e,f);u&&(l="if($event.target.composing)return;"+l),br(t,"value","("+e+")"),Ar(t,c,l,null,!0),(s||a)&&Ar(t,"blur","$forceUpdate()")}(t,_,b);else if(!B.isReservedTag(w))return kr(t,_,b),!1;return!0},text:function(t,e){e.value&&br(t,"textContent","_s("+e.value+")")},html:function(t,e){e.value&&br(t,"innerHTML","_s("+e.value+")")}},isPreTag:function(t){return"pre"===t},isUnaryTag:Qi,mustUseProp:kn,canBeLeftOpenTag:to,isReservedTag:Dn,getTagNamespace:Fn,staticKeys:(Jo=Vo,Jo.reduce(function(t,e){return t.concat(e.staticKeys||[])},[]).join(","))},Go=b(function(t){return d("type,tag,attrsList,attrsMap,plain,parent,children,attrs"+(t?","+t:""))});function Zo(t,e){t&&(Ko=Go(e.staticKeys||""),Wo=e.isReservedTag||R,function t(e){e.static=function(t){if(2===t.type)return!1;if(3===t.type)return!0;return!(!t.pre&&(t.hasBindings||t.if||t.for||v(t.tag)||!Wo(t.tag)||function(t){for(;t.parent;){if("template"!==(t=t.parent).tag)return!1;if(t.for)return!0}return!1}(t)||!Object.keys(t).every(Ko)))}(e);if(1===e.type){if(!Wo(e.tag)&&"slot"!==e.tag&&null==e.attrsMap["inline-template"])return;for(var n=0,r=e.children.length;n|^function\s*\(/,ta=/^\s*[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['.*?']|\[".*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*\s*$/,ea={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},na=function(t){return"if("+t+")return null;"},ra={stop:"$event.stopPropagation();",prevent:"$event.preventDefault();",self:na("$event.target !== $event.currentTarget"),ctrl:na("!$event.ctrlKey"),shift:na("!$event.shiftKey"),alt:na("!$event.altKey"),meta:na("!$event.metaKey"),left:na("'button' in $event && $event.button !== 0"),middle:na("'button' in $event && $event.button !== 1"),right:na("'button' in $event && $event.button !== 2")};function ia(t,e,n){var r=e?"nativeOn:{":"on:{";for(var i in t)r+='"'+i+'":'+oa(i,t[i])+",";return r.slice(0,-1)+"}"}function oa(t,e){if(!e)return"function(){}";if(Array.isArray(e))return"["+e.map(function(e){return oa(t,e)}).join(",")+"]";var n=ta.test(e.value),r=Qo.test(e.value);if(e.modifiers){var i="",o="",a=[];for(var s in e.modifiers)if(ra[s])o+=ra[s],ea[s]&&a.push(s);else if("exact"===s){var u=e.modifiers;o+=na(["ctrl","shift","alt","meta"].filter(function(t){return!u[t]}).map(function(t){return"$event."+t+"Key"}).join("||"))}else a.push(s);return a.length&&(i+="if(!('button' in $event)&&"+a.map(aa).join("&&")+")return null;"),o&&(i+=o),"function($event){"+i+(n?e.value+"($event)":r?"("+e.value+")($event)":e.value)+"}"}return n||r?e.value:"function($event){"+e.value+"}"}function aa(t){var e=parseInt(t,10);if(e)return"$event.keyCode!=="+e;var n=ea[t];return"_k($event.keyCode,"+JSON.stringify(t)+","+JSON.stringify(n)+",$event.key)"}var sa={on:function(t,e){t.wrapListeners=function(t){return"_g("+t+","+e.value+")"}},bind:function(t,e){t.wrapData=function(n){return"_b("+n+",'"+t.tag+"',"+e.value+","+(e.modifiers&&e.modifiers.prop?"true":"false")+(e.modifiers&&e.modifiers.sync?",true":"")+")"}},cloak:S},ua=function(t){this.options=t,this.warn=t.warn||gr,this.transforms=_r(t.modules,"transformCode"),this.dataGenFns=_r(t.modules,"genData"),this.directives=O(O({},sa),t.directives);var e=t.isReservedTag||R;this.maybeComponent=function(t){return!e(t.tag)},this.onceId=0,this.staticRenderFns=[]};function ca(t,e){var n=new ua(e);return{render:"with(this){return "+(t?fa(t,n):'_c("div")')+"}",staticRenderFns:n.staticRenderFns}}function fa(t,e){if(t.staticRoot&&!t.staticProcessed)return la(t,e);if(t.once&&!t.onceProcessed)return pa(t,e);if(t.for&&!t.forProcessed)return function(t,e,n,r){var i=t.for,o=t.alias,a=t.iterator1?","+t.iterator1:"",s=t.iterator2?","+t.iterator2:"";0;return t.forProcessed=!0,(r||"_l")+"(("+i+"),function("+o+a+s+"){return "+(n||fa)(t,e)+"})"}(t,e);if(t.if&&!t.ifProcessed)return ha(t,e);if("template"!==t.tag||t.slotTarget){if("slot"===t.tag)return function(t,e){var n=t.slotName||'"default"',r=ya(t,e),i="_t("+n+(r?","+r:""),o=t.attrs&&"{"+t.attrs.map(function(t){return x(t.name)+":"+t.value}).join(",")+"}",a=t.attrsMap["v-bind"];!o&&!a||r||(i+=",null");o&&(i+=","+o);a&&(i+=(o?"":",null")+","+a);return i+")"}(t,e);var n;if(t.component)a=t.component,u=e,c=(s=t).inlineTemplate?null:ya(s,u,!0),n="_c("+a+","+da(s,u)+(c?","+c:"")+")";else{var r=t.plain?void 0:da(t,e),i=t.inlineTemplate?null:ya(t,e,!0);n="_c('"+t.tag+"'"+(r?","+r:"")+(i?","+i:"")+")"}for(var o=0;o':'
',Aa.innerHTML.indexOf(" ")>0}var ka=!!q&&$a(!1),Ea=!!q&&$a(!0),Oa=b(function(t){var e=zn(t);return e&&e.innerHTML}),Ta=hn.prototype.$mount;hn.prototype.$mount=function(t,e){if((t=t&&zn(t))===document.body||t===document.documentElement)return this;var n=this.$options;if(!n.render){var r=n.template;if(r)if("string"==typeof r)"#"===r.charAt(0)&&(r=Oa(r));else{if(!r.nodeType)return this;r=r.innerHTML}else t&&(r=function(t){if(t.outerHTML)return t.outerHTML;var e=document.createElement("div");return e.appendChild(t.cloneNode(!0)),e.innerHTML}(t));if(r){0;var i=Ca(r,{shouldDecodeNewlines:ka,shouldDecodeNewlinesForHref:Ea,delimiters:n.delimiters,comments:n.comments},this),o=i.render,a=i.staticRenderFns;n.render=o,n.staticRenderFns=a}}return Ta.call(this,t,e)},hn.compile=Ca,e.default=hn}.call(e,n("Gkk9"))},X4nt:function(t,e){t.exports=function(t,e,n,r,i,o){var a,s=t=t||{},u=typeof t.default;"object"!==u&&"function"!==u||(a=t,s=t.default);var c,f="function"==typeof s?s.options:s;if(e&&(f.render=e.render,f.staticRenderFns=e.staticRenderFns,f._compiled=!0),n&&(f.functional=!0),i&&(f._scopeId=i),o?(c=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),r&&r.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(o)},f._ssrRegister=c):r&&(c=r),c){var l=f.functional,p=l?f.render:f.beforeCreate;l?(f._injectStyles=c,f.render=function(t,e){return c.call(e),p(t,e)}):f.beforeCreate=p?[].concat(p,c):[c]}return{esModule:a,exports:s,options:f}}},kqZI:function(t,e,n){(function(e){t.exports=function(t){function e(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,e),i.l=!0,i.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="/",e(e.s=3)}([function(t,e,n){n(8);var r=n(6)(n(2),n(7),null,null);t.exports=r.exports},function(t,e){t.exports=n("VCXJ")},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={data:function(){return{is_show:!1,duration:1500,content:""}}}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var i=r(n(1)),o=r(n(0)),a=void 0,s=!1,u=i.default.extend(o.default),c=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1500;s||(s=!0,a=new u({el:document.createElement("div")}),document.body.appendChild(a.$el),a.is_show=!0,a.content=t,a.duration=e,setTimeout(function(){s=!1,a.is_show=!1},a.duration))};e.default={install:function(t){t.prototype.$toast=c}}},function(t,e,n){(t.exports=n(5)(void 0)).push([t.i,".wh-fade-toast-enter{opacity:0}.wh-fade-toast-enter-active,.wh-fade-toast-leave-active{-webkit-transition:opacity .4s;transition:opacity .4s}.wh-fade-toast-leave-active{opacity:0}*{margin:0;padding:0}.wh-toast{position:fixed;z-index:9999;line-height:17px;left:50%;-webkit-transform:translate(-50%);-ms-transform:translate(-50%);transform:translate(-50%);bottom:50px}.wh-toast-message{font-size:14px;padding:12px 16px;text-align:center;color:#fff;-webkit-border-radius:6px;border-radius:6px;background:#323232;opacity:.9}",""])},function(t,n){function r(t,n){var r,i=t[1]||"",o=t[3];if(!o)return i;if(n){var a=(r=o,"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+new e(JSON.stringify(r)).toString("base64")+" */");return[i].concat(o.sources.map(function(t){return"/*# sourceURL="+o.sourceRoot+t+" */"})).concat([a]).join("\n")}return[i].join("\n")}t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var n=r(e,t);return e[2]?"@media "+e[2]+"{"+n+"}":n}).join("")},e.i=function(t,n){"string"==typeof t&&(t=[[null,t,""]]);for(var r={},i=0;in.parts.length&&(r.parts.length=n.parts.length)}else{var a=[];for(i=0;i-1}var o={name:"router-view",functional:!0,props:{name:{type:String,default:"default"}},render:function(t,e){var n=e.props,r=e.children,i=e.parent,o=e.data;o.routerView=!0;for(var a=i.$createElement,s=n.name,u=i.$route,c=i._routerViewCache||(i._routerViewCache={}),f=0,l=!1;i&&i._routerRoot!==i;)i.$vnode&&i.$vnode.data.routerView&&f++,i._inactive&&(l=!0),i=i.$parent;if(o.routerViewDepth=f,l)return a(c[s],o,r);var p=u.matched[f];if(!p)return c[s]=null,a();var h=c[s]=p.components[s];o.registerRouteInstance=function(t,e){var n=p.instances[s];(e&&n!==t||!e&&n===t)&&(p.instances[s]=e)},(o.hook||(o.hook={})).prepatch=function(t,e){p.instances[s]=e.componentInstance};var d=o.props=function(t,e){switch(typeof e){case"undefined":return;case"object":return e;case"function":return e(t);case"boolean":return e?t.params:void 0;default:0}}(u,p.props&&p.props[s]);if(d){d=o.props=function(t,e){for(var n in e)t[n]=e[n];return t}({},d);var v=o.attrs=o.attrs||{};for(var y in d)h.props&&y in h.props||(v[y]=d[y],delete d[y])}return a(h,o,r)}};var a=/[!'()*]/g,s=function(t){return"%"+t.charCodeAt(0).toString(16)},u=/%2C/g,c=function(t){return encodeURIComponent(t).replace(a,s).replace(u,",")},f=decodeURIComponent;function l(t){var e={};return(t=t.trim().replace(/^(\?|#|&)/,""))?(t.split("&").forEach(function(t){var n=t.replace(/\+/g," ").split("="),r=f(n.shift()),i=n.length>0?f(n.join("=")):null;void 0===e[r]?e[r]=i:Array.isArray(e[r])?e[r].push(i):e[r]=[e[r],i]}),e):e}function p(t){var e=t?Object.keys(t).map(function(e){var n=t[e];if(void 0===n)return"";if(null===n)return c(e);if(Array.isArray(n)){var r=[];return n.forEach(function(t){void 0!==t&&(null===t?r.push(c(e)):r.push(c(e)+"="+c(t)))}),r.join("&")}return c(e)+"="+c(n)}).filter(function(t){return t.length>0}).join("&"):null;return e?"?"+e:""}var h=/\/?$/;function d(t,e,n,r){var i=r&&r.options.stringifyQuery,o=e.query||{};try{o=v(o)}catch(t){}var a={name:e.name||t&&t.name,meta:t&&t.meta||{},path:e.path||"/",hash:e.hash||"",query:o,params:e.params||{},fullPath:m(e,i),matched:t?function(t){var e=[];for(;t;)e.unshift(t),t=t.parent;return e}(t):[]};return n&&(a.redirectedFrom=m(n,i)),Object.freeze(a)}function v(t){if(Array.isArray(t))return t.map(v);if(t&&"object"==typeof t){var e={};for(var n in t)e[n]=v(t[n]);return e}return t}var y=d(null,{path:"/"});function m(t,e){var n=t.path,r=t.query;void 0===r&&(r={});var i=t.hash;return void 0===i&&(i=""),(n||"/")+(e||p)(r)+i}function g(t,e){return e===y?t===e:!!e&&(t.path&&e.path?t.path.replace(h,"")===e.path.replace(h,"")&&t.hash===e.hash&&_(t.query,e.query):!(!t.name||!e.name)&&(t.name===e.name&&t.hash===e.hash&&_(t.query,e.query)&&_(t.params,e.params)))}function _(t,e){if(void 0===t&&(t={}),void 0===e&&(e={}),!t||!e)return t===e;var n=Object.keys(t),r=Object.keys(e);return n.length===r.length&&n.every(function(n){var r=t[n],i=e[n];return"object"==typeof r&&"object"==typeof i?_(r,i):String(r)===String(i)})}var b,w=[String,Object],x=[String,Array],A={name:"router-link",props:{to:{type:w,required:!0},tag:{type:String,default:"a"},exact:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,event:{type:x,default:"click"}},render:function(t){var e,n,r=this,i=this.$router,o=this.$route,a=i.resolve(this.to,o,this.append),s=a.location,u=a.route,c=a.href,f={},l=i.options.linkActiveClass,p=i.options.linkExactActiveClass,v=null==l?"router-link-active":l,y=null==p?"router-link-exact-active":p,m=null==this.activeClass?v:this.activeClass,_=null==this.exactActiveClass?y:this.exactActiveClass,w=s.path?d(null,s,null,i):u;f[_]=g(o,w),f[m]=this.exact?f[_]:(n=w,0===(e=o).path.replace(h,"/").indexOf(n.path.replace(h,"/"))&&(!n.hash||e.hash===n.hash)&&function(t,e){for(var n in e)if(!(n in t))return!1;return!0}(e.query,n.query));var x=function(t){C(t)&&(r.replace?i.replace(s):i.push(s))},A={click:C};Array.isArray(this.event)?this.event.forEach(function(t){A[t]=x}):A[this.event]=x;var $={class:f};if("a"===this.tag)$.on=A,$.attrs={href:c};else{var k=function t(e){if(e)for(var n,r=0;r=0&&(e=t.slice(r),t=t.slice(0,r));var i=t.indexOf("?");return i>=0&&(n=t.slice(i+1),t=t.slice(0,i)),{path:t,query:n,hash:e}}(i.path||""),u=e&&e.path||"/",c=s.path?E(s.path,u,n||i.append):u,f=function(t,e,n){void 0===e&&(e={});var r,i=n||l;try{r=i(t||"")}catch(t){r={}}for(var o in e)r[o]=e[o];return r}(s.query,i.query,r&&r.options.parseQuery),p=i.hash||s.hash;return p&&"#"!==p.charAt(0)&&(p="#"+p),{_normalized:!0,path:c,query:f,hash:p}}function K(t,e){for(var n in e)t[n]=e[n];return t}function W(t,e){var n=V(t),r=n.pathList,i=n.pathMap,o=n.nameMap;function a(t,n,a){var s=J(t,n,!1,e),c=s.name;if(c){var f=o[c];if(!f)return u(null,s);var l=f.regex.keys.filter(function(t){return!t.optional}).map(function(t){return t.name});if("object"!=typeof s.params&&(s.params={}),n&&"object"==typeof n.params)for(var p in n.params)!(p in s.params)&&l.indexOf(p)>-1&&(s.params[p]=n.params[p]);if(f)return s.path=q(f.path,s.params),u(f,s,a)}else if(s.path){s.params={};for(var h=0;h=t.length?n():t[i]?e(t[i],function(){r(i+1)}):r(i+1)};r(0)}function dt(t){return function(e,n,r){var o=!1,a=0,s=null;vt(t,function(t,e,n,u){if("function"==typeof t&&void 0===t.cid){o=!0,a++;var c,f=gt(function(e){var i;((i=e).__esModule||mt&&"Module"===i[Symbol.toStringTag])&&(e=e.default),t.resolved="function"==typeof e?e:b.extend(e),n.components[u]=e,--a<=0&&r()}),l=gt(function(t){var e="Failed to resolve async component "+u+": "+t;s||(s=i(t)?t:new Error(e),r(s))});try{c=t(f,l)}catch(t){l(t)}if(c)if("function"==typeof c.then)c.then(f,l);else{var p=c.component;p&&"function"==typeof p.then&&p.then(f,l)}}}),o||r()}}function vt(t,e){return yt(t.map(function(t){return Object.keys(t.components).map(function(n){return e(t.components[n],t.instances[n],t,n)})}))}function yt(t){return Array.prototype.concat.apply([],t)}var mt="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function gt(t){var e=!1;return function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];if(!e)return e=!0,t.apply(this,n)}}var _t=function(t,e){this.router=t,this.base=function(t){if(!t)if(k){var e=document.querySelector("base");t=(t=e&&e.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else t="/";"/"!==t.charAt(0)&&(t="/"+t);return t.replace(/\/$/,"")}(e),this.current=y,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[]};function bt(t,e,n,r){var i=vt(t,function(t,r,i,o){var a=function(t,e){"function"!=typeof t&&(t=b.extend(t));return t.options[e]}(t,e);if(a)return Array.isArray(a)?a.map(function(t){return n(t,r,i,o)}):n(a,r,i,o)});return yt(r?i.reverse():i)}function wt(t,e){if(e)return function(){return t.apply(e,arguments)}}_t.prototype.listen=function(t){this.cb=t},_t.prototype.onReady=function(t,e){this.ready?t():(this.readyCbs.push(t),e&&this.readyErrorCbs.push(e))},_t.prototype.onError=function(t){this.errorCbs.push(t)},_t.prototype.transitionTo=function(t,e,n){var r=this,i=this.router.match(t,this.current);this.confirmTransition(i,function(){r.updateRoute(i),e&&e(i),r.ensureURL(),r.ready||(r.ready=!0,r.readyCbs.forEach(function(t){t(i)}))},function(t){n&&n(t),t&&!r.ready&&(r.ready=!0,r.readyErrorCbs.forEach(function(e){e(t)}))})},_t.prototype.confirmTransition=function(t,e,n){var o=this,a=this.current,s=function(t){i(t)&&(o.errorCbs.length?o.errorCbs.forEach(function(e){e(t)}):(r(),console.error(t))),n&&n(t)};if(g(t,a)&&t.matched.length===a.matched.length)return this.ensureURL(),s();var u=function(t,e){var n,r=Math.max(t.length,e.length);for(n=0;n=0?e.slice(0,n):e)+"#"+t}function Ot(t){at?lt(Et(t)):window.location.hash=t}function Tt(t){at?pt(Et(t)):window.location.replace(Et(t))}var St=function(t){function e(e,n){t.call(this,e,n),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,n){var r=this;this.transitionTo(t,function(t){r.stack=r.stack.slice(0,r.index+1).concat(t),r.index++,e&&e(t)},n)},e.prototype.replace=function(t,e,n){var r=this;this.transitionTo(t,function(t){r.stack=r.stack.slice(0,r.index).concat(t),e&&e(t)},n)},e.prototype.go=function(t){var e=this,n=this.index+t;if(!(n<0||n>=this.stack.length)){var r=this.stack[n];this.confirmTransition(r,function(){e.index=n,e.updateRoute(r)})}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}(_t),Rt=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=W(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!at&&!1!==t.fallback,this.fallback&&(e="hash"),k||(e="abstract"),this.mode=e,e){case"history":this.history=new xt(this,t.base);break;case"hash":this.history=new Ct(this,t.base,this.fallback);break;case"abstract":this.history=new St(this,t.base);break;default:0}},Pt={currentRoute:{configurable:!0}};function jt(t,e){return t.push(e),function(){var n=t.indexOf(e);n>-1&&t.splice(n,1)}}Rt.prototype.match=function(t,e,n){return this.matcher.match(t,e,n)},Pt.currentRoute.get=function(){return this.history&&this.history.current},Rt.prototype.init=function(t){var e=this;if(this.apps.push(t),!this.app){this.app=t;var n=this.history;if(n instanceof xt)n.transitionTo(n.getCurrentLocation());else if(n instanceof Ct){var r=function(){n.setupListeners()};n.transitionTo(n.getCurrentLocation(),r,r)}n.listen(function(t){e.apps.forEach(function(e){e._route=t})})}},Rt.prototype.beforeEach=function(t){return jt(this.beforeHooks,t)},Rt.prototype.beforeResolve=function(t){return jt(this.resolveHooks,t)},Rt.prototype.afterEach=function(t){return jt(this.afterHooks,t)},Rt.prototype.onReady=function(t,e){this.history.onReady(t,e)},Rt.prototype.onError=function(t){this.history.onError(t)},Rt.prototype.push=function(t,e,n){this.history.push(t,e,n)},Rt.prototype.replace=function(t,e,n){this.history.replace(t,e,n)},Rt.prototype.go=function(t){this.history.go(t)},Rt.prototype.back=function(){this.go(-1)},Rt.prototype.forward=function(){this.go(1)},Rt.prototype.getMatchedComponents=function(t){var e=t?t.matched?t:this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map(function(t){return Object.keys(t.components).map(function(e){return t.components[e]})})):[]},Rt.prototype.resolve=function(t,e,n){var r,i,o,a,s=J(t,e||this.history.current,n,this),u=this.match(s,e),c=u.redirectedFrom||u.fullPath,f=this.history.base;return{location:s,route:u,href:(r=f,i=c,o=this.mode,a="hash"===o?"#"+i:i,r?O(r+"/"+a):a),normalizedTo:s,resolved:u}},Rt.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==y&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(Rt.prototype,Pt),Rt.install=$,Rt.version="3.0.1",k&&window.Vue&&window.Vue.use(Rt),e.a=Rt}}); 2 | //# sourceMappingURL=vendor.144ea6915f152b6127b0.js.map -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | demo 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "demo", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "vue-swiper-component": { 8 | "version": "2.1.3", 9 | "resolved": "http://registry.npm.taobao.org/vue-swiper-component/download/vue-swiper-component-2.1.3.tgz", 10 | "integrity": "sha1-z56ibJJHWRN5NqBexR1q7c/8FKw=" 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "demo", 3 | "version": "1.0.0", 4 | "description": "A Vue.js project", 5 | "author": "", 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 | "vue": "^2.5.2", 17 | "vue-router": "^3.0.1", 18 | "vue-swiper-component": "^2.1.3", 19 | "vue-toast-component": "^2.0.0" 20 | }, 21 | "devDependencies": { 22 | "autoprefixer": "^7.1.2", 23 | "babel-core": "^6.22.1", 24 | "babel-helper-vue-jsx-merge-props": "^2.0.3", 25 | "babel-jest": "^21.0.2", 26 | "babel-loader": "^7.1.1", 27 | "babel-plugin-dynamic-import-node": "^1.2.0", 28 | "babel-plugin-syntax-jsx": "^6.18.0", 29 | "babel-plugin-transform-es2015-modules-commonjs": "^6.26.0", 30 | "babel-plugin-transform-runtime": "^6.22.0", 31 | "babel-plugin-transform-vue-jsx": "^3.5.0", 32 | "babel-preset-env": "^1.3.2", 33 | "babel-preset-stage-2": "^6.22.0", 34 | "babel-register": "^6.22.0", 35 | "chalk": "^2.0.1", 36 | "chromedriver": "^2.27.2", 37 | "copy-webpack-plugin": "^4.0.1", 38 | "cross-spawn": "^5.0.1", 39 | "css-loader": "^0.28.0", 40 | "extract-text-webpack-plugin": "^3.0.0", 41 | "file-loader": "^1.1.4", 42 | "friendly-errors-webpack-plugin": "^1.6.1", 43 | "html-webpack-plugin": "^2.30.1", 44 | "jest": "^21.2.0", 45 | "jest-serializer-vue": "^0.3.0", 46 | "nightwatch": "^0.9.12", 47 | "node-notifier": "^5.1.2", 48 | "optimize-css-assets-webpack-plugin": "^3.2.0", 49 | "ora": "^1.2.0", 50 | "portfinder": "^1.0.13", 51 | "postcss-import": "^11.0.0", 52 | "postcss-loader": "^2.0.8", 53 | "rimraf": "^2.6.0", 54 | "selenium-server": "^3.0.1", 55 | "semver": "^5.3.0", 56 | "shelljs": "^0.7.6", 57 | "uglifyjs-webpack-plugin": "^1.1.1", 58 | "url-loader": "^0.5.8", 59 | "vue-jest": "^1.0.2", 60 | "vue-loader": "^13.3.0", 61 | "vue-style-loader": "^3.0.1", 62 | "vue-template-compiler": "^2.5.2", 63 | "webpack": "^3.6.0", 64 | "webpack-bundle-analyzer": "^2.9.0", 65 | "webpack-dev-server": "^2.9.1", 66 | "webpack-merge": "^4.1.0" 67 | }, 68 | "engines": { 69 | "node": ">= 4.0.0", 70 | "npm": ">= 3.0.0" 71 | }, 72 | "browserslist": [ 73 | "> 1%", 74 | "last 2 versions", 75 | "not ie <= 8" 76 | ] 77 | } 78 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 12 | 13 | 19 | -------------------------------------------------------------------------------- /src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zwhGithub/vue-swiper/2da7306b0b0a3680689ea4e48df6aff50ee11167/src/assets/logo.png -------------------------------------------------------------------------------- /src/components/HelloWorld.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /src/components/index.js: -------------------------------------------------------------------------------- 1 | import Swiper from './swiper.vue'; 2 | import Slide from './slide.vue'; 3 | 4 | export { 5 | Swiper, Slide 6 | } -------------------------------------------------------------------------------- /src/components/slide.vue: -------------------------------------------------------------------------------- 1 | 14 | 19 | -------------------------------------------------------------------------------- /src/components/swiper.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 172 | 173 | -------------------------------------------------------------------------------- /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 | 7 | Vue.config.productionTip = false 8 | 9 | 10 | import Toast from 'vue-toast-component'; 11 | Vue.use(Toast); 12 | 13 | /* eslint-disable no-new */ 14 | new Vue({ 15 | el: '#app', 16 | router, 17 | template: '', 18 | components: { App } 19 | }) 20 | -------------------------------------------------------------------------------- /src/router/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Router from 'vue-router' 3 | import HelloWorld from '@/components/HelloWorld' 4 | 5 | Vue.use(Router) 6 | 7 | export default new Router({ 8 | routes: [ 9 | { 10 | path: '/', 11 | name: 'HelloWorld', 12 | component: HelloWorld 13 | } 14 | ] 15 | }) 16 | -------------------------------------------------------------------------------- /static/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zwhGithub/vue-swiper/2da7306b0b0a3680689ea4e48df6aff50ee11167/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.json 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 | --------------------------------------------------------------------------------