diff --git a/Vue-shopping/.babelrc b/Vue-shopping/.babelrc
new file mode 100644
index 0000000..c06df4d
--- /dev/null
+++ b/Vue-shopping/.babelrc
@@ -0,0 +1,18 @@
+{
+ "presets": [
+ ["env", {
+ "modules": false,
+ "targets": {
+ "browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
+ }
+ }],
+ "stage-2"
+ ],
+ "plugins": ["transform-runtime"],
+ "env": {
+ "test": {
+ "presets": ["env", "stage-2"],
+ "plugins": ["istanbul"]
+ }
+ }
+}
diff --git a/Vue-shopping/.editorconfig b/Vue-shopping/.editorconfig
new file mode 100644
index 0000000..9d08a1a
--- /dev/null
+++ b/Vue-shopping/.editorconfig
@@ -0,0 +1,9 @@
+root = true
+
+[*]
+charset = utf-8
+indent_style = space
+indent_size = 2
+end_of_line = lf
+insert_final_newline = true
+trim_trailing_whitespace = true
diff --git a/Vue-shopping/.gitignore b/Vue-shopping/.gitignore
new file mode 100644
index 0000000..1622bc4
--- /dev/null
+++ b/Vue-shopping/.gitignore
@@ -0,0 +1,13 @@
+.DS_Store
+node_modules/
+dist/
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+# Editor directories and files
+.idea
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
diff --git a/Vue-shopping/.postcssrc.js b/Vue-shopping/.postcssrc.js
new file mode 100644
index 0000000..09948d6
--- /dev/null
+++ b/Vue-shopping/.postcssrc.js
@@ -0,0 +1,8 @@
+// https://github.com/michael-ciniawsky/postcss-load-config
+
+module.exports = {
+ "plugins": {
+ // to edit target browsers: use "browserslist" field in package.json
+ "autoprefixer": {}
+ }
+}
diff --git a/Vue-shopping/README.md b/Vue-shopping/README.md
new file mode 100644
index 0000000..abedefc
--- /dev/null
+++ b/Vue-shopping/README.md
@@ -0,0 +1,34 @@
+# shopping
+
+> Vue2.0+Vue-router+Vuex打造商城购物网站
+
+主要功能:
+
+商品详情
+
+商品添加购物车
+
+商品购买
+
+地址选择
+
+结账(模拟)
+
+
+## Build Setup
+
+``` bash
+# install dependencies
+npm install
+
+# serve with hot reload at localhost:8080
+npm run dev
+
+# build for production with minification
+npm run build
+
+# build for production and view the bundle analyzer report
+npm run build
+```
+
+For detailed explanation on how things work, checkout the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader).
diff --git a/Vue-shopping/build/build.js b/Vue-shopping/build/build.js
new file mode 100644
index 0000000..a645011
--- /dev/null
+++ b/Vue-shopping/build/build.js
@@ -0,0 +1,40 @@
+require('./check-versions')()
+
+process.env.NODE_ENV = 'production'
+
+var ora = require('ora')
+var rm = require('rimraf')
+var path = require('path')
+var chalk = require('chalk')
+var webpack = require('webpack')
+var config = require('../config')
+var webpackConfig = require('./webpack.prod.conf')
+
+var spinner = ora('building for production...')
+spinner.start()
+
+rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
+ if (err) throw err
+ webpack(webpackConfig, function (err, stats) {
+ spinner.stop()
+ if (err) throw err
+ process.stdout.write(stats.toString({
+ colors: true,
+ modules: false,
+ children: false,
+ chunks: false,
+ chunkModules: false
+ }) + '\n\n')
+
+ if (stats.hasErrors()) {
+ console.log(chalk.red(' Build failed with errors.\n'))
+ process.exit(1)
+ }
+
+ console.log(chalk.cyan(' Build complete.\n'))
+ console.log(chalk.yellow(
+ ' Tip: built files are meant to be served over an HTTP server.\n' +
+ ' Opening index.html over file:// won\'t work.\n'
+ ))
+ })
+})
diff --git a/Vue-shopping/build/check-versions.js b/Vue-shopping/build/check-versions.js
new file mode 100644
index 0000000..b3e7e17
--- /dev/null
+++ b/Vue-shopping/build/check-versions.js
@@ -0,0 +1,48 @@
+var chalk = require('chalk')
+var semver = require('semver')
+var packageConfig = require('../package.json')
+var shell = require('shelljs')
+function exec (cmd) {
+ return require('child_process').execSync(cmd).toString().trim()
+}
+
+var versionRequirements = [
+ {
+ name: 'node',
+ currentVersion: semver.clean(process.version),
+ versionRequirement: packageConfig.engines.node
+ }
+]
+
+if (shell.which('npm')) {
+ versionRequirements.push({
+ name: 'npm',
+ currentVersion: exec('npm --version'),
+ versionRequirement: packageConfig.engines.npm
+ })
+}
+
+module.exports = function () {
+ var warnings = []
+ for (var i = 0; i < versionRequirements.length; i++) {
+ var mod = versionRequirements[i]
+ if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) {
+ warnings.push(mod.name + ': ' +
+ chalk.red(mod.currentVersion) + ' should be ' +
+ chalk.green(mod.versionRequirement)
+ )
+ }
+ }
+
+ if (warnings.length) {
+ console.log('')
+ console.log(chalk.yellow('To use this template, you must update following to modules:'))
+ console.log()
+ for (var i = 0; i < warnings.length; i++) {
+ var warning = warnings[i]
+ console.log(' ' + warning)
+ }
+ console.log()
+ process.exit(1)
+ }
+}
diff --git a/Vue-shopping/build/dev-client.js b/Vue-shopping/build/dev-client.js
new file mode 100644
index 0000000..18aa1e2
--- /dev/null
+++ b/Vue-shopping/build/dev-client.js
@@ -0,0 +1,9 @@
+/* eslint-disable */
+require('eventsource-polyfill')
+var hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true')
+
+hotClient.subscribe(function (event) {
+ if (event.action === 'reload') {
+ window.location.reload()
+ }
+})
diff --git a/Vue-shopping/build/dev-server.js b/Vue-shopping/build/dev-server.js
new file mode 100644
index 0000000..28b135c
--- /dev/null
+++ b/Vue-shopping/build/dev-server.js
@@ -0,0 +1,90 @@
+require('./check-versions')()
+
+var config = require('../config')
+if (!process.env.NODE_ENV) {
+ process.env.NODE_ENV = JSON.parse(config.dev.env.NODE_ENV)
+}
+
+var opn = require('opn')
+var path = require('path')
+var express = require('express')
+var webpack = require('webpack')
+var proxyMiddleware = require('http-proxy-middleware')
+var webpackConfig = require('./webpack.dev.conf')
+
+// default port where dev server listens for incoming traffic
+var port = process.env.PORT || config.dev.port
+// automatically open browser, if not set will be false
+var autoOpenBrowser = !!config.dev.autoOpenBrowser
+// Define HTTP proxies to your custom API backend
+// https://github.com/chimurai/http-proxy-middleware
+var proxyTable = config.dev.proxyTable
+
+var app = express()
+var compiler = webpack(webpackConfig)
+
+var devMiddleware = require('webpack-dev-middleware')(compiler, {
+ publicPath: webpackConfig.output.publicPath,
+ quiet: true
+})
+
+var hotMiddleware = require('webpack-hot-middleware')(compiler, {
+ log: false,
+ heartbeat: 2000
+})
+// force page reload when html-webpack-plugin template changes
+compiler.plugin('compilation', function (compilation) {
+ compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) {
+ hotMiddleware.publish({ action: 'reload' })
+ cb()
+ })
+})
+
+// proxy api requests
+Object.keys(proxyTable).forEach(function (context) {
+ var options = proxyTable[context]
+ if (typeof options === 'string') {
+ options = { target: options }
+ }
+ app.use(proxyMiddleware(options.filter || context, options))
+})
+
+// handle fallback for HTML5 history API
+app.use(require('connect-history-api-fallback')())
+
+// serve webpack bundle output
+app.use(devMiddleware)
+
+// enable hot-reload and state-preserving
+// compilation error display
+app.use(hotMiddleware)
+
+// serve pure static assets
+var staticPath = path.posix.join(config.dev.assetsPublicPath, config.dev.assetsSubDirectory)
+app.use(staticPath, express.static('./static'))
+
+var uri = 'http://localhost:' + port
+
+var _resolve
+var readyPromise = new Promise(resolve => {
+ _resolve = resolve
+})
+
+console.log('> Starting dev server...')
+devMiddleware.waitUntilValid(() => {
+ console.log('> Listening at ' + uri + '\n')
+ // when env is testing, don't need open it
+ if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') {
+ opn(uri)
+ }
+ _resolve()
+})
+
+var server = app.listen(port)
+
+module.exports = {
+ ready: readyPromise,
+ close: () => {
+ server.close()
+ }
+}
diff --git a/Vue-shopping/build/utils.js b/Vue-shopping/build/utils.js
new file mode 100644
index 0000000..b1d54b4
--- /dev/null
+++ b/Vue-shopping/build/utils.js
@@ -0,0 +1,71 @@
+var path = require('path')
+var config = require('../config')
+var ExtractTextPlugin = require('extract-text-webpack-plugin')
+
+exports.assetsPath = function (_path) {
+ var assetsSubDirectory = process.env.NODE_ENV === 'production'
+ ? config.build.assetsSubDirectory
+ : config.dev.assetsSubDirectory
+ return path.posix.join(assetsSubDirectory, _path)
+}
+
+exports.cssLoaders = function (options) {
+ options = options || {}
+
+ var cssLoader = {
+ loader: 'css-loader',
+ options: {
+ minimize: process.env.NODE_ENV === 'production',
+ sourceMap: options.sourceMap
+ }
+ }
+
+ // generate loader string to be used with extract text plugin
+ function generateLoaders (loader, loaderOptions) {
+ var loaders = [cssLoader]
+ if (loader) {
+ loaders.push({
+ loader: loader + '-loader',
+ options: Object.assign({}, loaderOptions, {
+ sourceMap: options.sourceMap
+ })
+ })
+ }
+
+ // Extract CSS when that option is specified
+ // (which is the case during production build)
+ if (options.extract) {
+ return ExtractTextPlugin.extract({
+ use: loaders,
+ fallback: 'vue-style-loader'
+ })
+ } else {
+ return ['vue-style-loader'].concat(loaders)
+ }
+ }
+
+ // https://vue-loader.vuejs.org/en/configurations/extract-css.html
+ return {
+ css: generateLoaders(),
+ postcss: generateLoaders(),
+ less: generateLoaders('less'),
+ sass: generateLoaders('sass', { indentedSyntax: true }),
+ scss: generateLoaders('sass'),
+ stylus: generateLoaders('stylus'),
+ styl: generateLoaders('stylus')
+ }
+}
+
+// Generate loaders for standalone style files (outside of .vue)
+exports.styleLoaders = function (options) {
+ var output = []
+ var loaders = exports.cssLoaders(options)
+ for (var extension in loaders) {
+ var loader = loaders[extension]
+ output.push({
+ test: new RegExp('\\.' + extension + '$'),
+ use: loader
+ })
+ }
+ return output
+}
diff --git a/Vue-shopping/build/vue-loader.conf.js b/Vue-shopping/build/vue-loader.conf.js
new file mode 100644
index 0000000..8a346d5
--- /dev/null
+++ b/Vue-shopping/build/vue-loader.conf.js
@@ -0,0 +1,18 @@
+var utils = require('./utils')
+var config = require('../config')
+var isProduction = process.env.NODE_ENV === 'production'
+
+module.exports = {
+ loaders: utils.cssLoaders({
+ sourceMap: isProduction
+ ? config.build.productionSourceMap
+ : config.dev.cssSourceMap,
+ extract: isProduction
+ }),
+ transformToRequire: {
+ video: 'src',
+ source: 'src',
+ img: 'src',
+ image: 'xlink:href'
+ }
+}
diff --git a/Vue-shopping/build/webpack.base.conf.js b/Vue-shopping/build/webpack.base.conf.js
new file mode 100644
index 0000000..e1962aa
--- /dev/null
+++ b/Vue-shopping/build/webpack.base.conf.js
@@ -0,0 +1,66 @@
+var path = require('path')
+var utils = require('./utils')
+var config = require('../config')
+var vueLoaderConfig = require('./vue-loader.conf')
+
+function resolve (dir) {
+ return path.join(__dirname, '..', dir)
+}
+
+module.exports = {
+ entry: {
+ app: './src/main.js'
+ },
+ output: {
+ path: config.build.assetsRoot,
+ filename: '[name].js',
+ publicPath: process.env.NODE_ENV === 'production'
+ ? config.build.assetsPublicPath
+ : config.dev.assetsPublicPath
+ },
+ resolve: {
+ extensions: ['.js', '.vue', '.json'],
+ alias: {
+ 'vue$': 'vue/dist/vue.esm.js',
+ '@': resolve('src'),
+ }
+ },
+ module: {
+ rules: [
+ {
+ test: /\.vue$/,
+ loader: 'vue-loader',
+ options: vueLoaderConfig
+ },
+ {
+ test: /\.js$/,
+ loader: 'babel-loader',
+ include: [resolve('src'), resolve('test')]
+ },
+ {
+ test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
+ loader: 'url-loader',
+ options: {
+ limit: 10000,
+ name: utils.assetsPath('img/[name].[hash:7].[ext]')
+ }
+ },
+ {
+ test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
+ loader: 'url-loader',
+ options: {
+ limit: 10000,
+ name: utils.assetsPath('media/[name].[hash:7].[ext]')
+ }
+ },
+ {
+ test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
+ loader: 'url-loader',
+ options: {
+ limit: 10000,
+ name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
+ }
+ }
+ ]
+ }
+}
diff --git a/Vue-shopping/build/webpack.dev.conf.js b/Vue-shopping/build/webpack.dev.conf.js
new file mode 100644
index 0000000..5470402
--- /dev/null
+++ b/Vue-shopping/build/webpack.dev.conf.js
@@ -0,0 +1,35 @@
+var utils = require('./utils')
+var webpack = require('webpack')
+var config = require('../config')
+var merge = require('webpack-merge')
+var baseWebpackConfig = require('./webpack.base.conf')
+var HtmlWebpackPlugin = require('html-webpack-plugin')
+var FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')
+
+// add hot-reload related code to entry chunks
+Object.keys(baseWebpackConfig.entry).forEach(function (name) {
+ baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name])
+})
+
+module.exports = merge(baseWebpackConfig, {
+ module: {
+ rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap })
+ },
+ // cheap-module-eval-source-map is faster for development
+ devtool: '#cheap-module-eval-source-map',
+ plugins: [
+ new webpack.DefinePlugin({
+ 'process.env': config.dev.env
+ }),
+ // https://github.com/glenjamin/webpack-hot-middleware#installation--usage
+ new webpack.HotModuleReplacementPlugin(),
+ new webpack.NoEmitOnErrorsPlugin(),
+ // https://github.com/ampedandwired/html-webpack-plugin
+ new HtmlWebpackPlugin({
+ filename: 'index.html',
+ template: 'index.html',
+ inject: true
+ }),
+ new FriendlyErrorsPlugin()
+ ]
+})
diff --git a/Vue-shopping/build/webpack.prod.conf.js b/Vue-shopping/build/webpack.prod.conf.js
new file mode 100644
index 0000000..092c304
--- /dev/null
+++ b/Vue-shopping/build/webpack.prod.conf.js
@@ -0,0 +1,122 @@
+var path = require('path')
+var utils = require('./utils')
+var webpack = require('webpack')
+var config = require('../config')
+var merge = require('webpack-merge')
+var baseWebpackConfig = require('./webpack.base.conf')
+var CopyWebpackPlugin = require('copy-webpack-plugin')
+var HtmlWebpackPlugin = require('html-webpack-plugin')
+var ExtractTextPlugin = require('extract-text-webpack-plugin')
+var OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin')
+
+var env = config.build.env
+
+var webpackConfig = merge(baseWebpackConfig, {
+ module: {
+ rules: utils.styleLoaders({
+ sourceMap: config.build.productionSourceMap,
+ extract: true
+ })
+ },
+ devtool: config.build.productionSourceMap ? '#source-map' : false,
+ output: {
+ path: config.build.assetsRoot,
+ filename: utils.assetsPath('js/[name].[chunkhash].js'),
+ chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')
+ },
+ plugins: [
+ // http://vuejs.github.io/vue-loader/en/workflow/production.html
+ new webpack.DefinePlugin({
+ 'process.env': env
+ }),
+ new webpack.optimize.UglifyJsPlugin({
+ compress: {
+ warnings: false
+ },
+ sourceMap: true
+ }),
+ // extract css into its own file
+ new ExtractTextPlugin({
+ filename: utils.assetsPath('css/[name].[contenthash].css')
+ }),
+ // Compress extracted CSS. We are using this plugin so that possible
+ // duplicated CSS from different components can be deduped.
+ new OptimizeCSSPlugin({
+ cssProcessorOptions: {
+ safe: true
+ }
+ }),
+ // generate dist index.html with correct asset hash for caching.
+ // you can customize output by editing /index.html
+ // see https://github.com/ampedandwired/html-webpack-plugin
+ new HtmlWebpackPlugin({
+ filename: config.build.index,
+ template: 'index.html',
+ inject: true,
+ minify: {
+ removeComments: true,
+ collapseWhitespace: true,
+ removeAttributeQuotes: true
+ // more options:
+ // https://github.com/kangax/html-minifier#options-quick-reference
+ },
+ // necessary to consistently work with multiple chunks via CommonsChunkPlugin
+ chunksSortMode: 'dependency'
+ }),
+ // keep module.id stable when vender modules does not change
+ new webpack.HashedModuleIdsPlugin(),
+ // split vendor js into its own file
+ new webpack.optimize.CommonsChunkPlugin({
+ name: 'vendor',
+ minChunks: function (module, count) {
+ // any required modules inside node_modules are extracted to vendor
+ return (
+ module.resource &&
+ /\.js$/.test(module.resource) &&
+ module.resource.indexOf(
+ path.join(__dirname, '../node_modules')
+ ) === 0
+ )
+ }
+ }),
+ // extract webpack runtime and module manifest to its own file in order to
+ // prevent vendor hash from being updated whenever app bundle is updated
+ new webpack.optimize.CommonsChunkPlugin({
+ name: 'manifest',
+ chunks: ['vendor']
+ }),
+ // copy custom static assets
+ new CopyWebpackPlugin([
+ {
+ from: path.resolve(__dirname, '../static'),
+ to: config.build.assetsSubDirectory,
+ ignore: ['.*']
+ }
+ ])
+ ]
+})
+
+if (config.build.productionGzip) {
+ var CompressionWebpackPlugin = require('compression-webpack-plugin')
+
+ webpackConfig.plugins.push(
+ new CompressionWebpackPlugin({
+ asset: '[path].gz[query]',
+ algorithm: 'gzip',
+ test: new RegExp(
+ '\\.(' +
+ config.build.productionGzipExtensions.join('|') +
+ ')$'
+ ),
+ threshold: 10240,
+ minRatio: 0.8
+ })
+ )
+}
+
+if (config.build.bundleAnalyzerReport) {
+ var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
+ webpackConfig.plugins.push(new BundleAnalyzerPlugin())
+}
+
+module.exports = webpackConfig
diff --git a/Vue-shopping/config/dev.env.js b/Vue-shopping/config/dev.env.js
new file mode 100644
index 0000000..efead7c
--- /dev/null
+++ b/Vue-shopping/config/dev.env.js
@@ -0,0 +1,6 @@
+var merge = require('webpack-merge')
+var prodEnv = require('./prod.env')
+
+module.exports = merge(prodEnv, {
+ NODE_ENV: '"development"'
+})
diff --git a/Vue-shopping/config/index.js b/Vue-shopping/config/index.js
new file mode 100644
index 0000000..196da1f
--- /dev/null
+++ b/Vue-shopping/config/index.js
@@ -0,0 +1,38 @@
+// see http://vuejs-templates.github.io/webpack for documentation.
+var path = require('path')
+
+module.exports = {
+ build: {
+ env: require('./prod.env'),
+ index: path.resolve(__dirname, '../dist/index.html'),
+ assetsRoot: path.resolve(__dirname, '../dist'),
+ assetsSubDirectory: 'static',
+ assetsPublicPath: '/',
+ productionSourceMap: true,
+ // Gzip off by default as many popular static hosts such as
+ // Surge or Netlify already gzip all static assets for you.
+ // Before setting to `true`, make sure to:
+ // npm install --save-dev compression-webpack-plugin
+ productionGzip: false,
+ productionGzipExtensions: ['js', 'css'],
+ // Run the build command with an extra argument to
+ // View the bundle analyzer report after build finishes:
+ // `npm run build --report`
+ // Set to `true` or `false` to always turn it on or off
+ bundleAnalyzerReport: process.env.npm_config_report
+ },
+ dev: {
+ env: require('./dev.env'),
+ port: 8080,
+ autoOpenBrowser: true,
+ assetsSubDirectory: 'static',
+ assetsPublicPath: '/',
+ proxyTable: {},
+ // CSS Sourcemaps off by default because relative paths are "buggy"
+ // with this option, according to the CSS-Loader README
+ // (https://github.com/webpack/css-loader#sourcemaps)
+ // In our experience, they generally work as expected,
+ // just be aware of this issue when enabling this option.
+ cssSourceMap: false
+ }
+}
diff --git a/Vue-shopping/config/prod.env.js b/Vue-shopping/config/prod.env.js
new file mode 100644
index 0000000..773d263
--- /dev/null
+++ b/Vue-shopping/config/prod.env.js
@@ -0,0 +1,3 @@
+module.exports = {
+ NODE_ENV: '"production"'
+}
diff --git a/Vue-shopping/index.html b/Vue-shopping/index.html
new file mode 100644
index 0000000..12904bf
--- /dev/null
+++ b/Vue-shopping/index.html
@@ -0,0 +1,12 @@
+
+
+
+
+ 五色鲜-购鲜果首选
+
+
+
+
+
+
+
diff --git a/Vue-shopping/package-lock.json b/Vue-shopping/package-lock.json
new file mode 100644
index 0000000..8079aaf
--- /dev/null
+++ b/Vue-shopping/package-lock.json
@@ -0,0 +1,9259 @@
+{
+ "name": "123",
+ "version": "1.0.0",
+ "lockfileVersion": 1,
+ "requires": true,
+ "dependencies": {
+ "accepts": {
+ "version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
+ "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
+ "dev": true,
+ "requires": {
+ "mime-types": "~2.1.24",
+ "negotiator": "0.6.2"
+ }
+ },
+ "acorn": {
+ "version": "5.7.4",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz",
+ "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==",
+ "dev": true
+ },
+ "acorn-dynamic-import": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz",
+ "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=",
+ "dev": true,
+ "requires": {
+ "acorn": "^4.0.3"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "4.0.13",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
+ "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=",
+ "dev": true
+ }
+ }
+ },
+ "ajv": {
+ "version": "5.5.2",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
+ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
+ "dev": true,
+ "requires": {
+ "co": "^4.6.0",
+ "fast-deep-equal": "^1.0.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.3.0"
+ }
+ },
+ "ajv-keywords": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz",
+ "integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw=",
+ "dev": true
+ },
+ "align-text": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
+ "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2",
+ "longest": "^1.0.1",
+ "repeat-string": "^1.5.2"
+ }
+ },
+ "alphanum-sort": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz",
+ "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=",
+ "dev": true
+ },
+ "ansi-html": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz",
+ "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=",
+ "dev": true
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "anymatch": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
+ "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "dependencies": {
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "aproba": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
+ "dev": true
+ },
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dev": true,
+ "requires": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "arr-diff": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
+ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
+ "dev": true,
+ "requires": {
+ "arr-flatten": "^1.0.1"
+ }
+ },
+ "arr-flatten": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
+ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
+ "dev": true
+ },
+ "arr-union": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
+ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
+ "dev": true,
+ "optional": true
+ },
+ "array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
+ "dev": true
+ },
+ "array-union": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
+ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
+ "dev": true,
+ "requires": {
+ "array-uniq": "^1.0.1"
+ }
+ },
+ "array-uniq": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+ "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
+ "dev": true
+ },
+ "array-unique": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
+ "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
+ "dev": true
+ },
+ "asn1.js": {
+ "version": "4.10.1",
+ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz",
+ "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.11.9",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
+ "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
+ "dev": true
+ }
+ }
+ },
+ "assert": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz",
+ "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==",
+ "dev": true,
+ "requires": {
+ "object-assign": "^4.1.1",
+ "util": "0.10.3"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
+ "dev": true
+ },
+ "util": {
+ "version": "0.10.3",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
+ "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.1"
+ }
+ }
+ }
+ },
+ "assign-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
+ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
+ "dev": true,
+ "optional": true
+ },
+ "async": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
+ "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.14"
+ }
+ },
+ "async-each": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
+ "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==",
+ "dev": true,
+ "optional": true
+ },
+ "async-limiter": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
+ "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==",
+ "dev": true
+ },
+ "async-validator": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npm.taobao.org/async-validator/download/async-validator-1.8.5.tgz",
+ "integrity": "sha1-3D4I7B/Q3dtn5ghC8CwM0c7G1/A=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "6.x"
+ }
+ },
+ "atob": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
+ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
+ "dev": true,
+ "optional": true
+ },
+ "autoprefixer": {
+ "version": "7.2.6",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-7.2.6.tgz",
+ "integrity": "sha512-Iq8TRIB+/9eQ8rbGhcP7ct5cYb/3qjNYAR2SnzLCEcwF6rvVOax8+9+fccgXk4bEhQGjOZd5TLhsksmAdsbGqQ==",
+ "dev": true,
+ "requires": {
+ "browserslist": "^2.11.3",
+ "caniuse-lite": "^1.0.30000805",
+ "normalize-range": "^0.1.2",
+ "num2fraction": "^1.2.2",
+ "postcss": "^6.0.17",
+ "postcss-value-parser": "^3.2.3"
+ }
+ },
+ "axios": {
+ "version": "0.19.2",
+ "resolved": "https://registry.npm.taobao.org/axios/download/axios-0.19.2.tgz?cache=0&sync_timestamp=1594827675434&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faxios%2Fdownload%2Faxios-0.19.2.tgz",
+ "integrity": "sha1-PqNsXYgY0NX4qKl6bTa4bNwAyyc=",
+ "dev": true,
+ "requires": {
+ "follow-redirects": "1.5.10"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz",
+ "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "follow-redirects": {
+ "version": "1.5.10",
+ "resolved": "https://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.5.10.tgz",
+ "integrity": "sha1-e3qfmuov3/NnhqlP9kPtB/T/Xio=",
+ "dev": true,
+ "requires": {
+ "debug": "=3.1.0"
+ }
+ }
+ }
+ },
+ "babel-code-frame": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
+ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "esutils": "^2.0.2",
+ "js-tokens": "^3.0.2"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "babel-core": {
+ "version": "6.26.3",
+ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz",
+ "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==",
+ "dev": true,
+ "requires": {
+ "babel-code-frame": "^6.26.0",
+ "babel-generator": "^6.26.0",
+ "babel-helpers": "^6.24.1",
+ "babel-messages": "^6.23.0",
+ "babel-register": "^6.26.0",
+ "babel-runtime": "^6.26.0",
+ "babel-template": "^6.26.0",
+ "babel-traverse": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "babylon": "^6.18.0",
+ "convert-source-map": "^1.5.1",
+ "debug": "^2.6.9",
+ "json5": "^0.5.1",
+ "lodash": "^4.17.4",
+ "minimatch": "^3.0.4",
+ "path-is-absolute": "^1.0.1",
+ "private": "^0.1.8",
+ "slash": "^1.0.0",
+ "source-map": "^0.5.7"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ }
+ }
+ },
+ "babel-generator": {
+ "version": "6.26.1",
+ "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz",
+ "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==",
+ "dev": true,
+ "requires": {
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "detect-indent": "^4.0.0",
+ "jsesc": "^1.3.0",
+ "lodash": "^4.17.4",
+ "source-map": "^0.5.7",
+ "trim-right": "^1.0.1"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ }
+ }
+ },
+ "babel-helper-bindify-decorators": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz",
+ "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-helper-builder-binary-assignment-operator-visitor": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz",
+ "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=",
+ "dev": true,
+ "requires": {
+ "babel-helper-explode-assignable-expression": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-helper-call-delegate": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz",
+ "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=",
+ "dev": true,
+ "requires": {
+ "babel-helper-hoist-variables": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-helper-define-map": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz",
+ "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=",
+ "dev": true,
+ "requires": {
+ "babel-helper-function-name": "^6.24.1",
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "lodash": "^4.17.4"
+ }
+ },
+ "babel-helper-explode-assignable-expression": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz",
+ "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-helper-explode-class": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz",
+ "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=",
+ "dev": true,
+ "requires": {
+ "babel-helper-bindify-decorators": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-helper-function-name": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz",
+ "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=",
+ "dev": true,
+ "requires": {
+ "babel-helper-get-function-arity": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-helper-get-function-arity": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz",
+ "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-helper-hoist-variables": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz",
+ "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-helper-optimise-call-expression": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz",
+ "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-helper-regex": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz",
+ "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "lodash": "^4.17.4"
+ }
+ },
+ "babel-helper-remap-async-to-generator": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz",
+ "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=",
+ "dev": true,
+ "requires": {
+ "babel-helper-function-name": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-helper-replace-supers": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz",
+ "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=",
+ "dev": true,
+ "requires": {
+ "babel-helper-optimise-call-expression": "^6.24.1",
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-helper-vue-jsx-merge-props": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npm.taobao.org/babel-helper-vue-jsx-merge-props/download/babel-helper-vue-jsx-merge-props-2.0.3.tgz",
+ "integrity": "sha1-Iq69OzOQIyjlEyk6jkmSs4T58bY=",
+ "dev": true
+ },
+ "babel-helpers": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz",
+ "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
+ }
+ },
+ "babel-loader": {
+ "version": "7.1.5",
+ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.5.tgz",
+ "integrity": "sha512-iCHfbieL5d1LfOQeeVJEUyD9rTwBcP/fcEbRCfempxTDuqrKpu0AZjLAQHEQa3Yqyj9ORKe2iHfoj4rHLf7xpw==",
+ "dev": true,
+ "requires": {
+ "find-cache-dir": "^1.0.0",
+ "loader-utils": "^1.0.2",
+ "mkdirp": "^0.5.1"
+ }
+ },
+ "babel-messages": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
+ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-check-es2015-constants": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz",
+ "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-syntax-async-functions": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz",
+ "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=",
+ "dev": true
+ },
+ "babel-plugin-syntax-async-generators": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz",
+ "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=",
+ "dev": true
+ },
+ "babel-plugin-syntax-class-properties": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz",
+ "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=",
+ "dev": true
+ },
+ "babel-plugin-syntax-decorators": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz",
+ "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=",
+ "dev": true
+ },
+ "babel-plugin-syntax-dynamic-import": {
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz",
+ "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=",
+ "dev": true
+ },
+ "babel-plugin-syntax-exponentiation-operator": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz",
+ "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=",
+ "dev": true
+ },
+ "babel-plugin-syntax-object-rest-spread": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz",
+ "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=",
+ "dev": true
+ },
+ "babel-plugin-syntax-trailing-function-commas": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz",
+ "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=",
+ "dev": true
+ },
+ "babel-plugin-transform-async-generator-functions": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz",
+ "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=",
+ "dev": true,
+ "requires": {
+ "babel-helper-remap-async-to-generator": "^6.24.1",
+ "babel-plugin-syntax-async-generators": "^6.5.0",
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-async-to-generator": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz",
+ "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=",
+ "dev": true,
+ "requires": {
+ "babel-helper-remap-async-to-generator": "^6.24.1",
+ "babel-plugin-syntax-async-functions": "^6.8.0",
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-class-properties": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz",
+ "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=",
+ "dev": true,
+ "requires": {
+ "babel-helper-function-name": "^6.24.1",
+ "babel-plugin-syntax-class-properties": "^6.8.0",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-decorators": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz",
+ "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=",
+ "dev": true,
+ "requires": {
+ "babel-helper-explode-class": "^6.24.1",
+ "babel-plugin-syntax-decorators": "^6.13.0",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-arrow-functions": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz",
+ "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-block-scoped-functions": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz",
+ "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-block-scoping": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz",
+ "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.26.0",
+ "babel-template": "^6.26.0",
+ "babel-traverse": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "lodash": "^4.17.4"
+ }
+ },
+ "babel-plugin-transform-es2015-classes": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz",
+ "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=",
+ "dev": true,
+ "requires": {
+ "babel-helper-define-map": "^6.24.1",
+ "babel-helper-function-name": "^6.24.1",
+ "babel-helper-optimise-call-expression": "^6.24.1",
+ "babel-helper-replace-supers": "^6.24.1",
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-computed-properties": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz",
+ "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-destructuring": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz",
+ "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-duplicate-keys": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz",
+ "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-for-of": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz",
+ "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-function-name": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz",
+ "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=",
+ "dev": true,
+ "requires": {
+ "babel-helper-function-name": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-literals": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz",
+ "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-modules-amd": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz",
+ "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-modules-commonjs": {
+ "version": "6.26.2",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz",
+ "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==",
+ "dev": true,
+ "requires": {
+ "babel-plugin-transform-strict-mode": "^6.24.1",
+ "babel-runtime": "^6.26.0",
+ "babel-template": "^6.26.0",
+ "babel-types": "^6.26.0"
+ }
+ },
+ "babel-plugin-transform-es2015-modules-systemjs": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz",
+ "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=",
+ "dev": true,
+ "requires": {
+ "babel-helper-hoist-variables": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-modules-umd": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz",
+ "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-transform-es2015-modules-amd": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-object-super": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz",
+ "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=",
+ "dev": true,
+ "requires": {
+ "babel-helper-replace-supers": "^6.24.1",
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-parameters": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz",
+ "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=",
+ "dev": true,
+ "requires": {
+ "babel-helper-call-delegate": "^6.24.1",
+ "babel-helper-get-function-arity": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-shorthand-properties": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz",
+ "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-spread": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz",
+ "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-sticky-regex": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz",
+ "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=",
+ "dev": true,
+ "requires": {
+ "babel-helper-regex": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-plugin-transform-es2015-template-literals": {
+ "version": "6.22.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz",
+ "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-typeof-symbol": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz",
+ "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-es2015-unicode-regex": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz",
+ "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=",
+ "dev": true,
+ "requires": {
+ "babel-helper-regex": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "regexpu-core": "^2.0.0"
+ }
+ },
+ "babel-plugin-transform-exponentiation-operator": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz",
+ "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=",
+ "dev": true,
+ "requires": {
+ "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1",
+ "babel-plugin-syntax-exponentiation-operator": "^6.8.0",
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-object-rest-spread": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz",
+ "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-syntax-object-rest-spread": "^6.8.0",
+ "babel-runtime": "^6.26.0"
+ }
+ },
+ "babel-plugin-transform-regenerator": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz",
+ "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=",
+ "dev": true,
+ "requires": {
+ "regenerator-transform": "^0.10.0"
+ }
+ },
+ "babel-plugin-transform-runtime": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz",
+ "integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0"
+ }
+ },
+ "babel-plugin-transform-strict-mode": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz",
+ "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
+ }
+ },
+ "babel-preset-env": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz",
+ "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==",
+ "dev": true,
+ "requires": {
+ "babel-plugin-check-es2015-constants": "^6.22.0",
+ "babel-plugin-syntax-trailing-function-commas": "^6.22.0",
+ "babel-plugin-transform-async-to-generator": "^6.22.0",
+ "babel-plugin-transform-es2015-arrow-functions": "^6.22.0",
+ "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0",
+ "babel-plugin-transform-es2015-block-scoping": "^6.23.0",
+ "babel-plugin-transform-es2015-classes": "^6.23.0",
+ "babel-plugin-transform-es2015-computed-properties": "^6.22.0",
+ "babel-plugin-transform-es2015-destructuring": "^6.23.0",
+ "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0",
+ "babel-plugin-transform-es2015-for-of": "^6.23.0",
+ "babel-plugin-transform-es2015-function-name": "^6.22.0",
+ "babel-plugin-transform-es2015-literals": "^6.22.0",
+ "babel-plugin-transform-es2015-modules-amd": "^6.22.0",
+ "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0",
+ "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0",
+ "babel-plugin-transform-es2015-modules-umd": "^6.23.0",
+ "babel-plugin-transform-es2015-object-super": "^6.22.0",
+ "babel-plugin-transform-es2015-parameters": "^6.23.0",
+ "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0",
+ "babel-plugin-transform-es2015-spread": "^6.22.0",
+ "babel-plugin-transform-es2015-sticky-regex": "^6.22.0",
+ "babel-plugin-transform-es2015-template-literals": "^6.22.0",
+ "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0",
+ "babel-plugin-transform-es2015-unicode-regex": "^6.22.0",
+ "babel-plugin-transform-exponentiation-operator": "^6.22.0",
+ "babel-plugin-transform-regenerator": "^6.22.0",
+ "browserslist": "^3.2.6",
+ "invariant": "^2.2.2",
+ "semver": "^5.3.0"
+ },
+ "dependencies": {
+ "browserslist": {
+ "version": "3.2.8",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz",
+ "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==",
+ "dev": true,
+ "requires": {
+ "caniuse-lite": "^1.0.30000844",
+ "electron-to-chromium": "^1.3.47"
+ }
+ }
+ }
+ },
+ "babel-preset-stage-2": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz",
+ "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-syntax-dynamic-import": "^6.18.0",
+ "babel-plugin-transform-class-properties": "^6.24.1",
+ "babel-plugin-transform-decorators": "^6.24.1",
+ "babel-preset-stage-3": "^6.24.1"
+ }
+ },
+ "babel-preset-stage-3": {
+ "version": "6.24.1",
+ "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz",
+ "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=",
+ "dev": true,
+ "requires": {
+ "babel-plugin-syntax-trailing-function-commas": "^6.22.0",
+ "babel-plugin-transform-async-generator-functions": "^6.24.1",
+ "babel-plugin-transform-async-to-generator": "^6.24.1",
+ "babel-plugin-transform-exponentiation-operator": "^6.24.1",
+ "babel-plugin-transform-object-rest-spread": "^6.22.0"
+ }
+ },
+ "babel-register": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz",
+ "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=",
+ "dev": true,
+ "requires": {
+ "babel-core": "^6.26.0",
+ "babel-runtime": "^6.26.0",
+ "core-js": "^2.5.0",
+ "home-or-tmp": "^2.0.0",
+ "lodash": "^4.17.4",
+ "mkdirp": "^0.5.1",
+ "source-map-support": "^0.4.15"
+ }
+ },
+ "babel-runtime": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
+ "dev": true,
+ "requires": {
+ "core-js": "^2.4.0",
+ "regenerator-runtime": "^0.11.0"
+ }
+ },
+ "babel-template": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz",
+ "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.26.0",
+ "babel-traverse": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "babylon": "^6.18.0",
+ "lodash": "^4.17.4"
+ }
+ },
+ "babel-traverse": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
+ "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
+ "dev": true,
+ "requires": {
+ "babel-code-frame": "^6.26.0",
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "babylon": "^6.18.0",
+ "debug": "^2.6.8",
+ "globals": "^9.18.0",
+ "invariant": "^2.2.2",
+ "lodash": "^4.17.4"
+ }
+ },
+ "babel-types": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
+ "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.26.0",
+ "esutils": "^2.0.2",
+ "lodash": "^4.17.4",
+ "to-fast-properties": "^1.0.3"
+ }
+ },
+ "babylon": {
+ "version": "6.18.0",
+ "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
+ "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
+ "dev": true
+ },
+ "balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+ "dev": true
+ },
+ "base": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
+ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "cache-base": "^1.0.1",
+ "class-utils": "^0.3.5",
+ "component-emitter": "^1.2.1",
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.1",
+ "mixin-deep": "^1.2.0",
+ "pascalcase": "^0.1.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true,
+ "optional": true
+ },
+ "kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "base64-js": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz",
+ "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==",
+ "dev": true
+ },
+ "batch-processor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/batch-processor/-/batch-processor-1.0.0.tgz",
+ "integrity": "sha1-dclcMrdI4IUNEMKxaPa9vpiRrOg="
+ },
+ "bfj-node4": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/bfj-node4/-/bfj-node4-5.3.1.tgz",
+ "integrity": "sha512-SOmOsowQWfXc7ybFARsK3C4MCOWzERaOMV/Fl3Tgjs+5dJWyzo3oa127jL44eMbQiAN17J7SvAs2TRxEScTUmg==",
+ "dev": true,
+ "requires": {
+ "bluebird": "^3.5.1",
+ "check-types": "^7.3.0",
+ "tryer": "^1.0.0"
+ }
+ },
+ "big.js": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
+ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
+ "dev": true
+ },
+ "binary-extensions": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz",
+ "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==",
+ "dev": true,
+ "optional": true
+ },
+ "bluebird": {
+ "version": "3.7.2",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
+ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
+ "dev": true
+ },
+ "bn.js": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.2.tgz",
+ "integrity": "sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA==",
+ "dev": true
+ },
+ "body-parser": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
+ "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
+ "dev": true,
+ "requires": {
+ "bytes": "3.1.0",
+ "content-type": "~1.0.4",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "http-errors": "1.7.2",
+ "iconv-lite": "0.4.24",
+ "on-finished": "~2.3.0",
+ "qs": "6.7.0",
+ "raw-body": "2.4.0",
+ "type-is": "~1.6.17"
+ }
+ },
+ "boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
+ "dev": true
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "braces": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
+ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
+ "dev": true,
+ "requires": {
+ "expand-range": "^1.8.1",
+ "preserve": "^0.2.0",
+ "repeat-element": "^1.1.2"
+ }
+ },
+ "brorand": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+ "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=",
+ "dev": true
+ },
+ "browserify-aes": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
+ "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
+ "dev": true,
+ "requires": {
+ "buffer-xor": "^1.0.3",
+ "cipher-base": "^1.0.0",
+ "create-hash": "^1.1.0",
+ "evp_bytestokey": "^1.0.3",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "browserify-cipher": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
+ "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
+ "dev": true,
+ "requires": {
+ "browserify-aes": "^1.0.4",
+ "browserify-des": "^1.0.0",
+ "evp_bytestokey": "^1.0.0"
+ }
+ },
+ "browserify-des": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
+ "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
+ "dev": true,
+ "requires": {
+ "cipher-base": "^1.0.1",
+ "des.js": "^1.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "browserify-rsa": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz",
+ "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.1.0",
+ "randombytes": "^2.0.1"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.11.9",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
+ "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
+ "dev": true
+ }
+ }
+ },
+ "browserify-sign": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.0.tgz",
+ "integrity": "sha512-hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^5.1.1",
+ "browserify-rsa": "^4.0.1",
+ "create-hash": "^1.2.0",
+ "create-hmac": "^1.1.7",
+ "elliptic": "^6.5.2",
+ "inherits": "^2.0.4",
+ "parse-asn1": "^5.1.5",
+ "readable-stream": "^3.6.0",
+ "safe-buffer": "^5.2.0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "dev": true
+ }
+ }
+ },
+ "browserify-zlib": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
+ "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
+ "dev": true,
+ "requires": {
+ "pako": "~1.0.5"
+ }
+ },
+ "browserslist": {
+ "version": "2.11.3",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.11.3.tgz",
+ "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==",
+ "dev": true,
+ "requires": {
+ "caniuse-lite": "^1.0.30000792",
+ "electron-to-chromium": "^1.3.30"
+ }
+ },
+ "buffer": {
+ "version": "4.9.2",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz",
+ "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==",
+ "dev": true,
+ "requires": {
+ "base64-js": "^1.0.2",
+ "ieee754": "^1.1.4",
+ "isarray": "^1.0.0"
+ }
+ },
+ "buffer-from": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
+ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
+ "dev": true
+ },
+ "buffer-xor": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
+ "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=",
+ "dev": true
+ },
+ "builtin-status-codes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
+ "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=",
+ "dev": true
+ },
+ "bytes": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
+ "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
+ "dev": true
+ },
+ "cacache": {
+ "version": "10.0.4",
+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz",
+ "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==",
+ "dev": true,
+ "requires": {
+ "bluebird": "^3.5.1",
+ "chownr": "^1.0.1",
+ "glob": "^7.1.2",
+ "graceful-fs": "^4.1.11",
+ "lru-cache": "^4.1.1",
+ "mississippi": "^2.0.0",
+ "mkdirp": "^0.5.1",
+ "move-concurrently": "^1.0.1",
+ "promise-inflight": "^1.0.1",
+ "rimraf": "^2.6.2",
+ "ssri": "^5.2.4",
+ "unique-filename": "^1.1.0",
+ "y18n": "^4.0.0"
+ }
+ },
+ "cache-base": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
+ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "collection-visit": "^1.0.0",
+ "component-emitter": "^1.2.1",
+ "get-value": "^2.0.6",
+ "has-value": "^1.0.0",
+ "isobject": "^3.0.1",
+ "set-value": "^2.0.0",
+ "to-object-path": "^0.3.0",
+ "union-value": "^1.0.0",
+ "unset-value": "^1.0.0"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "camel-case": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz",
+ "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=",
+ "dev": true,
+ "requires": {
+ "no-case": "^2.2.0",
+ "upper-case": "^1.1.1"
+ }
+ },
+ "camelcase": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
+ "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
+ "dev": true
+ },
+ "caniuse-api": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz",
+ "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=",
+ "dev": true,
+ "requires": {
+ "browserslist": "^1.3.6",
+ "caniuse-db": "^1.0.30000529",
+ "lodash.memoize": "^4.1.2",
+ "lodash.uniq": "^4.5.0"
+ },
+ "dependencies": {
+ "browserslist": {
+ "version": "1.7.7",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz",
+ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=",
+ "dev": true,
+ "requires": {
+ "caniuse-db": "^1.0.30000639",
+ "electron-to-chromium": "^1.2.7"
+ }
+ }
+ }
+ },
+ "caniuse-db": {
+ "version": "1.0.30001105",
+ "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30001105.tgz",
+ "integrity": "sha512-GZytZn8lOiru/Tw+/X5sFxrFt2uPdSvkxVKzRMJyX20JGwfwOuTiRg5IMVF9II8Lao/7C4YeHR8YnZzpTvYXdQ==",
+ "dev": true
+ },
+ "caniuse-lite": {
+ "version": "1.0.30001105",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001105.tgz",
+ "integrity": "sha512-JupOe6+dGMr7E20siZHIZQwYqrllxotAhiaej96y6x00b/48rPt42o+SzOSCPbrpsDWvRja40Hwrj0g0q6LZJg==",
+ "dev": true
+ },
+ "center-align": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
+ "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
+ "dev": true,
+ "requires": {
+ "align-text": "^0.1.3",
+ "lazy-cache": "^1.0.3"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "check-types": {
+ "version": "7.4.0",
+ "resolved": "https://registry.npmjs.org/check-types/-/check-types-7.4.0.tgz",
+ "integrity": "sha512-YbulWHdfP99UfZ73NcUDlNJhEIDgm9Doq9GhpyXbF+7Aegi3CVV7qqMCKTTqJxlvEvnQBp9IA+dxsGN6xK/nSg==",
+ "dev": true
+ },
+ "chokidar": {
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.1.tgz",
+ "integrity": "sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "anymatch": "~3.1.1",
+ "braces": "~3.0.2",
+ "fsevents": "~2.1.2",
+ "glob-parent": "~5.1.0",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.4.0"
+ },
+ "dependencies": {
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "glob-parent": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
+ "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "chownr": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
+ "dev": true
+ },
+ "cipher-base": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
+ "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "clap": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz",
+ "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "class-utils": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
+ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "arr-union": "^3.1.0",
+ "define-property": "^0.2.5",
+ "isobject": "^3.0.0",
+ "static-extend": "^0.1.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "clean-css": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz",
+ "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==",
+ "dev": true,
+ "requires": {
+ "source-map": "~0.6.0"
+ }
+ },
+ "cli-cursor": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
+ "dev": true,
+ "requires": {
+ "restore-cursor": "^2.0.0"
+ }
+ },
+ "cli-spinners": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz",
+ "integrity": "sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==",
+ "dev": true
+ },
+ "cliui": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
+ "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
+ "dev": true,
+ "requires": {
+ "center-align": "^0.1.1",
+ "right-align": "^0.1.1",
+ "wordwrap": "0.0.2"
+ }
+ },
+ "clone": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
+ "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
+ "dev": true
+ },
+ "co": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
+ "dev": true
+ },
+ "coa": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz",
+ "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=",
+ "dev": true,
+ "requires": {
+ "q": "^1.1.2"
+ }
+ },
+ "code-point-at": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
+ "dev": true
+ },
+ "collection-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
+ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "map-visit": "^1.0.0",
+ "object-visit": "^1.0.0"
+ }
+ },
+ "color": {
+ "version": "0.11.4",
+ "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz",
+ "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=",
+ "dev": true,
+ "requires": {
+ "clone": "^1.0.2",
+ "color-convert": "^1.3.0",
+ "color-string": "^0.3.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ },
+ "color-string": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz",
+ "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=",
+ "dev": true,
+ "requires": {
+ "color-name": "^1.0.0"
+ }
+ },
+ "colormin": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz",
+ "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=",
+ "dev": true,
+ "requires": {
+ "color": "^0.11.0",
+ "css-color-names": "0.0.4",
+ "has": "^1.0.1"
+ }
+ },
+ "colors": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
+ "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=",
+ "dev": true
+ },
+ "commander": {
+ "version": "2.17.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz",
+ "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==",
+ "dev": true
+ },
+ "commondir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
+ "dev": true
+ },
+ "component-emitter": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
+ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
+ "dev": true,
+ "optional": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "dev": true
+ },
+ "concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "dev": true,
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ }
+ },
+ "connect-history-api-fallback": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz",
+ "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==",
+ "dev": true
+ },
+ "console-browserify": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz",
+ "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==",
+ "dev": true
+ },
+ "consolidate": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.14.5.tgz",
+ "integrity": "sha1-WiUEe8dvcwcmZ8jLUsmJiI9JTGM=",
+ "dev": true,
+ "requires": {
+ "bluebird": "^3.1.1"
+ }
+ },
+ "constants-browserify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
+ "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=",
+ "dev": true
+ },
+ "content-disposition": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
+ "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "5.1.2"
+ }
+ },
+ "content-type": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
+ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
+ "dev": true
+ },
+ "convert-source-map": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
+ "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.1"
+ }
+ },
+ "cookie": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
+ "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==",
+ "dev": true
+ },
+ "cookie-signature": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=",
+ "dev": true
+ },
+ "copy-concurrently": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz",
+ "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==",
+ "dev": true,
+ "requires": {
+ "aproba": "^1.1.1",
+ "fs-write-stream-atomic": "^1.0.8",
+ "iferr": "^0.1.5",
+ "mkdirp": "^0.5.1",
+ "rimraf": "^2.5.4",
+ "run-queue": "^1.0.0"
+ }
+ },
+ "copy-descriptor": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
+ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
+ "dev": true,
+ "optional": true
+ },
+ "copy-webpack-plugin": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.6.0.tgz",
+ "integrity": "sha512-Y+SQCF+0NoWQryez2zXn5J5knmr9z/9qSQt7fbL78u83rxmigOy8X5+BFn8CFSuX+nKT8gpYwJX68ekqtQt6ZA==",
+ "dev": true,
+ "requires": {
+ "cacache": "^10.0.4",
+ "find-cache-dir": "^1.0.0",
+ "globby": "^7.1.1",
+ "is-glob": "^4.0.0",
+ "loader-utils": "^1.1.0",
+ "minimatch": "^3.0.4",
+ "p-limit": "^1.0.0",
+ "serialize-javascript": "^1.4.0"
+ }
+ },
+ "core-js": {
+ "version": "2.6.11",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz",
+ "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==",
+ "dev": true
+ },
+ "core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
+ "dev": true
+ },
+ "cosmiconfig": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz",
+ "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==",
+ "dev": true,
+ "requires": {
+ "is-directory": "^0.3.1",
+ "js-yaml": "^3.4.3",
+ "minimist": "^1.2.0",
+ "object-assign": "^4.1.0",
+ "os-homedir": "^1.0.1",
+ "parse-json": "^2.2.0",
+ "require-from-string": "^1.1.0"
+ }
+ },
+ "create-ecdh": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz",
+ "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.1.0",
+ "elliptic": "^6.0.0"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.11.9",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
+ "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
+ "dev": true
+ }
+ }
+ },
+ "create-hash": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
+ "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
+ "dev": true,
+ "requires": {
+ "cipher-base": "^1.0.1",
+ "inherits": "^2.0.1",
+ "md5.js": "^1.3.4",
+ "ripemd160": "^2.0.1",
+ "sha.js": "^2.4.0"
+ }
+ },
+ "create-hmac": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
+ "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
+ "dev": true,
+ "requires": {
+ "cipher-base": "^1.0.3",
+ "create-hash": "^1.1.0",
+ "inherits": "^2.0.1",
+ "ripemd160": "^2.0.0",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ }
+ },
+ "crypto-browserify": {
+ "version": "3.12.0",
+ "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
+ "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
+ "dev": true,
+ "requires": {
+ "browserify-cipher": "^1.0.0",
+ "browserify-sign": "^4.0.0",
+ "create-ecdh": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "create-hmac": "^1.1.0",
+ "diffie-hellman": "^5.0.0",
+ "inherits": "^2.0.1",
+ "pbkdf2": "^3.0.3",
+ "public-encrypt": "^4.0.0",
+ "randombytes": "^2.0.0",
+ "randomfill": "^1.0.3"
+ }
+ },
+ "css-color-names": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz",
+ "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=",
+ "dev": true
+ },
+ "css-loader": {
+ "version": "0.28.11",
+ "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.11.tgz",
+ "integrity": "sha512-wovHgjAx8ZIMGSL8pTys7edA1ClmzxHeY6n/d97gg5odgsxEgKjULPR0viqyC+FWMCL9sfqoC/QCUBo62tLvPg==",
+ "dev": true,
+ "requires": {
+ "babel-code-frame": "^6.26.0",
+ "css-selector-tokenizer": "^0.7.0",
+ "cssnano": "^3.10.0",
+ "icss-utils": "^2.1.0",
+ "loader-utils": "^1.0.2",
+ "lodash.camelcase": "^4.3.0",
+ "object-assign": "^4.1.1",
+ "postcss": "^5.0.6",
+ "postcss-modules-extract-imports": "^1.2.0",
+ "postcss-modules-local-by-default": "^1.2.0",
+ "postcss-modules-scope": "^1.1.0",
+ "postcss-modules-values": "^1.3.0",
+ "postcss-value-parser": "^3.3.0",
+ "source-list-map": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "js-base64": "^2.1.9",
+ "source-map": "^0.5.6",
+ "supports-color": "^3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^1.0.0"
+ }
+ }
+ }
+ },
+ "css-select": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
+ "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
+ "dev": true,
+ "requires": {
+ "boolbase": "~1.0.0",
+ "css-what": "2.1",
+ "domutils": "1.5.1",
+ "nth-check": "~1.0.1"
+ }
+ },
+ "css-selector-tokenizer": {
+ "version": "0.7.3",
+ "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz",
+ "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==",
+ "dev": true,
+ "requires": {
+ "cssesc": "^3.0.0",
+ "fastparse": "^1.1.2"
+ }
+ },
+ "css-what": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz",
+ "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==",
+ "dev": true
+ },
+ "cssesc": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
+ "dev": true
+ },
+ "cssnano": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz",
+ "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=",
+ "dev": true,
+ "requires": {
+ "autoprefixer": "^6.3.1",
+ "decamelize": "^1.1.2",
+ "defined": "^1.0.0",
+ "has": "^1.0.1",
+ "object-assign": "^4.0.1",
+ "postcss": "^5.0.14",
+ "postcss-calc": "^5.2.0",
+ "postcss-colormin": "^2.1.8",
+ "postcss-convert-values": "^2.3.4",
+ "postcss-discard-comments": "^2.0.4",
+ "postcss-discard-duplicates": "^2.0.1",
+ "postcss-discard-empty": "^2.0.1",
+ "postcss-discard-overridden": "^0.1.1",
+ "postcss-discard-unused": "^2.2.1",
+ "postcss-filter-plugins": "^2.0.0",
+ "postcss-merge-idents": "^2.1.5",
+ "postcss-merge-longhand": "^2.0.1",
+ "postcss-merge-rules": "^2.0.3",
+ "postcss-minify-font-values": "^1.0.2",
+ "postcss-minify-gradients": "^1.0.1",
+ "postcss-minify-params": "^1.0.4",
+ "postcss-minify-selectors": "^2.0.4",
+ "postcss-normalize-charset": "^1.1.0",
+ "postcss-normalize-url": "^3.0.7",
+ "postcss-ordered-values": "^2.1.0",
+ "postcss-reduce-idents": "^2.2.2",
+ "postcss-reduce-initial": "^1.0.0",
+ "postcss-reduce-transforms": "^1.0.3",
+ "postcss-svgo": "^2.1.1",
+ "postcss-unique-selectors": "^2.0.2",
+ "postcss-value-parser": "^3.2.3",
+ "postcss-zindex": "^2.0.1"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "autoprefixer": {
+ "version": "6.7.7",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz",
+ "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=",
+ "dev": true,
+ "requires": {
+ "browserslist": "^1.7.6",
+ "caniuse-db": "^1.0.30000634",
+ "normalize-range": "^0.1.2",
+ "num2fraction": "^1.2.2",
+ "postcss": "^5.2.16",
+ "postcss-value-parser": "^3.2.3"
+ }
+ },
+ "browserslist": {
+ "version": "1.7.7",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz",
+ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=",
+ "dev": true,
+ "requires": {
+ "caniuse-db": "^1.0.30000639",
+ "electron-to-chromium": "^1.2.7"
+ }
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "js-base64": "^2.1.9",
+ "source-map": "^0.5.6",
+ "supports-color": "^3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^1.0.0"
+ }
+ }
+ }
+ },
+ "csso": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz",
+ "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=",
+ "dev": true,
+ "requires": {
+ "clap": "^1.0.9",
+ "source-map": "^0.5.3"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ }
+ }
+ },
+ "cyclist": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz",
+ "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=",
+ "dev": true
+ },
+ "de-indent": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz",
+ "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=",
+ "dev": true
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+ "dev": true
+ },
+ "decode-uri-component": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
+ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
+ "dev": true,
+ "optional": true
+ },
+ "deepmerge": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npm.taobao.org/deepmerge/download/deepmerge-1.5.2.tgz",
+ "integrity": "sha1-EEmdhohEza1P7ghC34x/bwyVp1M=",
+ "dev": true
+ },
+ "define-property": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
+ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-descriptor": "^1.0.2",
+ "isobject": "^3.0.1"
+ },
+ "dependencies": {
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true,
+ "optional": true
+ },
+ "kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "defined": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
+ "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=",
+ "dev": true
+ },
+ "depd": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
+ "dev": true
+ },
+ "des.js": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz",
+ "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "destroy": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
+ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
+ "dev": true
+ },
+ "detect-indent": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
+ "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
+ "dev": true,
+ "requires": {
+ "repeating": "^2.0.0"
+ }
+ },
+ "diffie-hellman": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
+ "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.1.0",
+ "miller-rabin": "^4.0.0",
+ "randombytes": "^2.0.0"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.11.9",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
+ "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
+ "dev": true
+ }
+ }
+ },
+ "dir-glob": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz",
+ "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==",
+ "dev": true,
+ "requires": {
+ "path-type": "^3.0.0"
+ }
+ },
+ "dom-converter": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz",
+ "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==",
+ "dev": true,
+ "requires": {
+ "utila": "~0.4"
+ }
+ },
+ "dom-serializer": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz",
+ "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==",
+ "dev": true,
+ "requires": {
+ "domelementtype": "^2.0.1",
+ "entities": "^2.0.0"
+ },
+ "dependencies": {
+ "domelementtype": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz",
+ "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==",
+ "dev": true
+ }
+ }
+ },
+ "domain-browser": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
+ "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==",
+ "dev": true
+ },
+ "domelementtype": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
+ "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==",
+ "dev": true
+ },
+ "domhandler": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz",
+ "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==",
+ "dev": true,
+ "requires": {
+ "domelementtype": "1"
+ }
+ },
+ "domutils": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
+ "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
+ "dev": true,
+ "requires": {
+ "dom-serializer": "0",
+ "domelementtype": "1"
+ }
+ },
+ "duplexer": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
+ "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=",
+ "dev": true
+ },
+ "duplexify": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
+ "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0",
+ "stream-shift": "^1.0.0"
+ }
+ },
+ "ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
+ "dev": true
+ },
+ "ejs": {
+ "version": "2.7.4",
+ "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz",
+ "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==",
+ "dev": true
+ },
+ "electron-to-chromium": {
+ "version": "1.3.504",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.504.tgz",
+ "integrity": "sha512-yOXnuPaaLAIZUVuXHYDCo3EeaiEfbFgYWCPH1tBMp+jznCq/zQYKnf6HmkKBmLJ0VES81avl18JZO1lx/XAHOw==",
+ "dev": true
+ },
+ "element-resize-detector": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/element-resize-detector/-/element-resize-detector-1.2.1.tgz",
+ "integrity": "sha512-BdFsPepnQr9fznNPF9nF4vQ457U/ZJXQDSNF1zBe7yaga8v9AdZf3/NElYxFdUh7SitSGt040QygiTo6dtatIw==",
+ "requires": {
+ "batch-processor": "1.0.0"
+ }
+ },
+ "element-ui": {
+ "version": "2.13.2",
+ "resolved": "https://registry.npm.taobao.org/element-ui/download/element-ui-2.13.2.tgz",
+ "integrity": "sha1-WCv0eqqqr+I+oZWPriF6aHrQZEc=",
+ "dev": true,
+ "requires": {
+ "async-validator": "~1.8.1",
+ "babel-helper-vue-jsx-merge-props": "^2.0.0",
+ "deepmerge": "^1.2.0",
+ "normalize-wheel": "^1.0.1",
+ "resize-observer-polyfill": "^1.5.0",
+ "throttle-debounce": "^1.0.1"
+ }
+ },
+ "elliptic": {
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz",
+ "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.4.0",
+ "brorand": "^1.0.1",
+ "hash.js": "^1.0.0",
+ "hmac-drbg": "^1.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.0"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.11.9",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
+ "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
+ "dev": true
+ }
+ }
+ },
+ "emojis-list": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
+ "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
+ "dev": true
+ },
+ "encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
+ "dev": true
+ },
+ "end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "dev": true,
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "enhanced-resolve": {
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz",
+ "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "memory-fs": "^0.4.0",
+ "object-assign": "^4.0.1",
+ "tapable": "^0.2.7"
+ }
+ },
+ "entities": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz",
+ "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==",
+ "dev": true
+ },
+ "errno": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
+ "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==",
+ "dev": true,
+ "requires": {
+ "prr": "~1.0.1"
+ }
+ },
+ "error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dev": true,
+ "requires": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "error-stack-parser": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.6.tgz",
+ "integrity": "sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ==",
+ "dev": true,
+ "requires": {
+ "stackframe": "^1.1.1"
+ }
+ },
+ "escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
+ "dev": true
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true
+ },
+ "esprima": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
+ "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
+ "dev": true
+ },
+ "esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "dev": true
+ },
+ "etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
+ "dev": true
+ },
+ "eventemitter3": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz",
+ "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==",
+ "dev": true
+ },
+ "events": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz",
+ "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==",
+ "dev": true
+ },
+ "eventsource-polyfill": {
+ "version": "0.9.6",
+ "resolved": "https://registry.npmjs.org/eventsource-polyfill/-/eventsource-polyfill-0.9.6.tgz",
+ "integrity": "sha1-EODRh/ERsWfyj9q5GIQ859gY8Tw=",
+ "dev": true
+ },
+ "evp_bytestokey": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
+ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
+ "dev": true,
+ "requires": {
+ "md5.js": "^1.3.4",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "expand-brackets": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
+ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
+ "dev": true,
+ "requires": {
+ "is-posix-bracket": "^0.1.0"
+ }
+ },
+ "expand-range": {
+ "version": "1.8.2",
+ "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
+ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
+ "dev": true,
+ "requires": {
+ "fill-range": "^2.1.0"
+ }
+ },
+ "express": {
+ "version": "4.17.1",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
+ "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
+ "dev": true,
+ "requires": {
+ "accepts": "~1.3.7",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.19.0",
+ "content-disposition": "0.5.3",
+ "content-type": "~1.0.4",
+ "cookie": "0.4.0",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "~1.1.2",
+ "fresh": "0.5.2",
+ "merge-descriptors": "1.0.1",
+ "methods": "~1.1.2",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "path-to-regexp": "0.1.7",
+ "proxy-addr": "~2.0.5",
+ "qs": "6.7.0",
+ "range-parser": "~1.2.1",
+ "safe-buffer": "5.1.2",
+ "send": "0.17.1",
+ "serve-static": "1.14.1",
+ "setprototypeof": "1.1.1",
+ "statuses": "~1.5.0",
+ "type-is": "~1.6.18",
+ "utils-merge": "1.0.1",
+ "vary": "~1.1.2"
+ }
+ },
+ "extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ },
+ "dependencies": {
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-plain-object": "^2.0.4"
+ }
+ }
+ }
+ },
+ "extglob": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
+ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^1.0.0"
+ },
+ "dependencies": {
+ "is-extglob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
+ "dev": true
+ }
+ }
+ },
+ "extract-text-webpack-plugin": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-2.1.2.tgz",
+ "integrity": "sha1-dW7076gVXDaBgz+8NNpTuUF0bWw=",
+ "dev": true,
+ "requires": {
+ "async": "^2.1.2",
+ "loader-utils": "^1.0.2",
+ "schema-utils": "^0.3.0",
+ "webpack-sources": "^1.0.1"
+ }
+ },
+ "fast-deep-equal": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
+ "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=",
+ "dev": true
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+ "dev": true
+ },
+ "fastparse": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz",
+ "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==",
+ "dev": true
+ },
+ "file-loader": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-0.11.2.tgz",
+ "integrity": "sha512-N+uhF3mswIFeziHQjGScJ/yHXYt3DiLBeC+9vWW+WjUBiClMSOlV1YrXQi+7KM2aA3Rn4Bybgv+uXFQbfkzpvg==",
+ "dev": true,
+ "requires": {
+ "loader-utils": "^1.0.2"
+ }
+ },
+ "filename-regex": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
+ "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=",
+ "dev": true
+ },
+ "filesize": {
+ "version": "3.6.1",
+ "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz",
+ "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==",
+ "dev": true
+ },
+ "fill-range": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz",
+ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==",
+ "dev": true,
+ "requires": {
+ "is-number": "^2.1.0",
+ "isobject": "^2.0.0",
+ "randomatic": "^3.0.0",
+ "repeat-element": "^1.1.2",
+ "repeat-string": "^1.5.2"
+ }
+ },
+ "finalhandler": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
+ "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "statuses": "~1.5.0",
+ "unpipe": "~1.0.0"
+ }
+ },
+ "find-cache-dir": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz",
+ "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=",
+ "dev": true,
+ "requires": {
+ "commondir": "^1.0.1",
+ "make-dir": "^1.0.0",
+ "pkg-dir": "^2.0.0"
+ }
+ },
+ "find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "dev": true,
+ "requires": {
+ "locate-path": "^2.0.0"
+ }
+ },
+ "flatten": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz",
+ "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==",
+ "dev": true
+ },
+ "flush-write-stream": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz",
+ "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.3.6"
+ }
+ },
+ "follow-redirects": {
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.12.1.tgz",
+ "integrity": "sha512-tmRv0AVuR7ZyouUHLeNSiO6pqulF7dYa3s19c6t+wz9LD69/uSzdMxJ2S91nTI9U3rt/IldxpzMOFejp6f0hjg==",
+ "dev": true
+ },
+ "for-in": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
+ "dev": true
+ },
+ "for-own": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
+ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
+ "dev": true,
+ "requires": {
+ "for-in": "^1.0.1"
+ }
+ },
+ "forwarded": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
+ "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
+ "dev": true
+ },
+ "fragment-cache": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
+ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "map-cache": "^0.2.2"
+ }
+ },
+ "fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
+ "dev": true
+ },
+ "friendly-errors-webpack-plugin": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.7.0.tgz",
+ "integrity": "sha512-K27M3VK30wVoOarP651zDmb93R9zF28usW4ocaK3mfQeIEI5BPht/EzZs5E8QLLwbLRJQMwscAjDxYPb1FuNiw==",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "error-stack-parser": "^2.0.0",
+ "string-width": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "from2": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
+ "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0"
+ }
+ },
+ "fs-write-stream-atomic": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
+ "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "iferr": "^0.1.5",
+ "imurmurhash": "^0.1.4",
+ "readable-stream": "1 || 2"
+ }
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "dev": true
+ },
+ "fsevents": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
+ "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
+ "dev": true,
+ "optional": true
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "dev": true
+ },
+ "get-caller-file": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
+ "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
+ "dev": true
+ },
+ "get-value": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
+ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
+ "dev": true,
+ "optional": true
+ },
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "glob-base": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
+ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
+ "dev": true,
+ "requires": {
+ "glob-parent": "^2.0.0",
+ "is-glob": "^2.0.0"
+ },
+ "dependencies": {
+ "is-extglob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^1.0.0"
+ }
+ }
+ }
+ },
+ "glob-parent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
+ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
+ "dev": true,
+ "requires": {
+ "is-glob": "^2.0.0"
+ },
+ "dependencies": {
+ "is-extglob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^1.0.0"
+ }
+ }
+ }
+ },
+ "globals": {
+ "version": "9.18.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
+ "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==",
+ "dev": true
+ },
+ "globby": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz",
+ "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=",
+ "dev": true,
+ "requires": {
+ "array-union": "^1.0.1",
+ "dir-glob": "^2.0.0",
+ "glob": "^7.1.2",
+ "ignore": "^3.3.5",
+ "pify": "^3.0.0",
+ "slash": "^1.0.0"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
+ "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
+ "dev": true
+ },
+ "gzip-size": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-4.1.0.tgz",
+ "integrity": "sha1-iuCWJX6r59acRb4rZ8RIEk/7UXw=",
+ "dev": true,
+ "requires": {
+ "duplexer": "^0.1.1",
+ "pify": "^3.0.0"
+ }
+ },
+ "has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1"
+ }
+ },
+ "has-ansi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "has-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
+ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "get-value": "^2.0.6",
+ "has-values": "^1.0.0",
+ "isobject": "^3.0.0"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "has-values": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
+ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-number": "^3.0.0",
+ "kind-of": "^4.0.0"
+ },
+ "dependencies": {
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "kind-of": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "hash-base": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
+ "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.6.0",
+ "safe-buffer": "^5.2.0"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "dev": true
+ }
+ }
+ },
+ "hash-sum": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz",
+ "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=",
+ "dev": true
+ },
+ "hash.js": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
+ "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "minimalistic-assert": "^1.0.1"
+ }
+ },
+ "he": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
+ "dev": true
+ },
+ "hmac-drbg": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+ "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
+ "dev": true,
+ "requires": {
+ "hash.js": "^1.0.3",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.1"
+ }
+ },
+ "home-or-tmp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz",
+ "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=",
+ "dev": true,
+ "requires": {
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.1"
+ }
+ },
+ "hosted-git-info": {
+ "version": "2.8.8",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz",
+ "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==",
+ "dev": true
+ },
+ "html-comment-regex": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz",
+ "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==",
+ "dev": true
+ },
+ "html-entities": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz",
+ "integrity": "sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==",
+ "dev": true
+ },
+ "html-minifier": {
+ "version": "3.5.21",
+ "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz",
+ "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==",
+ "dev": true,
+ "requires": {
+ "camel-case": "3.0.x",
+ "clean-css": "4.2.x",
+ "commander": "2.17.x",
+ "he": "1.2.x",
+ "param-case": "2.1.x",
+ "relateurl": "0.2.x",
+ "uglify-js": "3.4.x"
+ }
+ },
+ "html-webpack-plugin": {
+ "version": "2.30.1",
+ "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-2.30.1.tgz",
+ "integrity": "sha1-f5xCG36pHsRg9WUn1430hO51N9U=",
+ "dev": true,
+ "requires": {
+ "bluebird": "^3.4.7",
+ "html-minifier": "^3.2.3",
+ "loader-utils": "^0.2.16",
+ "lodash": "^4.17.3",
+ "pretty-error": "^2.0.2",
+ "toposort": "^1.0.0"
+ },
+ "dependencies": {
+ "big.js": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
+ "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==",
+ "dev": true
+ },
+ "emojis-list": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
+ "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
+ "dev": true
+ },
+ "loader-utils": {
+ "version": "0.2.17",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz",
+ "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=",
+ "dev": true,
+ "requires": {
+ "big.js": "^3.1.3",
+ "emojis-list": "^2.0.0",
+ "json5": "^0.5.0",
+ "object-assign": "^4.0.1"
+ }
+ }
+ }
+ },
+ "htmlparser2": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz",
+ "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==",
+ "dev": true,
+ "requires": {
+ "domelementtype": "^1.3.1",
+ "domhandler": "^2.3.0",
+ "domutils": "^1.5.1",
+ "entities": "^1.1.1",
+ "inherits": "^2.0.1",
+ "readable-stream": "^3.1.1"
+ },
+ "dependencies": {
+ "entities": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
+ "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==",
+ "dev": true
+ },
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ }
+ }
+ },
+ "http-errors": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
+ "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
+ "dev": true,
+ "requires": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.1.1",
+ "statuses": ">= 1.5.0 < 2",
+ "toidentifier": "1.0.0"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true
+ }
+ }
+ },
+ "http-proxy": {
+ "version": "1.18.1",
+ "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz",
+ "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
+ "dev": true,
+ "requires": {
+ "eventemitter3": "^4.0.0",
+ "follow-redirects": "^1.0.0",
+ "requires-port": "^1.0.0"
+ }
+ },
+ "http-proxy-middleware": {
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz",
+ "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=",
+ "dev": true,
+ "requires": {
+ "http-proxy": "^1.16.2",
+ "is-glob": "^3.1.0",
+ "lodash": "^4.17.2",
+ "micromatch": "^2.3.11"
+ },
+ "dependencies": {
+ "is-glob": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.0"
+ }
+ }
+ }
+ },
+ "https-browserify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
+ "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=",
+ "dev": true
+ },
+ "iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "dev": true,
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "icss-replace-symbols": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz",
+ "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=",
+ "dev": true
+ },
+ "icss-utils": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz",
+ "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=",
+ "dev": true,
+ "requires": {
+ "postcss": "^6.0.1"
+ }
+ },
+ "ieee754": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
+ "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==",
+ "dev": true
+ },
+ "iferr": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz",
+ "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=",
+ "dev": true
+ },
+ "ignore": {
+ "version": "3.3.10",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz",
+ "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==",
+ "dev": true
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+ "dev": true
+ },
+ "indexes-of": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz",
+ "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=",
+ "dev": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true
+ },
+ "interpret": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz",
+ "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==",
+ "dev": true
+ },
+ "invariant": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
+ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
+ "dev": true,
+ "requires": {
+ "loose-envify": "^1.0.0"
+ }
+ },
+ "invert-kv": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
+ "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
+ "dev": true
+ },
+ "ipaddr.js": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
+ "dev": true
+ },
+ "is-absolute-url": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz",
+ "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=",
+ "dev": true
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ }
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+ "dev": true
+ },
+ "is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "binary-extensions": "^2.0.0"
+ }
+ },
+ "is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+ "dev": true
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ }
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "is-directory": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
+ "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=",
+ "dev": true
+ },
+ "is-dotfile": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
+ "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=",
+ "dev": true
+ },
+ "is-equal-shallow": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
+ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
+ "dev": true,
+ "requires": {
+ "is-primitive": "^2.0.0"
+ }
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
+ "dev": true
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "dev": true
+ },
+ "is-finite": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz",
+ "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
+ "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.1"
+ }
+ },
+ "is-number": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
+ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
+ "dev": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ }
+ },
+ "is-plain-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+ "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
+ "dev": true
+ },
+ "is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "isobject": "^3.0.1"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "is-posix-bracket": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
+ "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=",
+ "dev": true
+ },
+ "is-primitive": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
+ "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
+ "dev": true
+ },
+ "is-svg": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz",
+ "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=",
+ "dev": true,
+ "requires": {
+ "html-comment-regex": "^1.1.0"
+ }
+ },
+ "is-utf8": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+ "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
+ "dev": true
+ },
+ "is-windows": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
+ "dev": true,
+ "optional": true
+ },
+ "is-wsl": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
+ "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=",
+ "dev": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "dev": true
+ },
+ "isobject": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+ "dev": true,
+ "requires": {
+ "isarray": "1.0.0"
+ }
+ },
+ "js-base64": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.3.tgz",
+ "integrity": "sha512-fiUvdfCaAXoQTHdKMgTvg6IkecXDcVz6V5rlftUTclF9IKBjMizvSdQaCl/z/6TApDeby5NL+axYou3i0mu1Pg==",
+ "dev": true
+ },
+ "js-calendar": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/js-calendar/-/js-calendar-1.2.3.tgz",
+ "integrity": "sha512-dAA1/Zbp4+c5E+ARCVTIuKepXsNLzSYfzvOimiYD4S5eeP9QuplSHLcdhfqFSwyM1o1u6ku6RRRCyaZ0YAjiBw=="
+ },
+ "js-tokens": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
+ "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz",
+ "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=",
+ "dev": true,
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^2.6.0"
+ }
+ },
+ "jsesc": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
+ "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=",
+ "dev": true
+ },
+ "json-loader": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz",
+ "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==",
+ "dev": true
+ },
+ "json-schema-traverse": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
+ "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
+ "dev": true
+ },
+ "json-stable-stringify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
+ "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
+ "dev": true,
+ "requires": {
+ "jsonify": "~0.0.0"
+ }
+ },
+ "json5": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
+ "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
+ "dev": true
+ },
+ "jsonify": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
+ "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ },
+ "lazy-cache": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
+ "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
+ "dev": true
+ },
+ "lcid": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
+ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
+ "dev": true,
+ "requires": {
+ "invert-kv": "^1.0.0"
+ }
+ },
+ "load-json-file": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^2.2.0",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0",
+ "strip-bom": "^2.0.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ }
+ }
+ },
+ "loader-runner": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz",
+ "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==",
+ "dev": true
+ },
+ "loader-utils": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
+ "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
+ "dev": true,
+ "requires": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^1.0.1"
+ },
+ "dependencies": {
+ "json5": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.0"
+ }
+ }
+ }
+ },
+ "locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "dev": true,
+ "requires": {
+ "p-locate": "^2.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "lodash": {
+ "version": "4.17.19",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
+ "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==",
+ "dev": true
+ },
+ "lodash.camelcase": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
+ "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=",
+ "dev": true
+ },
+ "lodash.memoize": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
+ "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=",
+ "dev": true
+ },
+ "lodash.throttle": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz",
+ "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ="
+ },
+ "lodash.uniq": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
+ "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=",
+ "dev": true
+ },
+ "log-symbols": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
+ "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.0.1"
+ }
+ },
+ "longest": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
+ "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
+ "dev": true
+ },
+ "loose-envify": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "dev": true,
+ "requires": {
+ "js-tokens": "^3.0.0 || ^4.0.0"
+ }
+ },
+ "lower-case": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
+ "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=",
+ "dev": true
+ },
+ "lru-cache": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
+ "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
+ "dev": true,
+ "requires": {
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
+ }
+ },
+ "make-dir": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
+ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
+ "dev": true,
+ "requires": {
+ "pify": "^3.0.0"
+ }
+ },
+ "map-cache": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
+ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
+ "dev": true,
+ "optional": true
+ },
+ "map-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
+ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "object-visit": "^1.0.0"
+ }
+ },
+ "math-expression-evaluator": {
+ "version": "1.2.22",
+ "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.22.tgz",
+ "integrity": "sha512-L0j0tFVZBQQLeEjmWOvDLoRciIY8gQGWahvkztXUal8jH8R5Rlqo9GCvgqvXcy9LQhEWdQCVvzqAbxgYNt4blQ==",
+ "dev": true
+ },
+ "math-random": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz",
+ "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==",
+ "dev": true
+ },
+ "md5.js": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
+ "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
+ "dev": true,
+ "requires": {
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
+ "dev": true
+ },
+ "memory-fs": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
+ "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
+ "dev": true,
+ "requires": {
+ "errno": "^0.1.3",
+ "readable-stream": "^2.0.1"
+ }
+ },
+ "merge-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=",
+ "dev": true
+ },
+ "methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "2.3.11",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
+ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
+ "dev": true,
+ "requires": {
+ "arr-diff": "^2.0.0",
+ "array-unique": "^0.2.1",
+ "braces": "^1.8.2",
+ "expand-brackets": "^0.1.4",
+ "extglob": "^0.3.1",
+ "filename-regex": "^2.0.0",
+ "is-extglob": "^1.0.0",
+ "is-glob": "^2.0.1",
+ "kind-of": "^3.0.2",
+ "normalize-path": "^2.0.1",
+ "object.omit": "^2.0.0",
+ "parse-glob": "^3.0.4",
+ "regex-cache": "^0.4.2"
+ },
+ "dependencies": {
+ "is-extglob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^1.0.0"
+ }
+ }
+ }
+ },
+ "miller-rabin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
+ "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.0.0",
+ "brorand": "^1.0.1"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.11.9",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
+ "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
+ "dev": true
+ }
+ }
+ },
+ "mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
+ "dev": true
+ },
+ "mime-db": {
+ "version": "1.44.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
+ "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==",
+ "dev": true
+ },
+ "mime-types": {
+ "version": "2.1.27",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
+ "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
+ "dev": true,
+ "requires": {
+ "mime-db": "1.44.0"
+ }
+ },
+ "mimic-fn": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
+ "dev": true
+ },
+ "minimalistic-assert": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+ "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
+ "dev": true
+ },
+ "minimalistic-crypto-utils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+ "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
+ "dev": true
+ },
+ "mississippi": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz",
+ "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==",
+ "dev": true,
+ "requires": {
+ "concat-stream": "^1.5.0",
+ "duplexify": "^3.4.2",
+ "end-of-stream": "^1.1.0",
+ "flush-write-stream": "^1.0.0",
+ "from2": "^2.1.0",
+ "parallel-transform": "^1.1.0",
+ "pump": "^2.0.1",
+ "pumpify": "^1.3.3",
+ "stream-each": "^1.1.0",
+ "through2": "^2.0.0"
+ }
+ },
+ "mixin-deep": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
+ "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "for-in": "^1.0.2",
+ "is-extendable": "^1.0.1"
+ },
+ "dependencies": {
+ "is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-plain-object": "^2.0.4"
+ }
+ }
+ }
+ },
+ "mkdirp": {
+ "version": "0.5.5",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
+ "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.5"
+ }
+ },
+ "move-concurrently": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
+ "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=",
+ "dev": true,
+ "requires": {
+ "aproba": "^1.1.1",
+ "copy-concurrently": "^1.0.0",
+ "fs-write-stream-atomic": "^1.0.8",
+ "mkdirp": "^0.5.1",
+ "rimraf": "^2.5.4",
+ "run-queue": "^1.0.3"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
+ "nanomatch": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
+ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "fragment-cache": "^0.2.1",
+ "is-windows": "^1.0.2",
+ "kind-of": "^6.0.2",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
+ "dev": true,
+ "optional": true
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
+ "dev": true,
+ "optional": true
+ },
+ "kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "negotiator": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
+ "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==",
+ "dev": true
+ },
+ "neo-async": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
+ "dev": true
+ },
+ "no-case": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
+ "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==",
+ "dev": true,
+ "requires": {
+ "lower-case": "^1.1.1"
+ }
+ },
+ "node-libs-browser": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz",
+ "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==",
+ "dev": true,
+ "requires": {
+ "assert": "^1.1.1",
+ "browserify-zlib": "^0.2.0",
+ "buffer": "^4.3.0",
+ "console-browserify": "^1.1.0",
+ "constants-browserify": "^1.0.0",
+ "crypto-browserify": "^3.11.0",
+ "domain-browser": "^1.1.1",
+ "events": "^3.0.0",
+ "https-browserify": "^1.0.0",
+ "os-browserify": "^0.3.0",
+ "path-browserify": "0.0.1",
+ "process": "^0.11.10",
+ "punycode": "^1.2.4",
+ "querystring-es3": "^0.2.0",
+ "readable-stream": "^2.3.3",
+ "stream-browserify": "^2.0.1",
+ "stream-http": "^2.7.2",
+ "string_decoder": "^1.0.0",
+ "timers-browserify": "^2.0.4",
+ "tty-browserify": "0.0.0",
+ "url": "^0.11.0",
+ "util": "^0.11.0",
+ "vm-browserify": "^1.0.1"
+ }
+ },
+ "normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ }
+ },
+ "normalize-path": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+ "dev": true,
+ "requires": {
+ "remove-trailing-separator": "^1.0.1"
+ }
+ },
+ "normalize-range": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
+ "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
+ "dev": true
+ },
+ "normalize-url": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz",
+ "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=",
+ "dev": true,
+ "requires": {
+ "object-assign": "^4.0.1",
+ "prepend-http": "^1.0.0",
+ "query-string": "^4.1.0",
+ "sort-keys": "^1.0.0"
+ }
+ },
+ "normalize-wheel": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npm.taobao.org/normalize-wheel/download/normalize-wheel-1.0.1.tgz",
+ "integrity": "sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU=",
+ "dev": true
+ },
+ "nth-check": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
+ "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==",
+ "dev": true,
+ "requires": {
+ "boolbase": "~1.0.0"
+ }
+ },
+ "num2fraction": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
+ "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=",
+ "dev": true
+ },
+ "number-is-nan": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+ "dev": true
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "dev": true
+ },
+ "object-copy": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
+ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "copy-descriptor": "^0.1.0",
+ "define-property": "^0.2.5",
+ "kind-of": "^3.0.3"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ }
+ }
+ },
+ "object-visit": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
+ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "isobject": "^3.0.0"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "object.omit": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
+ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
+ "dev": true,
+ "requires": {
+ "for-own": "^0.1.4",
+ "is-extendable": "^0.1.1"
+ }
+ },
+ "object.pick": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
+ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "isobject": "^3.0.1"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "on-finished": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
+ "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
+ "dev": true,
+ "requires": {
+ "ee-first": "1.1.1"
+ }
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "onetime": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
+ "dev": true,
+ "requires": {
+ "mimic-fn": "^1.0.0"
+ }
+ },
+ "opener": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.1.tgz",
+ "integrity": "sha512-goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==",
+ "dev": true
+ },
+ "opn": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz",
+ "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==",
+ "dev": true,
+ "requires": {
+ "is-wsl": "^1.1.0"
+ }
+ },
+ "optimize-css-assets-webpack-plugin": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-2.0.0.tgz",
+ "integrity": "sha1-UcrnEjDskaTBV2SXFeR0mODLRgs=",
+ "dev": true,
+ "requires": {
+ "underscore": "^1.8.3",
+ "webpack-sources": "^0.1.0"
+ },
+ "dependencies": {
+ "source-list-map": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz",
+ "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "webpack-sources": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-0.1.5.tgz",
+ "integrity": "sha1-qh86vw8NdNtxEcQOUAuE+WZkB1A=",
+ "dev": true,
+ "requires": {
+ "source-list-map": "~0.1.7",
+ "source-map": "~0.5.3"
+ }
+ }
+ }
+ },
+ "ora": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/ora/-/ora-1.4.0.tgz",
+ "integrity": "sha512-iMK1DOQxzzh2MBlVsU42G80mnrvUhqsMh74phHtDlrcTZPK0pH6o7l7DRshK+0YsxDyEuaOkziVdvM3T0QTzpw==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.1.0",
+ "cli-cursor": "^2.1.0",
+ "cli-spinners": "^1.0.1",
+ "log-symbols": "^2.1.0"
+ }
+ },
+ "os-browserify": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
+ "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=",
+ "dev": true
+ },
+ "os-homedir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
+ "dev": true
+ },
+ "os-locale": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
+ "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
+ "dev": true,
+ "requires": {
+ "lcid": "^1.0.0"
+ }
+ },
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+ "dev": true
+ },
+ "p-limit": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
+ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+ "dev": true,
+ "requires": {
+ "p-try": "^1.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+ "dev": true,
+ "requires": {
+ "p-limit": "^1.1.0"
+ }
+ },
+ "p-try": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
+ "dev": true
+ },
+ "pako": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
+ "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
+ "dev": true
+ },
+ "parallel-transform": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz",
+ "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==",
+ "dev": true,
+ "requires": {
+ "cyclist": "^1.0.1",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.1.5"
+ }
+ },
+ "param-case": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz",
+ "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=",
+ "dev": true,
+ "requires": {
+ "no-case": "^2.2.0"
+ }
+ },
+ "parse-asn1": {
+ "version": "5.1.5",
+ "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz",
+ "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==",
+ "dev": true,
+ "requires": {
+ "asn1.js": "^4.0.0",
+ "browserify-aes": "^1.0.0",
+ "create-hash": "^1.1.0",
+ "evp_bytestokey": "^1.0.0",
+ "pbkdf2": "^3.0.3",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "parse-glob": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
+ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
+ "dev": true,
+ "requires": {
+ "glob-base": "^0.3.0",
+ "is-dotfile": "^1.0.0",
+ "is-extglob": "^1.0.0",
+ "is-glob": "^2.0.0"
+ },
+ "dependencies": {
+ "is-extglob": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
+ "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
+ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^1.0.0"
+ }
+ }
+ }
+ },
+ "parse-json": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+ "dev": true,
+ "requires": {
+ "error-ex": "^1.2.0"
+ }
+ },
+ "parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+ "dev": true
+ },
+ "pascalcase": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
+ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
+ "dev": true,
+ "optional": true
+ },
+ "path-browserify": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz",
+ "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==",
+ "dev": true
+ },
+ "path-dirname": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
+ "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
+ "dev": true,
+ "optional": true
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true
+ },
+ "path-parse": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
+ "dev": true
+ },
+ "path-to-regexp": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+ "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=",
+ "dev": true
+ },
+ "path-type": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
+ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
+ "dev": true,
+ "requires": {
+ "pify": "^3.0.0"
+ }
+ },
+ "pbkdf2": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz",
+ "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==",
+ "dev": true,
+ "requires": {
+ "create-hash": "^1.1.2",
+ "create-hmac": "^1.1.4",
+ "ripemd160": "^2.0.1",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ }
+ },
+ "picomatch": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
+ "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
+ "dev": true,
+ "optional": true
+ },
+ "pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true
+ },
+ "pinkie": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+ "dev": true
+ },
+ "pinkie-promise": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+ "dev": true,
+ "requires": {
+ "pinkie": "^2.0.0"
+ }
+ },
+ "pkg-dir": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz",
+ "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=",
+ "dev": true,
+ "requires": {
+ "find-up": "^2.1.0"
+ }
+ },
+ "popper.js": {
+ "version": "1.16.1",
+ "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz",
+ "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ=="
+ },
+ "posix-character-classes": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
+ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
+ "dev": true,
+ "optional": true
+ },
+ "postcss": {
+ "version": "6.0.23",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
+ "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
+ "dev": true,
+ "requires": {
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
+ }
+ },
+ "postcss-calc": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz",
+ "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=",
+ "dev": true,
+ "requires": {
+ "postcss": "^5.0.2",
+ "postcss-message-helpers": "^2.0.0",
+ "reduce-css-calc": "^1.2.6"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "js-base64": "^2.1.9",
+ "source-map": "^0.5.6",
+ "supports-color": "^3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-colormin": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz",
+ "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=",
+ "dev": true,
+ "requires": {
+ "colormin": "^1.0.5",
+ "postcss": "^5.0.13",
+ "postcss-value-parser": "^3.2.3"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "js-base64": "^2.1.9",
+ "source-map": "^0.5.6",
+ "supports-color": "^3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-convert-values": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz",
+ "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=",
+ "dev": true,
+ "requires": {
+ "postcss": "^5.0.11",
+ "postcss-value-parser": "^3.1.2"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "js-base64": "^2.1.9",
+ "source-map": "^0.5.6",
+ "supports-color": "^3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-discard-comments": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz",
+ "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=",
+ "dev": true,
+ "requires": {
+ "postcss": "^5.0.14"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "js-base64": "^2.1.9",
+ "source-map": "^0.5.6",
+ "supports-color": "^3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-discard-duplicates": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz",
+ "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=",
+ "dev": true,
+ "requires": {
+ "postcss": "^5.0.4"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "js-base64": "^2.1.9",
+ "source-map": "^0.5.6",
+ "supports-color": "^3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-discard-empty": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz",
+ "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=",
+ "dev": true,
+ "requires": {
+ "postcss": "^5.0.14"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "js-base64": "^2.1.9",
+ "source-map": "^0.5.6",
+ "supports-color": "^3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-discard-overridden": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz",
+ "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=",
+ "dev": true,
+ "requires": {
+ "postcss": "^5.0.16"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "js-base64": "^2.1.9",
+ "source-map": "^0.5.6",
+ "supports-color": "^3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-discard-unused": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz",
+ "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=",
+ "dev": true,
+ "requires": {
+ "postcss": "^5.0.14",
+ "uniqs": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "js-base64": "^2.1.9",
+ "source-map": "^0.5.6",
+ "supports-color": "^3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-filter-plugins": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz",
+ "integrity": "sha512-T53GVFsdinJhgwm7rg1BzbeBRomOg9y5MBVhGcsV0CxurUdVj1UlPdKtn7aqYA/c/QVkzKMjq2bSV5dKG5+AwQ==",
+ "dev": true,
+ "requires": {
+ "postcss": "^5.0.4"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "js-base64": "^2.1.9",
+ "source-map": "^0.5.6",
+ "supports-color": "^3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-load-config": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-1.2.0.tgz",
+ "integrity": "sha1-U56a/J3chiASHr+djDZz4M5Q0oo=",
+ "dev": true,
+ "requires": {
+ "cosmiconfig": "^2.1.0",
+ "object-assign": "^4.1.0",
+ "postcss-load-options": "^1.2.0",
+ "postcss-load-plugins": "^2.3.0"
+ }
+ },
+ "postcss-load-options": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-load-options/-/postcss-load-options-1.2.0.tgz",
+ "integrity": "sha1-sJixVZ3awt8EvAuzdfmaXP4rbYw=",
+ "dev": true,
+ "requires": {
+ "cosmiconfig": "^2.1.0",
+ "object-assign": "^4.1.0"
+ }
+ },
+ "postcss-load-plugins": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz",
+ "integrity": "sha1-dFdoEWWZrKLwCfrUJrABdQSdjZI=",
+ "dev": true,
+ "requires": {
+ "cosmiconfig": "^2.1.1",
+ "object-assign": "^4.1.0"
+ }
+ },
+ "postcss-merge-idents": {
+ "version": "2.1.7",
+ "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz",
+ "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=",
+ "dev": true,
+ "requires": {
+ "has": "^1.0.1",
+ "postcss": "^5.0.10",
+ "postcss-value-parser": "^3.1.1"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "js-base64": "^2.1.9",
+ "source-map": "^0.5.6",
+ "supports-color": "^3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-merge-longhand": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz",
+ "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=",
+ "dev": true,
+ "requires": {
+ "postcss": "^5.0.4"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "js-base64": "^2.1.9",
+ "source-map": "^0.5.6",
+ "supports-color": "^3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-merge-rules": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz",
+ "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=",
+ "dev": true,
+ "requires": {
+ "browserslist": "^1.5.2",
+ "caniuse-api": "^1.5.2",
+ "postcss": "^5.0.4",
+ "postcss-selector-parser": "^2.2.2",
+ "vendors": "^1.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "browserslist": {
+ "version": "1.7.7",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz",
+ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=",
+ "dev": true,
+ "requires": {
+ "caniuse-db": "^1.0.30000639",
+ "electron-to-chromium": "^1.2.7"
+ }
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "js-base64": "^2.1.9",
+ "source-map": "^0.5.6",
+ "supports-color": "^3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-message-helpers": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz",
+ "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=",
+ "dev": true
+ },
+ "postcss-minify-font-values": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz",
+ "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=",
+ "dev": true,
+ "requires": {
+ "object-assign": "^4.0.1",
+ "postcss": "^5.0.4",
+ "postcss-value-parser": "^3.0.2"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "js-base64": "^2.1.9",
+ "source-map": "^0.5.6",
+ "supports-color": "^3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-minify-gradients": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz",
+ "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=",
+ "dev": true,
+ "requires": {
+ "postcss": "^5.0.12",
+ "postcss-value-parser": "^3.3.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "js-base64": "^2.1.9",
+ "source-map": "^0.5.6",
+ "supports-color": "^3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-minify-params": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz",
+ "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=",
+ "dev": true,
+ "requires": {
+ "alphanum-sort": "^1.0.1",
+ "postcss": "^5.0.2",
+ "postcss-value-parser": "^3.0.2",
+ "uniqs": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "js-base64": "^2.1.9",
+ "source-map": "^0.5.6",
+ "supports-color": "^3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-minify-selectors": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz",
+ "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=",
+ "dev": true,
+ "requires": {
+ "alphanum-sort": "^1.0.2",
+ "has": "^1.0.1",
+ "postcss": "^5.0.14",
+ "postcss-selector-parser": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "js-base64": "^2.1.9",
+ "source-map": "^0.5.6",
+ "supports-color": "^3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-modules-extract-imports": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz",
+ "integrity": "sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw==",
+ "dev": true,
+ "requires": {
+ "postcss": "^6.0.1"
+ }
+ },
+ "postcss-modules-local-by-default": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz",
+ "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=",
+ "dev": true,
+ "requires": {
+ "css-selector-tokenizer": "^0.7.0",
+ "postcss": "^6.0.1"
+ }
+ },
+ "postcss-modules-scope": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz",
+ "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=",
+ "dev": true,
+ "requires": {
+ "css-selector-tokenizer": "^0.7.0",
+ "postcss": "^6.0.1"
+ }
+ },
+ "postcss-modules-values": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz",
+ "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=",
+ "dev": true,
+ "requires": {
+ "icss-replace-symbols": "^1.1.0",
+ "postcss": "^6.0.1"
+ }
+ },
+ "postcss-normalize-charset": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz",
+ "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=",
+ "dev": true,
+ "requires": {
+ "postcss": "^5.0.5"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "js-base64": "^2.1.9",
+ "source-map": "^0.5.6",
+ "supports-color": "^3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-normalize-url": {
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz",
+ "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=",
+ "dev": true,
+ "requires": {
+ "is-absolute-url": "^2.0.0",
+ "normalize-url": "^1.4.0",
+ "postcss": "^5.0.14",
+ "postcss-value-parser": "^3.2.3"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "js-base64": "^2.1.9",
+ "source-map": "^0.5.6",
+ "supports-color": "^3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-ordered-values": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz",
+ "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=",
+ "dev": true,
+ "requires": {
+ "postcss": "^5.0.4",
+ "postcss-value-parser": "^3.0.1"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "js-base64": "^2.1.9",
+ "source-map": "^0.5.6",
+ "supports-color": "^3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-reduce-idents": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz",
+ "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=",
+ "dev": true,
+ "requires": {
+ "postcss": "^5.0.4",
+ "postcss-value-parser": "^3.0.2"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "js-base64": "^2.1.9",
+ "source-map": "^0.5.6",
+ "supports-color": "^3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-reduce-initial": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz",
+ "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=",
+ "dev": true,
+ "requires": {
+ "postcss": "^5.0.4"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "js-base64": "^2.1.9",
+ "source-map": "^0.5.6",
+ "supports-color": "^3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-reduce-transforms": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz",
+ "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=",
+ "dev": true,
+ "requires": {
+ "has": "^1.0.1",
+ "postcss": "^5.0.8",
+ "postcss-value-parser": "^3.0.1"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "js-base64": "^2.1.9",
+ "source-map": "^0.5.6",
+ "supports-color": "^3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-selector-parser": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz",
+ "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=",
+ "dev": true,
+ "requires": {
+ "flatten": "^1.0.2",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ }
+ },
+ "postcss-svgo": {
+ "version": "2.1.6",
+ "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz",
+ "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=",
+ "dev": true,
+ "requires": {
+ "is-svg": "^2.0.0",
+ "postcss": "^5.0.14",
+ "postcss-value-parser": "^3.2.3",
+ "svgo": "^0.7.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "js-base64": "^2.1.9",
+ "source-map": "^0.5.6",
+ "supports-color": "^3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-unique-selectors": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz",
+ "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=",
+ "dev": true,
+ "requires": {
+ "alphanum-sort": "^1.0.1",
+ "postcss": "^5.0.4",
+ "uniqs": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "js-base64": "^2.1.9",
+ "source-map": "^0.5.6",
+ "supports-color": "^3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^1.0.0"
+ }
+ }
+ }
+ },
+ "postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true
+ },
+ "postcss-zindex": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz",
+ "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=",
+ "dev": true,
+ "requires": {
+ "has": "^1.0.1",
+ "postcss": "^5.0.4",
+ "uniqs": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "dev": true
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "dev": true
+ }
+ }
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "postcss": {
+ "version": "5.2.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
+ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
+ "dev": true,
+ "requires": {
+ "chalk": "^1.1.3",
+ "js-base64": "^2.1.9",
+ "source-map": "^0.5.6",
+ "supports-color": "^3.2.3"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^1.0.0"
+ }
+ }
+ }
+ },
+ "prepend-http": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
+ "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
+ "dev": true
+ },
+ "preserve": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
+ "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=",
+ "dev": true
+ },
+ "prettier": {
+ "version": "1.19.1",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz",
+ "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==",
+ "dev": true
+ },
+ "pretty-error": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz",
+ "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=",
+ "dev": true,
+ "requires": {
+ "renderkid": "^2.0.1",
+ "utila": "~0.4"
+ }
+ },
+ "private": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
+ "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==",
+ "dev": true
+ },
+ "process": {
+ "version": "0.11.10",
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+ "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=",
+ "dev": true
+ },
+ "process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
+ "dev": true
+ },
+ "promise-inflight": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
+ "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
+ "dev": true
+ },
+ "proxy-addr": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
+ "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
+ "dev": true,
+ "requires": {
+ "forwarded": "~0.1.2",
+ "ipaddr.js": "1.9.1"
+ }
+ },
+ "prr": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
+ "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
+ "dev": true
+ },
+ "pseudomap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
+ "dev": true
+ },
+ "public-encrypt": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",
+ "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==",
+ "dev": true,
+ "requires": {
+ "bn.js": "^4.1.0",
+ "browserify-rsa": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "parse-asn1": "^5.0.0",
+ "randombytes": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.11.9",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
+ "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
+ "dev": true
+ }
+ }
+ },
+ "pump": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
+ "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "pumpify": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
+ "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
+ "dev": true,
+ "requires": {
+ "duplexify": "^3.6.0",
+ "inherits": "^2.0.3",
+ "pump": "^2.0.0"
+ }
+ },
+ "punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
+ "dev": true
+ },
+ "q": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
+ "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=",
+ "dev": true
+ },
+ "qs": {
+ "version": "6.7.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
+ "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
+ "dev": true
+ },
+ "query-string": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz",
+ "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=",
+ "dev": true,
+ "requires": {
+ "object-assign": "^4.1.0",
+ "strict-uri-encode": "^1.0.0"
+ }
+ },
+ "querystring": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
+ "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=",
+ "dev": true
+ },
+ "querystring-es3": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
+ "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=",
+ "dev": true
+ },
+ "randomatic": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz",
+ "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==",
+ "dev": true,
+ "requires": {
+ "is-number": "^4.0.0",
+ "kind-of": "^6.0.0",
+ "math-random": "^1.0.1"
+ },
+ "dependencies": {
+ "is-number": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz",
+ "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "dev": true
+ }
+ }
+ },
+ "randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "randomfill": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
+ "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
+ "dev": true,
+ "requires": {
+ "randombytes": "^2.0.5",
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
+ "dev": true
+ },
+ "raw-body": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
+ "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
+ "dev": true,
+ "requires": {
+ "bytes": "3.1.0",
+ "http-errors": "1.7.2",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
+ }
+ },
+ "read-pkg": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+ "dev": true,
+ "requires": {
+ "load-json-file": "^1.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^1.0.0"
+ },
+ "dependencies": {
+ "path-type": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "dev": true
+ }
+ }
+ },
+ "read-pkg-up": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+ "dev": true,
+ "requires": {
+ "find-up": "^1.0.0",
+ "read-pkg": "^1.0.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+ "dev": true,
+ "requires": {
+ "path-exists": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "path-exists": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+ "dev": true,
+ "requires": {
+ "pinkie-promise": "^2.0.0"
+ }
+ }
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "dev": true,
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "readdirp": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz",
+ "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "picomatch": "^2.2.1"
+ }
+ },
+ "rechoir": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
+ "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
+ "dev": true,
+ "requires": {
+ "resolve": "^1.1.6"
+ }
+ },
+ "reduce-css-calc": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz",
+ "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^0.4.2",
+ "math-expression-evaluator": "^1.2.14",
+ "reduce-function-call": "^1.0.1"
+ },
+ "dependencies": {
+ "balanced-match": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
+ "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=",
+ "dev": true
+ }
+ }
+ },
+ "reduce-function-call": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.3.tgz",
+ "integrity": "sha512-Hl/tuV2VDgWgCSEeWMLwxLZqX7OK59eU1guxXsRKTAyeYimivsKdtcV4fu3r710tpG5GmDKDhQ0HSZLExnNmyQ==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "regenerate": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz",
+ "integrity": "sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A==",
+ "dev": true
+ },
+ "regenerator-runtime": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
+ "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
+ "dev": true
+ },
+ "regenerator-transform": {
+ "version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz",
+ "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==",
+ "dev": true,
+ "requires": {
+ "babel-runtime": "^6.18.0",
+ "babel-types": "^6.19.0",
+ "private": "^0.1.6"
+ }
+ },
+ "regex-cache": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
+ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
+ "dev": true,
+ "requires": {
+ "is-equal-shallow": "^0.1.3"
+ }
+ },
+ "regex-not": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
+ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "extend-shallow": "^3.0.2",
+ "safe-regex": "^1.1.0"
+ }
+ },
+ "regexpu-core": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz",
+ "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=",
+ "dev": true,
+ "requires": {
+ "regenerate": "^1.2.1",
+ "regjsgen": "^0.2.0",
+ "regjsparser": "^0.1.4"
+ }
+ },
+ "regjsgen": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
+ "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=",
+ "dev": true
+ },
+ "regjsparser": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
+ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
+ "dev": true,
+ "requires": {
+ "jsesc": "~0.5.0"
+ },
+ "dependencies": {
+ "jsesc": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
+ "dev": true
+ }
+ }
+ },
+ "relateurl": {
+ "version": "0.2.7",
+ "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
+ "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=",
+ "dev": true
+ },
+ "remove-trailing-separator": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+ "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
+ "dev": true
+ },
+ "renderkid": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.3.tgz",
+ "integrity": "sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA==",
+ "dev": true,
+ "requires": {
+ "css-select": "^1.1.0",
+ "dom-converter": "^0.2",
+ "htmlparser2": "^3.3.0",
+ "strip-ansi": "^3.0.0",
+ "utila": "^0.4.0"
+ }
+ },
+ "repeat-element": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz",
+ "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==",
+ "dev": true
+ },
+ "repeat-string": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
+ "dev": true
+ },
+ "repeating": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
+ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
+ "dev": true,
+ "requires": {
+ "is-finite": "^1.0.0"
+ }
+ },
+ "require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
+ "dev": true
+ },
+ "require-from-string": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz",
+ "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=",
+ "dev": true
+ },
+ "require-main-filename": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
+ "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
+ "dev": true
+ },
+ "requires-port": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
+ "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
+ "dev": true
+ },
+ "resize-observer-polyfill": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npm.taobao.org/resize-observer-polyfill/download/resize-observer-polyfill-1.5.1.tgz",
+ "integrity": "sha1-DpAg3T0hAkRY1OvSfiPkAmmBBGQ=",
+ "dev": true
+ },
+ "resolve": {
+ "version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
+ "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
+ "dev": true,
+ "requires": {
+ "path-parse": "^1.0.6"
+ }
+ },
+ "resolve-url": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
+ "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
+ "dev": true,
+ "optional": true
+ },
+ "restore-cursor": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
+ "dev": true,
+ "requires": {
+ "onetime": "^2.0.0",
+ "signal-exit": "^3.0.2"
+ }
+ },
+ "ret": {
+ "version": "0.1.15",
+ "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
+ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
+ "dev": true,
+ "optional": true
+ },
+ "right-align": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
+ "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
+ "dev": true,
+ "requires": {
+ "align-text": "^0.1.1"
+ }
+ },
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "ripemd160": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
+ "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
+ "dev": true,
+ "requires": {
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1"
+ }
+ },
+ "run-queue": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz",
+ "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=",
+ "dev": true,
+ "requires": {
+ "aproba": "^1.1.1"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true
+ },
+ "safe-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
+ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "ret": "~0.1.10"
+ }
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "dev": true
+ },
+ "sax": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
+ "dev": true
+ },
+ "schema-utils": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz",
+ "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=",
+ "dev": true,
+ "requires": {
+ "ajv": "^5.0.0"
+ }
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ },
+ "send": {
+ "version": "0.17.1",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
+ "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
+ "dev": true,
+ "requires": {
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "destroy": "~1.0.4",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "~1.7.2",
+ "mime": "1.6.0",
+ "ms": "2.1.1",
+ "on-finished": "~2.3.0",
+ "range-parser": "~1.2.1",
+ "statuses": "~1.5.0"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+ "dev": true
+ }
+ }
+ },
+ "serialize-javascript": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz",
+ "integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==",
+ "dev": true
+ },
+ "serve-static": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
+ "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
+ "dev": true,
+ "requires": {
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.3",
+ "send": "0.17.1"
+ }
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
+ "dev": true
+ },
+ "set-value": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
+ "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-extendable": "^0.1.1",
+ "is-plain-object": "^2.0.3",
+ "split-string": "^3.0.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "setimmediate": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+ "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
+ "dev": true
+ },
+ "setprototypeof": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
+ "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==",
+ "dev": true
+ },
+ "sha.js": {
+ "version": "2.4.11",
+ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
+ "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
+ "dev": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "shelljs": {
+ "version": "0.7.8",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz",
+ "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=",
+ "dev": true,
+ "requires": {
+ "glob": "^7.0.0",
+ "interpret": "^1.0.0",
+ "rechoir": "^0.6.2"
+ }
+ },
+ "signal-exit": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
+ "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==",
+ "dev": true
+ },
+ "slash": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
+ "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
+ "dev": true
+ },
+ "snapdragon": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
+ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "base": "^0.11.1",
+ "debug": "^2.2.0",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "map-cache": "^0.2.2",
+ "source-map": "^0.5.6",
+ "source-map-resolve": "^0.5.0",
+ "use": "^3.1.0"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "snapdragon-node": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
+ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.0",
+ "snapdragon-util": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true,
+ "optional": true
+ },
+ "kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "snapdragon-util": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
+ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "kind-of": "^3.2.0"
+ }
+ },
+ "sort-keys": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
+ "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=",
+ "dev": true,
+ "requires": {
+ "is-plain-obj": "^1.0.0"
+ }
+ },
+ "source-list-map": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz",
+ "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ },
+ "source-map-resolve": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
+ "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "atob": "^2.1.2",
+ "decode-uri-component": "^0.2.0",
+ "resolve-url": "^0.2.1",
+ "source-map-url": "^0.4.0",
+ "urix": "^0.1.0"
+ }
+ },
+ "source-map-support": {
+ "version": "0.4.18",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
+ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
+ "dev": true,
+ "requires": {
+ "source-map": "^0.5.6"
+ },
+ "dependencies": {
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ }
+ }
+ },
+ "source-map-url": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz",
+ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=",
+ "dev": true,
+ "optional": true
+ },
+ "spdx-correct": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
+ "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==",
+ "dev": true,
+ "requires": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-exceptions": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
+ "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==",
+ "dev": true
+ },
+ "spdx-expression-parse": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+ "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "dev": true,
+ "requires": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-license-ids": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz",
+ "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==",
+ "dev": true
+ },
+ "split-string": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
+ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "extend-shallow": "^3.0.0"
+ }
+ },
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+ "dev": true
+ },
+ "ssri": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz",
+ "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "stackframe": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.0.tgz",
+ "integrity": "sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA==",
+ "dev": true
+ },
+ "static-extend": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
+ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "define-property": "^0.2.5",
+ "object-copy": "^0.1.0"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ }
+ }
+ },
+ "statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
+ "dev": true
+ },
+ "stream-browserify": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz",
+ "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==",
+ "dev": true,
+ "requires": {
+ "inherits": "~2.0.1",
+ "readable-stream": "^2.0.2"
+ }
+ },
+ "stream-each": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz",
+ "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==",
+ "dev": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "stream-shift": "^1.0.0"
+ }
+ },
+ "stream-http": {
+ "version": "2.8.3",
+ "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz",
+ "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==",
+ "dev": true,
+ "requires": {
+ "builtin-status-codes": "^3.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.3.6",
+ "to-arraybuffer": "^1.0.0",
+ "xtend": "^4.0.0"
+ }
+ },
+ "stream-shift": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz",
+ "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==",
+ "dev": true
+ },
+ "strict-uri-encode": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
+ "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=",
+ "dev": true
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ }
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ },
+ "strip-bom": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+ "dev": true,
+ "requires": {
+ "is-utf8": "^0.2.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ },
+ "svgo": {
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz",
+ "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=",
+ "dev": true,
+ "requires": {
+ "coa": "~1.0.1",
+ "colors": "~1.1.2",
+ "csso": "~2.3.1",
+ "js-yaml": "~3.7.0",
+ "mkdirp": "~0.5.1",
+ "sax": "~1.2.1",
+ "whet.extend": "~0.9.9"
+ }
+ },
+ "tapable": {
+ "version": "0.2.9",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.9.tgz",
+ "integrity": "sha512-2wsvQ+4GwBvLPLWsNfLCDYGsW6xb7aeC6utq2Qh0PFwgEy7K7dsma9Jsmb2zSQj7GvYAyUGSntLtsv++GmgL1A==",
+ "dev": true
+ },
+ "throttle-debounce": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npm.taobao.org/throttle-debounce/download/throttle-debounce-1.1.0.tgz",
+ "integrity": "sha1-UYU9o3vmihVctugns1FKPEIuic0=",
+ "dev": true
+ },
+ "through2": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "dev": true,
+ "requires": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ },
+ "time-stamp": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-2.2.0.tgz",
+ "integrity": "sha512-zxke8goJQpBeEgD82CXABeMh0LSJcj7CXEd0OHOg45HgcofF7pxNwZm9+RknpxpDhwN4gFpySkApKfFYfRQnUA==",
+ "dev": true
+ },
+ "timers-browserify": {
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz",
+ "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==",
+ "dev": true,
+ "requires": {
+ "setimmediate": "^1.0.4"
+ }
+ },
+ "tinycolor2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz",
+ "integrity": "sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g="
+ },
+ "to-arraybuffer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
+ "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=",
+ "dev": true
+ },
+ "to-fast-properties": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
+ "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
+ "dev": true
+ },
+ "to-object-path": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
+ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ }
+ },
+ "to-regex": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
+ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "regex-not": "^1.0.2",
+ "safe-regex": "^1.1.0"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ },
+ "dependencies": {
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "toidentifier": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
+ "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==",
+ "dev": true
+ },
+ "toposort": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz",
+ "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=",
+ "dev": true
+ },
+ "trim-right": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
+ "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
+ "dev": true
+ },
+ "tryer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz",
+ "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==",
+ "dev": true
+ },
+ "tty-browserify": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
+ "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=",
+ "dev": true
+ },
+ "type-is": {
+ "version": "1.6.18",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+ "dev": true,
+ "requires": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
+ }
+ },
+ "typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
+ "dev": true
+ },
+ "uglify-js": {
+ "version": "3.4.10",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz",
+ "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==",
+ "dev": true,
+ "requires": {
+ "commander": "~2.19.0",
+ "source-map": "~0.6.1"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.19.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz",
+ "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==",
+ "dev": true
+ }
+ }
+ },
+ "uglify-to-browserify": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
+ "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
+ "dev": true,
+ "optional": true
+ },
+ "underscore": {
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.10.2.tgz",
+ "integrity": "sha512-N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg==",
+ "dev": true
+ },
+ "union-value": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
+ "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "arr-union": "^3.1.0",
+ "get-value": "^2.0.6",
+ "is-extendable": "^0.1.1",
+ "set-value": "^2.0.1"
+ }
+ },
+ "uniq": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz",
+ "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=",
+ "dev": true
+ },
+ "uniqs": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz",
+ "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=",
+ "dev": true
+ },
+ "unique-filename": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
+ "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==",
+ "dev": true,
+ "requires": {
+ "unique-slug": "^2.0.0"
+ }
+ },
+ "unique-slug": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz",
+ "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==",
+ "dev": true,
+ "requires": {
+ "imurmurhash": "^0.1.4"
+ }
+ },
+ "unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
+ "dev": true
+ },
+ "unset-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
+ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "has-value": "^0.3.1",
+ "isobject": "^3.0.0"
+ },
+ "dependencies": {
+ "has-value": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
+ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "get-value": "^2.0.3",
+ "has-values": "^0.1.4",
+ "isobject": "^2.0.0"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "isarray": "1.0.0"
+ }
+ }
+ }
+ },
+ "has-values": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
+ "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
+ "dev": true,
+ "optional": true
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "upath": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
+ "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==",
+ "dev": true,
+ "optional": true
+ },
+ "upper-case": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz",
+ "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=",
+ "dev": true
+ },
+ "urix": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
+ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
+ "dev": true,
+ "optional": true
+ },
+ "url": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
+ "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
+ "dev": true,
+ "requires": {
+ "punycode": "1.3.2",
+ "querystring": "0.2.0"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
+ "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=",
+ "dev": true
+ }
+ }
+ },
+ "url-loader": {
+ "version": "0.5.9",
+ "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-0.5.9.tgz",
+ "integrity": "sha512-B7QYFyvv+fOBqBVeefsxv6koWWtjmHaMFT6KZWti4KRw8YUD/hOU+3AECvXuzyVawIBx3z7zQRejXCDSO5kk1Q==",
+ "dev": true,
+ "requires": {
+ "loader-utils": "^1.0.2",
+ "mime": "1.3.x"
+ },
+ "dependencies": {
+ "mime": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.6.tgz",
+ "integrity": "sha1-WR2E02U6awtKO5343lqoEI5y5eA=",
+ "dev": true
+ }
+ }
+ },
+ "use": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
+ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
+ "dev": true,
+ "optional": true
+ },
+ "util": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz",
+ "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==",
+ "dev": true,
+ "requires": {
+ "inherits": "2.0.3"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true
+ }
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+ "dev": true
+ },
+ "utila": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz",
+ "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=",
+ "dev": true
+ },
+ "utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
+ "dev": true
+ },
+ "v-click-outside-x": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/v-click-outside-x/-/v-click-outside-x-3.7.1.tgz",
+ "integrity": "sha512-WmUgmcIXr9clVpm1AYS/FgHtcDicfnfoxgQCNg4O6vfk9GVnxA0vSqO321ogUo0b7czYTidj7fQENvWFMWOkUg=="
+ },
+ "validate-npm-package-license": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "dev": true,
+ "requires": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
+ "vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
+ "dev": true
+ },
+ "vendors": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz",
+ "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==",
+ "dev": true
+ },
+ "view-design": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/view-design/-/view-design-4.3.2.tgz",
+ "integrity": "sha512-58GH2fu5TVtUeeXWWu0VQXqgV01fGKHXhViw4p80OM/+SzhCJS2qzZYYpVyXaGKQM1OfeJHZrVFA/xLfpXK+0w==",
+ "requires": {
+ "async-validator": "^3.3.0",
+ "deepmerge": "^2.2.1",
+ "element-resize-detector": "^1.2.0",
+ "js-calendar": "^1.2.3",
+ "lodash.throttle": "^4.1.1",
+ "popper.js": "^1.14.6",
+ "tinycolor2": "^1.4.1",
+ "v-click-outside-x": "^3.7.1"
+ },
+ "dependencies": {
+ "async-validator": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-3.3.0.tgz",
+ "integrity": "sha512-cAHGD9EL8aCqWXjnb44q94MWiDFzUo1tMhvLb2WzcpWqGiKugsjWG9cvl+jPgkPca7asNbsBU3fa0cwkI/P+Xg=="
+ },
+ "deepmerge": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz",
+ "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA=="
+ }
+ }
+ },
+ "vm-browserify": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz",
+ "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==",
+ "dev": true
+ },
+ "vue": {
+ "version": "2.6.11",
+ "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.11.tgz",
+ "integrity": "sha512-VfPwgcGABbGAue9+sfrD4PuwFar7gPb1yl1UK1MwXoQPAw0BKSqWfoYCT/ThFrdEVWoI51dBuyCoiNU9bZDZxQ=="
+ },
+ "vue-hot-reload-api": {
+ "version": "2.3.4",
+ "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz",
+ "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==",
+ "dev": true
+ },
+ "vue-loader": {
+ "version": "13.7.3",
+ "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-13.7.3.tgz",
+ "integrity": "sha512-ACCwbfeC6HjY2pnDii+Zer+MZ6sdOtwvLmDXRK/BoD3WNR551V22R6KEagwHoTRJ0ZlIhpCBkptpCU6+Ri/05w==",
+ "dev": true,
+ "requires": {
+ "consolidate": "^0.14.0",
+ "hash-sum": "^1.0.2",
+ "loader-utils": "^1.1.0",
+ "lru-cache": "^4.1.1",
+ "postcss": "^6.0.8",
+ "postcss-load-config": "^1.1.0",
+ "postcss-selector-parser": "^2.0.0",
+ "prettier": "^1.7.0",
+ "resolve": "^1.4.0",
+ "source-map": "^0.6.1",
+ "vue-hot-reload-api": "^2.2.0",
+ "vue-style-loader": "^3.0.0",
+ "vue-template-es2015-compiler": "^1.6.0"
+ }
+ },
+ "vue-router": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-2.8.1.tgz",
+ "integrity": "sha512-MC4jacHBhTPKtmcfzvaj2N7g6jgJ/Z/eIjZdt+yUaUOM1iKC0OUIlO/xCtz6OZFFTNUJs/1YNro2GN/lE+nOXA=="
+ },
+ "vue-style-loader": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-3.1.2.tgz",
+ "integrity": "sha512-ICtVdK/p+qXWpdSs2alWtsXt9YnDoYjQe0w5616j9+/EhjoxZkbun34uWgsMFnC1MhrMMwaWiImz3K2jK1Yp2Q==",
+ "dev": true,
+ "requires": {
+ "hash-sum": "^1.0.2",
+ "loader-utils": "^1.0.2"
+ }
+ },
+ "vue-template-compiler": {
+ "version": "2.6.11",
+ "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.11.tgz",
+ "integrity": "sha512-KIq15bvQDrcCjpGjrAhx4mUlyyHfdmTaoNfeoATHLAiWB+MU3cx4lOzMwrnUh9cCxy0Lt1T11hAFY6TQgroUAA==",
+ "dev": true,
+ "requires": {
+ "de-indent": "^1.0.2",
+ "he": "^1.1.0"
+ }
+ },
+ "vue-template-es2015-compiler": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz",
+ "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==",
+ "dev": true
+ },
+ "vuex": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/vuex/-/vuex-2.5.0.tgz",
+ "integrity": "sha512-5oJPOJySBgSgSzoeO+gZB/BbN/XsapgIF6tz34UwJqnGZMQurzIO3B4KIBf862gfc9ya+oduY5sSkq+5/oOilQ=="
+ },
+ "watchpack": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.2.tgz",
+ "integrity": "sha512-ymVbbQP40MFTp+cNMvpyBpBtygHnPzPkHqoIwRRj/0B8KhqQwV8LaKjtbaxF2lK4vl8zN9wCxS46IFCU5K4W0g==",
+ "dev": true,
+ "requires": {
+ "chokidar": "^3.4.0",
+ "graceful-fs": "^4.1.2",
+ "neo-async": "^2.5.0",
+ "watchpack-chokidar2": "^2.0.0"
+ }
+ },
+ "watchpack-chokidar2": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz",
+ "integrity": "sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "chokidar": "^2.1.8"
+ },
+ "dependencies": {
+ "anymatch": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
+ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "micromatch": "^3.1.4",
+ "normalize-path": "^2.1.1"
+ },
+ "dependencies": {
+ "normalize-path": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "remove-trailing-separator": "^1.0.1"
+ }
+ }
+ }
+ },
+ "arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
+ "dev": true,
+ "optional": true
+ },
+ "array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
+ "dev": true,
+ "optional": true
+ },
+ "binary-extensions": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
+ "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
+ "dev": true,
+ "optional": true
+ },
+ "braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "chokidar": {
+ "version": "2.1.8",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
+ "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "anymatch": "^2.0.0",
+ "async-each": "^1.0.1",
+ "braces": "^2.3.2",
+ "fsevents": "^1.2.7",
+ "glob-parent": "^3.1.0",
+ "inherits": "^2.0.3",
+ "is-binary-path": "^1.0.0",
+ "is-glob": "^4.0.0",
+ "normalize-path": "^3.0.0",
+ "path-is-absolute": "^1.0.0",
+ "readdirp": "^2.2.1",
+ "upath": "^1.1.1"
+ }
+ },
+ "expand-brackets": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "debug": "^2.3.3",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "posix-character-classes": "^0.1.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-descriptor": "^0.1.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-data-descriptor": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "is-descriptor": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-accessor-descriptor": "^0.1.6",
+ "is-data-descriptor": "^0.1.4",
+ "kind-of": "^5.0.0"
+ }
+ },
+ "kind-of": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
+ "dev": true,
+ "optional": true
+ }
+ }
+ },
+ "extglob": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "array-unique": "^0.3.2",
+ "define-property": "^1.0.0",
+ "expand-brackets": "^2.1.4",
+ "extend-shallow": "^2.0.1",
+ "fragment-cache": "^0.2.1",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "dependencies": {
+ "define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-descriptor": "^1.0.0"
+ }
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "dependencies": {
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ }
+ }
+ },
+ "fsevents": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
+ "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
+ "dev": true,
+ "optional": true
+ },
+ "glob-parent": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-glob": "^3.1.0",
+ "path-dirname": "^1.0.0"
+ },
+ "dependencies": {
+ "is-glob": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-extglob": "^2.1.0"
+ }
+ }
+ }
+ },
+ "is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-binary-path": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
+ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "binary-extensions": "^1.0.0"
+ }
+ },
+ "is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "kind-of": "^6.0.0"
+ }
+ },
+ "is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ }
+ },
+ "is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "kind-of": "^3.0.2"
+ },
+ "dependencies": {
+ "kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-buffer": "^1.1.5"
+ }
+ }
+ }
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
+ "dev": true,
+ "optional": true
+ },
+ "kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "dev": true,
+ "optional": true
+ },
+ "micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
+ }
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true,
+ "optional": true
+ },
+ "readdirp": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
+ "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "graceful-fs": "^4.1.11",
+ "micromatch": "^3.1.10",
+ "readable-stream": "^2.0.2"
+ }
+ },
+ "to-regex-range": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
+ }
+ }
+ }
+ },
+ "webpack": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-2.7.0.tgz",
+ "integrity": "sha512-MjAA0ZqO1ba7ZQJRnoCdbM56mmFpipOPUv/vQpwwfSI42p5PVDdoiuK2AL2FwFUVgT859Jr43bFZXRg/LNsqvg==",
+ "dev": true,
+ "requires": {
+ "acorn": "^5.0.0",
+ "acorn-dynamic-import": "^2.0.0",
+ "ajv": "^4.7.0",
+ "ajv-keywords": "^1.1.1",
+ "async": "^2.1.2",
+ "enhanced-resolve": "^3.3.0",
+ "interpret": "^1.0.0",
+ "json-loader": "^0.5.4",
+ "json5": "^0.5.1",
+ "loader-runner": "^2.3.0",
+ "loader-utils": "^0.2.16",
+ "memory-fs": "~0.4.1",
+ "mkdirp": "~0.5.0",
+ "node-libs-browser": "^2.0.0",
+ "source-map": "^0.5.3",
+ "supports-color": "^3.1.0",
+ "tapable": "~0.2.5",
+ "uglify-js": "^2.8.27",
+ "watchpack": "^1.3.1",
+ "webpack-sources": "^1.0.1",
+ "yargs": "^6.0.0"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "4.11.8",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
+ "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=",
+ "dev": true,
+ "requires": {
+ "co": "^4.6.0",
+ "json-stable-stringify": "^1.0.1"
+ }
+ },
+ "big.js": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
+ "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==",
+ "dev": true
+ },
+ "emojis-list": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
+ "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
+ "loader-utils": {
+ "version": "0.2.17",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz",
+ "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=",
+ "dev": true,
+ "requires": {
+ "big.js": "^3.1.3",
+ "emojis-list": "^2.0.0",
+ "json5": "^0.5.0",
+ "object-assign": "^4.0.1"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
+ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
+ "dev": true,
+ "requires": {
+ "has-flag": "^1.0.0"
+ }
+ },
+ "uglify-js": {
+ "version": "2.8.29",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
+ "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
+ "dev": true,
+ "requires": {
+ "source-map": "~0.5.1",
+ "uglify-to-browserify": "~1.0.0",
+ "yargs": "~3.10.0"
+ },
+ "dependencies": {
+ "yargs": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
+ "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
+ "dev": true,
+ "requires": {
+ "camelcase": "^1.0.2",
+ "cliui": "^2.1.0",
+ "decamelize": "^1.0.0",
+ "window-size": "0.1.0"
+ }
+ }
+ }
+ }
+ }
+ },
+ "webpack-bundle-analyzer": {
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-2.13.1.tgz",
+ "integrity": "sha512-rwxyfecTAxoarCC9VlHlIpfQCmmJ/qWD5bpbjkof+7HrNhTNZIwZITxN6CdlYL2axGmwNUQ+tFgcSOiNXMf/sQ==",
+ "dev": true,
+ "requires": {
+ "acorn": "^5.3.0",
+ "bfj-node4": "^5.2.0",
+ "chalk": "^2.3.0",
+ "commander": "^2.13.0",
+ "ejs": "^2.5.7",
+ "express": "^4.16.2",
+ "filesize": "^3.5.11",
+ "gzip-size": "^4.1.0",
+ "lodash": "^4.17.4",
+ "mkdirp": "^0.5.1",
+ "opener": "^1.4.3",
+ "ws": "^4.0.0"
+ }
+ },
+ "webpack-dev-middleware": {
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz",
+ "integrity": "sha512-FCrqPy1yy/sN6U/SaEZcHKRXGlqU0DUaEBL45jkUYoB8foVb6wCnbIJ1HKIx+qUFTW+3JpVcCJCxZ8VATL4e+A==",
+ "dev": true,
+ "requires": {
+ "memory-fs": "~0.4.1",
+ "mime": "^1.5.0",
+ "path-is-absolute": "^1.0.0",
+ "range-parser": "^1.0.3",
+ "time-stamp": "^2.0.0"
+ }
+ },
+ "webpack-hot-middleware": {
+ "version": "2.25.0",
+ "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.25.0.tgz",
+ "integrity": "sha512-xs5dPOrGPCzuRXNi8F6rwhawWvQQkeli5Ro48PRuQh8pYPCPmNnltP9itiUPT4xI8oW+y0m59lyyeQk54s5VgA==",
+ "dev": true,
+ "requires": {
+ "ansi-html": "0.0.7",
+ "html-entities": "^1.2.0",
+ "querystring": "^0.2.0",
+ "strip-ansi": "^3.0.0"
+ }
+ },
+ "webpack-merge": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz",
+ "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.15"
+ }
+ },
+ "webpack-sources": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz",
+ "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==",
+ "dev": true,
+ "requires": {
+ "source-list-map": "^2.0.0",
+ "source-map": "~0.6.1"
+ }
+ },
+ "whet.extend": {
+ "version": "0.9.9",
+ "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz",
+ "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=",
+ "dev": true
+ },
+ "which-module": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
+ "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=",
+ "dev": true
+ },
+ "window-size": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
+ "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
+ "dev": true
+ },
+ "wordwrap": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
+ "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
+ "dev": true
+ },
+ "wrap-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+ "dev": true,
+ "requires": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1"
+ },
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ }
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ },
+ "ws": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-4.1.0.tgz",
+ "integrity": "sha512-ZGh/8kF9rrRNffkLFV4AzhvooEclrOH0xaugmqGsIfFgOE/pIz4fMc4Ef+5HSQqTEug2S9JZIWDR47duDSLfaA==",
+ "dev": true,
+ "requires": {
+ "async-limiter": "~1.0.0",
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "dev": true
+ },
+ "y18n": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
+ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
+ "dev": true
+ },
+ "yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
+ "dev": true
+ },
+ "yargs": {
+ "version": "6.6.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz",
+ "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=",
+ "dev": true,
+ "requires": {
+ "camelcase": "^3.0.0",
+ "cliui": "^3.2.0",
+ "decamelize": "^1.1.1",
+ "get-caller-file": "^1.0.1",
+ "os-locale": "^1.4.0",
+ "read-pkg-up": "^1.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^1.0.1",
+ "set-blocking": "^2.0.0",
+ "string-width": "^1.0.2",
+ "which-module": "^1.0.0",
+ "y18n": "^3.2.1",
+ "yargs-parser": "^4.2.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
+ "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
+ "dev": true
+ },
+ "cliui": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
+ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
+ "dev": true,
+ "requires": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wrap-ansi": "^2.0.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "dev": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ },
+ "y18n": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
+ "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
+ "dev": true
+ }
+ }
+ },
+ "yargs-parser": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz",
+ "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=",
+ "dev": true,
+ "requires": {
+ "camelcase": "^3.0.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
+ "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
+ "dev": true
+ }
+ }
+ }
+ }
+}
diff --git a/Vue-shopping/package.json b/Vue-shopping/package.json
new file mode 100644
index 0000000..33f2d6a
--- /dev/null
+++ b/Vue-shopping/package.json
@@ -0,0 +1,65 @@
+{
+ "name": "123",
+ "version": "1.0.0",
+ "description": "A Vue.js project",
+ "author": "yush <389636851@qq.com>",
+ "private": true,
+ "scripts": {
+ "dev": "node build/dev-server.js",
+ "start": "node build/dev-server.js",
+ "build": "node build/build.js"
+ },
+ "dependencies": {
+ "view-design": "^4.3.2",
+ "vue": "^2.4.2",
+ "vue-router": "^2.7.0",
+ "vuex": "^2.4.0"
+ },
+ "devDependencies": {
+ "autoprefixer": "^7.1.2",
+ "axios": "^0.19.2",
+ "babel-core": "^6.22.1",
+ "babel-loader": "^7.1.1",
+ "babel-plugin-transform-runtime": "^6.22.0",
+ "babel-preset-env": "^1.3.2",
+ "babel-preset-stage-2": "^6.22.0",
+ "babel-register": "^6.22.0",
+ "chalk": "^2.0.1",
+ "connect-history-api-fallback": "^1.3.0",
+ "copy-webpack-plugin": "^4.0.1",
+ "css-loader": "^0.28.0",
+ "cssnano": "^3.10.0",
+ "element-ui": "^2.13.2",
+ "eventsource-polyfill": "^0.9.6",
+ "express": "^4.14.1",
+ "extract-text-webpack-plugin": "^2.0.0",
+ "file-loader": "^0.11.1",
+ "friendly-errors-webpack-plugin": "^1.1.3",
+ "html-webpack-plugin": "^2.28.0",
+ "http-proxy-middleware": "^0.17.3",
+ "opn": "^5.1.0",
+ "optimize-css-assets-webpack-plugin": "^2.0.0",
+ "ora": "^1.2.0",
+ "rimraf": "^2.6.0",
+ "semver": "^5.3.0",
+ "shelljs": "^0.7.6",
+ "url-loader": "^0.5.8",
+ "vue-loader": "^13.0.4",
+ "vue-style-loader": "^3.0.1",
+ "vue-template-compiler": "^2.4.2",
+ "webpack": "^2.6.1",
+ "webpack-bundle-analyzer": "^2.2.1",
+ "webpack-dev-middleware": "^1.10.0",
+ "webpack-hot-middleware": "^2.18.0",
+ "webpack-merge": "^4.1.0"
+ },
+ "engines": {
+ "node": ">= 4.0.0",
+ "npm": ">= 3.0.0"
+ },
+ "browserslist": [
+ "> 1%",
+ "last 2 versions",
+ "not ie <= 8"
+ ]
+}
diff --git a/Vue-shopping/src/App.vue b/Vue-shopping/src/App.vue
new file mode 100644
index 0000000..fdf96d5
--- /dev/null
+++ b/Vue-shopping/src/App.vue
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/Vue-shopping/src/assets/css/account.css b/Vue-shopping/src/assets/css/account.css
new file mode 100644
index 0000000..cf24a75
--- /dev/null
+++ b/Vue-shopping/src/assets/css/account.css
@@ -0,0 +1,92 @@
+@charset "utf-8";
+.content{
+ clear: both;
+ width: 1220px;
+ min-height: 600px;
+ padding: 0 0 25px;
+ margin: 0 auto;
+}
+.account-wrapper{
+ position: relative;
+ min-height: 550px;
+}
+.account-sidebar{
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 210px;
+}
+.gray-box, .gray-btn-menu-on:hover{
+ background: #FFF;
+}
+.gray-box{
+ overflow: hidden;
+ border: 1px solid #D1D1D1;
+ border-color: rgba(0,0,0,.14);
+ border-radius: 8px;
+ box-shadow: 0 3px 8px -6px rgba(0,0,0,.1);
+}
+.account-sidebar .avatar{
+ padding-top: 20px;
+ margin: 0 0 20px;
+ border-radius: 10px;
+ text-align: center;
+}
+.account-sidebar .avatar img{
+ width: 168px;
+ height: 168px;
+ display: inline-block;
+}
+.account-sidebar .account-nav{
+ padding-top: 15px;
+}
+.account-sidebar .account-nav li{
+ position: relative;
+ height: 48px;
+ border-top: 1px solid #EBEBEB;
+ line-height: 48px;
+}
+.account-sidebar .account-nav .current{
+ border: none;
+}
+.account-sidebar .account-nav a{
+ display: block;
+ height: 48px;
+ padding: 0 30px;
+ color: #666;
+ -moz-transition: none;
+ -webkit-transition: none;
+ transition: none;
+}
+.account-sidebar .account-nav .current a, .account-sidebar .account-nav a:hover{
+ position: relative;
+ top: -1px;
+ z-index: 1;
+ height: 50px;
+ background-color: #98AFEE;
+ line-height: 50px;
+ color: #FFF;
+}
+.account-content{
+ margin-left: 230px;
+}
+.gray-box .title{
+ height: 60px;
+ padding: 0 10px 0 28px;
+ background: #F5F5F5;
+ background: linear-gradient(#FFF,#F5F5F5);
+ border-bottom: 1px solid #DCDCDC;
+ border-radius: 10px 10px 0 0;
+ box-shadow: 0 1px 7px rgba(0,0,0,.06);
+ line-height: 60px;
+ color: #646464;
+}
+.gray-box .pre-title{
+ position: relative;
+ z-index: 2;
+}
+.gray-box .title h2{
+ font-size: 18px;
+ font-weight: 400;
+ color: #626262;
+}
\ No newline at end of file
diff --git a/Vue-shopping/src/assets/css/address.css b/Vue-shopping/src/assets/css/address.css
new file mode 100644
index 0000000..3703747
--- /dev/null
+++ b/Vue-shopping/src/assets/css/address.css
@@ -0,0 +1,285 @@
+@charset "utf-8";
+.blue-btn, .gray-blue-btn, .gray-btn, .gray-icon-btn, .light-blue-btn, .light-gray-btn{
+ display: inline-block;
+ height: 38px;
+ padding: 0 20px;
+ border-radius: 8px;
+ line-height: 38px;
+ font-size: 14px;
+ cursor: pointer;
+}
+.gray-blue-btn{
+ padding: 0;
+ background: #A2A2A2;
+}
+.gray-box .title span{
+ overflow: hidden;
+ float: right;
+ margin-top: 11px;
+}
+.blue-btn a, .gray-blue-btn a, .gray-btn a, .gray-icon-btn a, .light-blue-btn a, .light-gray-btn a{
+ display: block;
+}
+.gray-blue-btn a{
+ height: 38px;
+ line-height: 38px;
+ color: #FFF;
+}
+.gray-blue-btn a.add{
+ padding: 0 13px 0 38px;
+ background: url(../img/btn-icon-new.png) 0 -6px no-repeat;
+ transition: none;
+}
+.gray-blue-btn:hover{
+ background: #7595e4;
+ box-shadow: none;
+}
+.address-form{
+ width: 370px;
+ margin: 0 auto;
+}
+.account-address .address-form{
+ padding: 30px;
+ margin: 0;
+}
+.module-form-row{
+ position: relative;
+ padding-bottom: 10px;
+ margin: 0 auto;
+}
+.address-form .module-form-row{
+ padding-bottom: 15px;
+}
+.module-form-row .form-item-v3{
+ position: relative;
+ height: 46px;
+ background: #FFF;
+ border: 1px solid #CCC;
+ border-radius: 6px;
+ box-shadow: 0 3px 5px -4px rgba(0,0,0,.4) inset, -1px 0 3px -2px rgba(0,0,0,.1) inset;
+ line-height: 46px;
+ font-size: 18px;
+ opacity: .618;
+ transition: opacity .3s ease;
+}
+.module-form-row .form-item-v3 i{
+ position: absolute;
+ left: 15px;
+ top: 0;
+ font-size: 16px;
+ color: #BEBEBE;
+}
+.module-form-row .form-item-v3 input{
+ padding: 0 15px;
+ background-color: transparent;
+ border: none;
+ font-size: 16px;
+}
+.address-form .form-item-v3 input{
+ width: 330px;
+}
+.address-form .area-code-w{
+ width: 118px;
+}
+.address-form .telephone-w{
+ width: 238px;
+}
+.module-form-row div.select-item{
+ width: auto;
+ height: auto;
+ margin: 0;
+ background: 0 0;
+ border: none;
+ box-shadow: none;
+ opacity: 1;
+}
+.module-form-row .form-item-v3 select{
+ margin: 0 0 0 15px;
+ background-color: transparent;
+ border: none;
+ font-size: 16px;
+ color: #333;
+}
+.address-form .select-province{
+ width: 370px;
+}
+.form-focus-item{
+ z-index: 1;
+ opacity: 1;
+ border: 1px solid #6B93F2;
+}
+.module-form-row div.select-item{
+ width: auto;
+ height: auto;
+ margin: 0;
+ background: 0 0;
+ border: none;
+ box-shadow: none;
+ opacity: 1;
+}
+.module-form-row .form-item-v3 select{
+ height: 48px;
+ padding: 0 15px;
+ margin: 0;
+ background: -webkit-linear-gradient(top,#FAFAFA,#F5F5F5);
+ background: linear-gradient(#FAFAFA,#F5F5F5);
+ border: 1px solid #CCC;
+ border-radius: 6px;
+ box-shadow: 2px 0 0 rgba(255,255,255,.4) inset, 1px 0 0 rgba(255,255,255,.3);
+ line-height: 48px;
+ text-indent: 0;
+ outline: 0;
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ cursor: pointer;
+}
+.address-form .select-city, .address-form .select-district{
+ width: 180px;
+}
+.blue-checkbox, .blue-checkbox-disable, .blue-checkbox-on{
+ display: inline-block;
+ position: relative;
+ width: 20px;
+ height: 20px;
+ background: url(../img/checkbox-bg.png) no-repeat;
+ cursor: pointer;
+}
+.address-form .blue-checkbox{
+ top: 0;
+ float: left;
+ margin-right: 5px;
+}
+.dialog-blue-btn{
+ padding: 1px;
+ background: #6383C6;
+ background: linear-gradient(#6383C6,#4262AF);
+ border-radius: 6px;
+ text-align: center;
+ color: #FFF;
+}
+.disabled-btn{
+ opacity: .4;
+}
+.disabled-btn, .disabled-btn a{
+ cursor: not-allowed;
+ -webkit-transition: none;
+ transition: none;
+ pointer-events: none;
+}
+.dialog-blue-btn a{
+ display: block;
+ padding: 2px 0;
+ background: #5F7ED7;
+ background: linear-gradient(#6F97E5,#527ED9);
+ border-radius: 5px;
+ box-shadow: inset 0 1px 2px #7EA1E8;
+ text-shadow: 0 -1px 0 #4F70B3;
+ color: #FFF;
+}
+.big-main-btn a{
+ height: 42px;
+ line-height: 42px;
+ font-size: 18px;
+}
+.account-address .address-list-item{
+ height: 75px;
+ padding: 20px 0;
+ border-bottom: 1px solid #CFCFCF;
+ line-height: 24px;
+}
+.account-address .address-list-item:last-child{
+ border-bottom: none;
+ border-radius: 0 0 7px 7px;
+}
+.account-address .address-list-item .name{
+ display: table;
+ width: 106px;
+ height: 100%;
+ padding: 0 20px 0 24px;
+}
+.account-address .address-list-item .name-cell{
+ display: table-cell;
+ vertical-align: middle;
+}
+.account-address .address-list-item .detail{
+ display: table;
+ width: 440px;
+ height: 100%;
+ text-align: left;
+}
+.account-address .address-list-item .detail-cell{
+ display: table-cell;
+ vertical-align: middle;
+}
+.account-address .address-list-item .operation{
+ display: -webkit-box;
+ -webkit-box-pack: center;
+ -webkit-box-align: center;
+ width: 135px;
+ padding: 24px 0;
+}
+.account-address .address-list-item .operation-cell{
+ display: flex;
+ text-align: center;
+}
+.gray-edit-btn, .red-del-btn{
+ width: 26px;
+ height: 26px;
+ border-radius: 5px;
+ overflow: hidden;
+}
+.gray-edit-btn{
+ display: inline-block;
+ background: url(../img/btn-icon-new.png) -9px -112px no-repeat #A2A2A2;
+ text-indent: -9999em;
+}
+.account-address .address-list-item .operation .gray-edit-btn{
+ margin-right: 6px;
+}
+.gray-edit-btn, .red-del-btn{
+ width: 26px;
+ height: 26px;
+ border-radius: 5px;
+ overflow: hidden;
+}
+.red-del-btn{
+ position: relative;
+ display: inline-block;
+ background: #d84747;
+ background: linear-gradient(#f97474,#e05b5b);
+ line-height: 26px;
+ opacity: .62;
+ cursor: pointer;
+ transition: none;
+}
+.red-del-btn a{
+ display: block;
+ width: 26px;
+ height: 26px;
+ background: url(../img/btn-icon-new.png) -9px -262px no-repeat;
+ text-indent: -9999em;
+ color: #FFF;
+ transition: none;
+}
+.red-del-btn em{
+ position: absolute;
+ left: 0;
+ top: 0;
+ display: none;
+ height: 26px;
+ text-indent: 0;
+ font-size: 12px;
+ color: #FFF;
+}
+.account-address .address-list-item .default{
+ width: 80px;
+ line-height: 75px;
+ text-align: center;
+ font-size: 12px;
+}
+.account-address .address-list-item .telephone{
+ width: 160px;
+ height: 100%;
+ line-height: 75px;
+ text-align: center;
+}
diff --git a/Vue-shopping/src/assets/css/cart.css b/Vue-shopping/src/assets/css/cart.css
new file mode 100644
index 0000000..247e842
--- /dev/null
+++ b/Vue-shopping/src/assets/css/cart.css
@@ -0,0 +1,457 @@
+@charset "utf-8";
+.nav-cart{
+ visibility: hidden;
+}
+.nav-sub{
+ display: none;
+}
+.cart-box{
+ position: relative;
+ margin-top: 40px;
+ overflow: hidden;
+ background: #fff;
+ border-radius: 8px;
+ border: 1px solid #dcdcdc;
+ border-color: rgba(0,0,0,.14);
+ box-shadow: 0 3px 8px -6px rgba(0,0,0,.1);
+}
+.cart-box .title{
+ position: relative;
+ z-index: 10;
+ height: 60px;
+ padding: 0 10px 0 30px;
+ border-bottom: 1px solid #d4d4d4;
+ border-radius: 8px 8px 0 0;
+ box-shadow: rgba(0,0,0,.06) 0 1px 7px;
+ background: #f3f3f3;
+ background: linear-gradient(#fbfbfb,#ececec);
+ line-height: 60px;
+ font-size: 18px;
+ color: #333;
+}
+.cart-inner{
+ padding-bottom: 91px;
+}
+.empty-label{
+ height: 49px;
+ padding: 385px 0 0 0;
+ background: url(../img/cart-box-empty.png) no-repeat center 50px;
+ text-align: center;
+}
+.empty-label h3{
+ font-size: 14px;
+ line-height: 1.5;
+ color: #8d8d8d;
+ margin-bottom: 17px;
+}
+.empty-label>a.link{
+ width: 151px;
+ line-height: 38px;
+ height: 38px;
+ border: 1px solid #e5e5e5;
+ border-radius: 4px;
+ display: inline-block;
+ color: #999;
+ font-size: 12px;
+ background: #f9f9f9;
+ background: -webkit-linear-gradient(#fff,#f0f0f0);
+ background: linear-gradient(#fff,#f0f0f0);
+}
+.cart-table-title{
+ position: relative;
+ z-index: 1;
+ line-height: 38px;
+ height: 38px;
+ padding: 0 0 0 30px;
+ font-size: 12px;
+ background: #eee;
+ border-bottom: 1px solid #dbdbdb;
+ border-bottom-color: rgba(0,0,0,.08);
+}
+.cart-table-title span {
+ float: right;
+ text-align: center;
+}
+.cart-table-title .name{
+ float: left;
+ text-align: left;
+}
+.cart-table-title .operation,
+.cart-table-title .num,
+.cart-table-title .price,
+.cart-table-title .subtotal{
+ width: 137px;
+}
+.cart-table-title .subtotal{
+ text-align: right;
+}
+.cart-group{
+ position: relative;
+}
+.cart-group .cart-items{
+ border-top: 1px dashed #eee;
+ position: relative;
+ height: 140px;
+ margin-left: 74px;
+}
+.cart-group .cart-top-items:first-child .cart-items{
+ border-top: none;
+}
+.cart-items .items-choose, .cart-items .items-thumb, .cart-items .name{
+ float: left;
+}
+.cart-items .items-choose{
+ position: absolute;
+ left: -74px;
+ top: 0;
+ width: 74px;
+ height: 20px;
+ padding: 60px 0 0 31px;
+ font-size: 12px;
+ color: #999;
+}
+.blue-checkbox-new{
+ display: inline-block;
+ position: relative;
+ width: 20px;
+ height: 20px;
+ background: url(../img/checkbox-new.png) no-repeat 0 -20px;
+ cursor: pointer;
+ vertical-align: middle;
+}
+.checkbox-on{
+ background: url(../img/checkbox-new.png) no-repeat 0 0;
+}
+.cart-items .items-thumb{
+ position: relative;
+ margin-top: 30px;
+ overflow: hidden;
+}
+.cart-items .items-thumb, .cart-items .items-thumb img{
+ width: 80px;
+ height: 80px;
+}
+.cart-items .items-thumb>a, .cart-items .items-thumb>i{
+ position: absolute;
+ left: 0;
+ right: 0;
+ top: 0;
+ bottom: 0;
+ border-radius: 3px;
+ border: 0 solid rgba(255,255,255,.1);
+ box-shadow: inset 0 0 0 1px rgba(0,0,0,.06);
+}
+.cart-items .name{
+ width: 380px;
+ margin-left: 20px;
+ color: #323232;
+ display: table;
+}
+.hide-row{
+ overflow: hidden;
+ word-break: keep-all;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+}
+.cart-items .name-table{
+ display: table-cell;
+ vertical-align: middle;
+ height: 140px;
+}
+.cart-items .name a{
+ color: #333;
+ font-size: 16px;
+}
+.cart-items .name .attribute, .cart-items .name p{
+ color: #999;
+ font-size: 12px;
+ padding-top: 4px;
+ line-height: 17px;
+}
+.cart-items .name .attribute li{
+ float: left;
+ padding: 0 10px;
+ position: relative;
+}
+.cart-items .name .attribute li:first-child{
+ padding-left: 0;
+}
+.cart-items .item-cols-num,
+.cart-items .operation,
+.cart-items .price,
+.cart-items .subtotal{
+ overflow: hidden;
+ float: right;
+ width: 137px;
+ text-align: center;
+ color: #666;
+ line-height: 140px;
+}
+.cart-items .operation{
+ padding: 58px 0 0;
+ font-size: 12px;
+ line-height: 24px;
+}
+.cart-items .operation .items-delete-btn{
+ display: block;
+ width: 24px;
+ height: 24px;
+ margin: 0 auto;
+ color: #C2C2C2;
+ background: url(../img/delete-btn-icon.jpg);
+ background-size: 100% auto;
+ transition: none;
+}
+.cart-items .operation .items-delete-btn:hover{
+ background-position: 0 -36px;
+}
+.cart-items .subtotal{
+ font-weight: 700;
+ text-align: right;
+}
+.cart-items .item-cols-num{
+ padding-top: 50px;
+ line-height: 40px;
+}
+.cart-items .select{
+ width: 112px;
+ height: 40px;
+ padding-top: 4px;
+ margin: 0 auto;
+ line-height: 40px;
+}
+.select .down, .select .up{
+ overflow: hidden;
+ float: left;
+ display: inline-block;
+ width: 34px;
+ height: 37px;
+ margin-right: 5px;
+ background: url(../img/cart-updown.jpg) no-repeat;
+ background-image: url(../img/cart-updown.jpg);
+ background-size: 100% auto;
+ line-height: 40px;
+ text-indent: -9999em;
+ cursor: pointer;
+ user-select: none;
+}
+.select .down{
+ background-position: 0 -60px;
+}
+.select .down:hover{
+ background-position: 0 -180px;
+}
+.select .down.down-disabled, .select .down.down-disabled:hover{
+ background-position: 0 -300px;
+ cursor: not-allowed;
+}
+.select .num{
+ position: relative;
+ overflow: hidden;
+ float: left;
+ display: inline-block;
+ width: 36px;
+ height: 18px;
+ margin: 7px 0 0;
+ border: none;
+ border-radius: 3px;
+ line-height: 18px;
+ text-align: center;
+ font-size: 14px;
+}
+.select input{
+ width: 36px;
+ height: 18px;
+ background-color: transparent;
+ border: none;
+ border-radius: 3px;
+ text-align: center;
+ line-height: 18px;
+ font-size: 14px;
+ padding: 0;
+}
+.select ul{
+ display: none;
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 36px;
+}
+.select ul li{
+ width: 36px;
+ height: 18px;
+}
+.select .up{
+ float: right;
+ margin: 0;
+ background-position: 0 0;
+}
+.select .up:hover{
+ background-position: 0 -120px;
+}
+.select .up.up-disabled, .select .up.up-disabled:hover{
+ background-position: 0 -240px;
+ cursor: not-allowed;
+}
+.gray-box .cart-bottom-bg{
+ /*height: 80px;
+ background: url(../img/store/library/cart-wrapper-bg.jpg) repeat-x;
+ border-top: 1px solid #D9D9D9;*/
+ border-radius: 0 0 8px 8px;
+}
+.fix-bottom{
+ height: 90px;
+ width: 100%;
+ position: absolute;
+ bottom: 0;
+ z-index: 1;
+ background-position: center;
+ background: #fdfdfd;
+ background: linear-gradient(#fdfdfd,#f9f9f9);
+ border-top: 1px solid #e9e9e9;
+ box-shadow: 0 -3px 8px rgba(0,0,0,.04);
+}
+.cart-bar-operation{
+ float: left;
+ padding: 35px 26px;
+ font-size: 12px;
+}
+.choose-all, .delete-choose-goods, .selected-count{
+ float: left;
+ height: 20px;
+ line-height: 20px;
+ cursor: pointer;
+ position: relative;
+}
+.delete-choose-goods{
+ position: relative;
+ margin-left: 21px;
+ color: #bbb;
+}
+.delete-choose-goods-disabled{
+ cursor: not-allowed;
+}
+.shipping{
+ display: inline-block;
+ float: right;
+ padding: 20px 30px;
+}
+.shipping-box{
+ display: inline-block;
+ padding-top: 1px;
+ margin-right: 10px;
+}
+.shipping-total{
+ display: inline-block;
+ border-left: 1px solid #e1e1e1;
+ padding: 0 20px;
+}
+.shipping-total:first-child{
+ border: none;
+}
+.shipping-total.shipping-num{
+ text-align: right;
+}
+.shipping-total h4{
+ color: #323232;
+}
+.shipping-total h4 i{
+ font-size: 18px;
+ font-weight: 700;
+}
+.shipping-total.shipping-num i{
+ width: 28px;
+ display: inline-block;
+ text-align: center;
+}
+.shipping-total h4.highlight i, .shipping-total h4.highlight span{
+ color: #d44d44;
+}
+.shipping-total h5{
+ color: #959595;
+}
+.shipping-total h5 i{
+ width: 28px;
+ display: inline-block;
+ text-align: center;
+}
+.shipping-total{
+ display: inline-block;
+ border-left: 1px solid #e1e1e1;
+ padding: 0 20px;
+}
+.shipping-total.shipping-price{
+ width: 155px;
+ padding-right: 0;
+}
+.blue-main-btn, .gray-main-btn, .jianguo-blue-main-btn{
+ display: block;
+ padding: 1px;
+ margin: 0 auto;
+ border-radius: 9px;
+ background: #015e94;
+ background: linear-gradient(#5598c9,#2a6da2);
+ text-align: center;
+ text-shadow: rgba(255,255,255,.496094) 0 1px 0;
+ cursor: pointer;
+ user-select: none;
+}
+.jianguo-blue-main-btn{
+ background: #567CE6;
+ background: linear-gradient(#799CEA,#567CE6);
+ box-shadow: 0 1px 3px rgba(0,0,0,.1), inset 0 -1px 2px rgba(0,0,0,.2);
+}
+.big-main-btn{
+ height: 48px;
+}
+.big-main-btn{
+ float: right;
+ background: #5d86e5;
+ background: -webkit-linear-gradient(#688fe8,#5079e1);
+ background: linear-gradient(#688fe8,#5079e1);
+}
+.big-main-btn.jianguo-blue-main-btn.disabled-btn{
+ background: #A9A9A9;
+ background: linear-gradient(#BFBFBF,#999);
+ box-shadow: none;
+}
+.blue-main-btn a, .gray-main-btn a, .jianguo-blue-main-btn a{
+ display: block;
+ padding: 2px 0;
+ border-radius: 9px;
+ background: #5f7ed7;
+ background: linear-gradient(#739fe1,#5f7ed7);
+ box-shadow: inset 0 1px 3px #92b6ec, inset 0 0 2px #627dca, inset 0 -2px 3px #4c69b8;
+ text-shadow: #4f70b3 0 -1px 0;
+ cursor: pointer;
+ color: #fff;
+ transition: all .3s ease;
+}
+.jianguo-blue-main-btn a{
+ background: #6C94F3;
+ background: linear-gradient(#7EA3F5,#5A82F0);
+ box-shadow: none;
+ text-shadow: none;
+ color: #FFF;
+ transition: all .3s ease;
+}
+.big-main-btn a{
+ height: 44px;
+ line-height: 45px;
+ font-size: 18px;
+}
+.big-main-btn a{
+ padding: 2px 32px;
+ font-size: 16px;
+}
+.jianguo-blue-main-btn.disabled-btn a,
+.jianguo-blue-main-btn.disabled-btn:active a,
+.jianguo-blue-main-btn.disabled-btn:hover a{
+ background: #B7B7B7;
+ background: linear-gradient(#C3C3C3,#ABAAAA);
+ box-shadow: inset 0 1px 3px #CCC;
+}
+.disabled-btn, .disabled-btn a{
+ opacity: .7;
+ cursor: not-allowed;
+}
diff --git a/Vue-shopping/src/assets/css/checkout.css b/Vue-shopping/src/assets/css/checkout.css
new file mode 100644
index 0000000..eac8a72
--- /dev/null
+++ b/Vue-shopping/src/assets/css/checkout.css
@@ -0,0 +1,463 @@
+@charset "utf-8";
+.nav-sub{
+ display: none;
+}
+.content{
+ clear: both;
+ width: 1220px;
+ min-height: 600px;
+ padding: 0 0 25px;
+ margin: 0 auto;
+}
+.page-order-checkout{
+ padding-top: 40px;
+}
+.gray-box{
+ overflow: hidden;
+ border: 1px solid #D1D1D1;
+ border-color: rgba(0,0,0,.14);
+ border-radius: 8px;
+ box-shadow: 0 3px 8px -6px rgba(0,0,0,.1);
+}
+.gray-box, .gray-btn-menu-on:hover{
+ background: #FFF;
+}
+.page-order-checkout .gray-box{
+ margin-bottom: 30px;
+}
+.gray-box .title{
+ height: 60px;
+ padding: 0 10px 0 28px;
+ background: #F5F5F5;
+ background: linear-gradient(#FFF,#F5F5F5);
+ border-bottom: 1px solid #DCDCDC;
+ border-radius: 10px 10px 0 0;
+ box-shadow: 0 1px 7px rgba(0,0,0,.06);
+ line-height: 60px;
+ color: #646464;
+}
+.gray-box .pre-title{
+ position: relative;
+ z-index: 2;
+}
+.gray-box .title h2{
+ font-size: 18px;
+ font-weight: 400;
+ color: #626262;
+}
+.gray-box .columns-title h2{
+ float: left;
+}
+.address-common-table .address-item-list{
+ padding: 30px 13px 0;
+}
+.address-common-table .address-item-list li{
+ position: relative;
+ overflow: hidden;
+ float: left;
+ width: 276px;
+ height: 158px;
+ margin: 0 0 30px 16px;
+ border: 1px solid #E5E5E5;
+ border-radius: 3px;
+ background: #FAFAFA;
+ line-height: 14px;
+ text-align: left;
+ word-wrap: break-word;
+ word-break: normal;
+ color: #626262;
+ cursor: pointer;
+ user-select: none;
+}
+.address-common-table .address-item-list li.selected-address-item{
+ background: #FFF;
+ border-color: #6A8FE5;
+}
+.address-common-table .address-item-list .address-item{
+ padding: 19px 14px 0 19px;
+}
+.address-common-table .name-section{
+ height: 16px;
+ padding-right: 20px;
+ line-height: 16px;
+ font-size: 16px;
+ color: #666;
+}
+.address-common-table .mobile-section{
+ height: 14px;
+ padding-top: 17px;
+ line-height: 14px;
+ color: #999;
+}
+.address-common-table .detail-section{
+ padding-top: 6px;
+ line-height: 24px;
+ color: #999;
+}
+.address-common-table .address-item-list li.selected-address-item:after{
+ content: '√';
+ display: block;
+ position: absolute;
+ right: 17px;
+ top: 19px;
+ font-size: 24px;
+ color: #6A8FE5;
+}
+.address-common-table .operation-section{
+ visibility: hidden;
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ width: 100%;
+ height: 28px;
+ background: #E1E1E1;
+ border-top: 1px solid #E1E1E1;
+ transform: translate(0,29px);
+}
+.address-common-table .operation-section .delete-btn, .address-common-table .operation-section .update-btn{
+ float: left;
+ display: block;
+ height: 28px;
+ background: #FFF;
+ text-align: center;
+ line-height: 28px;
+ font-size: 12px;
+ transition: background .15s ease;
+}
+.address-common-table .operation-section .update-btn{
+ width: 137px;
+}
+.address-common-table .operation-section .delete-btn{
+ float: right;
+ width: 138px;
+}
+.address-common-table .add-address-item::before{
+ content: '+';
+ display: block;
+ position: absolute;
+ left: 50%;
+ top: 54px;
+ height: 24px;
+ margin-left: -10px;
+ line-height: 24px;
+ text-align: center;
+ font-size: 24px;
+ color: #626262;
+}
+.address-common-table .add-address-item p{
+ height: 14px;
+ padding-top: 85px;
+ line-height: 14px;
+ text-align: center;
+ color: #999;
+}
+.address-common-table .address-item-list li:hover{
+ background: #F2F2F2;
+}
+.page-order-checkout .invoice-box{
+ padding: 22px 29px 29px 28px;
+}
+.page-order-checkout .invoice-box .invoice-detail{
+ position: relative;
+ height: 36px;
+ line-height: 36px;
+ color: #666;
+}
+.page-order-checkout .invoice-box .radio-box{
+ position: absolute;
+ left: 65px;
+ top: 0;
+ padding: 0;
+ margin: 0;
+}
+.page-order-checkout .invoice-box .radio-box>label{
+ margin-right: 5px;
+}
+.blue-radio{
+ overflow: hidden;
+ display: inline-block;
+ position: relative;
+ top: 2px;
+ width: 10px;
+ height: 10px;
+ padding: 4px;
+ background: #F9F9F9;
+ background: linear-gradient(#F5F6F6,#FDFDFD);
+ border: 1px solid #E6E6E6;
+ border-radius: 10px;
+ box-shadow: 0 2px 4px rgba(0,0,0,.05) inset;
+ cursor: pointer;
+}
+.page-order-checkout .invoice-box .blue-radio{
+ top: 4px;
+ margin: 0 3px 0 6px;
+}
+.blue-radio-on a, .choose-radio-on .blue-radio a{
+ overflow: hidden;
+ display: block;
+ width: 8px;
+ height: 8px;
+ background: #6C94F3;
+ background: linear-gradient(#749AF4,#668EF2);
+ border: 1px solid #5D81D9;
+ border-radius: 10px;
+ box-shadow: 0 1px 2px rgba(0,0,0,.2);
+}
+.module-form-row .small-item{
+ width: 180px;
+ height: 36px;
+ border-radius: 4px;
+ line-height: 36px;
+ font-size: 14px;
+}
+.page-order-checkout .invoice-box .module-form-row{
+ position: absolute;
+ left: 215px;
+ top: -1px;
+ padding: 0;
+ margin: 0;
+}
+.module-form-item-wrapper i{
+ position: absolute;
+ left: 15px;
+ top: 0;
+ font-style: normal;
+ font-size: 16px;
+ color: #bebebe;
+}
+.module-form-row .small-item i{
+ font-size: 14px;
+}
+.page-order-checkout .invoice-box .module-form-item-wrapper{
+ width: 338px;
+ height: 34px;
+ line-height: 34px;
+}
+.module-form-item-wrapper{
+ display: block;
+ position: relative;
+ width: 372px;
+ height: 46px;
+ background-color: #FFF;
+ box-shadow: 0 3px 5px -4px rgba(0,0,0,.4) inset, -1px 0 3px -2px rgba(0,0,0,.1) inset;
+ border: 1px solid #CCC;
+ border-radius: 6px;
+ line-height: 46px;
+ font-size: 16px;
+ opacity: .618;
+ transition: opacity .3s ease-in;
+}
+.page-order-checkout .invoice-box .module-form-item-wrapper i{
+ left: 11px;
+}
+.module-form-item-wrapper input{
+ position: relative;
+ z-index: 3;
+ width: 290px;
+ padding: 0 13px 0 15px;
+ background: 0 0;
+ border: none;
+ font-size: 16px;
+ color: #333;
+}
+.module-form-row .small-item input{
+ padding-left: 15px;
+ margin-top: 8px;
+ width: 137px;
+ font-size: 14px;
+}
+.page-order-checkout .invoice-box .module-form-item-wrapper input{
+ width: 310px;
+ padding-left: 11px;
+}
+.page-order-checkout .invoice-box .invoice-label{
+ position: relative;
+ padding-top: 25px;
+ margin-top: 11px;
+ border-top: 1px solid #E5E5E5;
+ line-height: 12px;
+ text-indent: 10px;
+ font-size: 12px;
+ color: #999;
+}
+.gray-box .gray-sub-title{
+ height: 38px;
+ padding: 0 24px;
+ background: #EEE;
+ border-top: 1px solid #DBDBDB;
+ border-bottom: 1px solid #DBDBDB;
+ line-height: 38px;
+ font-size: 12px;
+ color: #666;
+}
+.ui-goods-cart .cart-table-title{
+ padding: 0 0 0 29px;
+ border-top: none;
+ font-size: 12px;
+}
+.ui-goods-cart .cart-table-title span{
+ float: right;
+ text-align: center;
+}
+.ui-goods-cart .cart-table-title .name{
+ float: left;
+ text-align: left;
+}
+.ui-goods-cart .cart-table-title .num, .ui-goods-cart .cart-table-title .operation, .ui-goods-cart .cart-table-title .price, .ui-goods-cart .cart-table-title .subtotal{
+ width: 130px;
+ padding-right: 29px;
+ text-align: right;
+}
+.ui-goods-cart .cart-table-title .num{
+ width: 132px;
+}
+.ui-goods-cart .cart-table-title .price{
+ width: 120px;
+}
+.ui-goods-cart .cart-group, .ui-goods-cart .cart-items{
+ border-top: 1px solid #EBEBEB;
+}
+.ui-goods-cart .cart-items{
+ position: relative;
+ height: 110px;
+ padding-left: 29px;
+ color: #666;
+}
+.ui-goods-cart .cart-group:first-child, .ui-goods-cart .cart-items:first-child{
+ border-top: none;
+}
+.ui-goods-cart .cart-items .items-choose, .ui-goods-cart .cart-items .items-thumb, .ui-goods-cart .cart-items .name{
+ float: left;
+}
+.ui-goods-cart .cart-items .items-thumb, .ui-goods-cart .cart-items .items-thumb img{
+ width: 78px;
+ height: 78px;
+ border-radius: 4px;
+}
+.ui-goods-cart .cart-items .items-thumb{
+ margin-top: 15px;
+ border: 1px solid #EBEBEB;
+}
+.ui-goods-cart .cart-items .name{
+ display: table;
+ width: 420px;
+ height: 100%;
+ margin-left: 30px;
+ line-height: 24px;
+}
+.ui-goods-cart .cart-items .name-cell{
+ display: table-cell;
+ vertical-align: middle;
+}
+.ui-goods-cart .cart-items .name a{
+ color: #333;
+}
+.ui-goods-cart .cart-items .subtotal{
+ float: right;
+ display: table;
+ width: 129px;
+ height: 100%;
+ padding-right: 29px;
+ text-align: right;
+ line-height: 24px;
+ color: #333;
+}
+.ui-goods-cart .cart-items .subtotal-cell{
+ display: table-cell;
+ vertical-align: middle;
+}
+.ui-goods-cart .cart-items .goods-num, .ui-goods-cart .cart-items .operation, .ui-goods-cart .cart-items .price, .ui-goods-cart .cart-items .select{
+ overflow: hidden;
+ float: right;
+ width: 129px;
+ padding-right: 29px;
+ line-height: 110px;
+ text-align: right;
+ color: #333;
+}
+.ui-goods-cart .cart-items .goods-num{
+ width: 64px;
+ padding: 0 9px 0 90px;
+ text-align: center;
+}
+.ui-goods-cart .cart-items .price{
+ width: 120px;
+}
+.page-order-checkout .order-discount-line{
+ padding: 21px 30px;
+ border-top: 1px solid #EBEBEB;
+ line-height: 30px;
+ text-align: right;
+}
+.page-order-checkout .order-discount-line span{
+ float: right;
+ width: 157px;
+}
+.page-order-checkout .last-payment{
+ padding: 22px 29px 19px 30px;
+ background: linear-gradient(#FCFCFC,#F5F5F5);
+ border-top: 1px solid #DADADA;
+ box-shadow: -3px 0 8px rgba(0,0,0,.04);
+}
+.blue-main-btn, .gray-main-btn, .jianguo-blue-main-btn{
+ display: block;
+ padding: 1px;
+ margin: 0 auto;
+ border-radius: 6px;
+ background: #015e94;
+ background: linear-gradient(#5598c9,#2a6da2);
+ text-align: center;
+ text-shadow: rgba(255,255,255,.496094) 0 1px 0;
+ font-family: 'Microsoft Yahei','微软雅黑','PingFang SC',sans-serif;
+ cursor: pointer;
+ -webkit-user-select: none;
+ -ms-user-select: none;
+ -o-user-select: none;
+ user-select: none;
+}
+.jianguo-blue-main-btn{
+ background: #6383C6;
+ background: linear-gradient(#6383C6,#4262AF);
+ box-shadow: none;
+}
+.big-main-btn{
+ height: 46px;
+}
+.page-order-checkout .payment-blue-bt, .page-order-checkout .payment-blue-bt a{
+ width: 136px;
+ font-size: 16px;
+}
+.blue-main-btn a, .gray-main-btn a, .jianguo-blue-main-btn a{
+ display: block;
+ padding: 2px 0;
+ border-radius: 6px;
+}
+.jianguo-blue-main-btn a{
+ background: linear-gradient(#6F97E5,#527ED9);
+ box-shadow: inset 0 1px 2px #7EA1E8;
+ text-shadow: 0 -1px 0 #4F70B3;
+ color: #FFF;
+ transition: all .3s ease;
+}
+.big-main-btn a{
+ height: 42px;
+ line-height: 42px;
+ width: 136px;
+ font-size: 16px;
+}
+.jianguo-blue-main-btn:hover a{
+ box-shadow: inset 0 1px 1px #7696DE, inset 0 0 2px #627DCA, inset 0 -2px 3px #5A77C7, inset 0 0 100px rgba(48,77,147,.4);
+}
+.page-order-checkout .last-payment .prices{
+ padding: 0 40px;
+ line-height: 50px;
+ font-size: 14px;
+}
+.page-order-checkout .last-payment .prices em{
+ display: inline-block;
+ position: relative;
+ top: 3px;
+ margin-top: -4px;
+ font-size: 24px;
+ color: #D44D44;
+}
diff --git a/Vue-shopping/src/assets/css/font-awesome.css b/Vue-shopping/src/assets/css/font-awesome.css
new file mode 100644
index 0000000..ee906a8
--- /dev/null
+++ b/Vue-shopping/src/assets/css/font-awesome.css
@@ -0,0 +1,2337 @@
+/*!
+ * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
+ * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
+ */
+/* FONT PATH
+ * -------------------------- */
+@font-face {
+ font-family: 'FontAwesome';
+ src: url('../fonts/fontawesome-webfont.eot?v=4.7.0');
+ src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');
+ font-weight: normal;
+ font-style: normal;
+}
+.fa {
+ display: inline-block;
+ font: normal normal normal 14px/1 FontAwesome;
+ font-size: inherit;
+ text-rendering: auto;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+/* makes the font 33% larger relative to the icon container */
+.fa-lg {
+ font-size: 1.33333333em;
+ line-height: 0.75em;
+ vertical-align: -15%;
+}
+.fa-2x {
+ font-size: 2em;
+}
+.fa-3x {
+ font-size: 3em;
+}
+.fa-4x {
+ font-size: 4em;
+}
+.fa-5x {
+ font-size: 5em;
+}
+.fa-fw {
+ width: 1.28571429em;
+ text-align: center;
+}
+.fa-ul {
+ padding-left: 0;
+ margin-left: 2.14285714em;
+ list-style-type: none;
+}
+.fa-ul > li {
+ position: relative;
+}
+.fa-li {
+ position: absolute;
+ left: -2.14285714em;
+ width: 2.14285714em;
+ top: 0.14285714em;
+ text-align: center;
+}
+.fa-li.fa-lg {
+ left: -1.85714286em;
+}
+.fa-border {
+ padding: .2em .25em .15em;
+ border: solid 0.08em #eeeeee;
+ border-radius: .1em;
+}
+.fa-pull-left {
+ float: left;
+}
+.fa-pull-right {
+ float: right;
+}
+.fa.fa-pull-left {
+ margin-right: .3em;
+}
+.fa.fa-pull-right {
+ margin-left: .3em;
+}
+/* Deprecated as of 4.4.0 */
+.pull-right {
+ float: right;
+}
+.pull-left {
+ float: left;
+}
+.fa.pull-left {
+ margin-right: .3em;
+}
+.fa.pull-right {
+ margin-left: .3em;
+}
+.fa-spin {
+ -webkit-animation: fa-spin 2s infinite linear;
+ animation: fa-spin 2s infinite linear;
+}
+.fa-pulse {
+ -webkit-animation: fa-spin 1s infinite steps(8);
+ animation: fa-spin 1s infinite steps(8);
+}
+@-webkit-keyframes fa-spin {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(359deg);
+ transform: rotate(359deg);
+ }
+}
+@keyframes fa-spin {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(359deg);
+ transform: rotate(359deg);
+ }
+}
+.fa-rotate-90 {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
+ -webkit-transform: rotate(90deg);
+ -ms-transform: rotate(90deg);
+ transform: rotate(90deg);
+}
+.fa-rotate-180 {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
+ -webkit-transform: rotate(180deg);
+ -ms-transform: rotate(180deg);
+ transform: rotate(180deg);
+}
+.fa-rotate-270 {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
+ -webkit-transform: rotate(270deg);
+ -ms-transform: rotate(270deg);
+ transform: rotate(270deg);
+}
+.fa-flip-horizontal {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
+ -webkit-transform: scale(-1, 1);
+ -ms-transform: scale(-1, 1);
+ transform: scale(-1, 1);
+}
+.fa-flip-vertical {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
+ -webkit-transform: scale(1, -1);
+ -ms-transform: scale(1, -1);
+ transform: scale(1, -1);
+}
+:root .fa-rotate-90,
+:root .fa-rotate-180,
+:root .fa-rotate-270,
+:root .fa-flip-horizontal,
+:root .fa-flip-vertical {
+ filter: none;
+}
+.fa-stack {
+ position: relative;
+ display: inline-block;
+ width: 2em;
+ height: 2em;
+ line-height: 2em;
+ vertical-align: middle;
+}
+.fa-stack-1x,
+.fa-stack-2x {
+ position: absolute;
+ left: 0;
+ width: 100%;
+ text-align: center;
+}
+.fa-stack-1x {
+ line-height: inherit;
+}
+.fa-stack-2x {
+ font-size: 2em;
+}
+.fa-inverse {
+ color: #ffffff;
+}
+/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
+ readers do not read off random characters that represent icons */
+.fa-glass:before {
+ content: "\f000";
+}
+.fa-music:before {
+ content: "\f001";
+}
+.fa-search:before {
+ content: "\f002";
+}
+.fa-envelope-o:before {
+ content: "\f003";
+}
+.fa-heart:before {
+ content: "\f004";
+}
+.fa-star:before {
+ content: "\f005";
+}
+.fa-star-o:before {
+ content: "\f006";
+}
+.fa-user:before {
+ content: "\f007";
+}
+.fa-film:before {
+ content: "\f008";
+}
+.fa-th-large:before {
+ content: "\f009";
+}
+.fa-th:before {
+ content: "\f00a";
+}
+.fa-th-list:before {
+ content: "\f00b";
+}
+.fa-check:before {
+ content: "\f00c";
+}
+.fa-remove:before,
+.fa-close:before,
+.fa-times:before {
+ content: "\f00d";
+}
+.fa-search-plus:before {
+ content: "\f00e";
+}
+.fa-search-minus:before {
+ content: "\f010";
+}
+.fa-power-off:before {
+ content: "\f011";
+}
+.fa-signal:before {
+ content: "\f012";
+}
+.fa-gear:before,
+.fa-cog:before {
+ content: "\f013";
+}
+.fa-trash-o:before {
+ content: "\f014";
+}
+.fa-home:before {
+ content: "\f015";
+}
+.fa-file-o:before {
+ content: "\f016";
+}
+.fa-clock-o:before {
+ content: "\f017";
+}
+.fa-road:before {
+ content: "\f018";
+}
+.fa-download:before {
+ content: "\f019";
+}
+.fa-arrow-circle-o-down:before {
+ content: "\f01a";
+}
+.fa-arrow-circle-o-up:before {
+ content: "\f01b";
+}
+.fa-inbox:before {
+ content: "\f01c";
+}
+.fa-play-circle-o:before {
+ content: "\f01d";
+}
+.fa-rotate-right:before,
+.fa-repeat:before {
+ content: "\f01e";
+}
+.fa-refresh:before {
+ content: "\f021";
+}
+.fa-list-alt:before {
+ content: "\f022";
+}
+.fa-lock:before {
+ content: "\f023";
+}
+.fa-flag:before {
+ content: "\f024";
+}
+.fa-headphones:before {
+ content: "\f025";
+}
+.fa-volume-off:before {
+ content: "\f026";
+}
+.fa-volume-down:before {
+ content: "\f027";
+}
+.fa-volume-up:before {
+ content: "\f028";
+}
+.fa-qrcode:before {
+ content: "\f029";
+}
+.fa-barcode:before {
+ content: "\f02a";
+}
+.fa-tag:before {
+ content: "\f02b";
+}
+.fa-tags:before {
+ content: "\f02c";
+}
+.fa-book:before {
+ content: "\f02d";
+}
+.fa-bookmark:before {
+ content: "\f02e";
+}
+.fa-print:before {
+ content: "\f02f";
+}
+.fa-camera:before {
+ content: "\f030";
+}
+.fa-font:before {
+ content: "\f031";
+}
+.fa-bold:before {
+ content: "\f032";
+}
+.fa-italic:before {
+ content: "\f033";
+}
+.fa-text-height:before {
+ content: "\f034";
+}
+.fa-text-width:before {
+ content: "\f035";
+}
+.fa-align-left:before {
+ content: "\f036";
+}
+.fa-align-center:before {
+ content: "\f037";
+}
+.fa-align-right:before {
+ content: "\f038";
+}
+.fa-align-justify:before {
+ content: "\f039";
+}
+.fa-list:before {
+ content: "\f03a";
+}
+.fa-dedent:before,
+.fa-outdent:before {
+ content: "\f03b";
+}
+.fa-indent:before {
+ content: "\f03c";
+}
+.fa-video-camera:before {
+ content: "\f03d";
+}
+.fa-photo:before,
+.fa-image:before,
+.fa-picture-o:before {
+ content: "\f03e";
+}
+.fa-pencil:before {
+ content: "\f040";
+}
+.fa-map-marker:before {
+ content: "\f041";
+}
+.fa-adjust:before {
+ content: "\f042";
+}
+.fa-tint:before {
+ content: "\f043";
+}
+.fa-edit:before,
+.fa-pencil-square-o:before {
+ content: "\f044";
+}
+.fa-share-square-o:before {
+ content: "\f045";
+}
+.fa-check-square-o:before {
+ content: "\f046";
+}
+.fa-arrows:before {
+ content: "\f047";
+}
+.fa-step-backward:before {
+ content: "\f048";
+}
+.fa-fast-backward:before {
+ content: "\f049";
+}
+.fa-backward:before {
+ content: "\f04a";
+}
+.fa-play:before {
+ content: "\f04b";
+}
+.fa-pause:before {
+ content: "\f04c";
+}
+.fa-stop:before {
+ content: "\f04d";
+}
+.fa-forward:before {
+ content: "\f04e";
+}
+.fa-fast-forward:before {
+ content: "\f050";
+}
+.fa-step-forward:before {
+ content: "\f051";
+}
+.fa-eject:before {
+ content: "\f052";
+}
+.fa-chevron-left:before {
+ content: "\f053";
+}
+.fa-chevron-right:before {
+ content: "\f054";
+}
+.fa-plus-circle:before {
+ content: "\f055";
+}
+.fa-minus-circle:before {
+ content: "\f056";
+}
+.fa-times-circle:before {
+ content: "\f057";
+}
+.fa-check-circle:before {
+ content: "\f058";
+}
+.fa-question-circle:before {
+ content: "\f059";
+}
+.fa-info-circle:before {
+ content: "\f05a";
+}
+.fa-crosshairs:before {
+ content: "\f05b";
+}
+.fa-times-circle-o:before {
+ content: "\f05c";
+}
+.fa-check-circle-o:before {
+ content: "\f05d";
+}
+.fa-ban:before {
+ content: "\f05e";
+}
+.fa-arrow-left:before {
+ content: "\f060";
+}
+.fa-arrow-right:before {
+ content: "\f061";
+}
+.fa-arrow-up:before {
+ content: "\f062";
+}
+.fa-arrow-down:before {
+ content: "\f063";
+}
+.fa-mail-forward:before,
+.fa-share:before {
+ content: "\f064";
+}
+.fa-expand:before {
+ content: "\f065";
+}
+.fa-compress:before {
+ content: "\f066";
+}
+.fa-plus:before {
+ content: "\f067";
+}
+.fa-minus:before {
+ content: "\f068";
+}
+.fa-asterisk:before {
+ content: "\f069";
+}
+.fa-exclamation-circle:before {
+ content: "\f06a";
+}
+.fa-gift:before {
+ content: "\f06b";
+}
+.fa-leaf:before {
+ content: "\f06c";
+}
+.fa-fire:before {
+ content: "\f06d";
+}
+.fa-eye:before {
+ content: "\f06e";
+}
+.fa-eye-slash:before {
+ content: "\f070";
+}
+.fa-warning:before,
+.fa-exclamation-triangle:before {
+ content: "\f071";
+}
+.fa-plane:before {
+ content: "\f072";
+}
+.fa-calendar:before {
+ content: "\f073";
+}
+.fa-random:before {
+ content: "\f074";
+}
+.fa-comment:before {
+ content: "\f075";
+}
+.fa-magnet:before {
+ content: "\f076";
+}
+.fa-chevron-up:before {
+ content: "\f077";
+}
+.fa-chevron-down:before {
+ content: "\f078";
+}
+.fa-retweet:before {
+ content: "\f079";
+}
+.fa-shopping-cart:before {
+ content: "\f07a";
+}
+.fa-folder:before {
+ content: "\f07b";
+}
+.fa-folder-open:before {
+ content: "\f07c";
+}
+.fa-arrows-v:before {
+ content: "\f07d";
+}
+.fa-arrows-h:before {
+ content: "\f07e";
+}
+.fa-bar-chart-o:before,
+.fa-bar-chart:before {
+ content: "\f080";
+}
+.fa-twitter-square:before {
+ content: "\f081";
+}
+.fa-facebook-square:before {
+ content: "\f082";
+}
+.fa-camera-retro:before {
+ content: "\f083";
+}
+.fa-key:before {
+ content: "\f084";
+}
+.fa-gears:before,
+.fa-cogs:before {
+ content: "\f085";
+}
+.fa-comments:before {
+ content: "\f086";
+}
+.fa-thumbs-o-up:before {
+ content: "\f087";
+}
+.fa-thumbs-o-down:before {
+ content: "\f088";
+}
+.fa-star-half:before {
+ content: "\f089";
+}
+.fa-heart-o:before {
+ content: "\f08a";
+}
+.fa-sign-out:before {
+ content: "\f08b";
+}
+.fa-linkedin-square:before {
+ content: "\f08c";
+}
+.fa-thumb-tack:before {
+ content: "\f08d";
+}
+.fa-external-link:before {
+ content: "\f08e";
+}
+.fa-sign-in:before {
+ content: "\f090";
+}
+.fa-trophy:before {
+ content: "\f091";
+}
+.fa-github-square:before {
+ content: "\f092";
+}
+.fa-upload:before {
+ content: "\f093";
+}
+.fa-lemon-o:before {
+ content: "\f094";
+}
+.fa-phone:before {
+ content: "\f095";
+}
+.fa-square-o:before {
+ content: "\f096";
+}
+.fa-bookmark-o:before {
+ content: "\f097";
+}
+.fa-phone-square:before {
+ content: "\f098";
+}
+.fa-twitter:before {
+ content: "\f099";
+}
+.fa-facebook-f:before,
+.fa-facebook:before {
+ content: "\f09a";
+}
+.fa-github:before {
+ content: "\f09b";
+}
+.fa-unlock:before {
+ content: "\f09c";
+}
+.fa-credit-card:before {
+ content: "\f09d";
+}
+.fa-feed:before,
+.fa-rss:before {
+ content: "\f09e";
+}
+.fa-hdd-o:before {
+ content: "\f0a0";
+}
+.fa-bullhorn:before {
+ content: "\f0a1";
+}
+.fa-bell:before {
+ content: "\f0f3";
+}
+.fa-certificate:before {
+ content: "\f0a3";
+}
+.fa-hand-o-right:before {
+ content: "\f0a4";
+}
+.fa-hand-o-left:before {
+ content: "\f0a5";
+}
+.fa-hand-o-up:before {
+ content: "\f0a6";
+}
+.fa-hand-o-down:before {
+ content: "\f0a7";
+}
+.fa-arrow-circle-left:before {
+ content: "\f0a8";
+}
+.fa-arrow-circle-right:before {
+ content: "\f0a9";
+}
+.fa-arrow-circle-up:before {
+ content: "\f0aa";
+}
+.fa-arrow-circle-down:before {
+ content: "\f0ab";
+}
+.fa-globe:before {
+ content: "\f0ac";
+}
+.fa-wrench:before {
+ content: "\f0ad";
+}
+.fa-tasks:before {
+ content: "\f0ae";
+}
+.fa-filter:before {
+ content: "\f0b0";
+}
+.fa-briefcase:before {
+ content: "\f0b1";
+}
+.fa-arrows-alt:before {
+ content: "\f0b2";
+}
+.fa-group:before,
+.fa-users:before {
+ content: "\f0c0";
+}
+.fa-chain:before,
+.fa-link:before {
+ content: "\f0c1";
+}
+.fa-cloud:before {
+ content: "\f0c2";
+}
+.fa-flask:before {
+ content: "\f0c3";
+}
+.fa-cut:before,
+.fa-scissors:before {
+ content: "\f0c4";
+}
+.fa-copy:before,
+.fa-files-o:before {
+ content: "\f0c5";
+}
+.fa-paperclip:before {
+ content: "\f0c6";
+}
+.fa-save:before,
+.fa-floppy-o:before {
+ content: "\f0c7";
+}
+.fa-square:before {
+ content: "\f0c8";
+}
+.fa-navicon:before,
+.fa-reorder:before,
+.fa-bars:before {
+ content: "\f0c9";
+}
+.fa-list-ul:before {
+ content: "\f0ca";
+}
+.fa-list-ol:before {
+ content: "\f0cb";
+}
+.fa-strikethrough:before {
+ content: "\f0cc";
+}
+.fa-underline:before {
+ content: "\f0cd";
+}
+.fa-table:before {
+ content: "\f0ce";
+}
+.fa-magic:before {
+ content: "\f0d0";
+}
+.fa-truck:before {
+ content: "\f0d1";
+}
+.fa-pinterest:before {
+ content: "\f0d2";
+}
+.fa-pinterest-square:before {
+ content: "\f0d3";
+}
+.fa-google-plus-square:before {
+ content: "\f0d4";
+}
+.fa-google-plus:before {
+ content: "\f0d5";
+}
+.fa-money:before {
+ content: "\f0d6";
+}
+.fa-caret-down:before {
+ content: "\f0d7";
+}
+.fa-caret-up:before {
+ content: "\f0d8";
+}
+.fa-caret-left:before {
+ content: "\f0d9";
+}
+.fa-caret-right:before {
+ content: "\f0da";
+}
+.fa-columns:before {
+ content: "\f0db";
+}
+.fa-unsorted:before,
+.fa-sort:before {
+ content: "\f0dc";
+}
+.fa-sort-down:before,
+.fa-sort-desc:before {
+ content: "\f0dd";
+}
+.fa-sort-up:before,
+.fa-sort-asc:before {
+ content: "\f0de";
+}
+.fa-envelope:before {
+ content: "\f0e0";
+}
+.fa-linkedin:before {
+ content: "\f0e1";
+}
+.fa-rotate-left:before,
+.fa-undo:before {
+ content: "\f0e2";
+}
+.fa-legal:before,
+.fa-gavel:before {
+ content: "\f0e3";
+}
+.fa-dashboard:before,
+.fa-tachometer:before {
+ content: "\f0e4";
+}
+.fa-comment-o:before {
+ content: "\f0e5";
+}
+.fa-comments-o:before {
+ content: "\f0e6";
+}
+.fa-flash:before,
+.fa-bolt:before {
+ content: "\f0e7";
+}
+.fa-sitemap:before {
+ content: "\f0e8";
+}
+.fa-umbrella:before {
+ content: "\f0e9";
+}
+.fa-paste:before,
+.fa-clipboard:before {
+ content: "\f0ea";
+}
+.fa-lightbulb-o:before {
+ content: "\f0eb";
+}
+.fa-exchange:before {
+ content: "\f0ec";
+}
+.fa-cloud-download:before {
+ content: "\f0ed";
+}
+.fa-cloud-upload:before {
+ content: "\f0ee";
+}
+.fa-user-md:before {
+ content: "\f0f0";
+}
+.fa-stethoscope:before {
+ content: "\f0f1";
+}
+.fa-suitcase:before {
+ content: "\f0f2";
+}
+.fa-bell-o:before {
+ content: "\f0a2";
+}
+.fa-coffee:before {
+ content: "\f0f4";
+}
+.fa-cutlery:before {
+ content: "\f0f5";
+}
+.fa-file-text-o:before {
+ content: "\f0f6";
+}
+.fa-building-o:before {
+ content: "\f0f7";
+}
+.fa-hospital-o:before {
+ content: "\f0f8";
+}
+.fa-ambulance:before {
+ content: "\f0f9";
+}
+.fa-medkit:before {
+ content: "\f0fa";
+}
+.fa-fighter-jet:before {
+ content: "\f0fb";
+}
+.fa-beer:before {
+ content: "\f0fc";
+}
+.fa-h-square:before {
+ content: "\f0fd";
+}
+.fa-plus-square:before {
+ content: "\f0fe";
+}
+.fa-angle-double-left:before {
+ content: "\f100";
+}
+.fa-angle-double-right:before {
+ content: "\f101";
+}
+.fa-angle-double-up:before {
+ content: "\f102";
+}
+.fa-angle-double-down:before {
+ content: "\f103";
+}
+.fa-angle-left:before {
+ content: "\f104";
+}
+.fa-angle-right:before {
+ content: "\f105";
+}
+.fa-angle-up:before {
+ content: "\f106";
+}
+.fa-angle-down:before {
+ content: "\f107";
+}
+.fa-desktop:before {
+ content: "\f108";
+}
+.fa-laptop:before {
+ content: "\f109";
+}
+.fa-tablet:before {
+ content: "\f10a";
+}
+.fa-mobile-phone:before,
+.fa-mobile:before {
+ content: "\f10b";
+}
+.fa-circle-o:before {
+ content: "\f10c";
+}
+.fa-quote-left:before {
+ content: "\f10d";
+}
+.fa-quote-right:before {
+ content: "\f10e";
+}
+.fa-spinner:before {
+ content: "\f110";
+}
+.fa-circle:before {
+ content: "\f111";
+}
+.fa-mail-reply:before,
+.fa-reply:before {
+ content: "\f112";
+}
+.fa-github-alt:before {
+ content: "\f113";
+}
+.fa-folder-o:before {
+ content: "\f114";
+}
+.fa-folder-open-o:before {
+ content: "\f115";
+}
+.fa-smile-o:before {
+ content: "\f118";
+}
+.fa-frown-o:before {
+ content: "\f119";
+}
+.fa-meh-o:before {
+ content: "\f11a";
+}
+.fa-gamepad:before {
+ content: "\f11b";
+}
+.fa-keyboard-o:before {
+ content: "\f11c";
+}
+.fa-flag-o:before {
+ content: "\f11d";
+}
+.fa-flag-checkered:before {
+ content: "\f11e";
+}
+.fa-terminal:before {
+ content: "\f120";
+}
+.fa-code:before {
+ content: "\f121";
+}
+.fa-mail-reply-all:before,
+.fa-reply-all:before {
+ content: "\f122";
+}
+.fa-star-half-empty:before,
+.fa-star-half-full:before,
+.fa-star-half-o:before {
+ content: "\f123";
+}
+.fa-location-arrow:before {
+ content: "\f124";
+}
+.fa-crop:before {
+ content: "\f125";
+}
+.fa-code-fork:before {
+ content: "\f126";
+}
+.fa-unlink:before,
+.fa-chain-broken:before {
+ content: "\f127";
+}
+.fa-question:before {
+ content: "\f128";
+}
+.fa-info:before {
+ content: "\f129";
+}
+.fa-exclamation:before {
+ content: "\f12a";
+}
+.fa-superscript:before {
+ content: "\f12b";
+}
+.fa-subscript:before {
+ content: "\f12c";
+}
+.fa-eraser:before {
+ content: "\f12d";
+}
+.fa-puzzle-piece:before {
+ content: "\f12e";
+}
+.fa-microphone:before {
+ content: "\f130";
+}
+.fa-microphone-slash:before {
+ content: "\f131";
+}
+.fa-shield:before {
+ content: "\f132";
+}
+.fa-calendar-o:before {
+ content: "\f133";
+}
+.fa-fire-extinguisher:before {
+ content: "\f134";
+}
+.fa-rocket:before {
+ content: "\f135";
+}
+.fa-maxcdn:before {
+ content: "\f136";
+}
+.fa-chevron-circle-left:before {
+ content: "\f137";
+}
+.fa-chevron-circle-right:before {
+ content: "\f138";
+}
+.fa-chevron-circle-up:before {
+ content: "\f139";
+}
+.fa-chevron-circle-down:before {
+ content: "\f13a";
+}
+.fa-html5:before {
+ content: "\f13b";
+}
+.fa-css3:before {
+ content: "\f13c";
+}
+.fa-anchor:before {
+ content: "\f13d";
+}
+.fa-unlock-alt:before {
+ content: "\f13e";
+}
+.fa-bullseye:before {
+ content: "\f140";
+}
+.fa-ellipsis-h:before {
+ content: "\f141";
+}
+.fa-ellipsis-v:before {
+ content: "\f142";
+}
+.fa-rss-square:before {
+ content: "\f143";
+}
+.fa-play-circle:before {
+ content: "\f144";
+}
+.fa-ticket:before {
+ content: "\f145";
+}
+.fa-minus-square:before {
+ content: "\f146";
+}
+.fa-minus-square-o:before {
+ content: "\f147";
+}
+.fa-level-up:before {
+ content: "\f148";
+}
+.fa-level-down:before {
+ content: "\f149";
+}
+.fa-check-square:before {
+ content: "\f14a";
+}
+.fa-pencil-square:before {
+ content: "\f14b";
+}
+.fa-external-link-square:before {
+ content: "\f14c";
+}
+.fa-share-square:before {
+ content: "\f14d";
+}
+.fa-compass:before {
+ content: "\f14e";
+}
+.fa-toggle-down:before,
+.fa-caret-square-o-down:before {
+ content: "\f150";
+}
+.fa-toggle-up:before,
+.fa-caret-square-o-up:before {
+ content: "\f151";
+}
+.fa-toggle-right:before,
+.fa-caret-square-o-right:before {
+ content: "\f152";
+}
+.fa-euro:before,
+.fa-eur:before {
+ content: "\f153";
+}
+.fa-gbp:before {
+ content: "\f154";
+}
+.fa-dollar:before,
+.fa-usd:before {
+ content: "\f155";
+}
+.fa-rupee:before,
+.fa-inr:before {
+ content: "\f156";
+}
+.fa-cny:before,
+.fa-rmb:before,
+.fa-yen:before,
+.fa-jpy:before {
+ content: "\f157";
+}
+.fa-ruble:before,
+.fa-rouble:before,
+.fa-rub:before {
+ content: "\f158";
+}
+.fa-won:before,
+.fa-krw:before {
+ content: "\f159";
+}
+.fa-bitcoin:before,
+.fa-btc:before {
+ content: "\f15a";
+}
+.fa-file:before {
+ content: "\f15b";
+}
+.fa-file-text:before {
+ content: "\f15c";
+}
+.fa-sort-alpha-asc:before {
+ content: "\f15d";
+}
+.fa-sort-alpha-desc:before {
+ content: "\f15e";
+}
+.fa-sort-amount-asc:before {
+ content: "\f160";
+}
+.fa-sort-amount-desc:before {
+ content: "\f161";
+}
+.fa-sort-numeric-asc:before {
+ content: "\f162";
+}
+.fa-sort-numeric-desc:before {
+ content: "\f163";
+}
+.fa-thumbs-up:before {
+ content: "\f164";
+}
+.fa-thumbs-down:before {
+ content: "\f165";
+}
+.fa-youtube-square:before {
+ content: "\f166";
+}
+.fa-youtube:before {
+ content: "\f167";
+}
+.fa-xing:before {
+ content: "\f168";
+}
+.fa-xing-square:before {
+ content: "\f169";
+}
+.fa-youtube-play:before {
+ content: "\f16a";
+}
+.fa-dropbox:before {
+ content: "\f16b";
+}
+.fa-stack-overflow:before {
+ content: "\f16c";
+}
+.fa-instagram:before {
+ content: "\f16d";
+}
+.fa-flickr:before {
+ content: "\f16e";
+}
+.fa-adn:before {
+ content: "\f170";
+}
+.fa-bitbucket:before {
+ content: "\f171";
+}
+.fa-bitbucket-square:before {
+ content: "\f172";
+}
+.fa-tumblr:before {
+ content: "\f173";
+}
+.fa-tumblr-square:before {
+ content: "\f174";
+}
+.fa-long-arrow-down:before {
+ content: "\f175";
+}
+.fa-long-arrow-up:before {
+ content: "\f176";
+}
+.fa-long-arrow-left:before {
+ content: "\f177";
+}
+.fa-long-arrow-right:before {
+ content: "\f178";
+}
+.fa-apple:before {
+ content: "\f179";
+}
+.fa-windows:before {
+ content: "\f17a";
+}
+.fa-android:before {
+ content: "\f17b";
+}
+.fa-linux:before {
+ content: "\f17c";
+}
+.fa-dribbble:before {
+ content: "\f17d";
+}
+.fa-skype:before {
+ content: "\f17e";
+}
+.fa-foursquare:before {
+ content: "\f180";
+}
+.fa-trello:before {
+ content: "\f181";
+}
+.fa-female:before {
+ content: "\f182";
+}
+.fa-male:before {
+ content: "\f183";
+}
+.fa-gittip:before,
+.fa-gratipay:before {
+ content: "\f184";
+}
+.fa-sun-o:before {
+ content: "\f185";
+}
+.fa-moon-o:before {
+ content: "\f186";
+}
+.fa-archive:before {
+ content: "\f187";
+}
+.fa-bug:before {
+ content: "\f188";
+}
+.fa-vk:before {
+ content: "\f189";
+}
+.fa-weibo:before {
+ content: "\f18a";
+}
+.fa-renren:before {
+ content: "\f18b";
+}
+.fa-pagelines:before {
+ content: "\f18c";
+}
+.fa-stack-exchange:before {
+ content: "\f18d";
+}
+.fa-arrow-circle-o-right:before {
+ content: "\f18e";
+}
+.fa-arrow-circle-o-left:before {
+ content: "\f190";
+}
+.fa-toggle-left:before,
+.fa-caret-square-o-left:before {
+ content: "\f191";
+}
+.fa-dot-circle-o:before {
+ content: "\f192";
+}
+.fa-wheelchair:before {
+ content: "\f193";
+}
+.fa-vimeo-square:before {
+ content: "\f194";
+}
+.fa-turkish-lira:before,
+.fa-try:before {
+ content: "\f195";
+}
+.fa-plus-square-o:before {
+ content: "\f196";
+}
+.fa-space-shuttle:before {
+ content: "\f197";
+}
+.fa-slack:before {
+ content: "\f198";
+}
+.fa-envelope-square:before {
+ content: "\f199";
+}
+.fa-wordpress:before {
+ content: "\f19a";
+}
+.fa-openid:before {
+ content: "\f19b";
+}
+.fa-institution:before,
+.fa-bank:before,
+.fa-university:before {
+ content: "\f19c";
+}
+.fa-mortar-board:before,
+.fa-graduation-cap:before {
+ content: "\f19d";
+}
+.fa-yahoo:before {
+ content: "\f19e";
+}
+.fa-google:before {
+ content: "\f1a0";
+}
+.fa-reddit:before {
+ content: "\f1a1";
+}
+.fa-reddit-square:before {
+ content: "\f1a2";
+}
+.fa-stumbleupon-circle:before {
+ content: "\f1a3";
+}
+.fa-stumbleupon:before {
+ content: "\f1a4";
+}
+.fa-delicious:before {
+ content: "\f1a5";
+}
+.fa-digg:before {
+ content: "\f1a6";
+}
+.fa-pied-piper-pp:before {
+ content: "\f1a7";
+}
+.fa-pied-piper-alt:before {
+ content: "\f1a8";
+}
+.fa-drupal:before {
+ content: "\f1a9";
+}
+.fa-joomla:before {
+ content: "\f1aa";
+}
+.fa-language:before {
+ content: "\f1ab";
+}
+.fa-fax:before {
+ content: "\f1ac";
+}
+.fa-building:before {
+ content: "\f1ad";
+}
+.fa-child:before {
+ content: "\f1ae";
+}
+.fa-paw:before {
+ content: "\f1b0";
+}
+.fa-spoon:before {
+ content: "\f1b1";
+}
+.fa-cube:before {
+ content: "\f1b2";
+}
+.fa-cubes:before {
+ content: "\f1b3";
+}
+.fa-behance:before {
+ content: "\f1b4";
+}
+.fa-behance-square:before {
+ content: "\f1b5";
+}
+.fa-steam:before {
+ content: "\f1b6";
+}
+.fa-steam-square:before {
+ content: "\f1b7";
+}
+.fa-recycle:before {
+ content: "\f1b8";
+}
+.fa-automobile:before,
+.fa-car:before {
+ content: "\f1b9";
+}
+.fa-cab:before,
+.fa-taxi:before {
+ content: "\f1ba";
+}
+.fa-tree:before {
+ content: "\f1bb";
+}
+.fa-spotify:before {
+ content: "\f1bc";
+}
+.fa-deviantart:before {
+ content: "\f1bd";
+}
+.fa-soundcloud:before {
+ content: "\f1be";
+}
+.fa-database:before {
+ content: "\f1c0";
+}
+.fa-file-pdf-o:before {
+ content: "\f1c1";
+}
+.fa-file-word-o:before {
+ content: "\f1c2";
+}
+.fa-file-excel-o:before {
+ content: "\f1c3";
+}
+.fa-file-powerpoint-o:before {
+ content: "\f1c4";
+}
+.fa-file-photo-o:before,
+.fa-file-picture-o:before,
+.fa-file-image-o:before {
+ content: "\f1c5";
+}
+.fa-file-zip-o:before,
+.fa-file-archive-o:before {
+ content: "\f1c6";
+}
+.fa-file-sound-o:before,
+.fa-file-audio-o:before {
+ content: "\f1c7";
+}
+.fa-file-movie-o:before,
+.fa-file-video-o:before {
+ content: "\f1c8";
+}
+.fa-file-code-o:before {
+ content: "\f1c9";
+}
+.fa-vine:before {
+ content: "\f1ca";
+}
+.fa-codepen:before {
+ content: "\f1cb";
+}
+.fa-jsfiddle:before {
+ content: "\f1cc";
+}
+.fa-life-bouy:before,
+.fa-life-buoy:before,
+.fa-life-saver:before,
+.fa-support:before,
+.fa-life-ring:before {
+ content: "\f1cd";
+}
+.fa-circle-o-notch:before {
+ content: "\f1ce";
+}
+.fa-ra:before,
+.fa-resistance:before,
+.fa-rebel:before {
+ content: "\f1d0";
+}
+.fa-ge:before,
+.fa-empire:before {
+ content: "\f1d1";
+}
+.fa-git-square:before {
+ content: "\f1d2";
+}
+.fa-git:before {
+ content: "\f1d3";
+}
+.fa-y-combinator-square:before,
+.fa-yc-square:before,
+.fa-hacker-news:before {
+ content: "\f1d4";
+}
+.fa-tencent-weibo:before {
+ content: "\f1d5";
+}
+.fa-qq:before {
+ content: "\f1d6";
+}
+.fa-wechat:before,
+.fa-weixin:before {
+ content: "\f1d7";
+}
+.fa-send:before,
+.fa-paper-plane:before {
+ content: "\f1d8";
+}
+.fa-send-o:before,
+.fa-paper-plane-o:before {
+ content: "\f1d9";
+}
+.fa-history:before {
+ content: "\f1da";
+}
+.fa-circle-thin:before {
+ content: "\f1db";
+}
+.fa-header:before {
+ content: "\f1dc";
+}
+.fa-paragraph:before {
+ content: "\f1dd";
+}
+.fa-sliders:before {
+ content: "\f1de";
+}
+.fa-share-alt:before {
+ content: "\f1e0";
+}
+.fa-share-alt-square:before {
+ content: "\f1e1";
+}
+.fa-bomb:before {
+ content: "\f1e2";
+}
+.fa-soccer-ball-o:before,
+.fa-futbol-o:before {
+ content: "\f1e3";
+}
+.fa-tty:before {
+ content: "\f1e4";
+}
+.fa-binoculars:before {
+ content: "\f1e5";
+}
+.fa-plug:before {
+ content: "\f1e6";
+}
+.fa-slideshare:before {
+ content: "\f1e7";
+}
+.fa-twitch:before {
+ content: "\f1e8";
+}
+.fa-yelp:before {
+ content: "\f1e9";
+}
+.fa-newspaper-o:before {
+ content: "\f1ea";
+}
+.fa-wifi:before {
+ content: "\f1eb";
+}
+.fa-calculator:before {
+ content: "\f1ec";
+}
+.fa-paypal:before {
+ content: "\f1ed";
+}
+.fa-google-wallet:before {
+ content: "\f1ee";
+}
+.fa-cc-visa:before {
+ content: "\f1f0";
+}
+.fa-cc-mastercard:before {
+ content: "\f1f1";
+}
+.fa-cc-discover:before {
+ content: "\f1f2";
+}
+.fa-cc-amex:before {
+ content: "\f1f3";
+}
+.fa-cc-paypal:before {
+ content: "\f1f4";
+}
+.fa-cc-stripe:before {
+ content: "\f1f5";
+}
+.fa-bell-slash:before {
+ content: "\f1f6";
+}
+.fa-bell-slash-o:before {
+ content: "\f1f7";
+}
+.fa-trash:before {
+ content: "\f1f8";
+}
+.fa-copyright:before {
+ content: "\f1f9";
+}
+.fa-at:before {
+ content: "\f1fa";
+}
+.fa-eyedropper:before {
+ content: "\f1fb";
+}
+.fa-paint-brush:before {
+ content: "\f1fc";
+}
+.fa-birthday-cake:before {
+ content: "\f1fd";
+}
+.fa-area-chart:before {
+ content: "\f1fe";
+}
+.fa-pie-chart:before {
+ content: "\f200";
+}
+.fa-line-chart:before {
+ content: "\f201";
+}
+.fa-lastfm:before {
+ content: "\f202";
+}
+.fa-lastfm-square:before {
+ content: "\f203";
+}
+.fa-toggle-off:before {
+ content: "\f204";
+}
+.fa-toggle-on:before {
+ content: "\f205";
+}
+.fa-bicycle:before {
+ content: "\f206";
+}
+.fa-bus:before {
+ content: "\f207";
+}
+.fa-ioxhost:before {
+ content: "\f208";
+}
+.fa-angellist:before {
+ content: "\f209";
+}
+.fa-cc:before {
+ content: "\f20a";
+}
+.fa-shekel:before,
+.fa-sheqel:before,
+.fa-ils:before {
+ content: "\f20b";
+}
+.fa-meanpath:before {
+ content: "\f20c";
+}
+.fa-buysellads:before {
+ content: "\f20d";
+}
+.fa-connectdevelop:before {
+ content: "\f20e";
+}
+.fa-dashcube:before {
+ content: "\f210";
+}
+.fa-forumbee:before {
+ content: "\f211";
+}
+.fa-leanpub:before {
+ content: "\f212";
+}
+.fa-sellsy:before {
+ content: "\f213";
+}
+.fa-shirtsinbulk:before {
+ content: "\f214";
+}
+.fa-simplybuilt:before {
+ content: "\f215";
+}
+.fa-skyatlas:before {
+ content: "\f216";
+}
+.fa-cart-plus:before {
+ content: "\f217";
+}
+.fa-cart-arrow-down:before {
+ content: "\f218";
+}
+.fa-diamond:before {
+ content: "\f219";
+}
+.fa-ship:before {
+ content: "\f21a";
+}
+.fa-user-secret:before {
+ content: "\f21b";
+}
+.fa-motorcycle:before {
+ content: "\f21c";
+}
+.fa-street-view:before {
+ content: "\f21d";
+}
+.fa-heartbeat:before {
+ content: "\f21e";
+}
+.fa-venus:before {
+ content: "\f221";
+}
+.fa-mars:before {
+ content: "\f222";
+}
+.fa-mercury:before {
+ content: "\f223";
+}
+.fa-intersex:before,
+.fa-transgender:before {
+ content: "\f224";
+}
+.fa-transgender-alt:before {
+ content: "\f225";
+}
+.fa-venus-double:before {
+ content: "\f226";
+}
+.fa-mars-double:before {
+ content: "\f227";
+}
+.fa-venus-mars:before {
+ content: "\f228";
+}
+.fa-mars-stroke:before {
+ content: "\f229";
+}
+.fa-mars-stroke-v:before {
+ content: "\f22a";
+}
+.fa-mars-stroke-h:before {
+ content: "\f22b";
+}
+.fa-neuter:before {
+ content: "\f22c";
+}
+.fa-genderless:before {
+ content: "\f22d";
+}
+.fa-facebook-official:before {
+ content: "\f230";
+}
+.fa-pinterest-p:before {
+ content: "\f231";
+}
+.fa-whatsapp:before {
+ content: "\f232";
+}
+.fa-server:before {
+ content: "\f233";
+}
+.fa-user-plus:before {
+ content: "\f234";
+}
+.fa-user-times:before {
+ content: "\f235";
+}
+.fa-hotel:before,
+.fa-bed:before {
+ content: "\f236";
+}
+.fa-viacoin:before {
+ content: "\f237";
+}
+.fa-train:before {
+ content: "\f238";
+}
+.fa-subway:before {
+ content: "\f239";
+}
+.fa-medium:before {
+ content: "\f23a";
+}
+.fa-yc:before,
+.fa-y-combinator:before {
+ content: "\f23b";
+}
+.fa-optin-monster:before {
+ content: "\f23c";
+}
+.fa-opencart:before {
+ content: "\f23d";
+}
+.fa-expeditedssl:before {
+ content: "\f23e";
+}
+.fa-battery-4:before,
+.fa-battery:before,
+.fa-battery-full:before {
+ content: "\f240";
+}
+.fa-battery-3:before,
+.fa-battery-three-quarters:before {
+ content: "\f241";
+}
+.fa-battery-2:before,
+.fa-battery-half:before {
+ content: "\f242";
+}
+.fa-battery-1:before,
+.fa-battery-quarter:before {
+ content: "\f243";
+}
+.fa-battery-0:before,
+.fa-battery-empty:before {
+ content: "\f244";
+}
+.fa-mouse-pointer:before {
+ content: "\f245";
+}
+.fa-i-cursor:before {
+ content: "\f246";
+}
+.fa-object-group:before {
+ content: "\f247";
+}
+.fa-object-ungroup:before {
+ content: "\f248";
+}
+.fa-sticky-note:before {
+ content: "\f249";
+}
+.fa-sticky-note-o:before {
+ content: "\f24a";
+}
+.fa-cc-jcb:before {
+ content: "\f24b";
+}
+.fa-cc-diners-club:before {
+ content: "\f24c";
+}
+.fa-clone:before {
+ content: "\f24d";
+}
+.fa-balance-scale:before {
+ content: "\f24e";
+}
+.fa-hourglass-o:before {
+ content: "\f250";
+}
+.fa-hourglass-1:before,
+.fa-hourglass-start:before {
+ content: "\f251";
+}
+.fa-hourglass-2:before,
+.fa-hourglass-half:before {
+ content: "\f252";
+}
+.fa-hourglass-3:before,
+.fa-hourglass-end:before {
+ content: "\f253";
+}
+.fa-hourglass:before {
+ content: "\f254";
+}
+.fa-hand-grab-o:before,
+.fa-hand-rock-o:before {
+ content: "\f255";
+}
+.fa-hand-stop-o:before,
+.fa-hand-paper-o:before {
+ content: "\f256";
+}
+.fa-hand-scissors-o:before {
+ content: "\f257";
+}
+.fa-hand-lizard-o:before {
+ content: "\f258";
+}
+.fa-hand-spock-o:before {
+ content: "\f259";
+}
+.fa-hand-pointer-o:before {
+ content: "\f25a";
+}
+.fa-hand-peace-o:before {
+ content: "\f25b";
+}
+.fa-trademark:before {
+ content: "\f25c";
+}
+.fa-registered:before {
+ content: "\f25d";
+}
+.fa-creative-commons:before {
+ content: "\f25e";
+}
+.fa-gg:before {
+ content: "\f260";
+}
+.fa-gg-circle:before {
+ content: "\f261";
+}
+.fa-tripadvisor:before {
+ content: "\f262";
+}
+.fa-odnoklassniki:before {
+ content: "\f263";
+}
+.fa-odnoklassniki-square:before {
+ content: "\f264";
+}
+.fa-get-pocket:before {
+ content: "\f265";
+}
+.fa-wikipedia-w:before {
+ content: "\f266";
+}
+.fa-safari:before {
+ content: "\f267";
+}
+.fa-chrome:before {
+ content: "\f268";
+}
+.fa-firefox:before {
+ content: "\f269";
+}
+.fa-opera:before {
+ content: "\f26a";
+}
+.fa-internet-explorer:before {
+ content: "\f26b";
+}
+.fa-tv:before,
+.fa-television:before {
+ content: "\f26c";
+}
+.fa-contao:before {
+ content: "\f26d";
+}
+.fa-500px:before {
+ content: "\f26e";
+}
+.fa-amazon:before {
+ content: "\f270";
+}
+.fa-calendar-plus-o:before {
+ content: "\f271";
+}
+.fa-calendar-minus-o:before {
+ content: "\f272";
+}
+.fa-calendar-times-o:before {
+ content: "\f273";
+}
+.fa-calendar-check-o:before {
+ content: "\f274";
+}
+.fa-industry:before {
+ content: "\f275";
+}
+.fa-map-pin:before {
+ content: "\f276";
+}
+.fa-map-signs:before {
+ content: "\f277";
+}
+.fa-map-o:before {
+ content: "\f278";
+}
+.fa-map:before {
+ content: "\f279";
+}
+.fa-commenting:before {
+ content: "\f27a";
+}
+.fa-commenting-o:before {
+ content: "\f27b";
+}
+.fa-houzz:before {
+ content: "\f27c";
+}
+.fa-vimeo:before {
+ content: "\f27d";
+}
+.fa-black-tie:before {
+ content: "\f27e";
+}
+.fa-fonticons:before {
+ content: "\f280";
+}
+.fa-reddit-alien:before {
+ content: "\f281";
+}
+.fa-edge:before {
+ content: "\f282";
+}
+.fa-credit-card-alt:before {
+ content: "\f283";
+}
+.fa-codiepie:before {
+ content: "\f284";
+}
+.fa-modx:before {
+ content: "\f285";
+}
+.fa-fort-awesome:before {
+ content: "\f286";
+}
+.fa-usb:before {
+ content: "\f287";
+}
+.fa-product-hunt:before {
+ content: "\f288";
+}
+.fa-mixcloud:before {
+ content: "\f289";
+}
+.fa-scribd:before {
+ content: "\f28a";
+}
+.fa-pause-circle:before {
+ content: "\f28b";
+}
+.fa-pause-circle-o:before {
+ content: "\f28c";
+}
+.fa-stop-circle:before {
+ content: "\f28d";
+}
+.fa-stop-circle-o:before {
+ content: "\f28e";
+}
+.fa-shopping-bag:before {
+ content: "\f290";
+}
+.fa-shopping-basket:before {
+ content: "\f291";
+}
+.fa-hashtag:before {
+ content: "\f292";
+}
+.fa-bluetooth:before {
+ content: "\f293";
+}
+.fa-bluetooth-b:before {
+ content: "\f294";
+}
+.fa-percent:before {
+ content: "\f295";
+}
+.fa-gitlab:before {
+ content: "\f296";
+}
+.fa-wpbeginner:before {
+ content: "\f297";
+}
+.fa-wpforms:before {
+ content: "\f298";
+}
+.fa-envira:before {
+ content: "\f299";
+}
+.fa-universal-access:before {
+ content: "\f29a";
+}
+.fa-wheelchair-alt:before {
+ content: "\f29b";
+}
+.fa-question-circle-o:before {
+ content: "\f29c";
+}
+.fa-blind:before {
+ content: "\f29d";
+}
+.fa-audio-description:before {
+ content: "\f29e";
+}
+.fa-volume-control-phone:before {
+ content: "\f2a0";
+}
+.fa-braille:before {
+ content: "\f2a1";
+}
+.fa-assistive-listening-systems:before {
+ content: "\f2a2";
+}
+.fa-asl-interpreting:before,
+.fa-american-sign-language-interpreting:before {
+ content: "\f2a3";
+}
+.fa-deafness:before,
+.fa-hard-of-hearing:before,
+.fa-deaf:before {
+ content: "\f2a4";
+}
+.fa-glide:before {
+ content: "\f2a5";
+}
+.fa-glide-g:before {
+ content: "\f2a6";
+}
+.fa-signing:before,
+.fa-sign-language:before {
+ content: "\f2a7";
+}
+.fa-low-vision:before {
+ content: "\f2a8";
+}
+.fa-viadeo:before {
+ content: "\f2a9";
+}
+.fa-viadeo-square:before {
+ content: "\f2aa";
+}
+.fa-snapchat:before {
+ content: "\f2ab";
+}
+.fa-snapchat-ghost:before {
+ content: "\f2ac";
+}
+.fa-snapchat-square:before {
+ content: "\f2ad";
+}
+.fa-pied-piper:before {
+ content: "\f2ae";
+}
+.fa-first-order:before {
+ content: "\f2b0";
+}
+.fa-yoast:before {
+ content: "\f2b1";
+}
+.fa-themeisle:before {
+ content: "\f2b2";
+}
+.fa-google-plus-circle:before,
+.fa-google-plus-official:before {
+ content: "\f2b3";
+}
+.fa-fa:before,
+.fa-font-awesome:before {
+ content: "\f2b4";
+}
+.fa-handshake-o:before {
+ content: "\f2b5";
+}
+.fa-envelope-open:before {
+ content: "\f2b6";
+}
+.fa-envelope-open-o:before {
+ content: "\f2b7";
+}
+.fa-linode:before {
+ content: "\f2b8";
+}
+.fa-address-book:before {
+ content: "\f2b9";
+}
+.fa-address-book-o:before {
+ content: "\f2ba";
+}
+.fa-vcard:before,
+.fa-address-card:before {
+ content: "\f2bb";
+}
+.fa-vcard-o:before,
+.fa-address-card-o:before {
+ content: "\f2bc";
+}
+.fa-user-circle:before {
+ content: "\f2bd";
+}
+.fa-user-circle-o:before {
+ content: "\f2be";
+}
+.fa-user-o:before {
+ content: "\f2c0";
+}
+.fa-id-badge:before {
+ content: "\f2c1";
+}
+.fa-drivers-license:before,
+.fa-id-card:before {
+ content: "\f2c2";
+}
+.fa-drivers-license-o:before,
+.fa-id-card-o:before {
+ content: "\f2c3";
+}
+.fa-quora:before {
+ content: "\f2c4";
+}
+.fa-free-code-camp:before {
+ content: "\f2c5";
+}
+.fa-telegram:before {
+ content: "\f2c6";
+}
+.fa-thermometer-4:before,
+.fa-thermometer:before,
+.fa-thermometer-full:before {
+ content: "\f2c7";
+}
+.fa-thermometer-3:before,
+.fa-thermometer-three-quarters:before {
+ content: "\f2c8";
+}
+.fa-thermometer-2:before,
+.fa-thermometer-half:before {
+ content: "\f2c9";
+}
+.fa-thermometer-1:before,
+.fa-thermometer-quarter:before {
+ content: "\f2ca";
+}
+.fa-thermometer-0:before,
+.fa-thermometer-empty:before {
+ content: "\f2cb";
+}
+.fa-shower:before {
+ content: "\f2cc";
+}
+.fa-bathtub:before,
+.fa-s15:before,
+.fa-bath:before {
+ content: "\f2cd";
+}
+.fa-podcast:before {
+ content: "\f2ce";
+}
+.fa-window-maximize:before {
+ content: "\f2d0";
+}
+.fa-window-minimize:before {
+ content: "\f2d1";
+}
+.fa-window-restore:before {
+ content: "\f2d2";
+}
+.fa-times-rectangle:before,
+.fa-window-close:before {
+ content: "\f2d3";
+}
+.fa-times-rectangle-o:before,
+.fa-window-close-o:before {
+ content: "\f2d4";
+}
+.fa-bandcamp:before {
+ content: "\f2d5";
+}
+.fa-grav:before {
+ content: "\f2d6";
+}
+.fa-etsy:before {
+ content: "\f2d7";
+}
+.fa-imdb:before {
+ content: "\f2d8";
+}
+.fa-ravelry:before {
+ content: "\f2d9";
+}
+.fa-eercast:before {
+ content: "\f2da";
+}
+.fa-microchip:before {
+ content: "\f2db";
+}
+.fa-snowflake-o:before {
+ content: "\f2dc";
+}
+.fa-superpowers:before {
+ content: "\f2dd";
+}
+.fa-wpexplorer:before {
+ content: "\f2de";
+}
+.fa-meetup:before {
+ content: "\f2e0";
+}
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ border: 0;
+}
+.sr-only-focusable:active,
+.sr-only-focusable:focus {
+ position: static;
+ width: auto;
+ height: auto;
+ margin: 0;
+ overflow: visible;
+ clip: auto;
+}
diff --git a/Vue-shopping/src/assets/css/font-awesome.min.css b/Vue-shopping/src/assets/css/font-awesome.min.css
new file mode 100644
index 0000000..540440c
--- /dev/null
+++ b/Vue-shopping/src/assets/css/font-awesome.min.css
@@ -0,0 +1,4 @@
+/*!
+ * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
+ * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
+ */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}
diff --git a/Vue-shopping/src/assets/css/goodsList.css b/Vue-shopping/src/assets/css/goodsList.css
new file mode 100644
index 0000000..3c0475b
--- /dev/null
+++ b/Vue-shopping/src/assets/css/goodsList.css
@@ -0,0 +1,225 @@
+@charset "utf-8";
+.sku-box{
+ position: relative;
+}
+.sort-option{
+ border-top: 1px solid #D8D8D8;
+ color: #999;
+}
+.sort-option ul{
+ height: 60px;
+ line-height: 60px;
+}
+.sort-option li{
+ position: relative;
+ float: left;
+ padding-left: 42px;
+}
+.sort-option li:first-child{
+ padding-left: 9px;
+}
+.sort-option li:before{
+ content: ' ';
+ display: block;
+ position: absolute;
+ left: 20px;
+ top: 50%;
+ width: 2px;
+ height: 2px;
+ margin-top: -1px;
+ background: #C7C7C7;
+}
+.sort-option li:first-child:before{
+ display: none;
+}
+.sort-option a{
+ display: block;
+ font-size: 12px;
+ color: #999;
+}
+.sort-option a.active, .sort-option a:hover{
+ color: #5683EA;
+}
+.gray-box{
+ overflow: hidden;
+ background: #fff;
+ border-radius: 8px;
+ border: 1px solid #dcdcdc;
+ border-color: rgba(0,0,0,.14);
+ box-shadow: 0 3px 8px -6px rgba(0,0,0,.1);
+}
+.sku-box .item-box{
+ clear: both;
+ overflow: hidden;
+ margin: 0 -1px -1px -1px;
+}
+.sku-box .item{
+ position: relative;
+ float: left;
+ border-right: 1px solid #efefef;
+ border-bottom: 1px solid #efefef;
+ width: 25%;
+ height: 429px;
+ background: #fff;
+ box-sizing: border-box
+}
+.sku-box .item:hover{
+ box-shadow: 0 0 38px rgba(0,0,0,.08) inset;
+ transition: all .15s ease;
+}
+.sku-box .item .item-img img{
+ display: block;
+ width: 206px;
+ height: 206px;
+ margin: 50px auto 10px;
+}
+.sku-box .item h3, .sku-box .item h6{
+ overflow: hidden;
+ text-align: center;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+.sku-box .item h6{
+ line-height: 1.2;
+ font-size: 16px;
+ color: #424242;
+ margin: 0 auto;
+ padding: 0 14px;
+}
+.sku-box .item h3{
+ line-height: 1.2;
+ font-size: 12px;
+ color: #d0d0d0;
+ margin: 8px auto 14px;
+}
+.sku-box .item .params-colors{
+ margin-top: 23px;
+ text-align: center;
+}
+.sku-box .item .colors-list{
+ display: inline-block;
+ overflow: hidden;
+}
+.sku-box .item .colors-list li{
+ float: left;
+ margin: 0 5px;
+}
+.sku-box .item .colors-list>li a{
+ width: 8px;
+ height: 8px;
+ border: 1px solid #e5e5e5;
+ -webkit-border-radius: 50%;
+ -moz-border-radius: 50%;
+ border-radius: 50%;
+ padding: 2px;
+ display: block;
+}
+.sku-box .item .colors-list>li a.active{
+ box-shadow: inset 0 0 0 1px #b2b2b2;
+ border-color: #b2b2b2;
+}
+.sku-box .item .colors-list>li img{
+ width: inherit;
+ height: inherit;
+ border-radius: 50%;
+ display: block;
+}
+.sku-box .item .item-btns{
+ position: absolute;
+ left: 0;
+ right: 0;
+ bottom: 29px;
+ text-align: center;
+ opacity: 0;
+ z-index: 10;
+}
+.sku-box .item:hover .item-btns{
+ opacity: 1;
+ transition: all .2s ease-in;
+}
+.sku-box .item .item-btns .item-blue-btn, .sku-box .item .item-btns .item-disabled-btn, .sku-box .item .item-btns .item-gray-btn, .sku-box .item .item-btns .item-green-btn{
+ display: inline-block;
+ box-sizing: border-box;
+ width: 100px;
+ height: 30px;
+ font-size: 12px;
+ line-height: 28px;
+ border-radius: 4px;
+ cursor: pointer;
+ font-weight: 200;
+ transition: all .1s ease;
+}
+.sku-box .item .item-btns .item-gray-btn{
+ border: 1px solid #d5d5d5;
+ color: #646464;
+}
+.sku-box .item .item-btns .item-gray-btn a{
+ display: block;
+ color: #a1a1a1;
+}
+.sku-box .item .item-btns .item-gray-btn:hover{
+ background-image: linear-gradient(#f6f6f6,#ededed);
+}
+.sku-box .item .item-btns .item-blue-btn{
+ background-color: #5c85e5;
+ background-image: linear-gradient(#779ae9,#5078df);
+ border: 1px solid #5c81e3;
+ color: #fff;
+ margin-left: 10px;
+}
+.sku-box .item .item-btns .item-blue-btn:hover{
+ border: 1px solid #5374c8;
+ background-color: #5074db;
+ background-image: linear-gradient(#6e8ed5,#4769c2);
+}
+.sku-box .item .item-btns .item-blue-btn:active{
+ border: 1px solid #3e61d7;
+ background-color: #5c85e5;
+ background-image: linear-gradient(#4d72de,#6189e6);
+}
+.sku-box .item .item-price{
+ font-family: Arial;
+ color: #c30a18;
+ margin-top: 24px;
+ text-align: center;
+ opacity: 1;
+}
+.sku-box .item .item-price i{
+ font-size: 16px;
+}
+.sku-box .item .item-price span{
+ font-size: 18px;
+ padding-left: 4px;
+}
+.sku-box .item:hover .item-price{
+ opacity: 0;
+ transition: all .1s ease-out;
+}
+.sku-box .item .discount-icon{
+ display: none;
+}
+.sku-box .item .item-cover a{
+ display: block;
+ position: absolute;
+ left: 0;
+ top: 0;
+ z-index: 20;
+ width: 100%;
+ height: 310px;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Vue-shopping/src/assets/css/header.css b/Vue-shopping/src/assets/css/header.css
new file mode 100644
index 0000000..b41de0c
--- /dev/null
+++ b/Vue-shopping/src/assets/css/header.css
@@ -0,0 +1,540 @@
+@charset "utf-8";
+.nav-global{
+ height: 100px;
+ background-color: #e8fae7;
+}
+.container{
+ height: 100%;
+ width: 1220px;
+ margin: 0 auto;
+}
+/*logo*/
+.nav-logo{
+ float: left;
+}
+.nav-logo a{
+ display: inline-block;
+ width: 76px;
+ height: 98px;
+ background: url(../img/test1.png) no-repeat;
+ background-size: cover;
+}
+/*导航*/
+.nav-global .nav-list{
+ float: right;
+ line-height: 28px;
+ margin: 36px 23px 0 0;
+}
+.nav-global .nav-list li{
+ float: left;
+
+}
+.nav-global .nav-list a{
+ color: #000000;
+ display: inline-block;
+ font-size: 14px;
+ padding: 0 25px;
+}
+.nav-global .nav-list a:hover{
+ color: #05aa34;
+}
+.nav-aside{
+ box-sizing: border-box;
+ float: right;
+ margin-top: 38px;
+ border-left: 1px solid rgba(255,255,255,.2);
+}
+.nav-aside>li{
+ position: relative;
+ float: left;
+}
+.nav-aside>li>a{
+ font-size: 0;
+}
+
+/*用户列表*/
+.nav-user{
+ margin-left: 40px;
+ width: 36px;
+}
+.nav-user>a:before{
+ content: " ";
+ position: absolute;
+ left: 8px;
+ width: 20px;
+ top: 0;
+ height: 20px;
+ background: url(../img/account-icon.png) -155px 0;
+ background-size: 240px 107px;
+ transition: none;
+}
+/* .nav-user:hover>a:before{
+ background-position: -5px 0;
+} */
+.nav-user-wrapper{
+ position: absolute;
+ z-index: 30;
+ padding-top: 18px;
+ opacity: 0;
+ visibility: hidden;
+ top: -3000px;
+ width: 168px;
+ left: 50%;
+ margin-left: -70px;
+}
+.nav-user:hover .nav-user-wrapper{
+ top: 18px;
+ visibility: visible;
+ opacity: 1;
+ transition: opacity .15s ease-out;
+}
+.nav-user-list{
+ position: relative;
+ width: 168px;
+ padding-top: 20px;
+ background: #fff;
+ border: 1px solid #d6d6d6;
+ border-color: rgba(0,0,0,.08);
+ border-radius: 8px;
+ box-shadow: 0 20px 40px rgba(0,0,0,.15)
+}
+.nav-user-list:before{
+ position: absolute;
+ content: " ";
+ background: url(../img/account-icon.png) no-repeat -49px -43px;
+ background-size: 240px 107px;
+ width: 20px;
+ height: 8px;
+ left: 50%;
+ top: -8px;
+ margin-left: -25px;
+}
+.nav-user-avatar>dd{
+ display: block;
+ position: relative;
+ margin: 0 auto;
+ width: 46px;
+ height: 46px;
+ margin-bottom: 8px;
+}
+.nav-user-avatar>dd:before{
+ content: "";
+ position: absolute;
+ left: 0;
+ right: 0;
+ top: 0;
+ bottom: 0;
+ border-radius: 50%;
+ box-shadow: inset 0 0 0 1px rgba(0,0,0,.06);
+}
+.nav-user-avatar span{
+ border-radius: 50%;
+ display: block;
+ width: 100%;
+ height: 100%;
+ background: url(../img/user-avatar.png) no-repeat;
+ background-size: contain;
+}
+.nav-user-avatar dt{
+ margin-bottom: 16px;
+ font-size: 12px;
+ line-height: 1.5;
+ text-align: center;
+ color: #757575;
+}
+.nav-user-list li a{
+ position: relative;
+ border-top: 1px solid #f5f5f5;
+ display: block;
+ padding-left: 54px;
+ line-height: 44px;
+ height: 44px;
+ color: #616161;
+ font-size: 12px;
+}
+.nav-user-list li a:hover{
+ background-color: #05aa34;
+}
+.nav-user-list li a:before{
+ background: url(../img/account-icon.png) no-repeat;
+ background-size: 240px 107px;
+ content: ' ';
+ display: block;
+ position: absolute;
+ left: 22px;
+ top: 50%;
+ width: 20px;
+ height: 20px;
+ margin-top: -8px;
+}
+.nav-user-list li.order a:before{
+ background-position: 0 -44px;
+}
+.nav-user-list li.support a:before{
+ background-position: -20px -44px;
+}
+.nav-user-list li.coupon a:before{
+ background-position: -20px -84px;
+}
+.nav-user-list li.information a:before{
+ background-position: 0 -64px;
+}
+.nav-user-list li.address a:before{
+ background-position: -20px -64px;
+}
+.nav-user-list li.logout a:before{
+ background-position: 0 -84px;
+}
+/*购物车*/
+.nav-cart{
+ margin-left: 21px;
+ width: 61px;
+}
+.nav-cart>a{
+ display: block;
+ position: absolute;
+ left: 0;
+ right: 0;
+ top: 0;
+ bottom: 0;
+ z-index: 1;
+}
+.nav-cart>a:before{
+ content: ' ';
+ position: absolute;
+ left: 0;
+ top: 0;
+ bottom: 0;
+ width: 30px;
+ height: 20px;
+ background: url(../img/account-icon.png) -150px -22px;
+ background-size: 240px 107px;
+}
+/* .nav-cart:hover>a:before{
+ background-position: 0 -22px;
+} */
+.cart-empty-num{
+ position: relative;
+ margin-left: 31px;
+ margin-top: -1px;
+ min-width: 30px;
+ text-indent: 0;
+ line-height: 20px;
+}
+.cart-empty-num i{
+ font-style: normal;
+ display: inline-block;
+ width: 20px;
+ height: 20px;
+ line-height: 20px;
+ border-radius: 10px;
+ color: #fff;
+ font-size: 12px;
+ text-align: center;
+ background: #969696;
+ background-image: linear-gradient(#A4A4A4,#909090);
+ box-shadow: inset 0 0 1px #838383, 0 1px 2px #838383;
+}
+.cart-num i {
+ background: #eb746b;
+ background-image: linear-gradient(#eb746b,#e25147);
+ box-shadow: inset 0 0 1px rgba(255,255,255,.15), 0 1px 2px rgba(255,255,255,.15);
+}
+.nav-cart-wrapper{
+ position: absolute;
+ right: 0;
+ padding-top: 18px;
+ opacity: 1;
+ top: 18px;
+ z-index: 30;
+ width: 360px;
+}
+.nav-cart-wrapper:before{
+ position: absolute;
+ content: ' ';
+ background: url(../img/account-icon.png) no-repeat -49px -43px;
+ -webkit-background-size: 240px 107px;
+ background-size: 240px 107px;
+ width: 20px;
+ height: 8px;
+ right: 34px;
+ top: 10px;
+ z-index: 11;
+}
+.nav-cart.active .nav-cart-wrapper{
+ display: block;
+ top: 18px;
+ opacity: 1;
+ visibility: visible;
+}
+.nav-cart-list{
+ position: relative;
+ z-index: 10;
+ background: #fff;
+ border: 0 solid rgba(255,255,255,.01);
+ border-radius: 8px;
+ box-shadow: 0 0 0 1px rgba(0,0,0,.06), 0 20px 40px rgba(0,0,0,.15);
+ overflow: hidden;
+}
+.nav-cart-list .empty{
+ overflow: hidden;
+ height: 134px;
+ padding-top: 180px;
+ background: url(../img/cart-empty.png) center 90px no-repeat;
+ background-size: auto 62px;
+ text-align: center;
+}
+.nav-cart-list .empty h3{
+ font-size: 18px;
+ color: #333;
+ margin-bottom: 7px;
+}
+.nav-cart-list .empty p{
+ font-size: 12px;
+ color: #bcbcbc;
+}
+.nav-cart-list .full{
+ border-radius: 8px;
+ overflow: hidden;
+}
+.nav-cart-list .nav-cart-items{
+ max-height: 665px;
+ overflow-x: hidden;
+ overflow-y: auto;
+}
+.nav-cart-list .cart-item{
+ height: 120px;
+ width: 100%;
+ overflow: hidden;
+ border-top: 1px solid #f0f0f0;
+}
+.nav-cart-list .cart-item:first-child{
+ border-top: none;
+ border-radius: 8px 8px 0 0;
+ overflow: hidden;
+}
+.nav-cart-list .cart-item-inner{
+ height: 80px;
+ padding: 20px;
+ position: relative;
+}
+.nav-cart-list .item-thumb{
+ position: relative;
+ float: left;
+ width: 80px;
+ height: 80px;
+ border-radius: 3px;
+}
+.nav-cart-list .item-thumb:before{
+ content: "";
+ position: absolute;
+ left: 0;
+ right: 0;
+ top: 0;
+ bottom: 0;
+ z-index: 2;
+ border: 1px solid #f0f0f0;
+ border: 0 solid transparent;
+ box-shadow: inset 0 0 0 1px rgba(0,0,0,.06);
+ border-radius: 3px;
+}
+.nav-cart-list .item-thumb img{
+ display: block;
+ width: 80px;
+ height: 80px;
+ border-radius: 3px;
+ overflow: hidden;
+}
+.nav-cart-list .item-desc{
+ margin-left: 98px;
+ display: table;
+ width: 205px;
+ height: 80px;
+}
+.nav-cart-list .cart-cell{
+ display: table-cell;
+ vertical-align: middle;
+}
+.nav-cart-list .item-desc h4, .nav-cart-list .item-desc h4 a{
+ color: #000;
+}
+.nav-cart-list .item-desc h4{
+ width: 185px;
+ overflow: hidden;
+ word-break: keep-all;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ font-size: 14px;
+ line-height: 16px;
+ margin-bottom: 10px;
+}
+.nav-cart-list .item-desc .attrs{
+ font-size: 0;
+}
+.nav-cart-list .item-desc .attrs span{
+ position: relative; */
+ display: inline-block;
+ margin-right: 20px;
+ font-size: 14px;
+ line-height: 14px;
+ color: #999;
+}
+.nav-cart-list .item-desc .attrs span:last-child{
+ margin-right: 0;
+}
+.nav-cart-list .item-desc h6{
+ color: #cacaca;
+ font-size: 12px;
+ line-height: 14px;
+ margin-top: 20px;
+}
+.nav-cart-list .del-btn{
+ cursor: pointer;
+ display: none;
+ overflow: hidden;
+ width: 20px;
+ height: 20px;
+ position: absolute;
+ right: 20px;
+ top: 50%;
+ margin-top: -11px;
+ background: url(../img/account-icon.png) -50px -60px no-repeat;
+ background-size: 240px 107px;
+ text-indent: -9999em;
+}
+.nav-cart-list .cart-item:hover .del-btn{
+ display: block;
+}
+.nav-cart-list .del-btn:hover{
+ background-position: -75px -60px;
+}
+.nav-cart-list .nav-cart-total{
+ position: relative;
+ padding: 20px;
+ height: 40px;
+ background: #fafafa;
+ border-top: 1px solid #f0f0f0;
+ border-radius: 0 0 8px 8px;
+ box-shadow: inset 0 -1px 0 rgba(255,255,255,.5), 0 -3px 8px rgba(0,0,0,.04);
+ background: linear-gradient(#fafafa,#f5f5f5);
+}
+.nav-cart-list .nav-cart-total p{
+ margin-bottom: 4px;
+ line-height: 16px;
+ font-size: 12px;
+ color: #c1c1c1;
+}
+.nav-cart-list .nav-cart-total h5{
+ line-height: 20px;
+ font-size: 14px;
+ color: #6f6f6f;
+}
+.nav-cart-list .nav-cart-total h5 span{
+ font-size: 18px;
+ color: #de4037;
+ display: inline-block;
+ font-weight: 700;
+}
+.nav-cart-list .nav-cart-total h5 span:first-child{
+ font-size: 12px;
+ margin-right: 5px;
+}
+.nav-cart-list .nav-cart-total h5 span{
+ font-size: 18px;
+ color: #de4037;
+ display: inline-block;
+ font-weight: 700;
+}
+.nav-cart-list .nav-cart-total h6{
+ position: absolute;
+ right: 20px;
+ top: 20px;
+ width: 108px;
+
+}
+.nav-aside .nav-cart-btn{
+ display: block;
+ height: 38px;
+ background: #688fe8;
+ background: linear-gradient(#688fe8,#5079e1);
+ border: 1px solid #5c81e3;
+ border-radius: 6px;
+ box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 3px rgba(0,0,0,.2);
+ line-height: 38px;
+ text-align: center;
+ color: #FFF;
+ text-shadow: 0 -1px 0 rgba(0,0,0,.15)
+}
+/*次导航*/
+.nav-sub{
+ position: relative;
+ z-index: 20;
+ height: 90px;
+}
+.nav-sub-wrapper{
+ padding: 31px 0;
+ height: 28px;
+ position: relative;
+}
+.nav-sub .nav-list{
+ float: left;
+ height: 28px;
+ line-height: 28px;
+}
+.nav-sub .nav-list li{
+ position: relative;
+ float: left;
+ padding-left: 2px;
+}
+.nav-sub .nav-list li:first-child{
+ padding-left: 0;
+}
+.nav-sub .nav-list li:before{
+ content: ' ';
+ position: absolute;
+ left: 0;
+ top: 13px;
+ width: 2px;
+ height: 2px;
+ background: #bdbdbd;
+}
+.nav-sub .nav-list li:first-child:before{
+ display: none;
+}
+.nav-sub .nav-list li a{
+ display: block;
+ padding: 0 20px;
+ color: #666;
+}
+.nav-sub .nav-list li:first-child a{
+ padding-left: 10px;
+}
+.nav-sub .nav-list li.active a{
+ font-weight: 700;
+}
+.nav-sub .nav-list li a:hover{
+ color: #05aa34;
+}
+.nav-global .addcart-mask{
+ position: absolute;
+ left: 0;
+ top: -5px;
+ padding: 0;
+ width: 32px;
+ height: 32px;
+ pointer-events: none;
+ z-index: 240;
+ transform: translate3d(0,0,0);
+}
+.nav-global .addcart-mask .mask-item{
+ pointer-events: none;
+ width: 32px;
+ height: 32px;
+ box-sizing: border-box;
+ overflow: hidden;
+ border-radius: 50%;
+ background: #fff;
+ box-shadow: 0 0 0 1px rgba(0,0,0,.05), 0 3px 8px rgba(0,0,0,.1);
+ background-size: contain;
+ transform: translate3d(0,0,0);
+}
diff --git a/Vue-shopping/src/assets/css/item.css b/Vue-shopping/src/assets/css/item.css
new file mode 100644
index 0000000..b4bcba3
--- /dev/null
+++ b/Vue-shopping/src/assets/css/item.css
@@ -0,0 +1,297 @@
+@charset "utf-8";
+.item-box{
+ width: 1098px;
+ padding: 60px;
+ margin-bottom: 20px;
+ display: table;
+ overflow: hidden;
+ background: #fff;
+ border-radius: 8px;
+ border: 1px solid #dcdcdc;
+ border-color: rgba(0,0,0,.14);
+ box-shadow: 0 3px 8px -6px rgba(0,0,0,.1);
+}
+.banner, .gallery-wrapper{
+ display: table-cell;
+}
+.gallery-wrapper{
+ vertical-align: top;
+}
+.gallery{
+ float: left;
+ width: 540px;
+ display: table-cell;
+}
+.thumb, .thumbnail{
+ display: table-cell;
+ vertical-align: middle;
+}
+.thumbnail li{
+ width: 54px;
+ height: 54px;
+ margin-top: 10px;
+ padding: 12px;
+ border: 1px solid rgba(0,0,0,.06);
+ border-radius: 5px;
+ cursor: pointer;
+}
+.thumbnail li:first-child{
+ margin-top: 0;
+}
+.thumbnail li.on{
+ padding: 10px;
+ border: 3px solid #ccc;
+ border: 3px solid rgba(0,0,0,.2);
+}
+item-box img{
+ max-width: 100%;
+ height: auto;
+}
+.thumb>ul{
+ margin-left: 20px;
+ width: 440px;
+ height: 440px;
+ position: relative;
+}
+.thumb li{
+ position: absolute;
+ left: 0;
+ right: 0;
+ top: 0;
+ bottom: 0;
+ display: none;
+ opacity: 0;
+ text-align: center;\
+ user-select: none;
+}
+.thumb li.on{
+ animation: thumb-change .35s ease-out 1;
+ position: relative;
+ display: block;
+ z-index: 1;
+ opacity: 1;
+}
+.item-box .banner{
+ vertical-align: middle;
+ width: 450px;
+ margin-left: 10px;
+}
+.item-box .banner .sku-custom-title{
+ overflow: hidden;
+ padding: 8px 8px 18px 10px;
+ position: relative;
+}
+.item-box .banner .params-price{
+ position: absolute;
+ right: 8px;
+ bottom: 19px;
+}
+.item-box .banner .params-price span{
+ display: block;
+ color: #de4037;
+ font-weight: 700;
+ font-size: 16px;
+ line-height: 20px;
+ text-align: right;
+}
+.item-box .banner .params-price span i{
+ padding-left: 2px;
+ font-size: 24px;
+}
+.item-box .banner .sku-custom-title .params-info{
+ width: 360px;
+}
+.item-box .banner .sku-custom-title h4{
+ font-size: 24px;
+ line-height: 1.25;
+ color: #000;
+ margin-bottom: 13px;
+}
+.item-box .banner .sku-custom-title h6{
+ font-size: 14px;
+ line-height: 1.5;
+ color: #bdbdbd;
+}
+.item-box .banner .sku-dynamic-params-panel{
+ padding: 29px 0 8px 10px;
+ border-top: 1px solid #ebebeb;
+}
+.item-box .banner .sku-dynamic-params{
+ margin-bottom: 19px;
+}
+.item-box .banner .params-name{
+ float: left;
+ padding-right: 20px;
+ font-size: 14px;
+ color: #8d8d8d;
+ line-height: 36px;
+}
+.item-box .banner .sku-dynamic-params .params-colors{
+ float: left;
+ line-height: 36px;
+ margin: -10px 0 0 -10px;
+ width: 402px;
+}
+.item-box .banner .sku-dynamic-params .params-colors>li{
+ float: left;
+ margin: 10px 0 0 10px;
+}
+.item-box .banner .sku-dynamic-params .params-colors>li a{
+ display: block;
+ width: 26px;
+ height: 26px;
+ border: 2px solid #E5E5E5;
+ padding: 3px;
+ text-align: center;
+ color: #757575;
+ border-radius: 50%;
+}
+.item-box .banner .sku-dynamic-params .params-colors>li.cur a{
+ border-color: #B2B2B2;
+ box-shadow: inset 0 0 0 1px #B2B2B2;
+}
+.item-box .banner .sku-dynamic-params .params-colors>li i, .item-box .banner .sku-dynamic-params .params-colors>li img{
+ position: relative;
+ display: block;
+ width: 100%;
+ border-radius: 50%;
+}
+.item-box .banner .sku-dynamic-params{
+ margin-bottom: 19px;
+}
+.item-box .banner .params-detail{
+ line-height: 36px;
+ float: left;
+ width: 392px;
+}
+.item-box .item-num{
+ float: left;
+ width: 128px;
+}
+.item-box .item-num .down:before, .item-box .item-num .up:before{
+ content: '';
+ position: absolute;
+ left: -4px;
+ right: -4px;
+ top: 0;
+ height: 45px;
+ background: url(../img/cart-updown-item.png) no-repeat;
+ background-size: 100% auto;
+}
+.item-box .item-num .down:before{
+ content: " ";
+ background-position: 0 -60px;
+}
+.item-box .item-num .down:hover:before{
+ content: " ";
+ background-position: 0 -180px;
+}
+.item-box .item-num .down.down-disabled:before, .item-box .item-num .down.down-disabled:hover:before{
+ content: " ";
+ background-position: 0 -300px;
+}
+.item-box .item-num .down, .item-box .item-num .up{
+ position: relative;
+ float: left;
+ display: inline-block;
+ width: 36px;
+ height: 36px;
+ line-height: 40px;
+ text-indent: -9999em;
+ cursor: pointer;
+ user-select: none;
+}
+.item-box .item-num .down.down-disabled, .item-box .item-num .up.up-disabled{
+ cursor: not-allowed;
+}
+.item-box .item-num .up:before{
+ background-position: 0 0;
+}
+.item-box .item-num .up:hover:before{
+ background-position: 0 -120px;
+}
+.item-box .item-num .up.up-disabled:before, .item-box .item-num .up.up-disabled:hover:before{
+ content: " ";
+ background-position: 0 -240px;
+}
+.item-box .item-num .num{
+ position: relative;
+ overflow: hidden;
+ float: left;
+ display: inline-block;
+ width: 56px;
+ height: 18px;
+ margin: 7px 0 0;
+ border: none;
+ border-radius: 3px;
+ line-height: 18px;
+ text-align: center;
+ font-size: 14px;
+}
+.item-box .item-num input{
+ width: 56px;
+ height: 18px;
+ background-color: transparent;
+ border: none;
+ border-radius: 3px;
+ text-align: center;
+ font-size: 14px;
+ line-height: 18px;
+ padding: 0;
+}
+.item-box .item-num ul{
+ /*display: none;*/
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 56px;
+}
+.item-box .item-num ul li{
+ width: 56px;
+ height: 18px;
+}
+.item-box .sku-status{
+ position: relative;
+ border-top: 1px solid #ebebeb;
+ padding: 30px 0 0 10px;
+}
+.item-box .blue-title-btn{
+ float: left;
+ display: inline-block;
+ width: 143px;
+ height: 48px;
+ line-height: 48px;
+ text-align: center;
+ border-radius: 7px;
+ border: 1px solid #5c81e3;
+ background-color: #5c85e5;
+ background-image: linear-gradient(#779ae9,#5078df);
+ color: #fff;
+ cursor: pointer;
+}
+.item-box .blue-title-btn:hover{
+ transition: all .15s ease-out;
+ box-shadow: inset 0 1px 1px #7696DE, inset 0 0 2px #627DCA, inset 0 -2px 3px #5A77C7, inset 0 0 100px rgba(48,77,147,.4);
+}
+.item-box .blue-title-btn a, .item-box .green-title-btn a{
+ color: #fff;
+}
+.item-box .cart-operation-wrapper .gray-title-btn{
+ margin-left: 20px;
+}
+.item-box .gray-title-btn{
+ display: inline-block;
+ width: 143px;
+ height: 48px;
+ line-height: 48px;
+ text-align: center;
+ background: linear-gradient(#fff,#fafafa);
+ border: 1px solid #e0e0e0;
+ border-radius: 7px;
+ color: #8c8c8c;
+ cursor: pointer;
+}
+.item-box .gray-title-btn:hover{
+ transition: all .15s ease-out;
+ background: linear-gradient(#f6f6f6,#ededed);
+}
diff --git a/Vue-shopping/src/assets/css/order.css b/Vue-shopping/src/assets/css/order.css
new file mode 100644
index 0000000..26fef95
--- /dev/null
+++ b/Vue-shopping/src/assets/css/order.css
@@ -0,0 +1,288 @@
+@charset "utf-8";
+.account-order .gray-box{
+ margin-bottom: 20px;
+}
+.gray-box .columns-title h2{
+ float: left;
+}
+.gray-btn-menu{
+ display: inline-block;
+ height: 36px;
+ background: #F2F2F2;
+ background: linear-gradient(#FFF,#F5F5F5);
+ border: 1px solid #DBDDE2;
+ border-radius: 4px;
+ line-height: 36px;
+ cursor: pointer;
+ text-align: center;
+ user-select: none;
+}
+.account-order .sort-status-menu{
+ width: 112px;
+}
+.gray-box .title .gray-btn-menu, .gray-box .title span.gray-normal-btn{
+ margin: 10px 0 0 10px;
+}
+.gray-box .title .gray-btn-menu{
+ overflow: visible;
+ float: right;
+}
+.gray-btn-menu .label{
+ position: relative;
+ z-index: 1;
+ display: block;
+ padding: 0 13px 0 16px;
+ text-align: left;
+ color: #666;
+}
+.gray-box .title .gray-btn-menu .label{
+ overflow: visible;
+ float: none;
+ margin-top: 0;
+}
+.gray-btn-menu .label .arrow{
+ float: right;
+ width: 10px;
+ height: 7px;
+ margin: 16px 0 0 6px;
+ background: url(../img/btn-icon-new.png) -15px -571px no-repeat;
+}
+.gray-btn-menu .menu-list{
+ display: none;
+ position: absolute;
+ right: -1px;
+ top: -1px;
+ width: 100%;
+ padding: 38px 0 6px;
+ background: #FFF;
+ border: 1px solid #dbdde2;
+ border-radius: 4px;
+ box-shadow: 0 1px 3px 0 #EEE;
+}
+.gray-btn-menu-on .menu-list, .white-btn-menu-on .menu-list{
+ display: block;
+}
+.gray-btn-menu .menu-list li{
+ height: 24px;
+ line-height: 24px;
+ padding: 0 3px 3px;
+ text-align: left;
+ font-size: 12px;
+}
+.gray-btn-menu .menu-list li a{
+ display: block;
+ padding: 0 15px;
+ border-radius: 3px;
+ color: #999;
+}
+.gray-btn-menu .menu-list li a:hover{
+ background: #C7C7CA;
+ color: #FFF;
+}
+.gray-btn-menu .menu-list li.selected a{
+ background: #8F9096;
+ color: #FFF;
+ cursor: default;
+}
+.account-order .sort-time-menu{
+ width: 118px;
+}
+.gray-btn-menu-on .label .arrow, .white-btn-menu-on .label .arrow{
+ margin-top: 15px;
+ background-position: -15px -521px;
+}
+.gray-btn-menu-on, .white-btn-menu-on{
+ position: relative;
+ z-index: 10;
+ height: auto;
+ background: #FFF;
+}
+.gray-btn-menu-on{
+ border: 1px solid #DBDDE2;
+}
+.gray-box, .gray-btn-menu-on:hover{
+ background: #FFF;
+}
+.gray-box .gray-sub-title{
+ height: 38px;
+ padding: 0 24px;
+ background: #EEE;
+ border-top: 1px solid #DBDBDB;
+ border-bottom: 1px solid #DBDBDB;
+ line-height: 38px;
+ font-size: 12px;
+ color: #666;
+}
+.account-order .gray-box .box-inner:first-child .gray-sub-title{
+ border-top: none;
+}
+.order-list-cart .cart-title span{
+ float: right;
+ text-align: center;
+}
+.order-list-cart .cart-title .operation, .order-list-cart .cart-title .order-detail, .order-list-cart .cart-title .sub-total{
+ float: right;
+}
+.order-list-cart .cart-title .date, .order-list-cart .cart-title .order-id{
+ float: left;
+ text-align: left;
+}
+.order-list-cart .cart-title .date{
+ width: 108px;
+ padding-left: 6px;
+}
+.order-list-cart .cart-title .order-detail{
+ width: 82px;
+ padding-left: 24px;
+ text-align: center;
+}
+.order-list-cart .cart-title .sub-total{
+ width: 102px;
+ padding-right: 18px;
+ border-left: 1px solid #DBDBDB;
+ text-align: right;
+}
+.order-list-cart .cart-title .operation{
+ width: 95px;
+ height: 38px;
+ padding-right: 23px;
+}
+.order-list-cart .cart-title .num{
+ width: 70px;
+}
+.order-list-cart .cart-title .price{
+ width: 85px;
+ padding-right: 27px;
+ text-align: right;
+}
+.gray-box .gray-sub-title a{
+ color: #6989E0;
+}
+.order-list-cart .cart{
+ float: left;
+ width: 737px;
+ padding: 0;
+ border-right: 1px solid #EBEBEB;
+}
+.order-cart .cart-items{
+ position: relative;
+ padding: 18px 0 28px;
+ border-top: 1px solid #EFEFEF;
+}
+.order-list-cart .cart-items{
+ height: 110px;
+ padding: 0;
+}
+.order-cart .cart-items:first-child{
+ border-top: none;
+}
+.order-cart .prod-info{
+ position: relative;
+ margin-left: 138px;
+}
+.order-list-cart .prod-info{
+ padding: 15px 0 15px 111px;
+ margin-left: 0;
+ position: relative;
+}
+.order-list-cart .items-thumb{
+ position: absolute;
+ left: 30px;
+ top: 15px;
+ width: 78px;
+ height: 78px;
+ border: 1px solid #EBEBEB;
+ border-radius: 3px;
+}
+.order-list-cart .items-thumb img{
+ width: 78px;
+ height: 78px;
+}
+.order-list-cart .items-params{
+ float: left;
+ height: 50px;
+ padding: 15px 0;
+ margin-left: 29px;
+ border-bottom: none;
+ line-height: 25px;
+}
+.order-cart .items-params .name{
+ overflow: hidden;
+ float: left;
+ color: #666;
+ width: 435px;
+ height: 44px;
+ text-align: left;
+}
+.order-list-cart .prod-info .name{
+ float: none;
+ width: 220px;
+ height: 25px;
+ line-height: 25px;
+}
+.order-list-cart .prod-info .vh-center{
+ height: auto;
+ line-height: 50px;
+}
+.hide-row, .order-cart .items-params .name, .support-cart .items-detail .detail{
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+.order-list-cart .prod-info .num, .order-list-cart .prod-info .operation, .order-list-cart .prod-info .price, .order-list-cart .prod-info .subtotal{
+ float: right;
+ line-height: 80px;
+ text-align: center;
+}
+.order-list-cart .prod-info .operation{
+ display: table;
+ width: 95px;
+ height: 80px;
+ padding-right: 23px;
+ line-height: 25px;
+}
+.order-list-cart .prod-info .num{
+ width: 70px;
+}
+.order-list-cart .prod-info .price{
+ width: 85px;
+ padding-right: 27px;
+ text-align: right;
+}
+.order-list-cart .prod-operation{
+ float: right;
+ display: table;
+ height: 110px;
+}
+.order-list-cart .prod-operation .total{
+ display: table-cell;
+ padding-right: 18px;
+ line-height: 14px;
+ text-align: right;
+ vertical-align: middle;
+}
+.order-list-cart .prod-operation .status{
+ display: table-cell;
+ width: 80px;
+ padding: 0 24px;
+ text-align: center;
+ vertical-align: middle;
+}
+.blue-small-btn, .orange-small-btn, .white-gray-small-btn{
+ display: inline-block;
+ height: 30px;
+ padding: 0 13px;
+ border-radius: 4px;
+ line-height: 30px;
+ font-size: 12px;
+ cursor: pointer;
+}
+.blue-small-btn{
+ background: #6383C6;
+ background: linear-gradient(#7EA3F5,#5A82F0);
+ box-shadow: 0 1px 2px rgba(255,255,255,.1) inset, 0 0 0 1px rgba(0,0,0,.2) inset, 0 1px 3px rgba(0,0,0,.1);
+ color: #FFF;
+}
+.blue-small-btn:hover{
+ box-shadow: 0 1px 1px #7696DE inset, 0 0 2px #627DCA inset, 0 -2px 3px #5A77C7 inset, 0 0 100px rgba(48,77,147,.4) inset, 0 0 0 1px rgba(0,0,0,.3) inset, 0 1px 3px rgba(0,0,0,.1);
+ color: #FFF;
+}
diff --git a/Vue-shopping/src/assets/css/reset.css b/Vue-shopping/src/assets/css/reset.css
new file mode 100644
index 0000000..646941a
--- /dev/null
+++ b/Vue-shopping/src/assets/css/reset.css
@@ -0,0 +1,125 @@
+@charset "utf-8";
+/* CSS Document */
+/*html,body { user-select: none; -moz-user-select: none; -webkit-user-select: none; }*/
+body,
+ul,
+ol,
+dl,
+dd,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+p,
+input,
+select,
+textarea,
+form {
+ margin: 0;
+ padding: 0;
+}
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ font-size: 100%;
+ font-weight: 400;
+}
+html {
+ height: 100%;
+ background: #ededed;
+}
+body {
+ font-family: "PingFang SC", "Helvetica Neue", Helvetica, Arial, "Hiragino Sans GB", "Microsoft Yahei", 微软雅黑, STHeiti, 华文细黑, sans-serif;
+ color: rgb(102, 102, 102);
+ font-size: 14px;
+ min-width: 1220px;
+ background-color: aliceblue;
+}
+li {
+ list-style: none;
+}
+img {
+ border: none;
+ display: block;
+}
+input,
+select,
+textarea,
+button {
+ font-family: tahoma, arial, 'Hiragino Sans GB', '微软雅黑', sans-serif;
+ outline: none;
+ border: none;
+ background-color: transparent;
+}
+em,
+i,
+dfn {
+ font-style: normal;
+}
+textarea {
+ resize: none;
+ overflow: auto;
+ outline: none;
+}
+a {
+ text-decoration: none;
+ color: #666;
+ outline: none;
+ cursor: pointer;
+}
+a:hover {
+ outline: none;
+}
+button {
+ cursor: pointer;
+}
+button:focus {
+ border: none;
+ outline: none;
+}
+pre {
+ white-space: pre-wrap!important;
+ word-wrap: break-word!important;
+ *white-space:normal!important;
+}
+.fl {
+ float: left;
+}
+.fr {
+ float: right;
+}
+.clear:after,
+.clear:before {
+ content: "";
+ display: table;
+}
+.clear:after {
+ clear: both;
+}
+.clear {
+ *zoom: 1;
+}
+.store-content{
+ width: 1220px;
+ min-height: 600px;
+ padding: 0 0 25px;
+ margin: 0 auto;
+ position: relative;
+}
+.hide{
+ display: none!important;
+}
+.fn-left, .fn-right{
+ display: inline;
+}
+.fn-left{
+ float: left;
+}
+.fn-right{
+ float: right;
+}
\ No newline at end of file
diff --git a/Vue-shopping/src/assets/img/192028-1532604028454e.jpg b/Vue-shopping/src/assets/img/192028-1532604028454e.jpg
new file mode 100644
index 0000000..15b71c7
Binary files /dev/null and b/Vue-shopping/src/assets/img/192028-1532604028454e.jpg differ
diff --git a/Vue-shopping/src/assets/img/33.jpg b/Vue-shopping/src/assets/img/33.jpg
new file mode 100644
index 0000000..82cc3a6
Binary files /dev/null and b/Vue-shopping/src/assets/img/33.jpg differ
diff --git a/Vue-shopping/src/assets/img/44.png b/Vue-shopping/src/assets/img/44.png
new file mode 100644
index 0000000..67d55c5
Binary files /dev/null and b/Vue-shopping/src/assets/img/44.png differ
diff --git a/Vue-shopping/src/assets/img/account-bottom-bar-bg.png b/Vue-shopping/src/assets/img/account-bottom-bar-bg.png
new file mode 100644
index 0000000..4228a62
Binary files /dev/null and b/Vue-shopping/src/assets/img/account-bottom-bar-bg.png differ
diff --git a/Vue-shopping/src/assets/img/account-icon.png b/Vue-shopping/src/assets/img/account-icon.png
new file mode 100644
index 0000000..0ca6153
Binary files /dev/null and b/Vue-shopping/src/assets/img/account-icon.png differ
diff --git a/Vue-shopping/src/assets/img/btn-icon-new.png b/Vue-shopping/src/assets/img/btn-icon-new.png
new file mode 100644
index 0000000..edccbc4
Binary files /dev/null and b/Vue-shopping/src/assets/img/btn-icon-new.png differ
diff --git a/Vue-shopping/src/assets/img/cart-box-empty.png b/Vue-shopping/src/assets/img/cart-box-empty.png
new file mode 100644
index 0000000..6d6accc
Binary files /dev/null and b/Vue-shopping/src/assets/img/cart-box-empty.png differ
diff --git a/Vue-shopping/src/assets/img/cart-empty.png b/Vue-shopping/src/assets/img/cart-empty.png
new file mode 100644
index 0000000..5064e60
Binary files /dev/null and b/Vue-shopping/src/assets/img/cart-empty.png differ
diff --git a/Vue-shopping/src/assets/img/cart-updown-item.png b/Vue-shopping/src/assets/img/cart-updown-item.png
new file mode 100644
index 0000000..2e05aae
Binary files /dev/null and b/Vue-shopping/src/assets/img/cart-updown-item.png differ
diff --git a/Vue-shopping/src/assets/img/cart-updown.jpg b/Vue-shopping/src/assets/img/cart-updown.jpg
new file mode 100644
index 0000000..13d0114
Binary files /dev/null and b/Vue-shopping/src/assets/img/cart-updown.jpg differ
diff --git a/Vue-shopping/src/assets/img/checkbox-bg.png b/Vue-shopping/src/assets/img/checkbox-bg.png
new file mode 100644
index 0000000..90899fe
Binary files /dev/null and b/Vue-shopping/src/assets/img/checkbox-bg.png differ
diff --git a/Vue-shopping/src/assets/img/checkbox-new.png b/Vue-shopping/src/assets/img/checkbox-new.png
new file mode 100644
index 0000000..e755146
Binary files /dev/null and b/Vue-shopping/src/assets/img/checkbox-new.png differ
diff --git a/Vue-shopping/src/assets/img/delete-btn-icon.jpg b/Vue-shopping/src/assets/img/delete-btn-icon.jpg
new file mode 100644
index 0000000..9c3916c
Binary files /dev/null and b/Vue-shopping/src/assets/img/delete-btn-icon.jpg differ
diff --git a/Vue-shopping/src/assets/img/global-logo.png b/Vue-shopping/src/assets/img/global-logo.png
new file mode 100644
index 0000000..560dbf0
Binary files /dev/null and b/Vue-shopping/src/assets/img/global-logo.png differ
diff --git a/Vue-shopping/src/assets/img/global-logo1.png b/Vue-shopping/src/assets/img/global-logo1.png
new file mode 100644
index 0000000..89f4c84
Binary files /dev/null and b/Vue-shopping/src/assets/img/global-logo1.png differ
diff --git a/Vue-shopping/src/assets/img/goods/1.jpg b/Vue-shopping/src/assets/img/goods/1.jpg
new file mode 100644
index 0000000..387e6be
Binary files /dev/null and b/Vue-shopping/src/assets/img/goods/1.jpg differ
diff --git a/Vue-shopping/src/assets/img/goods/1.png b/Vue-shopping/src/assets/img/goods/1.png
new file mode 100644
index 0000000..59a5692
Binary files /dev/null and b/Vue-shopping/src/assets/img/goods/1.png differ
diff --git a/Vue-shopping/src/assets/img/goods/2.jpg b/Vue-shopping/src/assets/img/goods/2.jpg
new file mode 100644
index 0000000..23738c3
Binary files /dev/null and b/Vue-shopping/src/assets/img/goods/2.jpg differ
diff --git a/Vue-shopping/src/assets/img/goods/2.png b/Vue-shopping/src/assets/img/goods/2.png
new file mode 100644
index 0000000..c016f35
Binary files /dev/null and b/Vue-shopping/src/assets/img/goods/2.png differ
diff --git a/Vue-shopping/src/assets/img/goods/3.jpg b/Vue-shopping/src/assets/img/goods/3.jpg
new file mode 100644
index 0000000..6a95362
Binary files /dev/null and b/Vue-shopping/src/assets/img/goods/3.jpg differ
diff --git a/Vue-shopping/src/assets/img/goods/3.png b/Vue-shopping/src/assets/img/goods/3.png
new file mode 100644
index 0000000..64914b4
Binary files /dev/null and b/Vue-shopping/src/assets/img/goods/3.png differ
diff --git a/Vue-shopping/src/assets/img/goods/4.jpg b/Vue-shopping/src/assets/img/goods/4.jpg
new file mode 100644
index 0000000..387e6be
Binary files /dev/null and b/Vue-shopping/src/assets/img/goods/4.jpg differ
diff --git a/Vue-shopping/src/assets/img/goods/4.png b/Vue-shopping/src/assets/img/goods/4.png
new file mode 100644
index 0000000..e140a54
Binary files /dev/null and b/Vue-shopping/src/assets/img/goods/4.png differ
diff --git a/Vue-shopping/src/assets/img/goods/b1.jpg b/Vue-shopping/src/assets/img/goods/b1.jpg
new file mode 100644
index 0000000..6014237
Binary files /dev/null and b/Vue-shopping/src/assets/img/goods/b1.jpg differ
diff --git a/Vue-shopping/src/assets/img/goods/b1.png b/Vue-shopping/src/assets/img/goods/b1.png
new file mode 100644
index 0000000..7d43005
Binary files /dev/null and b/Vue-shopping/src/assets/img/goods/b1.png differ
diff --git a/Vue-shopping/src/assets/img/goods/b2.png b/Vue-shopping/src/assets/img/goods/b2.png
new file mode 100644
index 0000000..b2f07f8
Binary files /dev/null and b/Vue-shopping/src/assets/img/goods/b2.png differ
diff --git a/Vue-shopping/src/assets/img/goods/s1.jpg b/Vue-shopping/src/assets/img/goods/s1.jpg
new file mode 100644
index 0000000..23738c3
Binary files /dev/null and b/Vue-shopping/src/assets/img/goods/s1.jpg differ
diff --git a/Vue-shopping/src/assets/img/goods/ss1.jpg b/Vue-shopping/src/assets/img/goods/ss1.jpg
new file mode 100644
index 0000000..b21ce32
Binary files /dev/null and b/Vue-shopping/src/assets/img/goods/ss1.jpg differ
diff --git a/Vue-shopping/src/assets/img/goods/ss2.jpg b/Vue-shopping/src/assets/img/goods/ss2.jpg
new file mode 100644
index 0000000..fe649dd
Binary files /dev/null and b/Vue-shopping/src/assets/img/goods/ss2.jpg differ
diff --git a/Vue-shopping/src/assets/img/goods/ss3.jpg b/Vue-shopping/src/assets/img/goods/ss3.jpg
new file mode 100644
index 0000000..02c5716
Binary files /dev/null and b/Vue-shopping/src/assets/img/goods/ss3.jpg differ
diff --git a/Vue-shopping/src/assets/img/goods/ss4.jpg b/Vue-shopping/src/assets/img/goods/ss4.jpg
new file mode 100644
index 0000000..f0af578
Binary files /dev/null and b/Vue-shopping/src/assets/img/goods/ss4.jpg differ
diff --git a/Vue-shopping/src/assets/img/goods/ss5.jpg b/Vue-shopping/src/assets/img/goods/ss5.jpg
new file mode 100644
index 0000000..3dcb576
Binary files /dev/null and b/Vue-shopping/src/assets/img/goods/ss5.jpg differ
diff --git a/Vue-shopping/src/assets/img/logo.png b/Vue-shopping/src/assets/img/logo.png
new file mode 100644
index 0000000..f3d2503
Binary files /dev/null and b/Vue-shopping/src/assets/img/logo.png differ
diff --git a/Vue-shopping/src/assets/img/test1.png b/Vue-shopping/src/assets/img/test1.png
new file mode 100644
index 0000000..6d16c4a
Binary files /dev/null and b/Vue-shopping/src/assets/img/test1.png differ
diff --git a/Vue-shopping/src/assets/img/ui.png b/Vue-shopping/src/assets/img/ui.png
new file mode 100644
index 0000000..de22f6e
Binary files /dev/null and b/Vue-shopping/src/assets/img/ui.png differ
diff --git a/Vue-shopping/src/assets/img/user-avatar.png b/Vue-shopping/src/assets/img/user-avatar.png
new file mode 100644
index 0000000..25987b0
Binary files /dev/null and b/Vue-shopping/src/assets/img/user-avatar.png differ
diff --git a/Vue-shopping/src/assets/js/goods.js b/Vue-shopping/src/assets/js/goods.js
new file mode 100644
index 0000000..dd0b19d
--- /dev/null
+++ b/Vue-shopping/src/assets/js/goods.js
@@ -0,0 +1,371 @@
+var goodData = [
+{
+ "id": 1000299,
+ "name":"Smartisan 快充移动电源 10000mAh",
+ "price":199.00,"sale_status":3,
+ "product_info":
+ {
+ "product_name":"Smartisan 快充移动电源 10000mAh",
+ "product_code":"1000299",
+ "brand_id":"1",
+ "category_id":"59",
+ "product_type":"1",
+ "delivery_type":"5",
+ "delivery_area":"7",
+ "supply_type":"A",
+ "tax_rate":"17",
+ "desc":"",
+ "is_package":"0",
+ "is_mobile":0,
+ "is_insurance":0,
+ "accessory_goods":[]
+ },
+ "shop_info":
+ {
+ "spu_title":"Smartisan 快充移动电源 10000mAh",
+ "spu_sub_title":"10000mAh 双向快充、轻盈便携、高标准安全保护",
+ "spu_promo_title":"",
+ "sale_model":"1",
+ "book_num":null,
+ "spec_v2":[
+ {
+ "spec_id":"1",
+ "spec_name":"颜色",
+ "visiable":"0",
+ "show_type":"2",
+ "spec_values":[
+ {
+ "id":"70",
+ "spec_id":"1",
+ "item_value":"灰色",
+ "show_name":"灰色",
+ "image":"attr/v2/1000299/B37F37544921114CEF1EC01ED4DF44E4/"
+ }
+ ],
+ "image_pre":"http://img01.smartisanos.cn/",
+ "image_name":"origin.jpg"
+ }
+ ],
+ "tpl_id":"base",
+ "tpl_content":
+ {
+ "base":
+ {
+ "images":
+ {
+ "1x":[],
+ "2x":[],
+ "mobile":[],
+ "image_pre":"",
+ "image_name":"",
+ "ali":
+ {
+ "url":"http://image.smartisanos.cn/resource/d930be42185ab064035d0894f37ea179.jpg",
+ "width":1220,
+ "height":6478,
+ "piece_height":1440,
+ "pieces_num":5
+ },
+ "ali_mobile":
+ {
+ "url":"http://image.smartisanos.cn/resource/d930be42185ab064035d0894f37ea179.jpg",
+ "width":1220,
+ "height":6478,
+ "piece_height":1440,
+ "pieces_num":5
+ }
+ },
+ "attributes":[
+ {
+ "title":"",
+ "list":[
+ {
+ "name":"",
+ "value":""
+ }
+ ]
+ }
+ ],
+ "aftersale":[
+ {
+ "title":"",
+ "content":""
+ }
+ ],
+ "extra":[
+ {
+ "title":"",
+ "content":""
+ }
+ ]
+ }
+ },
+ "buy_notes":[]
+ },
+ "sku_info":[
+ {
+ "sku_id":"100029901",
+ "title":"Smartisan 快充移动电源 10000mAh",
+ "sub_title":"10000mAh 双向快充、轻盈便携、高标准安全保护",
+ "promo_title":"",
+ "color_id":"70",
+ "appearance_color_id":"",
+ "image":null,
+ "ali_image":"http://image.smartisanos.cn/resource/ae40a16324658c192c7361d829f603bd.jpg",
+ "direct_to_cart":true,
+ "price":"199.00",
+ "spec_json":[
+ {
+ "spec_id":"1",
+ "spec_value_id":"70",
+ "show_name":"灰色",
+ "image":"attr/v2/1000299/B37F37544921114CEF1EC01ED4DF44E4/"
+ }
+ ]
+ }
+ ],
+ "acc_info":
+ {
+ "package_list":""
+ },
+ "after_sell_info":
+ {
+ "is_back":"1",
+ "back_deadline":"7",
+ "is_exchange":"1",
+ "exchange_deadline":"15",
+ "is_repair":"1"
+ },
+ "created_at":1493017027000,
+ "updated_at":1497715202000
+},
+{
+ "id":1000298,
+ "name":"坚果Pro 钢化玻璃手感膜 无孔 (后壳用)",
+ "price":49.00,"sale_status":3,
+ "product_info":
+ {
+ "product_name":"坚果Pro 钢化玻璃手感膜 无孔 (后壳用)",
+ "product_code":"1000298",
+ "brand_id":"1",
+ "category_id":"73",
+ "product_type":"1",
+ "delivery_type":"0",
+ "delivery_area":"0",
+ "supply_type":"A",
+ "tax_rate":"17",
+ "desc":"",
+ "is_package":"0",
+ "is_mobile":0,
+ "is_insurance":0,
+ "accessory_goods":[]
+ },
+ "shop_info":
+ {
+ "spu_title":"坚果 Pro 钢化玻璃手感膜 无孔 (后壳用)",
+ "spu_sub_title":"仅适用于坚果 Pro (酒红色版、浅金色版、巧克力色版和 32G 碳黑色版)",
+ "spu_promo_title":"",
+ "sale_model":"1",
+ "book_num":null,
+ "spec_v2":[
+ {
+ "spec_id":"1",
+ "spec_name":"颜色",
+ "visiable":"0",
+ "show_type":"2",
+ "spec_values":[
+ {
+ "id":"211",
+ "spec_id":"1",
+ "item_value":"透明",
+ "show_name":"透明",
+ "image":"attr/v2/1000298/B1D74DE1EB579A14D2F97F6F56F508C4/"
+ }
+ ],
+ "image_pre":"http://img01.smartisanos.cn/",
+ "image_name":"origin.jpg"
+ }
+ ],
+ "tpl_id":"base,doodle,weibo",
+ "tpl_content":
+ {
+ "base":
+ {
+ "images":
+ {
+ "1x":[],
+ "2x":[],
+ "mobile":[],
+ "image_pre":"",
+ "image_name":"",
+ "ali":
+ {
+ "url":"http://image.smartisanos.cn/resource/cca8534ffae2cb1d2626d707ee653dbd.jpg",
+ "width":1220,
+ "height":4390
+ },
+ "ali_mobile":
+ {
+ "url":"http://image.smartisanos.cn/resource/cca8534ffae2cb1d2626d707ee653dbd.jpg",
+ "width":1220,
+ "height":4390
+ }
+ },
+ "attributes":[
+ {
+ "title":"",
+ "list":[
+ {
+ "name":"",
+ "value":""
+ }
+ ]
+ }
+ ],
+ "aftersale":[
+ {
+ "title":"",
+ "content":""
+ }
+ ],
+ "extra":[
+ {
+ "title":"",
+ "content":""
+ }
+ ]
+ },
+ "doodle":
+ {
+ "text":"",
+ "images":
+ {
+ "1x":[],
+ "2x":[],
+ "mobile":[],
+ "image_pre":"",
+ "image_name":"",
+ "ali":
+ {
+ "url":"http://image.smartisanos.cn/resource/cca8534ffae2cb1d2626d707ee653dbd.jpg",
+ "width":1220,
+ "height":4390,
+ "piece_height":1440,
+ "pieces_num":4
+ },
+ "ali_mobile":
+ {
+ "url":"http://image.smartisanos.cn/resource/cca8534ffae2cb1d2626d707ee653dbd.jpg",
+ "width":1220,
+ "height":4390,
+ "piece_height":1440,
+ "pieces_num":4
+ }
+ }
+ },
+ "weibo":
+ {
+ "text":"",
+ "images":
+ {
+ "1x":"",
+ "2x":"",
+ "mobile":"",
+ "image_pre":"",
+ "image_name":""
+ }
+ }
+ },
+ "buy_notes":[
+ "坚果 Pro 钢化玻璃手感膜 无孔 (后壳用)仅适用于坚果 Pro (酒红色版、浅金色版、巧克力色版和 32G 碳黑色版)"
+ ]
+ },
+ "sku_info":[
+ {
+ "sku_id":"100029801",
+ "title":"坚果 Pro 钢化玻璃手感膜 无孔 (后壳用)",
+ "sub_title":"仅适用于坚果 Pro (酒红色版、浅金色版、巧克力色版和 32G 碳黑色版)",
+ "promo_title":"",
+ "color_id":"211",
+ "appearance_color_id":"",
+ "image":null,
+ "ali_image":"http://image.smartisanos.cn/resource/f6f081615fdd6f92206c3d127501843a.jpg",
+ "direct_to_cart":true,
+ "price":"49.00",
+ "spec_json":[
+ {
+ "spec_id":"1",
+ "spec_value_id":"211",
+ "show_name":"透明",
+ "image":"attr/v2/1000298/B1D74DE1EB579A14D2F97F6F56F508C4/"
+ }
+ ]
+ }
+ ],
+ "acc_info":
+ {
+ "package_list":""
+ },
+ "after_sell_info":
+ {
+ "is_back":"1",
+ "back_deadline":"7",
+ "is_exchange":"1",
+ "exchange_deadline":"15",
+ "is_repair":"0"
+ },
+ "created_at":1492769862000,
+ "updated_at":1497862955000
+},
+{"id":1000275,
+"name":"坚果 Pro 钢化玻璃手感膜 开孔 (后壳用)",
+"price":49.00,
+"sale_status":3,
+"product_info":{"product_name":"坚果 Pro 钢化玻璃手感膜 开孔 (后壳用)",
+"product_code":"1000275",
+"brand_id":"1",
+"category_id":"73",
+"product_type":"1",
+"delivery_type":"0",
+"delivery_area":"0",
+"supply_type":"A",
+"tax_rate":"17",
+"desc":"",
+"is_package":"0",
+"is_mobile":0,
+"is_insurance":0,
+"accessory_goods":[]},
+"shop_info":{"spu_title":"坚果 Pro 钢化玻璃手感膜 开孔 (后壳用)",
+"spu_sub_title":"9H 超强硬度、超 4 小时钢化时长、2.5D 弧边设计",
+"spu_promo_title":"",
+"sale_model":"1",
+"book_num":null,
+"spec_v2":[{"spec_id":"1",
+"spec_name":"颜色",
+"visiable":"0",
+"show_type":"2",
+"spec_values":[{"id":"36",
+"spec_id":"1",
+"item_value":"黑色",
+"show_name":"黑色",
+"image":"attr/v2/1000275/649AD35E36A9703BACBE1555AEB6D266/"},
+{"id":"201",
+"spec_id":"1",
+"item_value":"酒红色",
+"show_name":"酒红色",
+"image":"attr/v2/1000275/948F029DCF134EF23267994487994DA5/"}],
+"image_pre":"http://img01.smartisanos.cn/",
+"image_name":"origin.jpg"}],
+"tpl_id":"base,doodle,weibo",
+"tpl_content":{"base":{"images":{"1x":[],
+"2x":[],
+"mobile":[],
+"image_pre":"",
+"image_name":"",
+"ali":{"url":"http://image.smartisanos.cn/resource/0b42c35b463f23c73cedffef08a7fdb3.jpg",
+"width":1220,
+"height":4354},
+"ali_mobile":{"url":"http://image.smartisanos.cn/resource/0b42c35b463f23c73cedffef08a7fdb3.jpg",
+"width":1220,
+"height":4354}},
+"attributes":[{"title":"","list":[{"name":"","value":""}]}],"aftersale":[{"title":"","content":""}],"extra":[{"title":"","content":""}]},"doodle":{"text":"","images":{"1x":[],"2x":[],"mobile":[],"image_pre":"","image_name":"","ali":{"url":"http://image.smartisanos.cn/resource/0b42c35b463f23c73cedffef08a7fdb3.jpg","width":1220,"height":4354,"piece_height":1440,"pieces_num":4},"ali_mobile":{"url":"http://image.smartisanos.cn/resource/0b42c35b463f23c73cedffef08a7fdb3.jpg","width":1220,"height":4354,"piece_height":1440,"pieces_num":4}}},"weibo":{"text":"","images":{"1x":"","2x":"","mobile":"","image_pre":"","image_name":""}}},"buy_notes":[]},"sku_info":[{"sku_id":"100027501","title":"坚果 Pro 钢化玻璃手感膜 开孔 (后壳用)","sub_title":"9H 超强硬度、超 4 小时钢化时长、2.5D 弧边设计","promo_title":"","color_id":"36","appearance_color_id":"","image":null,"ali_image":"http://image.smartisanos.cn/resource/3802197aa7e78f9429eb5f6048a25047.jpg","direct_to_cart":true,"price":"49.00","spec_json":[{"spec_id":"1","spec_value_id":"36","show_name":"黑色","image":"attr/v2/1000275/649AD35E36A9703BACBE1555AEB6D266/"}]}],"acc_info":{"package_list":""},"after_sell_info":{"is_back":"1","back_deadline":"7","is_exchange":"1","exchange_deadline":"15","is_repair":"0"},"created_at":1492582165000,"updated_at":1495784908000},{"id":1000274,"name":"坚果 Pro 钢化玻璃保护膜 (前屏用)","price":49.00,"sale_status":3,"product_info":{"product_name":"坚果 Pro 钢化玻璃保护膜 (前屏用)","product_code":"1000274","brand_id":1,"category_id":73,"product_type":1,"delivery_type":0,"delivery_area":0,"supply_type":"A","tax_rate":17,"desc":"","is_package":0,"is_mobile":0,"is_insurance":0,"accessory_goods":[]},"shop_info":{"spu_title":"坚果 Pro 钢化玻璃保护膜(前屏用)","spu_sub_title":"高达 92% 的超强透光率、耐刮花、防指纹","spu_promo_title":"","sale_model":"1","book_num":null,"spec_v2":[{"spec_id":"1","spec_name":"颜色","visiable":"0","show_type":"2","spec_values":[{"id":"211","spec_id":"1","item_value":"透明","show_name":"透明","image":"attr/v2/1000274/3555AF9D0704A3AE3ECB7DC7C6866775/"}],"image_pre":"http://img01.smartisanos.cn/","image_name":"origin.jpg"}],"tpl_id":"base,doodle,weibo","tpl_content":{"base":{"images":{"1x":[],"2x":[],"mobile":[],"image_pre":"","image_name":"","ali":{"url":"http://image.smartisanos.cn/resource/2d14b61e931a6e83ccb7e2c98b252695.jpg","width":1220,"height":4299},"ali_mobile":{"url":"http://image.smartisanos.cn/resource/2d14b61e931a6e83ccb7e2c98b252695.jpg","width":1220,"height":4299}},"attributes":[{"title":"","list":[{"name":"","value":""}]}],"aftersale":[{"title":"","content":""}],"extra":[{"title":"","content":""}]},"doodle":{"text":"","images":{"1x":[],"2x":[],"mobile":[],"image_pre":"","image_name":"","ali":{"url":"http://image.smartisanos.cn/resource/2d14b61e931a6e83ccb7e2c98b252695.jpg","width":1220,"height":4299,"piece_height":1440,"pieces_num":3},"ali_mobile":{"url":"http://image.smartisanos.cn/resource/2d14b61e931a6e83ccb7e2c98b252695.jpg","width":1220,"height":4299,"piece_height":1440,"pieces_num":3}}},"weibo":{"text":"","images":{"1x":"","2x":"","mobile":"","image_pre":"","image_name":""}}},"buy_notes":[]},"sku_info":[{"sku_id":"100027401","title":"坚果 Pro 钢化玻璃保护膜(前屏用)","sub_title":"高达 92% 的超强透光率、耐刮花、防指纹","promo_title":"","color_id":"211","appearance_color_id":"","image":null,"ali_image":"http://image.smartisanos.cn/resource/30cacf4088f7105d16452c661afd9299.jpg","direct_to_cart":true,"price":"49.00","spec_json":[{"spec_id":"1","spec_value_id":"211","show_name":"透明","image":"attr/v2/1000274/3555AF9D0704A3AE3ECB7DC7C6866775/"}]}],"acc_info":{"package_list":""},"after_sell_info":{"is_back":1,"back_deadline":7,"is_exchange":1,"exchange_deadline":15,"is_repair":0},"created_at":1492574149000,"updated_at":1495784908000},{"id":1000271,"name":"坚果 Pro 软胶保护套","price":49.00,"sale_status":3,"product_info":{"product_name":"坚果 Pro 软胶保护套","product_code":"1000271","brand_id":1,"category_id":70,"product_type":1,"delivery_type":5,"delivery_area":7,"supply_type":"A","tax_rate":17,"desc":"","is_package":0,"is_mobile":0,"is_insurance":0,"accessory_goods":[]},"shop_info":{"spu_title":"坚果 Pro 软胶保护套","spu_sub_title":"TPU 环保材质、耐磨、耐油、耐久性强","spu_promo_title":"","sale_model":"1","book_num":null,"spec_v2":[{"spec_id":"1","spec_name":"颜色","visiable":"0","show_type":"2","spec_values":[{"id":"35","spec_id":"1","item_value":"红色","show_name":"红色","image":"attr/v2/1000271/948F029DCF134EF23267994487994DA5/"},{"id":"36","spec_id":"1","item_value":"黑色","show_name":"黑色","image":"attr/v2/1000271/649AD35E36A9703BACBE1555AEB6D266/"},{"id":"41","spec_id":"1","item_value":"咖啡色","show_name":"巧克力色","image":"attr/v2/1000271/07BAF8C0EF046224A84B593DEEBC869E/"},{"id":"207","spec_id":"1","item_value":"浅金色","show_name":"浅金色","image":"attr/v2/1000271/52317E0C067C97FC6CE9376A2432CFFF/"}],"image_pre":"http://img01.smartisanos.cn/","image_name":"origin.jpg"}],"tpl_id":"base","tpl_content":{"base":{"images":{"1x":[],"2x":[],"mobile":[],"image_pre":"","image_name":"","ali_mobile":{"url":["http://image.smartisanos.cn/resource/98521dbfe1dd1e67db3f7ca21e76c9ef.jpg"],"width":2440,"height":14000,"piece_height":1440,"pieces_num":10},"ali":{"url":["http://image.smartisanos.cn/resource/98521dbfe1dd1e67db3f7ca21e76c9ef.jpg"],"width":2440,"height":14000,"piece_height":1440,"pieces_num":10}},"attributes":[{"title":"","list":[{"name":"","value":""}]}],"aftersale":[{"title":"","content":""}],"extra":[{"title":"","content":""}]}},"buy_notes":[]},"sku_info":[{"sku_id":"100027101","title":"坚果 Pro 软胶保护套","sub_title":"TPU 环保材质、耐磨、耐油、耐久性强","promo_title":"","color_id":"35","appearance_color_id":"","image":null,"ali_image":"http://image.smartisanos.cn/resource/902befd5f32a8caf4ca79b55d39ee25a.jpg","direct_to_cart":true,"price":"49.00","spec_json":[{"spec_id":"1","spec_value_id":"35","show_name":"红色","image":"attr/v2/1000271/948F029DCF134EF23267994487994DA5/"}]},{"sku_id":"100027102","title":"坚果 Pro 软胶保护套","sub_title":"TPU 环保材质、耐磨、耐油、耐久性强","promo_title":"","color_id":"36","appearance_color_id":"","image":null,"ali_image":"http://image.smartisanos.cn/resource/554da94d8e4f84f03e0015fd1c997f46.jpg","direct_to_cart":true,"price":"49.00","spec_json":[{"spec_id":"1","spec_value_id":"36","show_name":"黑色","image":"attr/v2/1000271/649AD35E36A9703BACBE1555AEB6D266/"}]},{"sku_id":"100027103","title":"坚果 Pro 软胶保护套","sub_title":"TPU 环保材质、耐磨、耐油、耐久性强","promo_title":"","color_id":"41","appearance_color_id":"","image":null,"ali_image":"http://image.smartisanos.cn/resource/84b58718b8f8da3c08e0931e19fdc62e.png","direct_to_cart":true,"price":"49.00","spec_json":[{"spec_id":"1","spec_value_id":"41","show_name":"巧克力色","image":"attr/v2/1000271/07BAF8C0EF046224A84B593DEEBC869E/"}]},{"sku_id":"100027104","title":"坚果 Pro 软胶保护套","sub_title":"TPU 环保材质、耐磨、耐油、耐久性强","promo_title":"","color_id":"207","appearance_color_id":"","image":null,"ali_image":"http://image.smartisanos.cn/resource/b20055215ae3db0f2c8b7ba4db68866f.png","direct_to_cart":true,"price":"49.00","spec_json":[{"spec_id":"1","spec_value_id":"207","show_name":"浅金色","image":"attr/v2/1000271/52317E0C067C97FC6CE9376A2432CFFF/"}]}],"acc_info":{"package_list":""},"after_sell_info":{"is_back":1,"back_deadline":7,"is_exchange":1,"exchange_deadline":15,"is_repair":0},"created_at":1492484266000,"updated_at":1497410146000},{"id":1000268,"name":"Smartisan 耳机转接头","price":19.00,"sale_status":3,"product_info":{"product_name":"Smartisan 耳机转接头","product_code":"1000268","brand_id":1,"category_id":41,"product_type":1,"delivery_type":5,"delivery_area":7,"supply_type":"A","tax_rate":17,"desc":"","is_package":0,"is_mobile":0,"is_insurance":0,"accessory_goods":[]},"shop_info":{"spu_title":"Smartisan 耳机转接头","spu_sub_title":"即插即用、全面兼容","spu_promo_title":"","sale_model":"1","book_num":null,"spec_v2":[{"spec_id":"1","spec_name":"颜色","visiable":"0","show_type":"2","spec_values":[{"id":"37","spec_id":"1","item_value":"白色","show_name":"白色","image":"attr/v2/1000268/E647E77234F9ED0FDE9DD4084D35FF57/"}],"image_pre":"http://img01.smartisanos.cn/","image_name":"origin.jpg"}],"tpl_id":"base","tpl_content":{"base":{"images":{"1x":[],"2x":[],"mobile":[],"image_pre":"","image_name":"","ali":{"url":"http://image.smartisanos.cn/resource/586f7bfcf88f14935918943bb0421c26.jpg","width":1220,"height":4715,"piece_height":1440,"pieces_num":4},"ali_mobile":{"url":"http://image.smartisanos.cn/resource/586f7bfcf88f14935918943bb0421c26.jpg","width":1220,"height":4715,"piece_height":1440,"pieces_num":4}},"attributes":[{"title":"","list":[{"name":"","value":""}]}],"aftersale":[{"title":"","content":""}],"extra":[{"title":"","content":""}]}},"buy_notes":[]},"sku_info":[{"sku_id":"100026801","title":"Smartisan 耳机转接头","sub_title":"即插即用、全面兼容","promo_title":"","color_id":"37","appearance_color_id":"","image":null,"ali_image":"http://image.smartisanos.cn/resource/1dddddf6488ba89d592a37e9db93ffa2.jpg","direct_to_cart":true,"price":"19.00","spec_json":[{"spec_id":"1","spec_value_id":"37","show_name":"白色","image":"attr/v2/1000268/E647E77234F9ED0FDE9DD4084D35FF57/"}]}],"acc_info":{"package_list":""},"after_sell_info":{"is_back":1,"back_deadline":7,"is_exchange":1,"exchange_deadline":15,"is_repair":1},"created_at":1492420907000,"updated_at":1495784908000},{"id":1000267,"name":"Smartisan 原装快充充电器 18W","price":59.00,"sale_status":3,"product_info":{"product_name":"Smartisan 原装快充充电器 18W","product_code":"1000267","brand_id":1,"category_id":41,"product_type":1,"delivery_type":5,"delivery_area":7,"supply_type":"A","tax_rate":17,"desc":"","is_package":0,"is_mobile":0,"is_insurance":0,"accessory_goods":[]},"shop_info":{"spu_title":"Smartisan 原装快充充电器 18W","spu_sub_title":"18W 安全快充、支持主流 QC3.0, MTK PE+2.0 快充协议","spu_promo_title":"","sale_model":"1","book_num":null,"spec_v2":[{"spec_id":"1","spec_name":"颜色","visiable":"0","show_type":"2","spec_values":[{"id":"37","spec_id":"1","item_value":"白色","show_name":"白色","image":"attr/v2/1000267/E647E77234F9ED0FDE9DD4084D35FF57/"}],"image_pre":"http://img01.smartisanos.cn/","image_name":"origin.jpg"}],"tpl_id":"base","tpl_content":{"base":{"images":{"1x":[],"2x":[],"mobile":[],"image_pre":"","image_name":"","ali":{"url":"http://image.smartisanos.cn/resource/4a7b87fe01ec8339985702ee922d205a.jpg","width":1220,"height":4526,"piece_height":1440,"pieces_num":4},"ali_mobile":{"url":"http://image.smartisanos.cn/resource/4a7b87fe01ec8339985702ee922d205a.jpg","width":1220,"height":4526,"piece_height":1440,"pieces_num":4}},"attributes":[{"title":"","list":[{"name":"","value":""}]}],"aftersale":[{"title":"","content":""}],"extra":[{"title":"","content":""}]}},"buy_notes":[]},"sku_info":[{"sku_id":"100026701","title":"Smartisan 原装快充充电器 18W","sub_title":"18W 安全快充、支持主流 QC3.0, MTK PE+2.0 快充协议","promo_title":"","color_id":"37","appearance_color_id":"","image":null,"ali_image":"http://image.smartisanos.cn/resource/dc53bd870ee64d2053ecc51750ece43a.jpg","direct_to_cart":true,"price":"59.00","spec_json":[{"spec_id":"1","spec_value_id":"37","show_name":"白色","image":"attr/v2/1000267/E647E77234F9ED0FDE9DD4084D35FF57/"}]}],"acc_info":{"package_list":""},"after_sell_info":{"is_back":1,"back_deadline":7,"is_exchange":1,"exchange_deadline":15,"is_repair":1},"created_at":1492420420000,"updated_at":1495627685000},{"id":1000266,"name":"Smartisan 原装 Type-C 数据线","price":39.00,"sale_status":3,"product_info":{"product_name":"Smartisan 原装 Type-C 数据线","product_code":"1000266","brand_id":1,"category_id":56,"product_type":1,"delivery_type":5,"delivery_area":7,"supply_type":"A","tax_rate":17,"desc":"","is_package":0,"is_mobile":0,"is_insurance":0,"accessory_goods":[]},"shop_info":{"spu_title":"Smartisan 原装 Type-C 数据线","spu_sub_title":"PTC 过温保护、凹形设计、TPE 环保材质","spu_promo_title":"","sale_model":"1","book_num":null,"spec_v2":[{"spec_id":"1","spec_name":"颜色","visiable":"0","show_type":"2","spec_values":[{"id":"37","spec_id":"1","item_value":"白色","show_name":"白色","image":"attr/v2/1000266/E647E77234F9ED0FDE9DD4084D35FF57/"}],"image_pre":"http://img01.smartisanos.cn/","image_name":"origin.jpg"}],"tpl_id":"base","tpl_content":{"base":{"images":{"1x":[],"2x":[],"mobile":[],"image_pre":"","image_name":"","ali":{"url":"http://image.smartisanos.cn/resource/b3d7b420e3e609e858a8d75f19cbfd7c.jpg","width":1220,"height":4829,"piece_height":1440,"pieces_num":4},"ali_mobile":{"url":"http://image.smartisanos.cn/resource/b3d7b420e3e609e858a8d75f19cbfd7c.jpg","width":1220,"height":4829,"piece_height":1440,"pieces_num":4}},"attributes":[{"title":"","list":[{"name":"","value":""}]}],"aftersale":[{"title":"","content":""}],"extra":[{"title":"","content":""}]}},"buy_notes":[]},"sku_info":[{"sku_id":"100026601","title":"Smartisan 原装 Type-C 数据线","sub_title":"PTC 过温保护、凹形设计、TPE 环保材质","promo_title":"","color_id":"37","appearance_color_id":"","image":null,"ali_image":"http://image.smartisanos.cn/resource/c79a73ffc6f8e782160d978f49f543dc.jpg","direct_to_cart":true,"price":"39.00","spec_json":[{"spec_id":"1","spec_value_id":"37","show_name":"白色","image":"attr/v2/1000266/E647E77234F9ED0FDE9DD4084D35FF57/"}]}],"acc_info":{"package_list":""},"after_sell_info":{"is_back":1,"back_deadline":7,"is_exchange":1,"exchange_deadline":15,"is_repair":1},"created_at":1492154240000,"updated_at":1495784908000}]
\ No newline at end of file
diff --git a/Vue-shopping/src/assets/js/goods.min.js b/Vue-shopping/src/assets/js/goods.min.js
new file mode 100644
index 0000000..e3c6d44
--- /dev/null
+++ b/Vue-shopping/src/assets/js/goods.min.js
@@ -0,0 +1 @@
+var goodData = [{id: 1000299, name: 'Smartisan 快充移动电源 10000mAh', price: 199, sale_status: 3, product_info: {product_name: 'Smartisan 快充移动电源 10000mAh', product_code: '1000299', brand_id: '1', category_id: '59', product_type: '1', delivery_type: '5', delivery_area: '7', supply_type: 'A', tax_rate: '17', desc: '', is_package: '0', is_mobile: 0, is_insurance: 0, accessory_goods: []}, shop_info: {spu_title: 'Smartisan 快充移动电源 10000mAh', spu_sub_title: '10000mAh 双向快充、轻盈便携、高标准安全保护', spu_promo_title: '', sale_model: '1', book_num: null, spec_v2: [{spec_id: '1', spec_name: '颜色', visiable: '0', show_type: '2', spec_values: [{id: '70', spec_id: '1', item_value: '灰色', show_name: '灰色', image: 'attr/v2/1000299/B37F37544921114CEF1EC01ED4DF44E4/'}], image_pre: 'http: //img01.smartisanos.cn/', image_name: 'origin.jpg'}], tpl_id: 'base', tpl_content: {base: {images: {'1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali: {url: 'http: //image.smartisanos.cn/resource/d930be42185ab064035d0894f37ea179.jpg', width: 1220, height: 6478, piece_height: 1440, pieces_num: 5}, ali_mobile: {url: 'http: //image.smartisanos.cn/resource/d930be42185ab064035d0894f37ea179.jpg', width: 1220, height: 6478, piece_height: 1440, pieces_num: 5}}, attributes: [{title: '', list: [{name: '', value: ''}]}], aftersale: [{title: '', content: ''}], extra: [{title: '', content: ''}]}}, buy_notes: []}, sku_info: [{sku_id: '100029901', title: 'Smartisan 快充移动电源 10000mAh', sub_title: '10000mAh 双向快充、轻盈便携、高标准安全保护', promo_title: '', color_id: '70', appearance_color_id: '', image: null, ali_image: 'http: //image.smartisanos.cn/resource/ae40a16324658c192c7361d829f603bd.jpg', direct_to_cart: !0, price: '199.00', spec_json: [{spec_id: '1', spec_value_id: '70', show_name: '灰色', image: 'attr/v2/1000299/B37F37544921114CEF1EC01ED4DF44E4/'}]}], acc_info: {package_list: ''}, after_sell_info: {is_back: '1', back_deadline: '7', is_exchange: '1', exchange_deadline: '15', is_repair: '1'}, created_at: 1493017027e3, updated_at: 1497715202e3}, {id: 1000298, name: '坚果Pro 钢化玻璃手感膜 无孔 (后壳用)', price: 49, sale_status: 3, product_info: {product_name: '坚果Pro 钢化玻璃手感膜 无孔 (后壳用)', product_code: '1000298', brand_id: '1', category_id: '73', product_type: '1', delivery_type: '0', delivery_area: '0', supply_type: 'A', tax_rate: '17', desc: '', is_package: '0', is_mobile: 0, is_insurance: 0, accessory_goods: []}, shop_info: {spu_title: '坚果 Pro 钢化玻璃手感膜 无孔 (后壳用)', spu_sub_title: '仅适用于坚果 Pro (酒红色版、浅金色版、巧克力色版和 32G 碳黑色版)', spu_promo_title: '', sale_model: '1', book_num: null, spec_v2: [{spec_id: '1', spec_name: '颜色', visiable: '0', show_type: '2', spec_values: [{id: '211', spec_id: '1', item_value: '透明', show_name: '透明', image: 'attr/v2/1000298/B1D74DE1EB579A14D2F97F6F56F508C4/'}], image_pre: 'http: //img01.smartisanos.cn/', image_name: 'origin.jpg'}], tpl_id: 'base, doodle, weibo', tpl_content: {base: {images: {'1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali: {url: 'http: //image.smartisanos.cn/resource/cca8534ffae2cb1d2626d707ee653dbd.jpg', width: 1220, height: 4390}, ali_mobile: {url: 'http: //image.smartisanos.cn/resource/cca8534ffae2cb1d2626d707ee653dbd.jpg', width: 1220, height: 4390}}, attributes: [{title: '', list: [{name: '', value: ''}]}], aftersale: [{title: '', content: ''}], extra: [{title: '', content: ''}]}, doodle: {text: '', images: {'1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali: {url: 'http: //image.smartisanos.cn/resource/cca8534ffae2cb1d2626d707ee653dbd.jpg', width: 1220, height: 4390, piece_height: 1440, pieces_num: 4}, ali_mobile: {url: 'http: //image.smartisanos.cn/resource/cca8534ffae2cb1d2626d707ee653dbd.jpg', width: 1220, height: 4390, piece_height: 1440, pieces_num: 4}}}, weibo: {text: '', images: {'1x': '', '2x': '', mobile: '', image_pre: '', image_name: ''}}}, buy_notes: ['坚果 Pro 钢化玻璃手感膜 无孔 (后壳用)仅适用于坚果 Pro (酒红色版、浅金色版、巧克力色版和 32G 碳黑色版)']}, sku_info: [{sku_id: '100029801', title: '坚果 Pro 钢化玻璃手感膜 无孔 (后壳用)', sub_title: '仅适用于坚果 Pro (酒红色版、浅金色版、巧克力色版和 32G 碳黑色版)', promo_title: '', color_id: '211', appearance_color_id: '', image: null, ali_image: 'http: //image.smartisanos.cn/resource/f6f081615fdd6f92206c3d127501843a.jpg', direct_to_cart: !0, price: '49.00', spec_json: [{spec_id: '1', spec_value_id: '211', show_name: '透明', image: 'attr/v2/1000298/B1D74DE1EB579A14D2F97F6F56F508C4/'}]}], acc_info: {package_list: ''}, after_sell_info: {is_back: '1', back_deadline: '7', is_exchange: '1', exchange_deadline: '15', is_repair: '0'}, created_at: 1492769862e3, updated_at: 1497862955e3}, {id: 1000275, name: '坚果 Pro 钢化玻璃手感膜 开孔 (后壳用)', price: 49, sale_status: 3, product_info: {product_name: '坚果 Pro 钢化玻璃手感膜 开孔 (后壳用)', product_code: '1000275', brand_id: '1', category_id: '73', product_type: '1', delivery_type: '0', delivery_area: '0', supply_type: 'A', tax_rate: '17', desc: '', is_package: '0', is_mobile: 0, is_insurance: 0, accessory_goods: []}, shop_info: {spu_title: '坚果 Pro 钢化玻璃手感膜 开孔 (后壳用)', spu_sub_title: '9H 超强硬度、超 4 小时钢化时长、2.5D 弧边设计', spu_promo_title: '', sale_model: '1', book_num: null, spec_v2: [{spec_id: '1', spec_name: '颜色', visiable: '0', show_type: '2', spec_values: [{id: '36', spec_id: '1', item_value: '黑色', show_name: '黑色', image: 'attr/v2/1000275/649AD35E36A9703BACBE1555AEB6D266/'}, {id: '201', spec_id: '1', item_value: '酒红色', show_name: '酒红色', image: 'attr/v2/1000275/948F029DCF134EF23267994487994DA5/'}], image_pre: 'http: //img01.smartisanos.cn/', image_name: 'origin.jpg'}], tpl_id: 'base, doodle, weibo', tpl_content: {base: {images: {'1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali: {url: 'http: //image.smartisanos.cn/resource/0b42c35b463f23c73cedffef08a7fdb3.jpg', width: 1220, height: 4354}, ali_mobile: {url: 'http: //image.smartisanos.cn/resource/0b42c35b463f23c73cedffef08a7fdb3.jpg', width: 1220, height: 4354}}, attributes: [{title: '', list: [{name: '', value: ''}]}], aftersale: [{title: '', content: ''}], extra: [{title: '', content: ''}]}, doodle: {text: '', images: {'1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali: {url: 'http: //image.smartisanos.cn/resource/0b42c35b463f23c73cedffef08a7fdb3.jpg', width: 1220, height: 4354, piece_height: 1440, pieces_num: 4}, ali_mobile: {url: 'http: //image.smartisanos.cn/resource/0b42c35b463f23c73cedffef08a7fdb3.jpg', width: 1220, height: 4354, piece_height: 1440, pieces_num: 4}}}, weibo: {text: '', images: {'1x': '', '2x': '', mobile: '', image_pre: '', image_name: ''}}}, buy_notes: []}, sku_info: [{sku_id: '100027501', title: '坚果 Pro 钢化玻璃手感膜 开孔 (后壳用)', sub_title: '9H 超强硬度、超 4 小时钢化时长、2.5D 弧边设计', promo_title: '', color_id: '36', appearance_color_id: '', image: null, ali_image: 'http: //image.smartisanos.cn/resource/3802197aa7e78f9429eb5f6048a25047.jpg', direct_to_cart: !0, price: '49.00', spec_json: [{spec_id: '1', spec_value_id: '36', show_name: '黑色', image: 'attr/v2/1000275/649AD35E36A9703BACBE1555AEB6D266/'}]}], acc_info: {package_list: ''}, after_sell_info: {is_back: '1', back_deadline: '7', is_exchange: '1', exchange_deadline: '15', is_repair: '0'}, created_at: 1492582165e3, updated_at: 1495784908e3}, {id: 1000274, name: '坚果 Pro 钢化玻璃保护膜 (前屏用)', price: 49, sale_status: 3, product_info: {product_name: '坚果 Pro 钢化玻璃保护膜 (前屏用)', product_code: '1000274', brand_id: 1, category_id: 73, product_type: 1, delivery_type: 0, delivery_area: 0, supply_type: 'A', tax_rate: 17, desc: '', is_package: 0, is_mobile: 0, is_insurance: 0, accessory_goods: []}, shop_info: {spu_title: '坚果 Pro 钢化玻璃保护膜(前屏用)', spu_sub_title: '高达 92% 的超强透光率、耐刮花、防指纹', spu_promo_title: '', sale_model: '1', book_num: null, spec_v2: [{spec_id: '1', spec_name: '颜色', visiable: '0', show_type: '2', spec_values: [{id: '211', spec_id: '1', item_value: '透明', show_name: '透明', image: 'attr/v2/1000274/3555AF9D0704A3AE3ECB7DC7C6866775/'}], image_pre: 'http: //img01.smartisanos.cn/', image_name: 'origin.jpg'}], tpl_id: 'base, doodle, weibo', tpl_content: {base: {images: {'1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali: {url: 'http: //image.smartisanos.cn/resource/2d14b61e931a6e83ccb7e2c98b252695.jpg', width: 1220, height: 4299}, ali_mobile: {url: 'http: //image.smartisanos.cn/resource/2d14b61e931a6e83ccb7e2c98b252695.jpg', width: 1220, height: 4299}}, attributes: [{title: '', list: [{name: '', value: ''}]}], aftersale: [{title: '', content: ''}], extra: [{title: '', content: ''}]}, doodle: {text: '', images: {'1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali: {url: 'http: //image.smartisanos.cn/resource/2d14b61e931a6e83ccb7e2c98b252695.jpg', width: 1220, height: 4299, piece_height: 1440, pieces_num: 3}, ali_mobile: {url: 'http: //image.smartisanos.cn/resource/2d14b61e931a6e83ccb7e2c98b252695.jpg', width: 1220, height: 4299, piece_height: 1440, pieces_num: 3}}}, weibo: {text: '', images: {'1x': '', '2x': '', mobile: '', image_pre: '', image_name: ''}}}, buy_notes: []}, sku_info: [{sku_id: '100027401', title: '坚果 Pro 钢化玻璃保护膜(前屏用)', sub_title: '高达 92% 的超强透光率、耐刮花、防指纹', promo_title: '', color_id: '211', appearance_color_id: '', image: null, ali_image: 'http: //image.smartisanos.cn/resource/30cacf4088f7105d16452c661afd9299.jpg', direct_to_cart: !0, price: '49.00', spec_json: [{spec_id: '1', spec_value_id: '211', show_name: '透明', image: 'attr/v2/1000274/3555AF9D0704A3AE3ECB7DC7C6866775/'}]}], acc_info: {package_list: ''}, after_sell_info: {is_back: 1, back_deadline: 7, is_exchange: 1, exchange_deadline: 15, is_repair: 0}, created_at: 1492574149e3, updated_at: 1495784908e3}, {id: 1000271, name: '坚果 Pro 软胶保护套', price: 49, sale_status: 3, product_info: {product_name: '坚果 Pro 软胶保护套', product_code: '1000271', brand_id: 1, category_id: 70, product_type: 1, delivery_type: 5, delivery_area: 7, supply_type: 'A', tax_rate: 17, desc: '', is_package: 0, is_mobile: 0, is_insurance: 0, accessory_goods: []}, shop_info: {spu_title: '坚果 Pro 软胶保护套', spu_sub_title: 'TPU 环保材质、耐磨、耐油、耐久性强', spu_promo_title: '', sale_model: '1', book_num: null, spec_v2: [{spec_id: '1', spec_name: '颜色', visiable: '0', show_type: '2', spec_values: [{id: '35', spec_id: '1', item_value: '红色', show_name: '红色', image: 'attr/v2/1000271/948F029DCF134EF23267994487994DA5/'}, {id: '36', spec_id: '1', item_value: '黑色', show_name: '黑色', image: 'attr/v2/1000271/649AD35E36A9703BACBE1555AEB6D266/'}, {id: '41', spec_id: '1', item_value: '咖啡色', show_name: '巧克力色', image: 'attr/v2/1000271/07BAF8C0EF046224A84B593DEEBC869E/'}, {id: '207', spec_id: '1', item_value: '浅金色', show_name: '浅金色', image: 'attr/v2/1000271/52317E0C067C97FC6CE9376A2432CFFF/'}], image_pre: 'http: //img01.smartisanos.cn/', image_name: 'origin.jpg'}], tpl_id: 'base', tpl_content: {base: {images: {'1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali_mobile: {url: ['http: //image.smartisanos.cn/resource/98521dbfe1dd1e67db3f7ca21e76c9ef.jpg'], width: 2440, height: 14e3, piece_height: 1440, pieces_num: 10}, ali: {url: ['http: //image.smartisanos.cn/resource/98521dbfe1dd1e67db3f7ca21e76c9ef.jpg'], width: 2440, height: 14e3, piece_height: 1440, pieces_num: 10}}, attributes: [{title: '', list: [{name: '', value: ''}]}], aftersale: [{title: '', content: ''}], extra: [{title: '', content: ''}]}}, buy_notes: []}, sku_info: [{sku_id: '100027101', title: '坚果 Pro 软胶保护套', sub_title: 'TPU 环保材质、耐磨、耐油、耐久性强', promo_title: '', color_id: '35', appearance_color_id: '', image: null, ali_image: 'http: //image.smartisanos.cn/resource/902befd5f32a8caf4ca79b55d39ee25a.jpg', direct_to_cart: !0, price: '49.00', spec_json: [{spec_id: '1', spec_value_id: '35', show_name: '红色', image: 'attr/v2/1000271/948F029DCF134EF23267994487994DA5/'}]}, {sku_id: '100027102', title: '坚果 Pro 软胶保护套', sub_title: 'TPU 环保材质、耐磨、耐油、耐久性强', promo_title: '', color_id: '36', appearance_color_id: '', image: null, ali_image: 'http: //image.smartisanos.cn/resource/554da94d8e4f84f03e0015fd1c997f46.jpg', direct_to_cart: !0, price: '49.00', spec_json: [{spec_id: '1', spec_value_id: '36', show_name: '黑色', image: 'attr/v2/1000271/649AD35E36A9703BACBE1555AEB6D266/'}]}, {sku_id: '100027103', title: '坚果 Pro 软胶保护套', sub_title: 'TPU 环保材质、耐磨、耐油、耐久性强', promo_title: '', color_id: '41', appearance_color_id: '', image: null, ali_image: 'http: //image.smartisanos.cn/resource/84b58718b8f8da3c08e0931e19fdc62e.png', direct_to_cart: !0, price: '49.00', spec_json: [{spec_id: '1', spec_value_id: '41', show_name: '巧克力色', image: 'attr/v2/1000271/07BAF8C0EF046224A84B593DEEBC869E/'}]}, {sku_id: '100027104', title: '坚果 Pro 软胶保护套', sub_title: 'TPU 环保材质、耐磨、耐油、耐久性强', promo_title: '', color_id: '207', appearance_color_id: '', image: null, ali_image: 'http: //image.smartisanos.cn/resource/b20055215ae3db0f2c8b7ba4db68866f.png', direct_to_cart: !0, price: '49.00', spec_json: [{spec_id: '1', spec_value_id: '207', show_name: '浅金色', image: 'attr/v2/1000271/52317E0C067C97FC6CE9376A2432CFFF/'}]}], acc_info: {package_list: ''}, after_sell_info: {is_back: 1, back_deadline: 7, is_exchange: 1, exchange_deadline: 15, is_repair: 0}, created_at: 1492484266e3, updated_at: 1497410146e3}, {id: 1000268, name: 'Smartisan 耳机转接头', price: 19, sale_status: 3, product_info: {product_name: 'Smartisan 耳机转接头', product_code: '1000268', brand_id: 1, category_id: 41, product_type: 1, delivery_type: 5, delivery_area: 7, supply_type: 'A', tax_rate: 17, desc: '', is_package: 0, is_mobile: 0, is_insurance: 0, accessory_goods: []}, shop_info: {spu_title: 'Smartisan 耳机转接头', spu_sub_title: '即插即用、全面兼容', spu_promo_title: '', sale_model: '1', book_num: null, spec_v2: [{spec_id: '1', spec_name: '颜色', visiable: '0', show_type: '2', spec_values: [{id: '37', spec_id: '1', item_value: '白色', show_name: '白色', image: 'attr/v2/1000268/E647E77234F9ED0FDE9DD4084D35FF57/'}], image_pre: 'http: //img01.smartisanos.cn/', image_name: 'origin.jpg'}], tpl_id: 'base', tpl_content: {base: {images: {'1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali: {url: 'http: //image.smartisanos.cn/resource/586f7bfcf88f14935918943bb0421c26.jpg', width: 1220, height: 4715, piece_height: 1440, pieces_num: 4}, ali_mobile: {url: 'http: //image.smartisanos.cn/resource/586f7bfcf88f14935918943bb0421c26.jpg', width: 1220, height: 4715, piece_height: 1440, pieces_num: 4}}, attributes: [{title: '', list: [{name: '', value: ''}]}], aftersale: [{title: '', content: ''}], extra: [{title: '', content: ''}]}}, buy_notes: []}, sku_info: [{sku_id: '100026801', title: 'Smartisan 耳机转接头', sub_title: '即插即用、全面兼容', promo_title: '', color_id: '37', appearance_color_id: '', image: null, ali_image: 'http: //image.smartisanos.cn/resource/1dddddf6488ba89d592a37e9db93ffa2.jpg', direct_to_cart: !0, price: '19.00', spec_json: [{spec_id: '1', spec_value_id: '37', show_name: '白色', image: 'attr/v2/1000268/E647E77234F9ED0FDE9DD4084D35FF57/'}]}], acc_info: {package_list: ''}, after_sell_info: {is_back: 1, back_deadline: 7, is_exchange: 1, exchange_deadline: 15, is_repair: 1}, created_at: 1492420907e3, updated_at: 1495784908e3}, {id: 1000267, name: 'Smartisan 原装快充充电器 18W', price: 59, sale_status: 3, product_info: {product_name: 'Smartisan 原装快充充电器 18W', product_code: '1000267', brand_id: 1, category_id: 41, product_type: 1, delivery_type: 5, delivery_area: 7, supply_type: 'A', tax_rate: 17, desc: '', is_package: 0, is_mobile: 0, is_insurance: 0, accessory_goods: []}, shop_info: {spu_title: 'Smartisan 原装快充充电器 18W', spu_sub_title: '18W 安全快充、支持主流 QC3.0, MTK PE+2.0 快充协议', spu_promo_title: '', sale_model: '1', book_num: null, spec_v2: [{spec_id: '1', spec_name: '颜色', visiable: '0', show_type: '2', spec_values: [{id: '37', spec_id: '1', item_value: '白色', show_name: '白色', image: 'attr/v2/1000267/E647E77234F9ED0FDE9DD4084D35FF57/'}], image_pre: 'http: //img01.smartisanos.cn/', image_name: 'origin.jpg'}], tpl_id: 'base', tpl_content: {base: {images: {'1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali: {url: 'http: //image.smartisanos.cn/resource/4a7b87fe01ec8339985702ee922d205a.jpg', width: 1220, height: 4526, piece_height: 1440, pieces_num: 4}, ali_mobile: {url: 'http: //image.smartisanos.cn/resource/4a7b87fe01ec8339985702ee922d205a.jpg', width: 1220, height: 4526, piece_height: 1440, pieces_num: 4}}, attributes: [{title: '', list: [{name: '', value: ''}]}], aftersale: [{title: '', content: ''}], extra: [{title: '', content: ''}]}}, buy_notes: []}, sku_info: [{sku_id: '100026701', title: 'Smartisan 原装快充充电器 18W', sub_title: '18W 安全快充、支持主流 QC3.0, MTK PE+2.0 快充协议', promo_title: '', color_id: '37', appearance_color_id: '', image: null, ali_image: 'http: //image.smartisanos.cn/resource/dc53bd870ee64d2053ecc51750ece43a.jpg', direct_to_cart: !0, price: '59.00', spec_json: [{spec_id: '1', spec_value_id: '37', show_name: '白色', image: 'attr/v2/1000267/E647E77234F9ED0FDE9DD4084D35FF57/'}]}], acc_info: {package_list: ''}, after_sell_info: {is_back: 1, back_deadline: 7, is_exchange: 1, exchange_deadline: 15, is_repair: 1}, created_at: 149242042e4, updated_at: 1495627685e3}, {id: 1000266, name: 'Smartisan 原装 Type-C 数据线', price: 39, sale_status: 3, product_info: {product_name: 'Smartisan 原装 Type-C 数据线', product_code: '1000266', brand_id: 1, category_id: 56, product_type: 1, delivery_type: 5, delivery_area: 7, supply_type: 'A', tax_rate: 17, desc: '', is_package: 0, is_mobile: 0, is_insurance: 0, accessory_goods: []}, shop_info: {spu_title: 'Smartisan 原装 Type-C 数据线', spu_sub_title: 'PTC 过温保护、凹形设计、TPE 环保材质', spu_promo_title: '', sale_model: '1', book_num: null, spec_v2: [{spec_id: '1', spec_name: '颜色', visiable: '0', show_type: '2', spec_values: [{id: '37', spec_id: '1', item_value: '白色', show_name: '白色', image: 'attr/v2/1000266/E647E77234F9ED0FDE9DD4084D35FF57/'}], image_pre: 'http: //img01.smartisanos.cn/', image_name: 'origin.jpg'}], tpl_id: 'base', tpl_content: {base: {images: {'1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali: {url: 'http: //image.smartisanos.cn/resource/b3d7b420e3e609e858a8d75f19cbfd7c.jpg', width: 1220, height: 4829, piece_height: 1440, pieces_num: 4}, ali_mobile: {url: 'http: //image.smartisanos.cn/resource/b3d7b420e3e609e858a8d75f19cbfd7c.jpg', width: 1220, height: 4829, piece_height: 1440, pieces_num: 4}}, attributes: [{title: '', list: [{name: '', value: ''}]}], aftersale: [{title: '', content: ''}], extra: [{title: '', content: ''}]}}, buy_notes: []}, sku_info: [{sku_id: '100026601', title: 'Smartisan 原装 Type-C 数据线', sub_title: 'PTC 过温保护、凹形设计、TPE 环保材质', promo_title: '', color_id: '37', appearance_color_id: '', image: null, ali_image: 'http: //image.smartisanos.cn/resource/c79a73ffc6f8e782160d978f49f543dc.jpg', direct_to_cart: !0, price: '39.00', spec_json: [{spec_id: '1', spec_value_id: '37', show_name: '白色', image: 'attr/v2/1000266/E647E77234F9ED0FDE9DD4084D35FF57/'}]}], acc_info: {package_list: ''}, after_sell_info: {is_back: 1, back_deadline: 7, is_exchange: 1, exchange_deadline: 15, is_repair: 1}, created_at: 149215424e4, updated_at: 1495784908e3}]
diff --git a/Vue-shopping/src/assets/js/items.js b/Vue-shopping/src/assets/js/items.js
new file mode 100644
index 0000000..323bae4
--- /dev/null
+++ b/Vue-shopping/src/assets/js/items.js
@@ -0,0 +1,8 @@
+var itemsData = [{"id":100029901,"price":199.00,"name":"Smartisan 快充移动电源 10000mAh(灰色)","spu_id":1000299,"sale_status":3,"product_info":{"goods_name":"Smartisan 快充移动电源 10000mAh(灰色)","goods_code":"100029901","barcode":"6970643021295","sapcode":"ACC130001AGD","package_type":"0","product_code":"1000299","product_name":"Smartisan 快充移动电源 10000mAh","is_mobile":0,"is_insurance":0,"goods_type":"0","is_package":false,"package_goods":[]},"shop_info":{"title":"Smartisan 快充移动电源 10000mAh","sub_title":"10000mAh 双向快充、轻盈便携、高标准安全保护","promo_title":"","limit_num":"1","spec_v2":[{"spec_id":"1","spec_name":"颜色","visiable":"0","show_type":"2","spec_values":[{"id":"70","spec_id":"1","item_value":"灰色","show_name":"灰色","image":"attr/v2/1000299/B37F37544921114CEF1EC01ED4DF44E4/"}],"image_pre":"http://img01.smartisanos.cn/","image_name":"origin.jpg"}],"spec_json":[{"spec_id":"1","spec_value_id":"70","show_name":"灰色","image":"attr/v2/1000299/B37F37544921114CEF1EC01ED4DF44E4/"}],"buy_notes":[],"images":null,"image":null,"ali_images":["http://image.smartisanos.cn/resource/ae40a16324658c192c7361d829f603bd.jpg","http://image.smartisanos.cn/resource/0540778097a009364f2dcbb8c5286451.jpg","http://image.smartisanos.cn/resource/ed7ea75824124d7385c99d532f1d4f1d.jpg","http://image.smartisanos.cn/resource/40b8c1b1e5d175cc8fa9e7ff96cb6016.jpg","http://image.smartisanos.cn/resource/fb24dc3db26c6f02542e0dea9b10151b.jpg"],"ali_image":"http://image.smartisanos.cn/resource/ae40a16324658c192c7361d829f603bd.jpg","image_default_name":"origin.jpg","is_custom":"0","is_mobile":"0","is_package":"0","tpl_id":"base","tpl_content":{"base":{"images":{"1x":[],"2x":[],"mobile":[],"image_pre":"","image_name":"","ali":{"url":"http://image.smartisanos.cn/resource/d930be42185ab064035d0894f37ea179.jpg","width":1220,"height":6478,"piece_height":1440,"pieces_num":5},"ali_mobile":{"url":"http://image.smartisanos.cn/resource/d930be42185ab064035d0894f37ea179.jpg","width":1220,"height":6478,"piece_height":1440,"pieces_num":5}},"attributes":[{"title":"","list":[{"name":"","value":""}]}],"aftersale":[{"title":"","content":""}],"extra":[{"title":"","content":""}]}},"doodle_stage":"99"},"attr_info":{"1":{"spec_id":"1","spec_name":"颜色","value":"灰色","spec_value_id":"70"}},"created_at":1493017027000,"updated_at":1497715201000,"sku_list":[{"id":100029901,"price":199.00,"name":"Smartisan 快充移动电源 10000mAh(灰色)","spu_id":1000299,"sale_status":3,"product_info":{"goods_name":"Smartisan 快充移动电源 10000mAh(灰色)","goods_code":"100029901","barcode":"6970643021295","sapcode":"ACC130001AGD","package_type":"0","product_code":"1000299","product_name":"Smartisan 快充移动电源 10000mAh","is_mobile":0,"is_insurance":0,"goods_type":"0","is_package":false,"package_goods":[]},"shop_info":{"title":"Smartisan 快充移动电源 10000mAh","sub_title":"10000mAh 双向快充、轻盈便携、高标准安全保护","promo_title":"","limit_num":"1","spec_v2":[{"spec_id":"1","spec_name":"颜色","visiable":"0","show_type":"2","spec_values":[{"id":"70","spec_id":"1","item_value":"灰色","show_name":"灰色","image":"attr/v2/1000299/B37F37544921114CEF1EC01ED4DF44E4/"}],"image_pre":"http://img01.smartisanos.cn/","image_name":"origin.jpg"}],"spec_json":[{"spec_id":"1","spec_value_id":"70","show_name":"灰色","image":"attr/v2/1000299/B37F37544921114CEF1EC01ED4DF44E4/"}],"buy_notes":[],"images":null,"image":null,"ali_images":["http://image.smartisanos.cn/resource/ae40a16324658c192c7361d829f603bd.jpg","http://image.smartisanos.cn/resource/0540778097a009364f2dcbb8c5286451.jpg","http://image.smartisanos.cn/resource/ed7ea75824124d7385c99d532f1d4f1d.jpg","http://image.smartisanos.cn/resource/40b8c1b1e5d175cc8fa9e7ff96cb6016.jpg","http://image.smartisanos.cn/resource/fb24dc3db26c6f02542e0dea9b10151b.jpg"],"ali_image":"http://image.smartisanos.cn/resource/ae40a16324658c192c7361d829f603bd.jpg","image_default_name":"origin.jpg","is_custom":"0","is_mobile":"0","is_package":"0","tpl_id":"base","tpl_content":{"base":{"images":{"1x":[],"2x":[],"mobile":[],"image_pre":"","image_name":"","ali":{"url":"http://image.smartisanos.cn/resource/d930be42185ab064035d0894f37ea179.jpg","width":1220,"height":6478,"piece_height":1440,"pieces_num":5},"ali_mobile":{"url":"http://image.smartisanos.cn/resource/d930be42185ab064035d0894f37ea179.jpg","width":1220,"height":6478,"piece_height":1440,"pieces_num":5}},"attributes":[{"title":"","list":[{"name":"","value":""}]}],"aftersale":[{"title":"","content":""}],"extra":[{"title":"","content":""}]}},"doodle_stage":"99"},"attr_info":{"1":{"spec_id":"1","spec_name":"颜色","value":"灰色","spec_value_id":"70"}},"created_at":1493017027000,"updated_at":1497715201000}],"in_stock":true},
+{"id":100029801,"price":49.00,"name":"坚果Pro 钢化玻璃手感膜 无孔 (后壳用)(透明)","spu_id":1000298,"sale_status":3,"product_info":{"goods_name":"坚果Pro 钢化玻璃手感膜 无孔 (后壳用)(透明)","goods_code":"100029801","barcode":"6970643021226","sapcode":"ACC210005CTS","package_type":"0","product_code":"1000298","product_name":"坚果Pro 钢化玻璃手感膜 无孔 (后壳用)","is_mobile":0,"is_insurance":0,"goods_type":"20","is_package":false,"package_goods":[]},"shop_info":{"title":"坚果 Pro 钢化玻璃手感膜 无孔 (后壳用)","sub_title":"仅适用于坚果 Pro (酒红色版、浅金色版、巧克力色版和 32G 碳黑色版)","promo_title":"","limit_num":"5","spec_v2":[{"spec_id":"1","spec_name":"颜色","visiable":"0","show_type":"2","spec_values":[{"id":"211","spec_id":"1","item_value":"透明","show_name":"透明","image":"attr/v2/1000298/B1D74DE1EB579A14D2F97F6F56F508C4/"}],"image_pre":"http://img01.smartisanos.cn/","image_name":"origin.jpg"}],"spec_json":[{"spec_id":"1","spec_value_id":"211","show_name":"透明","image":"attr/v2/1000298/B1D74DE1EB579A14D2F97F6F56F508C4/"}],"buy_notes":["坚果 Pro 钢化玻璃手感膜 无孔 (后壳用)仅适用于坚果 Pro (酒红色版、浅金色版、巧克力色版和 32G 碳黑色版)"],"images":null,"image":null,"ali_images":["http://image.smartisanos.cn/resource/f6f081615fdd6f92206c3d127501843a.jpg"],"ali_image":"http://image.smartisanos.cn/resource/f6f081615fdd6f92206c3d127501843a.jpg","image_default_name":"origin.jpg","is_custom":"0","is_mobile":"0","is_package":"0","tpl_id":"base,doodle,weibo","tpl_content":{"base":{"images":{"1x":[],"2x":[],"mobile":[],"image_pre":"","image_name":"","ali":{"url":"http://image.smartisanos.cn/resource/cca8534ffae2cb1d2626d707ee653dbd.jpg","width":1220,"height":4390},"ali_mobile":{"url":"http://image.smartisanos.cn/resource/cca8534ffae2cb1d2626d707ee653dbd.jpg","width":1220,"height":4390}},"attributes":[{"title":"","list":[{"name":"","value":""}]}],"aftersale":[{"title":"","content":""}],"extra":[{"title":"","content":""}]},"doodle":{"text":"","images":{"1x":[],"2x":[],"mobile":[],"image_pre":"","image_name":"","ali":{"url":"http://image.smartisanos.cn/resource/cca8534ffae2cb1d2626d707ee653dbd.jpg","width":1220,"height":4390,"piece_height":1440,"pieces_num":4},"ali_mobile":{"url":"http://image.smartisanos.cn/resource/cca8534ffae2cb1d2626d707ee653dbd.jpg","width":1220,"height":4390,"piece_height":1440,"pieces_num":4}}},"weibo":{"text":"","images":{"1x":"","2x":"","mobile":"","image_pre":"","image_name":""}}},"doodle_stage":"99"},"attr_info":{"1":{"spec_id":"1","spec_name":"颜色","value":"透明","spec_value_id":"211"}},"created_at":1492769862000,"updated_at":1497862955000,"sku_list":[{"id":100029801,"price":49.00,"name":"坚果Pro 钢化玻璃手感膜 无孔 (后壳用)(透明)","spu_id":1000298,"sale_status":3,"product_info":{"goods_name":"坚果Pro 钢化玻璃手感膜 无孔 (后壳用)(透明)","goods_code":"100029801","barcode":"6970643021226","sapcode":"ACC210005CTS","package_type":"0","product_code":"1000298","product_name":"坚果Pro 钢化玻璃手感膜 无孔 (后壳用)","is_mobile":0,"is_insurance":0,"goods_type":"20","is_package":false,"package_goods":[]},"shop_info":{"title":"坚果 Pro 钢化玻璃手感膜 无孔 (后壳用)","sub_title":"仅适用于坚果 Pro (酒红色版、浅金色版、巧克力色版和 32G 碳黑色版)","promo_title":"","limit_num":"5","spec_v2":[{"spec_id":"1","spec_name":"颜色","visiable":"0","show_type":"2","spec_values":[{"id":"211","spec_id":"1","item_value":"透明","show_name":"透明","image":"attr/v2/1000298/B1D74DE1EB579A14D2F97F6F56F508C4/"}],"image_pre":"http://img01.smartisanos.cn/","image_name":"origin.jpg"}],"spec_json":[{"spec_id":"1","spec_value_id":"211","show_name":"透明","image":"attr/v2/1000298/B1D74DE1EB579A14D2F97F6F56F508C4/"}],"buy_notes":["坚果 Pro 钢化玻璃手感膜 无孔 (后壳用)仅适用于坚果 Pro (酒红色版、浅金色版、巧克力色版和 32G 碳黑色版)"],"images":null,"image":null,"ali_images":["http://image.smartisanos.cn/resource/f6f081615fdd6f92206c3d127501843a.jpg"],"ali_image":"http://image.smartisanos.cn/resource/f6f081615fdd6f92206c3d127501843a.jpg","image_default_name":"origin.jpg","is_custom":"0","is_mobile":"0","is_package":"0","tpl_id":"base,doodle,weibo","tpl_content":{"base":{"images":{"1x":[],"2x":[],"mobile":[],"image_pre":"","image_name":"","ali":{"url":"http://image.smartisanos.cn/resource/cca8534ffae2cb1d2626d707ee653dbd.jpg","width":1220,"height":4390},"ali_mobile":{"url":"http://image.smartisanos.cn/resource/cca8534ffae2cb1d2626d707ee653dbd.jpg","width":1220,"height":4390}},"attributes":[{"title":"","list":[{"name":"","value":""}]}],"aftersale":[{"title":"","content":""}],"extra":[{"title":"","content":""}]},"doodle":{"text":"","images":{"1x":[],"2x":[],"mobile":[],"image_pre":"","image_name":"","ali":{"url":"http://image.smartisanos.cn/resource/cca8534ffae2cb1d2626d707ee653dbd.jpg","width":1220,"height":4390,"piece_height":1440,"pieces_num":4},"ali_mobile":{"url":"http://image.smartisanos.cn/resource/cca8534ffae2cb1d2626d707ee653dbd.jpg","width":1220,"height":4390,"piece_height":1440,"pieces_num":4}}},"weibo":{"text":"","images":{"1x":"","2x":"","mobile":"","image_pre":"","image_name":""}}},"doodle_stage":"99"},"attr_info":{"1":{"spec_id":"1","spec_name":"颜色","value":"透明","spec_value_id":"211"}},"created_at":1492769862000,"updated_at":1497862955000}],"in_stock":true},
+{"id":100027501,"price":49.00,"name":"坚果 Pro 钢化玻璃手感膜 开孔 (后壳用)(黑色)","spu_id":1000275,"sale_status":3,"product_info":{"goods_name":"坚果 Pro 钢化玻璃手感膜 开孔 (后壳用)(黑色)","goods_code":"100027501","barcode":"6970643024913","sapcode":"ACC210005DBS","package_type":"0","product_code":"1000275","product_name":"坚果 Pro 钢化玻璃手感膜 开孔 (后壳用)","is_mobile":0,"is_insurance":0,"goods_type":"20","is_package":false,"package_goods":[]},"shop_info":{"title":"坚果 Pro 钢化玻璃手感膜 开孔 (后壳用)","sub_title":"9H 超强硬度、超 4 小时钢化时长、2.5D 弧边设计","promo_title":"","limit_num":"5","spec_v2":[{"spec_id":"1","spec_name":"颜色","visiable":"0","show_type":"2","spec_values":[{"id":"36","spec_id":"1","item_value":"黑色","show_name":"黑色","image":"attr/v2/1000275/649AD35E36A9703BACBE1555AEB6D266/"},{"id":"201","spec_id":"1","item_value":"酒红色","show_name":"酒红色","image":"attr/v2/1000275/948F029DCF134EF23267994487994DA5/"}],"image_pre":"http://img01.smartisanos.cn/","image_name":"origin.jpg"}],"spec_json":[{"spec_id":"1","spec_value_id":"36","show_name":"黑色","image":"attr/v2/1000275/649AD35E36A9703BACBE1555AEB6D266/"}],"buy_notes":[],"images":null,"image":null,"ali_images":["http://image.smartisanos.cn/resource/3802197aa7e78f9429eb5f6048a25047.jpg"],"ali_image":"http://image.smartisanos.cn/resource/3802197aa7e78f9429eb5f6048a25047.jpg","image_default_name":"origin.jpg","is_custom":"0","is_mobile":"0","is_package":"0","tpl_id":"base,doodle,weibo","tpl_content":{"base":{"images":{"1x":[],"2x":[],"mobile":[],"image_pre":"","image_name":"","ali":{"url":"http://image.smartisanos.cn/resource/0b42c35b463f23c73cedffef08a7fdb3.jpg","width":1220,"height":4354},"ali_mobile":{"url":"http://image.smartisanos.cn/resource/0b42c35b463f23c73cedffef08a7fdb3.jpg","width":1220,"height":4354}},"attributes":[{"title":"","list":[{"name":"","value":""}]}],"aftersale":[{"title":"","content":""}],"extra":[{"title":"","content":""}]},"doodle":{"text":"","images":{"1x":[],"2x":[],"mobile":[],"image_pre":"","image_name":"","ali":{"url":"http://image.smartisanos.cn/resource/0b42c35b463f23c73cedffef08a7fdb3.jpg","width":1220,"height":4354,"piece_height":1440,"pieces_num":4},"ali_mobile":{"url":"http://image.smartisanos.cn/resource/0b42c35b463f23c73cedffef08a7fdb3.jpg","width":1220,"height":4354,"piece_height":1440,"pieces_num":4}}},"weibo":{"text":"","images":{"1x":"","2x":"","mobile":"","image_pre":"","image_name":""}}},"doodle_stage":"99"},"attr_info":{"1":{"spec_id":"1","spec_name":"颜色","value":"黑色","spec_value_id":"36"}},"created_at":1492582165000,"updated_at":1495784909000,"sku_list":[{"id":100027501,"price":49.00,"name":"坚果 Pro 钢化玻璃手感膜 开孔 (后壳用)(黑色)","spu_id":1000275,"sale_status":3,"product_info":{"goods_name":"坚果 Pro 钢化玻璃手感膜 开孔 (后壳用)(黑色)","goods_code":"100027501","barcode":"6970643024913","sapcode":"ACC210005DBS","package_type":"0","product_code":"1000275","product_name":"坚果 Pro 钢化玻璃手感膜 开孔 (后壳用)","is_mobile":0,"is_insurance":0,"goods_type":"20","is_package":false,"package_goods":[]},"shop_info":{"title":"坚果 Pro 钢化玻璃手感膜 开孔 (后壳用)","sub_title":"9H 超强硬度、超 4 小时钢化时长、2.5D 弧边设计","promo_title":"","limit_num":"5","spec_v2":[{"spec_id":"1","spec_name":"颜色","visiable":"0","show_type":"2","spec_values":[{"id":"36","spec_id":"1","item_value":"黑色","show_name":"黑色","image":"attr/v2/1000275/649AD35E36A9703BACBE1555AEB6D266/"},{"id":"201","spec_id":"1","item_value":"酒红色","show_name":"酒红色","image":"attr/v2/1000275/948F029DCF134EF23267994487994DA5/"}],"image_pre":"http://img01.smartisanos.cn/","image_name":"origin.jpg"}],"spec_json":[{"spec_id":"1","spec_value_id":"36","show_name":"黑色","image":"attr/v2/1000275/649AD35E36A9703BACBE1555AEB6D266/"}],"buy_notes":[],"images":null,"image":null,"ali_images":["http://image.smartisanos.cn/resource/3802197aa7e78f9429eb5f6048a25047.jpg"],"ali_image":"http://image.smartisanos.cn/resource/3802197aa7e78f9429eb5f6048a25047.jpg","image_default_name":"origin.jpg","is_custom":"0","is_mobile":"0","is_package":"0","tpl_id":"base,doodle,weibo","tpl_content":{"base":{"images":{"1x":[],"2x":[],"mobile":[],"image_pre":"","image_name":"","ali":{"url":"http://image.smartisanos.cn/resource/0b42c35b463f23c73cedffef08a7fdb3.jpg","width":1220,"height":4354},"ali_mobile":{"url":"http://image.smartisanos.cn/resource/0b42c35b463f23c73cedffef08a7fdb3.jpg","width":1220,"height":4354}},"attributes":[{"title":"","list":[{"name":"","value":""}]}],"aftersale":[{"title":"","content":""}],"extra":[{"title":"","content":""}]},"doodle":{"text":"","images":{"1x":[],"2x":[],"mobile":[],"image_pre":"","image_name":"","ali":{"url":"http://image.smartisanos.cn/resource/0b42c35b463f23c73cedffef08a7fdb3.jpg","width":1220,"height":4354,"piece_height":1440,"pieces_num":4},"ali_mobile":{"url":"http://image.smartisanos.cn/resource/0b42c35b463f23c73cedffef08a7fdb3.jpg","width":1220,"height":4354,"piece_height":1440,"pieces_num":4}}},"weibo":{"text":"","images":{"1x":"","2x":"","mobile":"","image_pre":"","image_name":""}}},"doodle_stage":"99"},"attr_info":{"1":{"spec_id":"1","spec_name":"颜色","value":"黑色","spec_value_id":"36"}},"created_at":1492582165000,"updated_at":1495784909000}],"in_stock":true},
+{"id":100027401,"price":49.00,"name":"坚果 Pro 钢化玻璃保护膜 (前屏用)(透明)","spu_id":1000274,"sale_status":3,"product_info":{"goods_name":"坚果 Pro 钢化玻璃保护膜 (前屏用)(透明)","goods_code":"100027401","barcode":"6970643021219","sapcode":"ACC210005BTS","package_type":"0","product_code":"1000274","product_name":"坚果 Pro 钢化玻璃保护膜 (前屏用)","is_mobile":0,"is_insurance":0,"goods_type":"20","is_package":false,"package_goods":[]},"shop_info":{"title":"坚果 Pro 钢化玻璃保护膜(前屏用)","sub_title":"高达 92% 的超强透光率、耐刮花、防指纹","promo_title":"","limit_num":"5","spec_v2":[{"spec_id":"1","spec_name":"颜色","visiable":"0","show_type":"2","spec_values":[{"id":"211","spec_id":"1","item_value":"透明","show_name":"透明","image":"attr/v2/1000274/3555AF9D0704A3AE3ECB7DC7C6866775/"}],"image_pre":"http://img01.smartisanos.cn/","image_name":"origin.jpg"}],"spec_json":[{"spec_id":"1","spec_value_id":"211","show_name":"透明","image":"attr/v2/1000274/3555AF9D0704A3AE3ECB7DC7C6866775/"}],"buy_notes":[],"images":null,"image":null,"ali_images":["http://image.smartisanos.cn/resource/30cacf4088f7105d16452c661afd9299.jpg"],"ali_image":"http://image.smartisanos.cn/resource/30cacf4088f7105d16452c661afd9299.jpg","image_default_name":"origin.jpg","is_custom":"0","is_mobile":"0","is_package":"0","tpl_id":"base,doodle,weibo","tpl_content":{"base":{"images":{"1x":[],"2x":[],"mobile":[],"image_pre":"","image_name":"","ali":{"url":"http://image.smartisanos.cn/resource/2d14b61e931a6e83ccb7e2c98b252695.jpg","width":1220,"height":4299},"ali_mobile":{"url":"http://image.smartisanos.cn/resource/2d14b61e931a6e83ccb7e2c98b252695.jpg","width":1220,"height":4299}},"attributes":[{"title":"","list":[{"name":"","value":""}]}],"aftersale":[{"title":"","content":""}],"extra":[{"title":"","content":""}]},"doodle":{"text":"","images":{"1x":[],"2x":[],"mobile":[],"image_pre":"","image_name":"","ali":{"url":"http://image.smartisanos.cn/resource/2d14b61e931a6e83ccb7e2c98b252695.jpg","width":1220,"height":4299,"piece_height":1440,"pieces_num":3},"ali_mobile":{"url":"http://image.smartisanos.cn/resource/2d14b61e931a6e83ccb7e2c98b252695.jpg","width":1220,"height":4299,"piece_height":1440,"pieces_num":3}}},"weibo":{"text":"","images":{"1x":"","2x":"","mobile":"","image_pre":"","image_name":""}}},"doodle_stage":"99"},"attr_info":{"1":{"spec_id":"1","spec_name":"颜色","value":"透明","spec_value_id":"211"}},"created_at":1492574149000,"updated_at":1495784909000,"sku_list":[{"id":100027401,"price":49.00,"name":"坚果 Pro 钢化玻璃保护膜 (前屏用)(透明)","spu_id":1000274,"sale_status":3,"product_info":{"goods_name":"坚果 Pro 钢化玻璃保护膜 (前屏用)(透明)","goods_code":"100027401","barcode":"6970643021219","sapcode":"ACC210005BTS","package_type":"0","product_code":"1000274","product_name":"坚果 Pro 钢化玻璃保护膜 (前屏用)","is_mobile":0,"is_insurance":0,"goods_type":"20","is_package":false,"package_goods":[]},"shop_info":{"title":"坚果 Pro 钢化玻璃保护膜(前屏用)","sub_title":"高达 92% 的超强透光率、耐刮花、防指纹","promo_title":"","limit_num":"5","spec_v2":[{"spec_id":"1","spec_name":"颜色","visiable":"0","show_type":"2","spec_values":[{"id":"211","spec_id":"1","item_value":"透明","show_name":"透明","image":"attr/v2/1000274/3555AF9D0704A3AE3ECB7DC7C6866775/"}],"image_pre":"http://img01.smartisanos.cn/","image_name":"origin.jpg"}],"spec_json":[{"spec_id":"1","spec_value_id":"211","show_name":"透明","image":"attr/v2/1000274/3555AF9D0704A3AE3ECB7DC7C6866775/"}],"buy_notes":[],"images":null,"image":null,"ali_images":["http://image.smartisanos.cn/resource/30cacf4088f7105d16452c661afd9299.jpg"],"ali_image":"http://image.smartisanos.cn/resource/30cacf4088f7105d16452c661afd9299.jpg","image_default_name":"origin.jpg","is_custom":"0","is_mobile":"0","is_package":"0","tpl_id":"base,doodle,weibo","tpl_content":{"base":{"images":{"1x":[],"2x":[],"mobile":[],"image_pre":"","image_name":"","ali":{"url":"http://image.smartisanos.cn/resource/2d14b61e931a6e83ccb7e2c98b252695.jpg","width":1220,"height":4299},"ali_mobile":{"url":"http://image.smartisanos.cn/resource/2d14b61e931a6e83ccb7e2c98b252695.jpg","width":1220,"height":4299}},"attributes":[{"title":"","list":[{"name":"","value":""}]}],"aftersale":[{"title":"","content":""}],"extra":[{"title":"","content":""}]},"doodle":{"text":"","images":{"1x":[],"2x":[],"mobile":[],"image_pre":"","image_name":"","ali":{"url":"http://image.smartisanos.cn/resource/2d14b61e931a6e83ccb7e2c98b252695.jpg","width":1220,"height":4299,"piece_height":1440,"pieces_num":3},"ali_mobile":{"url":"http://image.smartisanos.cn/resource/2d14b61e931a6e83ccb7e2c98b252695.jpg","width":1220,"height":4299,"piece_height":1440,"pieces_num":3}}},"weibo":{"text":"","images":{"1x":"","2x":"","mobile":"","image_pre":"","image_name":""}}},"doodle_stage":"99"},"attr_info":{"1":{"spec_id":"1","spec_name":"颜色","value":"透明","spec_value_id":"211"}},"created_at":1492574149000,"updated_at":1495784909000}],"in_stock":true},
+{"id":100027101,"price":49.00,"name":"坚果 Pro 软胶保护套(红色)","spu_id":1000271,"sale_status":3,"product_info":{"goods_name":"坚果 Pro 软胶保护套(红色)","goods_code":"100027101","barcode":"6970643021165","sapcode":"ACC200005ARS","package_type":"0","product_code":"1000271","product_name":"坚果 Pro 软胶保护套","is_mobile":0,"is_insurance":0,"goods_type":"0","is_package":false,"package_goods":[]},"shop_info":{"title":"坚果 Pro 软胶保护套","sub_title":"TPU 环保材质、耐磨、耐油、耐久性强","promo_title":"","limit_num":"5","spec_v2":[{"spec_id":"1","spec_name":"颜色","visiable":"0","show_type":"2","spec_values":[{"id":"35","spec_id":"1","item_value":"红色","show_name":"红色","image":"attr/v2/1000271/948F029DCF134EF23267994487994DA5/"},{"id":"36","spec_id":"1","item_value":"黑色","show_name":"黑色","image":"attr/v2/1000271/649AD35E36A9703BACBE1555AEB6D266/"},{"id":"41","spec_id":"1","item_value":"咖啡色","show_name":"巧克力色","image":"attr/v2/1000271/07BAF8C0EF046224A84B593DEEBC869E/"},{"id":"207","spec_id":"1","item_value":"浅金色","show_name":"浅金色","image":"attr/v2/1000271/52317E0C067C97FC6CE9376A2432CFFF/"}],"image_pre":"http://img01.smartisanos.cn/","image_name":"origin.jpg"}],"spec_json":[{"spec_id":"1","spec_value_id":"35","show_name":"红色","image":"attr/v2/1000271/948F029DCF134EF23267994487994DA5/"}],"buy_notes":[],"images":null,"image":null,"ali_images":["http://image.smartisanos.cn/resource/902befd5f32a8caf4ca79b55d39ee25a.jpg","http://image.smartisanos.cn/resource/ca760e50409c796a4e770c54554f92bf.jpg","http://image.smartisanos.cn/resource/493c65d42fe83ec3daaf058d79fc1a95.jpg","http://image.smartisanos.cn/resource/0bf30081dd17431c4fdfbd237c53743f.jpg","http://image.smartisanos.cn/resource/cba7b4cdb2fc41d7f29fb45d94972e41.jpg"],"ali_image":"http://image.smartisanos.cn/resource/902befd5f32a8caf4ca79b55d39ee25a.jpg","image_default_name":"origin.jpg","is_custom":"0","is_mobile":"0","is_package":"0","tpl_id":"base","tpl_content":{"base":{"images":{"1x":[],"2x":[],"mobile":[],"image_pre":"","image_name":"","ali_mobile":{"url":["http://image.smartisanos.cn/resource/98521dbfe1dd1e67db3f7ca21e76c9ef.jpg"],"width":2440,"height":14000,"piece_height":1440,"pieces_num":10},"ali":{"url":["http://image.smartisanos.cn/resource/98521dbfe1dd1e67db3f7ca21e76c9ef.jpg"],"width":2440,"height":14000,"piece_height":1440,"pieces_num":10}},"attributes":[{"title":"","list":[{"name":"","value":""}]}],"aftersale":[{"title":"","content":""}],"extra":[{"title":"","content":""}]}},"doodle_stage":"99"},"attr_info":{"1":{"spec_id":"1","spec_name":"颜色","value":"红色","spec_value_id":"35"}},"created_at":1492484266000,"updated_at":1497410146000,"sku_list":[{"id":100027101,"price":49.00,"name":"坚果 Pro 软胶保护套(红色)","spu_id":1000271,"sale_status":3,"product_info":{"goods_name":"坚果 Pro 软胶保护套(红色)","goods_code":"100027101","barcode":"6970643021165","sapcode":"ACC200005ARS","package_type":"0","product_code":"1000271","product_name":"坚果 Pro 软胶保护套","is_mobile":0,"is_insurance":0,"goods_type":"0","is_package":false,"package_goods":[]},"shop_info":{"title":"坚果 Pro 软胶保护套","sub_title":"TPU 环保材质、耐磨、耐油、耐久性强","promo_title":"","limit_num":"5","spec_v2":[{"spec_id":"1","spec_name":"颜色","visiable":"0","show_type":"2","spec_values":[{"id":"35","spec_id":"1","item_value":"红色","show_name":"红色","image":"attr/v2/1000271/948F029DCF134EF23267994487994DA5/"},{"id":"36","spec_id":"1","item_value":"黑色","show_name":"黑色","image":"attr/v2/1000271/649AD35E36A9703BACBE1555AEB6D266/"},{"id":"41","spec_id":"1","item_value":"咖啡色","show_name":"巧克力色","image":"attr/v2/1000271/07BAF8C0EF046224A84B593DEEBC869E/"},{"id":"207","spec_id":"1","item_value":"浅金色","show_name":"浅金色","image":"attr/v2/1000271/52317E0C067C97FC6CE9376A2432CFFF/"}],"image_pre":"http://img01.smartisanos.cn/","image_name":"origin.jpg"}],"spec_json":[{"spec_id":"1","spec_value_id":"35","show_name":"红色","image":"attr/v2/1000271/948F029DCF134EF23267994487994DA5/"}],"buy_notes":[],"images":null,"image":null,"ali_images":["http://image.smartisanos.cn/resource/902befd5f32a8caf4ca79b55d39ee25a.jpg","http://image.smartisanos.cn/resource/ca760e50409c796a4e770c54554f92bf.jpg","http://image.smartisanos.cn/resource/493c65d42fe83ec3daaf058d79fc1a95.jpg","http://image.smartisanos.cn/resource/0bf30081dd17431c4fdfbd237c53743f.jpg","http://image.smartisanos.cn/resource/cba7b4cdb2fc41d7f29fb45d94972e41.jpg"],"ali_image":"http://image.smartisanos.cn/resource/902befd5f32a8caf4ca79b55d39ee25a.jpg","image_default_name":"origin.jpg","is_custom":"0","is_mobile":"0","is_package":"0","tpl_id":"base","tpl_content":{"base":{"images":{"1x":[],"2x":[],"mobile":[],"image_pre":"","image_name":"","ali_mobile":{"url":["http://image.smartisanos.cn/resource/98521dbfe1dd1e67db3f7ca21e76c9ef.jpg"],"width":2440,"height":14000,"piece_height":1440,"pieces_num":10},"ali":{"url":["http://image.smartisanos.cn/resource/98521dbfe1dd1e67db3f7ca21e76c9ef.jpg"],"width":2440,"height":14000,"piece_height":1440,"pieces_num":10}},"attributes":[{"title":"","list":[{"name":"","value":""}]}],"aftersale":[{"title":"","content":""}],"extra":[{"title":"","content":""}]}},"doodle_stage":"99"},"attr_info":{"1":{"spec_id":"1","spec_name":"颜色","value":"红色","spec_value_id":"35"}},"created_at":1492484266000,"updated_at":1497410146000},{"id":100027102,"price":49.00,"name":"坚果 Pro 软胶保护套(黑色)","spu_id":1000271,"sale_status":3,"product_info":{"goods_name":"坚果 Pro 软胶保护套(黑色)","goods_code":"100027102","barcode":"6970643021196","sapcode":"ACC200005ABS","package_type":"0","product_code":"1000271","product_name":"坚果 Pro 软胶保护套","is_mobile":0,"is_insurance":0,"goods_type":"0","is_package":false,"package_goods":[]},"shop_info":{"title":"坚果 Pro 软胶保护套","sub_title":"TPU 环保材质、耐磨、耐油、耐久性强","promo_title":"","limit_num":"5","spec_v2":[{"spec_id":"1","spec_name":"颜色","visiable":"0","show_type":"2","spec_values":[{"id":"35","spec_id":"1","item_value":"红色","show_name":"红色","image":"attr/v2/1000271/948F029DCF134EF23267994487994DA5/"},{"id":"36","spec_id":"1","item_value":"黑色","show_name":"黑色","image":"attr/v2/1000271/649AD35E36A9703BACBE1555AEB6D266/"},{"id":"41","spec_id":"1","item_value":"咖啡色","show_name":"巧克力色","image":"attr/v2/1000271/07BAF8C0EF046224A84B593DEEBC869E/"},{"id":"207","spec_id":"1","item_value":"浅金色","show_name":"浅金色","image":"attr/v2/1000271/52317E0C067C97FC6CE9376A2432CFFF/"}],"image_pre":"http://img01.smartisanos.cn/","image_name":"origin.jpg"}],"spec_json":[{"spec_id":"1","spec_value_id":"36","show_name":"黑色","image":"attr/v2/1000271/649AD35E36A9703BACBE1555AEB6D266/"}],"buy_notes":[],"images":null,"image":null,"ali_images":["http://image.smartisanos.cn/resource/554da94d8e4f84f03e0015fd1c997f46.jpg","http://image.smartisanos.cn/resource/01f25111e1a2c238a0f77e84aebd0796.jpg","http://image.smartisanos.cn/resource/2841709c21ef07616f621fd863dcf2f3.jpg","http://image.smartisanos.cn/resource/1b6fd01e415c380947cd98f62fa44817.jpg","http://image.smartisanos.cn/resource/9e40a858dff00faa2f139587b7085249.jpg"],"ali_image":"http://image.smartisanos.cn/resource/554da94d8e4f84f03e0015fd1c997f46.jpg","image_default_name":"origin.jpg","is_custom":"0","is_mobile":"0","is_package":"0","tpl_id":"base","tpl_content":{"base":{"images":{"1x":[],"2x":[],"mobile":[],"image_pre":"","image_name":"","ali_mobile":{"url":["http://image.smartisanos.cn/resource/98521dbfe1dd1e67db3f7ca21e76c9ef.jpg"],"width":2440,"height":14000,"piece_height":1440,"pieces_num":10},"ali":{"url":["http://image.smartisanos.cn/resource/98521dbfe1dd1e67db3f7ca21e76c9ef.jpg"],"width":2440,"height":14000,"piece_height":1440,"pieces_num":10}},"attributes":[{"title":"","list":[{"name":"","value":""}]}],"aftersale":[{"title":"","content":""}],"extra":[{"title":"","content":""}]}},"doodle_stage":"99"},"attr_info":{"1":{"spec_id":"1","spec_name":"颜色","value":"黑色","spec_value_id":"36"}},"created_at":1492484266000,"updated_at":1497410146000},{"id":100027103,"price":49.00,"name":"坚果 Pro 软胶保护套(巧克力色)","spu_id":1000271,"sale_status":3,"product_info":{"goods_name":"坚果 Pro 软胶保护套(巧克力色)","goods_code":"100027103","barcode":"6970643021172","sapcode":"ACC200005AMS","package_type":"0","product_code":"1000271","product_name":"坚果 Pro 软胶保护套","is_mobile":0,"is_insurance":0,"goods_type":"0","is_package":false,"package_goods":[]},"shop_info":{"title":"坚果 Pro 软胶保护套","sub_title":"TPU 环保材质、耐磨、耐油、耐久性强","promo_title":"","limit_num":"5","spec_v2":[{"spec_id":"1","spec_name":"颜色","visiable":"0","show_type":"2","spec_values":[{"id":"35","spec_id":"1","item_value":"红色","show_name":"红色","image":"attr/v2/1000271/948F029DCF134EF23267994487994DA5/"},{"id":"36","spec_id":"1","item_value":"黑色","show_name":"黑色","image":"attr/v2/1000271/649AD35E36A9703BACBE1555AEB6D266/"},{"id":"41","spec_id":"1","item_value":"咖啡色","show_name":"巧克力色","image":"attr/v2/1000271/07BAF8C0EF046224A84B593DEEBC869E/"},{"id":"207","spec_id":"1","item_value":"浅金色","show_name":"浅金色","image":"attr/v2/1000271/52317E0C067C97FC6CE9376A2432CFFF/"}],"image_pre":"http://img01.smartisanos.cn/","image_name":"origin.jpg"}],"spec_json":[{"spec_id":"1","spec_value_id":"41","show_name":"巧克力色","image":"attr/v2/1000271/07BAF8C0EF046224A84B593DEEBC869E/"}],"buy_notes":[],"images":null,"image":null,"ali_images":["http://image.smartisanos.cn/resource/84b58718b8f8da3c08e0931e19fdc62e.png","http://image.smartisanos.cn/resource/cf8a5f1de06e47d726f0a63566a0ad92.jpg","http://image.smartisanos.cn/resource/67b870558df49c45d0471bf9c20168bb.jpg","http://image.smartisanos.cn/resource/f3723c1a4ce684f63f1c110743818885.jpg","http://image.smartisanos.cn/resource/9f6816add135bf15a6d8018efde77b14.jpg"],"ali_image":"http://image.smartisanos.cn/resource/84b58718b8f8da3c08e0931e19fdc62e.png","image_default_name":"origin.jpg","is_custom":"0","is_mobile":"0","is_package":"0","tpl_id":"base","tpl_content":{"base":{"images":{"1x":[],"2x":[],"mobile":[],"image_pre":"","image_name":"","ali_mobile":{"url":["http://image.smartisanos.cn/resource/98521dbfe1dd1e67db3f7ca21e76c9ef.jpg"],"width":2440,"height":14000,"piece_height":1440,"pieces_num":10},"ali":{"url":["http://image.smartisanos.cn/resource/98521dbfe1dd1e67db3f7ca21e76c9ef.jpg"],"width":2440,"height":14000,"piece_height":1440,"pieces_num":10}},"attributes":[{"title":"","list":[{"name":"","value":""}]}],"aftersale":[{"title":"","content":""}],"extra":[{"title":"","content":""}]}},"doodle_stage":"99"},"attr_info":{"1":{"spec_id":"1","spec_name":"颜色","value":"咖啡色","spec_value_id":"41"}},"created_at":1492484266000,"updated_at":1497410146000},{"id":100027104,"price":49.00,"name":"坚果 Pro 软胶保护套(浅金色)","spu_id":1000271,"sale_status":3,"product_info":{"goods_name":"坚果 Pro 软胶保护套(浅金色)","goods_code":"100027104","barcode":"6970643021189","sapcode":"ACC200005ACS","package_type":"0","product_code":"1000271","product_name":"坚果 Pro 软胶保护套","is_mobile":0,"is_insurance":0,"goods_type":"0","is_package":false,"package_goods":[]},"shop_info":{"title":"坚果 Pro 软胶保护套","sub_title":"TPU 环保材质、耐磨、耐油、耐久性强","promo_title":"","limit_num":"5","spec_v2":[{"spec_id":"1","spec_name":"颜色","visiable":"0","show_type":"2","spec_values":[{"id":"35","spec_id":"1","item_value":"红色","show_name":"红色","image":"attr/v2/1000271/948F029DCF134EF23267994487994DA5/"},{"id":"36","spec_id":"1","item_value":"黑色","show_name":"黑色","image":"attr/v2/1000271/649AD35E36A9703BACBE1555AEB6D266/"},{"id":"41","spec_id":"1","item_value":"咖啡色","show_name":"巧克力色","image":"attr/v2/1000271/07BAF8C0EF046224A84B593DEEBC869E/"},{"id":"207","spec_id":"1","item_value":"浅金色","show_name":"浅金色","image":"attr/v2/1000271/52317E0C067C97FC6CE9376A2432CFFF/"}],"image_pre":"http://img01.smartisanos.cn/","image_name":"origin.jpg"}],"spec_json":[{"spec_id":"1","spec_value_id":"207","show_name":"浅金色","image":"attr/v2/1000271/52317E0C067C97FC6CE9376A2432CFFF/"}],"buy_notes":[],"images":null,"image":null,"ali_images":["http://image.smartisanos.cn/resource/b20055215ae3db0f2c8b7ba4db68866f.png","http://image.smartisanos.cn/resource/29ab28a5b6b9ffe2a03c32580dbc4309.jpg","http://image.smartisanos.cn/resource/1aa0b641eaa31f06c875d37259cdbedd.jpg","http://image.smartisanos.cn/resource/d370f3afd3d65dd8f16e89f3124b9915.jpg","http://image.smartisanos.cn/resource/5d08ab8393986c9337f329f09070091b.jpg"],"ali_image":"http://image.smartisanos.cn/resource/b20055215ae3db0f2c8b7ba4db68866f.png","image_default_name":"origin.jpg","is_custom":"0","is_mobile":"0","is_package":"0","tpl_id":"base","tpl_content":{"base":{"images":{"1x":[],"2x":[],"mobile":[],"image_pre":"","image_name":"","ali_mobile":{"url":["http://image.smartisanos.cn/resource/98521dbfe1dd1e67db3f7ca21e76c9ef.jpg"],"width":2440,"height":14000,"piece_height":1440,"pieces_num":10},"ali":{"url":["http://image.smartisanos.cn/resource/98521dbfe1dd1e67db3f7ca21e76c9ef.jpg"],"width":2440,"height":14000,"piece_height":1440,"pieces_num":10}},"attributes":[{"title":"","list":[{"name":"","value":""}]}],"aftersale":[{"title":"","content":""}],"extra":[{"title":"","content":""}]}},"doodle_stage":"99"},"attr_info":{"1":{"spec_id":"1","spec_name":"颜色","value":"浅金色","spec_value_id":"207"}},"created_at":1494387839000,"updated_at":1497410146000}],"in_stock":true},
+{"id":100026801,"price":19.00,"name":"Smartisan 耳机转接头(白色)","spu_id":1000268,"sale_status":3,"product_info":{"goods_name":"Smartisan 耳机转接头(白色)","goods_code":"100026801","barcode":"6970643021288","sapcode":"ACC100005AWK","package_type":"0","product_code":"1000268","product_name":"Smartisan 耳机转接头","is_mobile":0,"is_insurance":0,"goods_type":"0","is_package":false,"package_goods":[]},"shop_info":{"title":"Smartisan 耳机转接头","sub_title":"即插即用、全面兼容","promo_title":"","limit_num":"5","spec_v2":[{"spec_id":"1","spec_name":"颜色","visiable":"0","show_type":"2","spec_values":[{"id":"37","spec_id":"1","item_value":"白色","show_name":"白色","image":"attr/v2/1000268/E647E77234F9ED0FDE9DD4084D35FF57/"}],"image_pre":"http://img01.smartisanos.cn/","image_name":"origin.jpg"}],"spec_json":[{"spec_id":"1","spec_value_id":"37","show_name":"白色","image":"attr/v2/1000268/E647E77234F9ED0FDE9DD4084D35FF57/"}],"buy_notes":[],"images":null,"image":null,"ali_images":["http://image.smartisanos.cn/resource/1dddddf6488ba89d592a37e9db93ffa2.jpg","http://image.smartisanos.cn/resource/6c0f0d0a3daf70ae3008210a8834035f.jpg","http://image.smartisanos.cn/resource/b896eb8a621c2ab201c622860d23c138.jpg","http://image.smartisanos.cn/resource/561c002e74f6a5982dfaf3b4a44c9af4.jpg"],"ali_image":"http://image.smartisanos.cn/resource/1dddddf6488ba89d592a37e9db93ffa2.jpg","image_default_name":"origin.jpg","is_custom":"0","is_mobile":"0","is_package":"0","tpl_id":"base","tpl_content":{"base":{"images":{"1x":[],"2x":[],"mobile":[],"image_pre":"","image_name":"","ali":{"url":"http://image.smartisanos.cn/resource/586f7bfcf88f14935918943bb0421c26.jpg","width":1220,"height":4715,"piece_height":1440,"pieces_num":4},"ali_mobile":{"url":"http://image.smartisanos.cn/resource/586f7bfcf88f14935918943bb0421c26.jpg","width":1220,"height":4715,"piece_height":1440,"pieces_num":4}},"attributes":[{"title":"","list":[{"name":"","value":""}]}],"aftersale":[{"title":"","content":""}],"extra":[{"title":"","content":""}]}},"doodle_stage":"99"},"attr_info":{"1":{"spec_id":"1","spec_name":"颜色","value":"白色","spec_value_id":"37"}},"created_at":1492420907000,"updated_at":1495784909000,"sku_list":[{"id":100026801,"price":19.00,"name":"Smartisan 耳机转接头(白色)","spu_id":1000268,"sale_status":3,"product_info":{"goods_name":"Smartisan 耳机转接头(白色)","goods_code":"100026801","barcode":"6970643021288","sapcode":"ACC100005AWK","package_type":"0","product_code":"1000268","product_name":"Smartisan 耳机转接头","is_mobile":0,"is_insurance":0,"goods_type":"0","is_package":false,"package_goods":[]},"shop_info":{"title":"Smartisan 耳机转接头","sub_title":"即插即用、全面兼容","promo_title":"","limit_num":"5","spec_v2":[{"spec_id":"1","spec_name":"颜色","visiable":"0","show_type":"2","spec_values":[{"id":"37","spec_id":"1","item_value":"白色","show_name":"白色","image":"attr/v2/1000268/E647E77234F9ED0FDE9DD4084D35FF57/"}],"image_pre":"http://img01.smartisanos.cn/","image_name":"origin.jpg"}],"spec_json":[{"spec_id":"1","spec_value_id":"37","show_name":"白色","image":"attr/v2/1000268/E647E77234F9ED0FDE9DD4084D35FF57/"}],"buy_notes":[],"images":null,"image":null,"ali_images":["http://image.smartisanos.cn/resource/1dddddf6488ba89d592a37e9db93ffa2.jpg","http://image.smartisanos.cn/resource/6c0f0d0a3daf70ae3008210a8834035f.jpg","http://image.smartisanos.cn/resource/b896eb8a621c2ab201c622860d23c138.jpg","http://image.smartisanos.cn/resource/561c002e74f6a5982dfaf3b4a44c9af4.jpg"],"ali_image":"http://image.smartisanos.cn/resource/1dddddf6488ba89d592a37e9db93ffa2.jpg","image_default_name":"origin.jpg","is_custom":"0","is_mobile":"0","is_package":"0","tpl_id":"base","tpl_content":{"base":{"images":{"1x":[],"2x":[],"mobile":[],"image_pre":"","image_name":"","ali":{"url":"http://image.smartisanos.cn/resource/586f7bfcf88f14935918943bb0421c26.jpg","width":1220,"height":4715,"piece_height":1440,"pieces_num":4},"ali_mobile":{"url":"http://image.smartisanos.cn/resource/586f7bfcf88f14935918943bb0421c26.jpg","width":1220,"height":4715,"piece_height":1440,"pieces_num":4}},"attributes":[{"title":"","list":[{"name":"","value":""}]}],"aftersale":[{"title":"","content":""}],"extra":[{"title":"","content":""}]}},"doodle_stage":"99"},"attr_info":{"1":{"spec_id":"1","spec_name":"颜色","value":"白色","spec_value_id":"37"}},"created_at":1492420907000,"updated_at":1495784909000}],"in_stock":true},
+{"id":100026701,"price":59.00,"name":"Smartisan 原装快充充电器 18W(白色)","spu_id":1000267,"sale_status":3,"product_info":{"goods_name":"Smartisan 原装快充充电器 18W(白色)","goods_code":"100026701","barcode":"6970643021332","sapcode":"ACC120002AWR","package_type":"0","product_code":"1000267","product_name":"Smartisan 原装快充充电器 18W","is_mobile":0,"is_insurance":0,"goods_type":"0","is_package":false,"package_goods":[]},"shop_info":{"title":"Smartisan 原装快充充电器 18W","sub_title":"18W 安全快充、支持主流 QC3.0, MTK PE+2.0 快充协议","promo_title":"","limit_num":"5","spec_v2":[{"spec_id":"1","spec_name":"颜色","visiable":"0","show_type":"2","spec_values":[{"id":"37","spec_id":"1","item_value":"白色","show_name":"白色","image":"attr/v2/1000267/E647E77234F9ED0FDE9DD4084D35FF57/"}],"image_pre":"http://img01.smartisanos.cn/","image_name":"origin.jpg"}],"spec_json":[{"spec_id":"1","spec_value_id":"37","show_name":"白色","image":"attr/v2/1000267/E647E77234F9ED0FDE9DD4084D35FF57/"}],"buy_notes":[],"images":null,"image":null,"ali_images":["http://image.smartisanos.cn/resource/dc53bd870ee64d2053ecc51750ece43a.jpg","http://image.smartisanos.cn/resource/1047f5f47f3e825210ddcb745e5772a9.jpg","http://image.smartisanos.cn/resource/47461596fad00d37cb7a032a03d79286.jpg","http://image.smartisanos.cn/resource/f4f6346bea727862087b4761fc8b01d2.jpg","http://image.smartisanos.cn/resource/0286c84dba36577f37591f1af2b97402.jpg"],"ali_image":"http://image.smartisanos.cn/resource/dc53bd870ee64d2053ecc51750ece43a.jpg","image_default_name":"origin.jpg","is_custom":"0","is_mobile":"0","is_package":"0","tpl_id":"base","tpl_content":{"base":{"images":{"1x":[],"2x":[],"mobile":[],"image_pre":"","image_name":"","ali":{"url":"http://image.smartisanos.cn/resource/4a7b87fe01ec8339985702ee922d205a.jpg","width":1220,"height":4526,"piece_height":1440,"pieces_num":4},"ali_mobile":{"url":"http://image.smartisanos.cn/resource/4a7b87fe01ec8339985702ee922d205a.jpg","width":1220,"height":4526,"piece_height":1440,"pieces_num":4}},"attributes":[{"title":"","list":[{"name":"","value":""}]}],"aftersale":[{"title":"","content":""}],"extra":[{"title":"","content":""}]}},"doodle_stage":"99"},"attr_info":{"1":{"spec_id":"1","spec_name":"颜色","value":"白色","spec_value_id":"37"}},"created_at":1492420420000,"updated_at":1495627685000,"sku_list":[{"id":100026701,"price":59.00,"name":"Smartisan 原装快充充电器 18W(白色)","spu_id":1000267,"sale_status":3,"product_info":{"goods_name":"Smartisan 原装快充充电器 18W(白色)","goods_code":"100026701","barcode":"6970643021332","sapcode":"ACC120002AWR","package_type":"0","product_code":"1000267","product_name":"Smartisan 原装快充充电器 18W","is_mobile":0,"is_insurance":0,"goods_type":"0","is_package":false,"package_goods":[]},"shop_info":{"title":"Smartisan 原装快充充电器 18W","sub_title":"18W 安全快充、支持主流 QC3.0, MTK PE+2.0 快充协议","promo_title":"","limit_num":"5","spec_v2":[{"spec_id":"1","spec_name":"颜色","visiable":"0","show_type":"2","spec_values":[{"id":"37","spec_id":"1","item_value":"白色","show_name":"白色","image":"attr/v2/1000267/E647E77234F9ED0FDE9DD4084D35FF57/"}],"image_pre":"http://img01.smartisanos.cn/","image_name":"origin.jpg"}],"spec_json":[{"spec_id":"1","spec_value_id":"37","show_name":"白色","image":"attr/v2/1000267/E647E77234F9ED0FDE9DD4084D35FF57/"}],"buy_notes":[],"images":null,"image":null,"ali_images":["http://image.smartisanos.cn/resource/dc53bd870ee64d2053ecc51750ece43a.jpg","http://image.smartisanos.cn/resource/1047f5f47f3e825210ddcb745e5772a9.jpg","http://image.smartisanos.cn/resource/47461596fad00d37cb7a032a03d79286.jpg","http://image.smartisanos.cn/resource/f4f6346bea727862087b4761fc8b01d2.jpg","http://image.smartisanos.cn/resource/0286c84dba36577f37591f1af2b97402.jpg"],"ali_image":"http://image.smartisanos.cn/resource/dc53bd870ee64d2053ecc51750ece43a.jpg","image_default_name":"origin.jpg","is_custom":"0","is_mobile":"0","is_package":"0","tpl_id":"base","tpl_content":{"base":{"images":{"1x":[],"2x":[],"mobile":[],"image_pre":"","image_name":"","ali":{"url":"http://image.smartisanos.cn/resource/4a7b87fe01ec8339985702ee922d205a.jpg","width":1220,"height":4526,"piece_height":1440,"pieces_num":4},"ali_mobile":{"url":"http://image.smartisanos.cn/resource/4a7b87fe01ec8339985702ee922d205a.jpg","width":1220,"height":4526,"piece_height":1440,"pieces_num":4}},"attributes":[{"title":"","list":[{"name":"","value":""}]}],"aftersale":[{"title":"","content":""}],"extra":[{"title":"","content":""}]}},"doodle_stage":"99"},"attr_info":{"1":{"spec_id":"1","spec_name":"颜色","value":"白色","spec_value_id":"37"}},"created_at":1492420420000,"updated_at":1495627685000}],"in_stock":true},
+{"id":100026601,"price":39.00,"name":"Smartisan 原装 Type-C 数据线(白色)","spu_id":1000266,"sale_status":3,"product_info":{"goods_name":"Smartisan 原装 Type-C 数据线(白色)","goods_code":"100026601","barcode":"6970643021349","sapcode":"ACC100006AWK","package_type":"0","product_code":"1000266","product_name":"Smartisan 原装 Type-C 数据线","is_mobile":0,"is_insurance":0,"goods_type":"0","is_package":false,"package_goods":[]},"shop_info":{"title":"Smartisan 原装 Type-C 数据线","sub_title":"PTC 过温保护、凹形设计、TPE 环保材质","promo_title":"","limit_num":"5","spec_v2":[{"spec_id":"1","spec_name":"颜色","visiable":"0","show_type":"2","spec_values":[{"id":"37","spec_id":"1","item_value":"白色","show_name":"白色","image":"attr/v2/1000266/E647E77234F9ED0FDE9DD4084D35FF57/"}],"image_pre":"http://img01.smartisanos.cn/","image_name":"origin.jpg"}],"spec_json":[{"spec_id":"1","spec_value_id":"37","show_name":"白色","image":"attr/v2/1000266/E647E77234F9ED0FDE9DD4084D35FF57/"}],"buy_notes":[],"images":null,"image":null,"ali_images":["http://image.smartisanos.cn/resource/c79a73ffc6f8e782160d978f49f543dc.jpg","http://image.smartisanos.cn/resource/85dcf195cfd5d3f5e18e6c04902ab827.jpg","http://image.smartisanos.cn/resource/bb86aab0a22550515c4dd1ea4261f047.jpg","http://image.smartisanos.cn/resource/84160bf185d10d8f6250b503e38993c3.jpg","http://image.smartisanos.cn/resource/0db3ed8368c13b626e5f3f16b93eaeae.jpg"],"ali_image":"http://image.smartisanos.cn/resource/c79a73ffc6f8e782160d978f49f543dc.jpg","image_default_name":"origin.jpg","is_custom":"0","is_mobile":"0","is_package":"0","tpl_id":"base","tpl_content":{"base":{"images":{"1x":[],"2x":[],"mobile":[],"image_pre":"","image_name":"","ali":{"url":"http://image.smartisanos.cn/resource/b3d7b420e3e609e858a8d75f19cbfd7c.jpg","width":1220,"height":4829,"piece_height":1440,"pieces_num":4},"ali_mobile":{"url":"http://image.smartisanos.cn/resource/b3d7b420e3e609e858a8d75f19cbfd7c.jpg","width":1220,"height":4829,"piece_height":1440,"pieces_num":4}},"attributes":[{"title":"","list":[{"name":"","value":""}]}],"aftersale":[{"title":"","content":""}],"extra":[{"title":"","content":""}]}},"doodle_stage":"99"},"attr_info":{"1":{"spec_id":"1","spec_name":"颜色","value":"白色","spec_value_id":"37"}},"created_at":1492154240000,"updated_at":1495784909000,"sku_list":[{"id":100026601,"price":39.00,"name":"Smartisan 原装 Type-C 数据线(白色)","spu_id":1000266,"sale_status":3,"product_info":{"goods_name":"Smartisan 原装 Type-C 数据线(白色)","goods_code":"100026601","barcode":"6970643021349","sapcode":"ACC100006AWK","package_type":"0","product_code":"1000266","product_name":"Smartisan 原装 Type-C 数据线","is_mobile":0,"is_insurance":0,"goods_type":"0","is_package":false,"package_goods":[]},"shop_info":{"title":"Smartisan 原装 Type-C 数据线","sub_title":"PTC 过温保护、凹形设计、TPE 环保材质","promo_title":"","limit_num":"5","spec_v2":[{"spec_id":"1","spec_name":"颜色","visiable":"0","show_type":"2","spec_values":[{"id":"37","spec_id":"1","item_value":"白色","show_name":"白色","image":"attr/v2/1000266/E647E77234F9ED0FDE9DD4084D35FF57/"}],"image_pre":"http://img01.smartisanos.cn/","image_name":"origin.jpg"}],"spec_json":[{"spec_id":"1","spec_value_id":"37","show_name":"白色","image":"attr/v2/1000266/E647E77234F9ED0FDE9DD4084D35FF57/"}],"buy_notes":[],"images":null,"image":null,"ali_images":["http://image.smartisanos.cn/resource/c79a73ffc6f8e782160d978f49f543dc.jpg","http://image.smartisanos.cn/resource/85dcf195cfd5d3f5e18e6c04902ab827.jpg","http://image.smartisanos.cn/resource/bb86aab0a22550515c4dd1ea4261f047.jpg","http://image.smartisanos.cn/resource/84160bf185d10d8f6250b503e38993c3.jpg","http://image.smartisanos.cn/resource/0db3ed8368c13b626e5f3f16b93eaeae.jpg"],"ali_image":"http://image.smartisanos.cn/resource/c79a73ffc6f8e782160d978f49f543dc.jpg","image_default_name":"origin.jpg","is_custom":"0","is_mobile":"0","is_package":"0","tpl_id":"base","tpl_content":{"base":{"images":{"1x":[],"2x":[],"mobile":[],"image_pre":"","image_name":"","ali":{"url":"http://image.smartisanos.cn/resource/b3d7b420e3e609e858a8d75f19cbfd7c.jpg","width":1220,"height":4829,"piece_height":1440,"pieces_num":4},"ali_mobile":{"url":"http://image.smartisanos.cn/resource/b3d7b420e3e609e858a8d75f19cbfd7c.jpg","width":1220,"height":4829,"piece_height":1440,"pieces_num":4}},"attributes":[{"title":"","list":[{"name":"","value":""}]}],"aftersale":[{"title":"","content":""}],"extra":[{"title":"","content":""}]}},"doodle_stage":"99"},"attr_info":{"1":{"spec_id":"1","spec_name":"颜色","value":"白色","spec_value_id":"37"}},"created_at":1492154240000,"updated_at":1495784909000}],"in_stock":true}]
diff --git a/Vue-shopping/src/assets/js/items.min.js b/Vue-shopping/src/assets/js/items.min.js
new file mode 100644
index 0000000..b67eb10
--- /dev/null
+++ b/Vue-shopping/src/assets/js/items.min.js
@@ -0,0 +1 @@
+var itemsData = [{id: 100029901,price: 199,name: "Smartisan 快充移动电源 10000mAh(灰色)",spu_id: 1000299,sale_status: 3,product_info: {goods_name: "Smartisan 快充移动电源 10000mAh(灰色)",goods_code: "100029901",barcode: "6970643021295",sapcode: "ACC130001AGD",package_type: "0",product_code: "1000299",product_name: "Smartisan 快充移动电源 10000mAh",is_mobile: 0,is_insurance: 0,goods_type: "0",is_package: !1,package_goods: []},shop_info: {title: "Smartisan 快充移动电源 10000mAh",sub_title: "10000mAh 双向快充、轻盈便携、高标准安全保护",promo_title: "",limit_num: "1",spec_v2: [{spec_id: "1",spec_name: "颜色",visiable: "0",show_type: "2",spec_values: [{id: "70",spec_id: "1",item_value: "灰色",show_name: "灰色",image: "attr/v2/1000299/B37F37544921114CEF1EC01ED4DF44E4/"}],image_pre: "http: //img01.smartisanos.cn/",image_name: "origin.jpg"}],spec_json: [{spec_id: "1",spec_value_id: "70",show_name: "灰色",image: "attr/v2/1000299/B37F37544921114CEF1EC01ED4DF44E4/"}],buy_notes: [],images: null,image: null,ali_images: ["http: //image.smartisanos.cn/resource/ae40a16324658c192c7361d829f603bd.jpg","http: //image.smartisanos.cn/resource/0540778097a009364f2dcbb8c5286451.jpg","http: //image.smartisanos.cn/resource/ed7ea75824124d7385c99d532f1d4f1d.jpg","http: //image.smartisanos.cn/resource/40b8c1b1e5d175cc8fa9e7ff96cb6016.jpg","http: //image.smartisanos.cn/resource/fb24dc3db26c6f02542e0dea9b10151b.jpg"],ali_image: "http: //image.smartisanos.cn/resource/ae40a16324658c192c7361d829f603bd.jpg",image_default_name: "origin.jpg",is_custom: "0",is_mobile: "0",is_package: "0",tpl_id: "base",tpl_content: {base: {images: {"1x": [],"2x": [],mobile: [],image_pre: "",image_name: "",ali: {url: "http: //image.smartisanos.cn/resource/d930be42185ab064035d0894f37ea179.jpg",width: 1220,height: 6478,piece_height: 1440,pieces_num: 5},ali_mobile: {url: "http: //image.smartisanos.cn/resource/d930be42185ab064035d0894f37ea179.jpg",width: 1220,height: 6478,piece_height: 1440,pieces_num: 5}},attributes: [{title: "",list: [{name: "",value: ""}]}],aftersale: [{title: "",content: ""}],extra: [{title: "",content: ""}]}},doodle_stage: "99"},attr_info: {1: {spec_id: "1",spec_name: "颜色",value: "灰色",spec_value_id: "70"}},created_at: 1493017027e3,updated_at: 1497715201e3,sku_list: [{id: 100029901,price: 199,name: "Smartisan 快充移动电源 10000mAh(灰色)",spu_id: 1000299,sale_status: 3,product_info: {goods_name: "Smartisan 快充移动电源 10000mAh(灰色)",goods_code: "100029901",barcode: "6970643021295",sapcode: "ACC130001AGD",package_type: "0",product_code: "1000299",product_name: "Smartisan 快充移动电源 10000mAh",is_mobile: 0,is_insurance: 0,goods_type: "0",is_package: !1,package_goods: []},shop_info: {title: "Smartisan 快充移动电源 10000mAh",sub_title: "10000mAh 双向快充、轻盈便携、高标准安全保护",promo_title: "",limit_num: "1",spec_v2: [{spec_id: "1",spec_name: "颜色",visiable: "0",show_type: "2",spec_values: [{id: "70",spec_id: "1",item_value: "灰色",show_name: "灰色",image: "attr/v2/1000299/B37F37544921114CEF1EC01ED4DF44E4/"}],image_pre: "http: //img01.smartisanos.cn/",image_name: "origin.jpg"}],spec_json: [{spec_id: "1",spec_value_id: "70",show_name: "灰色",image: "attr/v2/1000299/B37F37544921114CEF1EC01ED4DF44E4/"}],buy_notes: [],images: null,image: null,ali_images: ["http: //image.smartisanos.cn/resource/ae40a16324658c192c7361d829f603bd.jpg","http: //image.smartisanos.cn/resource/0540778097a009364f2dcbb8c5286451.jpg","http: //image.smartisanos.cn/resource/ed7ea75824124d7385c99d532f1d4f1d.jpg","http: //image.smartisanos.cn/resource/40b8c1b1e5d175cc8fa9e7ff96cb6016.jpg","http: //image.smartisanos.cn/resource/fb24dc3db26c6f02542e0dea9b10151b.jpg"],ali_image: "http: //image.smartisanos.cn/resource/ae40a16324658c192c7361d829f603bd.jpg",image_default_name: "origin.jpg",is_custom: "0",is_mobile: "0",is_package: "0",tpl_id: "base",tpl_content: {base: {images: {"1x": [],"2x": [],mobile: [],image_pre: "",image_name: "",ali: {url: "http: //image.smartisanos.cn/resource/d930be42185ab064035d0894f37ea179.jpg",width: 1220,height: 6478,piece_height: 1440,pieces_num: 5},ali_mobile: {url: "http: //image.smartisanos.cn/resource/d930be42185ab064035d0894f37ea179.jpg",width: 1220,height: 6478,piece_height: 1440,pieces_num: 5}},attributes: [{title: "",list: [{name: "",value: ""}]}],aftersale: [{title: "",content: ""}],extra: [{title: "",content: ""}]}},doodle_stage: "99"},attr_info: {1: {spec_id: "1",spec_name: "颜色",value: "灰色",spec_value_id: "70"}},created_at: 1493017027e3,updated_at: 1497715201e3}],in_stock: !0},{id: 100029801,price: 49,name: "坚果Pro 钢化玻璃手感膜 无孔 (后壳用)(透明)",spu_id: 1000298,sale_status: 3,product_info: {goods_name: "坚果Pro 钢化玻璃手感膜 无孔 (后壳用)(透明)",goods_code: "100029801",barcode: "6970643021226",sapcode: "ACC210005CTS",package_type: "0",product_code: "1000298",product_name: "坚果Pro 钢化玻璃手感膜 无孔 (后壳用)",is_mobile: 0,is_insurance: 0,goods_type: "20",is_package: !1,package_goods: []},shop_info: {title: "坚果 Pro 钢化玻璃手感膜 无孔 (后壳用)",sub_title: "仅适用于坚果 Pro (酒红色版、浅金色版、巧克力色版和 32G 碳黑色版)",promo_title: "",limit_num: "5",spec_v2: [{spec_id: "1",spec_name: "颜色",visiable: "0",show_type: "2",spec_values: [{id: "211",spec_id: "1",item_value: "透明",show_name: "透明",image: "attr/v2/1000298/B1D74DE1EB579A14D2F97F6F56F508C4/"}],image_pre: "http: //img01.smartisanos.cn/",image_name: "origin.jpg"}],spec_json: [{spec_id: "1",spec_value_id: "211",show_name: "透明",image: "attr/v2/1000298/B1D74DE1EB579A14D2F97F6F56F508C4/"}],buy_notes: ["坚果 Pro 钢化玻璃手感膜 无孔 (后壳用)仅适用于坚果 Pro (酒红色版、浅金色版、巧克力色版和 32G 碳黑色版)"],images: null,image: null,ali_images: ["http: //image.smartisanos.cn/resource/f6f081615fdd6f92206c3d127501843a.jpg"],ali_image: "http: //image.smartisanos.cn/resource/f6f081615fdd6f92206c3d127501843a.jpg",image_default_name: "origin.jpg",is_custom: "0",is_mobile: "0",is_package: "0",tpl_id: "base,doodle,weibo",tpl_content: {base: {images: {"1x": [],"2x": [],mobile: [],image_pre: "",image_name: "",ali: {url: "http: //image.smartisanos.cn/resource/cca8534ffae2cb1d2626d707ee653dbd.jpg",width: 1220,height: 4390},ali_mobile: {url: "http: //image.smartisanos.cn/resource/cca8534ffae2cb1d2626d707ee653dbd.jpg",width: 1220,height: 4390}},attributes: [{title: "",list: [{name: "",value: ""}]}],aftersale: [{title: "",content: ""}],extra: [{title: "",content: ""}]},doodle: {text: "",images: {"1x": [],"2x": [],mobile: [],image_pre: "",image_name: "",ali: {url: "http: //image.smartisanos.cn/resource/cca8534ffae2cb1d2626d707ee653dbd.jpg",width: 1220,height: 4390,piece_height: 1440,pieces_num: 4},ali_mobile: {url: "http: //image.smartisanos.cn/resource/cca8534ffae2cb1d2626d707ee653dbd.jpg",width: 1220,height: 4390,piece_height: 1440,pieces_num: 4}}},weibo: {text: "",images: {"1x": "","2x": "",mobile: "",image_pre: "",image_name: ""}}},doodle_stage: "99"},attr_info: {1: {spec_id: "1",spec_name: "颜色",value: "透明",spec_value_id: "211"}},created_at: 1492769862e3,updated_at: 1497862955e3,sku_list: [{id: 100029801,price: 49,name: "坚果Pro 钢化玻璃手感膜 无孔 (后壳用)(透明)",spu_id: 1000298,sale_status: 3,product_info: {goods_name: "坚果Pro 钢化玻璃手感膜 无孔 (后壳用)(透明)",goods_code: "100029801",barcode: "6970643021226",sapcode: "ACC210005CTS",package_type: "0",product_code: "1000298",product_name: "坚果Pro 钢化玻璃手感膜 无孔 (后壳用)",is_mobile: 0,is_insurance: 0,goods_type: "20",is_package: !1,package_goods: []},shop_info: {title: "坚果 Pro 钢化玻璃手感膜 无孔 (后壳用)",sub_title: "仅适用于坚果 Pro (酒红色版、浅金色版、巧克力色版和 32G 碳黑色版)",promo_title: "",limit_num: "5",spec_v2: [{spec_id: "1",spec_name: "颜色",visiable: "0",show_type: "2",spec_values: [{id: "211",spec_id: "1",item_value: "透明",show_name: "透明",image: "attr/v2/1000298/B1D74DE1EB579A14D2F97F6F56F508C4/"}],image_pre: "http: //img01.smartisanos.cn/",image_name: "origin.jpg"}],spec_json: [{spec_id: "1",spec_value_id: "211",show_name: "透明",image: "attr/v2/1000298/B1D74DE1EB579A14D2F97F6F56F508C4/"}],buy_notes: ["坚果 Pro 钢化玻璃手感膜 无孔 (后壳用)仅适用于坚果 Pro (酒红色版、浅金色版、巧克力色版和 32G 碳黑色版)"],images: null,image: null,ali_images: ["http: //image.smartisanos.cn/resource/f6f081615fdd6f92206c3d127501843a.jpg"],ali_image: "http: //image.smartisanos.cn/resource/f6f081615fdd6f92206c3d127501843a.jpg",image_default_name: "origin.jpg",is_custom: "0",is_mobile: "0",is_package: "0",tpl_id: "base,doodle,weibo",tpl_content: {base: {images: {"1x": [],"2x": [],mobile: [],image_pre: "",image_name: "",ali: {url: "http: //image.smartisanos.cn/resource/cca8534ffae2cb1d2626d707ee653dbd.jpg",width: 1220,height: 4390},ali_mobile: {url: "http: //image.smartisanos.cn/resource/cca8534ffae2cb1d2626d707ee653dbd.jpg",width: 1220,height: 4390}},attributes: [{title: "",list: [{name: "",value: ""}]}],aftersale: [{title: "",content: ""}],extra: [{title: "",content: ""}]},doodle: {text: "",images: {"1x": [],"2x": [],mobile: [],image_pre: "",image_name: "",ali: {url: "http: //image.smartisanos.cn/resource/cca8534ffae2cb1d2626d707ee653dbd.jpg",width: 1220,height: 4390,piece_height: 1440,pieces_num: 4},ali_mobile: {url: "http: //image.smartisanos.cn/resource/cca8534ffae2cb1d2626d707ee653dbd.jpg",width: 1220,height: 4390,piece_height: 1440,pieces_num: 4}}},weibo: {text: "",images: {"1x": "","2x": "",mobile: "",image_pre: "",image_name: ""}}},doodle_stage: "99"},attr_info: {1: {spec_id: "1",spec_name: "颜色",value: "透明",spec_value_id: "211"}},created_at: 1492769862e3,updated_at: 1497862955e3}],in_stock: !0},{id: 100027501,price: 49,name: "坚果 Pro 钢化玻璃手感膜 开孔 (后壳用)(黑色)",spu_id: 1000275,sale_status: 3,product_info: {goods_name: "坚果 Pro 钢化玻璃手感膜 开孔 (后壳用)(黑色)",goods_code: "100027501",barcode: "6970643024913",sapcode: "ACC210005DBS",package_type: "0",product_code: "1000275",product_name: "坚果 Pro 钢化玻璃手感膜 开孔 (后壳用)",is_mobile: 0,is_insurance: 0,goods_type: "20",is_package: !1,package_goods: []},shop_info: {title: "坚果 Pro 钢化玻璃手感膜 开孔 (后壳用)",sub_title: "9H 超强硬度、超 4 小时钢化时长、2.5D 弧边设计",promo_title: "",limit_num: "5",spec_v2: [{spec_id: "1",spec_name: "颜色",visiable: "0",show_type: "2",spec_values: [{id: "36",spec_id: "1",item_value: "黑色",show_name: "黑色",image: "attr/v2/1000275/649AD35E36A9703BACBE1555AEB6D266/"},{id: "201",spec_id: "1",item_value: "酒红色",show_name: "酒红色",image: "attr/v2/1000275/948F029DCF134EF23267994487994DA5/"}],image_pre: "http: //img01.smartisanos.cn/",image_name: "origin.jpg"}],spec_json: [{spec_id: "1",spec_value_id: "36",show_name: "黑色",image: "attr/v2/1000275/649AD35E36A9703BACBE1555AEB6D266/"}],buy_notes: [],images: null,image: null,ali_images: ["http: //image.smartisanos.cn/resource/3802197aa7e78f9429eb5f6048a25047.jpg"],ali_image: "http: //image.smartisanos.cn/resource/3802197aa7e78f9429eb5f6048a25047.jpg",image_default_name: "origin.jpg",is_custom: "0",is_mobile: "0",is_package: "0",tpl_id: "base,doodle,weibo",tpl_content: {base: {images: {"1x": [],"2x": [],mobile: [],image_pre: "",image_name: "",ali: {url: "http: //image.smartisanos.cn/resource/0b42c35b463f23c73cedffef08a7fdb3.jpg",width: 1220,height: 4354},ali_mobile: {url: "http: //image.smartisanos.cn/resource/0b42c35b463f23c73cedffef08a7fdb3.jpg",width: 1220,height: 4354}},attributes: [{title: "",list: [{name: "",value: ""}]}],aftersale: [{title: "",content: ""}],extra: [{title: "",content: ""}]},doodle: {text: "",images: {"1x": [],"2x": [],mobile: [],image_pre: "",image_name: "",ali: {url: "http: //image.smartisanos.cn/resource/0b42c35b463f23c73cedffef08a7fdb3.jpg",width: 1220,height: 4354,piece_height: 1440,pieces_num: 4},ali_mobile: {url: "http: //image.smartisanos.cn/resource/0b42c35b463f23c73cedffef08a7fdb3.jpg",width: 1220,height: 4354,piece_height: 1440,pieces_num: 4}}},weibo: {text: "",images: {"1x": "","2x": "",mobile: "",image_pre: "",image_name: ""}}},doodle_stage: "99"},attr_info: {1: {spec_id: "1",spec_name: "颜色",value: "黑色",spec_value_id: "36"}},created_at: 1492582165e3,updated_at: 1495784909e3,sku_list: [{id: 100027501,price: 49,name: "坚果 Pro 钢化玻璃手感膜 开孔 (后壳用)(黑色)",spu_id: 1000275,sale_status: 3,product_info: {goods_name: "坚果 Pro 钢化玻璃手感膜 开孔 (后壳用)(黑色)",goods_code: "100027501",barcode: "6970643024913",sapcode: "ACC210005DBS",package_type: "0",product_code: "1000275",product_name: "坚果 Pro 钢化玻璃手感膜 开孔 (后壳用)",is_mobile: 0,is_insurance: 0,goods_type: "20",is_package: !1,package_goods: []},shop_info: {title: "坚果 Pro 钢化玻璃手感膜 开孔 (后壳用)",sub_title: "9H 超强硬度、超 4 小时钢化时长、2.5D 弧边设计",promo_title: "",limit_num: "5",spec_v2: [{spec_id: "1",spec_name: "颜色",visiable: "0",show_type: "2",spec_values: [{id: "36",spec_id: "1",item_value: "黑色",show_name: "黑色",image: "attr/v2/1000275/649AD35E36A9703BACBE1555AEB6D266/"},{id: "201",spec_id: "1",item_value: "酒红色",show_name: "酒红色",image: "attr/v2/1000275/948F029DCF134EF23267994487994DA5/"}],image_pre: "http: //img01.smartisanos.cn/",image_name: "origin.jpg"}],spec_json: [{spec_id: "1",spec_value_id: "36",show_name: "黑色",image: "attr/v2/1000275/649AD35E36A9703BACBE1555AEB6D266/"}],buy_notes: [],images: null,image: null,ali_images: ["http: //image.smartisanos.cn/resource/3802197aa7e78f9429eb5f6048a25047.jpg"],ali_image: "http: //image.smartisanos.cn/resource/3802197aa7e78f9429eb5f6048a25047.jpg",image_default_name: "origin.jpg",is_custom: "0",is_mobile: "0",is_package: "0",tpl_id: "base,doodle,weibo",tpl_content: {base: {images: {"1x": [],"2x": [],mobile: [],image_pre: "",image_name: "",ali: {url: "http: //image.smartisanos.cn/resource/0b42c35b463f23c73cedffef08a7fdb3.jpg",width: 1220,height: 4354},ali_mobile: {url: "http: //image.smartisanos.cn/resource/0b42c35b463f23c73cedffef08a7fdb3.jpg",width: 1220,height: 4354}},attributes: [{title: "",list: [{name: "",value: ""}]}],aftersale: [{title: "",content: ""}],extra: [{title: "",content: ""}]},doodle: {text: "",images: {"1x": [],"2x": [],mobile: [],image_pre: "",image_name: "",ali: {url: "http: //image.smartisanos.cn/resource/0b42c35b463f23c73cedffef08a7fdb3.jpg",width: 1220,height: 4354,piece_height: 1440,pieces_num: 4},ali_mobile: {url: "http: //image.smartisanos.cn/resource/0b42c35b463f23c73cedffef08a7fdb3.jpg",width: 1220,height: 4354,piece_height: 1440,pieces_num: 4}}},weibo: {text: "",images: {"1x": "","2x": "",mobile: "",image_pre: "",image_name: ""}}},doodle_stage: "99"},attr_info: {1: {spec_id: "1",spec_name: "颜色",value: "黑色",spec_value_id: "36"}},created_at: 1492582165e3,updated_at: 1495784909e3}],in_stock: !0},{id: 100027401,price: 49,name: "坚果 Pro 钢化玻璃保护膜 (前屏用)(透明)",spu_id: 1000274,sale_status: 3,product_info: {goods_name: "坚果 Pro 钢化玻璃保护膜 (前屏用)(透明)",goods_code: "100027401",barcode: "6970643021219",sapcode: "ACC210005BTS",package_type: "0",product_code: "1000274",product_name: "坚果 Pro 钢化玻璃保护膜 (前屏用)",is_mobile: 0,is_insurance: 0,goods_type: "20",is_package: !1,package_goods: []},shop_info: {title: "坚果 Pro 钢化玻璃保护膜(前屏用)",sub_title: "高达 92% 的超强透光率、耐刮花、防指纹",promo_title: "",limit_num: "5",spec_v2: [{spec_id: "1",spec_name: "颜色",visiable: "0",show_type: "2",spec_values: [{id: "211",spec_id: "1",item_value: "透明",show_name: "透明",image: "attr/v2/1000274/3555AF9D0704A3AE3ECB7DC7C6866775/"}],image_pre: "http: //img01.smartisanos.cn/",image_name: "origin.jpg"}],spec_json: [{spec_id: "1",spec_value_id: "211",show_name: "透明",image: "attr/v2/1000274/3555AF9D0704A3AE3ECB7DC7C6866775/"}],buy_notes: [],images: null,image: null,ali_images: ["http: //image.smartisanos.cn/resource/30cacf4088f7105d16452c661afd9299.jpg"],ali_image: "http: //image.smartisanos.cn/resource/30cacf4088f7105d16452c661afd9299.jpg",image_default_name: "origin.jpg",is_custom: "0",is_mobile: "0",is_package: "0",tpl_id: "base,doodle,weibo",tpl_content: {base: {images: {"1x": [],"2x": [],mobile: [],image_pre: "",image_name: "",ali: {url: "http: //image.smartisanos.cn/resource/2d14b61e931a6e83ccb7e2c98b252695.jpg",width: 1220,height: 4299},ali_mobile: {url: "http: //image.smartisanos.cn/resource/2d14b61e931a6e83ccb7e2c98b252695.jpg",width: 1220,height: 4299}},attributes: [{title: "",list: [{name: "",value: ""}]}],aftersale: [{title: "",content: ""}],extra: [{title: "",content: ""}]},doodle: {text: "",images: {"1x": [],"2x": [],mobile: [],image_pre: "",image_name: "",ali: {url: "http: //image.smartisanos.cn/resource/2d14b61e931a6e83ccb7e2c98b252695.jpg",width: 1220,height: 4299,piece_height: 1440,pieces_num: 3},ali_mobile: {url: "http: //image.smartisanos.cn/resource/2d14b61e931a6e83ccb7e2c98b252695.jpg",width: 1220,height: 4299,piece_height: 1440,pieces_num: 3}}},weibo: {text: "",images: {"1x": "","2x": "",mobile: "",image_pre: "",image_name: ""}}},doodle_stage: "99"},attr_info: {1: {spec_id: "1",spec_name: "颜色",value: "透明",spec_value_id: "211"}},created_at: 1492574149e3,updated_at: 1495784909e3,sku_list: [{id: 100027401,price: 49,name: "坚果 Pro 钢化玻璃保护膜 (前屏用)(透明)",spu_id: 1000274,sale_status: 3,product_info: {goods_name: "坚果 Pro 钢化玻璃保护膜 (前屏用)(透明)",goods_code: "100027401",barcode: "6970643021219",sapcode: "ACC210005BTS",package_type: "0",product_code: "1000274",product_name: "坚果 Pro 钢化玻璃保护膜 (前屏用)",is_mobile: 0,is_insurance: 0,goods_type: "20",is_package: !1,package_goods: []},shop_info: {title: "坚果 Pro 钢化玻璃保护膜(前屏用)",sub_title: "高达 92% 的超强透光率、耐刮花、防指纹",promo_title: "",limit_num: "5",spec_v2: [{spec_id: "1",spec_name: "颜色",visiable: "0",show_type: "2",spec_values: [{id: "211",spec_id: "1",item_value: "透明",show_name: "透明",image: "attr/v2/1000274/3555AF9D0704A3AE3ECB7DC7C6866775/"}],image_pre: "http: //img01.smartisanos.cn/",image_name: "origin.jpg"}],spec_json: [{spec_id: "1",spec_value_id: "211",show_name: "透明",image: "attr/v2/1000274/3555AF9D0704A3AE3ECB7DC7C6866775/"}],buy_notes: [],images: null,image: null,ali_images: ["http: //image.smartisanos.cn/resource/30cacf4088f7105d16452c661afd9299.jpg"],ali_image: "http: //image.smartisanos.cn/resource/30cacf4088f7105d16452c661afd9299.jpg",image_default_name: "origin.jpg",is_custom: "0",is_mobile: "0",is_package: "0",tpl_id: "base,doodle,weibo",tpl_content: {base: {images: {"1x": [],"2x": [],mobile: [],image_pre: "",image_name: "",ali: {url: "http: //image.smartisanos.cn/resource/2d14b61e931a6e83ccb7e2c98b252695.jpg",width: 1220,height: 4299},ali_mobile: {url: "http: //image.smartisanos.cn/resource/2d14b61e931a6e83ccb7e2c98b252695.jpg",width: 1220,height: 4299}},attributes: [{title: "",list: [{name: "",value: ""}]}],aftersale: [{title: "",content: ""}],extra: [{title: "",content: ""}]},doodle: {text: "",images: {"1x": [],"2x": [],mobile: [],image_pre: "",image_name: "",ali: {url: "http: //image.smartisanos.cn/resource/2d14b61e931a6e83ccb7e2c98b252695.jpg",width: 1220,height: 4299,piece_height: 1440,pieces_num: 3},ali_mobile: {url: "http: //image.smartisanos.cn/resource/2d14b61e931a6e83ccb7e2c98b252695.jpg",width: 1220,height: 4299,piece_height: 1440,pieces_num: 3}}},weibo: {text: "",images: {"1x": "","2x": "",mobile: "",image_pre: "",image_name: ""}}},doodle_stage: "99"},attr_info: {1: {spec_id: "1",spec_name: "颜色",value: "透明",spec_value_id: "211"}},created_at: 1492574149e3,updated_at: 1495784909e3}],in_stock: !0},{id: 100027101,price: 49,name: "坚果 Pro 软胶保护套(红色)",spu_id: 1000271,sale_status: 3,product_info: {goods_name: "坚果 Pro 软胶保护套(红色)",goods_code: "100027101",barcode: "6970643021165",sapcode: "ACC200005ARS",package_type: "0",product_code: "1000271",product_name: "坚果 Pro 软胶保护套",is_mobile: 0,is_insurance: 0,goods_type: "0",is_package: !1,package_goods: []},shop_info: {title: "坚果 Pro 软胶保护套",sub_title: "TPU 环保材质、耐磨、耐油、耐久性强",promo_title: "",limit_num: "5",spec_v2: [{spec_id: "1",spec_name: "颜色",visiable: "0",show_type: "2",spec_values: [{id: "35",spec_id: "1",item_value: "红色",show_name: "红色",image: "attr/v2/1000271/948F029DCF134EF23267994487994DA5/"},{id: "36",spec_id: "1",item_value: "黑色",show_name: "黑色",image: "attr/v2/1000271/649AD35E36A9703BACBE1555AEB6D266/"},{id: "41",spec_id: "1",item_value: "咖啡色",show_name: "巧克力色",image: "attr/v2/1000271/07BAF8C0EF046224A84B593DEEBC869E/"},{id: "207",spec_id: "1",item_value: "浅金色",show_name: "浅金色",image: "attr/v2/1000271/52317E0C067C97FC6CE9376A2432CFFF/"}],image_pre: "http: //img01.smartisanos.cn/",image_name: "origin.jpg"}],spec_json: [{spec_id: "1",spec_value_id: "35",show_name: "红色",image: "attr/v2/1000271/948F029DCF134EF23267994487994DA5/"}],buy_notes: [],images: null,image: null,ali_images: ["http: //image.smartisanos.cn/resource/902befd5f32a8caf4ca79b55d39ee25a.jpg","http: //image.smartisanos.cn/resource/ca760e50409c796a4e770c54554f92bf.jpg","http: //image.smartisanos.cn/resource/493c65d42fe83ec3daaf058d79fc1a95.jpg","http: //image.smartisanos.cn/resource/0bf30081dd17431c4fdfbd237c53743f.jpg","http: //image.smartisanos.cn/resource/cba7b4cdb2fc41d7f29fb45d94972e41.jpg"],ali_image: "http: //image.smartisanos.cn/resource/902befd5f32a8caf4ca79b55d39ee25a.jpg",image_default_name: "origin.jpg",is_custom: "0",is_mobile: "0",is_package: "0",tpl_id: "base",tpl_content: {base: {images: {"1x": [],"2x": [],mobile: [],image_pre: "",image_name: "",ali_mobile: {url: ["http: //image.smartisanos.cn/resource/98521dbfe1dd1e67db3f7ca21e76c9ef.jpg"],width: 2440,height: 14e3,piece_height: 1440,pieces_num: 10},ali: {url: ["http: //image.smartisanos.cn/resource/98521dbfe1dd1e67db3f7ca21e76c9ef.jpg"],width: 2440,height: 14e3,piece_height: 1440,pieces_num: 10}},attributes: [{title: "",list: [{name: "",value: ""}]}],aftersale: [{title: "",content: ""}],extra: [{title: "",content: ""}]}},doodle_stage: "99"},attr_info: {1: {spec_id: "1",spec_name: "颜色",value: "红色",spec_value_id: "35"}},created_at: 1492484266e3,updated_at: 1497410146e3,sku_list: [{id: 100027101,price: 49,name: "坚果 Pro 软胶保护套(红色)",spu_id: 1000271,sale_status: 3,product_info: {goods_name: "坚果 Pro 软胶保护套(红色)",goods_code: "100027101",barcode: "6970643021165",sapcode: "ACC200005ARS",package_type: "0",product_code: "1000271",product_name: "坚果 Pro 软胶保护套",is_mobile: 0,is_insurance: 0,goods_type: "0",is_package: !1,package_goods: []},shop_info: {title: "坚果 Pro 软胶保护套",sub_title: "TPU 环保材质、耐磨、耐油、耐久性强",promo_title: "",limit_num: "5",spec_v2: [{spec_id: "1",spec_name: "颜色",visiable: "0",show_type: "2",spec_values: [{id: "35",spec_id: "1",item_value: "红色",show_name: "红色",image: "attr/v2/1000271/948F029DCF134EF23267994487994DA5/"},{id: "36",spec_id: "1",item_value: "黑色",show_name: "黑色",image: "attr/v2/1000271/649AD35E36A9703BACBE1555AEB6D266/"},{id: "41",spec_id: "1",item_value: "咖啡色",show_name: "巧克力色",image: "attr/v2/1000271/07BAF8C0EF046224A84B593DEEBC869E/"},{id: "207",spec_id: "1",item_value: "浅金色",show_name: "浅金色",image: "attr/v2/1000271/52317E0C067C97FC6CE9376A2432CFFF/"}],image_pre: "http: //img01.smartisanos.cn/",image_name: "origin.jpg"}],spec_json: [{spec_id: "1",spec_value_id: "35",show_name: "红色",image: "attr/v2/1000271/948F029DCF134EF23267994487994DA5/"}],buy_notes: [],images: null,image: null,ali_images: ["http: //image.smartisanos.cn/resource/902befd5f32a8caf4ca79b55d39ee25a.jpg","http: //image.smartisanos.cn/resource/ca760e50409c796a4e770c54554f92bf.jpg","http: //image.smartisanos.cn/resource/493c65d42fe83ec3daaf058d79fc1a95.jpg","http: //image.smartisanos.cn/resource/0bf30081dd17431c4fdfbd237c53743f.jpg","http: //image.smartisanos.cn/resource/cba7b4cdb2fc41d7f29fb45d94972e41.jpg"],ali_image: "http: //image.smartisanos.cn/resource/902befd5f32a8caf4ca79b55d39ee25a.jpg",image_default_name: "origin.jpg",is_custom: "0",is_mobile: "0",is_package: "0",tpl_id: "base",tpl_content: {base: {images: {"1x": [],"2x": [],mobile: [],image_pre: "",image_name: "",ali_mobile: {url: ["http: //image.smartisanos.cn/resource/98521dbfe1dd1e67db3f7ca21e76c9ef.jpg"],width: 2440,height: 14e3,piece_height: 1440,pieces_num: 10},ali: {url: ["http: //image.smartisanos.cn/resource/98521dbfe1dd1e67db3f7ca21e76c9ef.jpg"],width: 2440,height: 14e3,piece_height: 1440,pieces_num: 10}},attributes: [{title: "",list: [{name: "",value: ""}]}],aftersale: [{title: "",content: ""}],extra: [{title: "",content: ""}]}},doodle_stage: "99"},attr_info: {1: {spec_id: "1",spec_name: "颜色",value: "红色",spec_value_id: "35"}},created_at: 1492484266e3,updated_at: 1497410146e3},{id: 100027102,price: 49,name: "坚果 Pro 软胶保护套(黑色)",spu_id: 1000271,sale_status: 3,product_info: {goods_name: "坚果 Pro 软胶保护套(黑色)",goods_code: "100027102",barcode: "6970643021196",sapcode: "ACC200005ABS",package_type: "0",product_code: "1000271",product_name: "坚果 Pro 软胶保护套",is_mobile: 0,is_insurance: 0,goods_type: "0",is_package: !1,package_goods: []},shop_info: {title: "坚果 Pro 软胶保护套",sub_title: "TPU 环保材质、耐磨、耐油、耐久性强",promo_title: "",limit_num: "5",spec_v2: [{spec_id: "1",spec_name: "颜色",visiable: "0",show_type: "2",spec_values: [{id: "35",spec_id: "1",item_value: "红色",show_name: "红色",image: "attr/v2/1000271/948F029DCF134EF23267994487994DA5/"},{id: "36",spec_id: "1",item_value: "黑色",show_name: "黑色",image: "attr/v2/1000271/649AD35E36A9703BACBE1555AEB6D266/"},{id: "41",spec_id: "1",item_value: "咖啡色",show_name: "巧克力色",image: "attr/v2/1000271/07BAF8C0EF046224A84B593DEEBC869E/"},{id: "207",spec_id: "1",item_value: "浅金色",show_name: "浅金色",image: "attr/v2/1000271/52317E0C067C97FC6CE9376A2432CFFF/"}],image_pre: "http: //img01.smartisanos.cn/",image_name: "origin.jpg"}],spec_json: [{spec_id: "1",spec_value_id: "36",show_name: "黑色",image: "attr/v2/1000271/649AD35E36A9703BACBE1555AEB6D266/"}],buy_notes: [],images: null,image: null,ali_images: ["http: //image.smartisanos.cn/resource/554da94d8e4f84f03e0015fd1c997f46.jpg","http: //image.smartisanos.cn/resource/01f25111e1a2c238a0f77e84aebd0796.jpg","http: //image.smartisanos.cn/resource/2841709c21ef07616f621fd863dcf2f3.jpg","http: //image.smartisanos.cn/resource/1b6fd01e415c380947cd98f62fa44817.jpg","http: //image.smartisanos.cn/resource/9e40a858dff00faa2f139587b7085249.jpg"],ali_image: "http: //image.smartisanos.cn/resource/554da94d8e4f84f03e0015fd1c997f46.jpg",image_default_name: "origin.jpg",is_custom: "0",is_mobile: "0",is_package: "0",tpl_id: "base",tpl_content: {base: {images: {"1x": [],"2x": [],mobile: [],image_pre: "",image_name: "",ali_mobile: {url: ["http: //image.smartisanos.cn/resource/98521dbfe1dd1e67db3f7ca21e76c9ef.jpg"],width: 2440,height: 14e3,piece_height: 1440,pieces_num: 10},ali: {url: ["http: //image.smartisanos.cn/resource/98521dbfe1dd1e67db3f7ca21e76c9ef.jpg"],width: 2440,height: 14e3,piece_height: 1440,pieces_num: 10}},attributes: [{title: "",list: [{name: "",value: ""}]}],aftersale: [{title: "",content: ""}],extra: [{title: "",content: ""}]}},doodle_stage: "99"},attr_info: {1: {spec_id: "1",spec_name: "颜色",value: "黑色",spec_value_id: "36"}},created_at: 1492484266e3,updated_at: 1497410146e3},{id: 100027103,price: 49,name: "坚果 Pro 软胶保护套(巧克力色)",spu_id: 1000271,sale_status: 3,product_info: {goods_name: "坚果 Pro 软胶保护套(巧克力色)",goods_code: "100027103",barcode: "6970643021172",sapcode: "ACC200005AMS",package_type: "0",product_code: "1000271",product_name: "坚果 Pro 软胶保护套",is_mobile: 0,is_insurance: 0,goods_type: "0",is_package: !1,package_goods: []},shop_info: {title: "坚果 Pro 软胶保护套",sub_title: "TPU 环保材质、耐磨、耐油、耐久性强",promo_title: "",limit_num: "5",spec_v2: [{spec_id: "1",spec_name: "颜色",visiable: "0",show_type: "2",spec_values: [{id: "35",spec_id: "1",item_value: "红色",show_name: "红色",image: "attr/v2/1000271/948F029DCF134EF23267994487994DA5/"},{id: "36",spec_id: "1",item_value: "黑色",show_name: "黑色",image: "attr/v2/1000271/649AD35E36A9703BACBE1555AEB6D266/"},{id: "41",spec_id: "1",item_value: "咖啡色",show_name: "巧克力色",image: "attr/v2/1000271/07BAF8C0EF046224A84B593DEEBC869E/"},{id: "207",spec_id: "1",item_value: "浅金色",show_name: "浅金色",image: "attr/v2/1000271/52317E0C067C97FC6CE9376A2432CFFF/"}],image_pre: "http: //img01.smartisanos.cn/",image_name: "origin.jpg"}],spec_json: [{spec_id: "1",spec_value_id: "41",show_name: "巧克力色",image: "attr/v2/1000271/07BAF8C0EF046224A84B593DEEBC869E/"}],buy_notes: [],images: null,image: null,ali_images: ["http: //image.smartisanos.cn/resource/84b58718b8f8da3c08e0931e19fdc62e.png","http: //image.smartisanos.cn/resource/cf8a5f1de06e47d726f0a63566a0ad92.jpg","http: //image.smartisanos.cn/resource/67b870558df49c45d0471bf9c20168bb.jpg","http: //image.smartisanos.cn/resource/f3723c1a4ce684f63f1c110743818885.jpg","http: //image.smartisanos.cn/resource/9f6816add135bf15a6d8018efde77b14.jpg"],ali_image: "http: //image.smartisanos.cn/resource/84b58718b8f8da3c08e0931e19fdc62e.png",image_default_name: "origin.jpg",is_custom: "0",is_mobile: "0",is_package: "0",tpl_id: "base",tpl_content: {base: {images: {"1x": [],"2x": [],mobile: [],image_pre: "",image_name: "",ali_mobile: {url: ["http: //image.smartisanos.cn/resource/98521dbfe1dd1e67db3f7ca21e76c9ef.jpg"],width: 2440,height: 14e3,piece_height: 1440,pieces_num: 10},ali: {url: ["http: //image.smartisanos.cn/resource/98521dbfe1dd1e67db3f7ca21e76c9ef.jpg"],width: 2440,height: 14e3,piece_height: 1440,pieces_num: 10}},attributes: [{title: "",list: [{name: "",value: ""}]}],aftersale: [{title: "",content: ""}],extra: [{title: "",content: ""}]}},doodle_stage: "99"},attr_info: {1: {spec_id: "1",spec_name: "颜色",value: "咖啡色",spec_value_id: "41"}},created_at: 1492484266e3,updated_at: 1497410146e3},{id: 100027104,price: 49,name: "坚果 Pro 软胶保护套(浅金色)",spu_id: 1000271,sale_status: 3,product_info: {goods_name: "坚果 Pro 软胶保护套(浅金色)",goods_code: "100027104",barcode: "6970643021189",sapcode: "ACC200005ACS",package_type: "0",product_code: "1000271",product_name: "坚果 Pro 软胶保护套",is_mobile: 0,is_insurance: 0,goods_type: "0",is_package: !1,package_goods: []},shop_info: {title: "坚果 Pro 软胶保护套",sub_title: "TPU 环保材质、耐磨、耐油、耐久性强",promo_title: "",limit_num: "5",spec_v2: [{spec_id: "1",spec_name: "颜色",visiable: "0",show_type: "2",spec_values: [{id: "35",spec_id: "1",item_value: "红色",show_name: "红色",image: "attr/v2/1000271/948F029DCF134EF23267994487994DA5/"},{id: "36",spec_id: "1",item_value: "黑色",show_name: "黑色",image: "attr/v2/1000271/649AD35E36A9703BACBE1555AEB6D266/"},{id: "41",spec_id: "1",item_value: "咖啡色",show_name: "巧克力色",image: "attr/v2/1000271/07BAF8C0EF046224A84B593DEEBC869E/"},{id: "207",spec_id: "1",item_value: "浅金色",show_name: "浅金色",image: "attr/v2/1000271/52317E0C067C97FC6CE9376A2432CFFF/"}],image_pre: "http: //img01.smartisanos.cn/",image_name: "origin.jpg"}],spec_json: [{spec_id: "1",spec_value_id: "207",show_name: "浅金色",image: "attr/v2/1000271/52317E0C067C97FC6CE9376A2432CFFF/"}],buy_notes: [],images: null,image: null,ali_images: ["http: //image.smartisanos.cn/resource/b20055215ae3db0f2c8b7ba4db68866f.png","http: //image.smartisanos.cn/resource/29ab28a5b6b9ffe2a03c32580dbc4309.jpg","http: //image.smartisanos.cn/resource/1aa0b641eaa31f06c875d37259cdbedd.jpg","http: //image.smartisanos.cn/resource/d370f3afd3d65dd8f16e89f3124b9915.jpg","http: //image.smartisanos.cn/resource/5d08ab8393986c9337f329f09070091b.jpg"],ali_image: "http: //image.smartisanos.cn/resource/b20055215ae3db0f2c8b7ba4db68866f.png",image_default_name: "origin.jpg",is_custom: "0",is_mobile: "0",is_package: "0",tpl_id: "base",tpl_content: {base: {images: {"1x": [],"2x": [],mobile: [],image_pre: "",image_name: "",ali_mobile: {url: ["http: //image.smartisanos.cn/resource/98521dbfe1dd1e67db3f7ca21e76c9ef.jpg"],width: 2440,height: 14e3,piece_height: 1440,pieces_num: 10},ali: {url: ["http: //image.smartisanos.cn/resource/98521dbfe1dd1e67db3f7ca21e76c9ef.jpg"],width: 2440,height: 14e3,piece_height: 1440,pieces_num: 10}},attributes: [{title: "",list: [{name: "",value: ""}]}],aftersale: [{title: "",content: ""}],extra: [{title: "",content: ""}]}},doodle_stage: "99"},attr_info: {1: {spec_id: "1",spec_name: "颜色",value: "浅金色",spec_value_id: "207"}},created_at: 1494387839e3,updated_at: 1497410146e3}],in_stock: !0},{id: 100026801,price: 19,name: "Smartisan 耳机转接头(白色)",spu_id: 1000268,sale_status: 3,product_info: {goods_name: "Smartisan 耳机转接头(白色)",goods_code: "100026801",barcode: "6970643021288",sapcode: "ACC100005AWK",package_type: "0",product_code: "1000268",product_name: "Smartisan 耳机转接头",is_mobile: 0,is_insurance: 0,goods_type: "0",is_package: !1,package_goods: []},shop_info: {title: "Smartisan 耳机转接头",sub_title: "即插即用、全面兼容",promo_title: "",limit_num: "5",spec_v2: [{spec_id: "1",spec_name: "颜色",visiable: "0",show_type: "2",spec_values: [{id: "37",spec_id: "1",item_value: "白色",show_name: "白色",image: "attr/v2/1000268/E647E77234F9ED0FDE9DD4084D35FF57/"}],image_pre: "http: //img01.smartisanos.cn/",image_name: "origin.jpg"}],spec_json: [{spec_id: "1",spec_value_id: "37",show_name: "白色",image: "attr/v2/1000268/E647E77234F9ED0FDE9DD4084D35FF57/"}],buy_notes: [],images: null,image: null,ali_images: ["http: //image.smartisanos.cn/resource/1dddddf6488ba89d592a37e9db93ffa2.jpg","http: //image.smartisanos.cn/resource/6c0f0d0a3daf70ae3008210a8834035f.jpg","http: //image.smartisanos.cn/resource/b896eb8a621c2ab201c622860d23c138.jpg","http: //image.smartisanos.cn/resource/561c002e74f6a5982dfaf3b4a44c9af4.jpg"],ali_image: "http: //image.smartisanos.cn/resource/1dddddf6488ba89d592a37e9db93ffa2.jpg",image_default_name: "origin.jpg",is_custom: "0",is_mobile: "0",is_package: "0",tpl_id: "base",tpl_content: {base: {images: {"1x": [],"2x": [],mobile: [],image_pre: "",image_name: "",ali: {url: "http: //image.smartisanos.cn/resource/586f7bfcf88f14935918943bb0421c26.jpg",width: 1220,height: 4715,piece_height: 1440,pieces_num: 4},ali_mobile: {url: "http: //image.smartisanos.cn/resource/586f7bfcf88f14935918943bb0421c26.jpg",width: 1220,height: 4715,piece_height: 1440,pieces_num: 4}},attributes: [{title: "",list: [{name: "",value: ""}]}],aftersale: [{title: "",content: ""}],extra: [{title: "",content: ""}]}},doodle_stage: "99"},attr_info: {1: {spec_id: "1",spec_name: "颜色",value: "白色",spec_value_id: "37"}},created_at: 1492420907e3,updated_at: 1495784909e3,sku_list: [{id: 100026801,price: 19,name: "Smartisan 耳机转接头(白色)",spu_id: 1000268,sale_status: 3,product_info: {goods_name: "Smartisan 耳机转接头(白色)",goods_code: "100026801",barcode: "6970643021288",sapcode: "ACC100005AWK",package_type: "0",product_code: "1000268",product_name: "Smartisan 耳机转接头",is_mobile: 0,is_insurance: 0,goods_type: "0",is_package: !1,package_goods: []},shop_info: {title: "Smartisan 耳机转接头",sub_title: "即插即用、全面兼容",promo_title: "",limit_num: "5",spec_v2: [{spec_id: "1",spec_name: "颜色",visiable: "0",show_type: "2",spec_values: [{id: "37",spec_id: "1",item_value: "白色",show_name: "白色",image: "attr/v2/1000268/E647E77234F9ED0FDE9DD4084D35FF57/"}],image_pre: "http: //img01.smartisanos.cn/",image_name: "origin.jpg"}],spec_json: [{spec_id: "1",spec_value_id: "37",show_name: "白色",image: "attr/v2/1000268/E647E77234F9ED0FDE9DD4084D35FF57/"}],buy_notes: [],images: null,image: null,ali_images: ["http: //image.smartisanos.cn/resource/1dddddf6488ba89d592a37e9db93ffa2.jpg","http: //image.smartisanos.cn/resource/6c0f0d0a3daf70ae3008210a8834035f.jpg","http: //image.smartisanos.cn/resource/b896eb8a621c2ab201c622860d23c138.jpg","http: //image.smartisanos.cn/resource/561c002e74f6a5982dfaf3b4a44c9af4.jpg"],ali_image: "http: //image.smartisanos.cn/resource/1dddddf6488ba89d592a37e9db93ffa2.jpg",image_default_name: "origin.jpg",is_custom: "0",is_mobile: "0",is_package: "0",tpl_id: "base",tpl_content: {base: {images: {"1x": [],"2x": [],mobile: [],image_pre: "",image_name: "",ali: {url: "http: //image.smartisanos.cn/resource/586f7bfcf88f14935918943bb0421c26.jpg",width: 1220,height: 4715,piece_height: 1440,pieces_num: 4},ali_mobile: {url: "http: //image.smartisanos.cn/resource/586f7bfcf88f14935918943bb0421c26.jpg",width: 1220,height: 4715,piece_height: 1440,pieces_num: 4}},attributes: [{title: "",list: [{name: "",value: ""}]}],aftersale: [{title: "",content: ""}],extra: [{title: "",content: ""}]}},doodle_stage: "99"},attr_info: {1: {spec_id: "1",spec_name: "颜色",value: "白色",spec_value_id: "37"}},created_at: 1492420907e3,updated_at: 1495784909e3}],in_stock: !0},{id: 100026701,price: 59,name: "Smartisan 原装快充充电器 18W(白色)",spu_id: 1000267,sale_status: 3,product_info: {goods_name: "Smartisan 原装快充充电器 18W(白色)",goods_code: "100026701",barcode: "6970643021332",sapcode: "ACC120002AWR",package_type: "0",product_code: "1000267",product_name: "Smartisan 原装快充充电器 18W",is_mobile: 0,is_insurance: 0,goods_type: "0",is_package: !1,package_goods: []},shop_info: {title: "Smartisan 原装快充充电器 18W",sub_title: "18W 安全快充、支持主流 QC3.0, MTK PE+2.0 快充协议",promo_title: "",limit_num: "5",spec_v2: [{spec_id: "1",spec_name: "颜色",visiable: "0",show_type: "2",spec_values: [{id: "37",spec_id: "1",item_value: "白色",show_name: "白色",image: "attr/v2/1000267/E647E77234F9ED0FDE9DD4084D35FF57/"}],image_pre: "http: //img01.smartisanos.cn/",image_name: "origin.jpg"}],spec_json: [{spec_id: "1",spec_value_id: "37",show_name: "白色",image: "attr/v2/1000267/E647E77234F9ED0FDE9DD4084D35FF57/"}],buy_notes: [],images: null,image: null,ali_images: ["http: //image.smartisanos.cn/resource/dc53bd870ee64d2053ecc51750ece43a.jpg","http: //image.smartisanos.cn/resource/1047f5f47f3e825210ddcb745e5772a9.jpg","http: //image.smartisanos.cn/resource/47461596fad00d37cb7a032a03d79286.jpg","http: //image.smartisanos.cn/resource/f4f6346bea727862087b4761fc8b01d2.jpg","http: //image.smartisanos.cn/resource/0286c84dba36577f37591f1af2b97402.jpg"],ali_image: "http: //image.smartisanos.cn/resource/dc53bd870ee64d2053ecc51750ece43a.jpg",image_default_name: "origin.jpg",is_custom: "0",is_mobile: "0",is_package: "0",tpl_id: "base",tpl_content: {base: {images: {"1x": [],"2x": [],mobile: [],image_pre: "",image_name: "",ali: {url: "http: //image.smartisanos.cn/resource/4a7b87fe01ec8339985702ee922d205a.jpg",width: 1220,height: 4526,piece_height: 1440,pieces_num: 4},ali_mobile: {url: "http: //image.smartisanos.cn/resource/4a7b87fe01ec8339985702ee922d205a.jpg",width: 1220,height: 4526,piece_height: 1440,pieces_num: 4}},attributes: [{title: "",list: [{name: "",value: ""}]}],aftersale: [{title: "",content: ""}],extra: [{title: "",content: ""}]}},doodle_stage: "99"},attr_info: {1: {spec_id: "1",spec_name: "颜色",value: "白色",spec_value_id: "37"}},created_at: 149242042e4,updated_at: 1495627685e3,sku_list: [{id: 100026701,price: 59,name: "Smartisan 原装快充充电器 18W(白色)",spu_id: 1000267,sale_status: 3,product_info: {goods_name: "Smartisan 原装快充充电器 18W(白色)",goods_code: "100026701",barcode: "6970643021332",sapcode: "ACC120002AWR",package_type: "0",product_code: "1000267",product_name: "Smartisan 原装快充充电器 18W",is_mobile: 0,is_insurance: 0,goods_type: "0",is_package: !1,package_goods: []},shop_info: {title: "Smartisan 原装快充充电器 18W",sub_title: "18W 安全快充、支持主流 QC3.0, MTK PE+2.0 快充协议",promo_title: "",limit_num: "5",spec_v2: [{spec_id: "1",spec_name: "颜色",visiable: "0",show_type: "2",spec_values: [{id: "37",spec_id: "1",item_value: "白色",show_name: "白色",image: "attr/v2/1000267/E647E77234F9ED0FDE9DD4084D35FF57/"}],image_pre: "http: //img01.smartisanos.cn/",image_name: "origin.jpg"}],spec_json: [{spec_id: "1",spec_value_id: "37",show_name: "白色",image: "attr/v2/1000267/E647E77234F9ED0FDE9DD4084D35FF57/"}],buy_notes: [],images: null,image: null,ali_images: ["http: //image.smartisanos.cn/resource/dc53bd870ee64d2053ecc51750ece43a.jpg","http: //image.smartisanos.cn/resource/1047f5f47f3e825210ddcb745e5772a9.jpg","http: //image.smartisanos.cn/resource/47461596fad00d37cb7a032a03d79286.jpg","http: //image.smartisanos.cn/resource/f4f6346bea727862087b4761fc8b01d2.jpg","http: //image.smartisanos.cn/resource/0286c84dba36577f37591f1af2b97402.jpg"],ali_image: "http: //image.smartisanos.cn/resource/dc53bd870ee64d2053ecc51750ece43a.jpg",image_default_name: "origin.jpg",is_custom: "0",is_mobile: "0",is_package: "0",tpl_id: "base",tpl_content: {base: {images: {"1x": [],"2x": [],mobile: [],image_pre: "",image_name: "",ali: {url: "http: //image.smartisanos.cn/resource/4a7b87fe01ec8339985702ee922d205a.jpg",width: 1220,height: 4526,piece_height: 1440,pieces_num: 4},ali_mobile: {url: "http: //image.smartisanos.cn/resource/4a7b87fe01ec8339985702ee922d205a.jpg",width: 1220,height: 4526,piece_height: 1440,pieces_num: 4}},attributes: [{title: "",list: [{name: "",value: ""}]}],aftersale: [{title: "",content: ""}],extra: [{title: "",content: ""}]}},doodle_stage: "99"},attr_info: {1: {spec_id: "1",spec_name: "颜色",value: "白色",spec_value_id: "37"}},created_at: 149242042e4,updated_at: 1495627685e3}],in_stock: !0},{id: 100026601,price: 39,name: "Smartisan 原装 Type-C 数据线(白色)",spu_id: 1000266,sale_status: 3,product_info: {goods_name: "Smartisan 原装 Type-C 数据线(白色)",goods_code: "100026601",barcode: "6970643021349",sapcode: "ACC100006AWK",package_type: "0",product_code: "1000266",product_name: "Smartisan 原装 Type-C 数据线",is_mobile: 0,is_insurance: 0,goods_type: "0",is_package: !1,package_goods: []},shop_info: {title: "Smartisan 原装 Type-C 数据线",sub_title: "PTC 过温保护、凹形设计、TPE 环保材质",promo_title: "",limit_num: "5",spec_v2: [{spec_id: "1",spec_name: "颜色",visiable: "0",show_type: "2",spec_values: [{id: "37",spec_id: "1",item_value: "白色",show_name: "白色",image: "attr/v2/1000266/E647E77234F9ED0FDE9DD4084D35FF57/"}],image_pre: "http: //img01.smartisanos.cn/",image_name: "origin.jpg"}],spec_json: [{spec_id: "1",spec_value_id: "37",show_name: "白色",image: "attr/v2/1000266/E647E77234F9ED0FDE9DD4084D35FF57/"}],buy_notes: [],images: null,image: null,ali_images: ["http: //image.smartisanos.cn/resource/c79a73ffc6f8e782160d978f49f543dc.jpg","http: //image.smartisanos.cn/resource/85dcf195cfd5d3f5e18e6c04902ab827.jpg","http: //image.smartisanos.cn/resource/bb86aab0a22550515c4dd1ea4261f047.jpg","http: //image.smartisanos.cn/resource/84160bf185d10d8f6250b503e38993c3.jpg","http: //image.smartisanos.cn/resource/0db3ed8368c13b626e5f3f16b93eaeae.jpg"],ali_image: "http: //image.smartisanos.cn/resource/c79a73ffc6f8e782160d978f49f543dc.jpg",image_default_name: "origin.jpg",is_custom: "0",is_mobile: "0",is_package: "0",tpl_id: "base",tpl_content: {base: {images: {"1x": [],"2x": [],mobile: [],image_pre: "",image_name: "",ali: {url: "http: //image.smartisanos.cn/resource/b3d7b420e3e609e858a8d75f19cbfd7c.jpg",width: 1220,height: 4829,piece_height: 1440,pieces_num: 4},ali_mobile: {url: "http: //image.smartisanos.cn/resource/b3d7b420e3e609e858a8d75f19cbfd7c.jpg",width: 1220,height: 4829,piece_height: 1440,pieces_num: 4}},attributes: [{title: "",list: [{name: "",value: ""}]}],aftersale: [{title: "",content: ""}],extra: [{title: "",content: ""}]}},doodle_stage: "99"},attr_info: {1: {spec_id: "1",spec_name: "颜色",value: "白色",spec_value_id: "37"}},created_at: 149215424e4,updated_at: 1495784909e3,sku_list: [{id: 100026601,price: 39,name: "Smartisan 原装 Type-C 数据线(白色)",spu_id: 1000266,sale_status: 3,product_info: {goods_name: "Smartisan 原装 Type-C 数据线(白色)",goods_code: "100026601",barcode: "6970643021349",sapcode: "ACC100006AWK",package_type: "0",product_code: "1000266",product_name: "Smartisan 原装 Type-C 数据线",is_mobile: 0,is_insurance: 0,goods_type: "0",is_package: !1,package_goods: []},shop_info: {title: "Smartisan 原装 Type-C 数据线",sub_title: "PTC 过温保护、凹形设计、TPE 环保材质",promo_title: "",limit_num: "5",spec_v2: [{spec_id: "1",spec_name: "颜色",visiable: "0",show_type: "2",spec_values: [{id: "37",spec_id: "1",item_value: "白色",show_name: "白色",image: "attr/v2/1000266/E647E77234F9ED0FDE9DD4084D35FF57/"}],image_pre: "http: //img01.smartisanos.cn/",image_name: "origin.jpg"}],spec_json: [{spec_id: "1",spec_value_id: "37",show_name: "白色",image: "attr/v2/1000266/E647E77234F9ED0FDE9DD4084D35FF57/"}],buy_notes: [],images: null,image: null,ali_images: ["http: //image.smartisanos.cn/resource/c79a73ffc6f8e782160d978f49f543dc.jpg","http: //image.smartisanos.cn/resource/85dcf195cfd5d3f5e18e6c04902ab827.jpg","http: //image.smartisanos.cn/resource/bb86aab0a22550515c4dd1ea4261f047.jpg","http: //image.smartisanos.cn/resource/84160bf185d10d8f6250b503e38993c3.jpg","http: //image.smartisanos.cn/resource/0db3ed8368c13b626e5f3f16b93eaeae.jpg"],ali_image: "http: //image.smartisanos.cn/resource/c79a73ffc6f8e782160d978f49f543dc.jpg",image_default_name: "origin.jpg",is_custom: "0",is_mobile: "0",is_package: "0",tpl_id: "base",tpl_content: {base: {images: {"1x": [],"2x": [],mobile: [],image_pre: "",image_name: "",ali: {url: "http: //image.smartisanos.cn/resource/b3d7b420e3e609e858a8d75f19cbfd7c.jpg",width: 1220,height: 4829,piece_height: 1440,pieces_num: 4},ali_mobile: {url: "http: //image.smartisanos.cn/resource/b3d7b420e3e609e858a8d75f19cbfd7c.jpg",width: 1220,height: 4829,piece_height: 1440,pieces_num: 4}},attributes: [{title: "",list: [{name: "",value: ""}]}],aftersale: [{title: "",content: ""}],extra: [{title: "",content: ""}]}},doodle_stage: "99"},attr_info: {1: {spec_id: "1",spec_name: "颜色",value: "白色",spec_value_id: "37"}},created_at: 149215424e4,updated_at: 1495784909e3}],in_stock: !0}]
diff --git a/Vue-shopping/src/assets/logo.png b/Vue-shopping/src/assets/logo.png
new file mode 100644
index 0000000..f3d2503
Binary files /dev/null and b/Vue-shopping/src/assets/logo.png differ
diff --git a/Vue-shopping/src/components/Hello.vue b/Vue-shopping/src/components/Hello.vue
new file mode 100644
index 0000000..2d80539
--- /dev/null
+++ b/Vue-shopping/src/components/Hello.vue
@@ -0,0 +1,53 @@
+
+
+
{{ msg }}
+
Essential Links
+
+
Ecosystem
+
+
+
+
+
+
+
+
diff --git a/Vue-shopping/src/components/address-pop.vue b/Vue-shopping/src/components/address-pop.vue
new file mode 100644
index 0000000..f7107bb
--- /dev/null
+++ b/Vue-shopping/src/components/address-pop.vue
@@ -0,0 +1,492 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Vue-shopping/src/components/car-panel.vue b/Vue-shopping/src/components/car-panel.vue
new file mode 100644
index 0000000..0c14b38
--- /dev/null
+++ b/Vue-shopping/src/components/car-panel.vue
@@ -0,0 +1,146 @@
+
+
+ 购物车
+
+
+ {{count}}
+
+
+
+
+
购物车为空
+
您还没有选购任何商品,现在前往商城选购吧!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item.spec_json.show_name}}
+
+
+ ¥ {{item.price}} x {{item.count}}
+
+
+
+
删除
+
+
+
+
+
+
+
共 {{count}} 件商品
+
合计:¥ {{totle}}
+
+ 去购物车
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Vue-shopping/src/components/header-nav.vue b/Vue-shopping/src/components/header-nav.vue
new file mode 100644
index 0000000..9838a67
--- /dev/null
+++ b/Vue-shopping/src/components/header-nav.vue
@@ -0,0 +1,76 @@
+
+
+
+
diff --git a/Vue-shopping/src/components/prompt.vue b/Vue-shopping/src/components/prompt.vue
new file mode 100644
index 0000000..c8dec9b
--- /dev/null
+++ b/Vue-shopping/src/components/prompt.vue
@@ -0,0 +1,209 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Vue-shopping/src/components/shop-item.vue b/Vue-shopping/src/components/shop-item.vue
new file mode 100644
index 0000000..a84ed63
--- /dev/null
+++ b/Vue-shopping/src/components/shop-item.vue
@@ -0,0 +1,216 @@
+
+
+
+
+
+
{{item.name}}
+
{{item.name_title}}
+
+
+
+
+
+
+
+
+ 查看详情
+ 加入购物车
+
+
+ ¥ {{item.price}}
+
+
false
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Vue-shopping/src/lib/addList.js b/Vue-shopping/src/lib/addList.js
new file mode 100644
index 0000000..43b0d1d
--- /dev/null
+++ b/Vue-shopping/src/lib/addList.js
@@ -0,0 +1,7 @@
+const provinceList =
+[{"area_id": 110000, "area_name": "北京市", "city_list": [{"area_name": "市辖区", "area_id": 110100, "county_list": [{"area_name": "东城区", "area_id": 110101}, {"area_name": "海淀区", "area_id": 110106}]}, {"area_name": "县", "area_id": 110200, "county_list": [{"area_name": "密云县", "area_id": 110228}, {"area_name": "延庆县", "area_id": 110229}]}]},
+{"area_id": 440000, "area_name": "广东省", "city_list": [{"area_id": 440300, "area_name": "深圳市", "county_list": [{"area_name": "罗湖区", "area_id": 440303}, {"area_name": "福田区", "area_id": 440304}]}, {"area_id": 440100, "area_name": "广州市", "county_list": [{"area_name": "荔湾区", "area_id": 440103}, {"area_name": "越秀区", "area_id": 440104}]}]},
+{"area_id": 310000, "area_name":"上海市", "city_list": [{"area_id": 310100, "area_name": "市辖区", "county_list": [{"area_id": 310113, "area_name": "宝山区"}, {"area_id": 310105, "area_name": "长宁区"}]}, {"area_id": 310200, "area_name": "县", "county_list": [{"area_name": "崇明县", "area_id": 310230}]}]}]
+export default provinceList
+
+
diff --git a/Vue-shopping/src/lib/goodData.js b/Vue-shopping/src/lib/goodData.js
new file mode 100644
index 0000000..048acea
--- /dev/null
+++ b/Vue-shopping/src/lib/goodData.js
@@ -0,0 +1,3 @@
+let goodData = [{ id: 1000299, name: 'Smartisan 快充移动电源 10000mAh', price: 199, sale_status: 3, product_info: { product_name: 'Smartisan 快充移动电源 10000mAh', product_code: '1000299', brand_id: '1', category_id: '59', product_type: '1', delivery_type: '5', delivery_area: '7', supply_type: 'A', tax_rate: '17', desc: '', is_package: '0', is_mobile: 0, is_insurance: 0, accessory_goods: [] }, shop_info: { spu_title: 'Smartisan 快充移动电源 10000mAh', spu_sub_title: '10000mAh 双向快充、轻盈便携、高标准安全保护', spu_promo_title: '', sale_model: '1', book_num: null, spec_v2: [{ spec_id: '1', spec_name: '颜色', visiable: '0', show_type: '2', spec_values: [{ id: '70', spec_id: '1', item_value: '灰色', show_name: '灰色', image: 'attr/v2/1000299/B37F37544921114CEF1EC01ED4DF44E4/' }], image_pre: 'http://img01.smartisanos.cn/', image_name: 'origin.jpg' }], tpl_id: 'base', tpl_content: { base: { images: { '1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali: { url: 'http://image.smartisanos.cn/resource/d930be42185ab064035d0894f37ea179.jpg', width: 1220, height: 6478, piece_height: 1440, pieces_num: 5 }, ali_mobile: { url: 'http://image.smartisanos.cn/resource/d930be42185ab064035d0894f37ea179.jpg', width: 1220, height: 6478, piece_height: 1440, pieces_num: 5 } }, attributes: [{ title: '', list: [{ name: '', value: '' }] }], aftersale: [{ title: '', content: '' }], extra: [{ title: '', content: '' }] } }, buy_notes: [] }, sku_info: [{ sku_id: '100029901', title: 'Smartisan 快充移动电源 10000mAh', sub_title: '10000mAh 双向快充、轻盈便携、高标准安全保护', promo_title: '', color_id: '70', appearance_color_id: '', image: null, ali_image: 'http://image.smartisanos.cn/resource/ae40a16324658c192c7361d829f603bd.jpg', direct_to_cart: !0, price: '199.00', spec_json: [{ spec_id: '1', spec_value_id: '70', show_name: '灰色', image: 'attr/v2/1000299/B37F37544921114CEF1EC01ED4DF44E4/' }] }], acc_info: { package_list: '' }, after_sell_info: { is_back: '1', back_deadline: '7', is_exchange: '1', exchange_deadline: '15', is_repair: '1' }, created_at: 1493017027e3, updated_at: 1497715202e3 }, { id: 1000298, name: '坚果Pro 钢化玻璃手感膜 无孔 (后壳用)', price: 49, sale_status: 3, product_info: { product_name: '坚果Pro 钢化玻璃手感膜 无孔 (后壳用)', product_code: '1000298', brand_id: '1', category_id: '73', product_type: '1', delivery_type: '0', delivery_area: '0', supply_type: 'A', tax_rate: '17', desc: '', is_package: '0', is_mobile: 0, is_insurance: 0, accessory_goods: [] }, shop_info: { spu_title: '坚果 Pro 钢化玻璃手感膜 无孔 (后壳用)', spu_sub_title: '仅适用于坚果 Pro (酒红色版、浅金色版、巧克力色版和 32G 碳黑色版)', spu_promo_title: '', sale_model: '1', book_num: null, spec_v2: [{ spec_id: '1', spec_name: '颜色', visiable: '0', show_type: '2', spec_values: [{ id: '211', spec_id: '1', item_value: '透明', show_name: '透明', image: 'attr/v2/1000298/B1D74DE1EB579A14D2F97F6F56F508C4/' }], image_pre: 'http://img01.smartisanos.cn/', image_name: 'origin.jpg' }], tpl_id: 'base, doodle, weibo', tpl_content: { base: { images: { '1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali: { url: 'http://image.smartisanos.cn/resource/cca8534ffae2cb1d2626d707ee653dbd.jpg', width: 1220, height: 4390 }, ali_mobile: { url: 'http://image.smartisanos.cn/resource/cca8534ffae2cb1d2626d707ee653dbd.jpg', width: 1220, height: 4390 } }, attributes: [{ title: '', list: [{ name: '', value: '' }] }], aftersale: [{ title: '', content: '' }], extra: [{ title: '', content: '' }] }, doodle: { text: '', images: { '1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali: { url: 'http://image.smartisanos.cn/resource/cca8534ffae2cb1d2626d707ee653dbd.jpg', width: 1220, height: 4390, piece_height: 1440, pieces_num: 4 }, ali_mobile: { url: 'http://image.smartisanos.cn/resource/cca8534ffae2cb1d2626d707ee653dbd.jpg', width: 1220, height: 4390, piece_height: 1440, pieces_num: 4 } } }, weibo: { text: '', images: { '1x': '', '2x': '', mobile: '', image_pre: '', image_name: '' } } }, buy_notes: ['坚果 Pro 钢化玻璃手感膜 无孔 (后壳用)仅适用于坚果 Pro (酒红色版、浅金色版、巧克力色版和 32G 碳黑色版)'] }, sku_info: [{ sku_id: '100029801', title: '坚果 Pro 钢化玻璃手感膜 无孔 (后壳用)', sub_title: '仅适用于坚果 Pro (酒红色版、浅金色版、巧克力色版和 32G 碳黑色版)', promo_title: '', color_id: '211', appearance_color_id: '', image: null, ali_image: 'http://image.smartisanos.cn/resource/f6f081615fdd6f92206c3d127501843a.jpg', direct_to_cart: !0, price: '49.00', spec_json: [{ spec_id: '1', spec_value_id: '211', show_name: '透明', image: 'attr/v2/1000298/B1D74DE1EB579A14D2F97F6F56F508C4/' }] }], acc_info: { package_list: '' }, after_sell_info: { is_back: '1', back_deadline: '7', is_exchange: '1', exchange_deadline: '15', is_repair: '0' }, created_at: 1492769862e3, updated_at: 1497862955e3 }, { id: 1000275, name: '坚果 Pro 钢化玻璃手感膜 开孔 (后壳用)', price: 49, sale_status: 3, product_info: { product_name: '坚果 Pro 钢化玻璃手感膜 开孔 (后壳用)', product_code: '1000275', brand_id: '1', category_id: '73', product_type: '1', delivery_type: '0', delivery_area: '0', supply_type: 'A', tax_rate: '17', desc: '', is_package: '0', is_mobile: 0, is_insurance: 0, accessory_goods: [] }, shop_info: { spu_title: '坚果 Pro 钢化玻璃手感膜 开孔 (后壳用)', spu_sub_title: '9H 超强硬度、超 4 小时钢化时长、2.5D 弧边设计', spu_promo_title: '', sale_model: '1', book_num: null, spec_v2: [{ spec_id: '1', spec_name: '颜色', visiable: '0', show_type: '2', spec_values: [{ id: '36', spec_id: '1', item_value: '黑色', show_name: '黑色', image: 'attr/v2/1000275/649AD35E36A9703BACBE1555AEB6D266/' }, { id: '201', spec_id: '1', item_value: '酒红色', show_name: '酒红色', image: 'attr/v2/1000275/948F029DCF134EF23267994487994DA5/' }], image_pre: 'http://img01.smartisanos.cn/', image_name: 'origin.jpg' }], tpl_id: 'base, doodle, weibo', tpl_content: { base: { images: { '1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali: { url: 'http://image.smartisanos.cn/resource/0b42c35b463f23c73cedffef08a7fdb3.jpg', width: 1220, height: 4354 }, ali_mobile: { url: 'http://image.smartisanos.cn/resource/0b42c35b463f23c73cedffef08a7fdb3.jpg', width: 1220, height: 4354 } }, attributes: [{ title: '', list: [{ name: '', value: '' }] }], aftersale: [{ title: '', content: '' }], extra: [{ title: '', content: '' }] }, doodle: { text: '', images: { '1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali: { url: 'http://image.smartisanos.cn/resource/0b42c35b463f23c73cedffef08a7fdb3.jpg', width: 1220, height: 4354, piece_height: 1440, pieces_num: 4 }, ali_mobile: { url: 'http://image.smartisanos.cn/resource/0b42c35b463f23c73cedffef08a7fdb3.jpg', width: 1220, height: 4354, piece_height: 1440, pieces_num: 4 } } }, weibo: { text: '', images: { '1x': '', '2x': '', mobile: '', image_pre: '', image_name: '' } } }, buy_notes: [] }, sku_info: [{ sku_id: '100027501', title: '坚果 Pro 钢化玻璃手感膜 开孔 (后壳用)', sub_title: '9H 超强硬度、超 4 小时钢化时长、2.5D 弧边设计', promo_title: '', color_id: '36', appearance_color_id: '', image: null, ali_image: 'http://image.smartisanos.cn/resource/3802197aa7e78f9429eb5f6048a25047.jpg', direct_to_cart: !0, price: '49.00', spec_json: [{ spec_id: '1', spec_value_id: '36', show_name: '黑色', image: 'attr/v2/1000275/649AD35E36A9703BACBE1555AEB6D266/' }] }], acc_info: { package_list: '' }, after_sell_info: { is_back: '1', back_deadline: '7', is_exchange: '1', exchange_deadline: '15', is_repair: '0' }, created_at: 1492582165e3, updated_at: 1495784908e3 }, { id: 1000274, name: '坚果 Pro 钢化玻璃保护膜 (前屏用)', price: 49, sale_status: 3, product_info: { product_name: '坚果 Pro 钢化玻璃保护膜 (前屏用)', product_code: '1000274', brand_id: 1, category_id: 73, product_type: 1, delivery_type: 0, delivery_area: 0, supply_type: 'A', tax_rate: 17, desc: '', is_package: 0, is_mobile: 0, is_insurance: 0, accessory_goods: [] }, shop_info: { spu_title: '坚果 Pro 钢化玻璃保护膜(前屏用)', spu_sub_title: '高达 92% 的超强透光率、耐刮花、防指纹', spu_promo_title: '', sale_model: '1', book_num: null, spec_v2: [{ spec_id: '1', spec_name: '颜色', visiable: '0', show_type: '2', spec_values: [{ id: '211', spec_id: '1', item_value: '透明', show_name: '透明', image: 'attr/v2/1000274/3555AF9D0704A3AE3ECB7DC7C6866775/' }], image_pre: 'http://img01.smartisanos.cn/', image_name: 'origin.jpg' }], tpl_id: 'base, doodle, weibo', tpl_content: { base: { images: { '1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali: { url: 'http://image.smartisanos.cn/resource/2d14b61e931a6e83ccb7e2c98b252695.jpg', width: 1220, height: 4299 }, ali_mobile: { url: 'http://image.smartisanos.cn/resource/2d14b61e931a6e83ccb7e2c98b252695.jpg', width: 1220, height: 4299 } }, attributes: [{ title: '', list: [{ name: '', value: '' }] }], aftersale: [{ title: '', content: '' }], extra: [{ title: '', content: '' }] }, doodle: { text: '', images: { '1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali: { url: 'http://image.smartisanos.cn/resource/2d14b61e931a6e83ccb7e2c98b252695.jpg', width: 1220, height: 4299, piece_height: 1440, pieces_num: 3 }, ali_mobile: { url: 'http://image.smartisanos.cn/resource/2d14b61e931a6e83ccb7e2c98b252695.jpg', width: 1220, height: 4299, piece_height: 1440, pieces_num: 3 } } }, weibo: { text: '', images: { '1x': '', '2x': '', mobile: '', image_pre: '', image_name: '' } } }, buy_notes: [] }, sku_info: [{ sku_id: '100027401', title: '坚果 Pro 钢化玻璃保护膜(前屏用)', sub_title: '高达 92% 的超强透光率、耐刮花、防指纹', promo_title: '', color_id: '211', appearance_color_id: '', image: null, ali_image: 'http://image.smartisanos.cn/resource/30cacf4088f7105d16452c661afd9299.jpg', direct_to_cart: !0, price: '49.00', spec_json: [{ spec_id: '1', spec_value_id: '211', show_name: '透明', image: 'attr/v2/1000274/3555AF9D0704A3AE3ECB7DC7C6866775/' }] }], acc_info: { package_list: '' }, after_sell_info: { is_back: 1, back_deadline: 7, is_exchange: 1, exchange_deadline: 15, is_repair: 0 }, created_at: 1492574149e3, updated_at: 1495784908e3 }, { id: 1000271, name: '坚果 Pro 软胶保护套', price: 49, sale_status: 3, product_info: { product_name: '坚果 Pro 软胶保护套', product_code: '1000271', brand_id: 1, category_id: 70, product_type: 1, delivery_type: 5, delivery_area: 7, supply_type: 'A', tax_rate: 17, desc: '', is_package: 0, is_mobile: 0, is_insurance: 0, accessory_goods: [] }, shop_info: { spu_title: '坚果 Pro 软胶保护套', spu_sub_title: 'TPU 环保材质、耐磨、耐油、耐久性强', spu_promo_title: '', sale_model: '1', book_num: null, spec_v2: [{ spec_id: '1', spec_name: '颜色', visiable: '0', show_type: '2', spec_values: [{ id: '35', spec_id: '1', item_value: '红色', show_name: '红色', image: 'attr/v2/1000271/948F029DCF134EF23267994487994DA5/' }, { id: '36', spec_id: '1', item_value: '黑色', show_name: '黑色', image: 'attr/v2/1000271/649AD35E36A9703BACBE1555AEB6D266/' }, { id: '41', spec_id: '1', item_value: '咖啡色', show_name: '巧克力色', image: 'attr/v2/1000271/07BAF8C0EF046224A84B593DEEBC869E/' }, { id: '207', spec_id: '1', item_value: '浅金色', show_name: '浅金色', image: 'attr/v2/1000271/52317E0C067C97FC6CE9376A2432CFFF/' }], image_pre: 'http://img01.smartisanos.cn/', image_name: 'origin.jpg' }], tpl_id: 'base', tpl_content: { base: { images: { '1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali_mobile: { url: ['http://image.smartisanos.cn/resource/98521dbfe1dd1e67db3f7ca21e76c9ef.jpg'], width: 2440, height: 14e3, piece_height: 1440, pieces_num: 10 }, ali: { url: ['http://image.smartisanos.cn/resource/98521dbfe1dd1e67db3f7ca21e76c9ef.jpg'], width: 2440, height: 14e3, piece_height: 1440, pieces_num: 10 } }, attributes: [{ title: '', list: [{ name: '', value: '' }] }], aftersale: [{ title: '', content: '' }], extra: [{ title: '', content: '' }] } }, buy_notes: [] }, sku_info: [{ sku_id: '100027101', title: '坚果 Pro 软胶保护套', sub_title: 'TPU 环保材质、耐磨、耐油、耐久性强', promo_title: '', color_id: '35', appearance_color_id: '', image: null, ali_image: 'http://image.smartisanos.cn/resource/902befd5f32a8caf4ca79b55d39ee25a.jpg', direct_to_cart: !0, price: '49.00', spec_json: [{ spec_id: '1', spec_value_id: '35', show_name: '红色', image: 'attr/v2/1000271/948F029DCF134EF23267994487994DA5/' }] }, { sku_id: '100027102', title: '坚果 Pro 软胶保护套', sub_title: 'TPU 环保材质、耐磨、耐油、耐久性强', promo_title: '', color_id: '36', appearance_color_id: '', image: null, ali_image: 'http://image.smartisanos.cn/resource/554da94d8e4f84f03e0015fd1c997f46.jpg', direct_to_cart: !0, price: '49.00', spec_json: [{ spec_id: '1', spec_value_id: '36', show_name: '黑色', image: 'attr/v2/1000271/649AD35E36A9703BACBE1555AEB6D266/' }] }, { sku_id: '100027103', title: '坚果 Pro 软胶保护套', sub_title: 'TPU 环保材质、耐磨、耐油、耐久性强', promo_title: '', color_id: '41', appearance_color_id: '', image: null, ali_image: 'http://image.smartisanos.cn/resource/84b58718b8f8da3c08e0931e19fdc62e.png', direct_to_cart: !0, price: '49.00', spec_json: [{ spec_id: '1', spec_value_id: '41', show_name: '巧克力色', image: 'attr/v2/1000271/07BAF8C0EF046224A84B593DEEBC869E/' }] }, { sku_id: '100027104', title: '坚果 Pro 软胶保护套', sub_title: 'TPU 环保材质、耐磨、耐油、耐久性强', promo_title: '', color_id: '207', appearance_color_id: '', image: null, ali_image: 'http://image.smartisanos.cn/resource/b20055215ae3db0f2c8b7ba4db68866f.png', direct_to_cart: !0, price: '49.00', spec_json: [{ spec_id: '1', spec_value_id: '207', show_name: '浅金色', image: 'attr/v2/1000271/52317E0C067C97FC6CE9376A2432CFFF/' }] }], acc_info: { package_list: '' }, after_sell_info: { is_back: 1, back_deadline: 7, is_exchange: 1, exchange_deadline: 15, is_repair: 0 }, created_at: 1492484266e3, updated_at: 1497410146e3 }, { id: 1000268, name: 'Smartisan 耳机转接头', price: 19, sale_status: 3, product_info: { product_name: 'Smartisan 耳机转接头', product_code: '1000268', brand_id: 1, category_id: 41, product_type: 1, delivery_type: 5, delivery_area: 7, supply_type: 'A', tax_rate: 17, desc: '', is_package: 0, is_mobile: 0, is_insurance: 0, accessory_goods: [] }, shop_info: { spu_title: 'Smartisan 耳机转接头', spu_sub_title: '即插即用、全面兼容', spu_promo_title: '', sale_model: '1', book_num: null, spec_v2: [{ spec_id: '1', spec_name: '颜色', visiable: '0', show_type: '2', spec_values: [{ id: '37', spec_id: '1', item_value: '白色', show_name: '白色', image: 'attr/v2/1000268/E647E77234F9ED0FDE9DD4084D35FF57/' }], image_pre: 'http://img01.smartisanos.cn/', image_name: 'origin.jpg' }], tpl_id: 'base', tpl_content: { base: { images: { '1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali: { url: 'http://image.smartisanos.cn/resource/586f7bfcf88f14935918943bb0421c26.jpg', width: 1220, height: 4715, piece_height: 1440, pieces_num: 4 }, ali_mobile: { url: 'http://image.smartisanos.cn/resource/586f7bfcf88f14935918943bb0421c26.jpg', width: 1220, height: 4715, piece_height: 1440, pieces_num: 4 } }, attributes: [{ title: '', list: [{ name: '', value: '' }] }], aftersale: [{ title: '', content: '' }], extra: [{ title: '', content: '' }] } }, buy_notes: [] }, sku_info: [{ sku_id: '100026801', title: 'Smartisan 耳机转接头', sub_title: '即插即用、全面兼容', promo_title: '', color_id: '37', appearance_color_id: '', image: null, ali_image: 'http://image.smartisanos.cn/resource/1dddddf6488ba89d592a37e9db93ffa2.jpg', direct_to_cart: !0, price: '19.00', spec_json: [{ spec_id: '1', spec_value_id: '37', show_name: '白色', image: 'attr/v2/1000268/E647E77234F9ED0FDE9DD4084D35FF57/' }] }], acc_info: { package_list: '' }, after_sell_info: { is_back: 1, back_deadline: 7, is_exchange: 1, exchange_deadline: 15, is_repair: 1 }, created_at: 1492420907e3, updated_at: 1495784908e3 }, { id: 1000267, name: 'Smartisan 原装快充充电器 18W', price: 59, sale_status: 3, product_info: { product_name: 'Smartisan 原装快充充电器 18W', product_code: '1000267', brand_id: 1, category_id: 41, product_type: 1, delivery_type: 5, delivery_area: 7, supply_type: 'A', tax_rate: 17, desc: '', is_package: 0, is_mobile: 0, is_insurance: 0, accessory_goods: [] }, shop_info: { spu_title: 'Smartisan 原装快充充电器 18W', spu_sub_title: '18W 安全快充、支持主流 QC3.0, MTK PE+2.0 快充协议', spu_promo_title: '', sale_model: '1', book_num: null, spec_v2: [{ spec_id: '1', spec_name: '颜色', visiable: '0', show_type: '2', spec_values: [{ id: '37', spec_id: '1', item_value: '白色', show_name: '白色', image: 'attr/v2/1000267/E647E77234F9ED0FDE9DD4084D35FF57/' }], image_pre: 'http://img01.smartisanos.cn/', image_name: 'origin.jpg' }], tpl_id: 'base', tpl_content: { base: { images: { '1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali: { url: 'http://image.smartisanos.cn/resource/4a7b87fe01ec8339985702ee922d205a.jpg', width: 1220, height: 4526, piece_height: 1440, pieces_num: 4 }, ali_mobile: { url: 'http://image.smartisanos.cn/resource/4a7b87fe01ec8339985702ee922d205a.jpg', width: 1220, height: 4526, piece_height: 1440, pieces_num: 4 } }, attributes: [{ title: '', list: [{ name: '', value: '' }] }], aftersale: [{ title: '', content: '' }], extra: [{ title: '', content: '' }] } }, buy_notes: [] }, sku_info: [{ sku_id: '100026701', title: 'Smartisan 原装快充充电器 18W', sub_title: '18W 安全快充、支持主流 QC3.0, MTK PE+2.0 快充协议', promo_title: '', color_id: '37', appearance_color_id: '', image: null, ali_image: 'http://image.smartisanos.cn/resource/dc53bd870ee64d2053ecc51750ece43a.jpg', direct_to_cart: !0, price: '59.00', spec_json: [{ spec_id: '1', spec_value_id: '37', show_name: '白色', image: 'attr/v2/1000267/E647E77234F9ED0FDE9DD4084D35FF57/' }] }], acc_info: { package_list: '' }, after_sell_info: { is_back: 1, back_deadline: 7, is_exchange: 1, exchange_deadline: 15, is_repair: 1 }, created_at: 149242042e4, updated_at: 1495627685e3 }, { id: 1000266, name: 'Smartisan 原装 Type-C 数据线', price: 39, sale_status: 3, product_info: { product_name: 'Smartisan 原装 Type-C 数据线', product_code: '1000266', brand_id: 1, category_id: 56, product_type: 1, delivery_type: 5, delivery_area: 7, supply_type: 'A', tax_rate: 17, desc: '', is_package: 0, is_mobile: 0, is_insurance: 0, accessory_goods: [] }, shop_info: { spu_title: 'Smartisan 原装 Type-C 数据线', spu_sub_title: 'PTC 过温保护、凹形设计、TPE 环保材质', spu_promo_title: '', sale_model: '1', book_num: null, spec_v2: [{ spec_id: '1', spec_name: '颜色', visiable: '0', show_type: '2', spec_values: [{ id: '37', spec_id: '1', item_value: '白色', show_name: '白色', image: 'attr/v2/1000266/E647E77234F9ED0FDE9DD4084D35FF57/' }], image_pre: 'http://img01.smartisanos.cn/', image_name: 'origin.jpg' }], tpl_id: 'base', tpl_content: { base: { images: { '1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali: { url: 'http://image.smartisanos.cn/resource/b3d7b420e3e609e858a8d75f19cbfd7c.jpg', width: 1220, height: 4829, piece_height: 1440, pieces_num: 4 }, ali_mobile: { url: 'http://image.smartisanos.cn/resource/b3d7b420e3e609e858a8d75f19cbfd7c.jpg', width: 1220, height: 4829, piece_height: 1440, pieces_num: 4 } }, attributes: [{ title: '', list: [{ name: '', value: '' }] }], aftersale: [{ title: '', content: '' }], extra: [{ title: '', content: '' }] } }, buy_notes: [] }, sku_info: [{ sku_id: '100026601', title: 'Smartisan 原装 Type-C 数据线', sub_title: 'PTC 过温保护、凹形设计、TPE 环保材质', promo_title: '', color_id: '37', appearance_color_id: '', image: null, ali_image: 'http://image.smartisanos.cn/resource/c79a73ffc6f8e782160d978f49f543dc.jpg', direct_to_cart: !0, price: '39.00', spec_json: [{ spec_id: '1', spec_value_id: '37', show_name: '白色', image: 'attr/v2/1000266/E647E77234F9ED0FDE9DD4084D35FF57/' }] }], acc_info: { package_list: '' }, after_sell_info: { is_back: 1, back_deadline: 7, is_exchange: 1, exchange_deadline: 15, is_repair: 1 }, created_at: 149215424e4, updated_at: 1495784908e3 }]
+
+export default goodData
diff --git a/Vue-shopping/src/lib/itemsData.js b/Vue-shopping/src/lib/itemsData.js
new file mode 100644
index 0000000..81af650
--- /dev/null
+++ b/Vue-shopping/src/lib/itemsData.js
@@ -0,0 +1,3 @@
+let itemsData = [{id: 100029901, price: 199, name: 'Smartisan 快充移动电源 10000mAh(灰色)', spu_id: 1000299, sale_status: 3, product_info: {goods_name: 'Smartisan 快充移动电源 10000mAh(灰色)', goods_code: '100029901', barcode: '6970643021295', sapcode: 'ACC130001AGD', package_type: '0', product_code: '1000299', product_name: 'Smartisan 快充移动电源 10000mAh', is_mobile: 0, is_insurance: 0, goods_type: '0', is_package: !1, package_goods: []}, shop_info: {title: 'Smartisan 快充移动电源 10000mAh', sub_title: '10000mAh 双向快充、轻盈便携、高标准安全保护', promo_title: '', limit_num: '1', spec_v2: [{spec_id: '1', spec_name: '颜色', visiable: '0', show_type: '2', spec_values: [{id: '70', spec_id: '1', item_value: '灰色', show_name: '灰色', image: 'attr/v2/1000299/B37F37544921114CEF1EC01ED4DF44E4/'}], image_pre: 'http://img01.smartisanos.cn/', image_name: 'origin.jpg'}], spec_json: [{spec_id: '1', spec_value_id: '70', show_name: '灰色', image: 'attr/v2/1000299/B37F37544921114CEF1EC01ED4DF44E4/'}], buy_notes: [], images: null, image: null, ali_images: ['http://image.smartisanos.cn/resource/ae40a16324658c192c7361d829f603bd.jpg', 'http://image.smartisanos.cn/resource/0540778097a009364f2dcbb8c5286451.jpg', 'http://image.smartisanos.cn/resource/ed7ea75824124d7385c99d532f1d4f1d.jpg', 'http://image.smartisanos.cn/resource/40b8c1b1e5d175cc8fa9e7ff96cb6016.jpg', 'http://image.smartisanos.cn/resource/fb24dc3db26c6f02542e0dea9b10151b.jpg'], ali_image: 'http://image.smartisanos.cn/resource/ae40a16324658c192c7361d829f603bd.jpg', image_default_name: 'origin.jpg', is_custom: '0', is_mobile: '0', is_package: '0', tpl_id: 'base', tpl_content: {base: {images: {'1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali: {url: 'http://image.smartisanos.cn/resource/d930be42185ab064035d0894f37ea179.jpg', width: 1220, height: 6478, piece_height: 1440, pieces_num: 5}, ali_mobile: {url: 'http://image.smartisanos.cn/resource/d930be42185ab064035d0894f37ea179.jpg', width: 1220, height: 6478, piece_height: 1440, pieces_num: 5}}, attributes: [{title: '', list: [{name: '', value: ''}]}], aftersale: [{title: '', content: ''}], extra: [{title: '', content: ''}]}}, doodle_stage: '99'}, attr_info: {1: {spec_id: '1', spec_name: '颜色', value: '灰色', spec_value_id: '70'}}, created_at: 1493017027e3, updated_at: 1497715201e3, sku_list: [{id: 100029901, price: 199, name: 'Smartisan 快充移动电源 10000mAh(灰色)', spu_id: 1000299, sale_status: 3, product_info: {goods_name: 'Smartisan 快充移动电源 10000mAh(灰色)', goods_code: '100029901', barcode: '6970643021295', sapcode: 'ACC130001AGD', package_type: '0', product_code: '1000299', product_name: 'Smartisan 快充移动电源 10000mAh', is_mobile: 0, is_insurance: 0, goods_type: '0', is_package: !1, package_goods: []}, shop_info: {title: 'Smartisan 快充移动电源 10000mAh', sub_title: '10000mAh 双向快充、轻盈便携、高标准安全保护', promo_title: '', limit_num: '1', spec_v2: [{spec_id: '1', spec_name: '颜色', visiable: '0', show_type: '2', spec_values: [{id: '70', spec_id: '1', item_value: '灰色', show_name: '灰色', image: 'attr/v2/1000299/B37F37544921114CEF1EC01ED4DF44E4/'}], image_pre: 'http://img01.smartisanos.cn/', image_name: 'origin.jpg'}], spec_json: [{spec_id: '1', spec_value_id: '70', show_name: '灰色', image: 'attr/v2/1000299/B37F37544921114CEF1EC01ED4DF44E4/'}], buy_notes: [], images: null, image: null, ali_images: ['http://image.smartisanos.cn/resource/ae40a16324658c192c7361d829f603bd.jpg', 'http://image.smartisanos.cn/resource/0540778097a009364f2dcbb8c5286451.jpg', 'http://image.smartisanos.cn/resource/ed7ea75824124d7385c99d532f1d4f1d.jpg', 'http://image.smartisanos.cn/resource/40b8c1b1e5d175cc8fa9e7ff96cb6016.jpg', 'http://image.smartisanos.cn/resource/fb24dc3db26c6f02542e0dea9b10151b.jpg'], ali_image: 'http://image.smartisanos.cn/resource/ae40a16324658c192c7361d829f603bd.jpg', image_default_name: 'origin.jpg', is_custom: '0', is_mobile: '0', is_package: '0', tpl_id: 'base', tpl_content: {base: {images: {'1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali: {url: 'http://image.smartisanos.cn/resource/d930be42185ab064035d0894f37ea179.jpg', width: 1220, height: 6478, piece_height: 1440, pieces_num: 5}, ali_mobile: {url: 'http://image.smartisanos.cn/resource/d930be42185ab064035d0894f37ea179.jpg', width: 1220, height: 6478, piece_height: 1440, pieces_num: 5}}, attributes: [{title: '', list: [{name: '', value: ''}]}], aftersale: [{title: '', content: ''}], extra: [{title: '', content: ''}]}}, doodle_stage: '99'}, attr_info: {1: {spec_id: '1', spec_name: '颜色', value: '灰色', spec_value_id: '70'}}, created_at: 1493017027e3, updated_at: 1497715201e3}], in_stock: !0}, {id: 100029801, price: 49, name: '坚果Pro 钢化玻璃手感膜 无孔 (后壳用)(透明)', spu_id: 1000298, sale_status: 3, product_info: {goods_name: '坚果Pro 钢化玻璃手感膜 无孔 (后壳用)(透明)', goods_code: '100029801', barcode: '6970643021226', sapcode: 'ACC210005CTS', package_type: '0', product_code: '1000298', product_name: '坚果Pro 钢化玻璃手感膜 无孔 (后壳用)', is_mobile: 0, is_insurance: 0, goods_type: '20', is_package: !1, package_goods: []}, shop_info: {title: '坚果 Pro 钢化玻璃手感膜 无孔 (后壳用)', sub_title: '仅适用于坚果 Pro (酒红色版、浅金色版、巧克力色版和 32G 碳黑色版)', promo_title: '', limit_num: '5', spec_v2: [{spec_id: '1', spec_name: '颜色', visiable: '0', show_type: '2', spec_values: [{id: '211', spec_id: '1', item_value: '透明', show_name: '透明', image: 'attr/v2/1000298/B1D74DE1EB579A14D2F97F6F56F508C4/'}], image_pre: 'http://img01.smartisanos.cn/', image_name: 'origin.jpg'}], spec_json: [{spec_id: '1', spec_value_id: '211', show_name: '透明', image: 'attr/v2/1000298/B1D74DE1EB579A14D2F97F6F56F508C4/'}], buy_notes: ['坚果 Pro 钢化玻璃手感膜 无孔 (后壳用)仅适用于坚果 Pro (酒红色版、浅金色版、巧克力色版和 32G 碳黑色版)'], images: null, image: null, ali_images: ['http://image.smartisanos.cn/resource/f6f081615fdd6f92206c3d127501843a.jpg'], ali_image: 'http://image.smartisanos.cn/resource/f6f081615fdd6f92206c3d127501843a.jpg', image_default_name: 'origin.jpg', is_custom: '0', is_mobile: '0', is_package: '0', tpl_id: 'base, doodle, weibo', tpl_content: {base: {images: {'1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali: {url: 'http://image.smartisanos.cn/resource/cca8534ffae2cb1d2626d707ee653dbd.jpg', width: 1220, height: 4390}, ali_mobile: {url: 'http://image.smartisanos.cn/resource/cca8534ffae2cb1d2626d707ee653dbd.jpg', width: 1220, height: 4390}}, attributes: [{title: '', list: [{name: '', value: ''}]}], aftersale: [{title: '', content: ''}], extra: [{title: '', content: ''}]}, doodle: {text: '', images: {'1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali: {url: 'http://image.smartisanos.cn/resource/cca8534ffae2cb1d2626d707ee653dbd.jpg', width: 1220, height: 4390, piece_height: 1440, pieces_num: 4}, ali_mobile: {url: 'http://image.smartisanos.cn/resource/cca8534ffae2cb1d2626d707ee653dbd.jpg', width: 1220, height: 4390, piece_height: 1440, pieces_num: 4}}}, weibo: {text: '', images: {'1x': '', '2x': '', mobile: '', image_pre: '', image_name: ''}}}, doodle_stage: '99'}, attr_info: {1: {spec_id: '1', spec_name: '颜色', value: '透明', spec_value_id: '211'}}, created_at: 1492769862e3, updated_at: 1497862955e3, sku_list: [{id: 100029801, price: 49, name: '坚果Pro 钢化玻璃手感膜 无孔 (后壳用)(透明)', spu_id: 1000298, sale_status: 3, product_info: {goods_name: '坚果Pro 钢化玻璃手感膜 无孔 (后壳用)(透明)', goods_code: '100029801', barcode: '6970643021226', sapcode: 'ACC210005CTS', package_type: '0', product_code: '1000298', product_name: '坚果Pro 钢化玻璃手感膜 无孔 (后壳用)', is_mobile: 0, is_insurance: 0, goods_type: '20', is_package: !1, package_goods: []}, shop_info: {title: '坚果 Pro 钢化玻璃手感膜 无孔 (后壳用)', sub_title: '仅适用于坚果 Pro (酒红色版、浅金色版、巧克力色版和 32G 碳黑色版)', promo_title: '', limit_num: '5', spec_v2: [{spec_id: '1', spec_name: '颜色', visiable: '0', show_type: '2', spec_values: [{id: '211', spec_id: '1', item_value: '透明', show_name: '透明', image: 'attr/v2/1000298/B1D74DE1EB579A14D2F97F6F56F508C4/'}], image_pre: 'http://img01.smartisanos.cn/', image_name: 'origin.jpg'}], spec_json: [{spec_id: '1', spec_value_id: '211', show_name: '透明', image: 'attr/v2/1000298/B1D74DE1EB579A14D2F97F6F56F508C4/'}], buy_notes: ['坚果 Pro 钢化玻璃手感膜 无孔 (后壳用)仅适用于坚果 Pro (酒红色版、浅金色版、巧克力色版和 32G 碳黑色版)'], images: null, image: null, ali_images: ['http://image.smartisanos.cn/resource/f6f081615fdd6f92206c3d127501843a.jpg'], ali_image: 'http://image.smartisanos.cn/resource/f6f081615fdd6f92206c3d127501843a.jpg', image_default_name: 'origin.jpg', is_custom: '0', is_mobile: '0', is_package: '0', tpl_id: 'base, doodle, weibo', tpl_content: {base: {images: {'1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali: {url: 'http://image.smartisanos.cn/resource/cca8534ffae2cb1d2626d707ee653dbd.jpg', width: 1220, height: 4390}, ali_mobile: {url: 'http://image.smartisanos.cn/resource/cca8534ffae2cb1d2626d707ee653dbd.jpg', width: 1220, height: 4390}}, attributes: [{title: '', list: [{name: '', value: ''}]}], aftersale: [{title: '', content: ''}], extra: [{title: '', content: ''}]}, doodle: {text: '', images: {'1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali: {url: 'http://image.smartisanos.cn/resource/cca8534ffae2cb1d2626d707ee653dbd.jpg', width: 1220, height: 4390, piece_height: 1440, pieces_num: 4}, ali_mobile: {url: 'http://image.smartisanos.cn/resource/cca8534ffae2cb1d2626d707ee653dbd.jpg', width: 1220, height: 4390, piece_height: 1440, pieces_num: 4}}}, weibo: {text: '', images: {'1x': '', '2x': '', mobile: '', image_pre: '', image_name: ''}}}, doodle_stage: '99'}, attr_info: {1: {spec_id: '1', spec_name: '颜色', value: '透明', spec_value_id: '211'}}, created_at: 1492769862e3, updated_at: 1497862955e3}], in_stock: !0}, {id: 100027501, price: 49, name: '坚果 Pro 钢化玻璃手感膜 开孔 (后壳用)(黑色)', spu_id: 1000275, sale_status: 3, product_info: {goods_name: '坚果 Pro 钢化玻璃手感膜 开孔 (后壳用)(黑色)', goods_code: '100027501', barcode: '6970643024913', sapcode: 'ACC210005DBS', package_type: '0', product_code: '1000275', product_name: '坚果 Pro 钢化玻璃手感膜 开孔 (后壳用)', is_mobile: 0, is_insurance: 0, goods_type: '20', is_package: !1, package_goods: []}, shop_info: {title: '坚果 Pro 钢化玻璃手感膜 开孔 (后壳用)', sub_title: '9H 超强硬度、超 4 小时钢化时长、2.5D 弧边设计', promo_title: '', limit_num: '5', spec_v2: [{spec_id: '1', spec_name: '颜色', visiable: '0', show_type: '2', spec_values: [{id: '36', spec_id: '1', item_value: '黑色', show_name: '黑色', image: 'attr/v2/1000275/649AD35E36A9703BACBE1555AEB6D266/'}, {id: '201', spec_id: '1', item_value: '酒红色', show_name: '酒红色', image: 'attr/v2/1000275/948F029DCF134EF23267994487994DA5/'}], image_pre: 'http://img01.smartisanos.cn/', image_name: 'origin.jpg'}], spec_json: [{spec_id: '1', spec_value_id: '36', show_name: '黑色', image: 'attr/v2/1000275/649AD35E36A9703BACBE1555AEB6D266/'}], buy_notes: [], images: null, image: null, ali_images: ['http://image.smartisanos.cn/resource/3802197aa7e78f9429eb5f6048a25047.jpg'], ali_image: 'http://image.smartisanos.cn/resource/3802197aa7e78f9429eb5f6048a25047.jpg', image_default_name: 'origin.jpg', is_custom: '0', is_mobile: '0', is_package: '0', tpl_id: 'base, doodle, weibo', tpl_content: {base: {images: {'1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali: {url: 'http://image.smartisanos.cn/resource/0b42c35b463f23c73cedffef08a7fdb3.jpg', width: 1220, height: 4354}, ali_mobile: {url: 'http://image.smartisanos.cn/resource/0b42c35b463f23c73cedffef08a7fdb3.jpg', width: 1220, height: 4354}}, attributes: [{title: '', list: [{name: '', value: ''}]}], aftersale: [{title: '', content: ''}], extra: [{title: '', content: ''}]}, doodle: {text: '', images: {'1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali: {url: 'http://image.smartisanos.cn/resource/0b42c35b463f23c73cedffef08a7fdb3.jpg', width: 1220, height: 4354, piece_height: 1440, pieces_num: 4}, ali_mobile: {url: 'http://image.smartisanos.cn/resource/0b42c35b463f23c73cedffef08a7fdb3.jpg', width: 1220, height: 4354, piece_height: 1440, pieces_num: 4}}}, weibo: {text: '', images: {'1x': '', '2x': '', mobile: '', image_pre: '', image_name: ''}}}, doodle_stage: '99'}, attr_info: {1: {spec_id: '1', spec_name: '颜色', value: '黑色', spec_value_id: '36'}}, created_at: 1492582165e3, updated_at: 1495784909e3, sku_list: [{id: 100027501, price: 49, name: '坚果 Pro 钢化玻璃手感膜 开孔 (后壳用)(黑色)', spu_id: 1000275, sale_status: 3, product_info: {goods_name: '坚果 Pro 钢化玻璃手感膜 开孔 (后壳用)(黑色)', goods_code: '100027501', barcode: '6970643024913', sapcode: 'ACC210005DBS', package_type: '0', product_code: '1000275', product_name: '坚果 Pro 钢化玻璃手感膜 开孔 (后壳用)', is_mobile: 0, is_insurance: 0, goods_type: '20', is_package: !1, package_goods: []}, shop_info: {title: '坚果 Pro 钢化玻璃手感膜 开孔 (后壳用)', sub_title: '9H 超强硬度、超 4 小时钢化时长、2.5D 弧边设计', promo_title: '', limit_num: '5', spec_v2: [{spec_id: '1', spec_name: '颜色', visiable: '0', show_type: '2', spec_values: [{id: '36', spec_id: '1', item_value: '黑色', show_name: '黑色', image: 'attr/v2/1000275/649AD35E36A9703BACBE1555AEB6D266/'}, {id: '201', spec_id: '1', item_value: '酒红色', show_name: '酒红色', image: 'attr/v2/1000275/948F029DCF134EF23267994487994DA5/'}], image_pre: 'http://img01.smartisanos.cn/', image_name: 'origin.jpg'}], spec_json: [{spec_id: '1', spec_value_id: '36', show_name: '黑色', image: 'attr/v2/1000275/649AD35E36A9703BACBE1555AEB6D266/'}], buy_notes: [], images: null, image: null, ali_images: ['http://image.smartisanos.cn/resource/3802197aa7e78f9429eb5f6048a25047.jpg'], ali_image: 'http://image.smartisanos.cn/resource/3802197aa7e78f9429eb5f6048a25047.jpg', image_default_name: 'origin.jpg', is_custom: '0', is_mobile: '0', is_package: '0', tpl_id: 'base, doodle, weibo', tpl_content: {base: {images: {'1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali: {url: 'http://image.smartisanos.cn/resource/0b42c35b463f23c73cedffef08a7fdb3.jpg', width: 1220, height: 4354}, ali_mobile: {url: 'http://image.smartisanos.cn/resource/0b42c35b463f23c73cedffef08a7fdb3.jpg', width: 1220, height: 4354}}, attributes: [{title: '', list: [{name: '', value: ''}]}], aftersale: [{title: '', content: ''}], extra: [{title: '', content: ''}]}, doodle: {text: '', images: {'1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali: {url: 'http://image.smartisanos.cn/resource/0b42c35b463f23c73cedffef08a7fdb3.jpg', width: 1220, height: 4354, piece_height: 1440, pieces_num: 4}, ali_mobile: {url: 'http://image.smartisanos.cn/resource/0b42c35b463f23c73cedffef08a7fdb3.jpg', width: 1220, height: 4354, piece_height: 1440, pieces_num: 4}}}, weibo: {text: '', images: {'1x': '', '2x': '', mobile: '', image_pre: '', image_name: ''}}}, doodle_stage: '99'}, attr_info: {1: {spec_id: '1', spec_name: '颜色', value: '黑色', spec_value_id: '36'}}, created_at: 1492582165e3, updated_at: 1495784909e3}], in_stock: !0}, {id: 100027401, price: 49, name: '坚果 Pro 钢化玻璃保护膜 (前屏用)(透明)', spu_id: 1000274, sale_status: 3, product_info: {goods_name: '坚果 Pro 钢化玻璃保护膜 (前屏用)(透明)', goods_code: '100027401', barcode: '6970643021219', sapcode: 'ACC210005BTS', package_type: '0', product_code: '1000274', product_name: '坚果 Pro 钢化玻璃保护膜 (前屏用)', is_mobile: 0, is_insurance: 0, goods_type: '20', is_package: !1, package_goods: []}, shop_info: {title: '坚果 Pro 钢化玻璃保护膜(前屏用)', sub_title: '高达 92% 的超强透光率、耐刮花、防指纹', promo_title: '', limit_num: '5', spec_v2: [{spec_id: '1', spec_name: '颜色', visiable: '0', show_type: '2', spec_values: [{id: '211', spec_id: '1', item_value: '透明', show_name: '透明', image: 'attr/v2/1000274/3555AF9D0704A3AE3ECB7DC7C6866775/'}], image_pre: 'http://img01.smartisanos.cn/', image_name: 'origin.jpg'}], spec_json: [{spec_id: '1', spec_value_id: '211', show_name: '透明', image: 'attr/v2/1000274/3555AF9D0704A3AE3ECB7DC7C6866775/'}], buy_notes: [], images: null, image: null, ali_images: ['http://image.smartisanos.cn/resource/30cacf4088f7105d16452c661afd9299.jpg'], ali_image: 'http://image.smartisanos.cn/resource/30cacf4088f7105d16452c661afd9299.jpg', image_default_name: 'origin.jpg', is_custom: '0', is_mobile: '0', is_package: '0', tpl_id: 'base, doodle, weibo', tpl_content: {base: {images: {'1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali: {url: 'http://image.smartisanos.cn/resource/2d14b61e931a6e83ccb7e2c98b252695.jpg', width: 1220, height: 4299}, ali_mobile: {url: 'http://image.smartisanos.cn/resource/2d14b61e931a6e83ccb7e2c98b252695.jpg', width: 1220, height: 4299}}, attributes: [{title: '', list: [{name: '', value: ''}]}], aftersale: [{title: '', content: ''}], extra: [{title: '', content: ''}]}, doodle: {text: '', images: {'1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali: {url: 'http://image.smartisanos.cn/resource/2d14b61e931a6e83ccb7e2c98b252695.jpg', width: 1220, height: 4299, piece_height: 1440, pieces_num: 3}, ali_mobile: {url: 'http://image.smartisanos.cn/resource/2d14b61e931a6e83ccb7e2c98b252695.jpg', width: 1220, height: 4299, piece_height: 1440, pieces_num: 3}}}, weibo: {text: '', images: {'1x': '', '2x': '', mobile: '', image_pre: '', image_name: ''}}}, doodle_stage: '99'}, attr_info: {1: {spec_id: '1', spec_name: '颜色', value: '透明', spec_value_id: '211'}}, created_at: 1492574149e3, updated_at: 1495784909e3, sku_list: [{id: 100027401, price: 49, name: '坚果 Pro 钢化玻璃保护膜 (前屏用)(透明)', spu_id: 1000274, sale_status: 3, product_info: {goods_name: '坚果 Pro 钢化玻璃保护膜 (前屏用)(透明)', goods_code: '100027401', barcode: '6970643021219', sapcode: 'ACC210005BTS', package_type: '0', product_code: '1000274', product_name: '坚果 Pro 钢化玻璃保护膜 (前屏用)', is_mobile: 0, is_insurance: 0, goods_type: '20', is_package: !1, package_goods: []}, shop_info: {title: '坚果 Pro 钢化玻璃保护膜(前屏用)', sub_title: '高达 92% 的超强透光率、耐刮花、防指纹', promo_title: '', limit_num: '5', spec_v2: [{spec_id: '1', spec_name: '颜色', visiable: '0', show_type: '2', spec_values: [{id: '211', spec_id: '1', item_value: '透明', show_name: '透明', image: 'attr/v2/1000274/3555AF9D0704A3AE3ECB7DC7C6866775/'}], image_pre: 'http://img01.smartisanos.cn/', image_name: 'origin.jpg'}], spec_json: [{spec_id: '1', spec_value_id: '211', show_name: '透明', image: 'attr/v2/1000274/3555AF9D0704A3AE3ECB7DC7C6866775/'}], buy_notes: [], images: null, image: null, ali_images: ['http://image.smartisanos.cn/resource/30cacf4088f7105d16452c661afd9299.jpg'], ali_image: 'http://image.smartisanos.cn/resource/30cacf4088f7105d16452c661afd9299.jpg', image_default_name: 'origin.jpg', is_custom: '0', is_mobile: '0', is_package: '0', tpl_id: 'base, doodle, weibo', tpl_content: {base: {images: {'1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali: {url: 'http://image.smartisanos.cn/resource/2d14b61e931a6e83ccb7e2c98b252695.jpg', width: 1220, height: 4299}, ali_mobile: {url: 'http://image.smartisanos.cn/resource/2d14b61e931a6e83ccb7e2c98b252695.jpg', width: 1220, height: 4299}}, attributes: [{title: '', list: [{name: '', value: ''}]}], aftersale: [{title: '', content: ''}], extra: [{title: '', content: ''}]}, doodle: {text: '', images: {'1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali: {url: 'http://image.smartisanos.cn/resource/2d14b61e931a6e83ccb7e2c98b252695.jpg', width: 1220, height: 4299, piece_height: 1440, pieces_num: 3}, ali_mobile: {url: 'http://image.smartisanos.cn/resource/2d14b61e931a6e83ccb7e2c98b252695.jpg', width: 1220, height: 4299, piece_height: 1440, pieces_num: 3}}}, weibo: {text: '', images: {'1x': '', '2x': '', mobile: '', image_pre: '', image_name: ''}}}, doodle_stage: '99'}, attr_info: {1: {spec_id: '1', spec_name: '颜色', value: '透明', spec_value_id: '211'}}, created_at: 1492574149e3, updated_at: 1495784909e3}], in_stock: !0}, {id: 100027101, price: 49, name: '坚果 Pro 软胶保护套(红色)', spu_id: 1000271, sale_status: 3, product_info: {goods_name: '坚果 Pro 软胶保护套(红色)', goods_code: '100027101', barcode: '6970643021165', sapcode: 'ACC200005ARS', package_type: '0', product_code: '1000271', product_name: '坚果 Pro 软胶保护套', is_mobile: 0, is_insurance: 0, goods_type: '0', is_package: !1, package_goods: []}, shop_info: {title: '坚果 Pro 软胶保护套', sub_title: 'TPU 环保材质、耐磨、耐油、耐久性强', promo_title: '', limit_num: '5', spec_v2: [{spec_id: '1', spec_name: '颜色', visiable: '0', show_type: '2', spec_values: [{id: '35', spec_id: '1', item_value: '红色', show_name: '红色', image: 'attr/v2/1000271/948F029DCF134EF23267994487994DA5/'}, {id: '36', spec_id: '1', item_value: '黑色', show_name: '黑色', image: 'attr/v2/1000271/649AD35E36A9703BACBE1555AEB6D266/'}, {id: '41', spec_id: '1', item_value: '咖啡色', show_name: '巧克力色', image: 'attr/v2/1000271/07BAF8C0EF046224A84B593DEEBC869E/'}, {id: '207', spec_id: '1', item_value: '浅金色', show_name: '浅金色', image: 'attr/v2/1000271/52317E0C067C97FC6CE9376A2432CFFF/'}], image_pre: 'http://img01.smartisanos.cn/', image_name: 'origin.jpg'}], spec_json: [{spec_id: '1', spec_value_id: '35', show_name: '红色', image: 'attr/v2/1000271/948F029DCF134EF23267994487994DA5/'}], buy_notes: [], images: null, image: null, ali_images: ['http://image.smartisanos.cn/resource/902befd5f32a8caf4ca79b55d39ee25a.jpg', 'http://image.smartisanos.cn/resource/ca760e50409c796a4e770c54554f92bf.jpg', 'http://image.smartisanos.cn/resource/493c65d42fe83ec3daaf058d79fc1a95.jpg', 'http://image.smartisanos.cn/resource/0bf30081dd17431c4fdfbd237c53743f.jpg', 'http://image.smartisanos.cn/resource/cba7b4cdb2fc41d7f29fb45d94972e41.jpg'], ali_image: 'http://image.smartisanos.cn/resource/902befd5f32a8caf4ca79b55d39ee25a.jpg', image_default_name: 'origin.jpg', is_custom: '0', is_mobile: '0', is_package: '0', tpl_id: 'base', tpl_content: {base: {images: {'1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali_mobile: {url: ['http://image.smartisanos.cn/resource/98521dbfe1dd1e67db3f7ca21e76c9ef.jpg'], width: 2440, height: 14e3, piece_height: 1440, pieces_num: 10}, ali: {url: ['http://image.smartisanos.cn/resource/98521dbfe1dd1e67db3f7ca21e76c9ef.jpg'], width: 2440, height: 14e3, piece_height: 1440, pieces_num: 10}}, attributes: [{title: '', list: [{name: '', value: ''}]}], aftersale: [{title: '', content: ''}], extra: [{title: '', content: ''}]}}, doodle_stage: '99'}, attr_info: {1: {spec_id: '1', spec_name: '颜色', value: '红色', spec_value_id: '35'}}, created_at: 1492484266e3, updated_at: 1497410146e3, sku_list: [{id: 100027101, price: 49, name: '坚果 Pro 软胶保护套(红色)', spu_id: 1000271, sale_status: 3, product_info: {goods_name: '坚果 Pro 软胶保护套(红色)', goods_code: '100027101', barcode: '6970643021165', sapcode: 'ACC200005ARS', package_type: '0', product_code: '1000271', product_name: '坚果 Pro 软胶保护套', is_mobile: 0, is_insurance: 0, goods_type: '0', is_package: !1, package_goods: []}, shop_info: {title: '坚果 Pro 软胶保护套', sub_title: 'TPU 环保材质、耐磨、耐油、耐久性强', promo_title: '', limit_num: '5', spec_v2: [{spec_id: '1', spec_name: '颜色', visiable: '0', show_type: '2', spec_values: [{id: '35', spec_id: '1', item_value: '红色', show_name: '红色', image: 'attr/v2/1000271/948F029DCF134EF23267994487994DA5/'}, {id: '36', spec_id: '1', item_value: '黑色', show_name: '黑色', image: 'attr/v2/1000271/649AD35E36A9703BACBE1555AEB6D266/'}, {id: '41', spec_id: '1', item_value: '咖啡色', show_name: '巧克力色', image: 'attr/v2/1000271/07BAF8C0EF046224A84B593DEEBC869E/'}, {id: '207', spec_id: '1', item_value: '浅金色', show_name: '浅金色', image: 'attr/v2/1000271/52317E0C067C97FC6CE9376A2432CFFF/'}], image_pre: 'http://img01.smartisanos.cn/', image_name: 'origin.jpg'}], spec_json: [{spec_id: '1', spec_value_id: '35', show_name: '红色', image: 'attr/v2/1000271/948F029DCF134EF23267994487994DA5/'}], buy_notes: [], images: null, image: null, ali_images: ['http://image.smartisanos.cn/resource/902befd5f32a8caf4ca79b55d39ee25a.jpg', 'http://image.smartisanos.cn/resource/ca760e50409c796a4e770c54554f92bf.jpg', 'http://image.smartisanos.cn/resource/493c65d42fe83ec3daaf058d79fc1a95.jpg', 'http://image.smartisanos.cn/resource/0bf30081dd17431c4fdfbd237c53743f.jpg', 'http://image.smartisanos.cn/resource/cba7b4cdb2fc41d7f29fb45d94972e41.jpg'], ali_image: 'http://image.smartisanos.cn/resource/902befd5f32a8caf4ca79b55d39ee25a.jpg', image_default_name: 'origin.jpg', is_custom: '0', is_mobile: '0', is_package: '0', tpl_id: 'base', tpl_content: {base: {images: {'1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali_mobile: {url: ['http://image.smartisanos.cn/resource/98521dbfe1dd1e67db3f7ca21e76c9ef.jpg'], width: 2440, height: 14e3, piece_height: 1440, pieces_num: 10}, ali: {url: ['http://image.smartisanos.cn/resource/98521dbfe1dd1e67db3f7ca21e76c9ef.jpg'], width: 2440, height: 14e3, piece_height: 1440, pieces_num: 10}}, attributes: [{title: '', list: [{name: '', value: ''}]}], aftersale: [{title: '', content: ''}], extra: [{title: '', content: ''}]}}, doodle_stage: '99'}, attr_info: {1: {spec_id: '1', spec_name: '颜色', value: '红色', spec_value_id: '35'}}, created_at: 1492484266e3, updated_at: 1497410146e3}, {id: 100027102, price: 49, name: '坚果 Pro 软胶保护套(黑色)', spu_id: 1000271, sale_status: 3, product_info: {goods_name: '坚果 Pro 软胶保护套(黑色)', goods_code: '100027102', barcode: '6970643021196', sapcode: 'ACC200005ABS', package_type: '0', product_code: '1000271', product_name: '坚果 Pro 软胶保护套', is_mobile: 0, is_insurance: 0, goods_type: '0', is_package: !1, package_goods: []}, shop_info: {title: '坚果 Pro 软胶保护套', sub_title: 'TPU 环保材质、耐磨、耐油、耐久性强', promo_title: '', limit_num: '5', spec_v2: [{spec_id: '1', spec_name: '颜色', visiable: '0', show_type: '2', spec_values: [{id: '35', spec_id: '1', item_value: '红色', show_name: '红色', image: 'attr/v2/1000271/948F029DCF134EF23267994487994DA5/'}, {id: '36', spec_id: '1', item_value: '黑色', show_name: '黑色', image: 'attr/v2/1000271/649AD35E36A9703BACBE1555AEB6D266/'}, {id: '41', spec_id: '1', item_value: '咖啡色', show_name: '巧克力色', image: 'attr/v2/1000271/07BAF8C0EF046224A84B593DEEBC869E/'}, {id: '207', spec_id: '1', item_value: '浅金色', show_name: '浅金色', image: 'attr/v2/1000271/52317E0C067C97FC6CE9376A2432CFFF/'}], image_pre: 'http://img01.smartisanos.cn/', image_name: 'origin.jpg'}], spec_json: [{spec_id: '1', spec_value_id: '36', show_name: '黑色', image: 'attr/v2/1000271/649AD35E36A9703BACBE1555AEB6D266/'}], buy_notes: [], images: null, image: null, ali_images: ['http://image.smartisanos.cn/resource/554da94d8e4f84f03e0015fd1c997f46.jpg', 'http://image.smartisanos.cn/resource/01f25111e1a2c238a0f77e84aebd0796.jpg', 'http://image.smartisanos.cn/resource/2841709c21ef07616f621fd863dcf2f3.jpg', 'http://image.smartisanos.cn/resource/1b6fd01e415c380947cd98f62fa44817.jpg', 'http://image.smartisanos.cn/resource/9e40a858dff00faa2f139587b7085249.jpg'], ali_image: 'http://image.smartisanos.cn/resource/554da94d8e4f84f03e0015fd1c997f46.jpg', image_default_name: 'origin.jpg', is_custom: '0', is_mobile: '0', is_package: '0', tpl_id: 'base', tpl_content: {base: {images: {'1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali_mobile: {url: ['http://image.smartisanos.cn/resource/98521dbfe1dd1e67db3f7ca21e76c9ef.jpg'], width: 2440, height: 14e3, piece_height: 1440, pieces_num: 10}, ali: {url: ['http://image.smartisanos.cn/resource/98521dbfe1dd1e67db3f7ca21e76c9ef.jpg'], width: 2440, height: 14e3, piece_height: 1440, pieces_num: 10}}, attributes: [{title: '', list: [{name: '', value: ''}]}], aftersale: [{title: '', content: ''}], extra: [{title: '', content: ''}]}}, doodle_stage: '99'}, attr_info: {1: {spec_id: '1', spec_name: '颜色', value: '黑色', spec_value_id: '36'}}, created_at: 1492484266e3, updated_at: 1497410146e3}, {id: 100027103, price: 49, name: '坚果 Pro 软胶保护套(巧克力色)', spu_id: 1000271, sale_status: 3, product_info: {goods_name: '坚果 Pro 软胶保护套(巧克力色)', goods_code: '100027103', barcode: '6970643021172', sapcode: 'ACC200005AMS', package_type: '0', product_code: '1000271', product_name: '坚果 Pro 软胶保护套', is_mobile: 0, is_insurance: 0, goods_type: '0', is_package: !1, package_goods: []}, shop_info: {title: '坚果 Pro 软胶保护套', sub_title: 'TPU 环保材质、耐磨、耐油、耐久性强', promo_title: '', limit_num: '5', spec_v2: [{spec_id: '1', spec_name: '颜色', visiable: '0', show_type: '2', spec_values: [{id: '35', spec_id: '1', item_value: '红色', show_name: '红色', image: 'attr/v2/1000271/948F029DCF134EF23267994487994DA5/'}, {id: '36', spec_id: '1', item_value: '黑色', show_name: '黑色', image: 'attr/v2/1000271/649AD35E36A9703BACBE1555AEB6D266/'}, {id: '41', spec_id: '1', item_value: '咖啡色', show_name: '巧克力色', image: 'attr/v2/1000271/07BAF8C0EF046224A84B593DEEBC869E/'}, {id: '207', spec_id: '1', item_value: '浅金色', show_name: '浅金色', image: 'attr/v2/1000271/52317E0C067C97FC6CE9376A2432CFFF/'}], image_pre: 'http://img01.smartisanos.cn/', image_name: 'origin.jpg'}], spec_json: [{spec_id: '1', spec_value_id: '41', show_name: '巧克力色', image: 'attr/v2/1000271/07BAF8C0EF046224A84B593DEEBC869E/'}], buy_notes: [], images: null, image: null, ali_images: ['http://image.smartisanos.cn/resource/84b58718b8f8da3c08e0931e19fdc62e.png', 'http://image.smartisanos.cn/resource/cf8a5f1de06e47d726f0a63566a0ad92.jpg', 'http://image.smartisanos.cn/resource/67b870558df49c45d0471bf9c20168bb.jpg', 'http://image.smartisanos.cn/resource/f3723c1a4ce684f63f1c110743818885.jpg', 'http://image.smartisanos.cn/resource/9f6816add135bf15a6d8018efde77b14.jpg'], ali_image: 'http://image.smartisanos.cn/resource/84b58718b8f8da3c08e0931e19fdc62e.png', image_default_name: 'origin.jpg', is_custom: '0', is_mobile: '0', is_package: '0', tpl_id: 'base', tpl_content: {base: {images: {'1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali_mobile: {url: ['http://image.smartisanos.cn/resource/98521dbfe1dd1e67db3f7ca21e76c9ef.jpg'], width: 2440, height: 14e3, piece_height: 1440, pieces_num: 10}, ali: {url: ['http://image.smartisanos.cn/resource/98521dbfe1dd1e67db3f7ca21e76c9ef.jpg'], width: 2440, height: 14e3, piece_height: 1440, pieces_num: 10}}, attributes: [{title: '', list: [{name: '', value: ''}]}], aftersale: [{title: '', content: ''}], extra: [{title: '', content: ''}]}}, doodle_stage: '99'}, attr_info: {1: {spec_id: '1', spec_name: '颜色', value: '咖啡色', spec_value_id: '41'}}, created_at: 1492484266e3, updated_at: 1497410146e3}, {id: 100027104, price: 49, name: '坚果 Pro 软胶保护套(浅金色)', spu_id: 1000271, sale_status: 3, product_info: {goods_name: '坚果 Pro 软胶保护套(浅金色)', goods_code: '100027104', barcode: '6970643021189', sapcode: 'ACC200005ACS', package_type: '0', product_code: '1000271', product_name: '坚果 Pro 软胶保护套', is_mobile: 0, is_insurance: 0, goods_type: '0', is_package: !1, package_goods: []}, shop_info: {title: '坚果 Pro 软胶保护套', sub_title: 'TPU 环保材质、耐磨、耐油、耐久性强', promo_title: '', limit_num: '5', spec_v2: [{spec_id: '1', spec_name: '颜色', visiable: '0', show_type: '2', spec_values: [{id: '35', spec_id: '1', item_value: '红色', show_name: '红色', image: 'attr/v2/1000271/948F029DCF134EF23267994487994DA5/'}, {id: '36', spec_id: '1', item_value: '黑色', show_name: '黑色', image: 'attr/v2/1000271/649AD35E36A9703BACBE1555AEB6D266/'}, {id: '41', spec_id: '1', item_value: '咖啡色', show_name: '巧克力色', image: 'attr/v2/1000271/07BAF8C0EF046224A84B593DEEBC869E/'}, {id: '207', spec_id: '1', item_value: '浅金色', show_name: '浅金色', image: 'attr/v2/1000271/52317E0C067C97FC6CE9376A2432CFFF/'}], image_pre: 'http://img01.smartisanos.cn/', image_name: 'origin.jpg'}], spec_json: [{spec_id: '1', spec_value_id: '207', show_name: '浅金色', image: 'attr/v2/1000271/52317E0C067C97FC6CE9376A2432CFFF/'}], buy_notes: [], images: null, image: null, ali_images: ['http://image.smartisanos.cn/resource/b20055215ae3db0f2c8b7ba4db68866f.png', 'http://image.smartisanos.cn/resource/29ab28a5b6b9ffe2a03c32580dbc4309.jpg', 'http://image.smartisanos.cn/resource/1aa0b641eaa31f06c875d37259cdbedd.jpg', 'http://image.smartisanos.cn/resource/d370f3afd3d65dd8f16e89f3124b9915.jpg', 'http://image.smartisanos.cn/resource/5d08ab8393986c9337f329f09070091b.jpg'], ali_image: 'http://image.smartisanos.cn/resource/b20055215ae3db0f2c8b7ba4db68866f.png', image_default_name: 'origin.jpg', is_custom: '0', is_mobile: '0', is_package: '0', tpl_id: 'base', tpl_content: {base: {images: {'1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali_mobile: {url: ['http://image.smartisanos.cn/resource/98521dbfe1dd1e67db3f7ca21e76c9ef.jpg'], width: 2440, height: 14e3, piece_height: 1440, pieces_num: 10}, ali: {url: ['http://image.smartisanos.cn/resource/98521dbfe1dd1e67db3f7ca21e76c9ef.jpg'], width: 2440, height: 14e3, piece_height: 1440, pieces_num: 10}}, attributes: [{title: '', list: [{name: '', value: ''}]}], aftersale: [{title: '', content: ''}], extra: [{title: '', content: ''}]}}, doodle_stage: '99'}, attr_info: {1: {spec_id: '1', spec_name: '颜色', value: '浅金色', spec_value_id: '207'}}, created_at: 1494387839e3, updated_at: 1497410146e3}], in_stock: !0}, {id: 100026801, price: 19, name: 'Smartisan 耳机转接头(白色)', spu_id: 1000268, sale_status: 3, product_info: {goods_name: 'Smartisan 耳机转接头(白色)', goods_code: '100026801', barcode: '6970643021288', sapcode: 'ACC100005AWK', package_type: '0', product_code: '1000268', product_name: 'Smartisan 耳机转接头', is_mobile: 0, is_insurance: 0, goods_type: '0', is_package: !1, package_goods: []}, shop_info: {title: 'Smartisan 耳机转接头', sub_title: '即插即用、全面兼容', promo_title: '', limit_num: '5', spec_v2: [{spec_id: '1', spec_name: '颜色', visiable: '0', show_type: '2', spec_values: [{id: '37', spec_id: '1', item_value: '白色', show_name: '白色', image: 'attr/v2/1000268/E647E77234F9ED0FDE9DD4084D35FF57/'}], image_pre: 'http://img01.smartisanos.cn/', image_name: 'origin.jpg'}], spec_json: [{spec_id: '1', spec_value_id: '37', show_name: '白色', image: 'attr/v2/1000268/E647E77234F9ED0FDE9DD4084D35FF57/'}], buy_notes: [], images: null, image: null, ali_images: ['http://image.smartisanos.cn/resource/1dddddf6488ba89d592a37e9db93ffa2.jpg', 'http://image.smartisanos.cn/resource/6c0f0d0a3daf70ae3008210a8834035f.jpg', 'http://image.smartisanos.cn/resource/b896eb8a621c2ab201c622860d23c138.jpg', 'http://image.smartisanos.cn/resource/561c002e74f6a5982dfaf3b4a44c9af4.jpg'], ali_image: 'http://image.smartisanos.cn/resource/1dddddf6488ba89d592a37e9db93ffa2.jpg', image_default_name: 'origin.jpg', is_custom: '0', is_mobile: '0', is_package: '0', tpl_id: 'base', tpl_content: {base: {images: {'1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali: {url: 'http://image.smartisanos.cn/resource/586f7bfcf88f14935918943bb0421c26.jpg', width: 1220, height: 4715, piece_height: 1440, pieces_num: 4}, ali_mobile: {url: 'http://image.smartisanos.cn/resource/586f7bfcf88f14935918943bb0421c26.jpg', width: 1220, height: 4715, piece_height: 1440, pieces_num: 4}}, attributes: [{title: '', list: [{name: '', value: ''}]}], aftersale: [{title: '', content: ''}], extra: [{title: '', content: ''}]}}, doodle_stage: '99'}, attr_info: {1: {spec_id: '1', spec_name: '颜色', value: '白色', spec_value_id: '37'}}, created_at: 1492420907e3, updated_at: 1495784909e3, sku_list: [{id: 100026801, price: 19, name: 'Smartisan 耳机转接头(白色)', spu_id: 1000268, sale_status: 3, product_info: {goods_name: 'Smartisan 耳机转接头(白色)', goods_code: '100026801', barcode: '6970643021288', sapcode: 'ACC100005AWK', package_type: '0', product_code: '1000268', product_name: 'Smartisan 耳机转接头', is_mobile: 0, is_insurance: 0, goods_type: '0', is_package: !1, package_goods: []}, shop_info: {title: 'Smartisan 耳机转接头', sub_title: '即插即用、全面兼容', promo_title: '', limit_num: '5', spec_v2: [{spec_id: '1', spec_name: '颜色', visiable: '0', show_type: '2', spec_values: [{id: '37', spec_id: '1', item_value: '白色', show_name: '白色', image: 'attr/v2/1000268/E647E77234F9ED0FDE9DD4084D35FF57/'}], image_pre: 'http://img01.smartisanos.cn/', image_name: 'origin.jpg'}], spec_json: [{spec_id: '1', spec_value_id: '37', show_name: '白色', image: 'attr/v2/1000268/E647E77234F9ED0FDE9DD4084D35FF57/'}], buy_notes: [], images: null, image: null, ali_images: ['http://image.smartisanos.cn/resource/1dddddf6488ba89d592a37e9db93ffa2.jpg', 'http://image.smartisanos.cn/resource/6c0f0d0a3daf70ae3008210a8834035f.jpg', 'http://image.smartisanos.cn/resource/b896eb8a621c2ab201c622860d23c138.jpg', 'http://image.smartisanos.cn/resource/561c002e74f6a5982dfaf3b4a44c9af4.jpg'], ali_image: 'http://image.smartisanos.cn/resource/1dddddf6488ba89d592a37e9db93ffa2.jpg', image_default_name: 'origin.jpg', is_custom: '0', is_mobile: '0', is_package: '0', tpl_id: 'base', tpl_content: {base: {images: {'1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali: {url: 'http://image.smartisanos.cn/resource/586f7bfcf88f14935918943bb0421c26.jpg', width: 1220, height: 4715, piece_height: 1440, pieces_num: 4}, ali_mobile: {url: 'http://image.smartisanos.cn/resource/586f7bfcf88f14935918943bb0421c26.jpg', width: 1220, height: 4715, piece_height: 1440, pieces_num: 4}}, attributes: [{title: '', list: [{name: '', value: ''}]}], aftersale: [{title: '', content: ''}], extra: [{title: '', content: ''}]}}, doodle_stage: '99'}, attr_info: {1: {spec_id: '1', spec_name: '颜色', value: '白色', spec_value_id: '37'}}, created_at: 1492420907e3, updated_at: 1495784909e3}], in_stock: !0}, {id: 100026701, price: 59, name: 'Smartisan 原装快充充电器 18W(白色)', spu_id: 1000267, sale_status: 3, product_info: {goods_name: 'Smartisan 原装快充充电器 18W(白色)', goods_code: '100026701', barcode: '6970643021332', sapcode: 'ACC120002AWR', package_type: '0', product_code: '1000267', product_name: 'Smartisan 原装快充充电器 18W', is_mobile: 0, is_insurance: 0, goods_type: '0', is_package: !1, package_goods: []}, shop_info: {title: 'Smartisan 原装快充充电器 18W', sub_title: '18W 安全快充、支持主流 QC3.0, MTK PE+2.0 快充协议', promo_title: '', limit_num: '5', spec_v2: [{spec_id: '1', spec_name: '颜色', visiable: '0', show_type: '2', spec_values: [{id: '37', spec_id: '1', item_value: '白色', show_name: '白色', image: 'attr/v2/1000267/E647E77234F9ED0FDE9DD4084D35FF57/'}], image_pre: 'http://img01.smartisanos.cn/', image_name: 'origin.jpg'}], spec_json: [{spec_id: '1', spec_value_id: '37', show_name: '白色', image: 'attr/v2/1000267/E647E77234F9ED0FDE9DD4084D35FF57/'}], buy_notes: [], images: null, image: null, ali_images: ['http://image.smartisanos.cn/resource/dc53bd870ee64d2053ecc51750ece43a.jpg', 'http://image.smartisanos.cn/resource/1047f5f47f3e825210ddcb745e5772a9.jpg', 'http://image.smartisanos.cn/resource/47461596fad00d37cb7a032a03d79286.jpg', 'http://image.smartisanos.cn/resource/f4f6346bea727862087b4761fc8b01d2.jpg', 'http://image.smartisanos.cn/resource/0286c84dba36577f37591f1af2b97402.jpg'], ali_image: 'http://image.smartisanos.cn/resource/dc53bd870ee64d2053ecc51750ece43a.jpg', image_default_name: 'origin.jpg', is_custom: '0', is_mobile: '0', is_package: '0', tpl_id: 'base', tpl_content: {base: {images: {'1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali: {url: 'http://image.smartisanos.cn/resource/4a7b87fe01ec8339985702ee922d205a.jpg', width: 1220, height: 4526, piece_height: 1440, pieces_num: 4}, ali_mobile: {url: 'http://image.smartisanos.cn/resource/4a7b87fe01ec8339985702ee922d205a.jpg', width: 1220, height: 4526, piece_height: 1440, pieces_num: 4}}, attributes: [{title: '', list: [{name: '', value: ''}]}], aftersale: [{title: '', content: ''}], extra: [{title: '', content: ''}]}}, doodle_stage: '99'}, attr_info: {1: {spec_id: '1', spec_name: '颜色', value: '白色', spec_value_id: '37'}}, created_at: 149242042e4, updated_at: 1495627685e3, sku_list: [{id: 100026701, price: 59, name: 'Smartisan 原装快充充电器 18W(白色)', spu_id: 1000267, sale_status: 3, product_info: {goods_name: 'Smartisan 原装快充充电器 18W(白色)', goods_code: '100026701', barcode: '6970643021332', sapcode: 'ACC120002AWR', package_type: '0', product_code: '1000267', product_name: 'Smartisan 原装快充充电器 18W', is_mobile: 0, is_insurance: 0, goods_type: '0', is_package: !1, package_goods: []}, shop_info: {title: 'Smartisan 原装快充充电器 18W', sub_title: '18W 安全快充、支持主流 QC3.0, MTK PE+2.0 快充协议', promo_title: '', limit_num: '5', spec_v2: [{spec_id: '1', spec_name: '颜色', visiable: '0', show_type: '2', spec_values: [{id: '37', spec_id: '1', item_value: '白色', show_name: '白色', image: 'attr/v2/1000267/E647E77234F9ED0FDE9DD4084D35FF57/'}], image_pre: 'http://img01.smartisanos.cn/', image_name: 'origin.jpg'}], spec_json: [{spec_id: '1', spec_value_id: '37', show_name: '白色', image: 'attr/v2/1000267/E647E77234F9ED0FDE9DD4084D35FF57/'}], buy_notes: [], images: null, image: null, ali_images: ['http://image.smartisanos.cn/resource/dc53bd870ee64d2053ecc51750ece43a.jpg', 'http://image.smartisanos.cn/resource/1047f5f47f3e825210ddcb745e5772a9.jpg', 'http://image.smartisanos.cn/resource/47461596fad00d37cb7a032a03d79286.jpg', 'http://image.smartisanos.cn/resource/f4f6346bea727862087b4761fc8b01d2.jpg', 'http://image.smartisanos.cn/resource/0286c84dba36577f37591f1af2b97402.jpg'], ali_image: 'http://image.smartisanos.cn/resource/dc53bd870ee64d2053ecc51750ece43a.jpg', image_default_name: 'origin.jpg', is_custom: '0', is_mobile: '0', is_package: '0', tpl_id: 'base', tpl_content: {base: {images: {'1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali: {url: 'http://image.smartisanos.cn/resource/4a7b87fe01ec8339985702ee922d205a.jpg', width: 1220, height: 4526, piece_height: 1440, pieces_num: 4}, ali_mobile: {url: 'http://image.smartisanos.cn/resource/4a7b87fe01ec8339985702ee922d205a.jpg', width: 1220, height: 4526, piece_height: 1440, pieces_num: 4}}, attributes: [{title: '', list: [{name: '', value: ''}]}], aftersale: [{title: '', content: ''}], extra: [{title: '', content: ''}]}}, doodle_stage: '99'}, attr_info: {1: {spec_id: '1', spec_name: '颜色', value: '白色', spec_value_id: '37'}}, created_at: 149242042e4, updated_at: 1495627685e3}], in_stock: !0}, {id: 100026601, price: 39, name: 'Smartisan 原装 Type-C 数据线(白色)', spu_id: 1000266, sale_status: 3, product_info: {goods_name: 'Smartisan 原装 Type-C 数据线(白色)', goods_code: '100026601', barcode: '6970643021349', sapcode: 'ACC100006AWK', package_type: '0', product_code: '1000266', product_name: 'Smartisan 原装 Type-C 数据线', is_mobile: 0, is_insurance: 0, goods_type: '0', is_package: !1, package_goods: []}, shop_info: {title: 'Smartisan 原装 Type-C 数据线', sub_title: 'PTC 过温保护、凹形设计、TPE 环保材质', promo_title: '', limit_num: '5', spec_v2: [{spec_id: '1', spec_name: '颜色', visiable: '0', show_type: '2', spec_values: [{id: '37', spec_id: '1', item_value: '白色', show_name: '白色', image: 'attr/v2/1000266/E647E77234F9ED0FDE9DD4084D35FF57/'}], image_pre: 'http://img01.smartisanos.cn/', image_name: 'origin.jpg'}], spec_json: [{spec_id: '1', spec_value_id: '37', show_name: '白色', image: 'attr/v2/1000266/E647E77234F9ED0FDE9DD4084D35FF57/'}], buy_notes: [], images: null, image: null, ali_images: ['http://image.smartisanos.cn/resource/c79a73ffc6f8e782160d978f49f543dc.jpg', 'http://image.smartisanos.cn/resource/85dcf195cfd5d3f5e18e6c04902ab827.jpg', 'http://image.smartisanos.cn/resource/bb86aab0a22550515c4dd1ea4261f047.jpg', 'http://image.smartisanos.cn/resource/84160bf185d10d8f6250b503e38993c3.jpg', 'http://image.smartisanos.cn/resource/0db3ed8368c13b626e5f3f16b93eaeae.jpg'], ali_image: 'http://image.smartisanos.cn/resource/c79a73ffc6f8e782160d978f49f543dc.jpg', image_default_name: 'origin.jpg', is_custom: '0', is_mobile: '0', is_package: '0', tpl_id: 'base', tpl_content: {base: {images: {'1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali: {url: 'http://image.smartisanos.cn/resource/b3d7b420e3e609e858a8d75f19cbfd7c.jpg', width: 1220, height: 4829, piece_height: 1440, pieces_num: 4}, ali_mobile: {url: 'http://image.smartisanos.cn/resource/b3d7b420e3e609e858a8d75f19cbfd7c.jpg', width: 1220, height: 4829, piece_height: 1440, pieces_num: 4}}, attributes: [{title: '', list: [{name: '', value: ''}]}], aftersale: [{title: '', content: ''}], extra: [{title: '', content: ''}]}}, doodle_stage: '99'}, attr_info: {1: {spec_id: '1', spec_name: '颜色', value: '白色', spec_value_id: '37'}}, created_at: 149215424e4, updated_at: 1495784909e3, sku_list: [{id: 100026601, price: 39, name: 'Smartisan 原装 Type-C 数据线(白色)', spu_id: 1000266, sale_status: 3, product_info: {goods_name: 'Smartisan 原装 Type-C 数据线(白色)', goods_code: '100026601', barcode: '6970643021349', sapcode: 'ACC100006AWK', package_type: '0', product_code: '1000266', product_name: 'Smartisan 原装 Type-C 数据线', is_mobile: 0, is_insurance: 0, goods_type: '0', is_package: !1, package_goods: []}, shop_info: {title: 'Smartisan 原装 Type-C 数据线', sub_title: 'PTC 过温保护、凹形设计、TPE 环保材质', promo_title: '', limit_num: '5', spec_v2: [{spec_id: '1', spec_name: '颜色', visiable: '0', show_type: '2', spec_values: [{id: '37', spec_id: '1', item_value: '白色', show_name: '白色', image: 'attr/v2/1000266/E647E77234F9ED0FDE9DD4084D35FF57/'}], image_pre: 'http://img01.smartisanos.cn/', image_name: 'origin.jpg'}], spec_json: [{spec_id: '1', spec_value_id: '37', show_name: '白色', image: 'attr/v2/1000266/E647E77234F9ED0FDE9DD4084D35FF57/'}], buy_notes: [], images: null, image: null, ali_images: ['http://image.smartisanos.cn/resource/c79a73ffc6f8e782160d978f49f543dc.jpg', 'http://image.smartisanos.cn/resource/85dcf195cfd5d3f5e18e6c04902ab827.jpg', 'http://image.smartisanos.cn/resource/bb86aab0a22550515c4dd1ea4261f047.jpg', 'http://image.smartisanos.cn/resource/84160bf185d10d8f6250b503e38993c3.jpg', 'http://image.smartisanos.cn/resource/0db3ed8368c13b626e5f3f16b93eaeae.jpg'], ali_image: 'http://image.smartisanos.cn/resource/c79a73ffc6f8e782160d978f49f543dc.jpg', image_default_name: 'origin.jpg', is_custom: '0', is_mobile: '0', is_package: '0', tpl_id: 'base', tpl_content: {base: {images: {'1x': [], '2x': [], mobile: [], image_pre: '', image_name: '', ali: {url: 'http://image.smartisanos.cn/resource/b3d7b420e3e609e858a8d75f19cbfd7c.jpg', width: 1220, height: 4829, piece_height: 1440, pieces_num: 4}, ali_mobile: {url: 'http://image.smartisanos.cn/resource/b3d7b420e3e609e858a8d75f19cbfd7c.jpg', width: 1220, height: 4829, piece_height: 1440, pieces_num: 4}}, attributes: [{title: '', list: [{name: '', value: ''}]}], aftersale: [{title: '', content: ''}], extra: [{title: '', content: ''}]}}, doodle_stage: '99'}, attr_info: {1: {spec_id: '1', spec_name: '颜色', value: '白色', spec_value_id: '37'}}, created_at: 149215424e4, updated_at: 1495784909e3}], in_stock: !0}]
+
+export default itemsData
\ No newline at end of file
diff --git a/Vue-shopping/src/lib/newGoodsData.js b/Vue-shopping/src/lib/newGoodsData.js
new file mode 100644
index 0000000..c7b54a5
--- /dev/null
+++ b/Vue-shopping/src/lib/newGoodsData.js
@@ -0,0 +1,139 @@
+let goodsData = [
+ [{
+ "id": 1000271,
+ "name": "坚果 Pro 软胶保护套",
+ "name_title": "TPU 环保材质、耐磨、耐油、耐久性强",
+ "price": 49,
+ "sku_info": [{
+ "sku_id": 100027101,
+ "title": "坚果 Pro 软胶保护套",
+ "sub_title": "TPU 环保材质、耐磨、耐油、耐久性强",
+ "ali_image": "http://image.smartisanos.cn/resource/902befd5f32a8caf4ca79b55d39ee25a.jpg",
+ "price": 49,
+ "limit_num": 5,
+ "spec_json": {
+ "image": "attr/v2/1000271/948F029DCF134EF23267994487994DA5/",
+ "show_name": "红色"
+ }
+ },{
+ "sku_id": 100027102,
+ "title": "坚果 Pro 软胶保护套",
+ "sub_title": "TPU 环保材质、耐磨、耐油、耐久性强",
+ "ali_image": "http://image.smartisanos.cn/resource/554da94d8e4f84f03e0015fd1c997f46.jpg",
+ "price": 49,
+ "limit_num": 5,
+ "spec_json": {
+ "image": "attr/v2/1000271/649AD35E36A9703BACBE1555AEB6D266/",
+ "show_name": "黑色"
+ }
+ },{
+ "sku_id": 100027103,
+ "title": "坚果 Pro 软胶保护套",
+ "sub_title": "TPU 环保材质、耐磨、耐油、耐久性强",
+ "ali_image": "http://image.smartisanos.cn/resource/84b58718b8f8da3c08e0931e19fdc62e.png",
+ "price": 49,
+ "limit_num": 5,
+ "spec_json": {
+ "image": "attr/v2/1000271/07BAF8C0EF046224A84B593DEEBC869E/",
+ "show_name": "巧克力色"
+ }
+ },{
+ "sku_id": 100027104,
+ "title": "坚果 Pro 软胶保护套",
+ "sub_title": "TPU 环保材质、耐磨、耐油、耐久性强",
+ "ali_image": "http://image.smartisanos.cn/resource/b20055215ae3db0f2c8b7ba4db68866f.png",
+ "price": 49,
+ "limit_num": 5,
+ "spec_json": {
+ "image": "attr/v2/1000271/52317E0C067C97FC6CE9376A2432CFFF/",
+ "show_name": "浅金色"
+ }
+ }]
+ },{
+ "id": 1000299,
+ "name": "Smartisan 快充移动电源 10000mAh",
+ "name_title": "10000mAh 双向快充、轻盈便携、高标准安全保护",
+ "price": 199,
+ "sku_info": [{
+ "sku_id": 100029901,
+ "title": "Smartisan 快充移动电源 10000mAh",
+ "sub_title": "10000mAh 双向快充、轻盈便携、高标准安全保护",
+ "ali_image": "http://image.smartisanos.cn/resource/ae40a16324658c192c7361d829f603bd.jpg",
+ "price": 199,
+ "limit_num": 1,
+ "spec_json": {
+ "image": "attr/v2/1000299/B37F37544921114CEF1EC01ED4DF44E4/",
+ "show_name": "灰色"
+ }
+ }]
+ }
+],[{
+ "id": 1000271,
+ "name": "坚果 Pro 手机",
+ "name_title": "TPU 环保材质、耐磨、耐油、耐久性强",
+ "price": 49,
+ "sku_info": [{
+ "sku_id": 100027101,
+ "title": "坚果 Pro 手机",
+ "sub_title": "TPU 环保材质、耐磨、耐油、耐久性强",
+ "ali_image": "http://image.smartisanos.cn/resource/902befd5f32a8caf4ca79b55d39ee25a.jpg",
+ "price": 49,
+ "limit_num": 5,
+ "spec_json": {
+ "image": "attr/v2/1000271/948F029DCF134EF23267994487994DA5/",
+ "show_name": "红色"
+ }
+ },{
+ "sku_id": 100027102,
+ "title": "坚果 Pro 手机",
+ "sub_title": "TPU 环保材质、耐磨、耐油、耐久性强",
+ "ali_image": "http://image.smartisanos.cn/resource/554da94d8e4f84f03e0015fd1c997f46.jpg",
+ "price": 49,
+ "limit_num": 5,
+ "spec_json": {
+ "image": "attr/v2/1000271/649AD35E36A9703BACBE1555AEB6D266/",
+ "show_name": "黑色"
+ }
+ },{
+ "sku_id": 100027103,
+ "title": "坚果 Pro 手机",
+ "sub_title": "TPU 环保材质、耐磨、耐油、耐久性强",
+ "ali_image": "http://image.smartisanos.cn/resource/84b58718b8f8da3c08e0931e19fdc62e.png",
+ "price": 49,
+ "limit_num": 5,
+ "spec_json": {
+ "image": "attr/v2/1000271/07BAF8C0EF046224A84B593DEEBC869E/",
+ "show_name": "巧克力色"
+ }
+ },{
+ "sku_id": 100027104,
+ "title": "坚果 Pro 手机",
+ "sub_title": "TPU 环保材质、耐磨、耐油、耐久性强",
+ "ali_image": "http://image.smartisanos.cn/resource/b20055215ae3db0f2c8b7ba4db68866f.png",
+ "price": 49,
+ "limit_num": 5,
+ "spec_json": {
+ "image": "attr/v2/1000271/52317E0C067C97FC6CE9376A2432CFFF/",
+ "show_name": "浅金色"
+ }
+ }]
+},{
+ "id": 1000299,
+ "name": "Smartisan 手机 10000mAh",
+ "name_title": "10000mAh 双向快充、轻盈便携、高标准安全保护",
+ "price": 199,
+ "sku_info": [{
+ "sku_id": 100029901,
+ "title": "Smartisan 手机 10000mAh",
+ "sub_title": "10000mAh 双向快充、轻盈便携、高标准安全保护",
+ "ali_image": "http://image.smartisanos.cn/resource/ae40a16324658c192c7361d829f603bd.jpg",
+ "price": 199,
+ "limit_num": 1,
+ "spec_json": {
+ "image": "attr/v2/1000299/B37F37544921114CEF1EC01ED4DF44E4/",
+ "show_name": "灰色"
+ }
+ }]
+}]]
+
+export default goodsData
diff --git a/Vue-shopping/src/lib/newItemsData.js b/Vue-shopping/src/lib/newItemsData.js
new file mode 100644
index 0000000..1a6d5b9
--- /dev/null
+++ b/Vue-shopping/src/lib/newItemsData.js
@@ -0,0 +1,184 @@
+let itemsData = [{
+ "sku_id": 100027101,
+ "title": "坚果 Pro 软胶保护套",
+ "sub_title": "TPU 环保材质、耐磨、耐油、耐久性强",
+ "ali_image": "http://image.smartisanos.cn/resource/902befd5f32a8caf4ca79b55d39ee25a.jpg",
+ "price": 49,
+ "limit_num": 5,
+ "spec_json": {
+ "image": "attr/v2/1000271/948F029DCF134EF23267994487994DA5/",
+ "show_name": "红色"
+ },
+ "ali_images": [
+ "http://image.smartisanos.cn/resource/902befd5f32a8caf4ca79b55d39ee25a.jpg",
+ "http://image.smartisanos.cn/resource/ca760e50409c796a4e770c54554f92bf.jpg",
+ "http://image.smartisanos.cn/resource/493c65d42fe83ec3daaf058d79fc1a95.jpg",
+ "http://image.smartisanos.cn/resource/0bf30081dd17431c4fdfbd237c53743f.jpg",
+ "http://image.smartisanos.cn/resource/cba7b4cdb2fc41d7f29fb45d94972e41.jpg"
+ ],
+ "sku_list": [{
+ "id": 100027101,
+ "image": "attr/v2/1000271/948F029DCF134EF23267994487994DA5/",
+ "limit_num": 5,
+ "color": "红色"
+ },{
+ "id": 100027102,
+ "image": "attr/v2/1000271/649AD35E36A9703BACBE1555AEB6D266/",
+ "limit_num": 5,
+ "color": "黑色"
+ },{
+ "id": 100027103,
+ "image": "attr/v2/1000271/07BAF8C0EF046224A84B593DEEBC869E/",
+ "limit_num": 5,
+ "color": "巧克力色"
+ },{
+ "id": 100027104,
+ "image": "attr/v2/1000271/52317E0C067C97FC6CE9376A2432CFFF/",
+ "limit_num": 5,
+ "color": "浅金色"
+ }]
+},{
+ "sku_id": 100027102,
+ "title": "坚果 Pro 软胶保护套",
+ "sub_title": "TPU 环保材质、耐磨、耐油、耐久性强",
+ "ali_image": "http://image.smartisanos.cn/resource/554da94d8e4f84f03e0015fd1c997f46.jpg",
+ "price": 49,
+ "limit_num": 5,
+ "spec_json": {
+ "image": "attr/v2/1000271/649AD35E36A9703BACBE1555AEB6D266/",
+ "show_name": "黑色"
+ },
+ "ali_images": [
+ "http://image.smartisanos.cn/resource/554da94d8e4f84f03e0015fd1c997f46.jpg",
+ "http://image.smartisanos.cn/resource/01f25111e1a2c238a0f77e84aebd0796.jpg",
+ "http://image.smartisanos.cn/resource/2841709c21ef07616f621fd863dcf2f3.jpg",
+ "http://image.smartisanos.cn/resource/1b6fd01e415c380947cd98f62fa44817.jpg",
+ "http://image.smartisanos.cn/resource/9e40a858dff00faa2f139587b7085249.jpg"
+ ],
+ "sku_list": [{
+ "id": 100027101,
+ "image": "attr/v2/1000271/948F029DCF134EF23267994487994DA5/",
+ "limit_num": 5,
+ "color": "红色"
+ },{
+ "id": 100027102,
+ "image": "attr/v2/1000271/649AD35E36A9703BACBE1555AEB6D266/",
+ "limit_num": 5,
+ "color": "黑色"
+ },{
+ "id": 100027103,
+ "image": "attr/v2/1000271/07BAF8C0EF046224A84B593DEEBC869E/",
+ "limit_num": 5,
+ "color": "巧克力色"
+ },{
+ "id": 100027104,
+ "image": "attr/v2/1000271/52317E0C067C97FC6CE9376A2432CFFF/",
+ "limit_num": 5,
+ "color": "浅金色"
+ }]
+},{
+ "sku_id": 100027103,
+ "title": "坚果 Pro 软胶保护套",
+ "sub_title": "TPU 环保材质、耐磨、耐油、耐久性强",
+ "ali_image": "http://image.smartisanos.cn/resource/84b58718b8f8da3c08e0931e19fdc62e.png",
+ "price": 49,
+ "limit_num": 5,
+ "spec_json": {
+ "image": "attr/v2/1000271/07BAF8C0EF046224A84B593DEEBC869E/",
+ "show_name": "巧克力色"
+ },
+ "ali_images": [
+ "http://image.smartisanos.cn/resource/6d39130f5ad4bfe1241c0c17211472c2.jpg",
+ "http://image.smartisanos.cn/resource/5694eb55ad2777a87096677d9d39cc58.jpg",
+ "http://image.smartisanos.cn/resource/bffbb5411470d97a13f2f380006c96e4.jpg",
+ "http://image.smartisanos.cn/resource/701052c09e45bd4069d3f8280d0d1435.jpg",
+ "http://image.smartisanos.cn/resource/4fa7c5f81b02f71be4cae051ce547433.jpg"
+ ],
+ "sku_list": [{
+ "id": 100027101,
+ "image": "attr/v2/1000271/948F029DCF134EF23267994487994DA5/",
+ "limit_num": 5,
+ "color": "红色"
+ },{
+ "id": 100027102,
+ "image": "attr/v2/1000271/649AD35E36A9703BACBE1555AEB6D266/",
+ "limit_num": 5,
+ "color": "黑色"
+ },{
+ "id": 100027103,
+ "image": "attr/v2/1000271/07BAF8C0EF046224A84B593DEEBC869E/",
+ "limit_num": 5,
+ "color": "巧克力色"
+ },{
+ "id": 100027104,
+ "image": "attr/v2/1000271/52317E0C067C97FC6CE9376A2432CFFF/",
+ "limit_num": 5,
+ "color": "浅金色"
+ }]
+},{
+ "sku_id": 100027104,
+ "title": "坚果 Pro 软胶保护套",
+ "sub_title": "TPU 环保材质、耐磨、耐油、耐久性强",
+ "ali_image": "http://image.smartisanos.cn/resource/b20055215ae3db0f2c8b7ba4db68866f.png",
+ "price": 49,
+ "limit_num": 5,
+ "spec_json": {
+ "image": "attr/v2/1000271/52317E0C067C97FC6CE9376A2432CFFF/",
+ "show_name": "浅金色"
+ },
+ "ali_images": [
+ "http://image.smartisanos.cn/resource/46d4b1cc072c7daa0c69756ac62ab46e.jpg",
+ "http://image.smartisanos.cn/resource/e0d86a84c13b995fe87910324b3c7771.jpg",
+ "http://image.smartisanos.cn/resource/1febef151c00c073d65eb37f68b75faf.jpg",
+ "http://image.smartisanos.cn/resource/520666f8a84d92963320cf94bd74c05c.jpg",
+ "http://image.smartisanos.cn/resource/7087d8239dec31662978c4c44c8501ba.jpg"
+ ],
+ "sku_list": [{
+ "id": 100027101,
+ "image": "attr/v2/1000271/948F029DCF134EF23267994487994DA5/",
+ "limit_num": 5,
+ "color": "红色"
+ },{
+ "id": 100027102,
+ "image": "attr/v2/1000271/649AD35E36A9703BACBE1555AEB6D266/",
+ "limit_num": 5,
+ "color": "黑色"
+ },{
+ "id": 100027103,
+ "image": "attr/v2/1000271/07BAF8C0EF046224A84B593DEEBC869E/",
+ "limit_num": 5,
+ "color": "巧克力色"
+ },{
+ "id": 100027104,
+ "image": "attr/v2/1000271/52317E0C067C97FC6CE9376A2432CFFF/",
+ "limit_num": 5,
+ "color": "浅金色"
+ }]
+},{
+ "sku_id": 100029901,
+ "title": "Smartisan 快充移动电源 10000mAh",
+ "sub_title": "10000mAh 双向快充、轻盈便携、高标准安全保护",
+ "ali_image": "http://image.smartisanos.cn/resource/ae40a16324658c192c7361d829f603bd.jpg",
+ "price": 199,
+ "limit_num": 1,
+ "spec_json": {
+ "image": "attr/v2/1000299/B37F37544921114CEF1EC01ED4DF44E4/",
+ "show_name": "灰色"
+ },
+ "ali_images": [
+ "http://image.smartisanos.cn/resource/ae40a16324658c192c7361d829f603bd.jpg",
+ "http://image.smartisanos.cn/resource/0540778097a009364f2dcbb8c5286451.jpg",
+ "http://image.smartisanos.cn/resource/ed7ea75824124d7385c99d532f1d4f1d.jpg",
+ "http://image.smartisanos.cn/resource/40b8c1b1e5d175cc8fa9e7ff96cb6016.jpg",
+ "http://image.smartisanos.cn/resource/fb24dc3db26c6f02542e0dea9b10151b.jpg"
+ ],
+ "limit_num": 1,
+ "sku_list": [{
+ "id": 100029901,
+ "image": "attr/v2/1000299/B37F37544921114CEF1EC01ED4DF44E4/",
+ "limit_num": 1,
+ "color": "灰色",
+ }]
+}]
+
+export default itemsData
diff --git a/Vue-shopping/src/main.js b/Vue-shopping/src/main.js
new file mode 100644
index 0000000..14c85cb
--- /dev/null
+++ b/Vue-shopping/src/main.js
@@ -0,0 +1,21 @@
+// The Vue build version to load with the `import` command
+// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
+import Vue from 'vue'
+import App from './App'
+import router from './router'
+
+import store from './store'
+
+
+console.log(store)
+
+Vue.config.productionTip = false
+
+/* eslint-disable no-new */
+new Vue({
+ el: '#app',
+ router,
+ store,
+ template: ' ',
+ components: { App }
+})
diff --git a/Vue-shopping/src/plugins/axios.js b/Vue-shopping/src/plugins/axios.js
new file mode 100644
index 0000000..dacf195
--- /dev/null
+++ b/Vue-shopping/src/plugins/axios.js
@@ -0,0 +1,61 @@
+"use strict";
+
+import Vue from 'vue';
+import axios from "axios";
+
+// Full config: https://github.com/axios/axios#request-config
+// axios.defaults.baseURL = process.env.baseURL || process.env.apiUrl || '';
+// axios.defaults.headers.common['Authorization'] = AUTH_TOKEN;
+// axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
+
+let config = {
+ // baseURL: process.env.baseURL || process.env.apiUrl || ""
+ // timeout: 60 * 1000, // Timeout
+ // withCredentials: true, // Check cross-site Access-Control
+};
+
+const _axios = axios.create(config);
+
+_axios.interceptors.request.use(
+ function(config) {
+ // Do something before request is sent
+ return config;
+ },
+ function(error) {
+ // Do something with request error
+ return Promise.reject(error);
+ }
+);
+
+// Add a response interceptor
+_axios.interceptors.response.use(
+ function(response) {
+ // Do something with response data
+ return response;
+ },
+ function(error) {
+ // Do something with response error
+ return Promise.reject(error);
+ }
+);
+
+Plugin.install = function(Vue, options) {
+ Vue.axios = _axios;
+ window.axios = _axios;
+ Object.defineProperties(Vue.prototype, {
+ axios: {
+ get() {
+ return _axios;
+ }
+ },
+ $axios: {
+ get() {
+ return _axios;
+ }
+ },
+ });
+};
+
+Vue.use(Plugin)
+
+export default Plugin;
diff --git a/Vue-shopping/src/plugins/element.js b/Vue-shopping/src/plugins/element.js
new file mode 100644
index 0000000..c48a6ef
--- /dev/null
+++ b/Vue-shopping/src/plugins/element.js
@@ -0,0 +1,5 @@
+import Vue from 'vue'
+import Element from 'element-ui'
+import 'element-ui/lib/theme-chalk/index.css'
+
+Vue.use(Element)
diff --git a/Vue-shopping/src/plugins/iview.js b/Vue-shopping/src/plugins/iview.js
new file mode 100644
index 0000000..288007a
--- /dev/null
+++ b/Vue-shopping/src/plugins/iview.js
@@ -0,0 +1,6 @@
+import Vue from 'vue'
+import ViewUI from 'view-design'
+
+Vue.use(ViewUI)
+
+import 'view-design/dist/styles/iview.css'
diff --git a/Vue-shopping/src/router/index.js b/Vue-shopping/src/router/index.js
new file mode 100644
index 0000000..461f25c
--- /dev/null
+++ b/Vue-shopping/src/router/index.js
@@ -0,0 +1,95 @@
+import Vue from 'vue'
+import VueRouter from 'vue-router'
+import '@/assets/css/reset.css'
+import '@/assets/css/header.css'
+
+Vue.use(VueRouter)
+
+import Shop from '@/views/shop'
+import Item from '@/views/item'
+import Cart from '@/views/cart'
+import Checkout from '@/views/checkout'
+import Payment from '@/views/payment'
+import Account from '@/views/account'
+import Order from '@/views/account/order'
+import Address from '@/views/account/address'
+import user_login from "../views/user_login";
+import user_register from "../views/user_register";
+
+// export default new Router({
+// mode: 'history',
+// scrollBehavior (to, from, savePosition) {
+// if (savePosition) {
+// return savePosition
+// } else {
+// return {x: 0, y: 0}
+// }
+// },
+ const routes = [
+ {
+ path:'/',
+ redirect:'/user_login'
+ },
+ { path:'/user_login',
+ name:"Login",
+ component: user_login,
+ // redirect:'/Login',
+ // show:true,
+ // children:[
+ // {path: 'Login',component: Login}
+ // ]
+ },
+ { path:'/user_register',
+ name:"Register",
+ component: user_register
+ },
+ {
+ path: '/item',
+ name: 'Item',
+ component: Item
+ },
+ {
+ path: '/shop',
+ name: 'Shop',
+ component: Shop
+ },
+ {
+ path: '/cart',
+ name: 'Cart',
+ component: Cart
+ },
+ {
+ path: '/checkout',
+ name: 'Checkout',
+ component: Checkout
+ },
+ {
+ path: '/payment',
+ name: 'Payment',
+ component: Payment
+ },
+ {
+ path: '/account',
+ component: Account,
+ children: [
+ {
+ path: '/order',
+ name: 'Order',
+ component: Order
+ },
+ {
+ path: '/address',
+ name: 'Address',
+ component: Address
+ }
+ ]
+ }
+ ]
+// })
+const router = new VueRouter({
+ mode: 'history',
+ base: process.env.BASE_URL,
+ routes
+})
+
+export default router
diff --git a/Vue-shopping/src/store/index.js b/Vue-shopping/src/store/index.js
new file mode 100644
index 0000000..cfdf877
--- /dev/null
+++ b/Vue-shopping/src/store/index.js
@@ -0,0 +1,253 @@
+import Vue from 'vue'
+import Vuex from 'Vuex'
+
+Vue.use(Vuex)
+
+let store = new Vuex.Store({
+ state: {
+ carPanelData: [],
+ receiveInfo: [{
+ 'name': '王某某',
+ 'phone': '13811111111',
+ 'areaCode': '010',
+ 'landLine': '64627856',
+ 'provinceId': 110000,
+ 'province': '北京市',
+ 'cityId': 110100,
+ 'city': '市辖区',
+ 'countyId': 110106,
+ 'county': '海淀区',
+ 'add': '上地十街辉煌国际西6号楼319室',
+ 'default': true,
+ 'checked': true
+ },{
+ 'name': '李某某',
+ 'phone': '13811111111',
+ 'areaCode': '010',
+ 'landLine': '64627856',
+ 'provinceId': 110000,
+ 'province': '北京市',
+ 'cityId': 110100,
+ 'city': '市辖区',
+ 'countyId': 110106,
+ 'county': '海淀区',
+ 'add': '上地十街辉煌国际东6号楼350室',
+ 'default': false,
+ 'checked': false
+ }],
+ provisionalOrder: [],
+ orderData: [],
+ maxOff: false,
+ carShow: false,
+ ball: {
+ show: false,
+ el: null,
+ img: ''
+ }
+ },
+ getters: {
+ totleCount (state) {
+ let count = 0
+ state.carPanelData.forEach((goods) => {
+ count += goods.count;
+ })
+ return count
+ },
+ totlePrice (state) {
+ let total = 0
+ state.carPanelData.forEach((goods) => {
+ total += goods.price * goods.count
+ })
+ return total
+ },
+ checkedCount (state) {
+ let count = 0
+ state.carPanelData.forEach((goods) => {
+ if(goods.checked)
+ count += goods.count;
+ })
+ return count
+ },
+ checkedPrice (state) {
+ let total = 0
+ state.carPanelData.forEach((goods) => {
+ if(goods.checked)
+ total += goods.price * goods.count
+ })
+ return total
+ },
+ checkedCarPanelData (state) {
+ let checkedCarPanelData = []
+ state.carPanelData.forEach((goods) => {
+ if(goods.checked)
+ checkedCarPanelData.push(goods);
+ })
+ return checkedCarPanelData
+ },
+ allChecked (state) {
+ let allChecked = true
+ state.carPanelData.forEach((goods) => {
+ if(!goods.checked){
+ allChecked = false
+ return
+ }
+ })
+ return allChecked
+ },
+ maxCount (state) {
+ let maxOff = false
+ state.carPanelData.forEach((goods) => {
+ if(goods.count>goods.limit_num){
+ goods.count--
+ }
+ })
+ return maxOff
+ }
+ },
+ mutations: {
+ addCarPanelData (state,data) {
+ let bOff = true
+ state.carPanelData.forEach((goods) => {
+ if(goods.sku_id === data[0].sku_id){
+ goods.count += data[1]
+ if(goods.count>goods.limit_num){
+ goods.count -= data[1]
+ state.maxOff = true
+ bOff = false
+ return
+ }
+ state.ball.el = event.path[0]
+ state.ball.show = true
+ state.ball.img = data[0].ali_image
+ bOff = false
+ state.carShow = true
+ }
+ })
+ if(bOff){
+ let goodsData = data[0]
+ Vue.set(goodsData,'count',data[1])
+ Vue.set(goodsData,'checked',true)
+ state.carPanelData.push(goodsData)
+ state.carShow = true
+ state.ball.el = event.path[0]
+ state.ball.show = true
+ state.ball.img = data[0].ali_image
+ }
+ },
+ plusCarPanelData (state,id) {
+ state.carPanelData.forEach((goods,index) => {
+ if(goods.sku_id === id){
+ if(goods.count === goods.limit_num) return
+ goods.count ++
+ return
+ }
+ })
+ },
+ subCarPanelData (state,id) {
+ state.carPanelData.forEach((goods,index) => {
+ if(goods.sku_id === id){
+ if(goods.count === 1) return
+ goods.count --
+ return
+ }
+ })
+ },
+ delCarPanelData (state,id) {
+ state.carPanelData.forEach((goods,index) => {
+ if(goods.sku_id === id){
+ state.carPanelData.splice(index,1)
+ return
+ }
+ })
+ },
+ checkGoods (state,id) {
+ state.carPanelData.forEach((goods,index) => {
+ if(goods.sku_id === id){
+ goods.checked = !goods.checked
+ }
+ })
+ },
+ allGoodsCheck (state,checked) {
+ if(checked){
+ state.carPanelData.forEach((goods,index) => {
+ goods.checked = false
+ })
+ }else{
+ state.carPanelData.forEach((goods,index) => {
+ goods.checked = true
+ })
+ }
+ },
+ delCheckGoods (state) {
+ let i = state.carPanelData.length
+ while(i--){
+ if(state.carPanelData[i].checked){
+ state.carPanelData.splice(i,1)
+ }
+ }
+ },
+ submitOrder (state,data) {
+ let i = state.carPanelData.length
+ while(i--){
+ if(state.carPanelData[i].checked){
+ state.carPanelData.splice(i,1)
+ }
+ }
+ state.orderData.unshift(data)
+ state.receiveInfo.forEach((receive) => {
+ receive.checked = receive.default
+ })
+ },
+ payNow (state,id) {
+ state.orderData.forEach((order,index) => {
+ if(order.orderId === id){
+ order.isPay = true
+ return
+ }
+ })
+ },
+ alertPrompt (state) {
+ state.maxOff = true
+ },
+ closePrompt (state) {
+ state.maxOff = false
+ },
+ showCar (state) {
+ state.carShow = true
+ },
+ hideCar (state) {
+ state.carShow = false
+ },
+ checkDefault (state,data) {
+ state.receiveInfo.forEach((receive,index) => {
+ if (receive==data) {
+ receive.default = true
+// state.receiveInfo.unshift(state.receiveInfo.splice(index,1)[0])
+ } else {
+ receive.default = false
+ }
+ })
+ },
+ checkOut (state,data) {
+ state.provisionalOrder = data
+ },
+ submitReceive (state,data) {
+ if(data[0].default){
+ state.receiveInfo.forEach((receive,index) => {
+ receive.default = false
+ receive.checked = false
+ })
+// state.receiveInfo.unshift(data)
+// return
+ }
+ if(data[1]==null){
+ state.receiveInfo.push(data[0])
+ }else{
+ console.log(data[0])
+ state.receiveInfo[data[1]] = data[0]
+ }
+ }
+ }
+})
+
+export default store
diff --git a/Vue-shopping/src/views/account.vue b/Vue-shopping/src/views/account.vue
new file mode 100644
index 0000000..73848ee
--- /dev/null
+++ b/Vue-shopping/src/views/account.vue
@@ -0,0 +1,130 @@
+
+
+
+
+
+
+
diff --git a/Vue-shopping/src/views/account/address.vue b/Vue-shopping/src/views/account/address.vue
new file mode 100644
index 0000000..d23434e
--- /dev/null
+++ b/Vue-shopping/src/views/account/address.vue
@@ -0,0 +1,452 @@
+
+
+
+
+
+
+
+
+
+
+
{{receive.province}} {{receive.city}} {{receive.county}} {{receive.add}}
+
+
+
+
{{receive.phone}}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Vue-shopping/src/views/account/order.vue b/Vue-shopping/src/views/account/order.vue
new file mode 100644
index 0000000..8280fa1
--- /dev/null
+++ b/Vue-shopping/src/views/account/order.vue
@@ -0,0 +1,386 @@
+
+
+
+
+
+
我的订单
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{{item.count}}
+
¥ {{item.price}}.00
+
+
+
+
+
¥ {{order.price+order.freight}}.00
+
+ 现在付款
+ 已完成
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Vue-shopping/src/views/cart.vue b/Vue-shopping/src/views/cart.vue
new file mode 100644
index 0000000..55675c3
--- /dev/null
+++ b/Vue-shopping/src/views/cart.vue
@@ -0,0 +1,609 @@
+
+
+
+
+
+
+
购物清单
+
+
+
+
您的购物车中还没有商品
+ 现在选购
+
+
+
+ 商品信息
+ 操作
+ 小计
+ 数量
+ 单价
+
+
+
+
+
+
+
+
+
+
+
+
+
+
¥ {{item.price*item.count}}.00
+
+
+ -
+ {{item.count}}
+ +
+
+
+
+
¥ {{item.price}}.00
+
+
+
+
+
+
+
+
+
+
+
+
+ 已选择 {{checkedCount}} 件商品
+
+
+ 共计 {{count}} 件商品
+
+
+
+
+ 应付总额:¥ {{checkedTotle}}
+
+
+ 应付总额不含运费
+
+
+
+
现在结算
+
+
+
+
+
+
+
+
+
+
diff --git a/Vue-shopping/src/views/checkout.vue b/Vue-shopping/src/views/checkout.vue
new file mode 100644
index 0000000..75320d5
--- /dev/null
+++ b/Vue-shopping/src/views/checkout.vue
@@ -0,0 +1,690 @@
+
+
+
+
+
+
+
+
收货信息
+
+
+
+
+
+
+
{{info.name}}
+
{{info.phone}}
+
{{info.province}} {{info.city}} {{info.county}} {{info.add}}
+
+
+ 修改
+ 删除
+
+
+
+ 使用新地址
+
+
+
+
+
+
+
+
+
发票信息
+
+
+
发票类型:电子发票
+
+
发票内容:购买商品明细
+
电子发票是税务局认可的有效收付款凭证,可作为售后服务凭据。电子发票打印后可以用于企业报销。
+
+
+
+
+
购物清单
+
+
+
+ 商品名称
+ 小计
+ 数量
+ 单价
+
+
+
+
+
+
+
+
+
+
¥ {{item.price*item.count}}.00
+
+
{{item.count}}
+
¥ {{item.price}}.00
+
+
+
+
+
+
+
+
商品总计: ¥ {{checkedTotle}}.00
+
运费: + ¥ {{freight}}.00
+
+
+
+
+
+
提交订单 应付金额: ¥ {{checkedTotle+freight}}.00
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Vue-shopping/src/views/item.vue b/Vue-shopping/src/views/item.vue
new file mode 100644
index 0000000..876f807
--- /dev/null
+++ b/Vue-shopping/src/views/item.vue
@@ -0,0 +1,421 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ¥ {{itemsInfo.price}}
+
+
+
{{itemsInfo.title}}
+ {{itemsInfo.sub_title}}
+
+
+
+
+
颜色
+
+
+
+
+
+
+
+
数量
+
+
+ -
+ {{count}}
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Vue-shopping/src/views/payment.vue b/Vue-shopping/src/views/payment.vue
new file mode 100644
index 0000000..da54ba0
--- /dev/null
+++ b/Vue-shopping/src/views/payment.vue
@@ -0,0 +1,309 @@
+
+
+
+
+
+
+
支付订单
+
+
+
提交订单成功
+
请在 24 小时内 完成支付,超时订单将自动取消。
+
我们将在您完成支付后的 72 小时内发货
+
+
+
+ 现在支付
+
+
已完成
+
应付金额: ¥ {{orderInfo.price+orderInfo.freight}}.00
+
+
+
+
+
订单编号
+
{{orderInfo.orderId}}
+
+
+
收货信息
+
姓名:{{orderInfo.receiveInfo.name}}
+
联系电话:{{orderInfo.receiveInfo.phone}}
+
详细地址:{{orderInfo.receiveInfo.province}} {{orderInfo.receiveInfo.city}} {{orderInfo.receiveInfo.county}} {{orderInfo.receiveInfo.add}}
+
+
+
发票信息
+
发票类型:电子发票
+
发票抬头:{{orderInfo.invoiceTitle}}
+
发票内容:购买商品明细
+
+
+ 商品信息
+ 小计
+ 数量
+ 单价
+
+
+
+
+
+
¥ {{item.price*item.count}}.00
+
+
{{item.count}}
+
¥ {{item.price}}.00
+
+
+
+
商品总计: ¥ {{orderInfo.price}}.00
+
运费: + ¥ {{orderInfo.freight}}.00
+
+
+
+
+
+
+
+
diff --git a/Vue-shopping/src/views/shop.vue b/Vue-shopping/src/views/shop.vue
new file mode 100644
index 0000000..fbb2ab6
--- /dev/null
+++ b/Vue-shopping/src/views/shop.vue
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
diff --git a/Vue-shopping/src/views/user_login.vue b/Vue-shopping/src/views/user_login.vue
new file mode 100644
index 0000000..0bc079f
--- /dev/null
+++ b/Vue-shopping/src/views/user_login.vue
@@ -0,0 +1,207 @@
+
+
+
+
+
+
+
+ 欢 迎~
+
+
+ 还没有鲜果账号?点击注册吧 注册账号
+
+
+ 登陆
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Vue-shopping/src/views/user_register.vue b/Vue-shopping/src/views/user_register.vue
new file mode 100644
index 0000000..34a7a65
--- /dev/null
+++ b/Vue-shopping/src/views/user_register.vue
@@ -0,0 +1,180 @@
+
+
+
+
+
+
+
+ 注 册!
+
+
+ 已经有鲜果账号? 点击登陆吧
+
+
+ 注册
+
+
+
+
+
+
+
+
diff --git a/Vue-shopping/static/.gitkeep b/Vue-shopping/static/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/sxdx01/.idea/compiler.xml b/后端/.idea/compiler.xml
similarity index 100%
rename from sxdx01/.idea/compiler.xml
rename to 后端/.idea/compiler.xml
diff --git a/sxdx01/.idea/misc.xml b/后端/.idea/misc.xml
similarity index 100%
rename from sxdx01/.idea/misc.xml
rename to 后端/.idea/misc.xml
diff --git a/sxdx01/.idea/workspace.xml b/后端/.idea/workspace.xml
similarity index 100%
rename from sxdx01/.idea/workspace.xml
rename to 后端/.idea/workspace.xml
diff --git a/sxdx01/jbit.log b/后端/jbit.log
similarity index 100%
rename from sxdx01/jbit.log
rename to 后端/jbit.log
diff --git a/sxdx01/pom.xml b/后端/pom.xml
similarity index 100%
rename from sxdx01/pom.xml
rename to 后端/pom.xml
diff --git a/sxdx01/profiles.xml b/后端/profiles.xml
similarity index 100%
rename from sxdx01/profiles.xml
rename to 后端/profiles.xml
diff --git a/sxdx01/src/main/webapp/WEB-INF/web.xml b/后端/src/main/webapp/WEB-INF/web.xml
similarity index 100%
rename from sxdx01/src/main/webapp/WEB-INF/web.xml
rename to 后端/src/main/webapp/WEB-INF/web.xml
diff --git a/sxdx01/src/main/webapp/index.jsp b/后端/src/main/webapp/index.jsp
similarity index 100%
rename from sxdx01/src/main/webapp/index.jsp
rename to 后端/src/main/webapp/index.jsp
diff --git a/sxdx01/src/main/webapp/java/com/hw/controller/TestUser.java b/后端/src/main/webapp/java/com/hw/controller/TestUser.java
similarity index 100%
rename from sxdx01/src/main/webapp/java/com/hw/controller/TestUser.java
rename to 后端/src/main/webapp/java/com/hw/controller/TestUser.java
diff --git a/sxdx01/src/main/webapp/java/com/hw/dao/CartDao.java b/后端/src/main/webapp/java/com/hw/dao/CartDao.java
similarity index 100%
rename from sxdx01/src/main/webapp/java/com/hw/dao/CartDao.java
rename to 后端/src/main/webapp/java/com/hw/dao/CartDao.java
diff --git a/sxdx01/src/main/webapp/java/com/hw/dao/CartDao.xml b/后端/src/main/webapp/java/com/hw/dao/CartDao.xml
similarity index 100%
rename from sxdx01/src/main/webapp/java/com/hw/dao/CartDao.xml
rename to 后端/src/main/webapp/java/com/hw/dao/CartDao.xml
diff --git a/sxdx01/src/main/webapp/java/com/hw/dao/UserDao.java b/后端/src/main/webapp/java/com/hw/dao/UserDao.java
similarity index 100%
rename from sxdx01/src/main/webapp/java/com/hw/dao/UserDao.java
rename to 后端/src/main/webapp/java/com/hw/dao/UserDao.java
diff --git a/sxdx01/src/main/webapp/java/com/hw/dao/UserDao.xml b/后端/src/main/webapp/java/com/hw/dao/UserDao.xml
similarity index 100%
rename from sxdx01/src/main/webapp/java/com/hw/dao/UserDao.xml
rename to 后端/src/main/webapp/java/com/hw/dao/UserDao.xml
diff --git a/sxdx01/src/main/webapp/java/com/hw/po/Cart.java b/后端/src/main/webapp/java/com/hw/po/Cart.java
similarity index 100%
rename from sxdx01/src/main/webapp/java/com/hw/po/Cart.java
rename to 后端/src/main/webapp/java/com/hw/po/Cart.java
diff --git a/sxdx01/src/main/webapp/java/com/hw/po/User.java b/后端/src/main/webapp/java/com/hw/po/User.java
similarity index 100%
rename from sxdx01/src/main/webapp/java/com/hw/po/User.java
rename to 后端/src/main/webapp/java/com/hw/po/User.java
diff --git a/sxdx01/src/main/webapp/resources/db.properties b/后端/src/main/webapp/resources/db.properties
similarity index 100%
rename from sxdx01/src/main/webapp/resources/db.properties
rename to 后端/src/main/webapp/resources/db.properties
diff --git a/sxdx01/src/main/webapp/resources/log4j.properties b/后端/src/main/webapp/resources/log4j.properties
similarity index 100%
rename from sxdx01/src/main/webapp/resources/log4j.properties
rename to 后端/src/main/webapp/resources/log4j.properties
diff --git a/sxdx01/src/main/webapp/resources/mybatis-config.xml b/后端/src/main/webapp/resources/mybatis-config.xml
similarity index 100%
rename from sxdx01/src/main/webapp/resources/mybatis-config.xml
rename to 后端/src/main/webapp/resources/mybatis-config.xml
diff --git a/sxdx01/sxdx01.iml b/后端/sxdx01.iml
similarity index 100%
rename from sxdx01/sxdx01.iml
rename to 后端/sxdx01.iml
diff --git a/sxdx01/target/classes/com/hw/controller/TestUser.class b/后端/target/classes/com/hw/controller/TestUser.class
similarity index 100%
rename from sxdx01/target/classes/com/hw/controller/TestUser.class
rename to 后端/target/classes/com/hw/controller/TestUser.class
diff --git a/sxdx01/target/classes/com/hw/dao/CartDao.class b/后端/target/classes/com/hw/dao/CartDao.class
similarity index 100%
rename from sxdx01/target/classes/com/hw/dao/CartDao.class
rename to 后端/target/classes/com/hw/dao/CartDao.class
diff --git a/sxdx01/target/classes/com/hw/dao/CartDao.xml b/后端/target/classes/com/hw/dao/CartDao.xml
similarity index 100%
rename from sxdx01/target/classes/com/hw/dao/CartDao.xml
rename to 后端/target/classes/com/hw/dao/CartDao.xml
diff --git a/sxdx01/target/classes/com/hw/dao/UserDao.class b/后端/target/classes/com/hw/dao/UserDao.class
similarity index 100%
rename from sxdx01/target/classes/com/hw/dao/UserDao.class
rename to 后端/target/classes/com/hw/dao/UserDao.class
diff --git a/sxdx01/target/classes/com/hw/dao/UserDao.xml b/后端/target/classes/com/hw/dao/UserDao.xml
similarity index 100%
rename from sxdx01/target/classes/com/hw/dao/UserDao.xml
rename to 后端/target/classes/com/hw/dao/UserDao.xml
diff --git a/sxdx01/target/classes/com/hw/po/Cart.class b/后端/target/classes/com/hw/po/Cart.class
similarity index 100%
rename from sxdx01/target/classes/com/hw/po/Cart.class
rename to 后端/target/classes/com/hw/po/Cart.class
diff --git a/sxdx01/target/classes/com/hw/po/User.class b/后端/target/classes/com/hw/po/User.class
similarity index 100%
rename from sxdx01/target/classes/com/hw/po/User.class
rename to 后端/target/classes/com/hw/po/User.class
diff --git a/sxdx01/target/classes/db.properties b/后端/target/classes/db.properties
similarity index 100%
rename from sxdx01/target/classes/db.properties
rename to 后端/target/classes/db.properties
diff --git a/sxdx01/target/classes/log4j.properties b/后端/target/classes/log4j.properties
similarity index 100%
rename from sxdx01/target/classes/log4j.properties
rename to 后端/target/classes/log4j.properties
diff --git a/sxdx01/target/classes/mybatis-config.xml b/后端/target/classes/mybatis-config.xml
similarity index 100%
rename from sxdx01/target/classes/mybatis-config.xml
rename to 后端/target/classes/mybatis-config.xml
diff --git a/sxdx01/target/sxdx01.war b/后端/target/sxdx01.war
similarity index 100%
rename from sxdx01/target/sxdx01.war
rename to 后端/target/sxdx01.war
diff --git a/sxdx01/target/sxdx01/META-INF/MANIFEST.MF b/后端/target/sxdx01/META-INF/MANIFEST.MF
similarity index 100%
rename from sxdx01/target/sxdx01/META-INF/MANIFEST.MF
rename to 后端/target/sxdx01/META-INF/MANIFEST.MF
diff --git a/sxdx01/target/sxdx01/WEB-INF/classes/com/hw/controller/TestUser.class b/后端/target/sxdx01/WEB-INF/classes/com/hw/controller/TestUser.class
similarity index 100%
rename from sxdx01/target/sxdx01/WEB-INF/classes/com/hw/controller/TestUser.class
rename to 后端/target/sxdx01/WEB-INF/classes/com/hw/controller/TestUser.class
diff --git a/sxdx01/target/sxdx01/WEB-INF/classes/com/hw/dao/UserDao.class b/后端/target/sxdx01/WEB-INF/classes/com/hw/dao/UserDao.class
similarity index 100%
rename from sxdx01/target/sxdx01/WEB-INF/classes/com/hw/dao/UserDao.class
rename to 后端/target/sxdx01/WEB-INF/classes/com/hw/dao/UserDao.class
diff --git a/sxdx01/target/sxdx01/WEB-INF/classes/com/hw/dao/UserDao.xml b/后端/target/sxdx01/WEB-INF/classes/com/hw/dao/UserDao.xml
similarity index 100%
rename from sxdx01/target/sxdx01/WEB-INF/classes/com/hw/dao/UserDao.xml
rename to 后端/target/sxdx01/WEB-INF/classes/com/hw/dao/UserDao.xml
diff --git a/sxdx01/target/sxdx01/WEB-INF/classes/com/hw/po/User.class b/后端/target/sxdx01/WEB-INF/classes/com/hw/po/User.class
similarity index 100%
rename from sxdx01/target/sxdx01/WEB-INF/classes/com/hw/po/User.class
rename to 后端/target/sxdx01/WEB-INF/classes/com/hw/po/User.class
diff --git a/sxdx01/target/sxdx01/WEB-INF/classes/db.properties b/后端/target/sxdx01/WEB-INF/classes/db.properties
similarity index 100%
rename from sxdx01/target/sxdx01/WEB-INF/classes/db.properties
rename to 后端/target/sxdx01/WEB-INF/classes/db.properties
diff --git a/sxdx01/target/sxdx01/WEB-INF/classes/log4j.properties b/后端/target/sxdx01/WEB-INF/classes/log4j.properties
similarity index 100%
rename from sxdx01/target/sxdx01/WEB-INF/classes/log4j.properties
rename to 后端/target/sxdx01/WEB-INF/classes/log4j.properties
diff --git a/sxdx01/target/sxdx01/WEB-INF/classes/mybatis-config.xml b/后端/target/sxdx01/WEB-INF/classes/mybatis-config.xml
similarity index 100%
rename from sxdx01/target/sxdx01/WEB-INF/classes/mybatis-config.xml
rename to 后端/target/sxdx01/WEB-INF/classes/mybatis-config.xml
diff --git a/sxdx01/target/sxdx01/WEB-INF/lib/log4j-1.2.17.jar b/后端/target/sxdx01/WEB-INF/lib/log4j-1.2.17.jar
similarity index 100%
rename from sxdx01/target/sxdx01/WEB-INF/lib/log4j-1.2.17.jar
rename to 后端/target/sxdx01/WEB-INF/lib/log4j-1.2.17.jar
diff --git a/sxdx01/target/sxdx01/WEB-INF/lib/mybatis-3.4.5.jar b/后端/target/sxdx01/WEB-INF/lib/mybatis-3.4.5.jar
similarity index 100%
rename from sxdx01/target/sxdx01/WEB-INF/lib/mybatis-3.4.5.jar
rename to 后端/target/sxdx01/WEB-INF/lib/mybatis-3.4.5.jar
diff --git a/sxdx01/target/sxdx01/WEB-INF/lib/mysql-connector-java-5.1.29.jar b/后端/target/sxdx01/WEB-INF/lib/mysql-connector-java-5.1.29.jar
similarity index 100%
rename from sxdx01/target/sxdx01/WEB-INF/lib/mysql-connector-java-5.1.29.jar
rename to 后端/target/sxdx01/WEB-INF/lib/mysql-connector-java-5.1.29.jar
diff --git a/sxdx01/target/sxdx01/WEB-INF/lib/slf4j-api-1.7.12.jar b/后端/target/sxdx01/WEB-INF/lib/slf4j-api-1.7.12.jar
similarity index 100%
rename from sxdx01/target/sxdx01/WEB-INF/lib/slf4j-api-1.7.12.jar
rename to 后端/target/sxdx01/WEB-INF/lib/slf4j-api-1.7.12.jar
diff --git a/sxdx01/target/sxdx01/WEB-INF/lib/slf4j-log4j12-1.7.12.jar b/后端/target/sxdx01/WEB-INF/lib/slf4j-log4j12-1.7.12.jar
similarity index 100%
rename from sxdx01/target/sxdx01/WEB-INF/lib/slf4j-log4j12-1.7.12.jar
rename to 后端/target/sxdx01/WEB-INF/lib/slf4j-log4j12-1.7.12.jar
diff --git a/sxdx01/target/sxdx01/WEB-INF/web.xml b/后端/target/sxdx01/WEB-INF/web.xml
similarity index 100%
rename from sxdx01/target/sxdx01/WEB-INF/web.xml
rename to 后端/target/sxdx01/WEB-INF/web.xml
diff --git a/sxdx01/target/sxdx01/index.jsp b/后端/target/sxdx01/index.jsp
similarity index 100%
rename from sxdx01/target/sxdx01/index.jsp
rename to 后端/target/sxdx01/index.jsp
diff --git a/sxdx01/target/sxdx01/java/com/hw/controller/TestUser.java b/后端/target/sxdx01/java/com/hw/controller/TestUser.java
similarity index 100%
rename from sxdx01/target/sxdx01/java/com/hw/controller/TestUser.java
rename to 后端/target/sxdx01/java/com/hw/controller/TestUser.java
diff --git a/sxdx01/target/sxdx01/java/com/hw/dao/UserDao.java b/后端/target/sxdx01/java/com/hw/dao/UserDao.java
similarity index 100%
rename from sxdx01/target/sxdx01/java/com/hw/dao/UserDao.java
rename to 后端/target/sxdx01/java/com/hw/dao/UserDao.java
diff --git a/sxdx01/target/sxdx01/java/com/hw/dao/UserDao.xml b/后端/target/sxdx01/java/com/hw/dao/UserDao.xml
similarity index 100%
rename from sxdx01/target/sxdx01/java/com/hw/dao/UserDao.xml
rename to 后端/target/sxdx01/java/com/hw/dao/UserDao.xml
diff --git a/sxdx01/target/sxdx01/java/com/hw/po/User.java b/后端/target/sxdx01/java/com/hw/po/User.java
similarity index 100%
rename from sxdx01/target/sxdx01/java/com/hw/po/User.java
rename to 后端/target/sxdx01/java/com/hw/po/User.java
diff --git a/sxdx01/target/sxdx01/resources/db.properties b/后端/target/sxdx01/resources/db.properties
similarity index 100%
rename from sxdx01/target/sxdx01/resources/db.properties
rename to 后端/target/sxdx01/resources/db.properties
diff --git a/sxdx01/target/sxdx01/resources/log4j.properties b/后端/target/sxdx01/resources/log4j.properties
similarity index 100%
rename from sxdx01/target/sxdx01/resources/log4j.properties
rename to 后端/target/sxdx01/resources/log4j.properties
diff --git a/sxdx01/target/sxdx01/resources/mybatis-config.xml b/后端/target/sxdx01/resources/mybatis-config.xml
similarity index 100%
rename from sxdx01/target/sxdx01/resources/mybatis-config.xml
rename to 后端/target/sxdx01/resources/mybatis-config.xml